防火墙初始化脚本 iptables.sh
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防火墙初始化脚本 iptables.sh相关的知识,希望对你有一定的参考价值。
### WEB服务器,开启80端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT ###允许icmp包通过,也就是允许ping iptables -A OUTPUT -p icmp -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT ### 允许loopback!(不然会导致DNS无法正常关闭等问题) iptables -A INPUT -i lo -p all -j ACCEPT iptables -A OUTPUT -o lo -p all -j ACCEPT #### 减少不安全的端口连接, ### 有些些特洛伊木马会扫描端口31337到31340(即黑客语言中的 elite 端口)上的服务 iptables -A OUTPUT -p tcp --sport 31337:31340 -j DROP iptables -A OUTPUT -p tcp --dport 31337:31340 -j DROP ###处理IP碎片数量,防止攻击,允许每秒100个 iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT ### 设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包 iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT ### drop非法连接 iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP #### 允许所有已经建立的和相关的连接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ####丢弃坏的TCP包 iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP ####防止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 ####防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃 iptables -A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT ####用Iptables抵御DDOS (参数与上相同) iptables -A INPUT -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT #####控制单个IP在一定的时间(比如60秒)内允许新建立的连接数 iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT ####控制单个IP的最大并发连接数 iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT /etc/rc.d/init.d/iptables save /etc/rc.d/init.d/iptables restart
以上是关于防火墙初始化脚本 iptables.sh的主要内容,如果未能解决你的问题,请参考以下文章