2012年8月9日 星期四

修改 SSH 的預設設定檔

SSH 是一個公認相當安全的「遠端終端機」連線程式,它的預設埠號 (port number) 是 22 ,
你知、我知、駭客也知
為了不讓駭客太容易得逞,基本的「移宮換穴」一定要做。說的容易,做來還有點不簡單。步驟如下:

1. 切換成 root 身份

需先切換成 root 身份才能做以下操作,請參考 " 在 Linux 中,切換為 root 身分以操作、設定系統 " 。

2. 修改 SSH 的設定檔

SSH 的設定檔為 " /etc/ssh/sshd_config " ,可以用編輯程式 gedit(圖型化介面)或 vim(文字介面)編輯它。找出下列幾列文字,修改它們成
Port  5566
PermitRootLogin  no
GSSAPIAuthentication  no
UseDNS  no
每列最前面的 "#" 要記得去掉,其中各行修改之作用為
設 定 項 目作   用
Port修改埠號,通常大於 1024,不要與其它服務相衝突
PermitRootLogin不允許直接由遠端以 root 登入
GSSAPIAuthentication當 SSH 客戶端連入時,會產生 DSN 查詢。一般電腦多無域名,關閉這兩個設定,可以加快輸入密碼後的回應時間
UseDNS

3. 修改 SELinux 的設定

如果你的系統不是 Fedora 這一類,這步驟可能不需要,請跳過。

SELinux 的設定較麻煩,但是這是 Fedora 系統安全的特色,千萬不要怕麻煩而直接關掉。這就像「嫌用鑰匙開門很麻煩,乾脆把門拆了」一樣,會將許多與安全有關的設定也關閉。修改 SELinux 有兩個方法,如果你正在「終端機」裏,直接下命令比較方便。
[root@Celeron-D ~]$ semanage port -a -t ssh_port_t -p tcp 5566
這個命令是允許 SSH 服務可使用埠號 5566,若你的埠號不是 5566,請替換成你所使用的埠號。
注意:SELinux 這類命令,執行時間都比較長,請耐心等候其執行完畢。

  另一個方法是使用「圖形使用介面」的「SELinux 管理」程式。從「程式選單」→「系統」→「管理」→「SELinux 管理」啟動這個程式。要先通過 root 密碼驗證,程式才會正常執行。
    從「選擇:」的清單點選「網路通訊埠」,再按右方「十 加入」按鈕,會跳出一個「Add 網路通訊埠」的視窗。
在視窗裏的「埠號」輸入 5566 、「通訊協定」選 tcp 、 「SELinux 類型」填上 ssh_port_t 、最後在「MLS/MCS 等級」中輸入 s0 。再按「確定」鈕即完成。

4. 修改「防火牆」的設定

這時候要記得把「防火牆」設定改一下,SSH 才可以由新設定的埠號,接受遠端的連線。請參考 " Fedora 之「圖形化用戶介面(GUI)」的「防火牆」設定程式 " 一文,開啟新設的 SSH 埠號。

5. 重新啟動 SSH 服務

所有設定完成後,要重新啟動 SSH 這些修改才會生效,可直接在「終端機」下 " service sshd restart " 這個命令,
[root@Celeron-D ~]# service sshd restart   
正在停止   sshd:[  確定  ]
正在啟動   sshd:[  確定  ]
[root@Celeron-D ~]#
在 Fedora 17 中,服務器的管理架構有些修改,要換另一個命令,
[root@Celeron-D ~]# systemctl restart sshd.service
[root@Celeron-D ~]#
或是用圖形介面操作,從「程式選單」→「系統」→「管理」→「服務」啟動這個程式。將選單下拉點選 sshd 後,再用「滑鼠左鍵」按「重新啟動」鈕。此時會跳出一個驗證視窗,輸入 root 密碼,
身份驗證通過後,SSH 服務就會重新啟動。

已測試版本:

  • Fedora: 14, 17

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)