服务器安全加固实战:从SSH防护到内核级入侵检测的完整方案

服务器安全加固为什么不能只靠防火墙

多数运维团队的安全意识停留在”开防火墙、改SSH端口”的阶段,但实际攻防中,SSH暴力破解只是入口,提权后的横向移动和持久化后门才是真正的威胁。一套完整的服务器安全加固方案需要覆盖四个层面:网络入口管控、系统权限收敛、文件完整性监控、内核级行为检测。这四个层面逐层递进,缺一不可。

SSH服务的深度防护配置

改端口是最基础的,但远远不够。完整的SSH加固需要修改以下sshd_config参数:

# /etc/ssh/sshd_config
Port 29822                          # 非标准端口
PermitRootLogin no                  # 禁止root直接登录
PasswordAuthentication no          # 强制密钥认证
PubkeyAuthentication yes
MaxAuthTries 3                      # 最多尝试3次
LoginGraceTime 30                   # 登录超时30秒
AllowUsers deploy@10.0.0.0/8      # 限定用户和来源网段
ClientAliveInterval 300            # 5分钟无操作检测
ClientAliveCountMax 2               # 2次无响应断开

# 禁用不安全的算法
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com
KexAlgorithms curve25519-sha256@libssh.org

密钥认证之外,推荐再加一层fail2ban做暴力破解自动封禁。配置中对SSH服务设置3次失败即封禁1小时:

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 29822
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 3600

系统权限收敛与最小化原则

权限收敛的核心是减少攻击面。禁用不必要的系统服务和账户,关闭不需要的协议栈:

# 禁用不必要的服务
systemctl disable --now avahi-daemon cups bluetooth rpcbind

# 清理无用的系统账户
for user in games gnats irc list lp news uucp; do
    userdel $user 2>/dev/null
    echo "已删除账户: $user"
done

# 设置关键文件权限
chmod 600 /etc/shadow
chmod 644 /etc/passwd
chattr +i /etc/passwd /etc/shadow  # 防止篡改

# 禁用USB自动挂载(物理安全)
echo "install usb-storage /bin/true" >> /etc/modprobe.d/disable-usb.conf

chattr +i对passwd和shadow文件加不可变属性,即使root在未解绑前也无法修改。这是对抗提权后篡改账户文件的有效手段。

AIDE文件完整性监控部署

入侵者进入系统后通常会替换关键二进制文件或植入后门。AIDE(Advanced Intrusion Detection Environment)通过计算文件哈希建立基线,定期比对发现异常变更:

# 安装并初始化AIDE
apt install aide -y
aideinit --config /etc/aide/aide.conf
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# 关键配置:监控/bin、/sbin、/etc、/usr/sbin
# /etc/aide/aide.conf
/bin      p+i+n+sha256
/sbin     p+i+n+sha256
/etc      p+i+sha256
/usr/sbin p+i+n+sha256

# 每日凌晨4点执行完整性检查
crontab -e
0 4 * * * /usr/bin/aide --check | mail -s "AIDE Report" admin@example.com

AIDE报告中发现变更时,需要区分合法变更(软件升级)和非法篡改。软件升级后必须重新初始化基线,否则告警会淹没真实入侵信号。

内核级行为检测:auditd与eBPF方案

文件完整性监控属于事后检测,内核级审计能捕获实时行为。auditd记录系统调用,eBPF做实时过滤,两者配合实现纵深防御:

# auditd监控关键系统调用
# /etc/audit/rules.d/audit.rules
-a exit,always -F arch=b64 -S execve -F auid>=1000 -F key=user_exec
-a exit,always -F arch=b64 -S openat -F path=/etc/shadow -F key=shadow_access
-w /etc/sudoers -p wa -k sudoers_change
-w /var/log -p wa -k log_tamper

# 用ausearch查询可疑行为
ausearch -k user_exec -ts today | aureport -x
ausearch -k shadow_access -ts today

对于更高级的威胁检测,eBPF程序可以hook内核网络栈和进程事件,在内核空间完成过滤,零开销地捕获异常行为模式。Tetragon和Falco是当前主流的两个eBPF运行时安全方案,适合大规模集群部署。

安全加固的持续运维建议

安全加固不是一次性工作,需要持续运维。每月执行一次CIS Benchmark合规扫描,每季度做一次红蓝对抗演练。打补丁的节奏要根据CVE评分决定——Critical级别的漏洞应在24小时内完成评估和修复。记住:安全防护的强度取决于最薄弱的环节,任何一个层面的疏忽都可能成为入侵的突破口。

原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/fu-wu-qi-an-quan-jia-gu-shi-zhan-cong-ssh-fang-hu-dao-nei/

(0)
小编小编
上一篇 17小时前
下一篇 17小时前

相关推荐