特定の IP アドレスへの送信接続のみをブロックしようとしていますが、同じ IP アドレスからの受信接続は許可したいと考えています。
発信接続をブロックすることについて私が理解しているところによると、すべきではない着信接続が正常に確立された場合はブロックします。
基本的に次のようなルールを設定します。
--append OUTPUT --jump DROP --destination x.x.x.x
確立された接続を許可するには:
--append INPUT --in-interface eth0 --match state --state RELATED,ESTABLISHED --jump ACCEPT
この IP アドレスがサーバーに接続しようとするときは接続を許可したいのですが、サーバーが送信接続を試行するときは接続できないようにする必要があります。
サーバーが に送信接続するための完全なアクセスをブロックしたいと思いますx.x.x.x
。ただし、その IP のユーザーがサーバーにアクセスしたい場合は、特定のポートのサイトにアクセスできる必要があります。
答え1
ファイアウォール ルールの試行はほぼ完了です。ホストからの受信トラフィックを許可し10.10.10.10
、そのアドレスへの送信トラフィックを停止するには、次の操作が必要です。
- 受信を許可する(おそらくどのポートに対しても)
- 確立された受信接続への送信応答を許可する
- 残りの送信トラフィックをブロックする
それで、
iptables -A INPUT --src 10.10.10.10 --jump ACCEPT
iptables -A OUTPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables -A OUTPUT --dst 10.10.10.10 --jump DROP
後続のルールが/INPUT
に到達する場合、またはポリシーがそのように設定されていない場合は、実際にこのルールは必要ありません。DENY
REJECT
答え2
あなたは間違っています! 私が理解しているのは次の通りです:
まず、input
ルールを確認してください。 による入力は許可されるはずですstate
が、これはどういうstate
意味でしょうか? これは、トラフィックが以前にサーバーからこのアドレスに送信されたことがあることを意味します。したがって、 (このアドレスに対して) 完全にout
ブロックすると、このルールが一致することはありません。output
これが、あなたの完全な努力が不可能であり、state
でのみ利用可能である理由ですinput
。
何かハッキーな解決策があるかもしれません。しかし、与えられたオプションではそれは不可能です。
追伸
あなたの質問の後、私は古いトピックをもう一度確認しました。そして、あなたの投稿をもう一度読んだ後、これがまさにあなたが望んでいることだと気づきました。ポートノッキング。
リクエストにコンポーネントが追加され、ランダム性がさらに向上します。
ノッキング スキームを設定するだけで、output
接続を許可するだけでなく、input
正しい処理knocking
が行われた場合にのみ接続を許可します。