一、题目要求
在进行Snort配置前需要搭建实验环境,实验所需的环境配置如下图所示:
Part A
在1号机上运行Snort对网络接口eth0进行监听,要求如下:
1)仅捕获2号机发出的icmp回显请求数据包。
2)采用详细模式在终端显示数据包链路层、应用层信息。
3)对捕获信息进行日志记录,日志目录/var/log/snort。
Part B
在1号机上运行Snort对网络接口eth0进行监听,要求如下:
1)仅捕获2号机发出的telnet请求数据包。
2)将捕获数据包以二进制方式存储到日志文件中/var/log/snort/snort.log。
Part C
在1号机的snort规则集目录ids/rules下新建snort规则集文件new.rules,对来自外部主机的、目标为当前主机80/tcp端口的请求数据包进行报警,报警消息自定义。
在1号机上编辑snort.conf配置文件,使其包含new.rules规则集文件。
以入侵检测方式启动snort,进行监听,2号机访问1号机Web服务。
二、实验步骤
1. 配置虚拟环境
在VMware中创建两个系统为ubuntu18.04的虚拟机,配置为2G内存1个内核,用户名分别为ubuntu1和ubuntu2、作为1号机和2号机
将其网络适配器模式都调整为Net模式
安装snort
sudo apt update
sudo apt list upgradable
sudo apt install snort
# 网段为192.168.209.0/24
# 网络接口为ens33
验证snort是否安装成功
snort -V
2. 检查网络连通性
互相ping通
网络接通
3. Part A
一号机:ubuntu1:192.168.209.138
二号机:ubuntu2:192.168.209.129
1)在2号机(ubuntu2)ping一号机(ubuntu1),即发送icmp数据包
ping 192.168.209.128
2)在一号机使用snort命令捕获数据包,并在采用详细模式在终端显示数据包链路层、应用层信息,同时进行日志记录,放置在/var/log/snort目录下
sudo snort –i eth0 –dev icmp and src 192.168.209.129 –l /var/log/snort
3)使用Wireshark打开保存的日志
sudo wireshark /var/log/snort/snort.log.1603349361
4. Part B
一号机:ubuntu1:192.168.209.138
二号机:ubuntu2:192.168.209.129
1)1号机ubuntu开启telnet服务
sudo apt-get install openbsd-inetd
sudo apt-get install telnetd
sudo /etc/init.d/openbsd-inetd restart
# 查看 telnet服务是否开启
sudo netstat -a | grep telnet
2)1号机仅捕获2号机发出的telnet请求数据包,并将捕获数据包以二进制方式存储到日志文件中/var/log/snort/snort.log。
snort -i ens33 -b tcp and src 192.168.209.129 and dst port 23
3)2号机发出telnet请求
telnet 192.168.209.129
4)使用Wireshark打开保存的日志
sudo wireshark /var/log/snort/snort.log.1603349361
5. Part C
Part C
在1号机的snort规则集目录ids/rules下新建snort规则集文件new.rules,对来自外部主机的、目标为当前主机80/tcp端口的请求数据包进行报警,报警消息自定义。
sudo nano /etc/snort/rules/local.rules
# 向其中加入:
alert tcp any any -> 192.168.209.138 80 (msg:"There is http connect!!!" ;sid:26287)
在1号机上编辑snort.conf配置文件,使其包含new.rules规则集文件。
sudo nano /etc/snort/snort.conf
# 加入:
include $RULE_PATH/Local.rules
以入侵检测方式启动snort,进行监听,2号机访问1号机Web服务。
snort -c /etc/snort/snort.conf -A console -i ens33
2号机访问1号机开启的http服务
如图在终端显示了报警信息