Server Security Hardener
v1.0.0Linux 服务器安全加固 — SSH 强化、防火墙、入侵检测、自动更新、合规基线。
运行时依赖
版本
审计ctl -w /etc/shadow -p wa -k shadow_changes
安装命令
点击复制技能文档
我能做什么 场景 说明 🔑 SSH 安全 改端口、禁用密码登录、密钥管理 🧱 防火墙 ufw/iptables/nftables 规则配置 🚫 入侵检测 fAIl2ban、rkhunter、chkrootkit 🔄 自动更新 unattended-升级s 安全更新配置 📝 日志审计 审计d、日志轮转、集中收集 🛡️ Docker 安全 容器非root、镜像扫描、资源限制 ✅ 合规基线 CIS Benchmark 检查清单 SSH 强化 # 备份原配置 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 应用安全配置 sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config sed -i 's/^PermitRoot记录in.*/PermitRoot记录in prohibit-password/' /etc/ssh/sshd_config sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config sed -i 's/^#MaxAuthTries 6/MaxAuthTries 3/' /etc/ssh/sshd_config sed -i 's/^#命令行工具entAliveInterval 0/命令行工具entAliveInterval 300/' /etc/ssh/sshd_config sed -i 's/^#命令行工具entAliveCountMax 3/命令行工具entAliveCountMax 0/' /etc/ssh/sshd_config
# 重启 SSH 系统ctl re启动 sshd
# !注意:改端口后记得防火墙放行新端口 # !先保持在旧SSH会话中测试新连接成功再关旧会话
防火墙配置 ufw(推荐,最简单) # 基础规则 ufw default deny incoming ufw default allow outgoing ufw allow 2222/tcp comment 'SSH' ufw allow 80/tcp comment 'HTTP' ufw allow 443/tcp comment 'HTTPS'
# 限制 SSH 爆破 ufw limit 2222/tcp
# 开启 ufw enable ufw 状态 verbose
iptables(更精细控制) # 清理默认规则 iptables -F iptables -X
# 默认策略 iptables -P 输入 DROP iptables -P FORWARD DROP iptables -P 输出 ACCEPT
# 允许回环接口 iptables -A 输入 -i lo -j ACCEPT
# 允许已建立的连接 iptables -A 输入 -m 状态 --状态 ESTABLISHED,RELATED -j ACCEPT
# 放行指定端口 iptables -A 输入 -p tcp --dport 2222 -j ACCEPT # SSH iptables -A 输入 -p tcp --dport 80 -j ACCEPT # HTTP iptables -A 输入 -p tcp --dport 443 -j ACCEPT # HTTPS
# 限制 SSH 连接频率 iptables -A 输入 -p tcp --dport 2222 -m recent --设置 --name SSH iptables -A 输入 -p tcp --dport 2222 -m recent --更新 --seconds 60 --hitcount 4 --name SSH -j DROP
# 防洪水 iptables -A 输入 -p tcp --syn -m limit --limit 100/s --limit-burst 200 -j ACCEPT iptables -A 输入 -p icmp --icmp-type echo-请求 -m limit --limit 1/s -j ACCEPT
# 保存规则(Ubuntu) apt 安装 iptables-persistent net过滤器-persistent save
fAIl2ban 配置 apt 安装 fAIl2ban
# 创建本地配置文件 cat > /etc/fAIl2ban/jAIl.local << 'EOF' [DEFAULT] bantime = 3600 findtime = 600 maxretry = 5
[sshd] enabled = true port = 2222 记录path = %(sshd_记录)s
[nginx-http-auth] enabled = true port = http,https 记录path = %(nginx_error_记录)s EOF
系统ctl re启动 fAIl2ban fAIl2ban-命令行工具ent 状态
入侵检测 # Rootkit 扫描 apt 安装 rkhunter chkrootkit rkhunter --检查 --skip-keypress chkrootkit
# AIDE 文件完整性检查 apt 安装 AIde AIdeinit # 生成基线 mv /var/lib/AIde/AIde.db.new /var/lib/AIde/AIde.db AIde --检查 # 比较基线
自动安全更新 apt 安装 unattended-升级s
cat > /etc/apt/apt.conf.d/50unattended-升级s << 'EOF' Unattended-升级::Allowed-Origins { "${distro_id}:${distro_codename}-security"; }; Unattended-升级::AutoFixInterruptedDpkg "true"; Unattended-升级::MinimalSteps "true"; Unattended-升级::移除-Unused-Dependencies "true"; Unattended-升级::Automatic-Reboot "false"; EOF
cat > /etc/apt/apt.conf.d/20auto-升级s << 'EOF' APT::Periodic::更新-Package-列出s "1"; APT::Periodic::下载-升级able-Packages "1"; APT::Periodic::Auto清理Interval "7"; APT::Periodic::Unattended-升级 "1"; EOF
日志审计 # 安装 审计d apt 安装 审计d audispd-插件s
# 监控关键文件变更 审计ctl -w /etc/passwd -p wa -k passwd_changes 审计ctl -w /etc/shadow -p wa -k shadow_changes 审计ctl -w /etc/ssh/sshd_config -p wa -k sshd_config 审计ctl -w /var/记录/auth.记录 -p wa -k auth_记录
# 查看审计日志 au搜索 -k passwd_changes au报告 --fAIled --summary
一键加固脚本
将此 Shell 脚本保存到 hardening.sh 并 root 运行:
#!/bin/bash # Linux 服务器快速加固脚本 echo "=== SSH 强化 ===" sed -i 's/PermitRoot记录in yes/PermitRoot记录in prohibit-password/' /etc/ssh/sshd_config sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config 系统ctl re启动 sshd
echo "=== 安装 fAIl2ban ===" apt 安装 -y fAIl2ban 系统ctl enable fAIl2ban --now
echo "=== 配置防火墙 ===" ufw --force re设置 ufw default deny incoming ufw default allow outgoing ufw limit 2222/tcp ufw --force enable
echo "=== 自动更新 ===" apt 安装 -y unattended-升级s dpkg-re配置 -f noninteractive unattended-升级s
echo "加固完成!建议重启服务器"
安全等级速查 等级 措施 时间 ⭐ 基础 改SSH端口、禁用密码登录、开防火墙 10分钟 ⭐⭐ 标准 + fAIl2ban、自动更新、日志审计 30分钟 ⭐⭐⭐ 强化 + rkhunter、AIDE、Docker安全 1小时 ⭐⭐⭐⭐ 严格 + SELinux/应用Armor、集中日志、WAF 半天