防火牆初始化腳本 iptables.sh

#!/bin/bash
path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export path
## WEB服務器,開啓80.443端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
## zabbix服務器,開啓10050:10051端口
iptables -A INPUT -p tcp --dport 10050:10051 -j ACCEPT
###redis server服務默認端口6379的命令
iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
#數據庫服務器,開啓3306端口
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
#允許的本機SSH服務
iptables -A INPUT -p TCP  --dport 1314 -j ACCEPT       
#允許的本機rsync服務
iptables -A INPUT -p TCP  --dport 873 -j ACCEPT 
###允許icmp包通過,也就是允許ping
 iptables  -A INPUT  -p icmp -j ACCEPT  
 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
##### 黑名單
#/sbin/iptables -A INPUT -s 1.1.1.0/24 -j DROP
#/sbin/iptables -A INPUT -s 1.1.1.0 -j DROP
##### 白名單
#/sbin/iptables -A INPUT -s 1.1.1.1/24 -j ACCEPT # 信任的網絡
#/sbin/iptables -A INPUT -s 1.1.1.1  -j ACCEPT # 信任的ip
/etc/rc.d/init.d/iptables save
#/etc/rc.d/init.d/iptables restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章