Linux

使用 iptables 阻止來自本地網路的連接

  • February 15, 2019

我的網路的DHCP 地址範圍192.168.0.100 到 192.168.0.199,它的子網遮罩255.255.255.0

我想使用 iptables 從這個 IP 範圍刪除任何 INPUT(和to)我的本地網路。

我想我知道如何做到這一點,但我還有一些待學的東西……

就像,我看到有人說要設置規則iptables -A INPUT -s 192.168.0.100/24 -j DROP,但我不知道它是否適合我的網路,因為我不知道這個“/24”在這條規則中代表什麼,而且我見過人們在其他情況下使用“ /16ou” /32,所以我對此感到有些困惑。

在一些答案和執行緒中,我還看到人們談論規則: iptables -A INPUT -m iprange --src-range 192.168.0.100-192.168.0.199 -j DROP,但是這些執行緒很舊,我不知道這是否是阻止我所詢問的內容的最佳選擇。

所以,由於我感到困惑,我在這裡請求一些網路/iptables/Linux 更高級的頭腦,他們可以更好地向我解釋這一點,並告訴我應該使用什麼規則來做到這一點。

編輯#1:

我目前已經iptables -P DROPINPUTOUTPUTFORWARD鏈,並且有以下兩個規則:

iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT

iptables -I OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

關於最後一個,我應該將“ -m state –state ”更改為“ -m conntrack –ctstate ”還是兩者都是一樣的?

因為我不知道這個“/24”在這條規則中代表什麼,而且我看到人們在其他情況下使用“/16”或“/32”,所以我對此感到有些困惑。

它是/24 = 255.255.255.0“網路遮罩”表示法中斜線表示法的網路大小。(它指定子網可以有多大 - 子網中的機器將具有相同的 IP 地址前綴)

您想要實現的(如果我理解正確的話)是阻止來自其他設備的傳入流量,這些設備從 DHCP 伺服器獲取其 IP 地址。

iptables -A INPUT -m iprange --src-range 192.168.0.100-192.168.0.199 -j DROP

-A表示追加,因此請確保您不允許在此規則之前刪除的連接(或指定-I INPUT <number_of_desired_position>為“插入”)

-m代表“匹配”-您希望使用哪個模組(因為您希望使用一個 ip 範圍,所以載入了一個特殊模組並且它為您“匹配”地址 - 以同樣的方式您可以創建有狀態防火牆)

現在您允許任何其他連接(如果您有允許的政策,您可以跳過)

iptables -A INPUT -j ACCEPT

現在傳出流量,因為您正在丟棄傳入連接,您將無法與範圍內的任何其他機器建立連接,但您的數據包仍然能夠嘗試連接(您的機器可以嘗試啟動連接但永遠不會由於遠端機器沒有應答而能夠建立它 - 至少對於 TCP 來說是這樣)

因此,您應該可以接受它。

但是,如果您希望能夠連接到子網中的其他機器(例如,連接到指定範圍內的 http 伺服器),您可以通過添加:

iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT

用於啟用有--state ESTABLISHED狀態連接(您試圖啟動的連接)

引用自:https://serverfault.com/questions/954104