マシンの要求に対してのみ着信応答を許可する方法

マシンの要求に対してのみ着信応答を許可する方法

特定の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ネットワークブロックにアクセスできるはずです。
  • アウトバウンドでもインバウンドでも、他のすべてのアクセスは不可能でなければなりません。

関連情報