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中的相應部分。

2 Responses to “ssh服務配置”

  1. fcicq Says:

    1 dont use /bin/false as shell
    2 use denyhosts or ...

  2. 华华 Says:

    为啥不是 dropbear 了呢

Leave a Reply