mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-05 00:29:48 +03:00
Failed Access Logging - Fail2Ban Filter Example #2001
Closed
opened 2026-02-05 02:26:20 +03:00 by OVERLORD
·
5 comments
No Branch/Tag Specified
development
l10n_development
further_theme_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#2001
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @cyb3rl4d on GitHub (Jan 3, 2021).
Hi,
I've followed the guidance on Failed Access Logging and now a have failed login attempts being reported into the error log thank you! I'm having some significant issues though trying to get Fail2Ban to detect the failures. I think I may need to create a custom filter which I have no clue on how to do.
Therefore could I request some help or point me to some documentation to help with setting up the required regex/config to get it working. I would be very happy to ensure the BookStack docs are updated to help others.
Thanks in advance!
Please see below a snip from my error.log, if that helps
2021/01/02 19:56:38 [error] 390#390: *22 FastCGI sent in stderr: "PHP message: Failed login for email@domain.com" while reading response header from upstream, client: 80.70.60.50, server: _, reques> 2021/01/02 19:59:52 [error] 390#390: *25 FastCGI sent in stderr: "PHP message: Failed login for email@domain.com" while reading response header from upstream, client: 80.70.60.50, server: _, reques> 2021/01/02 21:26:32 [error] 390#390: *28 FastCGI sent in stderr: "PHP message: Failed login for email@domain.com" while reading response header from upstream, client: 80.70.60.50, server: _, reques>@ssddanbrown commented on GitHub (Jan 3, 2021):
Hi @cyb3rl4d,
I'm not 100% sure what I'm doing with fail2ban, hence the limited guidance I've provided in the docs, but the following may work.
I modelled these steps on the fail2ban installation on my Ubuntu 20.10 desktop system.
Create a
/etc/fail2ban/filter.d/bookstack.conffile with the following:Within your
/etc/fail2ban/jail.localfile (or similar) add bookstack as a service using the filter like so:If using apache, you'll need to change
nginxforapacheabove.Then restart fail2ban (
systemctl restart fail2ban).When you run
fail2ban-client statusyou should then have abookstackitem in the output.Then you can run
fail2ban-client status bookstackto see the stats for the bookstack jail. Is a good idea to do a couple of remote requests (From a phone on a mobile network is often easiest) to ensure the stats increase shortly after failed logins.I've always found fail2ban config a bit confusing so apologies if the above does not work for you, hopefully it can at least guide you down a path to get things working.
@cyb3rl4d commented on GitHub (Jan 3, 2021):
Hi Dan,
Thanks so much for the detailed and quick response!! With your guidance I got it working!!! Thank you!!!
I was trying all kind of complex regex's (trying to follow the docs on fail2ban-regex test app, wow thats complicated!).
Anyway, it didnt work initially until I spotted the "Failed login from" bit, in mine its "for" not "from" so by making that very small change it worked!!! thanks so much!!!
@ssddanbrown commented on GitHub (Jan 3, 2021):
@cyb3rl4d Awesome, Glad to hear that worked for you!
@horstepipe commented on GitHub (Nov 13, 2021):
hello
could anybody tell me how to edit nginx or php error_log to show real IPs instead of Cloudflares in the log?
@ssddanbrown commented on GitHub (Nov 13, 2021):
@horstepipe These may help:
https://danielmiessler.com/blog/getting-real-ip-addresses-using-cloudflare-nginx-and-varnish/
https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs