云服务器怎么防止暴力破解?SSH和RDP安全加固
服务器开通后,默认的SSH端口22和RDP端口3389会很快被扫描到。如果密码简单,几小时内就可能被暴力破解,植入木马或挖矿程序。暴力破解是服务器被入侵的最常见原因之一。本文针对SSH和RDP,给出具体的加固方法。
一、暴力破解的原理和风险
暴力破解是通过自动化工具,尝试大量用户名和密码组合,直到找到正确的凭证。攻击者常用的工具包括Hydra、Medusa、Ncrack等。
攻击者通常先扫描全网IP,寻找开放22或3389端口的服务器。然后尝试常见用户名(root、admin、administrator)和弱密码(123456、password、服务器IP)。如果服务器使用弱密码,很容易被攻破。
被攻破的后果包括:植入挖矿程序,CPU跑满;植入木马,成为僵尸网络的一部分;窃取数据,包括用户信息、数据库、配置文件;作为跳板攻击其他服务器。
防御暴力破解的核心思路是:增加攻击成本、减少攻击面、监控异常登录。
二、SSH加固方法
SSH是Linux服务器的远程管理协议,默认端口22。加固方法包括。
第一是修改默认端口。把22改为非标准端口,比如22222。攻击者扫描22端口时找不到目标,减少被爆破的概率。配置:修改/etc/ssh/sshd_config中的Port 22222,重启SSH服务。
第二是禁用root远程登录。攻击者常尝试root账号,禁用后需要先登录普通账号再提权。配置:PermitRootLogin no。新建一个普通管理账号,需要提权时用sudo。
第三是启用密钥登录。用SSH密钥替代密码登录,攻击者没有私钥无法登录,彻底杜绝暴力破解。配置:PubkeyAuthentication yes,PasswordAuthentication no。生成密钥对,公钥放到服务器,私钥保存在本地。
第四是限制登录来源IP。只允许可信IP访问SSH端口,其他IP拒绝。可以用防火墙规则实现:iptables -A INPUT -p tcp --dport 22222 -s 可信IP -j ACCEPT,iptables -A INPUT -p tcp --dport 22222 -j DROP。
第五是配置失败锁定。多次密码错误后锁定账号或IP。可以用fail2ban实现,配置/etc/fail2ban/jail.local,设置maxretry = 5,bantime = 3600。5次失败后封禁IP一小时。
第六是限制登录时间。如果服务器不需要7x24小时管理,可以限制SSH登录时间,非工作时间拒绝登录。用pam_time模块实现。
需要查看各机房的配置和实时价格,可以访问西安电信云服务器产品页结合账号情况查看,该机房提供100G防御和高防秒解特性。
三、RDP加固方法
RDP是Windows服务器的远程桌面协议,默认端口3389。加固方法与SSH类似。
第一是修改默认端口。把3389改为非标准端口,减少被扫描的概率。在注册表中修改PortNumber,重启远程桌面服务。
第二是重命名管理员账号。Windows默认管理员账号是administrator,攻击者常尝试这个账号。重命名为其他名称,减少被爆破的概率。
第三是设置强密码。密码长度不少于12位,包含大小写字母、数字、特殊符号。避免使用123456、password等弱密码。
第四是启用账户锁定策略。多次密码错误后锁定账号。在本地安全策略中设置:账户锁定阈值 = 5,账户锁定时间 = 30分钟。
第五是启用网络级别身份验证(NLA)。NLA要求用户在建立远程桌面连接前先认证,减少未认证的连接。在系统属性中开启。
第六是限制登录来源IP。只允许可信IP访问RDP端口,其他IP拒绝。用Windows防火墙的入站规则实现。
第七是启用多因素认证。如果条件允许,启用MFA,登录时需要额外验证(短信、令牌)。即使密码泄露,攻击者也无法登录。
四、SSH和RDP加固对照
| 加固项 | SSH(Linux) | RDP(Windows) |
|---|---|---|
| 修改默认端口 | 22改为22222 | 3389改为其他端口 |
| 重命名管理员 | 禁用root远程登录 | 重命名administrator |
| 强密码 | 12位以上,复杂组合 | 12位以上,复杂组合 |
| 密钥/多因素 | 启用SSH密钥登录 | 启用NLA或多因素认证 |
| 失败锁定 | fail2ban,5次失败封禁 | 账户锁定策略,5次失败锁定 |
| IP白名单 | 防火墙限制来源IP | 防火墙限制来源IP |
五、监控和告警
加固之外,监控异常登录也很重要。即使加固做得好,也要监控是否有漏网之鱼。
SSH登录日志在/var/log/secure(CentOS/Rocky/AlmaLinux)或/var/log/auth.log(Ubuntu/Debian)。关注失败登录次数、非工作时间登录、陌生IP登录。
RDP登录日志在Windows事件查看器的安全日志中,事件ID 4624(登录成功)、4625(登录失败)。关注失败登录次数、异常时间登录。
告警配置建议:5分钟内失败登录超过10次时告警,非工作时间登录时告警,陌生IP登录时告警。可以用脚本分析日志,也可以用集中日志管理工具。关于服务器监控的更多细节,可以参考云服务器怎么监控一文中关于日志审计的说明。
六、被爆破后的处理
如果发现服务器被爆破,立即处理。
第一步,修改所有密码。包括SSH/RDP密码、数据库密码、应用密码。
第二步,检查异常进程。用ps aux查看进程列表,发现可疑进程立即杀掉。ls -l /proc/进程ID/exe查看可执行文件路径。
第三步,检查定时任务。用crontab -l查看定时任务,发现可疑任务删除。
第四步,检查启动项。Linux查看/etc/rc.local、/etc/init.d/;Windows查看注册表启动项、任务计划程序。
第五步,检查文件变更。用find / -mtime -1查找最近修改的文件,发现可疑文件删除。
第六步,重装系统。如果不确定是否清理干净,建议备份数据后重装系统。重装后按加固方法配置,避免再次被爆破。关于安全加固的完整清单,可以参考云服务器安全加固一文中关于账号、端口、补丁、日志的说明。
七、小结
云服务器防暴力破解的核心是增加攻击成本、减少攻击面、监控异常登录。SSH加固包括修改端口、禁用root、密钥登录、IP白名单、失败锁定;RDP加固包括修改端口、重命名管理员、强密码、NLA、账户锁定。加固之外配置监控告警,发现异常及时处理。被爆破后立即修改密码、清理木马、必要时重装系统。西安电信100G防御机房适合对安全有要求的业务,配合系统层加固可以形成完整防护。