请输入手机号码
请输入密码
1. 修改默认SSH端口
默认SSH端口(22)是全球自动化攻击工具的主要扫描目标,修改为1024-65535之间的非标准高位端口(如2022、6022),可过滤掉95%以上的暴力破解尝试。需同步更新防火墙规则(如UFW、iptables)放行新端口,并显式拒绝旧端口(如sudo ufw deny 22/tcp
)。
2. 禁用Root用户直接登录
Root账户是黑客的首要攻击目标,禁用其直接SSH登录(PermitRootLogin no
)可增加攻击难度。要求攻击者先破解普通用户账户,再通过sudo -i
提升权限,大幅提升安全性。建议配合创建具有sudo权限的普通用户(如adminuser
)使用。
3. 启用SSH密钥认证替代密码认证
SSH密钥认证(公钥+私钥)的安全性远高于密码:2048位RSA密钥的组合可能性达2^2048种,几乎无法被暴力破解。配置步骤包括:客户端生成密钥对(ssh-keygen -t rsa -b 4096
)、将公钥复制到服务器(ssh-copy-id -p 端口号 user@server_ip
)、修改SSH配置(PubkeyAuthentication yes
、PasswordAuthentication no
)。
4. 配置Fail2Ban动态封禁恶意IP
Fail2Ban通过实时监控SSH登录日志(如/var/log/auth.log
),自动检测多次失败登录尝试(如maxretry=3
,即10分钟内失败3次),并封禁恶意IP(bantime=3600
,封禁1小时)。可有效防御自动化暴力破解工具(如Hydra),降低服务器遭受持续攻击的风险。
5. 限制登录用户/IP范围
通过SSH配置(AllowUsers user1 user2
)或防火墙(如UFW的allow from 特定IP to any port 端口号
)限制可访问SSH的用户和IP地址。仅允许可信用户(如运维人员)和IP(如公司内网、家庭IP)访问,减少攻击面。
6. 禁用过时的SSH协议版本
SSH协议1(SSH-1)存在CRC32漏洞(CVE-2001-0144)和中间人攻击风险,现代系统默认使用SSH协议2(SSH-2)。需显式配置(Protocol 2
)禁用旧版协议,规避已知漏洞攻击。
7. 配置防火墙访问控制
使用iptables或云服务商安全组限制SSH访问来源:仅允许特定IP地址或网段访问SSH端口(如sudo ufw allow from 192.168.1.100 to any port 23456
),拒绝其他IP的连接请求。可有效阻挡未经授权的外部访问。
8. 启用日志记录与监控
确保SSH日志记录功能开启(LogLevel INFO
、SyslogFacility AUTH
),定期检查日志(如sudo grep "Failed password" /var/log/auth.log
)以识别可疑活动(如频繁的失败登录尝试)。结合Splunk、LogWatch等工具实现实时监控和告警,及时响应安全事件。