最近,我用OpenWRT替换了我的路由器操作系统,并在其上安装了snort(2.9):

opkg install snort

我唯一的规则是:
alert icmp any any -> [My Router Private IP like : 192.168.0.1] any (msg: "NMAP ping sweep Scan"; dsize:0;sid:10000004; rev: 1;)

问题是当我运行时:
snort -A console -q -c /etc/snort/snort.conf -i br-lan --daq-dir /usr/lib/daq

在命令行上,它可以检测到一些Nmap扫描攻击,并在控制台中写入警报:
04/12-08:19:50.152690  [**] [1:10000005:2] NMAP TCP Scan [**] [Priority: 0] {TCP} 192.168.0.10:46287 -> 192.168.0.1:22

和日志文件,但是当我启动服务时:
/etc/init.d/snort start

当我使用相同的Nmap命令(/etc/snort/rules/local.rules)时,不会发生任何事情,也不会创建日志文件。
我的问题是:
为什么服务器没有运行?
没有Systemctl就无法检测服务是否一切正常。
为什么我运行snort命令时创建的日志是无稽之谈?
当我输入例如nmap -sX -p22 192.168.0.1时,我得到:
里耶里耶兹8mvvvn6(胡安@@A3···················
在控制台里。
附言:
1-cat /var/log/snort/snort.log.1523473976
#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org

START=90
STOP=10

USE_PROCD=1
PROG=/usr/bin/snort

validate_snort_section() {
    uci_validate_section snort snort "${1}" \
        'config_file:string' \
        'interface:string'
}

start_service() {
    local config_file interface

    validate_snort_section snort || {
        echo "validation failed"
        return 1
    }

    procd_open_instance
    procd_set_param command $PROG "-c" "$config_file" "-q" "--daq-dir" "/usr/lib/daq/" "-i" "$interface" "-s" "-N"
    procd_set_param file $CONFIGFILE
    procd_set_param respawn
    procd_close_instance
}

stop_service()
{
    service_stop ${PROG}
}

service_triggers()
{
    procd_add_reload_trigger "snort"
    procd_add_validation validate_snort_section
}

2-我实际上是按照This link来配置的。但我取消注释并将cat /etc/init.d/snort:设置为config logdir
(如有任何帮助,将不胜感激)

最佳答案

默认设置为localhost-lo
检查uci show snort.snort.interface的输出
您可以使用uci set snort.snort.interface=br-lan更改它
重新启动snort以确认它实际上已经采用了新参数-/etc/init.d/snort restart
您可以在top/htop中查看整个命令行
如果一切正常,保存对UCI的更改:uci commit
您的日志是二进制的,而不是文本,我将我的日志发送到syslog并将它们发送到远程rsyslog服务器,在snort.conf-output alert_syslog: LOG_AUTH LOG_ALERT

关于linux - 如何在OpenWRT上启动Snort?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49791482/

10-10 10:04