7*24小時服務熱線

400-123-789

服務器/主機/空間
服務與支持
售後服務:
售後支持7x24小時
400-123-789
0592-8397998
企業QQ:
835473315(多人值班)
夜班緊急電話:
13306033708
售前咨詢

配置Linux服務器SSH 安全訪問的四個小技巧

作者:sally   2019-07-02  |
我以 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,及時發現隐患并排除。
 
下一篇: 沒有了
上一篇:在linux服務器上如何删除文件

産品使用幫助

合作夥伴
http://m.juhua532444.cn|http://wap.juhua532444.cn|http://www.juhua532444.cn||http://juhua532444.cn