範囲内のIPの1つを許可しながらIP範囲をブロックします。

範囲内のIPの1つを許可しながらIP範囲をブロックします。

IP範囲をブロックしたいのですが、同時にその範囲内では1つの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

私たちが何を間違えたのでしょうか?

ベストアンサー1

だからコメントでも言及したように、順序が重要です!

セキュリティ上の理由から、netfilterは必要なIPアドレスまたは範囲のみを許可するようにチェーン削除iptablesポリシーを変更することをお勧めします。INPUT

-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 

おすすめ記事