Linux服务器安全指南

基于How-To-Secure-A-Linux-Server项目的综合安全实践手册,为您提供从基础到高级的完整服务器安全解决方案

开始学习

安全概览

构建多层防护体系,保护您的Linux服务器免受各种安全威胁

安全基础原则

建立安全思维,明确威胁模型,制定安全策略和恢复计划。

  • 默认拒绝原则
  • 最小权限访问
  • 定期安全审计
  • 灾难恢复计划

SSH服务加固

保护最重要的远程访问通道,防止未授权访问和暴力破解。

  • 密钥认证
  • 禁用root登录
  • 双因素认证
  • 端口变更

防火墙与网络

构建多层网络防护,控制流量并检测异常行为。

  • UFW防火墙
  • Fail2ban防护
  • 端口扫描检测
  • 流量监控

用户与权限

严格控制用户访问权限,实施最小权限原则。

  • sudo管理
  • 用户组策略
  • 密码策略
  • 文件权限

监控与审计

建立完整的监控体系,及时发现和响应安全事件。

  • 日志分析
  • 入侵检测
  • 性能监控
  • 备份策略

安全基础原则

建立坚实的安全基础,是保护服务器的首要步骤

安全思维
安全不是目的地,而是一段持续的旅程。需要定期更新、监控和改进。

核心安全原则

原则 描述 实施方法
默认拒绝 拒绝所有未明确允许的访问 防火墙默认策略、最小权限配置
分层防护 构建多层安全屏障 网络层、应用层、主机层防护
最小权限 用户仅拥有所需的最小权限 sudo配置、用户组管理
定期审计 定期检查和评估安全性 日志分析、漏洞扫描
快速响应 及时发现和处理安全事件 监控系统、应急响应计划

SSH服务安全加固

保护最重要的远程访问通道,防止未授权访问

重要提醒
在修改SSH配置前,请确保您有其他访问服务器的方式,以防配置错误导致无法连接。

密钥认证配置

使用SSH密钥替代密码认证,提供更强的安全性。

# 生成Ed25519密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"

# 将公钥复制到服务器
ssh-copy-id user@server_ip

# 测试密钥登录
ssh user@server_ip

SSH配置文件

编辑/etc/ssh/sshd_config文件,应用安全设置。

# 禁用root登录
PermitRootLogin no

# 禁用密码认证
PasswordAuthentication no

# 启用密钥认证
PubkeyAuthentication yes

# 修改默认端口
Port 2222

# 限制登录尝试
MaxAuthTries 3

双因素认证

添加额外的安全层,要求输入验证码。

# 安装Google Authenticator
sudo apt install libpam-google-authenticator

# 为用户配置2FA
google-authenticator

# 编辑PAM配置
sudo nano /etc/pam.d/sshd

# 添加以下行
auth required pam_google_authenticator.so

防火墙与网络防护

构建多层网络防护体系,阻止恶意访问

UFW基础配置

使用UFW(Uncomplicated Firewall)简化防火墙管理。

# 安装UFW
sudo apt install ufw

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

# 允许SSH端口
sudo ufw allow 2222/tcp

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status

Fail2ban配置

自动检测和阻止暴力破解攻击。

# 安装Fail2ban
sudo apt install fail2ban

# 创建配置文件
sudo nano /etc/fail2ban/jail.local

# 基本配置
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

端口监控

定期检查系统监听的端口,发现异常服务。

# 查看监听端口
sudo ss -tulnp

# 查看TCP连接
sudo ss -tlnp

# 查看UDP连接
sudo ss -ulnp

# 查看所有连接
sudo netstat -tulnp

监控与审计

建立完整的监控体系,及时发现安全威胁

监控的重要性
有效的监控可以帮助您在安全事件发生前发现异常,并提供详细的事件分析数据。

日志管理

配置系统日志,监控重要安全事件。

# 查看认证日志
sudo tail -f /var/log/auth.log

# 查看系统日志
sudo journalctl -f

# 查看SSH日志
sudo grep sshd /var/log/auth.log

# 配置日志轮转
sudo nano /etc/logrotate.conf

入侵检测

使用AIDE和OSSEC检测系统异常。

# 安装AIDE
sudo apt install aide

# 初始化数据库
sudo aideinit

# 检查完整性
sudo aide --check

# 安装OSSEC
wget -q -O - https://updates.atomicorp.com/installers/atomic | sudo sh
sudo apt install ossec-hids

备份策略

制定定期备份计划,确保数据安全。

# 使用rsync备份
rsync -avz /important/data backup@server:/backup/

# 创建备份脚本
#!/bin/bash
tar -czf /backup/system-$(date +%Y%m%d).tar.gz /etc /home

# 设置定时任务
crontab -e
0 2 * * * /path/to/backup.sh