由于在伺服器部署時,為了友善部署,把本機的iptables都關上了,然後還手欠的儲存了設定,再想找回來是不可能了,那就重新設定一些适合我的防火牆政策吧!
如果你使用遠端連接配接到你的伺服器,那麼ssh端口是不可少的,不要把自己關在外面!
ssh預設端口号是22,可以通過/etc/sshd/sshd.conf來修改
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
然後是拒絕所有的進傳入連結接,有很多人用的DROP,下面簡單說一下兩者的差別:
iptables -A INPUT -j REJECT
REJECT和DROP的差別是什麼?某天聽到Sery的解釋,感覺說的很容易了解:
“就好象騙子給你打電話,drop就是直接拒收。reject的話,相當于你還給騙子回個電話。”
是以,當添加好一天拒絕所有連接配接的規則後,下面配置的規則都應該在他的上面!
下面開始一些主要服務的端口開啟:
開放icmp應答,ftp傳輸:
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
一.網站伺服器
開放8080(tomcat)端口(httpd預設端口80):
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
二.檔案伺服器NFS
1.開放2049(NFS)端口和111(RPC):
iptables -I INPUT -p tcp --dport 2049 -j ACCEPT
iptables -I INPUT -p tcp --dport 111 -j ACCEPT
iptables -I INPUT -p ucp --dport 111 -j ACCEPT
2.檔案服務啟動服務需開放回環端口
iptables -I INPUT -i lo -j ACCEPT
3.開放mountd和lockd端口
①vim /etc/sysconfig/nfs
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
②
iptables -I INPUT -p tcp --dport 892 -j ACCEPT
iptables -I INPUT -p udp --dport 892 -j ACCEPT
iptables -I INPUT -p tcp --dport 32803 -j ACCEPT
iptables -I INPUT -p udp --dport 32803 -j ACCEPT
iptables -I INPUT -p tcp --dport 32769 -j ACCEPT
iptables -I INPUT -p udp --dport 32769 -j ACCEPT
iptables -I INPUT -p udp --dport 875 -j ACCEPT
iptables -I INPUT -p tcp --dport 875 -j ACCEPT
三.網絡攻擊防禦
允許一個網段ping
iptables -I INPUT -p icmp -s 192.168.6.0/24 -j ACCEPT
防Ddos攻擊:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
--litmit 25/minute 訓示每分鐘限制最大連接配接數為25
--litmit-burst 100 訓示當總連接配接數超過100時,啟動 litmit/minute 限制
禁止Ping入
#允許内網(192.168.1.*)的ping入,允許ping出,禁止其它網段的ping入
iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
四.端口轉發
将本機80端口的請求轉發到8080端口:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
将本機的81端口的請求全部轉發到192.168.1.1:80
#首先要啟用ipv4的轉發功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
#或者是修改/etc/sysctl.conf以便重新開機後也會啟用轉發,然後設定iptables:
iptables -t nat -A PREROUTING -p tcp --dport 81 -j DNAT --to 192.168.1.1:80
iptables -t nat -A POSTROUTING -j MASQUERADE
#如果開啟了防火牆功能,注意要将80和81兩個端口都打開
五.防火牆規則删除
顯示所有規則的行号:
iptables -L INPUT --line-numbers
删除對應的行号的規則:
iptables -D chain rulenum [options]
iptables -D INPUT number
注意:删除第一條規則後,第二條規則會成為第一條規則!
六.自動化規則設定
當你設定好一台伺服器的規則時,還有很多規則差不多的伺服器需要設定規則,這樣的話,建議把所有規則複制到shell腳本中,直接一執行規則就設定好了!