使用iptables防ddos攻击的问题

来源:互联网 发布:windows nt 5.x 6.x 编辑:程序博客网 时间:2024/05/21 09:51

最近要求做一个防ddos攻击的简单防火墙,在Linux服务器上搭配环境。一开始使用的是是Deflate,这个用的普遍,资料一大堆。

DDOS deflate是一个轻量级的脚本,以协助阻止拒绝服务攻击的过程中的bash shell脚本。它使用下面的命令来创建一个连接到服务器的IP地址列表,以及与它们的连接总数。这是最简单的安装软件的解决方案之一。

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

超过了预先配置的连接数的IP地址自动被服务器防火墙阻止。


但是我用的服务器除了本机的ip对应的网卡,还有两张网卡,一张是出流量的网卡,这个网口接外网:一张是进流量的网卡,该网口接一个局域网的交换机:他们之间用网桥相连。服务器的作用是收集局域网内用户的数据包信息。

Deflate只能防对本机IP的ddos的攻击,但针对局域网内的ddos不起作用。下面的图很随意画的,懂这个意思就行。




换Ubuntu server自带的iptables防火墙,我的Ubuntu server是14.04版本,iptables版本是1.4.18。iptables可以有自带的很多命令,其中也包括防ddos攻击,端口扫面等等。


http://unix.stackexchange.com/questions/96484/how-can-i-configure-syslog-conf-file-to-log-iptables-messages-in-a-separate-fil 

上面这个链接给出了iptables日志文件的配置,由于/etc下没有syslog.conf,只有rsysconf.conf


1.在rsyslog.conf文件末尾加上:

:msg, startswith, "iptables: " -/var/log/iptables.log& ~:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log& ~

2.然后/etc/init.d/rsyslog restart


3.reboot,重启服务器


4.控制单个IP的最大并发连接数(我设置了最大并发连接数为10)

iptables -t mangle -A POSTROUTING -p tcp --syn -m connlimit --connlimit-above 10 -j LOG --log-level 4 --log-prefix "iptables: "

iptables -t mangle -A POSTROUTING -p tcp --syn  -m connlimit --connlimit-above 10 -j DROP


第一个命令末尾是把drop的iptables信息保存在/var/log/iptables.log日志文件中,非常有用


5.使用一个ddos攻击器攻击局域网内的某个ip


6.在被攻击的主机上使用netstat命令查看被攻击的信息


7.在/var/log/iptables.log文件中查看详细的攻击信息


下面是我截图的一部分日志文件中的信息



0 0
原创粉丝点击