DigitalOcean 網路防火牆僅允許 22 連接埠以外的連接埠上的 SSH 連接

DigitalOcean 網路防火牆僅允許 22 連接埠以外的連接埠上的 SSH 連接

我在 DigitalOcean 上有一個啟用了 IPv4 和 IPv6 的 Droplet。該液滴位於數位海洋網路防火牆後面,並具有以下規則:

入境:

  • 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 嘗試。我看到以下條目:

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 連線。

下圖顯示了過去一小時內除 22 之外的連接埠的 ssh 連線數。啟用網路過濾器後,連線會減少,但不會減少。

在此輸入影像描述

難道是DigitalOcean的網路防火牆壞了?

我缺什麼?

有人在他們的基礎設施上看到同樣的情況嗎?

答案1

服務正在偵聽某個端口,例如預設情況下 sshd 在端口 22 上。這表示如果有 ssh 用戶端請求在 22 以外的連接埠上建立連接,則 sshd 服務根本不會聽到它。 sshd 的日誌檔案中不會記錄此請求的任何痕跡。在本例中,請求實際上來自連接埠 22 Invalid user antonio from 43.153.179.44 port 45614

  1. 有 ssh 用戶端請求以用戶身份連接antonio,該用戶在系統上不存在
  2. 請求來自IP位址43.153.179.44
  3. 用於連接的 ssh 用戶端的連接埠號碼是45614,它是客戶端的連接埠號,而不是您的 Droplet 上的連接埠號碼。

難道是DigitalOcean的網路防火牆壞了?

這是不太可能的。

答案2

首先,您的 ssh 守護程序不會偵聽除 22 之外的任何連接埠。必須有一些東西等待接收資料包——用技術術語來說就是監聽連接埠。

此外,防火牆可能不會查看資料包內部的內容。它僅通過端口號,22 是 ssh 的保留端口,因此它表明它允許 ssh。

TCP 連線由四個識別碼組成:

  1. 來源IP
  2. 來源連接埠
  3. 目的IP
  4. 目的端口

日誌中顯示的連接埠和 IP 是來源 IP 和來源連接埠。這些就是所謂的臨時連接埠,它被隨機分配給想要建立傳出連接的進程。

相關內容