Linux服务器安全加固:从零开始的10个必备步骤

🔒 为什么服务器安全如此重要

服务器安全是每个网站运营者都必须重视的问题。一旦服务器被入侵,可能导致数据泄露、网站被挂马、业务中断等严重后果。本文分享10个Linux服务器安全加固的必备步骤,帮助你保护服务器安全。

🔑 一、禁用root登录,改用SSH密钥

root用户是黑客攻击的首选目标,禁用密码登录改用密钥对是最高效的安全措施。

# 1. 在本地生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"

# 2. 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip

# 3. 编辑服务器SSH配置
sudo vim /etc/ssh/sshd_config

# 修改以下配置:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2222  # 改用非标准端口

# 4. 重启SSH服务
sudo systemctl restart sshd

🛡️ 二、配置防火墙(UWF/iptables)

防火墙是第一道防线,只开放必要的端口。

# 安装UFW
sudo apt install ufw

# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 开放必要端口
sudo ufw allow 2222/tcp  # SSH
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose

⛔ 三、安装和配置fail2ban

fail2ban可以自动封禁多次登录失败的IP,防止暴力破解。

# 安装fail2ban
sudo apt install fail2ban -y

# 编辑配置
sudo vim /etc/fail2ban/jail.local

[sshd]
enabled = true
port = 2222
maxretry = 3
findtime = 10m
bantime = 30m
banaction = iptables-multiport

# 启动服务
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

🔄 四、保持系统更新

及时安装安全更新补丁,是最基本但最重要的安全措施。

# 设置自动安全更新
sudo apt install unattended-upgrades unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades

# 手动更新
sudo apt update && sudo apt upgrade -y

📹 五、配置Tripwire入侵检测

Tripwire可以监控系统文件的变更,及时发现潜在入侵。

# 安装Tripwire
sudo apt install tripwire

# 初始化数据库
sudo twadmin -m G /etc/tripwire/tw.pol
sudo tripwire --init

# 检查系统完整性
sudo tripwire --check

🚫 六、禁用不必要的服务和端口

关闭不需要的服务,减少攻击面。

# 查看运行中的服务
systemctl list-units --type=service --state=running

# 禁用不需要的服务
sudo systemctl disable service_name
sudo systemctl stop service_name

📁 七、设置合理的文件权限

# 网站文件权限
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

# 敏感文件权限
chmod 600 /etc/passwd
chmod 600 /etc/shadow
chmod 640 /etc/ssh/sshd_config

📋 八、配置日志审计

启用并定期检查系统日志,及时发现异常行为。

# 查看SSH登录日志
tail -f /var/log/auth.log

# 安装auditd
sudo apt install auditd
sudo systemctl enable auditd
sudo systemctl start auditd

# 查看审计日志
sudo aureport -l

🔐 九、配置AppArmor/SELinux

使用强制访问控制(MAC)限制程序权限。

# Ubuntu检查AppArmor状态
sudo aa-status

# 启用/禁用
sudo systemctl enable apparmor
sudo systemctl start apparmor

💾 十、定期备份和灾备演练

再完善的防护也可能被攻破,完善的备份是最后一道防线。

📋 备份策略:
1. 每日增量备份
2. 每周完整备份
3. 异地备份(至少保留3份)
4. 定期灾备演练

# 使用rsync备份
rsync -avz --delete /var/www/html/ backup:/backup/

📌 总结

服务器安全需要持续关注和维护,没有一劳永逸的解决方案。按照以上10个步骤加固你的Linux服务器,并保持警惕、定期检查日志、及时更新系统,才能有效保护你的服务器安全。安全是永无止境的工作。


Comments

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注