Linux服务器安全加固实战指南:初级运维必知的10个关键步骤
骑着蜗牛追火箭 2025-11-01 22:04:19

Linux服务器安全加固实战指南:初级运维必知的10个关键步骤

对于管理Linux服务器的站长和初级运维人员来说,服务器安全是头等大事。一个被攻破的服务器不仅意味着数据丢失、业务中断,还可能被利用成为攻击其他系统的跳板。因此,从一开始就对服务器进行安全加固,是保障业务稳定运行的基础。本文将介绍10个关键且实用的安全加固步骤。

1. 更新系统和软件包

这是最基础也是最重要的一步。保持操作系统和所有已安装软件包的最新状态,可以修复已知的安全漏洞。

  • Ubuntu/Debian: 运行 sudo apt update && sudo apt upgrade
  • CentOS/RHEL/Rocky Linux: 运行 sudo dnf update (或 yum update 在较老版本)


2. 配置强密码策略与SSH密钥认证

弱密码是攻击者最常利用的入口之一。

  • 设置强密码: 要求密码包含大小写字母、数字和特殊字符,长度至少12位。避免使用常见词汇或个人信息。
  • 配置PAM模块 (可选但推荐): 可以配置PAM (Pluggable Authentication Modules) 来强制执行更复杂的密码策略,例如最小长度、历史密码限制等。
  • 启用SSH密钥认证: 这是比密码更安全的登录方式。生成SSH密钥对,将公钥添加到服务器~/.ssh/authorized_keys文件中,然后禁用密码登录可以极大提升SSH安全性。


3. 配置并启用防火墙 (UFW或firewalld)

防火墙是服务器的第一道防线,用于控制进出服务器的网络流量。

  • UFW (Ubuntu):
    1. 安装: sudo apt install ufw
    2. 设置默认策略 (可选,更安全): sudo ufw default deny incoming, sudo ufw default allow outgoing
    3. 允许特定服务: sudo ufw allow OpenSSH (或 sudo ufw allow 22), sudo ufw allow 'Nginx Full' (或 sudo ufw allow 80,443)
    4. 启用防火墙: sudo ufw enable
  • firewalld (CentOS/RHEL):
    1. 启动并设置开机自启: sudo systemctl start firewalld && sudo systemctl enable firewalld
    2. 允许服务: sudo firewall-cmd --permanent --add-service=ssh, sudo firewall-cmd --permanent --add-service=https
    3. 重新加载配置: sudo firewall-cmd --reload


4. 配置SSH服务安全选项

SSH是远程管理服务器的主要方式,必须进行安全配置。

  • 编辑SSH配置文件: sudo nano /etc/ssh/sshd_config
  • 修改关键设置:
    • Port 22 -> 改为非标准端口 (如2222),可以减少自动化扫描的攻击。
    • PermitRootLogin yes -> 改为 PermitRootLogin noPermitRootLogin prohibit-password (如果必须用root,仅允许密钥登录)。强烈建议禁用root直接登录。
    • PasswordAuthentication yes -> 改为 PasswordAuthentication no (如果你已配置并使用SSH密钥)。
    • MaxAuthTries 6 -> 限制登录尝试次数。
    • LoginGraceTime 60 -> 限制登录会话时间。
  • 保存文件后,重启SSH服务: sudo systemctl restart sshd


5. 管理用户权限与Sudo配置

遵循最小权限原则,避免普通用户拥有不必要的系统权限。

  • 为日常管理创建一个普通用户 (例如deploy),并将其加入sudo组 (usermod -aG wheel username on RHEL/CentOS, sudo usermod -aG sudo username on Ubuntu)。
  • 谨慎管理/etc/sudoers文件,只给必要的用户或组分配必要的sudo权限。建议使用visudo命令编辑,它会检查语法错误。


6. 安装并配置Fail2Ban

Fail2Ban是一个入侵防御软件框架,它通过监控日志文件(如SSH、FTP等服务的日志)来检测暴力破解等恶意行为,并自动将攻击者的IP地址加入防火墙黑名单一段时间。

  • 安装: sudo apt install fail2ban (Ubuntu) 或 sudo dnf install fail2ban (CentOS)
  • 配置: 复制默认配置文件 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,然后编辑jail.local文件,根据需要调整规则(如封禁时间、尝试次数等)。
  • 启动并设置开机自启: sudo systemctl start fail2ban && sudo systemctl enable fail2ban


7. 定期备份重要数据

安全是多层防御,即使服务器被攻破,定期且可靠的备份也能让你快速恢复业务。将备份存储在与主服务器隔离的位置(如另一台服务器、云存储)。

8. 监控系统日志

定期检查系统日志(如/var/log/auth.log/var/log/secure用于SSH登录记录,/var/log/messages或journal日志journalctl)可以帮助你发现异常登录、系统错误或潜在的攻击迹象。

9. 禁用不必要的服务和端口

检查并停止服务器上运行的不必要的服务(systemctl list-units --type=service --state=running),并使用防火墙阻止访问不需要对外开放的端口,以减少攻击面。

10. 考虑使用自动化运维工具

对于管理多台服务器或希望标准化配置的场景,可以学习使用Ansible、Puppet、Chef等自动化运维工具,将安全加固步骤脚本化,提高效率和一致性。

通过实施以上这些基础的安全加固措施,可以显著提升Linux服务器的防护能力,为你的网站和应用构建一个更安全、更可靠的运行环境。

看过的人 (0)
最新回复 (0)
返回
扫码访问