sshd config安全控制限制登錄 1、只允許某個IP登錄,拒絕其他所有IP 在 /etc/hosts.allow 寫: sshd: 1.2.3.4 在 /etc/hosts.deny 寫: sshd: ALL 用 iptables 也行: iptables -A INPUT -p tcp --dport 22 -j DROP iptables -A INPUT -p tcp --dport 22 -s 1.2.3.4 -j ACCEPT 2、禁止某個用戶通過ssh登錄 在/etc/ssh/sshd_conf添加 AllowUsers 用戶名 或者 AllowGroups 組名 或者 DenyUsers 用戶名 3、設定登錄黑名單 vi /etc/pam.d/sshd 增加 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/sshd_user_deny_list onerr=succeed 所有/etc/sshd_user_deny_list裏面的用戶被拒絕ssh登錄 4、sshd_config配置 # 1. 關於 SSH Server 的整體設定,包含使用的 port 啦,以及使用的密碼演算方式 Port 22 # SSH 預設使用 22 這個 port,您也可以使用多的 port ! # 亦即重複使用 port 這個設定項目即可! Protocol 2,1 # 選擇的 SSH 協議版本,可以是 1 也可以是 2 , # 如果要同時支持兩者,就必須要使用 2,1 這個分隔了! #ListenAddress 0.0.0.0 # 監聽的主機適配卡!舉個例子來說,如果您有兩個 IP, # 分別是 192.168.0.100 及 192.168.2.20 ,那麼只想要 # 開放 192.168.0.100 時,就可以寫如同下面的樣式: ListenAddress 192.168.0.100 # 只監聽來自 192.168.0.100 這個 IP 的SSH聯機。 # 如果不使用設定的話,則預設所有接口均接受 SSH PidFile /var/run/sshd.pid # 可以放置 SSHD 這個 PID 的檔案!左列爲默認值 LoginGraceTime 600 # 當使用者連上 SSH server 之後,會出現輸入密碼的畫面, # 在該畫面中,在多久時間內沒有成功連上 SSH server , # 就斷線!時間爲秒! Compression yes # 是否可以使用壓縮指令?當然可以囉! # 2. 說明主機的 Private Key 放置的檔案,預設使用下面的檔案即可! HostKey /etc/ssh/ssh_host_key # SSH version 1 使用的私鑰 HostKey /etc/ssh/ssh_host_rsa_key # SSH version 2 使用的 RSA 私鑰 HostKey /etc/ssh/ssh_host_dsa_key # SSH version 2 使用的 DSA 私鑰 # 2.1 關於 version 1 的一些設定! KeyRegenerationInterval 3600 # 由前面聯機的說明可以知道, version 1 會使用 # server 的 Public Key ,那麼如果這個 Public # Key 被偷的話,豈不完蛋?所以需要每隔一段時間 # 來重新建立一次!這裏的時間爲秒! ServerKeyBits 768 # 沒錯!這個就是 Server key 的長度! # 3. 關於登錄文件的訊息數據放置與 daemon 的名稱! SyslogFacility AUTH # 當有人使用 SSH 登入系統的時候,SSH會記錄資 # 訊,這個信息要記錄在什麼 daemon name 底下? # 預設是以 AUTH 來設定的,即是 /var/log/secure # 裏面!什麼?忘記了!回到 Linux 基礎去翻一下 # 其它可用的 daemon name 爲:DAEMON,USER,AUTH, # LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5, LogLevel INFO # 登錄記錄的等級!嘿嘿!任何訊息! # 同樣的,忘記了就回去參考! # 4. 安全設定項目!極重要! # 4.1 登入設定部分 PermitRootLogin no # 是否允許 root 登入!預設是允許的,但是建議設定成 no! UserLogin no # 在 SSH 底下本來就不接受 login 這個程序的登入! StrictModes yes # 當使用者的 host key 改變之後,Server 就不接受聯機, # 可以抵擋部分的***程序! #RSAAuthentication yes # 是否使用純的 RSA 認證!?僅針對 version 1 ! PubkeyAuthentication yes # 是否允許 Public Key ?當然允許啦!只有 version 2 AuthorizedKeysFile .ssh/authorized_keys # 上面這個在設定若要使用不需要密碼登入的賬號時,那麼那個 # 賬號的存放檔案所在檔名! Allowusers [email protected]. #設置允許root帳號只能以222.XX.XX.XX這個IP進行ssh連接· # 4.2 認證部分 RhostsAuthentication no # 本機系統不止使用 .rhosts ,因爲僅使用 .rhosts 太 # 不安全了,所以這裏一定要設定爲 no ! IgnoreRhosts yes # 是否取消使用 ~/.ssh/.rhosts 來做爲認證!當然是! RhostsRSAAuthentication no # 這個選項是專門給 version 1 用的,使用 rhosts 檔案在 # /etc/hosts.equiv配合 RSA 演算方式來進行認證!不要使用 HostbasedAuthentication no # 這個項目與上面的項目類似,不過是給 version 2 使用的! IgnoreUserKnownHosts no # 是否忽略家目錄內的 ~/.ssh/known_hosts 這個檔案所記錄 # 的主機內容?當然不要忽略,所以這裏就是 no 啦! PasswordAuthentication yes # 密碼驗證當然是需要的!所以這裏寫 yes 囉! PermitEmptyPasswords no # 若上面那一項如果設定爲 yes 的話,這一項就最好設定 # 爲 no ,這個項目在是否允許以空的密碼登入!當然不許! ChallengeResponseAuthentication yes # 挑戰任何的密碼認證!所以,任何 login.conf # 規定的認證方式,均可適用! #PAMAuthenticationViaKbdInt yes # 是否啓用其它的 PAM 模塊!啓用這個模塊將會 # 導致 PasswordAuthentication 設定失效! # 4.3 與 Kerberos 有關的參數設定!因爲我們沒有 Kerberos 主機,所以底下不用設定! #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #KerberosTgtPassing no # 4.4 底下是有關在 X-Window 底下使用的相關設定! X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes # 4.5 登入後的項目: PrintMotd no # 登入後是否顯示出一些信息呢?例如上次登入的時間、地點等 # 等,預設是 yes ,但是,如果爲了安全,可以考慮改爲 no ! PrintLastLog yes # 顯示上次登入的信息!可以啊!預設也是 yes ! KeepAlive yes # 一般而言,如果設定這項目的話,那麼 SSH Server 會傳送 # KeepAlive 的訊息給 Client 端,以確保兩者的聯機正常! # 在這個情況下,任何一端死掉後, SSH 可以立刻知道!而不會 # 有殭屍程序的發生! UsePrivilegeSeparation yes # 使用者的權限設定項目!就設定爲 yes 吧! MaxStartups 10 # 同時允許幾個尚未登入的聯機畫面?當我們連上 SSH , # 但是尚未輸入密碼時,這個時候就是我們所謂的聯機畫面啦! # 在這個聯機畫面中,爲了保護主機,所以需要設定最大值, # 預設最多十個聯機畫面,而已經建立聯機的不計算在這十個當中 # 4.6 關於使用者抵擋的設定項目: DenyUsers * # 設定受抵擋的使用者名稱,如果是全部的使用者,那就是全部 # 擋吧!若是部分使用者,可以將該賬號填入!例如下列! DenyUsers test DenyGroups test # 與 DenyUsers 相同!僅抵擋幾個羣組而已! # 5. 關於 SFTP 服務的設定項目! Subsystem sftp /usr/lib/ssh/sftp-server 如果不願意開放 SFTP 的話,將這一行批註掉即可!
好了,以上是所有內容了.
如果你文章中有不正確的地方,或者你有更好的idea。
歡迎來和我分享。E-mail:[email protected]