Linux 服务器安全加固:10 个必做的安全配置
在云计算和 DevOps 时代,服务器安全是每个系统管理员和开发者的首要任务。本文将详细介绍 10 个关键的 Linux 服务器安全配置,帮助你构建更安全的系统环境。
1. 禁用 root 远程登录
直接使用 root 用户远程登录是极大的安全隐患。应该创建普通用户并通过 sudo 提权。
# 编辑 SSH 配置文件
sudo vim /etc/ssh/sshd_config
# 修改以下配置
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
# 重启 SSH 服务
sudo systemctl restart sshd
2. 配置防火墙 (UFW)
Ubuntu 的 UFW 防火墙简单易用,能有效控制网络访问。
# 安装 UFW
sudo apt install ufw
# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 SSH、HTTP、HTTPS
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable
3. 自动安全更新
配置 unattended-upgrades 自动安装安全补丁。
# 安装自动更新工具
sudo apt install unattended-upgrades
# 配置自动更新
sudo dpkg-reconfigure --priority=low unattended-upgrades
# 验证配置
sudo cat /etc/apt/apt.conf.d/50unattended-upgrades
4. 失败登录限制 (Fail2Ban)
Fail2Ban 能自动封禁多次登录失败的 IP 地址。
# 安装 Fail2Ban
sudo apt install fail2ban
# 创建本地配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑配置,设置 SSH 保护
sudo vim /etc/fail2ban/jail.local
# 重启服务
sudo systemctl restart fail2ban
# 查看状态
sudo fail2ban-client status sshd
5. 配置 SSH 密钥认证
使用 SSH 密钥比密码更安全。
# 生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"
# 复制公钥到服务器
ssh-copy-id user@server_ip
# 测试密钥登录
ssh user@server_ip
6. 限制用户权限
遵循最小权限原则,只给用户必要的权限。
# 创建新用户
sudo adduser deploy
# 添加到 sudo 组(如果需要)
sudo usermod -aG sudo deploy
# 配置精细的 sudo 权限
sudo visudo
# 示例:只允许执行特定命令
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
7. 启用审计日志
使用 auditd 记录系统活动。
# 安装 auditd
sudo apt install auditd
# 监控关键文件
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
# 查看日志
sudo ausearch -k passwd_changes
8. 配置日志轮转
防止日志文件占用过多磁盘空间。
# 编辑 logrotate 配置
sudo vim /etc/logrotate.d/rsyslog
# 示例配置
/var/log/syslog {
rotate 7
daily
missingok
notifempty
delaycompress
compress
}
9. 禁用不必要的服务
减少攻击面,关闭不需要的服务。
# 查看运行的服务
systemctl list-units --type=service --state=running
# 禁用不需要的服务
sudo systemctl disable telnet.socket
sudo systemctl disable rsh.socket
10. 定期安全扫描
使用工具定期检查系统漏洞。
# 安装 Lynis 安全审计工具
sudo apt install lynis
# 运行系统审计
sudo lynis audit system
# 查看报告
cat /var/log/lynis-report.dat
总结
服务器安全是一个持续的过程,需要定期检查和更新配置。建议:
- 每周检查安全日志
- 每月运行安全扫描
- 每季度审查用户权限
- 及时更新系统和软件
安全无小事,做好基础防护能避免大部分安全问题!
文章评论