怎样安装和使用Snort?如何判断Snort是否工作正常
本文目录
怎样安装和使用Snort
在安装Snort之前,请确认你的系统是否安装了LAMP,如果没有安装的话,请输入以下命令安装:$ sudo apt-get install mysql-server libapache2-mod-php5 php5-mysql libphp-adodb安装部署Snort工具1. 安装Snort软件包$ sudo apt-get install snort-mysql在安装过程中会提示以下信息这时,输入的网卡要与你的现在使用的网卡一致,否则安装不成功,查看你的网卡信息使用命令 $ ifconfig接下来,选择要监听网络段,比如要监听整个192.168.0.0/16这个网络段,就填写上这个网络段,最后,提示是否设置数据库,选择“Yes”。安装结束,会提示以下错误信息这个错误信息,提示我们还没有为snort配置一个mysql数据库。接下来我们为snort创建一个数据库2. 创snortdb数据库进入数据库后,创建数据库名为snortdb创建一个snort的数据库用户,并设置密码为snortpassword创建好数据库snortdb以后,我们需要将snort-mysql自带的软件包中附带的sql文件导入到数据库中;$ cd /usr/share/doc/snort-mysql$ zcat create_mysql.gz | mysql snortdb -u snort -psnortpassword导入到数据库中以后,可以去snortdb数据库中查看是否导入成功。如果导入数据完成以后,接着我们需要把/etc/snort/db-pending-config文件删掉,否则snort会认为数据库任然没有准备好。$ sudo rm /etc/snort/db-pending-config3. 配置Snort上一步配置好了数据库,我们需要配置Snort配置文件(/etc/snort/snort.conf),告诉Snort以后日志写入到Snortdb数据库中.$ sudo nano /etc/snort/snort.conf首先,找到文件中“var HOME_NET any”一行,将其修改为我们邀监控的网络段,并启用临近下面几行的“var EXTERNAL_NET !$HOME_NET”,如图配置:接着,找到该文件中“output database:log,mysql,”这行,默认它是注释的,如果没有将其注释掉,并在该行的下方填写以下内容,该设置时将log和alert信息都写入到指定的数据库中。然后, 检测snort.conf配置文件是否正常:$ sudo snort -c /etc/snort/snort.conf如果出现以上信息,有一个小猪出现,则说明配置成功了,按“Ctrl +C”退出。最后,我们启动snort:$ sudo /etc/init.d/snort start启动成功以后需要使用$ ps aux | grep snort检测是否snort真的启动成功。一般安装我的步骤做的话是不会成功的,因为还有一个文件(/var/log/snort/alert)的所有者没有修改。$ sudo chown snort /var/log/snort/alert再启动snort$ sudo /etc/init.d/snort start通过$ ps aux | grep snort命令,查看是否启动成功。如果没有成功,可以通过/var/log/syslog日志文件查看具体的原因。这里说一下为什么要先启动一下snort再修改(/var/log/snort/alert文件的所有者,因为默认在/var/log/snort/目录没有alert这个文件,只要通过先启动一下snort就会自动创建一个alert文件。
如何判断Snort是否工作正常
您好,很高兴为您解答。
在规则集文件(snort.conf)后面添加一些简单的规则:
.alert ip any any -》 any any (msg:“Got an IP Packet“; classtype:not-suspicious;sid:2000000; rev:1;) .alert icmp any any -》 any any (msg:“Got an ICMP Packet“; classtype:not-suspicious;sid:2000001; rev:1;) .alert icmp any any -》 any any (msg:“ICMP Large ICMP Packet“; dsize:》800;reference:arachnids,246; classtype:bad-unknown; sid:2000499; rev:4;)
前面两个规则分别在捕获任何IP数据包和ICMP数据包的时候产生一个告警。它们在遇到每一个数据包的时候都触发告警,所以在数据流量很大的网络段不适合使用这些规则。最后一个规则是对499号签名ID的拷贝进行修改以放宽产生告警的门限来满足我们的测试目的正常情况下你应该避免放宽告警门限,因为这样会产生很多的误告警。
最后,Snort还有一个测试功能选项(“-T”),它可以轻松地检测到用户批准的配置变更。可以输入命令“snort -c /etc/snort/snort.conf -T”,然后查看输出来判断变化的配置是否工作正常。如果工作正常,Snort将返回0,反之返回1。可以使用下面两条命令来示范一下:在Linux系统下snort -c /etc/snort/snort.conf -T和echo “Return code: $?“,Windows系统下snort -c ./Snort.conf -T和echo Return code: %ERRORLEVEL%。
由于通常情况下系统会运行几个Snort的拷贝,所以可以让一个Snort实例进行监视,而在另一个上修改配置并进行测试,一旦配置测试完成以后,就可以停止监视Snort实例,然后立即重新启动Snort来执行改变的配置。
一些老式的规则使用传输控制协议报头标志来判断某个数据包是否属于一个已建立的传输控制协议会话连接。而新式的规则使用“established”关键字来判断不管是哪种规则,都不可能仅仅使用Netcat从线路上提取期望的传输控制协议数据包中的有效载荷,并使用Snort去“检查”这些有效载荷——因为在相应的规则下,这些载荷必须作为已建立的传输控制协议会话的一部分,Snort才能够检查并触发告警。“established”关键字能够有效地减少误告警,但是在测试Snort的时候效果不好,这就是我们使用网间控制报文协议或上面的自定义规则的原因。
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
更多文章:

科学计算器网页版(用JavaScript做个网页版的计算器)
2025年3月27日 07:10

学mysql还是sql server(sql server和mysql我学什么比较好)
2025年2月11日 10:10

jscript(javascript和JScript的区别于联系主要有哪些)
2025年3月3日 07:40

container的动词(我要家具,颜色,形状,职业,动词,英语名字,场所 学习用品的英语单词各6个)
2025年3月31日 08:40

java工程师证书报考条件(2021年考Java工程师的要求有哪些)
2025年4月6日 13:50

html中rowspan(HTML中的rowspan标签设置问题)
2025年3月30日 01:50

html5简约个人博客(怎么把自己制作的HTML5网页传到自己的hexo博客上)
2025年3月18日 14:00