在Linux系統中,很多人覺得“開源系統天生安全”,或者“我的服務器沒什麼敏感數據,不用太擔心”。但實際上,Linux系統雖然安全係數高,但若忽視基礎安全配置,同樣會面臨被攻擊的風險。比如弱密碼、開放不必要的端口、未及時更新系統補丁等,都可能讓服務器淪爲“肉雞”。本文就從初學者角度出發,聊聊Linux系統安全的基礎防護策略,幫你快速建立安全意識。
一、賬戶安全:從源頭築牢“入口”防線¶
服務器的“大門”是用戶賬戶,一旦賬戶被攻破,系統所有數據都可能面臨威脅。這是最基礎的安全點,也是初學者最容易忽視的。
1. 使用強密碼+避免共享賬戶¶
- 密碼複雜度:密碼不要用簡單的“123456”“password”,要包含大小寫字母、數字和特殊符號(比如
Passw0rd!)。可以用pwgen工具生成隨機密碼(如果沒有,直接手動設置即可)。 - 避免共用賬戶:每個管理員或用戶必須有獨立賬戶,不要用同一個賬戶登錄不同服務器。比如,開發人員用
dev_user,運維用ops_user,避免多人共用root賬戶(root權限過高,一旦被攻破,系統徹底失控)。
2. 限制權限:最小權限原則¶
- 禁止直接用root操作:日常工作用普通用戶,需要提權時用
sudo(比如sudo yum install 軟件)。root賬戶默認不允許直接登錄(除非必要),且僅在緊急修復時使用。 - 刪除默認/測試賬戶:系統安裝後可能自帶默認用戶(比如
nobody)或測試賬戶(比如test),及時刪除或重命名:userdel test(刪除用戶,-r參數可同時刪除家目錄)。
3. 用SSH密鑰登錄代替密碼(關鍵!)¶
- 爲什麼? 密碼登錄容易被暴力破解(比如黑客用工具跑字典),而密鑰登錄更安全。
- 操作步驟:
1. 本地生成密鑰對(比如Windows用PuTTYgen,Linux/Mac直接ssh-keygen);
2. 將公鑰(id_rsa.pub)複製到服務器~/.ssh/authorized_keys,並設置權限:chmod 600 ~/.ssh/authorized_keys;
3. 禁用服務器密碼登錄:編輯/etc/ssh/sshd_config,把PasswordAuthentication yes改成no,重啓sshd服務。
二、文件權限:保護數據不被“亂改”或“偷看”¶
Linux通過“權限”控制誰能讀寫、執行文件或目錄。如果權限配置錯誤,即使賬戶安全,也可能被人篡改或竊取數據。
1. 理解權限表示:rwxr-xr-x是什麼?¶
- 權限用3組字母表示:
所有者(Owner)、組(Group)、其他用戶(Other)的權限。 r(Read):讀,數值4;w(Write):寫,數值2;x(Execute):執行,數值1。- 例子:
rwxr-xr-x表示:所有者可讀寫執行,組和其他用戶僅可讀可執行。
2. 最小權限原則:只給必要的權限¶
- 關鍵文件/目錄權限:比如系統核心文件
/bin、/etc,權限應設爲drwxr-xr-x(目錄用d開頭,執行權限x對目錄是進入權限)。 - 用戶家目錄:普通用戶家目錄(
/home/user)權限默認700(只有自己能讀寫執行),不要設成777(任何人都能改,極度危險!)。 - 修改權限命令:
- 改所有者:
chown user:group 文件名(比如chown root:root /etc/passwd); - 改權限:
chmod 755 文件名(所有者讀寫執行,組和其他用戶讀執行)。
三、防火牆:只開“必要的門”,關“多餘的窗”¶
Linux防火牆用於攔截非法訪問,只開放服務器需要的端口(比如Web的80/443,SSH的22),其他端口默認拒絕。
1. 基礎防火牆工具:iptables(CentOS/RHEL)或firewalld(CentOS 7+/Ubuntu)¶
- iptables(簡單版):
- 查看當前規則:
iptables -L; - 開放22(SSH)和80/443(Web)端口:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允許SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允許Web
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允許HTTPS
iptables -P INPUT DROP # 其他所有端口默認拒絕
- firewalld(更簡單):
- 開放SSH服務:
firewall-cmd --add-service ssh --permanent; - 查看開放服務:
firewall-cmd --list-services; - 永久生效後重啓:
firewall-cmd --reload。
2. 絕對不要開放的危險端口¶
- 如Telnet(23)、FTP(21)、MySQL(3306)等默認端口(除非必要),用SFTP(22/2222)代替FTP,用HTTPS代替Telnet。
四、系統更新:堵住“已知漏洞”的後門¶
很多攻擊利用的是系統已知漏洞(比如Apache的Log4j漏洞),及時更新系統補丁能直接修復這些漏洞。
1. 定期更新系統¶
- CentOS/RHEL:
sudo yum update(更新軟件包),sudo yum upgrade(更新內核); - Ubuntu/Debian:
sudo apt update && sudo apt upgrade; - 重要:更新後重啓服務器(
sudo reboot),避免內核版本不匹配。
2. 禁用不安全服務¶
- 系統默認可能開啓FTP、Telnet等舊服務(不安全),用
systemctl禁用:
systemctl disable telnet-server # 禁用Telnet服務
systemctl stop telnet-server # 停止當前運行的Telnet
五、日誌監控:發現“異常入侵”的痕跡¶
日誌是追蹤服務器異常的“眼睛”,記錄了誰登錄、做了什麼操作。定期查看日誌能及時發現入侵或誤操作。
1. 關鍵日誌工具¶
- 系統日誌:
journalctl -xe(查看最近系統日誌,-x顯示解釋); - 登錄日誌:
last(查看最近登錄記錄,last reboot看重啓時間); - SSH登錄日誌:
grep "Failed password" /var/log/auth.log(檢查是否有暴力破解嘗試)。
2. 異常日誌的常見信號¶
- 短時間內多次失敗的密碼登錄;
- 非工作時間的異常文件修改(比如
/etc/passwd被改); - 陌生用戶ID或組出現(
/etc/group裏多了奇怪條目)。
總結:基礎防護的“黃金法則”¶
Linux安全沒有“一勞永逸”,但掌握以下核心策略,足以應對90%的基礎威脅:
1. 賬戶安全:強密碼、最小權限、密鑰登錄;
2. 文件權限:700(家目錄)、644(普通文件)、系統文件600;
3. 防火牆:只開必要端口,默認拒絕其他;
4. 系統更新:定期補丁,禁用舊服務;
5. 日誌監控:每天看登錄和系統日誌,發現異常及時排查。
安全是“持續”的過程,而非“一次性”配置。從今天起,先檢查你的服務器是否還在用弱密碼、開放不必要端口?行動起來,築牢Linux服務器的安全基礎吧!