起一台新的機器後,為了確保機器基本上有一定的安全性,我們可以在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 yes
為no
,然後再重啟ssh服務:sudo systemctl restart ssh
。
更多保護措施
上面提到的ufw如果沒開的話,建議可以開一下,指令也相當簡單直覺。記得新增所需要的rules。另外,建議可以安裝fail2ban,若有人一直重複在嘗試登入,就會被暫時擋起來。