
概述 #
服务器安全是运维工作的基础。本文介绍关键的安全加固措施。
用户管理 #
禁用 root 远程登录 #
# 编辑 SSH 配置
sudo vim /etc/ssh/sshd_config
# 修改配置
PermitRootLogin no
PasswordAuthentication no
# 重启 SSH 服务
sudo systemctl restart sshd创建普通用户 #
# 创建用户
sudo useradd -m -s /bin/bash newuser
# 设置密码
sudo passwd newuser
# 添加到 sudo 组
sudo usermod -aG sudo newuser
# 测试切换
su - newuser
sudo whoami禁用空密码 #
# 编辑配置
sudo vim /etc/ssh/sshd_config
# 禁用空密码
PermitEmptyPasswords no
# 重启服务
sudo systemctl restart sshd防火墙配置 #
UFW (Ubuntu) #
# 安装 UFW
sudo apt install ufw
# 默认拒绝所有
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 SSH
sudo ufw allow 22/tcp
# 允许 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable
# 查看状态
sudo ufw statusFirewallD (CentOS) #
# 安装 FirewallD
sudo yum install firewalld
# 启动服务
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 允许服务
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重新加载
sudo firewall-cmd --reload
# 查看规则
sudo firewall-cmd --list-allSSH 安全 #
密钥认证 #
# 本地生成密钥
ssh-keygen -t ed25519 -C "your@email.com"
# 复制公钥到服务器
ssh-copy-id user@server-ip
# 禁用密码登录
sudo vim /etc/ssh/sshd_config
PasswordAuthentication no修改默认端口 #
# 编辑配置
sudo vim /etc/ssh/sshd_config
# 修改端口
Port 2222
# 重启服务
sudo systemctl restart sshd
# 防火墙开放新端口
sudo ufw allow 2222/tcp使用 Fail2Ban 防止暴力破解 #
# 安装
sudo apt install fail2ban
# 复制配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑配置
sudo vim /etc/fail2ban/jail.local
# 启动服务
sudo systemctl start fail2ban
sudo systemctl enable fail2ban文件系统安全 #
关键文件权限 #
# 检查关键文件
ls -la /etc/passwd
ls -la /etc/shadow
# 修复权限
sudo chmod 644 /etc/passwd
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/group系统更新 #
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
# 设置自动更新
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades日志审计 #
启用审计 #
# 检查审计服务
sudo apt install auditd
# 启动服务
sudo systemctl start auditd
sudo systemctl enable auditd
# 查看日志
sudo ausearch -m exe -ts recent关键操作监控 #
# 监控敏感文件
sudo auditctl -w /etc/passwd -p wa
sudo auditctl -w /etc/shadow -p wa
# 监控命令执行
sudo auditctl -a always,exit -F arch=b64 -S execve快照和备份 #
定期备份 #
# 创建备份脚本
sudo vim /usr/local/bin/backup.sh
#!/bin/bash
tar -czf /backup/etc-$(date +%Y%m%d).tar.gz /etc
tar -czf /backup/home-$(date +%Y%m%d).tar.gz /home
# 添加到 cron
sudo crontab -e
# 0 2 * * * /usr/local/bin/backup.sh文件完整性检查 #
# 安装 AIDE
sudo apt install aide
# 初始化数据库
sudo aide --init
# 检查差异
sudo aide --check总结 #
服务器安全需要持续关注和维护,定期检查和更新是关键。