openssh安全加固

在用ssh登陸遠程主機(suse linux系統)的時候,出現下列問題: 


ssh_exchange_identification: Connection closed by remote host,這個問題是因SSH的安全限製造成的。


具體解決辦法:修改/etc/hosts.allow文件,加入sshd:ALL:ALLOW,然後wq保存並重啓sshd服務即可。


就這個小問題,來總結一下SUSE LINUX中的SSH安全加固問題:


 


注:以下配置項都是在/etc/ssh/sshd_config 文件中修改


1、更改ssh默認端口


在/etc/ssh/sshd_config文件中查找下面這樣的行:


Port 22


將22端口更改成其它端口,如:10326 。


保存後,重啓SSHD 服務:service sshd restart


建議改成10000 以上。這樣別人掃描到端口的機率會大大下降。


 


2、限制ROOT遠程登陸


在/etc/ssh/sshd_config文件中查找下面這樣的行:


PermitRootLogin yes


將yes改爲no. 


保存後,重啓SSHD 服務:service sshd restart


當你啓用這一選項後,你只能用普通用戶登錄,然後再用su 切換到root 帳戶。


 


3、修改默認登錄時間


在/etc/ssh/sshd_config文件中查找下面這樣的行:


LoginGraceTime 2m


當你連接到SSH 後,默認是提供2 分鐘的時間讓你輸入帳戶和密碼來進行登錄,你可以修改這個時間爲1 分鐘或30 秒。


 


4、升級舊版本


升級陳舊的Openssh版本,因爲早期的Openssh版本,存在安全漏洞。對於一個新配置的Openssh服務器來說使用最新穩定版本是最明智的選擇。可以在其官網http://www.openssh.com 下載源代碼進行編譯。


 


5、當用戶處於非活動時斷線


在/etc/ssh/sshd_config文件中查找下面這樣的行:


ClientAliveCountMax 3


ClientAliveInterval 0


進行如下修改:


 ClientAliveInterval 600


ClientAliveCountMax 0ClientAliveCountMax 600:當用戶在10 分鐘內處於非活動狀態的話,就自動斷線


ClientAliveCountMax:默認爲3 ,表示當SSH 沒有任何活動時,SSH Server 會發送三次檢查是否在線(checkalive)的消息。


ClientAliveCountMax:默認爲0,表示當過了幾秒後,SSH Server 會發送消息要求用戶響應(0 的話表示永遠不發送),否則就斷線。


 


6、修改加密協議版本


在/etc/ssh/sshd_config文件中查找下面這樣的行:


#Protocol 2,1


默認是1和2都可以,將其改爲Protocol 2


保存後,重啓SSHD 服務:service sshd restart


 與version 1 不同的是,在version 2 當中將不再產生server key 了,所以當Client 端聯機到Server 端時,兩者將藉由Diffie-Hellman key 的演算方式來產生一個分享的Key ,之後兩者將藉由類似Blowfish 的演算方式進行同步解密的動作!


 


7、限制IP 登錄


如果你以固定IP 方式連接你的服務器,那麼你可以設置只允許某個特定的IP 登錄服務器。例如我是通過特定堡壘機登錄到服務器。設置如下:


 編輯/etc/hosts.allow


vi /etc/hosts.allow


例如只允許124.45.67.52 登錄


sshd:124.45.67.52:ALLOW


保存後,重啓SSHD 服務:service sshd restart


 


8、允許或禁止指定用戶和組登錄


 僅允許指定用戶和組登錄


 AllowUsers  john     jason指定用戶


AllowGroups sysadmin dba  指定組


禁止指定的用戶或組登錄


 DenyUsers  corn   apath指定用戶


DenyGroups devers qa   指定組


 保存後,重啓SSHD 服務:service sshd restart


 注:Allow 和Deny 可以組合使用,它們的處理順序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups


  


9、限制監聽IP


如果你的服務器上有多個網卡及IP ,那麼你可以限制某些IP 不監聽SSH,只允許通過某些IP 來登錄。


 比如你有四個網卡


 eth0 – 192.168.10.200


eth1 – 192.168.10.201


eth2 – 192.168.10.202


eth3 –192.168.10.203你只想讓用戶通過200, 202 這兩個IP 來登錄,那麼做以下設定


在/etc/ssh/sshd_config文件中查找下面這樣的行:


#ListenAddress 0.0.0.0,進行如下修改


 


ListenAddress 192.168.10.200


ListenAddress 192.168.10.20210、最後修改配置文件的屬性,防止非授權用戶修改配置文件


#chmod 644 /etc/ssh/sshd_config


另外注意/etc/ssh下的文件不能設爲777的權限,因爲ssh本來就是一個安全登陸的模式,如果設成777(所有人可以任意訪問修改),那還有什麼安全性可言呢?


 


總結:每一個小的問題經過認真思考和總結,你就會發現很多有用的細節。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章