NIDS——suricata 围绕着流量入侵检测系统来进行阐述,这篇文章将会介绍suricata的IPS功能,也就是入侵防御系统
一、环境配置
1、在centos7中安装iptables
suricata的环境配置在之前的文中介绍过了,这里不再赘述。
#检查centos7是否安装了iptables
which iptables
#如果没有安装
yum -y install iptables-services
#安装成功后,关闭防火墙:firewalld
systemctl stop firewalld
systemctl disable firewalld#启动iptables检测
systemctl start iptables
#查看iptables的配置
iptables -nL
#关闭iptables
systemctl stop iptables
2、配置iptables
二、本机IPS
1、实验拓扑图
如下图详细的描述了iptables与suricata搭配来保护服务器的过程
2、配置iptables
#查询centos7的网卡名(一般都是ens33)
#需要将INPUT和OUTPUT的流量都放入到队列中
iptables -I INPUT -p tcp --dport 80 -i ens33 -j NFQUEUE --queue-num 0 iptables -I OUTPUT -p tcp --sport 80 -o ens33 -j NFQUEUE --queue-num 0
#解释
-I INPUT
: 在INPUT
链的开头插入一条规则。-p tcp
: 匹配TCP协议的流量。--dport 80
: 匹配目标端口为80的流量(通常是HTTP流量)。-i ens33
: 匹配从接口ens33
进来的流量。-j NFQUEUE --queue-num 0
: 将匹配到的流量发送到NFQUEUE
,并将其放入队列编号为0的队列中。作用: 这条规则会把所有从
ens33
接口进来的目标端口为80(HTTP)的TCP流量发送到队列0,以便在用户空间程序中进行进一步处理。
OUTPUT同理
#检测是否配置成功iptables -nL
#启动suricata
suricata -c /etc/suricata/suricata.yaml -q 0
#与suricata -c /etc/suricata/suricata.yaml -i ens33 相比,前者从0号队列中提取流量,后者直接在网卡中提取流量,因此我这次使用前者
#验证IPS配置成功先在启动iptables之后与suricata之前访问靶场:
然后启动suricata
再访问靶场
3、规则配置
在之前的文章中,我们配置的规则都是监控的,只会发出警报,只需要稍作修改就可以将警报改成丢弃:
# 404阈值预警,只是将alert修改成drop
drop http $EXTERNAL_NET any <> $HOME_NET 80 (msg:"多次404,疑似扫描"; http.stat_code; content:"404"; threshold: type threshold, track by_src, count 5, seconds 20; sid:561003;)
测试:
#想要了解如何配置规则的请看我之前的文章
NIDS——suricata
4、注释(删除iptables规则)
#命令来查看
INPUT
链中的所有规则及其行号iptables -L INPUT -v -n --line-numbers
#使用
iptables -D INPUT
命令删除规则iptables -D INPUT 1
#同理接着删除OUTPUT
三、远程IPS
1、实验拓扑图
2、配置iptables
(1)端口转发
iptables -t nat -A PREROUTING -p tcp -d 192.168.164.149 --dport 8080 -j DNAT --to-destination 10.10.10.102:80 iptables -t nat -A POSTROUTING -j MASQUERADE #完成这两条才能保证客户端能够成功与内网主机进行信息交流。 #开启转发: echo 1 >> /proc/sys/net/ipv4/ip_forward #开允许所有转发(先测试一下,请求192.168.164.149的流量是否能转发到10.10.10.102) iptables -I FORWARD -j ACCEPT #端口转发成功
(2)配置NFQ队列
iptables -I FORWARD -j NFQUEUE --queue-num 0
#启动suricata
suricata -c /etc/suricata/suricata.yaml -q 0
有关于规则配置还是看我之前的文章,这里不过多赘述。
(3)测试
一直转圈