山东大学软件学院项目实训-创新实训-SDUMeeting(五)

本文介绍了如何使用iptables设置规则来防御SYN攻击,包括创建自定义链`syn-flood`,限制SYN连接速率,并优化sysctl内核参数以增强TCP连接能力。此外,还提供了一个自动封禁高连接数IP的bash脚本,结合crontab实现定时执行,有效防御DDoS攻击。
摘要由CSDN通过智能技术生成

山东大学软件学院项目实训-创新实训-SDUMeeting(五)

使用iptables保护服务器

防止SYN攻击 轻量级预防

iptables -N syn-flood

iptables -A INPUT -p tcp --syn -j syn-flood

iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN

iptables -A syn-flood -j REJECT

优化几个sysctl内核参数

vim /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog = 4096      #表示SYN队列的长度,加大队列长度可以容纳更多等待连接的网络连接数
net.ipv4.tcp_syncookies = 1              #表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭,1表示打开;
net.ipv4.tcp_synack_retries = 2          #下面这两行表示定义SYN重试次数
net.ipv4.tcp_syn_retries = 2      
 
#提高TCP连接能力
net.ipv4.tcp_rmem = 32768
net.ipv4.tcp_wmem = 32768
net.ipv4.tcp_sack = 0     #打开tcp_sack功能,1表示"关闭",0表示"打开"

自动封禁ip,防御ddos

[root@test3-237 ~]# mkdir /root/bin
[root@test1-237 ~]# cat /root/bin/dropip.sh    //此脚本自动提取攻击ip,然后自动屏蔽
#!/bin/bash
/bin/netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -10|grep -v -E '192.168|127.0'|awk '{if ($2!=null && $1>4) {print $2}}'>/tmp/dropip
for i in $(cat /tmp/dropip)
do
/sbin/iptables -A INPUT -s $i -j DROP
echo “$i kill at `date`”>>/var/log/ddos
done

以上脚本中最重要的是第二行,即:
获取ESTABLISHED连接数最多的前10个ip并写入临时文件/tmp/dropip,排除了内部ip段192.168|127.0开头的.通过for循环将dropip里面的ip通过iptables全部drop掉,然后写到日志文件/var/log/ddos。

给脚本添加执行权限

[root@test1-237 ~]# chmod +x /root/bin/dropip.sh

添加到计划任务,每分钟执行一次

[root@test1-237 ~]#crontab -e
*/1 * * * * /root/bin/dropip.sh

下面是针对连接数屏蔽IP

#!/bin/sh 
/bin/netstat -ant |grep 80 |awk '{print $5}' |awk -F":" '{print $1}' |sort |uniq -c |sort -rn |grep -v -E '192.168|127.0' |awk '{if ($2!=null && $1>50)}' > /root/drop_ip.txt 
for i in `cat /root/drop_ip.txt` 
do 
/sbin/iptables -I INPUT -s $i -j DROP; 
done 
sysctl -p    #使上面配置生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值