Linux的安全模型(LSM)在設計上比Windows嚴謹,但這不意味著可以放任不管。大多數VPS被入侵的原因不是什么零日漏洞,而是默認配置沒改、補丁沒打、權限沒收。下面這20條,覆蓋了LinuxVPS安全加固的核心操作,按從基礎到進階的順序排列。
1.禁用root直接登錄
每臺Linux服務器默認都有`root`用戶,自動化暴力破解工具也默認先打這個賬戶。禁用rootSSH登錄,改用普通用戶+`sudo`執行特權命令,是最基本的訪問控制手段。
操作:編輯`/etc/ssh/sshd_config`,將`PermitRootLogin`改為`no`,重啟SSH服務。注意先創建好有sudo權限的普通用戶,再禁用root登錄,避免把自己鎖在外面。
2.使用SSH密鑰認證,禁用密碼登錄
密碼登錄無論多復雜,都面臨暴力破解和泄露風險。SSH密鑰認證從根本上杜絕了密碼猜測攻擊——沒有私鑰,連試的機會都沒有。
操作:生成密鑰對,將公鑰添加到服務器的`~/.ssh/authorized_keys`,然后在`sshd_config`中設置`PasswordAuthenticationno`。密鑰文件權限要嚴格:`~/.ssh`目錄700,`authorized_keys`文件600。
3.制定嚴格的密碼策略
即使主要用密鑰登錄,服務器上其他賬戶的密碼管理也不能忽視。通過PAM(`/etc/pam.d/common-password`)或`pam_pwquality`模塊配置:
最小長度12位,要求大小寫、數字、特殊字符混合
啟用密碼有效期(`/etc/login.defs`中的`PASS_MAX_DAYS`)
禁止重復使用近期密碼
使用`faillog`或`pam_tally2`設置登錄失敗鎖定策略(建議連續失敗5次鎖定15分鐘)
4.遵守最小權限原則
每個用戶和服務賬戶只賦予完成其工作所需的最低權限。不需要sudo的賬戶不給sudo。需要訪問特定目錄的服務,用`chown`/`chmod`精確控制,不要圖省事直接給777。
定期用`getentpasswd`審查賬戶列表,刪除或鎖定不再使用的賬戶(`usermod-Lusername`)。
5.修改SSH默認端口
將SSH從默認的22端口改到高位非標準端口(建議10000–65535范圍),可以過濾掉絕大多數自動化掃描和腳本攻擊。這不是真正意義上的安全措施,但能大幅降低日志噪音,讓真正需要關注的事件更容易被發現。
操作:修改`sshd_config`中的`Port`參數,同步更新防火墻規則放行新端口,確認能用新端口登錄后再關閉舊端口。
6.限制SSH訪問來源
如果服務器的管理操作來自固定IP,通過防火墻規則將SSH限制為只接受白名單IP的連接。這一條比修改端口號安全得多——即使知道端口,沒在白名單里也連不上。
操作(iptables示例):
```bash
iptables-AINPUT-ptcp--dport<ssh_port>-s<your_ip>-jACCEPT
iptables-AINPUT-ptcp--dport<ssh_port>-jDROP
```
7.配置Fail2ban
Fail2ban監控SSH登錄日志,自動將多次嘗試失敗的IP加入iptables封禁名單,是防暴力破解的標準配置。
安裝后默認已包含SSH的jail規則,根據實際情況調整`maxretry`(最大失敗次數)和`bantime`(封禁時長)。除SSH外,Fail2ban也支持保護Nginx、Apache、FTP等服務。
8.用iptables或firewalld配置防火墻
防火墻是流量過濾的第一道閘門。基本原則:默認拒絕所有入站連接,只顯式放行業務需要的端口。
常用工具:
-iptables:靈活、底層,適合有經驗的用戶手動管理規則
-firewalld:CentOS/RHEL系的前端,支持動態規則,操作更友好
-UFW:Ubuntu/Debian系的簡化前端,語法接近自然語言,適合快速上手
-CSF(ConfigServerSecurity&Firewall):功能更全的第三方防火墻,與cPanel/Plesk深度集成,支持自動規則管理
僅僅安裝防火墻不夠,規則配置正確才有意義。定期用`iptables-L-n-v`審查規則,確認沒有多余的放行條目。
9.關閉不必要的網絡端口和服務
用`ss-tlnp`或`netstat-tlnp`查看當前所有監聽的端口和對應服務。對照實際需求逐一核查:用不到的服務停掉(`systemctldisable--now<service>`),開著但不對外暴露的端口用防火墻收緊。
藍牙、Avahi(mDNS)、cups(打印服務)這類在服務器場景下幾乎不需要的服務,是常見的被忽略點。
10.禁用IPv6(按需)
如果業務不依賴IPv6,關掉它可以減少一個潛在的攻擊面。攻擊者有時會通過IPv6繞過只針對IPv4配置的防火墻規則。
操作:在`/etc/sysctl.conf`中添加:
```
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
```
然后執行`sysctl-p`使配置生效。
11.保持系統和軟件包及時更新
絕大多數成功的入侵利用的是已有公開補丁的已知漏洞——攻擊者只是在等你不更新。
-Debian/Ubuntu:`aptupdate&&aptupgrade`,可用`unattended-upgrades`自動應用安全補丁
-CentOS/RHEL:`yumupdate`或`dnfupdate`,可配置`dnf-automatic`自動更新安全包
-使用控制面板的話(cPanel、Plesk),面板本身和PHP/Python等運行時也要同步更新
12.最小化安裝,移除不必要的軟件包
安裝的軟件越多,需要維護的攻擊面越大。用`rpm-qa`或`dpkg-l`列出已安裝的軟件包,找出不需要的,直接卸載。
選擇Linux發行版時,優先考慮Server最小化安裝鏡像,而不是包含大量預裝軟件的桌面版或完整版。
13.將/boot目錄設為只讀
`/boot`目錄存放內核文件和引導加載程序,默認讀寫權限允許被篡改。將其掛載為只讀,可以防止惡意軟件或誤操作破壞啟動文件。
操作:編輯`/etc/fstab`,在`/boot`的掛載選項中添加`ro`:
```
LABEL=/boot/bootext4defaults,ro12
```
需要更新內核時,臨時重新掛載為讀寫(`mount-oremount,rw/boot`),完成后改回只讀。
14.磁盤分區隔離
將操作系統文件、用戶數據、臨時文件(`/tmp`)分放在不同分區,可以限制攻擊的橫向擴散。對`/tmp`分區啟用`noexec`(禁止執行二進制)、`nosuid`(禁止SUID位生效)掛載選項,能防止利用臨時目錄執行惡意代碼的攻擊手法。
15.用SFTP替代FTP
FTP在傳輸過程中數據明文,憑證和文件都可以被中間人嗅探。FTPS(FTPoverTLS)只加密控制連接,數據傳輸仍然存在風險。
SFTP(SSHFileTransferProtocol)基于SSH隧道,對所有數據完全加密,是文件傳輸的正確選擇。在SSH配置中啟用SFTP子系統,徹底關閉FTP服務(`vsftpd`、`proftpd`等),同時關閉匿名上傳。
16.使用GnuPG加密敏感數據
對于需要在服務器間傳輸或存儲的敏感數據(配置文件、密鑰、數據庫備份),用GnuPG進行加密。GnuPG基于非對稱加密:公鑰加密,只有持有對應私鑰的接收方才能解密。
實際使用中,GnuPG常見于加密備份文件和自動化腳本中的敏感參數,避免明文存儲。
17.安裝惡意軟件掃描工具
防火墻攔截已知惡意來源,但無法檢測已經滲入的惡意文件。定期掃描是補充手段。
推薦組合:
-ClamAV:開源防病毒,支持定時掃描,適合掃描上傳文件和郵件附件
-Maldet(LinuxMalwareDetect):專為共享主機環境設計,對WebShell和PHP惡意代碼檢出率高,與ClamAV配合使用效果更好
18.安裝Rootkit掃描器
Rootkit工作在操作系統層之下,能繞過普通安全軟件的檢測,是最難發現的入侵形式之一。
常用工具:
-chkrootkit:檢查系統二進制文件是否被篡改
-rkhunter(RootkitHunter):比chkrootkit檢測范圍更廣,同時檢查系統配置異常和可疑的網絡監聽
建議兩者都裝,定期運行(可設為cron任務),并將結果通過郵件發送給管理員。發現rootkit后,最可靠的處理方式是重裝操作系統,而不是試圖在受感染的系統上清除它。
19.開啟系統審計日志
`auditd`是Linux內核級別的審計框架,可以記錄文件訪問、系統調用、權限變更等關鍵操作。配合日志分析工具(如`ausearch`、`aureport`),可以在事后還原攻擊路徑,也可以實時發現異常行為。
基礎配置:安裝`auditd`,設置對`/etc/passwd`、`/etc/shadow`、`/etc/sudoers`等敏感文件的寫操作監控規則。
20.CMS保持更新,定期備份
如果服務器上運行WordPress、Drupal、Joomla等CMS,它們是攻擊者最常針對的目標——插件和主題漏洞是Web入侵的最主要來源之一。開啟CMS的自動安全更新(WordPress默認開啟小版本自動更新),定期檢查插件是否有待更新版本。
無論安全措施做得多好,備份都是最后的防線。備份建議:
遵循3-2-1原則:3份副本,2種介質,1份異地存儲
不要只依賴服務商的快照——快照和源數據在同一基礎設施上,數據中心級故障時一并消失
定期測試備份恢復流程,確認備份文件確實可用
加固不是一次性的工作。建議建立一個定期維護節奏:
每周:檢查系統日志和Fail2ban封禁記錄,確認有無異常登錄嘗試;檢查`/var/run/reboot-required`(Debian/Ubuntu)或待重啟提示。
每月:運行`aptupgrade`或`yumupdate`確認補丁狀態;用`ss-tlnp`檢查監聽端口有無新增;審查用戶賬戶列表。
每季度:運行rkhunter/chkrootkit完整掃描;測試備份恢復;審查防火墻規則是否有冗余放行。
恒訊科技的VPS在基礎設施層提供DDoS防護和T3+數據中心的物理安全保障,但系統層的安全加固需要用戶自行負責。上面這20條是任何生產LinuxVPS的安全基線——不管用哪家服務商,這些配置都應該在上線前完成。如果團隊沒有專職運維,托管型VPS服務能代為處理系統加固和安全監控,值得作為一個選項評估。
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號 IDC證:B1-20230800.移動站


