免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2538 | 回复: 1
打印 上一主题 下一主题

iptables 防火墙设置脚本问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-03 09:18 |只看该作者 |倒序浏览
在网上找了很久,精华文章看了不少。对iptables防火墙的设置还是不怎么样。
根据下面的文章整理了一个iptables 防火墙设置脚本
http://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html
http://www.linux.org/lessons/advanced/x313.html
http://www.cyberciti.biz/tips/howto-limit-linux-syn-attacks.html

服务器提供:WWW, DNS, FTP, EMAIL, SSH服务,各位大侠们帮忙指点一下,
帮忙我整理的iptables 防火墙设置脚本是否有问题,需要怎么样优化和改正一下。
谢谢。

  1. ##################################################################
  2. #!/bin/sh
  3. # Needed to initially load modules
  4. /sbin/depmod -a

  5. ## Required modules
  6. /sbin/modprobe ip_tables
  7. /sbin/modprobe iptable_filter
  8. /sbin/modprobe ip_conntrack
  9. /sbin/modprobe ip_conntrack_ftp
  10. /sbin/modprobe ip_nat_ftp
  11. /sbin/modprobe ipt_limit
  12. /sbin/modprobe ipt_connlimit
  13. /sbin/modprobe ipt_LOG
  14. /sbin/modprobe ipt_state

  15. # Required proc configuration
  16. echo "1" > /proc/sys/net/ipv4/ip_forward

  17. IPTABLES="/sbin/iptables"

  18. ## 清除所有防火墙规则
  19. $IPTABLES -F ## 清除预设表 filter 中,所有规则链中的规则
  20. $IPTABLES -X ## 清除预设表 filter 中,使用者自订链中的规则
  21. $IPTABLES -Z
  22. ##$IPTABLES -F -t nat ## 清除nat表中,所有规则链中的规则
  23. ##$IPTABLES -X -t nat ## 清除nat表中,使用者自订链中的规则
  24. ##$IPTABLES -Z -t nat

  25. ##Default policy(预设策略)
  26. $IPTABLES -P INPUT DROP
  27. $IPTABLES -P OUTPUT ACCEPT
  28. $IPTABLES -P FORWARD DROP
  29. ##$IPTABLES -t nat -P PREROUTING ACCEPT
  30. ##$IPTABLES -t nat -P POSTROUTING ACCEPT
  31. ##$IPTABLES -t nat -P OUTPUT     ACCEPT
  32. $IPTABLES -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

  33. # Create chain for bad tcp packets
  34. $IPTABLES -N bad_tcp_packets
  35. $IPTABLES -N allowed
  36. $IPTABLES -N tcp_packets
  37. $IPTABLES -N udp_packets
  38. $IPTABLES -N icmp_packets
  39. $IPTABLES -N syn_flood
  40. $IPTABLES -N ping_flood

  41. ##防止同步包洪水(Sync Flood) SYN攻击
  42. $IPTABLES -A syn_flood -p tcp --syn -m limit --limit 1/s --limit-burst 2 -j RETURN
  43. $IPTABLES -A syn_flood -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j RETURN
  44. $IPTABLES -A syn_flood -p tcp -j REJECT --reject-with tcp-reset

  45. ##Ping洪水攻击(Ping of Death)
  46. $IPTABLES -A ping_flood -p icmp --icmp-type echo-request -m limit --limit 1/second -j RETURN
  47. $IPTABLES -A ping_flood -p icmp -j REJECT

  48. # bad_tcp_packets chain
  49. $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
  50. $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
  51. $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
  52. # stop bad packets
  53. $IPTABLES -A bad_tcp_packets -p tcp -m state --state INVALID -j DROP
  54. # NMAP FIN/URG/PSH
  55. $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
  56. # stop Xmas Tree type scanning
  57. $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j DROP
  58. $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
  59. # stop null scanning
  60. $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j DROP

  61. # allowed chain
  62. $IPTABLES -A allowed -p TCP --syn -j ACCEPT
  63. $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
  64. $IPTABLES -A allowed -p TCP -j DROP

  65. # TCP rules
  66. ##添加远程ssh端口
  67. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
  68. ##添加WWWP端口
  69. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
  70. ##HTTPS
  71. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 443 -j allowed
  72. # smtp
  73. $IPTABLES -A tcp_packets -p tcp -s 0/0 --dport 25 -j ACCEPT
  74. # pop3
  75. $IPTABLES -A tcp_packets -p tcp -s 0/0 --dport 110 -j ACCEPT
  76. # imap
  77. $IPTABLES -A tcp_packets -p tcp -s 0/0 --dport 143 -j ACCEPT
  78. # smtp over SSL
  79. $IPTABLES -A tcp_packets -p tcp -s 0/0 --dport 465 -j ACCEPT

  80. ##添加FTP端口
  81. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
  82. ## Enable active ftp transfers  
  83. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 20 -j allowed
  84. ## Enable passive ftp transfers  
  85. $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 30000:31000 -j allowed

  86. # UDP ports
  87. ## DNS
  88. $IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT

  89. # ICMP rules
  90. $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
  91. $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
  92. $IPTABLES -A icmp_packets -p icmp -j DROP

  93. #########################
  94. # INPUT chain
  95. #########################
  96. #check syn flood
  97. $IPTABLES -A INPUT -p tcp -m state --state NEW -j syn_flood
  98. #check ping flood
  99. $IPTABLES -I INPUT -p icmp --icmp-type echo-request -m state --state NEW -j ping_flood

  100. # Bad TCP packets we don't want.
  101. $IPTABLES -A INPUT -p tcp -j bad_tcp_packets

  102. # Rules for special networks not part of the Internet
  103. $IPTABLES -A INPUT -p ALL -i lo -j ACCEPT
  104. $IPTABLES -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT

  105. $IPTABLES -A INPUT -p TCP -j tcp_packets
  106. $IPTABLES -A INPUT -p UDP -j udp_packets
  107. $IPTABLES -A INPUT -p ICMP -j icmp_packets

  108. #########################
  109. # FORWARD chain
  110. #########################
  111. # Bad TCP packets we don't want
  112. $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
  113. # Accept the packets we actually want to forward
  114. $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

  115. #########################
  116. # OUTPUT chain
  117. #########################
  118. # Bad TCP packets we don't want.
  119. $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
  120. # Special OUTPUT rules to decide which IP's to allow.
  121. $IPTABLES -A OUTPUT -p ALL -j ACCEPT


  122. ##每次重启自动启动
  123. chkconfig --level 235 iptables on
  124. ##保存
  125. service iptables save
  126. ##重新启动
  127. service iptables restart
复制代码

论坛徽章:
13
巨蟹座
日期:2013-10-30 18:29:4115-16赛季CBA联赛之青岛
日期:2019-01-04 17:30:1015-16赛季CBA联赛之天津
日期:2016-03-08 10:30:1715-16赛季CBA联赛之天津
日期:2015-12-10 15:56:452015年亚洲杯之约旦
日期:2015-03-09 16:29:36双鱼座
日期:2014-11-27 17:17:20寅虎
日期:2014-11-18 13:55:12双子座
日期:2014-03-31 15:41:32狮子座
日期:2014-03-14 11:23:24狮子座
日期:2014-02-19 16:30:12午马
日期:2013-11-04 23:22:31卯兔
日期:2013-10-30 19:51:15
2 [报告]
发表于 2010-11-29 11:56 |只看该作者
我也想知道
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP