「筆記」SSH 那些事兒

在實際的產品服務發佈環境中,Linux服務器通常禁止使用遠程ROOT賬戶登錄,僅僅允許最小權限的遠程賬戶使用SSH登錄後,再切換賬戶達到管理服務器的目的。下面我們就總結一下如何創建安全的SSH登錄賬戶。

【運行環境】

CentOS,OpenSSH


1.在客戶端生成證書秘鑰對,生成的文件默認存在~/.ssh/目錄下,包括id_rsa與id_rsa.pub兩個文件。

ssh_keygen

2.從~/.ssh/目錄下,拷貝id_ras.pub文件內容到服務器端登錄賬戶下~/.ssh/authorized_keys文件中。這樣就可以從客戶端直接使用證書登錄遠程服務器了。

 cat ~/.ssh/id_rsa.pub | ssh serveruser@servername 'cat >> .ssh/authorized_keys'

3.配置OpenSSH服務器,禁止使用密碼登錄。在服務器端編輯/etc/ssh/sshd_config文件,將PasswordAuthentication設定為no,默認為yes.

-PasswordAuthentication yes+PasswordAuthentication no

禁用challenge-response。因為如果使用了PAM的challenge-response認證,就會跳過密碼認證直接登錄。

ChallengeResponseAuthentication no

4.禁止使用root賬戶登錄,將PermitRootLogin設定為no,默認為yes或prohibit-password。

-PermitRootLogin yes-PermitRootLogin no

【更安全的策略】

經過以上設定,我們的SSH登錄就基本安全了。但是,我們可以更進一步~

1.限定用戶(user)、用戶組(group)和訪問主機(host)。

在sshd_config文件中,有以下四個標籤,可以分別指定允許、禁止的用戶和用戶組

  • DenyUsers
  • AllowUsers
  • DenyGroups
  • AllowGroups

例如

AllowUsers test@testhost test2AllowGroup testgroup test2group

  僅僅允許testhost主機通過test賬戶訪問或者test2從任意機器訪問。

僅僅允許屬於testgroup或test2group的用戶

2.修改OpenSSH的端口。

這個就不多說了,默認端口22一定是攻擊的目標。

3.限制訪問主機和可執行的命令。

  在authorized_key文件中,除了rsa_key指定了公鑰之外,還可以添加from,commad,no-pty,no-port-forwarding等選項進行登錄用戶限制。

  常用設定如下

from='hostname1,hostname2,'' - 此證書允許指定的IP或主機使用command='command' - 登錄之後僅能運行指定的命令no-pty - 禁止分配pty(不允許交互登錄)no-port-forwarding - 禁止端口轉發

4.加密known_hosts。

  客戶端訪問過服務端後,會在.ssh/目錄下known_hosts存儲你的訪問記錄,包括IP/hostname,加密算法,秘鑰。如果你使用的是公共服務器或者你的密碼被盜了。那後果就非常嚴重了!

ssh-keygen -H -f ~/.ssh/known_hosts
ssh-keygen -H -f ~/.ssh/known_hosts

  使用以上命令可以將known_hosts的內容加密,但是要注意,此命令執行後原有的內容會備份到known_hosts.old文件中。刪掉這個文件!

5.隱藏SSH登錄後的系統信息。用戶登錄後,一般的都會但是系統的基本信息和每日更新、補丁的狀態,我們應該儘可能減少信息的公佈。

解決方法:假如服務器端的SSH賬戶為test,touch /home/test/.hushlogin

【總結】

安全這個話題,通常只有被黑客攻擊後才會想起來,但是為時已晚。默認的配置總是最方便也總是被大眾所知的,所以,花點時間配置一下服務器也是值得的。


轉載於:https://www.cnblogs.com/pumasun/p/9253810.html


其他:

通過 ssh 免密登錄時總是提示需要輸入密碼時,請檢查 ssh 權限是否合適:

~/.ssh/authorized_keys 其中 .ssh 目錄的權限設置為 700 ,authorized_keys 文件的權限應設置為 600 ,文件和目錄的 owner 必須為當前用保護。

新創建的 linux 用戶沒有 .ssh 目錄,需在其家目錄下手動創建或通過該賬戶生成 ssh 秘鑰等信息。


分享到:


相關文章: