
被爆当肉鸡 !运维教你堵死SSH
2025年08月05日 21:01
以下文章来源于开源运维 ,作者开源运维
分享优质GitHub开源项目的安装教程。 随着Linux服务器的广泛使用,SSH暴力破解攻击成为了运维团队需要面对的常见威胁。攻击者通过暴力尝试用户名和密码的组合,试图非法访问服务器。一旦成功,服务器的所有数据和功能将面临严重威胁。本文将从技术角度出发,探讨应对SSH暴力破解的高效解决方案。 默认情况下,SSH服务运行在22端口。攻击者通常会针对这一默认端口发起攻击。通过修改SSH的默认端口,可以有效降低被扫描和攻击的概率。运行以下命令修改端口: 注意: 修改后需通过防火墙开放新端口,并重启SSH服务: 禁止使用Root账户直接通过SSH登录能够大幅提升安全性,因为Root账户被破解后,攻击者可以立即获得系统最高权限。编辑 之后,创建普通用户并通过该用户登录: 并赋予必要的sudo权限。 较弱的密码是暴力破解的突破口,因此建议完全禁用密码登录,改用SSH密钥认证。这不仅能杜绝密码攻击,还能提升登录效率。生成SSH密钥对指令如下: 复制公钥到远程服务器: 然后编辑SSH配置文件禁用密码登录: DenyHosts和Fail2Ban是两款常用的防爆破软件。它们通过监控SSH日志,自动屏蔽频繁尝试密码的IP地址。例如,在CentOS中安装和配置DenyHosts: 编辑其配置文件 启动服务即可: 限制SSH访问仅允许特定的IP,可以从根源上杜绝大多数攻击。配置防火墙规则,例如通过 定期查看SSH日志能够帮助发现潜在威胁。通过命令查看失败的登录尝试: 发现异常IP时可以手动将其加入黑名单,或进一步优化防护策略。 SSH暴力破解并不可怕,但不加防范则会产生灾难性的后果。通过修改端口、禁用Root登录、使用密钥认证、部署拦截工具以及设置白名单,可以显著提升服务器防护能力。运维人员还需保持对服务器访问的关注,通过日志分析及时响应异常情况,确保系统安全性。 开源运维 .
修改默认SSH端口
# 编辑SSH配置文件
vim /etc/ssh/sshd_config
# 修改Port配置为任意高位端口,例如
Port 2222# 重启SSH服务
systemctl restart sshd禁用Root用户登录
/etc/ssh/sshd_config
文件:# 禁用Root登录
PermitRootLogin no# 创建新用户
adduser username
passwd username实施基于密钥的登录
ssh-keygen -t rsa -b 4096
ssh-copy-id user@server_ip
PasswordAuthentication no
部署自动拦截工具
# 安装DenyHosts
yum install -y denyhosts/etc/denyhosts.conf
,修改关键参数:SECURE_LOG = /var/log/secure
DENY_THRESHOLD_INVALID = 5
HOSTS_DENY = /etc/hosts.denysystemctl start denyhosts
systemctl enable denyhosts设置IP访问白名单
iptables
设置白名单:iptables -A INPUT -p tcp -s trusted_ip --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP定期分析日志
grep "Failed password" /var/log/secure