Systemd/SysV init 服務清單:功能、依賴、安全建議與管理操作
Linux 系統啟動數十上百個守護進程。理解各服務功能、依賴關係、攻擊面,能精準啟用必要服務、禁用風險服務,構建最小攻擊面系統。
一、核心系統服務分類表
| 服務名 | 功能描述 | 系統預設 | 建議動作 | 相依/衝突 |
| systemd-journald | 日誌收集與儲存 | 啟用 | 必須啟用 | - |
| systemd-udevd | 裝置節點管理、硬體事件處理 | 啟用 | 必須啟用 | - |
| systemd-logind | 用戶登入會話、座位、電源鍵處理 | 啟用 | 桌面必須,無頭伺服器可保留 | - |
| dbus-daemon | 系統/會話訊息總線 | 啟用 | 必須啟用 | 幾乎所有服務依賴 |
| NetworkManager | 網路連線管理 | 啟用 | 桌面/筆電保留,伺服器可改用 systemd-networkd | 衝突 systemd-networkd |
| systemd-networkd | 網路配置守護程式 | 停用 | 伺服器/容器推薦 | 衝突 NetworkManager |
| systemd-resolved | DNS 快取、解析、mDNS、DNSSEC | 啟用 | 建議啟用,配合 stub-resolv.conf | - |
| chronyd/ntpd | 時間同步 | chronyd 啟用 | 必須啟用(生產環境) | 二選一 |
| sshd | SSH 遠端登入 | 啟用 | 啟用並強化配置 | - |
| rsyslog/syslog-ng | 傳統 syslog 相容 | 視發行版 | 需傳統日誌格式時啟用 | 與 journald 並存 |
| crond/cronie | 排程任務 | 啟用 | 啟用 | - |
| atd | 一次性排程 | 啟用 | 啟用 | - |
| auditd | Linux 審計子系統 | 停用 | 合規/安全要求時啟用 | 效能影響 |
| firewalld/iptables/nftables | 防火牆 | firewalld 啟用 | 啟用一種 | 三選一 |
| selinux | 強制存取控制 | Enforcing | 生產必須 Enforcing | - |
| polkit | 權限授權代理 | 啟用 | 桌面必須,伺服器視需求 | - |
| accounts-daemon | 用戶帳號管理 D-Bus 介面 | 啟用 | 桌面保留,伺服器可停用 | - |
二、網路服務類
| 服務 | 功能 | 埠口 | 建議 |
| httpd/nginx | Web 伺服器 | 80/443 | 按需啟用,配置 TLS、WAF |
| vsftpd/proftpd | FTP 伺服器 | 21 | 棄用,改用 SFTP/SCP |
| smb/nmb (Samba) | 檔案/列印共享 | 139/445 | 內網需求啟用,啟用簽名加密 |
| nfs-server | NFS 檔案共享 | 2049 | 內網啟用,配合 Kerberos |
| bind/named | DNS 伺服器 | 53 | 授權 DNS 啟用,遞迴限制內網 |
| dhcpd | DHCP 伺服器 | 67/68 | 指定介面啟用 |
| postfix/sendmail | 郵件傳輸代理 | 25/587 | 僅本機郵件用 null-client 模式 |
| dovecot | IMAP/POP3 伺服器 | 143/993/110/995 | 郵件伺服器啟用 |
| openvpn/wireguard | VPN 服務 | 1194/51820 | 按需啟用,強認證 |
| snmpd | SNMP 監控代理 | 161 | v3 加密、限制來源 IP、修改 community |
三、資料庫與中介軟體
| 服務 | 功能 | 建議 |
| mysqld/mariadb | 關聯式資料庫 | 啟用、bind-address=127.0.0.1 或特定 IP |
| postgresql | PostgreSQL | 啟用、listen_addresses 限制 |
| redis | 記憶體鍵值存儲 | bind 127.0.0.1、requirepass、rename-command CONFIG |
| memcached | 分散式快取 | -l 127.0.0.1、-U 0 禁用 UDP |
| rabbitmq | 訊息佇列 | 建立專用用戶、啟用 TLS、限制存取 |
| kafka/zookeeper | 串流平台 | SASL_SSL、ACL、隔離網段 |
四、傳統 SysV init 服務對照(CentOS 6/舊版)
# 服務管理指令
service start|stop|restart|status
chkconfig on|off
chkconfig --list
# 關鍵服務對照
# 系統核心
network, networkmanager, udev-post, lvm2-monitor, mdmonitor
# 記憶體/儲存
mdadm, lvm2, multipathd, iscsid, iscsi
# 安全
iptables, ip6tables, auditd, sshd
# 遠端存取
rpcbind, nfs, nfslock, rpcgssd, rpcidmapd, rpcsvcgssd
# 列印
cups
# 圖形
gdm, xfs (字體服務)
# 硬體監控
smartd, mcelog, irqbalance
# 電源
acpid, apmd, cpuspeed
# 時鐘
ntpd, chronyd
# 郵件
postfix, sendmail
# 計劃任務
crond, atd
# 系統日誌
rsyslog, syslog-ng
# 名稱服務
named, nscd, sssd, winbind
# 檔案共享
smb, nmb, netfs, autofs
# 資料庫
mysqld, postgresql, mongod
# Web
httpd, nginx, php-fpm
# 代理/快取
squid, varnish, haproxy
# 監控
zabbix-agent, prometheus-node-exporter, telegraf
# 容器
docker, containerd, kubelet, kube-proxy
五、服務管理最佳實踐
- 最小化原則:僅啟用業務必需服務,
systemctl list-unit-files --state=enabled 定期審計
- 權限最小化:服務以專用系統用戶運行(
User=、Group=),避免 root
- 沙箱隔離:systemd 提供
ProtectSystem=strict、PrivateTmp=yes、NoNewPrivileges=yes、CapabilityBoundingSet= 等強化選項
- 依賴明確化:使用
After=、Requires=、Wants= 定義啟動順序
- 資源限制:
LimitNOFILE=、MemoryMax=、CPUQuota= 防止單服務耗盡資源
- 日誌集中化:統一轉發至 journald/rsyslog/ELK,設定保留策略
- 自動恢復:
Restart=on-failure、RestartSec=5、StartLimitBurst=、StartLimitIntervalSec=
- 安全啟動:UEFI Secure Boot + 核心模組簽名 + IMA/EVM 完整性度量
六、服務狀態診斷指令
systemctl status -l # 詳細狀態
systemctl list-dependencies # 依賴樹
systemctl cat # 查看 Unit 檔內容
systemctl show # 所有屬性
journalctl -u -f # 即時日誌
journalctl -u --since "1 hour ago" -p err..crit
systemd-analyze verify # 配置語法檢查
systemd-analyze plot > boot.svg # 啟動耗時火焰圖