1. 程式人生 > >Iptables常用配置和常用協議端口

Iptables常用配置和常用協議端口

iptables

由於在服務器部署時,為了方便部署,把本機的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的話,相當於你還給騙子回個電話。”

    其實對於到底是使用DROP還是REJECT,從很久以前開始就非常多的人提出這方面的疑問。REJECT其實就比DROP多返回一個ICMP錯誤信息包,兩個策略各有優劣,簡單總結如下:
DROP比REJECT好在節省資源,而且延緩黑客攻擊的進度(因為不會給黑客返回任何有關服務器的信息);壞在容易讓企業的網絡問題難以排查,而且在DDoS攻擊的情況容易耗盡所有的帶寬。
REJECT比DROP的好處在於容易診斷和調試網絡設備或防火墻造成的問題;壞處上面也說了,你給騙子回個電話,相當於暴露了自己的服務器信息。
所以一般的建議是在上遊防火墻中使用REJECT,在比較危險的面向外網的基礎防火墻上,使用DROP要相對安全一些。(文章取自百度知道)


iptables -A是在當前已有記錄下面追加一條規則,優先級比他上面的規則低
iptables -I 是在當前已有記錄上面插入一條規則,優先級比他下面的規則高

所以,當添加好一天拒絕所有連接的規則後,下面配置的規則都應該在他的上面!

下面開始一些主要服務的端口開啟:

開放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腳本中,直接一執行規則就設置好了!

本文出自 “linux運維技術” 博客,請務必保留此出處http://forall.blog.51cto.com/12356505/1908421


Iptables常用配置和常用協議端口