ssh服務配置
本文針對deb系,其他也可參考。
安裝
sudo aptitude install openssh-server
默認的配置就不錯。懶的話就直接用了。什麽都不要配。
要折騰的,修改/etc/ssh/sshd_config。有詳細的注釋,照著改也差不多。
下面是羅嗦一些和安全有關的選項。
PermitEmptyPasswords這個默認是no,不用改。但還是特別提出一說。如果允許這個,再碰上個貪圖方便的用戶設了空密碼,那就毫無安全性可言了。
PermitRootLogin改成no。如果服務器就在本地的,那禁了就安全。就算有人知道了你的密碼或者暴力破解了,也沒辦法以root身份登錄。如果是遠程的,禁了也增強安全性。普通用戶ssh進來,再su或sudo。入侵的先要想辦法以普通用戶身份ssh,然後還要知道密碼(su的話要知道root的密碼,sudo的話要知道普通用戶的密碼),顯然麻煩多了。
Port很多建議改成22以外的。因為大部分掃描端口的,都是些病毒、木馬或者是現成的黑客工具,這些為了節約資源一般只掃22的。但是這個基本沒有太大意義。因為如果你設置正確,就算掃到了你22端口,也沒法侵入。所以這個最大的意義,可能是減少日志中的噪音。
AllowUsers和AllowGroups,可以設置只允許特定用戶和組通過ssh進來。
PasswordAuthentication改成no。公鑰認証方式安全多了。
Protocol設為2。還有人在用不支持2代protocol的老舊ssh客戶端的嗎?
X11Forwarding和AllowTcpForwarding設為no。大多數情況不需要這個。不過,除非同時禁shell訪問,意義不是很大,因為有shell後,用戶可以裝自己的forwarder。
MaxAuthTries,MaxStartups和LoginGraceTime三項組合可以抵禦暴力破解。但也別設得過頭了,不然容易被DoS。一般用默認的就好。
TCPKeepAlive設為no。這個方法是spoofable的,更好的做法是設置ClientAliveCountMax和ClientAliveInterval。默認設置yes,只是為了兼容1代協議。既然我們已經把1代協議廢掉了,沒有理由不用ClientAliveCountMax和ClientAliveInterval代替TCPKeepAlive。
以上僅供備忘,具體每個選項的設置請讀Manual中的相應部分。
June 14th, 2008 at 8:44 pm
1 dont use /bin/false as shell
2 use denyhosts or ...
June 15th, 2008 at 2:19 am
为啥不是 dropbear 了呢