私は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秒ごとに更新されます。
答え2
iptables
着信要求が強力な TRACE
目標と一致する規則を詳細に確認するために、
文書にこれを最もまとめています。
TRACE
この目標は、パケットがテーブル、チェーン、およびルールを通過したときにカーネルがパケットと一致する各ルールを記録するようにパケットを表示します。
...
元のテーブルでのみ使用できます。
あなたの場合は、次のことを行います。
iptables -t raw -A PREROUTING -s 192.168.100.10 -p tcp --dport 22 -j TRACE
説明:
192.168.100.10からシステムポート22に送信されたすべてのTCPパケットが表示されるため、そのパケットに適用されるすべてのルールがカーネルログに記録されます。
これを使用するには、TRACE
チェーンを含むソーステーブルに追加する必要がありますPREROUTING
。
パケットがテーブルとチェーンを通過する方法を知りたい場合は、iptables
図を見てください。
テーブル、チェーンなどが何であるかをよりよく理解するには、次を参照してください。ここ
答え3
着信接続テスト:nmapは、他のコンピュータで実行するために必要な素晴らしいツールです。 Zenmapはnmapのグラフィカルユーザーインターフェースです。これを使用して開いているポートなどを検索できます。
特定のIPポートをブロックしている場合は、簡単に変更できます。ポート22を無効にするには、SSHサーバーを別のポートに追加します。
通常、必要なコンテンツを除くすべてのコンテンツをブロックしようとしています。