最近,我用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/