使用fail2ban保护你的filebrowser

        filebrowser真是个好东西,轻量级web文件管理、共享,各种音频、mp4在线播放,最关键的是轻量级,可以在各种路由器上部署,个中好处我就不多介绍了,当然了缺点也很明显,就是简陋。filebrowser的安装使用方法我就不阐述了,网上大把。filebrowser官网

        我使用了IPV4/IPV6公网直接访问我的filebrowser。但是又觉得filebrowser暴露在公网不够安全,所以研究了一下fail2ban发现用这个工具可以一定程度的保护好filebrowser的安全。

        安装了fail2ban之后并没有适用于filebrowser的规则,于是乎我看了一下其它规则,发现都是基于正则表达式匹配错误日志,而我本人对正则表达式略有研究,所以直接自己写了一个filebrowser的匹配规则。该规则只匹配登录错误,带密码的分享打开页面就会生成一个错误日志,输入分享密码错误的日志与打开页面的日志一致,所以无法区分。

        废话不多说,直接上教程。

1.安装fail2ban

# 1 登录你的 linux
ssh root@192.168.1.1

# 2 更新 apt 源
sudo apt update

# 3 安装 fail2ban
sudo apt install fail2ban

2.创建 filebrowser 的匹配规则

# 使用 vi / vim 编辑 filebrowser 规则文件
vim /etc/fail2ban/filter.d/filebrowser.conf


# ========== 文件内容 开始

# fail2ban filter configuration for filebrowser


[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf


[Definition]


_daemon = filebrowser

prefregex = ^%(__prefix_line)s<F-CONTENT>/api/login.+</F-CONTENT>$

failregex = ^/api/login:\s+(?:401|403)\s+<HOST>(:\d+)?\s*<nil>$

ignoreregex = 

# ========== 文件内容 结束

3.创建 fail2规则 

# 创建 fail2ban 规则目录 (默认不存在)
mkdir /etc/fail2ban/jail.d/

# 编辑 luci 规则
vim /etc/fail2ban/jail.d/filebrowser.local

# ========== 文件内容 开始

[filebrowser]
enabled  = true
filter   = filebrowser
action   = iptables[name=filebrowser, port=8088, protocol=tcp]
logpath  = /home/user/.filebrowser/filebrowser.log
maxretry = 5
bantime  = 604800


# ========== 文件内容结束

fail2ban规则中 port=http 就是默认的80端口 如果你的登录页面是 443可以用 https 也可以直接使用 443或者80或者其它实际的端口号

maxretry 就是密码错误次数 错误次数达到这个就封禁这个IP

bantime 就是封禁时间 (秒)

logpath = 具体的日志文件路径 

filebrowser 配置

         配置filebrowser的端口,日志都要与fail2ban里面保持一致。

# 编辑配置文件 filebrowser.json 

# ====== 文件内容开始
{
    "address": "0.0.0.0",
    "port": 8088,
    "database": "./filebrowser.db", #数据库文件路径
    "log": "./filebrowser.log",  #日志文件路径
    "locale": "zh-cn",
    "username": "admin", #后台默认用户名
    "password": "",   #后台默认密码
    "root": "/", 
#    "cert": "./host.crt",
#    "key": "./host",
    "scope": "/"
}
# ====== 文件内容结束



# 启动 filebrowser
/usr/bin/filebrowser -c filebrowser.json


# 注意 log文件路径一定要跟 faile2ban内保持一致

4.重启fail2ban 并查看规则是否生效

# 重启 fail2ban
fail2ban-client restart

# 查看 fail2ban 状态
fail2ban-client status
# 执行这个命令后应该看到 Jail list里面有 filebrowser
# Status
# |- Number of jail:      2
# `- Jail list:   filebrowser, sshd


# 查看 filebrowser 的错误次数以及封禁数
fail2ban-client status filebrowser
#执行这个命令后应该会看到
# Status for the jail: filebrowser
# |- Filter
# |  |- Currently failed: 0
# |  |- Total failed:     0
# |  `- File list:        /home/user/.filebrowser/filebrowser.log
# `- Actions
#    |- Currently banned: 0
#    |- Total banned:     0
#    `- Banned IP list:

# 然后为了验证效果 你可以在 filebrowser 的登录页面输错密码登录后 再执行 fail2ban-client status filebrowser 就会看到 Currently failed 和 Total failed 数量增加了 错误次数达到 设定的值 就会封禁这个IP

至此大功告成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值