Linux 的安全基礎
1. Linux 中的安全原則
Linux 的安全性主要基於「權限最小化」和可靠的訪問控制策略。想像一下 Linux 是一個具有多層保護的堡壘:層層深入,檢查更多。但首先,我們來看看支撐系統安全的三大支柱。
權限分離:用戶、群組和 root
Linux 的穩定性和安全性的秘訣在於嚴格的權限分離。系統中有三種類型的對象:
- 用戶 (users): 個人的帳號。這就像是家庭聚會上的參加者,每人都有自己的通行證。
- 群組 (groups): 用戶集群。有些任務需要整個群組的一個通行證,比如訪問 "奶奶照片" 的共享文件夾。
- Root: 擁有全部權限的超級用戶。Root 就像是 Linux 世界裡的超人。他能做一切,既有超能力,也有超責任。
Linux 使用這個模型來限制對文件、應用程式或系統功能的訪問。即使攻擊者以普通用戶的身份進入系統,也無法破壞核心或關鍵文件。
權限最小化
千萬別隨便給人 root 權限。想像每個辦公室員工都有保險箱的鑰匙。一定有人會丟失這些鑰匙。在 Linux 中的規則是:只給用戶執行任務所需的最小權限。
主要安全威脅
- 病毒:對,Linux 也不是完全免疫,但由於系統架構,病毒較少見。
- 網絡攻擊: SSH破解、DDoS 攻擊、DNS 欺騙。
- 軟體漏洞: 舊套件和未保護的函式庫可能是攻擊者的入口。
2. 威脅預防
現在我們來看看一些重要的步驟,確保你的 Linux 伺服器能靠得住,不要淪為駭客的工具。
系統定期更新
一個很實際的例子:系統更新就像更新防毒軟體一樣。沒有更新,即使是最先進的保護也無法抵禦新的威脅。指令如下:
sudo apt update && sudo apt upgrade
可以確保你的 Linux 隨時保持最佳狀態。
重要檔案的存取控制
有些檔案最好不要讓外人看到。例如,檔案 /etc/sudoers
是授予用戶管理權限的列表。要編輯它只能通過 visudo
,以避免意外錯誤。
限制 root 存取權限
你知道 root 是非常強大的,但不要濫用它。最好使用普通用戶身份運作,必要時使用 sudo
暫時獲取權限。
3. 安全工具
在 Linux 中有哪些工具可以幫助保障安全?咱們一起來看看內建和第三方解決方案吧。
內建機制
- firewalld 和 iptables: 用於管理網路流量的防火牆。聽起來有點難,但我們會搞懂的!
- SELinux (Security-Enhanced Linux): 一個特殊的擴展,用於檢查哪些進程有權訪問哪些文件。
- ACL (Access Control Lists): 標準訪問權限的進階版本。
外部工具
- Lynis: 用於安全審核的工具。
- OpenSCAP: 一套用於驗證系統符合安全標準的工具。
密碼策略設置
你的密碼有多複雜... 哦,不用說!還是直接確保一個可靠的密碼政策吧。透過 PAM 就可以設定最小密碼長度和複雜度。
sudo nano /etc/security/pwquality.conf
參數範例:
minlen = 12
minclass = 3
4. 實用範例:基本安全性設置
現在捲起袖子吧!我們將為測試系統設置一個簡單的安全性策略。
用戶註冊
我們將創建兩個用戶:一名管理員和一名普通用戶。
sudo adduser admin
sudo adduser user1
sudo usermod -aG sudo admin
現在 admin
擁有管理權限,而 user1
沒有。
重要文件的訪問控制
限制訪問 Nginx 配置文件:
sudo chmod 600 /etc/nginx/nginx.conf
使用防火牆
我們將安裝並設置 ufw
(Uncomplicated Firewall) 來保護我們的伺服器:
sudo apt install ufw
sudo ufw enable
僅允許 SSH 和 HTTP 流量:
sudo ufw allow 22
sudo ufw allow 80
啟用檢查:
sudo ufw status
5. 典型錯誤
談到安全性,不僅需要知道該做什麼,還需要明白應該避免什麼。
錯誤 1: 以 root 身份工作
很多新手偷懶,直接以 root 帳號工作。這很危險,任何錯誤或者被入侵都會對系統造成致命影響。
錯誤 2: 未更新的套件
正如某位系統管理員說的:“唯一好的伺服器就是更新的伺服器”。舊的軟體是攻擊的完美目標。
錯誤 3: 不安全的密碼
“password123” 是最受歡迎的密碼之一。別成為那個使用它的人。
6. 實際應用:這些為什麼有用?
設置 Linux 的安全性不僅對你的工作有幫助,對面試也很重要。了解防火牆、SELinux 和權限設置的基本知識會讓僱主對你刮目相看。例如,你可以保護公司的伺服器免受 DDoS 攻擊,或者為團隊協作項目設置必要的權限。
如果你從事開發工作,那麼保護系統意味著你的代碼不會流到競爭對手手中,客戶的數據也能保持安全。這不只是哈巴羅夫斯克的偏執,而是現代產業的真實需求。
GO TO FULL VERSION