Iptables

阻止 IP 範圍,同時接受該範圍內的 IP 之一

  • April 14, 2020

我們想阻止 IP 範圍,但同時只允許該範圍內的一個 IP。通過搜尋我們發現了這個:

$ sudo iptables -A INPUT -s <ALLOWED_IP> -j ACCEPT
$ sudo iptables -A OUTPUT -d <ALLOWED_IP> -j ACCEPT

$ sudo iptables -I INPUT -m iprange --src-range <NOT_ALLOWED_RANGE> -j DROP

但它不起作用。我們還嘗試了顛倒順序,但仍然無法正常工作:

$ sudo iptables -I INPUT -m iprange --src-range <NOT_ALLOWED_RANGE> -j DROP

$ sudo iptables -A INPUT -s <ALLOWED_IP> -j ACCEPT
$ sudo iptables -A OUTPUT -d <ALLOWED_IP> -j ACCEPT

我們做錯了什麼?

因此,正如評論中提到的,順序很重要!

為了安全起見,netfilter 鼓勵更改丟棄鏈的iptables策略,INPUT這樣您就只允許您想要的 IP 地址或範圍。

-I要回答您的問題,您首先使用表示您希望將規則放在首位的標誌來允許所需的 IP 地址。

iptables -I INPUT -s SOURCE_IP -j ACCEPT 
iptables -A INPUT -m iprange --src-range SRC_RANGE/CIDR -j DROP

iptables第一條規則中適用,這意味著在頂部的規則將始終獲勝。

DENY  (this rule wins)
|
ALLOW 

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