最近有朋友在使用其雲端否主機時,發現SSH一直在被人暴力掃描,雖然說SSH帳號和密碼始終沒有被猜出來,但是老是被人盯著恐怕遲早要出事。於我幫他設定了S-S-H登入白名單,即只允許自己的IP登入訪問,其它的IP一概拒絕。

其實,要確保S-S-H不被破解,最簡單的方法就是修改預設的22端口,例如我們用的經典VPS,VPS在創建時就預設修改了22端口。最徹底的方法,是禁止使用帳號密碼登錄,而是改用金鑰登錄,只要確保金鑰安全,伺服器也沒有人能進入了。

本篇文章就來分享Linux VPS主機和伺服器安全防護一些基本的方法,例如修改SSH的端口;給SSH登錄添加白名單,僅允許自己的IP訪問;也可設置密鑰登錄,禁止密碼登錄,這樣破解者就「無門可入」了。

當然,有經驗的朋友還可以直接關閉S-S-H登錄,如果已經安裝了像寶塔BT面板WDCP面板,則可以直接在面板的後台選擇關閉S-S-H,或者手動關閉它們。有些商家例如阿里雲、騰訊雲等還自帶了安全組,你也可以在安全組中選擇臨時屏蔽22等端口,等到自己要用的時候再手動去開啟端口,雖然有點麻煩,但是卻是比較簡單方便的方法。

Linux VPS主機與伺服器安全防護:SSH修改連接埠,新增白名單和設定金鑰登入

更多的關於伺服器安全以及建站教程,這裡有:

  1. 改進網站站內搜尋-百度,Google自訂搜尋和Elasticsearch自建搜尋
  2. 十個你可能不知道的CloudFlare免費CDN加速技巧-SSLDDOSCache
  3. WordPress開啟Nginx fastcgi_cache快取加速方法-Nginx設定實例

PS:2020年3月19日更新,如果你的網站已經被駭了,可以參考以下方法來解決:網站掛木馬和伺服器被黑排查分析-VPS主機和伺服器強化安全方法。

一、修改預設埠

預設的連接埠是22,這樣很容易被人破解,我們可以修改連接埠號碼為其它的。命令:

#SSH服务的启动与停止
service sshd status        # 状态
service sshd start         # 启动
service sshd stop          # 暂停
service sshd restart       # 重启

#改完端口后记得在防火墙放行,例如
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
#保存防火墙规则并重启
/etc/init.d/iptables save
service iptables restart

#修改端口号
#主配置文件:/etc/ssh/sshd_config

Port 22

5.1  產生公鑰與私鑰

最簡單的方法就是直接在Linux VPS主機上使用指令快速產生:

# 生成 SSH 密钥对
[root@wzfoume ~]# ssh-keygen -t rsa  
Generating public/private rsa key pair.
# 建议直接回车使用默认路径 
Enter file in which to save the key (/root/.ssh/id_rsa): 
# 输入密码短语(留空则直接回车)
Enter passphrase (empty for no passphrase): 
# 重复密码短语 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e3:62:aa:0f:28:87:8f:2e:dd:fb:f0:59:fb:24:07:4a root@wzfoume
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|      E S        |
| o   . o o       |
|+.o.. + + o      |
|o+...= + =       |
|+.oo+o+ ...      |
+-----------------+
[root@wzfoume ~]#

產生的金鑰你可以在root下的.ssh檔案下找到。

配置修改如下圖:

5.3  停用密碼登入

現在你在使用Xshell或Putty連線時就可以選擇使用金鑰了。

確認金鑰連線沒有問題時,就可以停用密碼登錄,僅限金鑰登入了。方法是:修改/etc/ssh/sshd_config文件,將PasswordAuthentication yes 修改成 PasswordAuthentication no;最後,重啟sshd。

六、總結

對於S-S-H安全的問題,我們一定要引起足夠的重視,最簡單的操作就是設定一個複雜一點的密碼+修改預設的S-S-H端口,這個操作可以阻止一大部分的暴力掃描。

選擇關閉S-S-H也會造成自己不便,穩健一點的方法就是禁止密碼登錄,改用金鑰登入。同時,公鑰與私鑰分開存放,一旦發生洩漏也容易被人識破。

發表評論