如果沒有安裝iptables可以直接用yum安裝
yum install -t iptables
檢查iptables服務的狀態,
service iptables status
如果出現“iptables: Firewall is not running”,說明沒有啟動或沒有規則
啟動iptables服務
service iptables start
第一次配置前消除默認的規則
#這個一定要先做,不然清空后可能會悲劇 iptables -P INPUT ACCEPT #清空默認所有規則 iptables -F #清空自定義的所有規則 iptables -X #計數器置0 iptables -Z
配置規則
#如果沒有此規則,你將不能通過127.0.0.1訪問本地服務,例如ping 127.0.0.1 iptables -A INPUT -i lo -j ACCEPT #開啟ssh端口22 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #開啟FTP端口21 iptables -A INPUT -p tcp --dport 21 -j ACCEPT #開啟web服務端口80 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #tomcat iptables -A INPUT -p tcp --dport 8080 -j ACCEPT #mysql iptables -A INPUT -p tcp --dport xxxx -j ACCEPT #允許icmp包通過,也就是允許ping iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT #允許所有對外請求的返回包 #本機對外請求相當於OUTPUT,對於返回數據包必須接收啊,這相當於INPUT了 iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT #如果要添加內網ip信任(接受其所有TCP請求) iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT #每秒中最多允許5個新連接 iptables -A FORWARD -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT #每秒中最多允許5個新連接 iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT #Ping洪水攻擊 iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT #封單個IP的命令是: iptables -I INPUT -s 222.34.135.106 -j DROP #封IP段的命令是: iptables -I INPUT -s 211.1.0.0/16 -j DROP iptables -I INPUT -s 211.2.0.0/16 -j DROP iptables -I INPUT -s 211.3.0.0/16 -j DROP #封整個段的命令是: iptables -I INPUT -s 211.0.0.0/8 -j DROP #封幾個段的命令是: iptables -I INPUT -s 61.37.80.0/24 -j DROP iptables -I INPUT -s 61.37.81.0/24 -j DROP #過濾所有非以上規則的請求 iptables -P INPUT DROP
保存重啟
service iptables save
service iptables restart
刪除規則用-D參數
刪除之前添加的規則(iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT)
iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT