CentOS下iptables開放連接埠端樣本

來源:互聯網
上載者:User

CentOS下iptables開放連接埠端樣本
CentOS系統在當做網站伺服器運行時,具有很高的效率和運行穩定性。windows系統下可以通過系統防火牆來限制外部電腦對伺服器連接埠的訪問,而Linux是通過iptables來允許或限制連接埠訪問的。

本文討論的使用情境是LNmp或LNmpA系統架構下的情況。

為了方便舉例說明,飄易就直接拿來一段我的現有伺服器上啟動並執行防火牆iptables內容。

請注意:後面的注釋解說文字:

#Firewallconfigurationwrittenbysystem-config-firewall
#Manualcustomizationofthisfileisnotrecommended.
*filter
:INPUTACCEPT[0:0]
:FORWARDACCEPT[0:0]
:OUTPUTACCEPT[0:0]
-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
-AINPUT-picmp-jACCEPT
-AINPUT-ilo-jACCEPT
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT#(ssh連接埠)
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT#(web連接埠)
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport21-jACCEPT#(ftp連接埠)
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport20000:30000-jACCEPT#(ftp被動模式連接埠範圍)
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT#(mysql連接埠)
-AINPUT-jREJECT--reject-withicmp-host-prohibited
-AFORWARD-jREJECT--reject-withicmp-host-prohibited
COMMIT

修改完防火牆iptables後,需要重新啟動:
/etc/init.d/iptablesrestart
或者
serviceiptablesrestart

注意:iptables設定檔存放位置是:/etc/sysconfig/iptables
儲存命令:serviceiptablessave
使用命令:iptables-L-n可以查看當前iptables的開放連接埠情況。
iptables服務開機自動啟動:
chkconfigiptableson
檢查iptables服務:
#chkconfig--listiptables
iptables0:off1:off2:on3:on4:on5:on6:off
上面開放的連接埠後面都有註明,有一個要注意的地方,就是FTP連接埠,FTP的預設連接埠21肯定要開放,但是一般的ftp軟體都是預設先嘗試幾次被動模式PASV串連,在PASV模式串連失敗後,才會進行主動模式PORT串連。

如果我們僅僅開放21連接埠,這裡就有問題了。FTPPASV模式下,還會隨機使用一個空閑連接埠,這個連接埠範圍在20000-30000之間。所以,我們需要把這個連接埠範圍加入防火牆:
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport20000:30000-jACCEPT
關於FTP的PASV被動模式和PORT主動模式的說明:
FTP協議要用到兩個TCP串連,一個是命令鏈路,用來在FTP用戶端與伺服器之間傳遞命令;另一個是資料鏈路,用來上傳或下載資料。
FTP協議有兩種工作方式:PORT方式(主動)和PASV方式(被動),中文意思為主動式和被動式。

  Port模式:
  ftpserver:tcp21<------client:dynamic
  ftpserver:tcp20------>client:dynamic

  Pasv模式:
  ftpserver:tcp21<----client:dynamic
  ftpserver:tcpdynamic<----client:dynamic

port模式和pasv模式區別:
1、port模式:這種模式的FTP網管人員比較輕鬆,但相容性較差,比如假如用戶端在區域網路內就會無法登入FTP伺服器。假如有人無法使用port模式登入FTP的話,作為FTP治理員來說,你無論如何努力都是沒有用的。因為這時問題癥結在對方用戶端的防火牆或網關。所以對於一個FTP伺服器來說,盡量要使用pasv模式。

  2、pasv模式:這種模式的FTP相容性好,但對FTP治理員來說有一定挑戰性,而且設定的情況比較複雜,以下舉例均以有防火牆的情況來說明:

  我們僅以伺服器在公網上的情況舉例:

  這是最理想的情況。21連接埠當然要首先開放,然後再作如下設定:

windows系統下serv-u伺服器:
本機伺服器——設定——進階,在"pasv連接埠連接埠範圍"中填入一段不與其它連接埠衝突的範圍,如3001-3020,然後在防火牆中開放3001-3020的連接埠。
Linux系統下PureFTPd伺服器:
把連接埠20000-30000加入到iptables允許連接埠範圍。

如果你沒有設定防火牆允許ftppasv模式下的連接埠,那麼在用戶端使用ftp軟體串連伺服器的時候,將會出現類似以下的串連過程:
[右]PASV
[右]227EnteringPassiveMode(42,51,100,50,110,83)
[右]正在開啟資料連線IP:42.51.100.50連接埠:28243
[右]資料Socket錯誤:沒有到主機的通道
[右]列表錯誤
[右]PASV
[右]227EnteringPassiveMode(42,51,100,50,116,60)
[右]正在開啟資料連線IP:42.51.100.50連接埠:29756
[右]資料Socket錯誤:沒有到主機的通道
[右]列表錯誤
[右]PASV模式失敗,正在嘗試PORT模式。
[右]偵聽於連接埠:16585,正在等候串連。
[右]PORT192,168,1,6,64,201
[右]200PORTcommandsuccessful
[右]MLSD
[右]150Connectingtoport16585
[右]226-Options:-a-l
[右]2263matchestotal
[右]列表完成:316位元組於0.11秒(2.7KB/秒)
[右]PORT模式已成功,請更新網站設定檔中的資料連線。

從上面的ftp返回的資訊,我們可以輕易的看出,ftp先進行了2次pasv被動模式串連,由於20000-30000之間的連接埠範圍沒有開放,所以pasv模式串連失敗,最後進行了port主動模式串連才成功。

但是正如我們上面所說,ftpport模式相容性差,假如用戶端在區域網路內就會無法登入FTP伺服器。所以,我們還是應該配置ftp伺服器端的pasv被動模式下的連接埠。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.