Linux 主机安全加固 10 条核心命令与配置清单 核心要点图解,禁用 root 远程登录并修改 SSH 默认端口可显著降低暴力破解风险。;配置 iptables 或 firewalld 只开放必要端口,默认拒绝所有入站流量。;定期更新系统与软件包,修补已知漏洞是安全加固的基础。;使用 fail2ban 自动封禁多次登录失败的 IP,减少暴力破解尝试。
Linux 主机安全加固 10 条核心命令与配置清单 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 禁用 root 远程登录并修改 SSH 默认端口可显著降低暴力破解风险。
  • 配置 iptables 或 firewalld 只开放必要端口,默认拒绝所有入站流量。
  • 定期更新系统与软件包,修补已知漏洞是安全加固的基础。
  • 使用 fail2ban 自动封禁多次登录失败的 IP,减少暴力破解尝试。

作为运维或站长,你是否担心 Linux 服务器被入侵?面对层出不穷的暴力破解、漏洞利用和提权攻击,一套系统化的安全加固流程至关重要。本文提供 10 条核心命令与配置清单,手把手教你提升 Linux 主机安全基线,抵御常见威胁。

1. 系统更新与补丁管理

保持系统最新是安全加固的第一步。攻击者常利用已知漏洞入侵,因此必须定期更新。

# Debian/Ubuntu
apt update && apt upgrade -y
# CentOS/RHEL
yum update -y

建议配置自动更新,例如 Ubuntu 使用 unattended-upgrades,CentOS 使用 yum-cron。同时,移除不再使用的软件包以减少攻击面。

2. SSH 服务安全加固

SSH 是远程管理的主要入口,也是攻击重点。修改 /etc/ssh/sshd_config:

  • 更改默认端口:Port 2222
  • 禁用 root 登录:PermitRootLogin no
  • 禁用密码认证:PasswordAuthentication no
  • 限制用户:AllowUsers deploy

重启服务:systemctl restart sshd。务必先测试新配置,避免锁死。

3. 防火墙配置

使用防火墙限制入站流量,只开放必要端口。以 firewalld 为例:

firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --remove-service=dhcpv6-client
firewall-cmd --reload

若使用 iptables,设置默认拒绝策略:

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

4. 用户与权限管理

遵循最小权限原则。检查具有 UID 0 的用户:awk -F: '==0 {print }' /etc/passwd,确保只有 root。锁定无用账户:usermod -L username。设置强密码策略:编辑 /etc/login.defs 和 /etc/security/pwquality.conf。使用 sudo 代替直接 root 操作,并限制 sudo 权限。

5. 日志与审计

集中管理日志便于入侵检测。使用 rsyslog 或 journald 将日志发送到远程服务器。安装 auditd 监控关键文件:

auditctl -w /etc/passwd -p wa -k passwd_changes

定期检查 /var/log/auth.log 或 /var/log/secure 中的异常登录。

6. 安装 fail2ban 防暴力破解

fail2ban 可自动封禁多次登录失败的 IP。安装并配置:

apt install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑 jail.local,启用 [sshd] 并设置 maxretry = 3,bantime = 3600。启动服务:systemctl enable --now fail2ban。

7. 文件系统安全

设置关键目录权限:chmod 700 /root,chmod 644 /etc/passwd。使用 chattr +i 锁定重要文件如 /etc/passwd、/etc/shadow 防止篡改。定期检查 SUID/SGID 文件:find / -perm -4000 -type f 2>/dev/null,移除不必要的 SUID 位。

8. 服务最小化

关闭不必要的服务:systemctl list-unit-files --type=service | grep enabled,禁用如 telnet、rsh 等不安全服务。使用 ss -tunlp 查看监听端口,确保只开放必要端口。

9. 内核参数加固

编辑 /etc/sysctl.conf,添加:

net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_syncookies = 1
kernel.randomize_va_space = 2

执行 sysctl -p 生效。这些参数可防御 IP 欺骗、SYN Flood 等攻击。

10. 定期安全扫描与审计

使用工具如 lynis 进行安全审计:lynis audit system。安装 rkhunter 和 chkrootkit 检测 rootkit。定期运行 nmap 扫描本机端口,确保没有意外开放的服务。

行动建议:立即按照上述清单逐项检查并加固你的 Linux 主机。对于企业环境,可考虑使用 AegisX 的主机安全加固功能,自动化基线检查与合规审计,持续监控安全状态。安全是一个持续过程,定期复查和更新策略才能有效抵御威胁。

常见问题(FAQ)

如何快速检查 Linux 主机是否已被入侵?

首先检查异常进程和网络连接:运行 `ps aux` 和 `netstat -tunlp` 查看可疑进程和监听端口。其次检查登录日志 `/var/log/auth.log` 或 `/var/log/secure` 中的异常登录记录。还可以使用 `last` 和 `lastb` 查看成功和失败的登录尝试。若发现未知进程或连接,立即隔离主机并深入分析。

SSH 加固有哪些必做的步骤?

必做步骤包括:1. 修改默认端口(如 2222);2. 禁用 root 直接登录(PermitRootLogin no);3. 使用密钥认证并禁用密码登录(PasswordAuthentication no);4. 限制可登录用户(AllowUsers);5. 安装 fail2ban 防暴力破解。完成后重启 sshd 服务并测试新连接,避免锁死自己。

iptables 和 firewalld 哪个更适合 Linux 安全加固?

两者均可,选择取决于发行版和熟悉程度。iptables 更底层、灵活,适合需要精细控制的场景;firewalld 提供动态管理和区域概念,更易用,适合 CentOS/RHEL 7+。建议统一使用一种,并配置默认拒绝策略,只放行必要端口。对于新手,firewalld 更友好;对于高级用户,iptables 更直接。

如何设置自动安全更新?

在 Debian/Ubuntu 上安装 unattended-upgrades:`apt install unattended-upgrades` 并启用 `dpkg-reconfigure --priority=low unattended-upgrades`。在 CentOS/RHEL 上使用 yum-cron:`yum install yum-cron` 并配置 `/etc/yum/yum-cron.conf` 中 `apply_updates = yes`。自动更新可及时修补漏洞,但建议在测试环境验证后再应用于生产。

Linux 主机安全加固后如何验证效果?

验证方法包括:1. 使用 `nmap` 扫描本机,确认只开放了必要端口;2. 尝试使用错误密码 SSH 登录,确认 fail2ban 是否封禁 IP;3. 检查 `sudo -l` 确认用户权限最小化;4. 运行 `lynis` 等审计工具进行安全评分。定期复查并更新加固策略,确保长期有效。