Iptables
阻止 IP 範圍,同時接受該範圍內的 IP 之一
我們想阻止 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