特定のIP範囲で着信トラフィックのみを許可するようにIPテーブルルールを設定しました。
-A INPUT -i eth0 -m iprange --src-range x.y.0.0-x.y.255.255 -j ACCEPT
-A INPUT -i eth0 -m iprange --src-range 0.0.0.0-255.255.255.255 -j DROP
このルールを適用すると、自分の許容範囲外のIPに対する自分のコンピュータへのアクセスがブロックされます。これはいいですね。
しかし今、私はこの規則の例外を望んでいます。私のコンピュータからいくつかのhttp Webリンクにアクセスするには続行したいと思います。しかし、これを回避する他の方法はありません。ブロックされたIPが自分のコンピュータでホストされているhttp Webリンクにアクセスしようとした場合は、それを許可しないでください。
前述のルールと一緒に次のルールを追加してみました。
iptables -A INPUT -i eth0 -p tcp -m tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
しかし、これはうまくいきません。上記のステータスリストにNEWを追加すると、マイコンピュータはブロックされたIPからWebリンクにアクセスできますが、両方の方法で機能し、ブロックされたIPはアクセスできないWebリンクにもアクセスできます。 Webリンクが欲しい
答え1
iptables -A INPUT -i eth0 -p tcp -m tcp -m state - 状態関連、設定 -j accept
これを追加しましたか?後ろに
-A 入力 -i eth0 -m iprange --src-range 0.0.0.0-255.255.255.255 -j DROP
?
その場合、ルールはトリガーされません。関連して確立されたルールがチェーンの最上位にあることを確認してください。
答え2
ここでは、一般的なファイアウォールの概念を誤解しているようです。ステートレスストレージ受信ファイアウォールルールを使用して発信接続をブロックおよびブロック解除しています。不可能ではありませんが、非論理的です。 CIDRネットワークの使用は範囲よりも簡単で、アウトバウンドフィルタリングテーブルも使用する必要があります。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s x.y.0.0/16 -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -o eth0 -d a.b.0.0/16 -j ACCEPT
iptables -A OUTPUT -j DROP
次の規則を使用します。
- xy0.0/16 ネットワークブロックはコンピュータからアクセスできる必要があります。
- あなたのマシンはab0.0/16ネットワークブロックにアクセスできるはずです。
- アウトバウンドでもインバウンドでも、他のすべてのアクセスは不可能でなければなりません。