Networking
iptable 規則順序舉例
我對 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)的數據包通過您的伺服器並進入您的公司網路。