私は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
たぶん誰かがより良い答えをするかもしれませんが、これは私のものです。
LOG
または、ACCEPT
等しくDROP
ないターゲットを使用して同じルールを作成します。このルールは以下に由来します。今後テストしたいこと。iptables -I OUTPUT -s 192.168.100.10 -p tcp --dport 22 -j LOG --log-level info
カーネルログを指示するどこにでもログ出力を見つけることができます。 (わからない場合は別の問題です。)
tail -f
他のホストがそのポートに接続しようとするときにこのファイルを使用してください。/u/richardが提案したようにルールが適用されたら、
nmap
他のツールを使用してテスト中のポートに到達しようとし、オプションを実行して各ルールiptables
に-v
合っ-x
た正しいパケット数を確認します。私は使用する:iptables -L OUTPUT -nvx
ルールがリストの#6であるとしましょう。便利なプログラムを使用してこのプログラムを監視できます
watch
。watch -n 0.5 iptables -L OUTPUT 6 -nvx
ディスプレイは1/2秒ごとに更新されます。