Networking

iptable 規則順序舉例

  • January 15, 2020

我對 IPtables 有疑問。

讓我們從我書中的這個例子開始:

您會為接受 EMSTP(埠 465)和 IMAP(埠 993)的郵件伺服器設置哪些規則,該郵件伺服器的網路介面 eth1 暴露於 Internet,另一個網路介面 eth2 暴露於公司網路?

我試圖用這個來回應:

Iptable -A FORWARD  -p  EMSTP, IMAP -s all -i eth1 -m multiport 465,993  state –state  NEW, ESTABILISHED  -j ACCEPT
Iptable -A FORWARD  -p  EMSTP, IMAP -s all -i eth2 -m multiport 465,993  state –state  NEW, ESTABILISHED  -j ACCEPT
  • 我考慮了 FORWARD,因為沒有指定流量是 INPUT 還是 OUTPUT ……所以我使用了通用輸入/輸出(如果我可以在這種模式下使用,FORWARD)
  • 協議是指定的(所以我認為沒有問題)
  • 我使用了兩條規則,因為我使用了不同的界面,但我認為可以在相同的規則中完成所有操作,只需在相同的規則中添加另一個 -i 即可。
  • 對於網路,我認為一個是(網際網路),另一個是本地網路(我真的不知道“公司”是什麼意思)

我的問題是我的回答是否良好以及是否必須使用這種格式。

我交換規則的順序有什麼變化?

在這種情況下,廣告範例:

Iptable -A FORWARD -j ACCEPT   -i eth1 -p EMSTP, IMAP -s all  -m multiport 465,993  state –state  NEW, ESTABILISHED  

只需交換跳轉和介面(-j 和 -i)

有人可以幫助理解嗎?

首先,一些提醒:

  • -p論點是特定協議,如 TCP、UDP、ICMP ……而不是更高級別的協議,如 IMAP。
  • OUTPUT 和 INPUT 鏈用於從機器傳出和傳入機器的數據包。如果要過濾轉發的數據包(當您的機器充當網關時),您必須使用 FORWARD 鏈。要區分 IN 和 OUT,請使用輸入或輸出介面以及源 IP 和目標 IP
  • ESTABILISHED–> 錯字!!!:)

現在,讓我們看看你的問題:

您會為接受 EMSTP(埠 465)和 IMAP(埠 993)的郵件伺服器設置哪些規則,該郵件伺服器的網路介面 eth1 暴露於 Internet,另一個網路介面 eth2 暴露於公司網路?

這個問題太廣泛了,因為它說:

  • 該機器是一個郵件伺服器。
  • 它有兩個介面
  • 它必須接受郵件相關協議的連接。

但並不是說兩個網路(網際網路/公司)都必須接受連接。無論如何,讓我們假設是這樣。

iptables與判別器一起工作:-i是一種匹配傳入該介面的數據包。由於您希望每個介面都接受流量,因此只需刪除-i. 如前所述,-p是指定傳輸協議。郵件在 TCP 中工作,所以使用 ̀ -p tcp`。

所以你的第一反應會起作用(減去拼寫錯誤和一些語法錯誤,這個想法是可以的)。您的最後一個不會導致它允許來自網際網路(eth1)的數據包通過您的伺服器並進入您的公司網路。

引用自:https://unix.stackexchange.com/questions/562220