OpenSSH服务的一些设定

在Redhat和CentOS中,重要的设定文件是 /etc/ssh/sshd_config
# 1. 關於 SSH Server 的整體設定,包含使用的 port 啦,以及使用的密碼演算方式
# 先留意一下,在預設的檔案內,只要是被註解的設定值(#),即為『預設值!』
Port 22
# SSH 預設使用 22 這個port,也可以使用多個port,即重複使用 port 這個設定項目!
# 例如想要開放 sshd 在 22 與 443 ,則多加一行內容為:
# Port 443
# 這樣就好了!不過,不建議修改 port number 啦!

Protocol 1,2
# 選擇的 SSH 協定版本,可以是 1 也可以是 2 ,
# 如果要同時支援兩者,就必須要使用 2,1 這個分隔了(Protocol 1,2)!
# 目前我們會建議您,直接使用 Protocol 2 即可!

#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 2m
# 當使用者連上 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 私鑰
# 還記得我們在主機的 SSH 連線流程裡面談到的,這裡就是 Host Key ~

# 2.1 關於 version 1 的一些設定!
#KeyRegenerationInterval 1h
# 由前面連線的說明可以知道, version 1 會使用 server 的 Public Key ,
# 那麼如果這個 Public Key 被偷的話,豈不完蛋?所以需要每隔一段時間
# 來重新建立一次!這裡的時間為秒!不過我們通常都僅使用 version 2 ,
# 所以這個設定可以被忽略喔!

#ServerKeyBits 768
# 沒錯!這個就是 Server key 的長度!用預設值即可。

# 3. 關於登錄檔的訊息資料放置與 daemon 的名稱!
SyslogFacility AUTHPRIV
# 當有人使用 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
# 上面這個在設定若要使用不需要密碼登入的帳號時,那麼那個帳號的存放檔案所在檔名!
# 這個設定值很重要喔!檔名給他記一下!

# 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 no
# 允許任何的密碼認證!所以,任何 login.conf 規定的認證方式,均可適用!
# 但目前我們比較喜歡使用 PAM 模組幫忙管理認證,因此這個選項可以設定為 no 喔!
UsePAM yes
# 利用 PAM 管理使用者認證有很多好處,可以記錄與管理。
# 所以這裡我們建議您使用 UsePAM 且 ChallengeResponseAuthentication 設定為 no
# 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
# 亦即是列印出 /etc/motd 這個檔案的內容。但是,如果為了安全,可以考慮改為 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

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a comment