Linux 服务器安全加固与管理教程

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
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容