服务器安全加固为什么不能只靠防火墙
多数运维团队的安全意识停留在”开防火墙、改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/