安全的 SSH 設置
(點擊
上方公眾號
,可快速關注)
來源:暗無天日 ,
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技能
※詳解 Tomcat 的連接數與線程池
※Map 大家族的那點事兒 ( 5 ) :WeakHashMap
TAG:ImportNew |