1. 程式人生 > >Linux下iptables開放埠端示例

Linux下iptables開放埠端示例

 Linux系統在當做網站伺服器執行時,具有很高的效率和執行穩定性。windows系統下可以通過系統防火牆來限制外部計算機對伺服器埠的訪問,而Linux是通過iptables來允許或限制埠訪問的。     本文討論的使用情境是LNmp或LNmpA系統架構下的情況。     為了方便舉例說明,飄易就直接拿來一段我的現有伺服器上執行的防火牆iptables內容。

    請注意:後面的註釋說明文字: # Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # (ssh埠)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # (web埠)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # (ftp埠)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT # (ftp被動模式埠範圍)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # (mysql埠)

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT     修改完防火牆iptables後,需要重新啟動:
/etc/init.d/iptables restart
或者
service iptables restart     注意:iptables配置檔案存放位置是:/etc/sysconfig/iptables
    儲存命令:service iptables save
    使用命令:iptables -L -n
 可以檢視當前iptables的開放埠情況。
iptables服務開機自動啟動
chkconfig iptables on
    檢查iptables服務:
chkconfig --list iptables
  iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
    上面開放的埠後面都有註明,有一個要注意的地方,就是FTP埠,FTP的預設埠21肯定要開放,但是一般的ftp軟體都是預設先嚐試幾次被動模式PASV連線,在PASV模式連線失敗後,才會進行主動模式PORT連線。     如果我們僅僅開放21埠,這裡就有問題了。FTP PASV模式下,還會隨機使用一個空閒埠,這個埠範圍在20000-30000之間。所以,我們需要把這個埠範圍加入防火牆:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT