歡迎光臨
每天分享高質量文章

安全的 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技能

贊(0)

分享創造快樂