
私は IPv4 と IPv6 を有効にした DigitalOcean のドロップレットを持っています。ドロップレットは、次のルールを持つ Digital Ocean ネットワーク ファイアウォールの背後にあります。
インバウンド:
- SSH TCP 22 すべて IPv4、すべて IPv6
- HTTP TCP 80 すべての IPv4、すべての IPv6
- HTTP TCP 443 すべての IPv4、すべての IPv6
アウトバウンド:
- ICMP ICMP すべて IPv4 すべて IPv6
- すべてのTCP TCP すべてのポート すべてのIPv4 すべてのIPv6
- すべて UDP UDP すべてのポート すべて IPv4
私の理解と予想では、ポート 22 以外のポートでのすべての ssh 試行がブロックされるはずです。ただし、systemd ジャーナルで sshd ユニットを確認すると、次のエントリが表示されます。
2022-12-29 03:00:32 Disconnected from invalid user antonio 43.153.179.44 port 45614 [preauth]
2022-12-29 03:00:32 Received disconnect from 43.153.179.44 port 45614:11: Bye Bye [preauth]
2022-12-29 03:00:31 Invalid user antonio from 43.153.179.44 port 45614
2022-12-29 02:58:37 Disconnected from invalid user desliga 190.129.122.3 port 1199 [preauth]
2022-12-29 02:58:37 Received disconnect from 190.129.122.3 port 1199:11: Bye Bye [preauth]
2022-12-29 02:58:37 Invalid user desliga from 190.129.122.3 port 1199
このような行が他にもたくさんあります。これは、ファイアウォールが 22 以外のポートでの SSH 接続をブロックしていないことを意味します。
次のグラフは、過去 1 時間の 22 以外のポートへの ssh 接続の数を示しています。ネットワーク フィルターを有効にすると接続は減りますが、完全になくなるわけではありません。
DigitalOcean のネットワーク ファイアウォールが壊れている可能性がありますか?
何が足りないのでしょうか?
インフラストラクチャ上で同じ状況に遭遇した人はいますか?
答え1
サービスは特定のポートでリッスンしています。たとえば、sshd はデフォルトでポート 22 でリッスンしています。つまり、ポート 22 以外のポートで接続を確立する ssh クライアント要求があった場合、sshd サービスはまったくそれを聞き取れません。この要求については、sshd のログ ファイルにはトレースが残りません。この場合、要求は実際にはポート 22 で来ています。これはInvalid user antonio from 43.153.179.44 port 45614
実際には何を意味しますか?
antonio
システムに存在しないユーザーとして接続するための ssh クライアント要求がありました- リクエストはIPアドレスから送信されました
43.153.179.44
- 接続に使用された ssh クライアントのポート番号は です
45614
。これはドロップレット上のポート番号ではなく、クライアント側のポート番号です。
DigitalOcean のネットワーク ファイアウォールが壊れている可能性がありますか?
そんなことはあり得ない。
答え2
まず、SSHデーモンはポート22以外をリッスンしていません。そのため、ポート22以外のポートでは誰も接続できません。接続が成功するには、ファイアウォールで許可されている必要があります。そして何かがパケットを受信するのを待っている必要があります。技術用語では、ポートをリッスンしている状態です。
さらに、ファイアウォールはおそらくパケットの中身を見ていないでしょう。ファイアウォールはポート番号のみで判断し、22 は ssh 用に予約されているポートなので、ssh が許可されていることを示しています。
TCP 接続は 4 つの識別子で構成されます。
- ソースIP
- 送信元ポート
- 宛先IP
- 宛先ポート
ログに表示されるポートとIPは、送信元IPと送信元ポートです。これらはいわゆる一時ポート、送信接続を確立しようとするプロセスにランダムに割り当てられます。