debian手动安装fail2ban 防ssh爆破

Fail2Ban 是一款开源的安全工具,主要用于防止暴力破解攻击。它通过监控系统日志文件(如 SSH、HTTP 等)来检测恶意登录尝试,并根据配置自动封禁攻击源 IP。


功能:

  1. 日志监控:Fail2Ban 通过配置的正则表达式扫描日志文件,识别出失败的登录尝试。
  2. IP封禁:当检测到一定次数的失败登录时,它会通过 iptablesnftables 临时封禁攻击者的 IP 地址,防止继续攻击。
  3. 自动解除封禁:Fail2Ban 会在设定的时间后自动解除封禁,以确保正常用户不会被长期封锁。

原理:

  1. 监控日志:Fail2Ban 定期扫描指定的日志文件,查找失败的登录记录。
  2. 规则匹配:通过配置文件中的规则定义,Fail2Ban 识别出失败的登录尝试(如 SSH 登录失败)。
  3. 封禁 IP:当某个 IP 达到失败尝试的阈值时,Fail2Ban 会执行封禁动作(通常是修改防火墙规则),阻止该 IP 访问系统。
  4. 自动解除:封禁的 IP 会在配置的时间后被解除,避免误封正常用户。

安装教程:

更新你的系统软件包、安装依赖与Fail2ban

sudo apt update && sudo apt install -y python3-systemd fail2ban

安装完成后,Fail2Ban 服务会自动启动,你可以通过以下命令检查服务状态:

sudo systemctl status fail2ban

配置 Fail2Ban

Fail2Ban 的默认配置文件通常位于 /etc/fail2ban 目录下,主配置文件是 fail2ban.confjail.conf。但是,最好不要直接修改 jail.conf,而是创建一个局部配置文件 jail.local,以便在更新时不会丢失你的修改。

  1. 创建或编辑 jail.local 配置文件:
   sudo nano /etc/fail2ban/jail.local
  1. 在文件中添加或修改你需要的配置。例如,开启常见的服务防护(如 SSH):
[sshd]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
bantime  = -1  # 或者 bantime = "infinity"
backend=systemd
#enabled=true

[DEFAULT]
allowipv6 = auto
  • [sshd]部分是一个监狱的定义,专门用于监控SSH服务的登录尝试。
  • enabled = true表示这个监狱是激活状态。
  • port = ssh指定了SSH服务监听的端口号,默认是22。
  • filter = sshd指定了Fail2Ban使用哪个过滤器来解析日志文件中的登录失败尝试。过滤器定义在/etc/fail2ban/filter.d/目录下。
  • logpath = /var/log/auth.log(对于Debian系)或logpath = /var/log/secure
    (对于CentOS系)指定了Fail2Ban监控的日志文件路径。这些路径分别适用于Debian系和CentOS系的系统。
  • bantime = -1设置了封禁的时长,这里是永久。封禁期满后,IP地址将被解封。
  • maxretry = 3设置了在findtime指定的时间窗口内允许的最大失败尝试次数。超过这个次数的失败尝试将导致来源IP被封禁。

启动和管理 Fail2Ban

Fail2Ban 会自动启动,但如果需要手动启动、停止或重启它,可以使用以下命令:

  • 启动 Fail2Ban:
sudo systemctl start fail2ban
  • 停止 Fail2Ban:
sudo systemctl stop fail2ban
  • 重启 Fail2Ban:( 编辑完 /etc/fail2ban/jail.local 文件之后,并不需要完全重启系统或者 Fail2Ban 服务,但你需要 重启 Fail2Ban 服务 来使配置生效。)
sudo systemctl restart fail2ban
  • 查看 Fail2Ban 服务状态:
sudo systemctl status fail2ban

查看日志

你可以使用 fail2ban-client status <jail> 命令查看当前在某个监控规则下被封禁的 IP 地址。

例如,要查看 sshd(SSH)规则下的封禁 IP:

sudo fail2ban-client status sshd

这将显示类似以下的输出:

root@sora:~# sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 2
|  |- Total failed:     155
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 22
   |- Total banned:     22
   `- Banned IP list:   218.92.0.137 92.255.85.253 185.213.165.172

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇