mirror of
https://github.com/9001/copyparty.git
synced 2026-04-12 23:32:32 -06:00
37 lines
1.1 KiB
Python
Executable file
37 lines
1.1 KiB
Python
Executable file
# /!\ Warning: be careful, as webdav clients often generate a large number of 404 requets.
|
|
|
|
# In your `jail.local`, add:
|
|
# [copyparty]
|
|
# enabled = true
|
|
# logtimezone = UTC
|
|
# logpath = /path/to/log/file # or keep the default value if you're using systemd
|
|
|
|
# Create the `copyparty.conf` file in `filter.d` with the following:
|
|
# [Definition]
|
|
# failregex = ^ <ADDR>$
|
|
# ignoreregex =
|
|
# datepattern = ^fail2ban: %%Y-%%m-%%dT%%H:%%M:%%S
|
|
|
|
# First check `--dont-ban`, and if it doesn't match, log the line to be intercepted by fail2ban.
|
|
from datetime import datetime, UTC
|
|
def main(cli, vn="", rem=""):
|
|
now = datetime.now(UTC).isoformat()[:19]
|
|
msg = "\nfail2ban: %s %s"
|
|
if not vn and not rem:
|
|
# got called by --xban
|
|
cli["log"](msg % (now, cli["ip"]), 3)
|
|
return {"rc": 0}
|
|
|
|
cond = cli.args.dont_ban
|
|
if (
|
|
cond == "any"
|
|
or (cond == "auth" and cli.uname != "*")
|
|
or (cond == "aa" and cli.avol)
|
|
or (cond == "av" and cli.can_admin)
|
|
or (cond == "rw" and cli.can_read and cli.can_write)
|
|
):
|
|
return ""
|
|
|
|
cli.log(msg % (now, cli.ip), 3)
|
|
return ""
|