Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 伺服器安全加固終極清單:從 BIOS 到網路層的纵深防禦實戰

編輯:Linux 教學

伺服器是網路安全的核心資產。Linux 雖具開源透明、社群修補快等優勢,但**配置不當才是最大漏洞來源**。本文提供生產環境就緒的安全加固清單,涵蓋啟動/登入、帳號/認證、檔案系統、網路存取、服務最小化、入侵偵測六大維度,附指令腳本與驗證方法。

一、啟動與實體安全

  1. BIOS/UEFI 設定密碼,禁止從 USB/光碟/網路啟動,鎖定開機順序
  2. GRUB 設定密碼 (grub2-setpassword),防止單用戶模式繞過認證
  3. 禁用 Ctrl+Alt+Del 重啟:
    systemctl mask ctrl-alt-del.target (systemd)
    或編輯 /etc/inittab 註解 ca::ctrlaltdel:/sbin/shutdown -t3 -r now (SysVinit)

二、帳號與認證強化

1. 根帳號管控

  • 禁止 SSH 直接登入 root:/etc/ssh/sshd_config → PermitRootLogin no
  • 使用 sudo 提權,配置 /etc/sudoers (visudo) 最小權限原則
  • 鎖定 root 密碼:passwd -l root (以 sudo 管理)

2. 密碼策略 (/etc/security/pwquality.conf 或 /etc/login.defs)

PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_MIN_LEN 12
PASS_WARN_AGE 14
# pwquality: minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1 retry=3

3. 清理預設/無用帳號

# 查閱無登入殼層帳號
awk -F: '($7 !~ /nologin|false/ && $3 >= 1000) {print $1}' /etc/passwd
# 刪除預設服務帳號 (games、gopher、ftp 等若未使用)
userdel -r games; userdel -r gopher; groupdel games; groupdel gopher

4. 關鍵檔案不可變屬性

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/sudoers
# 需修改時:chattr -i ; 修改後 chattr +i 

5. 限制 su 僅允許 wheel/admin 群組

# /etc/pam.d/su
auth required pam_wheel.so use_uid group=wheel
# 將管理員加入 wheel 群組
usermod -aG wheel adminuser

6. SSH 硬化 (/etc/ssh/sshd_config)

Port 2222                    # 非標準埠減少掃描噪音
Protocol 2
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no    # 強制金鑰認證
PermitEmptyPasswords no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers adminuser@192.168.1.0/24  # 限制用戶與來源 IP
Banner /etc/ssh/banner.txt           # 法律警告橫幅

7. 登入資訊最小化

# 移除 /etc/issue、/etc/issue.net、/etc/motd 中的版本資訊
> /etc/issue; > /etc/issue.net; > /etc/motd
# 或自訂最小化提示
echo "Authorized access only. All activities monitored." > /etc/issue

三、檔案系統與資料保護

掛載選項適用分區效果
noexec/tmp、/var/tmp、/dev/shm、/home禁止執行二進制檔,防惡意腳本落地執行
nosuid/tmp、/home、/var忽略 SUID/SGID 位元,防權限提升
nodev/tmp、/home、/var禁止裝置檔,防建立字元/區塊裝置
noatime/、/home、/var不更新存取時間,減少 I/O、延長 SSD 壽命
# /etc/fstab 範例
tmpfs  /tmp  tmpfs  defaults,noexec,nosuid,nodev,size=2G  0 0
/dev/sda2  /home  ext4  defaults,noexec,nosuid,nodev,noatime  0 2

四、網路存取控制

1. TCP Wrappers (hosts.allow/deny) — 服務層首道防線

# /etc/hosts.deny
ALL: ALL
# /etc/hosts.allow
sshd: 192.168.1.0/255.255.255.0, 10.0.0.5
vsftpd: 192.168.1.0/24
# 驗證
tcpdchk -v

2. iptables 宿主防火牆 — 核心層纵深防禦

# 僅開放必要埠口
iptables -A INPUT -p tcp --dport 2222 -s 192.168.1.0/24 -j ACCEPT  # SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT                       # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT                      # HTTPS
# 其餘預設拒絕 (見上節完整腳本)
# 持久化
service iptables save  # 或 iptables-save > /etc/sysconfig/iptables

3. 禁用 IPv6 (若未使用)

# /etc/default/grub
GRUB_CMDLINE_LINUX="ipv6.disable=1"
update-grub
# 或 sysctl
echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
sysctl -p

4. 核心網路參數硬化 (/etc/sysctl.d/99-hardening.conf)


# 防 IP 欺騙
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# 忽略 ICMP 重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
# 忽略 ICMP 回應請求 (可選,影響 ping)
# net.ipv4.icmp_echo_ignore_all = 1
# 忽略廣播 ICMP
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 記錄異常封包 (Martians)
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
# SYN Flood 防護
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
# 禁用來源路由
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
sysctl --system  # 套用

五、服務最小化與監控

  1. 停用/移除非必要服務:systemctl disable --now cups avahi-daemon bluetooth postfix nfs-server rpcbind
  2. 定期稽核監聽埠口:ss -tunlp 對照授權清單
  3. 啟用 auditd:審計關鍵系統呼叫、檔案存取、權限變更
    auditctl -w /etc/passwd -p wa -k passwd_changes
    auditctl -w /etc/sudoers -p wa -k sudoers_changes
  4. 部署 AIDE/Tripwire:檔案完整性基準建立與每日比對
  5. Logwatch/Logcheck:每日日誌摘要郵件,異常事件即時通知

六、入侵偵測與應急響應

工具類型部署建議
Fail2banHIDS (日誌分析+防火牆封鎖)保護 SSH、vsftpd、Postfix、Dovecot、Apache 登入失敗封鎖
RKHunter / ChkrootkitRootkit 掃描每日排程掃描,核心模組、二進制檔、網路介面異常檢測
Lynis安全稽核每週執行 lynis audit system,產生加固建議報告
OSSEC / WazuhHIDS 平台企業級:檔案完整性、日誌分析、Rootkit 檢測、主動回應、合規儀表板

七、加固驗證清單

# 1. 確認 SSH 設定
sshd -T | grep -E 'permitrootlogin|passwordauthentication|pubkeyauthentication'
# 2. 確認開放埠口
ss -tunlp | grep LISTEN
# 3. 確認核心參數
sysctl net.ipv4.tcp_syncookies net.ipv4.conf.all.rp_filter net.ipv4.icmp_echo_ignore_broadcasts
# 4. 確認檔案屬性
lsattr /etc/passwd /etc/shadow /etc/sudoers
# 5. 確認 sudo 規則
sudo -l -U adminuser
# 6. 確認 auditd 規則
auditctl -l
# 7. 掃描 Rootkit
rkhunter --check --sk
# 8. 安全稽核
lynis audit system --quick

八、結語:安全是持續的過程

完成上述加固後,您的 Linux 伺服器已具備**企業級基線防護能力**。但請記住:

  1. 漏洞管理:訂閱 CVE/OVAL/發行版安全公告,**48 小時內評估修補關鍵漏洞**
  2. 變更控制:所有配置變更走流程、留紀錄、可回滾
  3. 滲透測試:每季度委託第三方或內部紅隊演練
  4. 應急預案:制定事件響應手冊、定期桌面推演、證據保全流程
  5. 合規對標:等保 2.0、PCI-DSS、GDPR、ISO 27001 等標準缺口分析

**「永無止境的加固,才是最好的防禦。」**

Copyright © Windows教程網 All Rights Reserved