1- # Fail2ban 教程
1+ # Fail2Ban 教程
22
33## 简介
44
5- Fail2ban 是一个 Linux 系统的应用软件,用来防止系统入侵,主要是防止暴力破解系统密码。它是用 Python 开发的。
5+ Fail2Ban 是一个 Linux 系统的应用软件,用来防止系统入侵,主要是防止暴力破解系统密码。它是用 Python 开发的。
66
77它主要通过监控日志文件(比如` /var/log/auth.log ` 、` /var/log/apache/access.log ` 等)来生效。一旦发现恶意攻击的登录请求,它会封锁对方的 IP 地址,使得对方无法再发起请求。
88
9- Fail2ban 可以防止有人反复尝试 SSH 密码登录,但是如果 SSH 采用的是密钥登录,禁止了密码登录,就不需要 Fail2ban 来保护。
9+ Fail2Ban 可以防止有人反复尝试 SSH 密码登录,但是如果 SSH 采用的是密钥登录,禁止了密码登录,就不需要 Fail2Ban 来保护。
1010
11- Fail2ban 的安装命令如下。
11+ Fail2Ban 的安装命令如下。
1212
1313``` bash
1414# ubuntu & Debian
@@ -22,33 +22,33 @@ $ sudo dnf install fail2ban
2222$ yum install fail2ban
2323```
2424
25- 安装后,使用下面的命令查看 Fail2ban 的状态。
25+ 安装后,使用下面的命令查看 Fail2Ban 的状态。
2626
2727``` bash
2828$ systemctl status fail2ban.service
2929```
3030
31- 如果没有启动,就启动 Fail2ban 。
31+ 如果没有启动,就启动 Fail2Ban 。
3232
3333``` bash
3434$ sudo systemctl start fail2ban
3535```
3636
37- 重新启动 Fail2ban 。
37+ 重新启动 Fail2Ban 。
3838
3939``` bash
4040$ sudo systemctl restart fail2ban
4141```
4242
43- 设置 Fail2ban 重启后自动运行。
43+ 设置 Fail2Ban 重启后自动运行。
4444
4545``` bash
4646$ sudo systemctl enable fail2ban
4747```
4848
4949## fail2ban-client
5050
51- Fail2ban 自带一个客户端 fail2ban-client,用来操作 Fail2ban 。
51+ Fail2Ban 自带一个客户端 fail2ban-client,用来操作 Fail2Ban 。
5252
5353``` bash
5454$ fail2ban-client
@@ -99,13 +99,13 @@ $ sudo fail2ban-client set sshd unbanip 192.168.1.69
9999
100100### 主配置文件
101101
102- Fail2ban 主配置文件是在` /etc/fail2ban/fail2ban.conf ` ,可以新建一份副本` /etc/fail2ban/fail2ban.local ` ,修改都针对副本。
102+ Fail2Ban 主配置文件是在` /etc/fail2ban/fail2ban.conf ` ,可以新建一份副本` /etc/fail2ban/fail2ban.local ` ,修改都针对副本。
103103
104104``` bash
105105$ sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
106106```
107107
108- 下面是设置 Fail2ban 的日志位置。
108+ 下面是设置 Fail2Ban 的日志位置。
109109
110110``` bash
111111[Definition]
@@ -116,7 +116,7 @@ logtarget = /var/log/fail2ban/fail2ban.log
116116
117117### 封禁配置
118118
119- Fail2ban 封禁行为的配置文件是` /etc/fail2ban/jail.conf ` 。为了便于修改,可以把它复制一份` /etc/fail2ban/jail.local ` ,后面的修改都针对` jail.local ` 这个文件。
119+ Fail2Ban 封禁行为的配置文件是` /etc/fail2ban/jail.conf ` 。为了便于修改,可以把它复制一份` /etc/fail2ban/jail.local ` ,后面的修改都针对` jail.local ` 这个文件。
120120
121121``` bash
122122$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
@@ -149,22 +149,22 @@ action = %(action_mw)s
149149
150150如果配置写在其他标题行下,就表示只对该封禁目标生效,比如写在` [sshd] ` 下面,就表示只对 sshd 生效。
151151
152- 默认情况下,Fail2ban 对各种服务都是关闭的,如果要针对某一项服务开启,需要在配置文件里面声明。
152+ 默认情况下,Fail2Ban 对各种服务都是关闭的,如果要针对某一项服务开启,需要在配置文件里面声明。
153153
154154``` bash
155155[sshd]
156156enabled = true
157157```
158158
159- 上面声明表示,Fail2ban 对 sshd 开启。
159+ 上面声明表示,Fail2Ban 对 sshd 开启。
160160
161161### 配置项
162162
163163下面是配置文件` jail.local ` 的配置项含义,所有配置项的格式都是` key=value ` 。
164164
165165(1)bantime
166166
167- 封禁的时间长度,单位` m ` 表示分钟,` d ` 表示天,如果不写单位,则表示秒。Fail2ban 默认封禁10分钟(10m 或 600)。
167+ 封禁的时间长度,单位` m ` 表示分钟,` d ` 表示天,如果不写单位,则表示秒。Fail2Ban 默认封禁10分钟(10m 或 600)。
168168
169169``` bash
170170[DEFAULT]
@@ -173,7 +173,7 @@ bantime = 10m
173173
174174(2)findtime
175175
176- 登录失败计算的时间长度,单位` m ` 表示分钟,` d ` 表示天,如果不写单位,则表示秒。Fail2ban 默认封禁 10 分钟内登录 5 次失败的客户端。
176+ 登录失败计算的时间长度,单位` m ` 表示分钟,` d ` 表示天,如果不写单位,则表示秒。Fail2Ban 默认封禁 10 分钟内登录 5 次失败的客户端。
177177
178178``` bash
179179[DEFAULT]
@@ -216,7 +216,7 @@ action = $(action_)s
216216
217217上面的` action_ ` 是默认动作,表示拒绝封禁对象的流量,直到封禁期结束。
218218
219- 下面是 Fail2ban 提供的一些其他动作。
219+ 下面是 Fail2Ban 提供的一些其他动作。
220220
221221``` bash
222222# ban & send an e-mail with whois report to the destemail.
@@ -243,7 +243,7 @@ action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
243243
244244(8)ignoreip
245245
246- Fail2ban 可以忽视的可信 IP 地址。多个 IP 地址之间使用空格分隔。
246+ Fail2Ban 可以忽视的可信 IP 地址。多个 IP 地址之间使用空格分隔。
247247
248248``` bash
249249ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20
@@ -270,5 +270,5 @@ bantime = 2w
270270ignoreip = 127.0.0.1/8
271271```
272272
273- 首先需要注意,为了让 Fail2ban 能够完整发挥作用,最好在` /etc/ssh/sshd_config ` 里面设置` LogLevel VERBOSE ` ,保证日志有足够的信息。
273+ 首先需要注意,为了让 Fail2Ban 能够完整发挥作用,最好在` /etc/ssh/sshd_config ` 里面设置` LogLevel VERBOSE ` ,保证日志有足够的信息。
274274
0 commit comments