Ubuntu ssh 安全性設定

起一台新的機器後,為了確保機器基本上有一定的安全性,我們可以在ssh登入這個環節加入一些門檻,增加登入的難度。

預計要做的設定有:更改ssh port號 -> 更改登入帳號 -> 關閉root登入 -> 關閉密碼登入

更改ssh port號

就像改門牌地址一樣,當對方不知道門牌地址時,就要一個一個門鈴去按按看,才知道要找的人住在哪間。當不知到ssh port號,要暴力登入時,就必須要一個一個port去試。

打開並修改ssh config:sudo vim /etc/ssh/sshd_config

找到 #Port 22,移除開頭的「#」號,把後面22改成想要的port號即可(列出使用中的port號 ss -tulpn | grep LISTEN 沒有列出的都可以用)。另外還可以新增 Protocol 2,使用更安全的ver2協定。修改完成後要重啟ssh服務:sudo systemctl restart ssh

重要:如果ufw防火牆有開的話(可以用 sudo ufw status 來檢查是否有開)記得要加上新的rule:sudo ufw allow <new ssh port>

更改登入帳號

首先先用 adduser <user name> 新增使用者名稱。room number, work phone, home phone, other 為選填。接著允許使用者使用sudo指令 usermod -aG sudo <user name>。再次打開剛剛ssh config文件 sudo vim /etc/ssh/sshd_config,新增一行 AllowUsers <user name>,修改完成後要重啟ssh服務:sudo systemctl restart ssh

關閉root登入

一樣打開ssh config sudo vim /etc/ssh/sshd_config,找到PermitRootLogin yes,改成no,修改完成後要重啟ssh服務:sudo systemctl restart ssh

關閉ssh密碼登入

這一步要介紹如何關閉密碼登入,只使用ssh key登入。只使用ssh key登入的好處是不會被try密碼,也省去打密碼的不便。不過,當不是使用自己的裝置登入,或是需要新增一台裝置時,稍微有點麻煩。

但這個步驟要小心一點,未測試完成前,請勿關閉console。若不慎無法登入時,可以試試看vps管理介面中的console功能來進入主機。

首先為剛剛新建立的新使用者,新增 /home/<user name>/.ssh 目錄,在這個目錄中新增 authorized_keys 檔案。authorized_keys中要填入要登入的機器的ssh key,長得像這樣:ssh-rsa AAAC4SDFasdfsdfsdfAAAA/xfvdfevvf.......sdfsdf= xxx@macbook.office

在要登入的電腦上用command line輸入 ssh-keygen,來產生ssh key。完成後輸入 cat ~/.ssh/id_rsa.pub 顯示key並將他複製起來。打開剛剛主機上的authorized_keys檔案,貼上key,多筆則用斷行來分開。

一樣打開ssh config sudo vim /etc/ssh/sshd_config,修改 PasswordAuthentication yesno,然後再重啟ssh服務:sudo systemctl restart ssh

更多保護措施

上面提到的ufw如果沒開的話,建議可以開一下,指令也相當簡單直覺。記得新增所需要的rules。另外,建議可以安裝fail2ban,若有人一直重複在嘗試登入,就會被暫時擋起來。

發佈留言

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

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料