【问题标题】:Create a Bash init script for Suricata为 Suricata 创建一个 Bash 初始化脚本
【发布时间】:2012-06-07 22:47:20
【问题描述】:

我在我的 Fedora 14 系统上运行旧版本的“1.1” Suricata。它是通过 yum 安装的,因此由于我读过的一些问题,它没有可用的初始化脚本。有没有一种简单的方法可以在通用初始化脚本中包含以下内容,以便 suricata 在系统启动时自动启动。

感谢任何帮助/指导。

【问题讨论】:

  • 您能更具体地说明您要运行什么命令吗?它只是标准的“suricata -c”吗?
  • 哇,真快,我的接口是 eth0 所以 "suricata -c /etc/suricata/suricata.yaml -i eth0"

标签: bash init intrusion-detection


【解决方案1】:

试试这个大小:“叫它 suricata 并把它放在你的 /etc/init.d 目录中

#!/bin/bash
#
# Init file for suricata
#
#
# chkconfig: 345 52 48
# description: Network Intrusion Detection System
#
# processname: Suricata
# pidfile: /var/run/suricata.pid

source /etc/rc.d/init.d/functions


### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0
prog="suricata"
desc="Suricata IDS"

start() {
    echo -n $"Starting $desc ($prog): "

    daemon suricata -c /etc/suricata.yaml -i eth0 
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    return $RETVAL
}

stop() {
    echo -n $"Shutting down $desc ($prog): "
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
    return $RETVAL
}

restart() {
    stop
    start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  reload)
    reload
    ;;
  condrestart)
    [ -e /var/lock/subsys/$prog ] && restart
    RETVAL=$?
    ;;
  status)
    status $prog
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
    RETVAL=1
esac

exit $RETVAL

取决于您的系统,我没有运行 Fedora 14,您可能需要提供 suricata 二进制文件的绝对路径。我的是 /usr/local/bin/suricata

您还应该考虑更新或至少从源代码编译,这为您提供了一个 make install-full 选项,现在可以为您完成所有这些工作,包括安装一个 init 脚本。可以从the suricata open info sec website下载

【讨论】:

  • 太好了,它工作得很好,我可以像任何其他服务一样启动/停止/重新启动。我为 suricata 做了一个“chkconfig on”,它重新启动了系统并且 suricata 自动启动,这很棒。感谢您的帮助!