譯者 | 晶顏
審校 | 重樓
隨著全球網絡威脅形勢變得越來越復雜和危險,傳統的基于邊界的安全模型無法有效地保護關鍵基礎設施。鑒于Linux在服務器和關鍵系統中的廣泛應用,組織需要一個更健壯的安全框架來應對不斷演變的威脅形勢。以“永不信任,始終驗證”為操作原則的零信任安全模型為Linux環境提供了高級保護。
本文研究了零信任安全的原則,并提供了如何配置Linux系統以符合這些原則的實用指導。我們將介紹零信任的幾個方面,包括身份驗證、微分段和持續監控。
理解零信任安全模型
零信任安全模型代表了傳統安全方法的范式轉變。零信任不再假設網絡內的一切都是安全的,而是假設網絡內外都存在威脅。因此,無論其來源如何,每個訪問請求都將得到驗證。讓我們來探索零信任的一些核心原則。
持續的驗證
每個訪問請求都使用多種因素進行驗證,包括設備標識、用戶標識、設備位置和行為模式。
最低權限訪問
用戶和設備只被授予最小的訪問權限來執行其任務。該方法通常使用特權訪問工作站來實現,其中管理員僅使用一臺計算機執行管理任務。任務完成后,管理員將注銷。在特權訪問工作站環境中,工作站從不用于管理任務,服務器與管理機器和工作站是分開的。
微分段
微分段將網絡劃分為更小的段,以限制已入侵網絡的攻擊者的橫向移動。
全面的監控
監控可見源,如網絡流量、用戶和機器日志(包括訪問請求),對于檢測異常和威脅至關重要。它使安全團隊能夠迅速對威脅作出反應。
為Linux系統配置零信任模型
在Linux環境中實現零信任模型通常包括以下步驟:
- 正確管理SSH(secure shell)密鑰
- 實現用戶身份驗證和基于角色的訪問控制
- 設置和管理微分段和網絡隔離
1.正確管理SSH密鑰
SSH是通過遠程訪問管理Linux系統的基本工具。正確管理SSH密鑰對于零信任安全至關重要。管理SSH密鑰的最佳實踐包括:
- 關閉密碼身份驗證:基于密碼的身份驗證容易受到暴力破解和字典攻擊。相反地,應該實現基于SSH密鑰的身份驗證。如果沒有安裝sshd,可以使用以下命令安裝:
sudo apt install openssh-server
#打開SSH配置文件:
sudo nano /etc/ssh/sshd_config
#禁用密碼認證:
PasswordAuthentication no
#重啟SSH服務:
sudo systemctl restart sshd
圖1:如何在/etc/目錄中找到ssh_config文件
圖2:如何通過修改Nano中的ssh_config文件來關閉密碼身份驗證。使用Ctrl + O將數據寫入磁盤,并使用Ctrl + X退出Nano
圖3:如何重啟sshd服務并使用systemctl檢查其狀態
- 使用強且唯一的SSH密鑰:為每個用戶生成并使用強SSH密鑰對。確保所有SSH密鑰都是唯一的。
#生成SSH密鑰對:
sudo ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
圖4:如何生成4096位SSH密鑰對
- 部署SSH密鑰管理工具:使用SSH -keygen等工具管理SSH密鑰,實現密鑰自動輪換。
- 限制SSH訪問:限制SSH訪問單個IP地址。使用跳板主機(jump host)來最小化攻擊面。
#限制SSH訪問特定的IP地址:
sudo nano /etc/hosts.allow
sshd: 192.168.1.0/24
sudo nano /etc/hosts.deny
sshd: ALL
圖5:打開并修改主機。允許配置文件訪問某個IP地址范圍
圖6:打開并修改hosts.deny配置文件,拒絕所有不屬于允許IP地址范圍的其他SSH連接
2.實現用戶身份驗證和基于角色的訪問控制
您可以將多因素身份驗證(MFA)和基于角色的訪問控制(RBAC)作為零信任策略的一部分來實現。
- 多因素身份驗證:MFA為Linux系統增加了一層安全性。您可以使用Google Authenticator或Duo Security等工具實現MFA。使用以下命令安裝Google Authenticator:
#安裝Google Authenticator:
sudo apt-get install libpam-google-authenticator
圖7:如何使用APT安裝Google Authenticator
#為SSH配置MFA:
sudo nano /etc/pam.d/sshd
auth required pam_google_authenticator.so
圖8:如何修改sshd文件來為SSH配置MFA
- 基于角色的訪問控制:實現RBAC,確保用戶只訪問必要的資源。您可以使用sudo和PolicyKit等工具來完成此操作。
#為指定角色創建新的sudoers文件:
sudo visudo -f /etc/sudoers.d/developer
#授予角色特定的權限:
developer ALL=(ALL) /usr/bin/git, /usr/bin/docker
圖9:在/etc目錄中創建一個新的sudoers文件,并修改該文件以授予該角色特定的權限
3.設置和管理微分段和網絡隔離
微分段和網絡隔離是零信任體系結構的重要組成部分。如果攻擊者獲得了對網絡的初始訪問權限,它們有助于限制攻擊者的橫向移動。
- 為網絡分段配置iptables:iptables是Linux中配置網絡包過濾規則的強大工具。您可以配置iptables以允許來自特定IP范圍的傳入SSH流量。
#允許在端口22(SSH)上來自特定IP范圍的傳入流量:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
#阻止端口22上的所有其他傳入流量:
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
圖10:iptables允許來自特定IP地址范圍的SSH流量
- 實現VLANS:通過VLANS(虛擬局域網)對網絡流量進行邏輯劃分。Open vSwitch等工具可以幫助管理Linux環境中的VLANS。
#創建新的VLAN:
sudo ovs-vsctl add-br br0
sudo ovs-vsctl add-port br0 vlan10 tag=10 -- set interface vlan10 type=internal
- 使用防火墻和安全組:像UFW(Uncomplicated Firewall)這樣的工具可以簡化防火墻的管理。
#啟用UFW并允許特定流量:
sudo ufw enable
sudo ufw allow from 192.168.1.0/24 to any port 22
圖11:如何啟用UFW,檢查UFW服務的狀態,并允許特定IP地址范圍內的SSH流量通過端口22,同時阻止端口22上的所有其他流量
- 實現容器安全性:像Kubernetes這樣的容器編排工具可以在容器化環境中管理微分段。然后,您可以通過網絡策略來控制不同pod之間的流量。
#在yaml中實現網絡策略來控制不同pod之間的流量:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
spec:
podSelector: {}
policyTypes:
-Ingress
-Egress
Linux的持續監控和審計實踐
持續的監視和審計實踐對于檢測和響應安全事件至關重要。下面是一些工具和實踐指導:
- 使用syslog進行集中日志記錄:可以在Linux系統中使用syslog進行集中日志記錄。rsyslog、syslog-ng和ELK堆棧(Elasticsearch、Logstash和Kibana)等工具可以幫助進行日志聚合和分析。日志為安全團隊提供了關鍵的可見性。
#安裝和配置rsyslog:
sudo apt install rsyslog
sudo nano /etc/rsyslog.conf
#轉發日志到中心服務器:
*.* @logserver:514
圖12:修改rsyslog.conf文件,將日志轉發到中心服務器
- Auditd:Auditd是一個功能強大的工具,用于監視和記錄系統調用和其他用戶活動。通過配置審計規則,可以對系統中的特定事件進行跟蹤。
#安裝Auditd:
Sudo apt install auditd
#配置審計規則:
Sudo nano /etc/audit/audit.rules
#監控/etc/passwd修改的規則示例:
-w /etc/passwd -p wa -k passwd changes
#重啟Auditd:
Sudo systemctl restart auditd
圖13:配置auditd.rules將更改記錄到/etc/passwd文件中
- 入侵檢測系統(IDS):部署OSSEC、Snort或Suricata等IDS工具來檢測網絡上和主機級別的可疑活動。
#使用wget下載并安裝OSSEC:
wget -U ossec <a ><strong>https://github.com/ossec/ossec-hids/archive/master.zip</strong></a>
unzip master.zip
cd ossec-hids-master
sudo ./install.sh
- 文件完整性監視(FIM):通過FIM檢測對關鍵系統文件的未經授權的修改。您可以使用諸如Tripwire和AIDE之類的開源工具來實現FIM。
#安裝AIDE:
sudo apt install aide
#初始化AIDE數據庫:
sudo aideinit
#檢查更改:
sudo aide --check
- 安全信息/事件和事件監控/管理(SIEM):SIEM技術有助于日志分析。它們允許對多來源的日志進行聚合、關聯和分析。優秀的開源和免費增值SIEM工具包括Splunk、ELK堆棧和IBM的QRadar。
示例:配置Logstash將日志轉發給Elasticsearch
Input {
File {
path => “/var/log/syslog”
start_position = > “beginning”
}
}
結語
在Linux環境中實現零信任安全模型可以顯著提高對復雜網絡威脅的防護能力。通過堅持零信任原則——例如持續驗證、最小權限訪問、特權訪問工作站、微分段和監視——您可以創建一個有彈性且安全的環境,從而有效地應對復雜且不斷演變的威脅環境。
原文標題:How To Implement Zero-Trust Security in Linux Environments,作者:Grant Knoetze