時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(1)
本文轉(zhuǎn)載自程序員小輝的博客。原文標(biāo)題:《配置 Linux 服務(wù)器 SSH 安全訪問的四個小技巧》(http://www.xiaohui.com/dev/server/centos-security-for-ssh.htm)。
越來越多的站長,開始使用獨立主機(Dedicated Host)和 VPS。而為了節(jié)省成本或提高性能,不少人的獨機和 VPS,都是基于 unmanaged 的裸機,一切都要自己 DIY。這時候,安全策略的實施,就猶為重要。下面這篇文章,我以 CentOS 為例,簡單地總結(jié)一下如何配置 SSH 安全訪問。
Linux SSH 安全策略一:關(guān)閉無關(guān)端口
網(wǎng)絡(luò)上被攻陷的大多數(shù)主機,是黑客用掃描工具大范圍進行掃描而被瞄準(zhǔn)上的。所以,為了避免被掃描到,除了必要的端口,例如 Web、FTP、SSH 等,其他的都應(yīng)關(guān)閉。值得一提的是,我強烈建議關(guān)閉 icmp 端口,并設(shè)置規(guī)則,丟棄 icmp 包。這樣別人 Ping 不到你的服務(wù)器,威脅就自然減小大半了。丟棄 icmp 包可在 iptables 中, 加入下面這樣一條:
- -A?INPUT?-p?icmp?-j?DROP ?
- ?
Linux SSH 安全策略二:更改 SSH 端口
默認(rèn)的 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?服務(wù): ?
- service?sshd?restart ?
- ?
這里我設(shè)置了兩個端口,主要是為了防止修改出錯導(dǎo)致 SSH 再也登不上。更改你的 SSH 客戶端(例如:Putty)的連接端口,測試連接,如果新端口能連接成功,則再編輯上面兩個文件,刪除 Port 22 的配置。如果連接失敗,而用 Port 22 連接后再重新配置。
端口設(shè)置成功后,注意同時應(yīng)該從 iptables 中, 刪除22端口,添加新配置的 18439,并重啟 iptables。
如果 SSH 登錄密碼是弱密碼,應(yīng)該設(shè)置一個復(fù)雜的密碼。Google Blog 上有一篇強調(diào)密碼安全的文章:Does your password pass the test?
Linux SSH 安全策略三:限制 IP 登錄
如果你能以固定 IP 方式連接你的服務(wù)器,那么,你可以設(shè)置只允許某個特定的 IP 登錄服務(wù)器。例如我是通過自己的 VPN 登錄到服務(wù)器。設(shè)置如下:
- #?編輯?/etc/hosts.allow ?
- vi?/etc/hosts.allow ?
- #?例如只允許?123.45.67.89?登錄 ?
- sshd:123.45.67.89 ?
Linux SSH 安全策略四: 使用證書登錄 SSH
相對于使用密碼登錄來說,使用證書更為安全。自來水沖咖啡有寫過一篇詳細的教程,征得其同意,轉(zhuǎn)載如下:
為CentOS配置SSH證書登錄驗證
來源:自來水沖咖啡
下午幫公司網(wǎng)管遠程檢測一下郵件服務(wù)器,一臺CentOS 5.1,使用OpenSSH遠程管理。
檢查安全日志時,發(fā)現(xiàn)這幾天幾乎每天都有一堆IP過來猜密碼。看來得修改一下登錄驗證方式,改為證書驗證為好。
為防萬一,臨時啟了個VNC,免得沒配置完,一高興順手重啟了sshd就麻煩了。(后來發(fā)現(xiàn)是多余的,只要事先開個putty別關(guān)閉就行了)
以下是簡單的操作步驟:
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拉回本地,然后把服務(wù)器上的id_rsa和id_rsa.pub干掉
6)配置/etc/ssh/sshd_config
- Protocol?2 ?
- ServerKeyBits?1024 ?
- PermitRootLogin?no??#禁止root登錄而已,與本文無關(guān),加上安全些 ?
- ?
- #以下三行沒什么要改的,把默認(rèn)的#注釋去掉就行了 ?
- RSAAuthentication?yes ?
- PubkeyAuthentication?yes ?
- AuthorizedKeysFile????.ssh/authorized_keys ?
- ?
- PasswordAuthentication?no ?
- PermitEmptyPasswords?no ?
- ?
7)重啟sshd
- /sbin/service?sshd?restart ?
- ?
8)轉(zhuǎn)換證書格式,遷就一下putty
運行puttygen,轉(zhuǎn)換id_rsa為putty的ppk證書文件
9)配置putty登錄
在connection--SSH--Auth中,點擊Browse,選擇剛剛轉(zhuǎn)換好的證書。然后在connection-Data填寫一下auto login username,例如我的是msa。在session中填寫服務(wù)器的IP地址,高興的話可以save一下
10)解決一點小麻煩
做到這一步的時候,很可能會空歡喜一場,此時就興沖沖的登錄,沒準(zhǔn)登不進去:
- No?supported?authentication?methods?available ?
- ?
這時可以修改一下sshd_config,把
PasswordAuthentication no
臨時改為:
PasswordAuthentication yes
并重啟sshd。
這樣可以登錄成功,退出登錄后,再重新把PasswordAuthentication的值改為no,重啟sshd。以后登錄就會正常的詢問你密鑰文件的密碼了,答對了就能高高興興的登進去。
至于psftp命令,加上個-i參數(shù),指定證書文件路徑就行了。
如果你是遠程操作服務(wù)器修改上述配置,切記每一步都應(yīng)慎重,不可出錯。如果配置錯誤,導(dǎo)致 SSH 連接不上,那就杯具了。
基本上,按上述四點配置好后,Linux 下的 SSH 訪問,是比較安全的了。當(dāng)然,安全與不安全都是相對的,你應(yīng)該定期檢查服務(wù)器的 log,及時發(fā)現(xiàn)隱患并排除。
關(guān)鍵詞標(biāo)簽:SSH遠程訪問,Linux服務(wù)
相關(guān)閱讀
熱門文章
火絨安全軟件開啟懸浮窗的方法-怎么限制和設(shè)置軟件網(wǎng)速
火絨安全軟件怎么攔截廣告-火絨設(shè)置廣告攔截的方法
網(wǎng)絡(luò)安全管理軟件-PCHunter使用教程
騰訊QQ密碼防盜十大建議
人氣排行 火絨安全軟件開啟懸浮窗的方法-怎么限制和設(shè)置軟件網(wǎng)速 火絨安全軟件怎么攔截廣告-火絨設(shè)置廣告攔截的方法 網(wǎng)絡(luò)安全管理軟件-PCHunter使用教程 xp系統(tǒng)關(guān)閉445端口方法_ 教你如何關(guān)閉xp系統(tǒng)445端口 什么是IPS(入侵防御系統(tǒng)) 企業(yè)網(wǎng)絡(luò)安全事件應(yīng)急響應(yīng)方案 ARP協(xié)議的反向和代理 Windows Server 2008利用組策略的安全設(shè)置