|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "加固系统安全,防范ssh暴力破解之Fail2Ban" |
| 4 | +date: 2024-05-14T04:25:06+0800 |
| 5 | +description: "自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!" |
| 6 | +keywords: "fail2ban" |
| 7 | +categories: ['未分类'] |
| 8 | +tags: ['系统安全', '安全', 'Ssh'] |
| 9 | +artid: "138831290" |
| 10 | +arturl: "https://blog.csdn.net/2401_84969951/article/details/138831290" |
| 11 | +image: |
| 12 | + path: https://api.vvhan.com/api/bing?rand=sj&artid=138831290 |
| 13 | + alt: "加固系统安全,防范ssh暴力破解之Fail2Ban" |
| 14 | +render_with_liquid: false |
| 15 | +featuredImage: https://bing.ee123.net/img/rand?artid=138831290 |
| 16 | +featuredImagePreview: https://bing.ee123.net/img/rand?artid=138831290 |
| 17 | +cover: https://bing.ee123.net/img/rand?artid=138831290 |
| 18 | +image: https://bing.ee123.net/img/rand?artid=138831290 |
| 19 | +img: https://bing.ee123.net/img/rand?artid=138831290 |
| 20 | +--- |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | +# 加固系统安全,防范ssh暴力破解之Fail2Ban |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +### Fail2Ban 是什么? |
| 29 | + |
| 30 | +现在让我们一起来认识一下今天的主角 – Fail2Ban。简单说来,这是一个入侵防御软件的框架,可以保护计算机服务器免受暴力攻击。Fail2Ban 使用 Python 编程语言编写,能够运行在 POSIX 系统上(例如:Linux),并且具有与本地安装的数据包控制系统或防火墙的接口,例如iptables或TCP Wrapper 等。更进一步的解释,Fail2Ban 帮助我们自动化的监视暴力攻击和密码猜测者的攻击,对于在短时间内反复未能通过身份验证,则自动的禁止进行尝试。 |
| 31 | + |
| 32 | +### Fail2Ban 工作原理 |
| 33 | + |
| 34 | +Fail2ban通过扫描日志文件(例如/ var / log / apache / error_log),发现并禁止显示出恶意迹象的IP地址(例如:过多的密码失败、寻找漏洞利用等)。通常,Fail2Ban使用更新防火墙规则的方法在指定的时间内拒绝特定的IP地址,在Linux 操作系统下,Fail2Ban 是通过向iptables 添加规则来强制实施对可疑IP地址的禁止。当然也可以配置任何其他任意操作(例如:发送电子邮件等)。 |
| 35 | + |
| 36 | +Fail2Ban具有开箱即用的特性,标准配置附带了Apache、Lighttpd、sshd、vsftpd、qmail、Postfix和Courier邮件服务器的过滤器。过滤器是由Python正则表达式定义的,熟悉正则表达式的开发人员可以方便地对其进行定制。一个过滤器和一个动作的组合被称为“jail”(监狱),是用来阻止恶意访问者对特定网络服务的访问。以及随软件分发的示例,可能会为创建访问日志文件的任何面向网络的过程创建一个“监狱”。考虑到现实的场景中,可能已为本机的防火墙配置了规则。Fail2Ban仅添加和删除其自己的规则-常规的iptables 的规则将保持不变。 |
| 37 | + |
| 38 | +Fail2Ban能够减少不正确的/恶意的身份验证尝试的发生率,但是它不能消除弱身份验证带来的安全风险。 如果确实想保护服务器资源,则务必要结合安全的身份认证方法,例如多因子认证(MFA)等。 |
| 39 | + |
| 40 | +### 安装 Fai2Ban |
| 41 | + |
| 42 | +``` |
| 43 | +yum install -y fail2ban |
| 44 | +
|
| 45 | +``` |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +### 配置 Fai2Ban |
| 50 | + |
| 51 | +Fail2Ban安装包中含有一个名为jail.conf的默认配置文件。 升级Fail2Ban时,该文件将被覆盖。因此,如果有定制化的配置,需要在升级前做好备份。 |
| 52 | + |
| 53 | +另一种推荐的方法是将jail.conf文件复制到一个名为jail.local的文件中。 我们将定制的的配置更改存入jail.local中。这个文件在升级过程中将保持不变。 Fail2Ban启动时会自动读取这jail.conf与jail.local这两个配置文件,当然后者的优先级比较高。 |
| 54 | + |
| 55 | +``` |
| 56 | +操作方法: |
| 57 | +sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
| 58 | +
|
| 59 | +``` |
| 60 | + |
| 61 | +**现在,我们使用编辑器中打开文件jail.local。我使用的是vim** |
| 62 | + |
| 63 | +``` |
| 64 | +操作方法:sudo vim /etc/fail2ban/jail.local |
| 65 | +
|
| 66 | +``` |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | +**我们配置的是60秒内失败一次永久封禁** |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | +**配置好后就可以启动fail2ban服务** |
| 75 | + |
| 76 | +``` |
| 77 | +systemctl enable --now fail2ban |
| 78 | +
|
| 79 | +
|
| 80 | +``` |
| 81 | + |
| 82 | +**然后查看Jail(监狱)** |
| 83 | + |
| 84 | +``` |
| 85 | +fail2ban-client status |
| 86 | +
|
| 87 | +
|
| 88 | +``` |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | +**然后查看指定的Jail(监狱)** |
| 93 | + |
| 94 | +``` |
| 95 | +fail2ban-client status sshd |
| 96 | +
|
| 97 | +
|
| 98 | +``` |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | +### 测试配置 |
| 103 | + |
| 104 | +我们可以找到另一台计算机上,用这台机器将向测试的实例发出SSH连接请求,并故意输入密码 |
| 105 | + |
| 106 | +**创建测试账号** |
| 107 | + |
| 108 | +``` |
| 109 | +useradd testssh |
| 110 | +passwd testssh |
| 111 | +
|
| 112 | +
|
| 113 | +``` |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | +**在另一台机器上进行测试,并在目标机器上观察日志** |
| 118 | + |
| 119 | +``` |
| 120 | +tail -f /var/log/fail2ban.log |
| 121 | +
|
| 122 | +
|
| 123 | +``` |
| 124 | + |
| 125 | +  |
| 126 | + |
| 127 | +可以看到在 我们第一次输错密码的时候我们进行连接的ip地址就已经被加入黑名单,再次进行ssh连接直接被拒绝 |
| 128 | + |
| 129 | +**查看sshd监狱,可以看到我们刚才使用的ip已经进入黑名单** |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | +**以下是一些常用的 Fail2Ban 命令:** |
| 134 | + |
| 135 | +> 1. **启动 Fail2Ban 服务:** |
| 136 | +> |
| 137 | +> ``` |
| 138 | +> sudo systemctl start fail2ban |
| 139 | +> |
| 140 | +> ``` |
| 141 | +
|
| 142 | +### 最后 |
| 143 | +
|
| 144 | +**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。** |
| 145 | +
|
| 146 | +**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!** |
| 147 | +
|
| 148 | +**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。** |
| 149 | +
|
| 150 | + |
| 151 | +
|
| 152 | + |
| 153 | +
|
| 154 | + |
| 155 | +
|
| 156 | + |
| 157 | +
|
| 158 | + |
| 159 | +
|
| 160 | +**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!** |
| 161 | +
|
| 162 | +[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875) |
| 163 | +
|
| 164 | +**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!** |
| 165 | +
|
| 166 | +知识点!真正的体系化!** |
| 167 | +
|
| 168 | +[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875) |
| 169 | +
|
| 170 | +**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!** |
| 171 | +
|
| 172 | +
|
| 173 | +
|
0 commit comments