Linux服务器安全加固20项清单:逐条检查 核心要点图解,禁用root远程登录并修改SSH默认端口,可大幅降低暴力破解风险。;配置防火墙仅开放必要端口,并启用fail2ban自动封禁恶意IP。;定期更新系统补丁,使用最小权限原则管理账户和文件权限。;启用日志监控和审计,及时发现异常行为并响应。
Linux服务器安全加固20项清单:逐条检查 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 禁用root远程登录并修改SSH默认端口,可大幅降低暴力破解风险。
  • 配置防火墙仅开放必要端口,并启用fail2ban自动封禁恶意IP。
  • 定期更新系统补丁,使用最小权限原则管理账户和文件权限。
  • 启用日志监控和审计,及时发现异常行为并响应。

你的Linux服务器是否已经做好了足够的安全防护?面对日益复杂的网络攻击,许多运维人员往往只做了基础配置,却忽略了关键的安全加固项。本文提供一份20项的Linux服务器安全加固清单,每项都附带具体操作命令,帮助你逐条检查并落实,有效提升服务器安全性。

1. 账户与认证安全

账户是入侵的第一道门槛。首先,检查是否存在空密码账户:awk -F: '(=="") {print }' /etc/shadow,若有则立即设置密码或锁定。其次,禁用不必要的默认账户,如adm、lp、sync等:usermod -L 。确保root账户仅限本地登录,通过passwd -l root锁定root密码(如果使用密钥登录)。

设置强密码策略:编辑/etc/login.defs,设置PASS_MAX_DAYS 90、PASS_MIN_LEN 12。使用pam_pwquality模块强制复杂度,在/etc/pam.d/system-auth中添加password requisite pam_pwquality.so try_first_pass retry=3 minlen=12 difok=3。

2. SSH服务加固

SSH是服务器管理的主要入口,必须重点加固。编辑/etc/ssh/sshd_config,修改以下参数:

  • Port 2222(修改默认端口)
  • PermitRootLogin no(禁止root登录)
  • PasswordAuthentication no(禁用密码认证,使用密钥)
  • PubkeyAuthentication yes(启用密钥认证)
  • AllowUsers user1 user2(限制允许登录的用户)
  • ClientAliveInterval 300(设置空闲超时)
  • MaxAuthTries 3(限制认证尝试次数)

修改后重启SSH服务:systemctl restart sshd。注意:在修改端口和禁用密码前,确保已配置好密钥登录并测试通过,避免被锁在服务器外。

3. 防火墙与网络防护

配置防火墙,只开放必要的端口。使用iptables或firewalld,以下以iptables为例:

iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables -P OUTPUT ACCEPT
 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
 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 service iptables save

同时,安装fail2ban防止暴力破解:yum install fail2ban,配置/etc/fail2ban/jail.local,启用ssh监控:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

启动服务:systemctl start fail2ban。

4. 文件系统与权限控制

确保关键文件权限正确:/etc/passwd为644,/etc/shadow为000或400。使用chmod 600 /etc/ssh/sshd_config。查找全局可写文件:find / -type f -perm -0002 -exec ls -l {} \;,并修复。设置umask为027:echo "umask 027" >> /etc/profile。禁用不必要的SUID/SGID文件:find / -perm -4000 -o -perm -2000 -exec ls -l {} \;,移除不必要权限。

5. 日志与监控

启用系统日志和审计。确保rsyslog和auditd运行:systemctl enable rsyslog auditd。配置日志轮转:/etc/logrotate.conf。使用last和lastb检查登录记录。部署监控工具如AegisX,实时检测异常行为,提供入侵检测和响应。

6. 定期更新与补丁管理

保持系统更新:yum update -y或apt upgrade -y。启用自动安全更新:yum install yum-cron并配置/etc/yum/yum-cron.conf中apply_updates = yes。对于内核更新,安排重启时间。

7. 其他加固项

  • 禁用IPv6(若不需要):在/etc/sysctl.conf中添加net.ipv6.conf.all.disable_ipv6 = 1
  • 启用SYN Cookie防洪水攻击:net.ipv4.tcp_syncookies = 1
  • 禁用ICMP重定向:net.ipv4.conf.all.accept_redirects = 0
  • 设置登录超时:export TMOUT=300在/etc/profile
  • 移除不必要的服务:systemctl disable

完成以上检查后,建议使用自动化工具如Lynis进行安全审计:lynis audit system,根据报告进一步优化。

行动建议:立即对照本清单逐项检查你的服务器,优先处理SSH加固和防火墙配置。定期复查,确保安全配置持续有效。

常见问题(FAQ)

如何检查Linux服务器是否已被入侵?

检查异常进程、网络连接、登录日志和文件变动。使用命令如`ps aux`、`netstat -tunlp`、`last`、`lastb`查看。重点关注未知进程、异常外连、非授权登录。同时检查crontab、/tmp目录、SUID文件等。若发现可疑,立即隔离服务器并深入分析。

SSH加固有哪些必做项?

必做项包括:禁用root远程登录(PermitRootLogin no)、修改默认端口、使用密钥认证、禁用密码登录、限制用户访问(AllowUsers)、设置登录失败次数限制。修改后重启sshd服务,并确保新端口可访问,避免把自己锁在外面。

防火墙应该怎么配置才安全?

遵循最小开放原则,只允许必要端口(如SSH、HTTP、HTTPS)。使用iptables或firewalld,默认拒绝所有入站,按需放行。同时配置出站规则,限制不必要的对外连接。推荐使用ufw简化管理,并定期审查规则。

如何设置强密码策略?

通过修改/etc/login.defs设置密码长度、过期时间;使用pam_cracklib或pam_pwquality模块强制复杂度。命令:`authconfig --passminlen=12 --passminclass=3 --update`。同时启用账户锁定策略,防止暴力破解。

为什么要定期更新系统?

系统更新修复已知安全漏洞,防止攻击者利用。使用`yum update`或`apt upgrade`定期更新,并启用自动安全更新。对于内核更新,需重启生效。建议在测试环境验证后再生产部署。