听老歌 发表于 2012-01-19 21:30

防简单攻击iptables策略

防简单攻击iptables策略 #!/bin/sh

IPTABLES=/sbin/iptables



# clear

$IPTABLES -F



# if pkg type is allow, then accept

#$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT



# 如果同时在80端口的连接数大于10,就Drop掉这个ip

netstat -an | grep :80 | awk -F: '{ print $8 }' | sort | uniq -c | awk -F\   '$1>10 && $2!="" { print $2 }' >> /etc/fw.list

less /etc/fw.list | sort | uniq -c | awk -F\   '$2!="" { print $2 }' > /etc/fw.list2

less /etc/fw.list2 > /etc/fw.list

while read line

       do

       t=`echo "$line"`

       $IPTABLES -A INPUT -p tcp -s $t -j DROP

done < /etc/fw.list2



# IP转发

$IPTABLES -A INPUT -p tcp --dport 20002 -j ACCEPT

$IPTABLES -A INPUT -d 172.16.204.7 -p tcp -m tcp --dport 20002 -i eth0 -j ACCEPT

$IPTABLES -t nat -A PREROUTING -d 211.100.39.44 -p tcp -m tcp --dport 20002 -j DNAT --to-destination 172.16.204.7:20002

$IPTABLES -t nat -A POSTROUTING -d 172.16.204.7 -p tcp -m tcp --dport 20002 -j SNAT --to-source 10.6.39.44



# if pkg visit 80,7710 port then accept

$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 873 -j ACCEPT

# $IPTABLES -A INPUT -i eth0 -m limit --limit 1/sec --limit-burst 5 -j ACCEPT

$IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT

$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 10/s -j ACCEPT

$IPTABLES -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT



# if pkg from allow ip then accept

$IPTABLES -A INPUT -p tcp -s 127.0.0.1   -j ACCEPT



# if pkg not above then deny

$IPTABLES -A INPUT -p tcp --syn -j DROP

下面这个防火墙测试结果更正确,能起到一定的防攻击的功能



#!/bin/sh

IPTABLES="/sbin/iptables"

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -P OUTPUT DROP

$IPTABLES -F

$IPTABLES -X



$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT



$IPTABLES -A OUTPUT -p tcp -s 127.0.0.1 -j ACCEPT

$IPTABLES -A OUTPUT -p tcp -s 192.168.1.102 -j ACCEPT

$IPTABLES -A OUTPUT -p udp -s 127.0.0.1 -j ACCEPT

$IPTABLES -A OUTPUT -p udp -s 192.168.1.102 -j ACCEPT



$IPTABLES -A INPUT -p tcp --syn -j DROP
复制代码

梦境照进现实 发表于 2012-01-19 21:53

谢谢分享

lastfile 发表于 2012-01-20 23:36

收藏收藏收藏:lol

linux_admin 发表于 2012-02-01 16:45

这个是好东西哦,来收藏一下

zbjit 发表于 2012-02-07 09:09

回复能看吗,多谢

h101com 发表于 2012-02-13 21:27

支持。

静飞lv 发表于 2012-02-15 19:46

不错 收藏

voostar 发表于 2012-03-09 20:05

:mrgreen: 不错。第一次看看iptables可以用那么多限制条件。

yrgnet 发表于 2012-03-19 10:18

谢谢分享

zxp3721 发表于 2012-03-25 05:01

这个内容不错
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 防简单攻击iptables策略