全文引自:http://yenpai.idis.com.tw/archives/273-%E6%95%99%E5%AD%B8-centos-6-3-%E8%A8%AD%E5%AE%9A-1-%E5%9F%BA%E6%9C%AC%E8%AA%BF%E6%95%88%E8%88%87-ssh-%E9%80%A3%E7%B7%9A
在完成 最小安裝 與 網路設定 之後,此時你的 CentOS 已經處於 On Live 狀態,在預設的安裝中,CentOS 會內建並啟動 SSH 遠端連線的服務,且啟動防火牆,只允許 ICMP 與 SSH 連線,這表示你已經可以透過網路連線,而不再需要直接操作實體主機。
但,這樣就夠安全了嗎?其實 SSH 一點都不安全,當你的主機開啟此類服務時,表示任何人都可能透過網路的方式來嘗試連線到你的主機,透過 Port 掃瞄、字典檔或暴力破解,無論如何,root 密碼最終還是會被破解,而你的主機就淪為駭客的溫床。
因此,本文將引導大家透過設定 SSH ,降低被攻擊的可能,在配合防火牆的配置,只允許許可的網段連線,讓駭客無從而入。最後再針對環境配置,讓系統運作更加乾淨利落。
一、使用 SSH 連線 (PuTTY , PieTTY)
在剛安裝完後的主機,預設就會開啟 SSH 服務,而 Port 也為預設的 22,要遠端連線這個服務,就必須去下載 SSH 的 Client 軟體,一般在 Windows 環境下,幾乎所有使用 Linux 系統的玩家,都會推薦使用 PuTTY (支援中文的版本為 PieTTY) 這一套來連線。
只要輸入您的主機 IP 與 Port ,就會透過網路遠端連線到該主機
使用 SSH 第一次連線時,會進行 RSA2 的金鑰交換,來達成整個連線,傳輸資料的安全(加密傳輸),這就是 SSH 比一般連線還安全的原因(能防止中途攔截時,封包內容被解讀)
再來就會看到登入畫面,輸 root 帳戶與密碼就會登入成功了,這也意味著任何能夠知道 IP 的人,都能嘗試登入你的 root 帳號
二、設定 SSH 服務
如上面所說,目前的 SSH 是可能會被任何人連線的,因此,我們可以透過 SSH 服務的設定檔來增加安全性,目標作以下幾項變更:
- 更改 Port 為 3322 (防止掃瞄Port)
- 不允許 root 登入(自己建立另一個新使用者來登入)
- DNS反查關閉(加快登入速度)
- 只允許指定的帳號登入(如範例為 yenpai 和 jess)
SSH 服務的設定檔 /etc/ssh/sshd_config
1 2 3 4 5 6 7 8 9 10 11 | [root@localhost ~] # vi /etc/ssh/sshd_config Port 3322 PermitRootLogin no UseDNS no AllowUsers yenpai jess [root@localhost ~] # service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ] [root@localhost ~] # |
設定完後要重啟服務(service sshd restart)才會真正生效,可以透過 netstat 指令來確認重啟後的 SSH 服務是否以 Port 3322 來接受連線
1 2 3 | [root@localhost ~] # netstat -ant | grep :3322 tcp 0 0 0.0.0.0:3322 0.0.0.0:* LISTEN tcp 0 0 :::3322 :::* LISTEN |
目前 SSH 的 Port 已經被更改到 3322,並且 root 帳戶無法登入,所以要建立另一個使用者帳戶來登入(adduser 新增帳戶,passwd 設定帳戶密碼)