天翼测评网天翼测评网天翼测评网

欢迎光临
我们一直在努力

别给黑客留漏洞!LinuxSSH暴力破解防范的5个实用技巧

SSH(Secure Shell)作为Linux服务器远程管理的核心协议,始终是黑客攻击的“重灾区”。据安全机构CISA统计,全球每天有超过150万次针对SSH服务的暴力破解尝试——黑客通过自动化工具穷举用户名和密码,一旦成功入侵,可直接获取服务器 root 权限,导致数据泄露、加密挖矿甚至服务瘫痪等灾难性后果。

要防范SSH暴力破解,需从“缩小攻击面”“强化认证机制”“自动防御”三个维度入手。以下5个实用技巧,能帮你彻底堵死漏洞,让黑客无机可乘。

一、修改默认SSH端口,减少被扫描概率

默认SSH端口(22)是黑客扫描的“第一目标”——几乎所有自动化攻击工具都会优先尝试连接22端口。修改为非标准端口(如2222、10022),可直接将被扫描到的概率降低90%以上。

操作步骤:编辑/etc/ssh/sshd_config文件,找到“Port 22”行,改为“Port 10022”(建议选择1024-65535之间未被占用的端口);保存后重启sshd服务(systemctl restart sshd);同时在防火墙中开放新端口(如firewalld命令:firewall-cmd --permanent --add-port=10022/tcp && firewall-cmd --reload)。

二、禁用root用户直接登录,遵循“最小权限”原则

root用户拥有服务器最高权限,一旦被暴力破解,黑客可“为所欲为”。禁用root直接登录,强制使用普通用户登录后通过sudo切换,能将攻击危害降到最低。

操作步骤:修改sshd_config文件中的“PermitRootLogin yes”为“PermitRootLogin no”;保存后重启sshd;创建普通用户(如useradd -m secadmin)并设置强密码(passwd secadmin);通过visudo命令授予sudo权限(添加“secadmin ALL=(ALL) NOPASSWD: ALL”),确保普通用户能执行管理员操作。

三、启用密钥认证,替代脆弱的密码机制

密码认证是SSH暴力破解的“软肋”——即使密码长度达标,也可能被字典攻击或彩虹表破解。而SSH密钥对(公钥+私钥)采用非对称加密算法(如RSA 4096位或ED25519),安全性远高于密码。

操作步骤:1. 本地生成密钥对(ssh-keygen -t ed25519 -C "secadmin@example.com",ED25519算法更高效且安全);2. 将公钥复制到服务器(ssh-copy-id -i ~/.ssh/id_ed25519.pub secadmin@server_ip -p 10022);3. 修改sshd_config文件,设置“PasswordAuthentication no”(禁用密码认证)、“PubkeyAuthentication yes”(启用密钥认证),重启sshd服务。

四、限制登录IP,实现“信任源”访问控制

通过防火墙或系统配置限制只有信任的IP地址(如企业办公网段、管理员固定IP)能访问SSH服务,可彻底阻断外部陌生IP的攻击。

操作步骤:1. 使用firewalld限制IP(firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="10022" protocol="tcp" accept',允许192.168.1.0网段访问);2. 使用hosts.allow/hosts.deny强化策略:在/etc/hosts.deny中添加“sshd: ALL”(拒绝所有IP),在/etc/hosts.allow中添加“sshd: 192.168.1.0/24”(允许信任网段),实现“白名单”访问控制。

五、部署fail2ban,自动封禁恶意IP

即使做了上述防护,仍可能有黑客通过代理IP或分布式攻击尝试破解。fail2ban作为开源入侵预防工具,能监控SSH日志(/var/log/secure或/var/log/auth.log),当检测到多次失败登录(如3次),自动封禁该IP一段时间(如1小时),有效阻止重复攻击。

操作步骤:1. 安装fail2ban(yum install fail2ban或apt install fail2ban);2. 配置jail.local文件(复制/etc/fail2ban/jail.conf为/etc/fail2ban/jail.local),修改[sshd] section:“enabled = true”(开启SSH防护)、“maxretry = 3”(允许3次失败尝试)、“bantime = 3600”(封禁1小时)、“port = 10022”(指定SSH端口);3. 启动fail2ban服务(systemctl start fail2ban)并设置开机自启(systemctl enable fail2ban)。

SSH暴力破解防范的核心逻辑是“降低攻击成功率”+“增加攻击成本”。通过修改端口减少被扫描概率、用密钥替代密码消除暴力破解可能、限制IP缩小攻击范围、用fail2ban自动防御,能形成一套“多层防御体系”。此外,定期更新系统补丁(yum update或apt upgrade)、禁用无用服务、监控SSH日志(journalctl -u sshd)也是保障安全的重要环节。

记住:安全不是“一次性操作”,而是“持续迭代的过程”。只有不断优化策略,才能让Linux服务器在复杂的网络环境中“固若金汤”。

赞(666)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。