1. SSH 服务安全加固
SSH 是服务器远程管理的主要入口,加固 SSH 配置能显著提升服务器安全性。
1.1 编辑 SSH 配置文件
sudo vim /etc/ssh/sshd_config
1.2 关键安全配置
# 禁用root直接登录
PermitRootLogin no
# 关闭密码登录,启用SSH密钥认证
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
1.3 重启 SSH 服务使配置生效
# 对于systemd系统
sudo systemctl restart sshd
# 对于sysvinit系统
sudo service sshd restart
1.4 配置 SSH 密钥登录
在客户端生成密钥对:
# 生成更安全的ed25519密钥
ssh-keygen -t ed25519 -C "your_email@example.com"
将公钥上传到服务器:
# 替换为实际端口、用户名和服务器IP
ssh-copy-id -p 2222 username@server_ip
2. 用户管理与权限配置
2.1 创建具有 sudo 权限的管理员用户
# 创建新用户(替换username为你的用户名)
sudo adduser username
# 将用户添加到sudo组(Debian/Ubuntu系统)
sudo usermod -aG sudo username
# 如果是CentOS/RHEL系统,使用wheel组
sudo usermod -aG wheel username
2.2 验证 sudo 权限
# 切换到新用户
su - username
# 测试sudo权限
sudo ls /root
2.3 配置 sudo 超时设置(推荐)
sudo visudo
添加或修改以下配置:
# 设置sudo密码超时时间为5分钟(300秒)
Defaults timestamp_timeout=5
2.4 配置 sudo 免密码(不推荐,有安全风险)
sudo visudo
添加以下内容(替换 username):
# 允许特定用户免密码执行所有命令
username ALL=(ALL) NOPASSWD: ALL
# 或仅允许免密码执行特定命令(相对安全)
username ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl
3. 防火墙配置
3.1 安装并启用 UFW 防火墙
# 安装ufw
sudo apt install ufw # Debian/Ubuntu
# 或
sudo yum install ufw # CentOS/RHEL
4. 系统安全审计
auditd 工具用于监控系统活动,帮助追踪安全事件。
4.1 安装与基本操作
# 安装auditd
sudo apt install auditd # Debian/Ubuntu
# 或
sudo yum install auditd # CentOS/RHEL
# 启动服务
sudo systemctl start auditd
# 设置开机自启
sudo systemctl enable auditd
# 查看状态
sudo systemctl status auditd
4.2 配置审计规则
# 查看当前审计规则
sudo auditctl -l
# 添加重要文件监控规则
sudo auditctl -w /etc/passwd -p rwxa -k passwd_changes
sudo auditctl -w /etc/sudoers -p rwxa -k sudoers_changes
sudo auditctl -w /var/log/auth.log -p r -k login_logs
# 保存规则为永久规则
sudo vi /etc/audit/rules.d/audit.rules
# 添加上述规则(去掉auditctl前缀)
4.3 查看审计日志
# 按标签查询
sudo ausearch -k passwd_changes
# 生成登录审计报告
sudo aureport -l
# 生成文件变更报告
sudo aureport -f
5. 恶意软件检测
使用 rkhunter 和 chkrootkit 工具检测 rootkit 和恶意软件。
5.1 rkhunter 使用
# 安装
sudo apt install rkhunter # Debian/Ubuntu
# 或
sudo yum install rkhunter # CentOS/RHEL
# 更新病毒库
sudo rkhunter --update
# 更新系统文件属性数据库(系统更新后建议执行)
sudo rkhunter --propupd
# 执行检查
sudo rkhunter --check
# 详细模式检查
sudo rkhunter --check --verbose
# 仅显示警告信息
sudo rkhunter --check --report-warnings-only
5.2 chkrootkit 使用
# 安装
sudo apt install chkrootkit # Debian/Ubuntu
# 或
sudo yum install chkrootkit # CentOS/RHEL
# 基本检查
sudo chkrootkit
# 检查所有分区
sudo chkrootkit -r /
# 详细模式
sudo chkrootkit -v
# 将结果输出到日志
sudo chkrootkit > /var/log/chkrootkit.log 2>&1
6. 系统更新与维护
6.1 启用自动更新
# Debian/Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# CentOS/RHEL
sudo yum install -y dnf-automatic
sudo systemctl enable --now dnf-automatic.timer
6.2 手动更新系统
# Debian/Ubuntu
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
6.3 禁用不必要的服务
# 查看运行中的服务
sudo systemctl list-unit-files --type=service --state=enabled
# 禁用不需要的服务
sudo systemctl disable service_name
7. 定期安全检查
7.1 设置定期安全扫描任务
# 编辑root用户的定时任务
sudo crontab -e
添加以下内容(每周日凌晨执行):
# 每周日凌晨3点执行rkhunter检查
0 3 * * 0 /usr/bin/rkhunter --check --skip-keypress --report-warnings-only
# 每周日凌晨4点执行chkrootkit检查
0 4 * * 0 /usr/bin/chkrootkit > /var/log/chkrootkit_weekly.log 2>&1
# 每周日凌晨5点更新系统包列表
0 5 * * 0 /usr/bin/apt update -y > /var/log/apt_update.log 2>&1
7.2 定期检查的关键日志文件
- /var/log/auth.log – 系统认证日志(包含 SSH 登录信息)
- /var/log/audit/audit.log – auditd 审计日志
- /var/log/rkhunter.log – rkhunter 检测日志
- /var/log/chkrootkit.log – chkrootkit 检测日志
通过遵循本教程的步骤,你可以显著提高 Linux 服务器的安全性,同时保持管理的便捷性。安全是一个持续的过程,建议定期回顾和更新你的安全策略。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容