安装环境

CentOS Linux release 7.9.2009 (Core)

软件主体安装

安装所需要的主要软件,都可以在snort的官网找到,不过官网主页推荐的安装是给Centos8的,毕竟咱们7.9不是最新系统啊,所以找一下历史版本即可。

访问 https://www.snort.org/downloads#

centos7 安装rsync_官网


点击 “查看历史版本”,我在此选择了2.9.8.3版本。在Binaries中可以下载关键的安装包,daq和Snort都是必须的部分

centos7 安装rsync_入侵检测_02


然后将下载好的部分,上传到服务器,进行安装

yum install gcc flex bison zlib zlib-devel libpcap libpcap-devel pcre pcre-devel libdnet libdnet-devel tcpdump
yum install daq-2.0.6-1.centos7.x86_64.rpm
yum install snort-2.9.8.3-1.centos7.x86_64.rpm

如果有报错说是LuaJIT这个找不到的话,可以参照以下步骤安装
不过,大概率遇不到

wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz
tar zxvf LuaJIT-2.1.0-beta3.tar.gz
cd LuaJIT-2.1.0-beta3
cd src/
make
cd ..
make install

然后snort的软件就安装好了,然后可以执行下面命令进行测试

[root@localhost tmp]# snort -i enp1s0 -v
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/10-13:52:14.725166 192.168.32.202:7360 -> 192.168.32.200:9092
TCP TTL:64 TOS:0x0 ID:25947 IpLen:20 DgmLen:40 DF
***A**** Seq: 0xE618D50E  Ack: 0xF082B25F  Win: 0x7DA0  TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/10-13:52:14.725196 192.168.32.202:7360 -> 192.168.32.200:9092
TCP TTL:64 TOS:0x0 ID:25948 IpLen:20 DgmLen:127 DF
***AP*** Seq: 0xE618D50E  Ack: 0xF082B25F  Win: 0x7DA0  TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

WARNING: No preprocessors configured for policy 0.
11/10-13:52:14.725447 192.168.32.200:9092 -> 192.168.32.202:7360
TCP TTL:64 TOS:0x0 ID:22068 IpLen:20 DgmLen:40 DF
***A**** Seq: 0xF082B25F  Ack: 0xE618D565  Win: 0x7210  TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

能够看到当前系统中的流量信息。感觉有点像个抓包软件,其实重点不在这里,snort有三种工作模式,这是嗅探模式,还有数据包记录模式和入侵检测模式,我们需要关注的是第三种最复杂的用法,入侵检测,要喝酒喝最烈的酒……

centos7 安装rsync_官网_03

规则及配置

要启用入侵检测模式,首先要下载规则,

centos7 安装rsync_centos7 安装rsync_04

规则有两大类,community-rules和snortrules
community-rules大概就是一类基础的协议分析,不注册就可以使用的;
snortrules就是比较细分的协议了,例如里面会有app-detect.rules(APP检测),protocol-ftp.rules(FTP协议分析)
在后面还有一种订阅之后可以想用的规则,这里就不讲了,还要美刀,我可没有。

我们就注册一下,就可以下载snortrules来用了。注意要下载与安装软件对应的版本!!

wget https://www.snort.org/rules/snortrules-snapshot-29181.tar.gz?oinkcode=3add0790e73cafd1ee40951775a3bda2e11e5ec0 -O snortrules-snapshot-29181.tar.gz
tar -xvzf snortrules-snapshot-29181.tar.gz -C /etc/snort/rules

其实安装好snort之后,就会有一个默认的snort.conf可以供使用,但是无论是这个默认的也好,在snortrules-snapshot-29181.tar.gz另外带的snort.conf也好,都是有细微问题的,因为默认snort安装的位置及一些库的位置,会导致下面这些路径找不到,修改一下即可,如果不放心,那就都修改成绝对路径,肯定没问题

centos7 安装rsync_官网_05


centos7 安装rsync_入侵检测_06

规则测试

下载好的规则库中,已经包含了各种协议的规则,默认是关闭的,我们也可以自己定义自己的规则,首先在配置文件中关掉其他规则,只保留一个本地规则文件

centos7 安装rsync_TCP_07


增加一条内容

alert tcp 192.168.32.202/32 any -> 192.168.32.1/32 443 (logto:"task1"; msg:"this is task 1"; sid:1000001)

意思就是当遇到192.168.32.202访问https://192.168.32.1的时候,就会产生这条报警信息。
我们开始运行程序

snort  -i 接口名称 -A full -N -c /etc/snort/rules/etc/snort.conf

然后我们尝试在流量中制造这个访问

[root@localhost ~]# wget https://192.168.32.1

在alert文件中就会出现报警信息

centos7 安装rsync_入侵检测_08


如果snort作为本地的一个模块使用的话,与其他模块的通讯,可以使用本地socket。

至此,snort的安装及简单使用,就完成了,后面,也是最难的一步,就是学会定义规则,这个我们后续再讲。