Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398209
  • 博文数量: 104
  • 博客积分: 652
  • 博客等级: 上士
  • 技术积分: 1477
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-04 15:20
文章分类

全部博文(104)

文章存档

2019年(1)

2015年(8)

2014年(6)

2013年(59)

2012年(30)

分类: LINUX

2013-10-30 14:35:49


  1. #!/bin/sh
  2. IPTABLES=/sbin/iptables
  3. # clear
  4. $IPTABLES -F
  5. # if pkg type is allow, then accept
  6. #$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  7. # 如果同时在80端口的连接数大于10,就Drop掉这个ip
  8. netstat -an | grep :80 | awk -F: '{ print $8 }' | sort | uniq -c | awk -F\ '$1>10 && $2!="" { print $2 }' >> /etc/fw.list
  9. less /etc/fw.list | sort | uniq -c | awk -F\ '$2!="" { print $2 }' > /etc/fw.list2
  10. less /etc/fw.list2 > /etc/fw.list
  11. while read line
  12. do
  13. t=`echo "$line"`
  14. $IPTABLES -A INPUT -p tcp -s $t -j DROP
  15. done < /etc/fw.list2
  16. # IP转发
  17. $IPTABLES -A INPUT -p tcp --dport 20002 -j ACCEPT
  18. $IPTABLES -A INPUT -d 172.16.204.7 -p tcp -m tcp --dport 20002 -i eth0 -j ACCEPT
  19. $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
  20. $IPTABLES -t nat -A POSTROUTING -d 172.16.204.7 -p tcp -m tcp --dport 20002 -j SNAT --to-source 10.6.39.44
  21. # if pkg visit 80,7710 port then accept
  22. $IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
  23. $IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT
  24. $IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
  25. $IPTABLES -A INPUT -p tcp --dport 873 -j ACCEPT
  26. # $IPTABLES -A INPUT -i eth0 -m limit --limit 1/sec --limit-burst 5 -j ACCEPT
  27. $IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT
  28. $IPTABLES -A FORWARD -p tcp --syn -m limit --limit 10/s -j ACCEPT
  29. $IPTABLES -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
  30. # if pkg from allow ip then accept
  31. $IPTABLES -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT
  32. # if pkg not above then deny
  33. $IPTABLES -A INPUT -p tcp --syn -j DROP
  34. 下面这个防火墙测试结果更正确,能起到一定的防攻击的功能
  35. #!/bin/sh
  36. IPTABLES="/sbin/iptables"
  37. echo "1" > /proc/sys/net/ipv4/ip_forward
  38. $IPTABLES -P INPUT DROP
  39. $IPTABLES -P FORWARD DROP
  40. $IPTABLES -P OUTPUT DROP
  41. $IPTABLES -F
  42. $IPTABLES -X
  43. $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  44. $IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
  45. $IPTABLES -A INPUT -p tcp --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT
  46. $IPTABLES -A OUTPUT -p tcp -s 127.0.0.1 -j ACCEPT
  47. $IPTABLES -A OUTPUT -p tcp -s 192.168.1.102 -j ACCEPT
  48. $IPTABLES -A OUTPUT -p udp -s 127.0.0.1 -j ACCEPT
  49. $IPTABLES -A OUTPUT -p udp -s 192.168.1.102 -j ACCEPT
  50. $IPTABLES -A INPUT -p tcp --syn -j DROP

阅读(735) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~