目錄

更改 SSH port

如何更改 SSH port 提高安全

Secure Shell (SSH) 是一種加密的網路傳輸協定,可在不安全的網路中為網路服務提供安全的傳輸環境。SSH 通過在網路中建立安全隧道來實現 SSH 客戶端與伺服器之間的連接。SSH 最常見的用途是遠端登入系統,人們通常利用 SSH 來傳輸命令列介面和遠端執行命令。

但是 SSH 使用標準傳輸控制協議 (TCP) 22 port 可能存在高度風險,因為它容易受到許多網路威脅,尤其是暴力破壞。這是一種用於訪問加密敏感資訊的駭客攻擊方法,畢竟很多人在安裝完伺服器後便很開心地在使用,忘記自己的默認 SSH 22 port已經曝露在駭客機器人的暴力破壞中。

因此,更改默認 22 port 是保護 SSH 的最佳方法之一。在這文章中,我們將解釋如何選擇新的 SSH port,並引導您在您的伺服器上更改它。

如何選擇新的 SSH port

一般我們知道任的 SSH port是具備高風險的時候,此時我們需要更改 SSH port 來提高安全性,但是在選擇新的 SSH port 時,需要注意伺服器的 0-1023 port 是為各種服務保留的,而且這些 port 的變更都是透過 SSH 來更改,為避免發生錯誤導致服務無法使用或是發生改完後無法使用 SSH 登入變成需要重新再安裝系統,我們先了解伺服器默認有哪些服務與 port。

以下是最常見的各種服務及其對應的 port 和功能的列表:

Port 位協議服務
20TCP檔案傳輸協議 (FTP) 資料
21TCPFTP 伺服器
22TCPSSH
23TCPTelnet 遠程登錄伺服器
25TCP簡單郵件傳輸協議 (SMTP)
53TCP/UDP域名系統 (DNS)
67/68UDP動態主機配置協議 (DHCP)
69UDP普通 FTP (TFTP)
80TCP超文本傳輸協議 - 用於傳輸網頁 (HTTP)
110TCP郵局協議 3 (POP3) - 用於接收電子郵件
123UDP網路時間協議 (NTP)
137/138/139TCP/UDP網路 BIOS
143TCP網際網路資訊存取協定(IMAP) - 用於檢索電子郵件
161/162TCP/UDP簡單網路管理協定(SNMP)
179TCP邊界閘道器協定 (BGP)
389TCP/UDP輕型目錄存取協定 (LDAP)
443TCP超文字SSL/TLS傳輸安全協定或QUIC (HTTPS)
636TCP/UDPLDAP over TLS 加密傳輸 (LDAPS)
989/990TCP基於 SSL/TLS 的 FTP (FTPS)

先了解以上是伺服器上最常使用的服務與 port 後,我們就要避開使用這些 port 位以避免發生衝突導致服務無法使用,當然選擇的 port 位要越難以想像越好,因此,我們建議從1024 ~ 65535的不同 port 中進行選擇,因為它們是不被定義的通訊協定。

如何更改默認 SSH Port

在這文章中,我們將提供四個簡單的步驟說明如何更改默認 SSH port。

1. 通過 SSH 連接到您的伺服器

如果您是使用 MAC 或是 Linux桌面平台請在 終端機 (Terminal) 執行以下指令:

				
					ssh root@xxx.xxx.xxx.xxx
#***說明:xxx.xxx.xxx.xxx 這是指您的ip,例如您的ip為123.123.123.123,那麼您便需要輸入 ssh root@123.123.123.123
				
			

如果您是使用 Win 10 / Win 11,請下載 PuTTY 並安裝好它,然後開啟,您便會得到以下畫面。

putty

Host Name(or IP address) 下方的欄位請輸入您要連線的 ip ,例如 123.123.123.123,您就只要輸入 123.123.123.123,下面點選 SSH ,在點擊 Open,就會連線到伺服器上。

不論您是使用 MAC、Linux桌面版或是使用 Windows ,一但連線到伺服器後都會需要輸入登入帳號與密碼,此時您只要輸入您所設定的帳號密碼。您是租用雲端主機、專屬實體主機的話請輸入主機商提供的帳號與密碼,您便可以連線到您的主機上。

2.更改 SSH 配置

首先執行以下命令來編輯 SSH 守護程式 (sshd):

				
					sudo vi /etc/ssh/sshd_config
				
			
vi sshd_cofig

輸入指令後 Enter 完 SSH 配置文件就會打開。找到讀取 #Port 22 這一行。接下來,刪除 # 並將 22 替換為您要使用的新 SSH port 號(如下方圖示)。

找到默認 port 變更它

將 SSH port 更改為 1688:

最後,按Esc退出插入模式並輸入: ws! 保存更改並退出。

3.設定你的防火牆

首先確保新選擇的 port 沒有被擋。如果這是一個新的 雲端主機或是專屬實體主機,所有 port 默認應該都是打開。

更新您的防火牆設定許可 SSH 傳入連接到的新 port 位。執行以下命令:

				
					sudo firewall-cmd --add-port=1688/tcp --permanent successsudo firewall-cmd --remove-service=ssh --permanent success
				
			

接下來,使用以下命令重新啟動 SSH 服務:

  • 如果是 Debian 與 Ubuntu:
				
					service ssh restart
				
			
  • 如果是 CentOS 與 Fedora:
				
					systemctl restart sshd.service
				
			

4.測試新的 SSH port

要驗證新的 SSH port 是否打開,請執行 ss 或 netstat 指令:

ss -tulpn | grep 1688

然後會看到 tcp LISTEN 0 128  *:1688  *:*  users:((“sshd”, ……(如下)

				
					[root@host ~]# ss -tulpn | grep 1688
udp    UNCONN     0      0         *:622                   *:*                   users:(("rpcbind",pid=477,fd=7))
udp    UNCONN     0      0      [::]:622                [::]:*                   users:(("rpcbind",pid=477,fd=10))
tcp    LISTEN     0      20     127.0.0.1:54322            *:*                   users:(("avgtcpd",pid=2416,fd=53))
tcp    LISTEN     0      128       *:1688                  *:*                   users:(("sshd",pid=2946,fd=3))
tcp    LISTEN     0      45        *:2077                  *:*                   users:(("cpdavd - accept",pid=2022,fd=3))
tcp    LISTEN     0      45        *:2078                  *:*                   users:(("cpdavd - accept",pid=2022,fd=4))
tcp    LISTEN     0      45        *:2079                  *:*                   users:(("cpdavd - accept",pid=2022,fd=7))
tcp    LISTEN     0      45        *:2080                  *:*                   users:(("cpdavd - accept",pid=2022,fd=6))
tcp    LISTEN     0      45        *:2091                  *:*                   users:(("cpdavd - accept",pid=2022,fd=5))
tcp    LISTEN     0      128       *:110                   *:*                   users:(("pop3-login",pid=1686,fd=7),("pop3-login",pid=1682,fd=7),("dovecot",pid=1600,fd=22))
				
			

或是執行 netstat -tulpn | grep 1688

然後會看到 tcp 0 0 0.0.0.0:1688 0.0.0.0:* LISTEN 2946/sshd (如下)

				
					[root@host ~]# netstat -tulpn | grep 1688
tcp        0      0 127.0.0.1:54322         0.0.0.0:*               LISTEN      2416/avgtcpd
tcp        0      0 0.0.0.0:1688            0.0.0.0:*               LISTEN      2946/sshd
tcp        0      0 0.0.0.0:2077            0.0.0.0:*               LISTEN      2022/cpdavd - accep
tcp        0      0 0.0.0.0:2078            0.0.0.0:*               LISTEN      2022/cpdavd - accep
tcp        0      0 0.0.0.0:2079            0.0.0.0:*               LISTEN      2022/cpdavd - accep
tcp        0      0 0.0.0.0:2080            0.0.0.0:*               LISTEN      2022/cpdavd - accep
tcp        0      0 0.0.0.0:2091            0.0.0.0:*               LISTEN      2022/cpdavd - accep
udp        0      0 0.0.0.0:622             0.0.0.0:*                           477/rpcbind
udp6       0      0 :::622                  :::*                                477/rpcbind
				
			

現在您可以嘗試使用以下命令登錄 SSH:

				
					ssh -p 1688 root@123.123.123.123
				
			

結論

使用默認的 SSH port 會讓您成為駭客的輕鬆目標,他們經常尋找開放的 port 位來攔截和竊取資料。因此,我們建議更改 SSH port 以避免潛在的網路攻擊並為您的 Linux 伺服器增加額外的安全保護。

在為您的 SSH 選擇新的 port 之前,請注意編號為 0-1023 的 port 是為既有的通訊協定服務保留的。因此,最好使用從 1024 到 65535 port。

配置新的指定 port 很容易,您只需要更新 SSH 守護程式配置文件中的 port 號和防火牆設定即可。然後,重新啟動 SSH 服務並再次測試新 port 的連接。

我們希望這篇文章能幫助您更改 VPS 上的 SSH port。如果您有任何問題或想法,請將它們留在下面的評論部分。

TAKI Cloud 雲端主機
TAKI Cloud 雲端主機 只要470元起
TAKI Cloud 實體主機 Dedicated Server
TAKI Cloud 實體主機 只要4,500起
TAKI Cloud 中華電信 主機代管 服務
TAKI Cloud 主機代管 只要2,000元起

By taki

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *