Tcpdump の実行元:
/usr/sbin/tcpdump -U -n -i eth0 icmp or tcp dst port 22 or tcp dst port
キャプチャしたデータを確認すると、次のようになります。
132.132.211.221.40372 > 89.31.125.17.ssh: Flags [S], cksum 0xde63 (correct), seq 524121044, win 29200, length 0
146.136.44.207.4855 > 45.66.134.253.ssh: Flags [S], cksum 0x86a2 (correct), seq 1106964113, win 29200, length 0
46.228.217.79.64595 > 81.90.190.31.ssh: Flags [S], cksum 0xdf11 (correct), seq 4132328538, win 29200, length 0
109.89.72.226.19846 > 89.31.126.248.ssh: Flags [S], cksum 0xf42c (correct), seq 2627129631, win 29200, length 0
186.102.253.234.58270 > 45.146.123.96.ssh: Flags [S], cksum 0xc8a3 (correct), seq 3373229862, win 29200, length 0
139.204.89.135.64050 > 81.90.190.31.ssh: Flags [S], cksum 0x9afe (correct), seq 3997943153, win 29200, length 0
146.17.189.108.mbl-battd > 45.66.134.42.ssh: Flags [S], cksum 0xbf0e (correct), seq 1369840100, win 29200, length 0
それで、奇妙なのは、これらすべてのアドレス、SCR も DST も私の IP アドレスではないということです。誰かが私のホストを「リレー」として使用して、他の SSH を攻撃しているということですか?
参考までに、iptables のルーラーとログをここに投稿します。
-P FORWARD DROP
-A FORWARD -p tcp -m tcp --dport 22 -j LOG --log-prefix "[forward_ssh] "
-A OUTPUT -p tcp -m tcp --dport 22 -m state --state NEW -j LOG --log-uid --log-prefix "[out_ssh_new] "
-A OUTPUT -p tcp -m tcp --dport 22 -m state --state ESTABLISHED -j LOG --log-uid --log-prefix "[out_ssh_est] "
-A OUTPUT -p tcp -m tcp --dport 22 -j DROP
ログは以下のように表示され、私の IP (194.156.xxx.xxx) が他の IP を攻撃しているようです...
Mar 15 08:56:35 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=2.59.135.116 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Mar 15 09:21:02 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=162.248.88.193 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
Mar 15 10:52:45 oneserver kernel: [out_ssh_est] IN= OUT=eth0 SRC=194.156.xxx.xxx DST=172.106.16.136 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=443 DPT=22 WINDOW=64240 RES=0x00 ACK SYN URGP=0
答え1
Tcpdumpはネットワークインターフェースを通過するすべてのパケットを監視します。イーサネットスイッチは最高のMAC アドレス宛のパケットのみを通過させます。スイッチング ハブ以外の場合は試行されず、すべてが表示されます。
したがって、LAN 上のすべてのパケットを受信することになります。通常、このような多様な IP アドレスからのパケットは想定されません。ただし、IP アドレスを調べると、Petersburg Internet Network ltd のデータ センターにいることがわかります。このデータ センターはインターネット トラフィックをルーティングしていますか? このトラフィックは、お使いのマシンを通過している可能性があります。
より安全な場所でトレーニングを行ってください。
答え2
Tcpdump は、ネットワーク インターフェイスを「無差別」モードにします。ネットワーク上にハブがある場合は、すべてのパケットをすべてのインターフェイスに送信します。インターフェイスは、MAC 番号をチェックし、パケットがそのインターフェイス宛かどうかを確認します。そのインターフェイス宛の場合は、受信ソフトウェアに転送します。そうでない場合は、パケットをドロップします。
ただし、プロミスキャス モードでは、インターフェイスはすべてのパケットを受信できます。たとえば、tcpdump を使用して表示します。
ハブの代わりにスイッチを使用している場合、スイッチはパケットをフィルタリングし、本当に必要なパケットだけを送信します。マルチキャスト トラフィックの場合、シナリオはより複雑になるため、ここでは説明しません。
ネットワーク機器は、IP 番号ではなく MAC 番号に従ってトラフィックをルーティングします。
詳細はこちらをご覧ください
- https://en.wikipedia.org/wiki/アドレス解決プロトコル
- https://www.informit.com/articles/article.aspx?p=130895&seqNum=5
- 自分のものではないパケットも含め、NIC へのすべての着信パケットをキャプチャする方法
あなたのコメントに続いて、いくつかの追加情報がここにあります:
iptables が生成するログが何なのか疑問に思うかもしれません。1 つは、確立された接続のログのみが表示されることです。接続が確立されると、それに関するログも表示されます。つまり、この接続はすでに確立され、機能しているということですlsof
。ユーティリティを使用して、どのプロセスがこれらの接続を使用しているかを調べてみてください。プロセス名がわかれば、接続が正当かどうかを識別できるはずです。
コンピュータが侵害されている可能性があると疑われる場合は、いくつかのチェックをお勧めします。認識できないものがインストールされていないか確認してください。RPM/YUM パッケージを使用する RedHat/CentOS/Fedora/Oracle Linux の場合は、いくつかのコマンドで簡単に確認できます。
rpm -qa
インストールされているすべてのパッケージが一覧表示されます。疑わしいパッケージがないか確認してください。rpm -Va
パッケージのインストール後に変更されたすべてのファイルを表示します。どのファイルが変更されたかを確認します。- 情報は偽物である可能性もありますが、パッケージのソースを確認することもできます。https://serverfault.com/questions/62026/how-to-know-from-which-yum-repository-a-package-has-been-installed
他のディストリビューションについては、インストールの整合性を確認する方法を自分で調べてください。