以CentOS為例總結如何配置SSH安全訪問

來源:互聯網
上載者:User

越來越多的站長,開始使用外掛式主控件(Dedicated Host)和 VPS。而為了節省成本或提高效能,不少人的獨機和 VPS,都是基於 unmanaged 的裸機,一切都要自己 DIY。這時候,安全性原則的實施,就猶為重要。下面這篇文章,我以 CentOS 為例,簡單地總結一下如何配置 SSH 安全訪問。
Linux SSH 安全性原則一:關閉無關連接埠
網路上被攻陷的大多數主機,是駭客用掃描工具大範圍進行掃描而被瞄準上的。所以,為了避免被掃描到,除了必要的連接埠,例如 Web、FTP、SSH 等,其他的都應關閉。值得一提的是,我強烈建議關閉 icmp 連接埠,並設定規則,丟棄 icmp 包。這樣別人 Ping 不到你的伺服器,威脅就自然減小大半了。丟棄 icmp 包可在 iptables 中, 加入下面這樣一條:
 
-A INPUT -p icmp -j DROP
 
Linux SSH 安全性原則二:更改 SSH 連接埠
預設的 SSH 連接埠是 22。強烈建議改成 10000 以上。這樣別人掃描到連接埠的機率也大大下降。修改方法:
 
# 編輯 /etc/ssh/ssh_config vi /etc/ssh/ssh_config # 在 Host * 下 ,加入新的 Port 值。以 18439 為例(下同): Port 22 Port 18439 # 編輯 /etc/ssh/sshd_config vi /etc/ssh/sshd_config #加入新的 Port 值 Port 22 Port 18439 # 儲存後,重啟 SSH 服務: service sshd restart
 
這裡我設定了兩個連接埠,主要是為了防止修改出錯導致 SSH 再也登不上。更改你的 SSH 用戶端(例如:Putty)的串連連接埠,測試連接,如果新連接埠能串連成功,則再編輯上面兩個檔案,刪除 Port 22 的配置。如果串連失敗,而用 Port 22 串連後再重新設定。
連接埠設定成功後,注意同時應該從 iptables 中, 刪除22連接埠,添加新配置的 18439,並重啟 iptables。
如果 SSH 登入密碼是弱密碼,應該設定一個複雜的密碼。Google Blog 上有一篇強調密碼安全的文章:Does your password pass the test?
Linux SSH 安全性原則三:限制 IP 登入
如果你能以固定 IP 方式串連你的伺服器,那麼,你可以設定只允許某個特定的 IP 登入伺服器。例如我是通過自己的 VPN 登入到伺服器。設定如下:
 
# 編輯 /etc/hosts.allow
vi /etc/hosts.allow
# 例如只允許 123.45.67.89 登入
sshd:123.45.67.89
 
Linux SSH 安全性原則四: 使用認證登入 SSH
相對於使用密碼登入來說,使用認證更為安全。自來水沖咖啡有寫過一篇詳細的教程,徵得其同意,轉載如下:
為CentOS配置SSH認證登入驗證
幫公司網管遠程檢測一下郵件伺服器,一台CentOS 5.1,使用OpenSSH遠端管理。檢查安全日誌時,發現這幾天幾乎每天都有一堆IP過來猜密碼。看來得修改一下登入驗證方式,改為認證驗證為好。
為防萬一,臨時啟了個VNC,免得沒配置完,一高興順手重啟了sshd就麻煩了。(後來發現是多餘的,只要事先開個putty別關閉就行了)
以下是簡單的操作步驟:
 
1)先添加一個維護帳號:msa

2)然後su - msa

3)ssh-keygen -t rsa
指定密鑰路徑和輸入口令之後,即在/home/msa/.ssh/中產生公開金鑰和私密金鑰:id_rsa id_rsa.pub

4)cat id_rsa.pub >> authorized_keys
至於為什麼要產生這個檔案,因為sshd_config裡面寫的就是這個。
然後chmod 400 authorized_keys,稍微保護一下。

5)用psftp把把id_rsa拉回本地,然後把伺服器上的id_rsa和id_rsa.pub幹掉

6)配置/etc/ssh/sshd_config
Protocol 2
ServerKeyBits 1024
PermitRootLogin no  #禁止root登入而已,與本文無關,加上安全些

#以下三行沒什麼要改的,把預設的#注釋去掉就行了
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile    .ssh/authorized_keys

PasswordAuthentication no
PermitEmptyPasswords no

7)重啟sshd
/sbin/service sshd restart

8)轉換認證格式,遷就一下putty
運行puttygen,轉換id_rsa為putty的ppk認證檔案

9)配置putty登入
在connection--SSH--Auth中,點擊Browse,選擇剛剛轉換好的認證。
然後在connection-Data填寫一下auto login username,例如我的是msa
在session中填寫伺服器的IP地址,高興的話可以save一下

10)解決一點小麻煩
做到這一步的時候,很可能會空歡喜一場,此時就興沖沖的登入,沒準登不進去:
No supported authentication methods available

這時可以修改一下sshd_config,把
PasswordAuthentication no臨時改為:
PasswordAuthentication yes 並重啟sshd

這樣可以登入成功,退出登入後,再重新把PasswordAuthentication的值改為no,重啟sshd。
以後登入就會正常的詢問你密鑰檔案的密碼了,答對了就能高高興興的登進去。

至於psftp命令,加上個-i參數,指定認證檔案路徑就行了。
 
如果你是遠程動作伺服器修改上述配置,切記每一步都應謹慎,不可出錯。如果配置錯誤,導致 SSH 串連不上,那就杯具了。
基本上,按上述四點配置好後,Linux 下的 SSH 訪問,是比較安全的了。當然,安全與不安全都是相對的,你應該定期檢查伺服器的 log,及時發現隱患並排除。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.