ssh安全設置,提高服務器安全性

sshd[25632]: Failed password for root from 121.43.184.36 port 30580 ssh2

sshd[25633]: Received disconnect from 121.43.184.36: 11: Bye Bye

 pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=12
1.43.184.36  user=root



服務器放在公網上,每天有大量ssh連接嘗試登錄,嘗試破解root密碼,網上找了一些方法

SSH配置文件在/etc/ssh/ssh_config ,通過修改配置參數可以提高安全性,參考 http://blog.licess.com/sshd_config/



以下轉載於 http://www.coolskill.net/article/ssh-security-methods-to-improve.htm

1. 修改sshd服務器的配置文件/etc/ssh/sshd_config,將部分參數參照如下修改,增強安全性。

系統缺省使用22號端口,將監聽端口更改爲其他數值(最好是1024以上的高端口,以免和其他常規服務端口衝突),這樣可以增加入侵者探測系統是否運行了 sshd守護進程的難度。

Port 5555

對於在服務器上安裝了多個網卡或配置多個IP地址的情況,設定sshd只在其中一個指定的接口地址監聽,這樣可以減少sshd的入口,降低入侵的可能性。

ListenAddress 192.168.0.1

如果允許用戶使用root用戶登錄,那麼黑客們可以針對root用戶嘗試暴力破解密碼,給系統安全帶來風險。

PermitRootLogin no

允許使用空密碼系統就像不設防的堡壘,任何安全措施都是一句空話。

PermitEmptyPasswords no

只允許指定的某些用戶通過ssh訪問服務器,將ssh使用權限限定在最小的範圍內。

AllowUsers sshuser1 sshuser2

同上面的AllowUsers類似,限定指定的用戶組通過ssh訪問服務器,二者對於限定訪問服務器有相同的效果。

AllowGroups sshgroup

禁止使用版本1協議,因爲其存在設計缺陷,很容易使密碼被黑掉。

Protocol 2

關閉X11Forwarding,防止會話被劫持。

X11Forwarding no

sshd服務運行時每一個連接都要使用一大塊可觀的內存,這也是ssh存在拒絕服務攻擊的原因。一臺服務器除非存在許多管理員同時管理服務器,否則上面這 個連接數設置是夠用了。

MaxStartups 5

注意:以上參數設置僅僅是一個示例,用戶具體使用時應根據各自的環境做相應的更改。

2. 修改sshd服務器的配置文件/etc/ssh/sshd_config的讀寫權限,對所有非root用戶設置只讀權限,防止非授權用戶修改sshd 服務的安全設置。

chmod 644 /etc/ssh/sshd_config

3. 設置TCP Wrappers。服務器默認接受所有的請求連接,這是非常危險的。使用TCP Wrappers可以阻止或允許應用服務僅對某些主機開放,給系統在增加一道安全屏障。這部分設置共涉計到兩個文件:hosts.allow和 hosts.deny。

將那些明確允許的請求添加到/etc/hosts.allow中。如系統僅允許IP地址爲192.168.0.15和10.0.0.11的主機使用 sshd服務,則添加如下內容:

sshd:192.168.0.15 10.0.0.11

將需要禁止使用的信息添加到/etc/hosts.deny中。如對除了在hosts.allow列表中明確允許使用sshd的用戶外,所有其他用戶都禁止使用sshd服務,則添加如下內容到hosts.deny文件中:

sshd:All

注意:系統對上述兩個文件的判斷順序是先檢查hosts.allow文件再查看hosts.deny文件,因此一個用戶在hosts.allow允許使用網絡資源,而同時在hosts.deny中禁止使用該網絡資源,在這種情況下系統優先選擇使用hosts.allow配置,允許用戶使用該網絡資源。

4. 儘量關閉一些系統不需要的啓動服務。系統默認情況下啓動了許多與網絡相關的服務,因此相對應的開放了許多端口進行LISTENING(監聽)。我們知道,開放的端口越多,系統從外部被入侵的可能也就越大,所以我們要儘量關閉一些不需要的啓動服務,從而儘可能的關閉端口,提供系統的安全性。

http://blog.ddup.us/2012/04/09/server-intrusion-events/


  1. SSHD默認開22端口沒問題,但是一旦開了默認端口,那麼必須配合iptables限制訪問數量,防止暴力破解。網上找的一段iptables配置規則,每分鐘至多允許三條ssh連接,一旦超過之後,客戶端的連接將會在下一分鐘內全部被拒絕。

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set \  
 --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl \  
 --name SSH -j LOG --log-prefix "SSH_brute_force "
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 \  
 --hitcount 4 --rttl --name SSH -j DROP


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