Linux

使用特權埠的 SSH 最佳實踐

  • April 27, 2020

我在 Centos 7.7 上使用 cPanel,我對文件中的這個註釋有點困惑:

我們建議您使用其他服務目前不使用的特權埠 1 - 1023。只有 root 使用者可以綁定到埠 1 - 1023。任何人都可以使用 1024 和更大的非特權埠。

我不確定這句話意味著什麼——SSH 預設使用埠 22。但建議將埠更改為其他埠。

埠 22 已經是特權埠,但是如果我將其更改為 483 與 2022 就上述說明而言有什麼區別?無論我將其更改為哪個埠,任何人仍然可以通過 SSH 連接到該埠。

我不確定這句話意味著什麼——SSH 預設使用埠 22。但建議將埠更改為其他埠。

我不是這樣讀的——他們只是說你可以隨意更改 SSH 守護程序正在偵聽的埠。

埠 22 已獲得特權

是的。

但是如果我將其更改為 483 與 2022 有什麼區別

幾乎沒有,除了我知道的所有 SSH 客戶端 - OpenSSH、Putty、dbclient 預設情況下會嘗試使用埠 22,因此您必須在使用非標準埠連接到主機時手動提供埠號,但您可以將埠號保存在配置中,這是一項一次性工作。從實際的角度來看,有些人更喜歡將 SSH 守護程序設置為分別偵聽埠 80 或 443 以分別假裝 HTTP 或 HTTPS,這樣 SSH 連接就不會被酒店、機場等過熱的防火牆阻止。

關於上述說明?無論我將其更改為哪個埠,任何人仍然可以通過 SSH 連接到該埠。

我認為這Anyone can use the unprivileged ports of 1024 and greater.意味著本地非 root 使用者可以使用非特權埠進行服務。這不是關於從外部連接到在給定埠上偵聽的服務,而是關於指導本地服務使用該埠。至於為什麼他們建議為 SSH 服務使用特權埠 - 原因是:

低於 1024 的 TCP/IP 埠號的特殊之處在於普通使用者不允許在其上執行伺服器。這是一項安全功能,因為如果您在其中一個埠上連接到服務,您就相當確定您擁有真實的東西,而不是某些黑客為您提供的假貨。

(來自 http://info.cern.ch/hypertext/WWW/Daemon/User/PrivilegedPorts.html

要進一步擴展它 - 正如在 ServerFault 的這些評論中所討論的那樣:

這正是你不應該在 1023 以上的埠上執行特權守護程序的原因。任何使用者(本地或遠端)都可以對它進行 DDoS 攻擊,直到它崩潰,然後是本地使用者(即 PHP、Apache、MySQL,任何具有遠端執行漏洞的使用者) ) 可以在同一個埠上啟動它自己的守護程序,然後等待你連接。

引用自:https://unix.stackexchange.com/questions/582857