(點選上方公眾號,可快速關註)
來源:暗無天日 ,
lujun9972.github.io/blog/2018/10/11/安全的ssh設定/
偶爾登陸了一次騰訊雲主機的root使用者,驚訝地發現有大量失敗登陸的記錄,把我嚇了一跳。
使用 lastb 查了一下,發現登陸名稱是千奇百怪。其中實驗次數最多的使用者名稱分別為:
sudo lastb|awk ‘{print $1}’ |sort |uniq -c |sort -n -k 1 |tail
160 guest
218 hadoop
248 git
252 ubuntu
356 user
406 postgres
420 test
486 oracle
1161 admin
147101 root
之前我一直以為我這小破主機應該是沒人會在意的,所以沒有對SSH服務進行什麼配置。現在看起來我還是太naive了。
迫於無奈,只好對SSH服務進行加固處理。目前找到的加固方法有下麵幾個:
確定 sshd_config 的許可權
確定 sshd_config 只有root才能讀寫,其他使用者不能進行任何操作
sudo chown root:root /etc/ssh/sshd_config
sudo chmod og-rwx /etc/ssh/sshd_config
修改ssh服務埠
這一步的效果很顯著,只從改了ssh服務埠後,就在沒有看到任何登陸失敗的提示了
Port XXXX
只啟用SSH Protocol 2
Protocol 1的安全性相對要差一些
Protocol 2
不允許空密碼登陸
PermitEmptyPasswords no
不允許root登陸
從上面對 lastb 的結果分析可以得知, root 是被實驗最多的使用者,沒有之一。
因此禁用 root 登陸很有必要:
PermitRootLogin no
若你覺得一股腦兒完全禁用root登陸太過了,而希望只在特定的主機上允許root登陸,則可以禁止 root 用密碼登陸
PermitRootLogin prohibit-password
然後在特定主機上建立公私金鑰認證關係即可。
限制只能登陸特定使用者
我們可以使用 DenyUsers、AllowUsers、DenyGroups 和 AllowGroups 關鍵字來限定允許登陸的使用者。
當某個使用者登陸時,該使用者依次經過 DenyUsers、AllowUsers、DenyGroups 和 AllowGroups 的測試,只有在所有測試都透過的情況下才允許登陸。
AllowUsers ramesh john jason
AllowGroups sysadmin dba
DenyUsers cvs apache jane
DenyGroups developers qa
修改未登陸的超時時間
使用者未登陸成功的情況下,預設120秒後會登出。這個時間可以縮短,比如60。
LoginGraceTime 1m
但要註意,若該值縮減為 0 則表示沒有時間限制。
設定會話空閑一段時間後自動退出
設定空間一段時間自動退出有兩種方法,
一種是設定 TMOUT 環境變數,比如在 ~/.bash_profile 中加上
export TMOUT=100
還有一種方法是設定 sshd_config
ClientAliveInterval 100
ClientAliveCountMax 0
【關於投稿】
如果大家有原創好文投稿,請直接給公號傳送留言。
① 留言格式:
【投稿】+《 文章標題》+ 文章連結
② 示例:
【投稿】《不要自稱是程式員,我十多年的 IT 職場總結》:http://blog.jobbole.com/94148/
③ 最後請附上您的個人簡介哈~
看完本文有收穫?請轉發分享給更多人
關註「ImportNew」,提升Java技能