Skip to content

Commit abf5b5c

Browse files
committed
ops/security: more detailed fail2ban intro
1 parent 306b9a5 commit abf5b5c

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

docs/ops/security.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,34 @@ Passkey(通行密钥)则是目前最新的「无密码登录」技术,在
676676

677677
对于图形登录方式,Windows 服务器常见的登录方式为 RDP,而 Linux 的 RDP 和 VNC 都是常见的登录方式。由于协议设计复杂性,不建议将 RDP 或 VNC 的端口直接暴露在公网(历史上 RDP 也暴露过大量的漏洞),并且需要确保连接被加密,以防止可能的中间人窃取密码。
678678

679-
同时,为了避免持续的扫描行为带来的影响,可以部署诸如 [fail2ban](https://github.com/fail2ban/fail2ban) 的工具来自动封禁暴力破解的 IP 地址。fail2ban 会监控日志文件,并且在发现 IP 地址在一定时间内多次尝试后会将对应的 IP 应用指定的规则(例如通过 iptables 丢弃包)来实现自动封禁。
679+
同时,为了避免持续的扫描行为带来的影响,可以部署诸如 [fail2ban](https://github.com/fail2ban/fail2ban) 的工具来自动封禁暴力破解的 IP 地址。
680+
681+
!!! note "fail2ban 简介"
682+
683+
fail2ban 会监控日志文件,并且在发现 IP 地址在一定时间内多次尝试后会将对应的 IP 应用指定的规则来实现自动封禁。其主要有三个部分:
684+
685+
- action:在封禁/解封时具体执行的命令,例如使用 iptables/nftables 丢弃对应 IP 的包。
686+
- filter:定义了如何从日志文件中提取失败尝试的正则表达式。
687+
- jail:定义了监控的日志文件、封禁的次数阈值、时间、使用的 filter 以及 action 等。
688+
689+
Debian 安装的 fail2ban 默认会启用 sshd 的 jail,其他的 jail 需要用户自行配置。可以使用以下命令查看 jail 的状态:
690+
691+
```console
692+
$ sudo fail2ban-client status
693+
Status
694+
|- Number of jail: 1
695+
`- Jail list: sshd
696+
$ sudo fail2ban-client status sshd
697+
Status for the jail: sshd
698+
|- Filter
699+
| |- Currently failed: 0
700+
| |- Total failed: 13
701+
| `- Journal matches: _SYSTEMD_UNIT=ssh.service + _COMM=sshd
702+
`- Actions
703+
|- Currently banned: 1
704+
|- Total banned: 2
705+
`- Banned IP list: 192.168.123.123
706+
```
680707

681708
!!! tip "使用 SSH 转发端口"
682709

0 commit comments

Comments
 (0)