iptableルールが有効であることを確認する方法

iptableルールが有効であることを確認する方法

私はiptablesとネットワーキング全体に慣れていないので試してみています。

ポートを閉じる方法を学んでいます。特に、ネットワーク上の他のシステムがパケットを受信しないようにホストの特定のポートを閉じようとします。

特定のシステム(192.168.100.3)からシステム(192.168.100.10)にSSHを接続できないように、ポート22からのトラフィックを削除したいと思います。

トラフィックを削除するコンピュータ(192.168.100.3)にこのルールを作成しました。

iptables -I OUTPUT -s 192.168.100.10 -p tcp --dport 22 -j DROP

これまではエラーは発生していませんが、このコンピュータにSSHで接続しようとすると問題なく実行できます。

私のルールは、「そのポートの対応するIPに転送される出力からすべてのパケットを破棄する」ことです。これにより、ポート22で実行されているため、ssh接続は開始されません。

私は何を見逃していますか?ルールが実際に有効であることをどのように確認できますか?

編集:あなたのコメントに感謝します。 dの代わりにsを使ったので、おそらくうまくいかなかったでしょう。

ベストアンサー1

たぶん誰かがより良い答えをするかもしれませんが、これは私のものです。

  1. LOGまたは、ACCEPT等しくDROPないターゲットを使用して同じルールを作成します。このルールは以下に由来します。今後テストしたいこと。

    iptables -I OUTPUT -s 192.168.100.10 -p tcp --dport 22 -j LOG --log-level info 
    

    カーネルログを指示するどこにでもログ出力を見つけることができます。 (わからない場合は別の問題です。)tail -f他のホストがそのポートに接続しようとするときにこのファイルを使用してください。

  2. /u/richardが提案したようにルールが適用されたら、nmap他のツールを使用してテスト中のポートに到達しようとし、オプションを実行して各ルールiptables-v合っ-xた正しいパケット数を確認します。私は使用する:

    iptables -L OUTPUT -nvx
    

    ルールがリストの#6であるとしましょう。便利なプログラムを使用してこのプログラムを監視できますwatch

    watch -n 0.5 iptables -L OUTPUT 6 -nvx
    

    ディスプレイは1/2秒ごとに更新されます。

おすすめ記事