fail2ban是单机暴力破解防护最佳选择:支持ssh/web等多服务、正则灵活、资源消耗低;sshguard适合vps轻量防护;denyhosts仅专注ssh但已停止维护。

SSH 安全加固不是只靠改配置就能完成的事,它需要工具链配合:服务端加固、暴力破解防护、连接审计、密钥生命周期管理缺一不可。选对工具,才能把“防得住”和“管得清”真正落地。
暴力破解防护工具怎么选
面对持续扫描 22 端口的攻击者,仅靠禁密码登录远远不够——得在攻击到达 SSH 服务前就拦截。三款主流防护工具定位清晰:
-
Fail2Ban:适合中大型环境,支持 SSH、Nginx、Postfix 等多服务日志分析;可自定义正则规则(比如识别特定失败模式),但需确保
/var/log/auth.log或/var/log/secure日志完整且权限正确,否则会漏判 -
SSHGuard:轻量低延迟,启动快、资源占用小,适合 VPS 或边缘节点;默认基于
sshd日志做实时封禁,自动解封机制能减少误封影响,但不支持非 SSH 服务 -
DenyHosts:专注 SSH,配置极简,适合单台 Web 服务器或测试环境;依赖
auth.log,不支持 IPv6 封禁,社区更新缓慢,新系统兼容性略弱
密钥管理与认证强化工具
公钥认证是加固基石,但密钥本身也需要管控。工具选择要看团队规模和流程成熟度:
- 个人或小团队:用
ssh-keygen -t ed25519 -a 256生成强密钥,配合ssh-copy-id部署,再通过~/.ssh/authorized_keys手动维护即可 - 中大型运维:引入 Ansible + Vault 实现密钥批量分发与轮换;结合 OpenSSH 8.2+ 的
AuthorizedKeysCommand从数据库或 LDAP 动态拉取公钥,避免文件同步风险 - 企业级合规场景:搭配堡垒机(如 JumpServer、Teleport)统一纳管密钥生命周期,支持审批、审计、自动过期、一键吊销
访问控制与网络层加固工具
限制谁可以连、从哪连、怎么连,是防御的第一道物理屏障:
-
TCP Wrappers(
/etc/hosts.allow//etc/hosts.deny):简单有效,适合固定办公出口 IP 场景;但无法处理动态 IP 或 NAT 后的真实源地址 -
firewalld / iptables:内核级限速最可靠,例如用
recent模块限制每分钟最多 3 次新连接;支持 geoip 匹配,可直接屏蔽高风险地区 IP 段 -
sshd_config 内置白名单:
AllowUsers user@192.168.10.*或AllowGroups ssh-admins,配合系统组权限控制,最小化授权面
审计与行为追踪工具
等保要求“操作可追溯”,光有登录日志不够,得记录“谁、什么时候、执行了什么命令”:
- 基础方案:开启
LogLevel VERBOSE+ForceCommand统一跳转到带日志的 shell wrapper(如script或ttysnoop) - 进阶方案:部署 auditd 跟踪
execve系统调用,或用 syslog-ng 把bash_history和sshd日志转发至 ELK/Splunk - 生产首选:接入专业审计平台,如 Ossec(HIDS+日志分析)、Wazuh(开源 SIEM),或商业产品如 FortiSIEM











