在Linux系统中防止SSH暴力破解可以通过以下几种方法来实现:,,### 1. 使用Fail2Ban,Fail2Ban是一个开源的网络应用,可以自动监控和响应恶意IP地址对SSH服务的攻击。它会记录攻击日志,并在发现异常行为时发送通知。,,#### 安装Fail2Ban,``bash,sudo apt update,sudo apt install fail2ban,
`,,#### 配置Fail2Ban,编辑
/etc/fail2ban/jail.local文件:,
`ini,[sshd],enabled = true,port = ssh,filter = sshd,logpath = /var/log/auth.log,bantime = 600,maxretry = 5,findtime = 300,
`,,#### 启动和启用Fail2Ban,
`bash,sudo systemctl start fail2ban,sudo systemctl enable fail2ban,
`,,### 2. 使用iptables, iptables是Linux内核的一部分,用于过滤网络流量。通过配置iptables规则,可以限制来自特定IP地址的连接尝试。,,#### 添加防火墙规则,
`bash,sudo iptables -A INPUT -p tcp --dport 22 -s< attacker_ip> -j DROP,sudo iptables-save > /etc/iptables/rules.v4,
`,,### 3. 使用SELinux或AppArmor,SELinux和AppArmor是基于策略的安全模块,它们可以更细粒度地控制系统访问权限。,,#### 配置SELinux,编辑
/etc/selinux/config文件:,
`plaintext,SELINUX=enforcing,
`,,#### 配置AppArmor,编辑
/etc/apparmor.d/local/usr.sbin.fail2ban-server文件:,
`conf,/etc/apparmor.d/local/usr.sbin.fail2ban-client,/etc/apparmor.d/local/usr.sbin.fail2ban-sendmail,
`,,#### 重启AppArmor,
`bash,sudo systemctl restart apparmor,
`,,### 4. 使用SSH密钥认证,使用SSH密钥认证而不是密码认证可以显著降低暴力破解的风险。,,#### 生成SSH密钥对,
`bash,ssh-keygen -t rsa -b 4096 -C "your_email@example.com",
`,,将公钥添加到目标服务器的
~/.ssh/authorized_keys文件中。,,### 5. 定期更新软件包,确保所有软件包都是最新的,以修复已知的安全漏洞。,,
`bash,sudo apt update,sudo apt upgrade,
`,,### 6. 监控和分析日志,定期检查系统的日志文件(如
/var/log/auth.log`),查找可疑活动并采取相应的措施。,,通过以上方法,可以在Linux系统中有效地防止SSH暴力破解。
细心的朋友可能会发现,自己的Linux服务器放在那里,总会有人扫描你的服务器,我们可以通过Linux日志文件(/var/log/secure)来查看登录日志,此文件能记录所有登录行为,失败的也会记录。
一旦你发现此文件(/var/log/secure),同一时间有大量的日志产生,说明有人在尝试暴力破解你的服务器,如何避免呢?结合我的Linux运维经验,给大家一些方案以供参考,相关设置都在Linux SSHD配置文件 /etc/ssh/sshd_config 中:
1、更改SSH默认端口号
SSH默认端口号是22,强烈建议更换为一个不常见的端口号,这样黑客扫描你的服务器也是需要时间成本的。
2、SSH端口只允许特定IP访问
这招就是限制死了哪些主机IP可以访问SSH端口,就算黑客扫描到了SSH端口号,可是黑客的IP不在信任列表中,也是无法登录的。
3、禁止root用户直接登录
通过系统设置,可以禁止root用户直接登录服务器,可以让普通用户登录,然后su到root用户即可。
4、SSHD配置密码重试次数
一旦错误密码次数超过几次,就直接拒绝访问。
通过以上设置后,Linux就很难被人暴力破解SSH啦。
0