在用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(所有人可以任意訪問修改),那還有什麼安全性可言呢?
總結:每一個小的問題經過認真思考和總結,你就會發現很多有用的細節。