diff --git a/security/fail2ban/DESCR b/security/fail2ban/DESCR new file mode 100644 index 0000000000..8d6a895060 --- /dev/null +++ b/security/fail2ban/DESCR @@ -0,0 +1,5 @@ +Fail2Ban scans log files like /var/log/pwdfail and bans IP +that makes too many password failures. It updates firewall +rules to reject the IP address. Theses rules can be defined by +the user. Fail2Ban can read multiple log files such as sshd +or Apache web server ones. diff --git a/security/fail2ban/Makefile b/security/fail2ban/Makefile new file mode 100644 index 0000000000..05fd033292 --- /dev/null +++ b/security/fail2ban/Makefile @@ -0,0 +1,124 @@ +# $NetBSD: Makefile,v 1.34 2026/01/06 11:18:16 wiz Exp $ + +DISTNAME= fail2ban-1.1.0 +CATEGORIES= security +MASTER_SITES= ${MASTER_SITE_GITHUB:=fail2ban/} + +MAINTAINER= nils@NetBSD.org +HOMEPAGE= http://www.fail2ban.org/ +COMMENT= Scans log files and bans IP that makes too many password failures +LICENSE= gnu-gpl-v2 + +TOOL_DEPENDS+= ${PYPKGPREFIX}-numpydoc-[0-9]*:../../textproc/py-numpydoc +TOOL_DEPENDS+= ${PYPKGPREFIX}-sphinx-[0-9]*:../../textproc/py-sphinx + +PYTHON_VERSIONS_ACCEPTED= 312 # needs 2to3 and sphinx + +USE_TOOLS+= make:build + +USE_LANGUAGES= # none +EGDIR= ${PREFIX}/share/examples/fail2ban +PKG_SYSCONFSUBDIR= fail2ban +DOCDIR= ${PREFIX}/share/doc/fail2ban +OWN_DIRS= ${PKG_SYSCONFDIR} ${PKG_SYSCONFDIR}/action.d/ ${PKG_SYSCONFDIR}/filter.d/ \ + ${VARBASE}/run/fail2ban ${VARBASE}/db/fail2ban +INSTALLATION_DIRS+= ${PKGMANDIR}/man1/ ${PKGMANDIR}/man5/ ${EGDIR} ${EGDIR}/action.d/ ${EGDIR}/filter.d/ ${EGDIR}/filter.d/ignorecommands/ \ + ${PKG_SYSCONFDIR} ${PKG_SYSCONFDIR}/action.d/ ${PKG_SYSCONFDIR}/filter.d/ ${PKG_SYSCONFDIR}/filter.d/ignorecommands/ \ + ${DOCDIR} + +.for config in paths-arch.conf paths-common.conf paths-debian.conf paths-fedora.conf paths-freebsd.conf paths-opensuse.conf paths-osx.conf paths-netbsd.conf fail2ban.conf jail.conf paths-pkgsrc.conf +CONF_FILES+= ${EGDIR}/${config} ${PKG_SYSCONFDIR}/${config} +.endfor + +.for action in abuseipdb.conf apf.conf blocklist_de.conf bsd-ipfw.conf cloudflare.conf complain.conf dshield.conf dummy.conf firewallcmd-allports.conf firewallcmd-common.conf firewallcmd-ipset.conf firewallcmd-multiport.conf firewallcmd-new.conf firewallcmd-rich-logging.conf firewallcmd-rich-rules.conf helpers-common.conf hostsdeny.conf ipfilter.conf ipfw.conf iptables-allports.conf iptables-ipset-proto4.conf iptables-ipset-proto6-allports.conf iptables-ipset-proto6.conf iptables-ipset.conf iptables-multiport-log.conf iptables-multiport.conf iptables-new.conf iptables-xt_recent-echo.conf iptables.conf mail-buffered.conf mail-whois-common.conf mail-whois-lines.conf mail-whois.conf mail.conf mynetwatchman.conf netscaler.conf nftables-allports.conf nftables-multiport.conf nftables.conf nginx-block-map.conf npf.conf nsupdate.conf osx-afctl.conf osx-ipfw.conf pf.conf route.conf sendmail-buffered.conf sendmail-common.conf sendmail-geoip-lines.conf sendmail-whois-ipjailmatches.conf sendmail-whois-ipmatches.conf sendmail-whois-lines.conf sendmail-whois-matches.conf sendmail-whois.conf sendmail.conf shorewall-ipset-proto6.conf shorewall.conf smtp.py symbiosis-blacklist-allports.conf ufw.conf xarf-login-attack.conf +CONF_FILES+= ${EGDIR}/action.d/${action} ${PKG_SYSCONFDIR}/action.d/${action} +.endfor + + +.for filter in 3proxy.conf apache-auth.conf apache-badbots.conf apache-botsearch.conf apache-common.conf apache-modsecurity.conf apache-nohome.conf apache-noscript.conf apache-overflows.conf apache-pass.conf apache-shellshock.conf assp.conf asterisk.conf bitwarden.conf botsearch-common.conf centreon.conf common.conf counter-strike.conf courier-auth.conf courier-smtp.conf cyrus-imap.conf directadmin.conf domino-smtp.conf dovecot.conf dropbear.conf drupal-auth.conf ejabberd-auth.conf exim-common.conf exim-spam.conf exim.conf freeswitch.conf froxlor-auth.conf groupoffice.conf gssftpd.conf guacamole.conf haproxy-http-auth.conf horde.conf kerio.conf lighttpd-auth.conf mongodb-auth.conf monit.conf murmur.conf mysqld-auth.conf nagios.conf named-refused.conf nginx-botsearch.conf nginx-http-auth.conf nginx-limit-req.conf nsd.conf openhab.conf openwebmail.conf oracleims.conf pam-generic.conf perdition.conf php-url-fopen.conf phpmyadmin-syslog.conf portsentry.conf postfix.conf proftpd.conf pure-ftpd.conf qmail.conf recidive.conf roundcube-auth.conf screensharingd.conf selinux-common.conf selinux-ssh.conf sendmail-auth.conf sendmail-reject.conf sieve.conf slapd.conf sogo-auth.conf solid-pop3d.conf squid.conf squirrelmail.conf sshd.conf stunnel.conf suhosin.conf tine20.conf traefik-auth.conf uwimap-auth.conf vsftpd.conf webmin-auth.conf wuftpd.conf xinetd-fail.conf znc-adminlog.conf zoneminder.conf +CONF_FILES+= ${EGDIR}/filter.d/${filter} ${PKG_SYSCONFDIR}/filter.d/${filter} +.endfor + +CONF_FILES+= ${EGDIR}/filter.d/ignorecommands/apache-fakegooglebot ${PKG_SYSCONFDIR}/filter.d/ignorecommands/apache-fakegooglebot + +TXTDOCFILES+= develop.txt fail2ban.client.actionreader.txt fail2ban.client.beautifier.txt fail2ban.client.configparserinc.txt fail2ban.client.configreader.txt fail2ban.client.configurator.txt fail2ban.client.csocket.txt fail2ban.client.fail2banreader.txt fail2ban.client.filterreader.txt fail2ban.client.jailreader.txt fail2ban.client.jailsreader.txt fail2ban.client.txt fail2ban.exceptions.txt fail2ban.helpers.txt fail2ban.protocol.txt fail2ban.txt fail2ban.server.action.txt fail2ban.server.actions.txt fail2ban.server.asyncserver.txt fail2ban.server.banmanager.txt fail2ban.server.database.txt fail2ban.server.datedetector.txt fail2ban.server.datetemplate.txt fail2ban.server.failmanager.txt fail2ban.server.failregex.txt fail2ban.server.filter.txt fail2ban.server.filtergamin.txt fail2ban.server.filterpoll.txt fail2ban.server.filterpyinotify.txt fail2ban.server.filtersystemd.txt fail2ban.server.jail.txt fail2ban.server.jails.txt fail2ban.server.jailthread.txt fail2ban.server.mytime.txt fail2ban.server.txt fail2ban.server.server.txt fail2ban.server.strptime.txt fail2ban.server.ticket.txt fail2ban.server.transmitter.txt fail2ban.server.utils.txt fail2ban.version.txt filters.txt index.txt release.txt + +AUTO_MKDIRS= yes +MANPAGES1= fail2ban-client.1 fail2ban-regex.1 fail2ban-server.1 fail2ban-testcases.1 fail2ban.1 +MANPAGES5= jail.conf.5 + +FILES_SUBST+= PYTHON_INTERP=${PYTHONBIN:Q} +BUILD_DEFS+= PYTHON_INTERP +BUILD_DEFS+= VARBASE +RCD_SCRIPTS= fail2ban + +SUBST_CLASSES+= paths +SUBST_STAGE.paths= pre-configure +SUBST_MESSAGE.paths= Substituting paths variables. +SUBST_FILES.paths= fail2ban/client/*.py +SUBST_FILES.paths+= fail2ban/tests/utils.py +SUBST_FILES.paths+= man/fail2ban-client.1 +SUBST_FILES.paths+= man/fail2ban-client.h2m +SUBST_FILES.paths+= setup.py +SUBST_FILES.paths+= config/fail2ban.conf +SUBST_FILES.paths+= config/jail.conf +SUBST_FILES.paths+= config/paths-pkgsrc.conf +SUBST_SED.paths= -e 's,/etc,${PREFIX}/etc,g' +SUBST_SED.paths+= -e 's,/var/lib,${VARBASE}/db,g' +SUBST_SED.paths+= -e 's,/var,${VARBASE},g' +SUBST_SED.paths+= -e 's,/usr/share,${PREFIX}/share,g' +SUBST_SED.paths+= -e 's,paths-debian.conf,paths-pkgsrc.conf,g' +SUBST_VARS.paths= VARBASE + +SUBST_CLASSES+= install +SUBST_STAGE.install= pre-install +SUBST_MESSAGE.install= correcting installation path +SUBST_FILES.install= setup.py +SUBST_SED.install= -e 's,${PREFIX}/etc/fail2ban,${EGDIR},g' + +.include "../../mk/bsd.prefs.mk" + +SUBST_CLASSES+= ostype +SUBST_STAGE.ostype= post-configure +SUBST_MESSAGE.ostype= Adjusting OS type +SUBST_FILES.ostype= config/paths-pkgsrc.conf +.if ${OPSYS} == "NetBSD" +SUBST_SED.ostype= -e "s,\#before = paths-distro.conf,before = paths-netbsd.conf,g" +.elif ${OPSYS} == "Darwin" +SUBST_SED.ostype= -e "s,\#before = paths-distro.conf,before = paths-osx.conf,g" +.elif ${OPSYS} == "DragonFly" || ${OPSYS} == "FreeBSD" +SUBST_SED.ostype= -e "s,\#before = paths-distro.conf,before = paths-freebsd.conf,g" +.else +SUBST_SED.ostype= -e 's,this cant be empty,,g' +SUBST_NOOP_OK.ostype= yes +.endif + +post-extract: + ${CP} ${FILESDIR}/paths-netbsd.conf ${WRKSRC}/config/paths-netbsd.conf + ${CP} ${FILESDIR}/paths-pkgsrc.conf ${WRKSRC}/config/paths-pkgsrc.conf + +pre-patch: + cd ${WRKSRC}/ && ${PREFIX}/bin/2to3-${PYVERSSUFFIX} --no-diffs --write --nobackups --fix=all bin/* fail2ban + +post-build: + cd ${WRKSRC}/doc/ && make SPHINXBUILD=${PREFIX}/bin/sphinx-build-${PYVERSSUFFIX} text + +post-install: +.for manfile1 in ${MANPAGES1} + ${INSTALL_MAN} ${WRKSRC}/man/${manfile1} ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/ +.endfor +.for manfile5 in ${MANPAGES5} + ${INSTALL_MAN} ${WRKSRC}/man/${manfile5} ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/ +.endfor +.for txt1 in ${TXTDOCFILES} + ${INSTALL_DATA} ${WRKSRC}/doc/build/text/${txt1} ${DESTDIR}${DOCDIR}/ +.endfor +.for txt2 in DEVELOP FILTERS README.Solaris README.md doc/run-rootless.txt + ${INSTALL_DATA} ${WRKSRC}/${txt2} ${DESTDIR}${DOCDIR}/ +.endfor + +.include "options.mk" + +.include "../../lang/python/batteries-included.mk" +.include "../../lang/python/egg.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/security/fail2ban/PLIST b/security/fail2ban/PLIST new file mode 100644 index 0000000000..2f0117fcdb --- /dev/null +++ b/security/fail2ban/PLIST @@ -0,0 +1,604 @@ +@comment $NetBSD: PLIST,v 1.9 2023/07/02 08:03:38 wiz Exp $ +bin/fail2ban-client +bin/fail2ban-python +bin/fail2ban-regex +bin/fail2ban-server +bin/fail2ban-testcases +${PYSITELIB}/${EGG_INFODIR}/PKG-INFO +${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt +${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt +${PYSITELIB}/${EGG_INFODIR}/top_level.txt +${PYSITELIB}/fail2ban/__init__.py +${PYSITELIB}/fail2ban/__init__.pyc +${PYSITELIB}/fail2ban/__init__.pyo +${PYSITELIB}/fail2ban/client/__init__.py +${PYSITELIB}/fail2ban/client/__init__.pyc +${PYSITELIB}/fail2ban/client/__init__.pyo +${PYSITELIB}/fail2ban/client/actionreader.py +${PYSITELIB}/fail2ban/client/actionreader.pyc +${PYSITELIB}/fail2ban/client/actionreader.pyo +${PYSITELIB}/fail2ban/client/beautifier.py +${PYSITELIB}/fail2ban/client/beautifier.pyc +${PYSITELIB}/fail2ban/client/beautifier.pyo +${PYSITELIB}/fail2ban/client/configparserinc.py +${PYSITELIB}/fail2ban/client/configparserinc.pyc +${PYSITELIB}/fail2ban/client/configparserinc.pyo +${PYSITELIB}/fail2ban/client/configreader.py +${PYSITELIB}/fail2ban/client/configreader.pyc +${PYSITELIB}/fail2ban/client/configreader.pyo +${PYSITELIB}/fail2ban/client/configurator.py +${PYSITELIB}/fail2ban/client/configurator.pyc +${PYSITELIB}/fail2ban/client/configurator.pyo +${PYSITELIB}/fail2ban/client/csocket.py +${PYSITELIB}/fail2ban/client/csocket.pyc +${PYSITELIB}/fail2ban/client/csocket.pyo +${PYSITELIB}/fail2ban/client/fail2banclient.py +${PYSITELIB}/fail2ban/client/fail2banclient.pyc +${PYSITELIB}/fail2ban/client/fail2banclient.pyo +${PYSITELIB}/fail2ban/client/fail2bancmdline.py +${PYSITELIB}/fail2ban/client/fail2bancmdline.pyc +${PYSITELIB}/fail2ban/client/fail2bancmdline.pyo +${PYSITELIB}/fail2ban/client/fail2banreader.py +${PYSITELIB}/fail2ban/client/fail2banreader.pyc +${PYSITELIB}/fail2ban/client/fail2banreader.pyo +${PYSITELIB}/fail2ban/client/fail2banregex.py +${PYSITELIB}/fail2ban/client/fail2banregex.pyc +${PYSITELIB}/fail2ban/client/fail2banregex.pyo +${PYSITELIB}/fail2ban/client/fail2banserver.py +${PYSITELIB}/fail2ban/client/fail2banserver.pyc +${PYSITELIB}/fail2ban/client/fail2banserver.pyo +${PYSITELIB}/fail2ban/client/filterreader.py +${PYSITELIB}/fail2ban/client/filterreader.pyc +${PYSITELIB}/fail2ban/client/filterreader.pyo +${PYSITELIB}/fail2ban/client/jailreader.py +${PYSITELIB}/fail2ban/client/jailreader.pyc +${PYSITELIB}/fail2ban/client/jailreader.pyo +${PYSITELIB}/fail2ban/client/jailsreader.py +${PYSITELIB}/fail2ban/client/jailsreader.pyc +${PYSITELIB}/fail2ban/client/jailsreader.pyo +${PYSITELIB}/fail2ban/exceptions.py +${PYSITELIB}/fail2ban/exceptions.pyc +${PYSITELIB}/fail2ban/exceptions.pyo +${PYSITELIB}/fail2ban/helpers.py +${PYSITELIB}/fail2ban/helpers.pyc +${PYSITELIB}/fail2ban/helpers.pyo +${PYSITELIB}/fail2ban/protocol.py +${PYSITELIB}/fail2ban/protocol.pyc +${PYSITELIB}/fail2ban/protocol.pyo +${PYSITELIB}/fail2ban/server/__init__.py +${PYSITELIB}/fail2ban/server/__init__.pyc +${PYSITELIB}/fail2ban/server/__init__.pyo +${PYSITELIB}/fail2ban/server/action.py +${PYSITELIB}/fail2ban/server/action.pyc +${PYSITELIB}/fail2ban/server/action.pyo +${PYSITELIB}/fail2ban/server/actions.py +${PYSITELIB}/fail2ban/server/actions.pyc +${PYSITELIB}/fail2ban/server/actions.pyo +${PYSITELIB}/fail2ban/server/asyncserver.py +${PYSITELIB}/fail2ban/server/asyncserver.pyc +${PYSITELIB}/fail2ban/server/asyncserver.pyo +${PYSITELIB}/fail2ban/server/banmanager.py +${PYSITELIB}/fail2ban/server/banmanager.pyc +${PYSITELIB}/fail2ban/server/banmanager.pyo +${PYSITELIB}/fail2ban/server/database.py +${PYSITELIB}/fail2ban/server/database.pyc +${PYSITELIB}/fail2ban/server/database.pyo +${PYSITELIB}/fail2ban/server/datedetector.py +${PYSITELIB}/fail2ban/server/datedetector.pyc +${PYSITELIB}/fail2ban/server/datedetector.pyo +${PYSITELIB}/fail2ban/server/datetemplate.py +${PYSITELIB}/fail2ban/server/datetemplate.pyc +${PYSITELIB}/fail2ban/server/datetemplate.pyo +${PYSITELIB}/fail2ban/server/failmanager.py +${PYSITELIB}/fail2ban/server/failmanager.pyc +${PYSITELIB}/fail2ban/server/failmanager.pyo +${PYSITELIB}/fail2ban/server/failregex.py +${PYSITELIB}/fail2ban/server/failregex.pyc +${PYSITELIB}/fail2ban/server/failregex.pyo +${PYSITELIB}/fail2ban/server/filter.py +${PYSITELIB}/fail2ban/server/filter.pyc +${PYSITELIB}/fail2ban/server/filter.pyo +${PYSITELIB}/fail2ban/server/filtergamin.py +${PYSITELIB}/fail2ban/server/filtergamin.pyc +${PYSITELIB}/fail2ban/server/filtergamin.pyo +${PYSITELIB}/fail2ban/server/filterpoll.py +${PYSITELIB}/fail2ban/server/filterpoll.pyc +${PYSITELIB}/fail2ban/server/filterpoll.pyo +${PYSITELIB}/fail2ban/server/filterpyinotify.py +${PYSITELIB}/fail2ban/server/filterpyinotify.pyc +${PYSITELIB}/fail2ban/server/filterpyinotify.pyo +${PYSITELIB}/fail2ban/server/filtersystemd.py +${PYSITELIB}/fail2ban/server/filtersystemd.pyc +${PYSITELIB}/fail2ban/server/filtersystemd.pyo +${PYSITELIB}/fail2ban/server/ipdns.py +${PYSITELIB}/fail2ban/server/ipdns.pyc +${PYSITELIB}/fail2ban/server/ipdns.pyo +${PYSITELIB}/fail2ban/server/jail.py +${PYSITELIB}/fail2ban/server/jail.pyc +${PYSITELIB}/fail2ban/server/jail.pyo +${PYSITELIB}/fail2ban/server/jails.py +${PYSITELIB}/fail2ban/server/jails.pyc +${PYSITELIB}/fail2ban/server/jails.pyo +${PYSITELIB}/fail2ban/server/jailthread.py +${PYSITELIB}/fail2ban/server/jailthread.pyc +${PYSITELIB}/fail2ban/server/jailthread.pyo +${PYSITELIB}/fail2ban/server/mytime.py +${PYSITELIB}/fail2ban/server/mytime.pyc +${PYSITELIB}/fail2ban/server/mytime.pyo +${PYSITELIB}/fail2ban/server/observer.py +${PYSITELIB}/fail2ban/server/observer.pyc +${PYSITELIB}/fail2ban/server/observer.pyo +${PYSITELIB}/fail2ban/server/server.py +${PYSITELIB}/fail2ban/server/server.pyc +${PYSITELIB}/fail2ban/server/server.pyo +${PYSITELIB}/fail2ban/server/strptime.py +${PYSITELIB}/fail2ban/server/strptime.pyc +${PYSITELIB}/fail2ban/server/strptime.pyo +${PYSITELIB}/fail2ban/server/ticket.py +${PYSITELIB}/fail2ban/server/ticket.pyc +${PYSITELIB}/fail2ban/server/ticket.pyo +${PYSITELIB}/fail2ban/server/transmitter.py +${PYSITELIB}/fail2ban/server/transmitter.pyc +${PYSITELIB}/fail2ban/server/transmitter.pyo +${PYSITELIB}/fail2ban/server/utils.py +${PYSITELIB}/fail2ban/server/utils.pyc +${PYSITELIB}/fail2ban/server/utils.pyo +${PYSITELIB}/fail2ban/setup.py +${PYSITELIB}/fail2ban/setup.pyc +${PYSITELIB}/fail2ban/setup.pyo +${PYSITELIB}/fail2ban/tests/__init__.py +${PYSITELIB}/fail2ban/tests/__init__.pyc +${PYSITELIB}/fail2ban/tests/__init__.pyo +${PYSITELIB}/fail2ban/tests/action_d/__init__.py +${PYSITELIB}/fail2ban/tests/action_d/__init__.pyc +${PYSITELIB}/fail2ban/tests/action_d/__init__.pyo +${PYSITELIB}/fail2ban/tests/action_d/test_smtp.py +${PYSITELIB}/fail2ban/tests/action_d/test_smtp.pyc +${PYSITELIB}/fail2ban/tests/action_d/test_smtp.pyo +${PYSITELIB}/fail2ban/tests/actionstestcase.py +${PYSITELIB}/fail2ban/tests/actionstestcase.pyc +${PYSITELIB}/fail2ban/tests/actionstestcase.pyo +${PYSITELIB}/fail2ban/tests/actiontestcase.py +${PYSITELIB}/fail2ban/tests/actiontestcase.pyc +${PYSITELIB}/fail2ban/tests/actiontestcase.pyo +${PYSITELIB}/fail2ban/tests/banmanagertestcase.py +${PYSITELIB}/fail2ban/tests/banmanagertestcase.pyc +${PYSITELIB}/fail2ban/tests/banmanagertestcase.pyo +${PYSITELIB}/fail2ban/tests/clientbeautifiertestcase.py +${PYSITELIB}/fail2ban/tests/clientbeautifiertestcase.pyc +${PYSITELIB}/fail2ban/tests/clientbeautifiertestcase.pyo +${PYSITELIB}/fail2ban/tests/clientreadertestcase.py +${PYSITELIB}/fail2ban/tests/clientreadertestcase.pyc +${PYSITELIB}/fail2ban/tests/clientreadertestcase.pyo +${PYSITELIB}/fail2ban/tests/config/action.d/action.conf +${PYSITELIB}/fail2ban/tests/config/action.d/brokenaction.conf +${PYSITELIB}/fail2ban/tests/config/fail2ban.conf +${PYSITELIB}/fail2ban/tests/config/filter.d/checklogtype.conf +${PYSITELIB}/fail2ban/tests/config/filter.d/checklogtype_test.conf +${PYSITELIB}/fail2ban/tests/config/filter.d/simple.conf +${PYSITELIB}/fail2ban/tests/config/filter.d/test.conf +${PYSITELIB}/fail2ban/tests/config/filter.d/test.local +${PYSITELIB}/fail2ban/tests/config/filter.d/zzz-generic-example.conf +${PYSITELIB}/fail2ban/tests/config/filter.d/zzz-sshd-obsolete-multiline.conf +${PYSITELIB}/fail2ban/tests/config/jail.conf +${PYSITELIB}/fail2ban/tests/databasetestcase.py +${PYSITELIB}/fail2ban/tests/databasetestcase.pyc +${PYSITELIB}/fail2ban/tests/databasetestcase.pyo +${PYSITELIB}/fail2ban/tests/datedetectortestcase.py +${PYSITELIB}/fail2ban/tests/datedetectortestcase.pyc +${PYSITELIB}/fail2ban/tests/datedetectortestcase.pyo +${PYSITELIB}/fail2ban/tests/dummyjail.py +${PYSITELIB}/fail2ban/tests/dummyjail.pyc +${PYSITELIB}/fail2ban/tests/dummyjail.pyo +${PYSITELIB}/fail2ban/tests/fail2banclienttestcase.py +${PYSITELIB}/fail2ban/tests/fail2banclienttestcase.pyc +${PYSITELIB}/fail2ban/tests/fail2banclienttestcase.pyo +${PYSITELIB}/fail2ban/tests/fail2banregextestcase.py +${PYSITELIB}/fail2ban/tests/fail2banregextestcase.pyc +${PYSITELIB}/fail2ban/tests/fail2banregextestcase.pyo +${PYSITELIB}/fail2ban/tests/failmanagertestcase.py +${PYSITELIB}/fail2ban/tests/failmanagertestcase.pyc +${PYSITELIB}/fail2ban/tests/failmanagertestcase.pyo +${PYSITELIB}/fail2ban/tests/files/action.d/action.py +${PYSITELIB}/fail2ban/tests/files/action.d/action.pyc +${PYSITELIB}/fail2ban/tests/files/action.d/action.pyo +${PYSITELIB}/fail2ban/tests/files/action.d/action_checkainfo.py +${PYSITELIB}/fail2ban/tests/files/action.d/action_checkainfo.pyc +${PYSITELIB}/fail2ban/tests/files/action.d/action_checkainfo.pyo +${PYSITELIB}/fail2ban/tests/files/action.d/action_errors.py +${PYSITELIB}/fail2ban/tests/files/action.d/action_errors.pyc +${PYSITELIB}/fail2ban/tests/files/action.d/action_errors.pyo +${PYSITELIB}/fail2ban/tests/files/action.d/action_modifyainfo.py +${PYSITELIB}/fail2ban/tests/files/action.d/action_modifyainfo.pyc +${PYSITELIB}/fail2ban/tests/files/action.d/action_modifyainfo.pyo +${PYSITELIB}/fail2ban/tests/files/action.d/action_noAction.py +${PYSITELIB}/fail2ban/tests/files/action.d/action_noAction.pyc +${PYSITELIB}/fail2ban/tests/files/action.d/action_noAction.pyo +${PYSITELIB}/fail2ban/tests/files/action.d/action_nomethod.py +${PYSITELIB}/fail2ban/tests/files/action.d/action_nomethod.pyc +${PYSITELIB}/fail2ban/tests/files/action.d/action_nomethod.pyo +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/README +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/basic/authz_owner/.htaccess +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/basic/authz_owner/.htpasswd +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/basic/authz_owner/cant_get_me.html +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/basic/file/.htaccess +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/basic/file/.htpasswd +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest.py +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest.pyc +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest.pyo +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest/.htaccess +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest/.htpasswd +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest_anon/.htaccess +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest_anon/.htpasswd +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest_time/.htaccess +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest_time/.htpasswd +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest_wrongrelm/.htaccess +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/digest_wrongrelm/.htpasswd +${PYSITELIB}/fail2ban/tests/files/config/apache-auth/noentry/.htaccess +${PYSITELIB}/fail2ban/tests/files/database_v1.db +${PYSITELIB}/fail2ban/tests/files/database_v2.db +${PYSITELIB}/fail2ban/tests/files/filter.d/substition.conf +${PYSITELIB}/fail2ban/tests/files/filter.d/testcase-common.conf +${PYSITELIB}/fail2ban/tests/files/filter.d/testcase01.conf +${PYSITELIB}/fail2ban/tests/files/filter.d/testcase02.conf +${PYSITELIB}/fail2ban/tests/files/filter.d/testcase02.local +${PYSITELIB}/fail2ban/tests/files/ignorecommand.py +${PYSITELIB}/fail2ban/tests/files/ignorecommand.pyc +${PYSITELIB}/fail2ban/tests/files/ignorecommand.pyo +${PYSITELIB}/fail2ban/tests/files/logs/3proxy +${PYSITELIB}/fail2ban/tests/files/logs/apache-auth +${PYSITELIB}/fail2ban/tests/files/logs/apache-badbots +${PYSITELIB}/fail2ban/tests/files/logs/apache-botsearch +${PYSITELIB}/fail2ban/tests/files/logs/apache-fakegooglebot +${PYSITELIB}/fail2ban/tests/files/logs/apache-modsecurity +${PYSITELIB}/fail2ban/tests/files/logs/apache-nohome +${PYSITELIB}/fail2ban/tests/files/logs/apache-noscript +${PYSITELIB}/fail2ban/tests/files/logs/apache-overflows +${PYSITELIB}/fail2ban/tests/files/logs/apache-pass +${PYSITELIB}/fail2ban/tests/files/logs/apache-shellshock +${PYSITELIB}/fail2ban/tests/files/logs/assp +${PYSITELIB}/fail2ban/tests/files/logs/asterisk +${PYSITELIB}/fail2ban/tests/files/logs/bitwarden +${PYSITELIB}/fail2ban/tests/files/logs/bsd/syslog-plain.txt +${PYSITELIB}/fail2ban/tests/files/logs/bsd/syslog-v.txt +${PYSITELIB}/fail2ban/tests/files/logs/bsd/syslog-vv.txt +${PYSITELIB}/fail2ban/tests/files/logs/centreon +${PYSITELIB}/fail2ban/tests/files/logs/counter-strike +${PYSITELIB}/fail2ban/tests/files/logs/courier-auth +${PYSITELIB}/fail2ban/tests/files/logs/courier-smtp +${PYSITELIB}/fail2ban/tests/files/logs/cyrus-imap +${PYSITELIB}/fail2ban/tests/files/logs/directadmin +${PYSITELIB}/fail2ban/tests/files/logs/domino-smtp +${PYSITELIB}/fail2ban/tests/files/logs/dovecot +${PYSITELIB}/fail2ban/tests/files/logs/dropbear +${PYSITELIB}/fail2ban/tests/files/logs/drupal-auth +${PYSITELIB}/fail2ban/tests/files/logs/ejabberd-auth +${PYSITELIB}/fail2ban/tests/files/logs/exim +${PYSITELIB}/fail2ban/tests/files/logs/exim-spam +${PYSITELIB}/fail2ban/tests/files/logs/freeswitch +${PYSITELIB}/fail2ban/tests/files/logs/froxlor-auth +${PYSITELIB}/fail2ban/tests/files/logs/gitlab +${PYSITELIB}/fail2ban/tests/files/logs/grafana +${PYSITELIB}/fail2ban/tests/files/logs/groupoffice +${PYSITELIB}/fail2ban/tests/files/logs/gssftpd +${PYSITELIB}/fail2ban/tests/files/logs/guacamole +${PYSITELIB}/fail2ban/tests/files/logs/haproxy-http-auth +${PYSITELIB}/fail2ban/tests/files/logs/horde +${PYSITELIB}/fail2ban/tests/files/logs/kerio +${PYSITELIB}/fail2ban/tests/files/logs/lighttpd-auth +${PYSITELIB}/fail2ban/tests/files/logs/mongodb-auth +${PYSITELIB}/fail2ban/tests/files/logs/monit +${PYSITELIB}/fail2ban/tests/files/logs/monitorix +${PYSITELIB}/fail2ban/tests/files/logs/mssql-auth +${PYSITELIB}/fail2ban/tests/files/logs/murmur +${PYSITELIB}/fail2ban/tests/files/logs/mysqld-auth +${PYSITELIB}/fail2ban/tests/files/logs/nagios +${PYSITELIB}/fail2ban/tests/files/logs/named-refused +${PYSITELIB}/fail2ban/tests/files/logs/nginx-bad-request +${PYSITELIB}/fail2ban/tests/files/logs/nginx-botsearch +${PYSITELIB}/fail2ban/tests/files/logs/nginx-http-auth +${PYSITELIB}/fail2ban/tests/files/logs/nginx-limit-req +${PYSITELIB}/fail2ban/tests/files/logs/nsd +${PYSITELIB}/fail2ban/tests/files/logs/openhab +${PYSITELIB}/fail2ban/tests/files/logs/openwebmail +${PYSITELIB}/fail2ban/tests/files/logs/oracleims +${PYSITELIB}/fail2ban/tests/files/logs/pam-generic +${PYSITELIB}/fail2ban/tests/files/logs/perdition +${PYSITELIB}/fail2ban/tests/files/logs/php-url-fopen +${PYSITELIB}/fail2ban/tests/files/logs/phpmyadmin-syslog +${PYSITELIB}/fail2ban/tests/files/logs/portsentry +${PYSITELIB}/fail2ban/tests/files/logs/postfix +${PYSITELIB}/fail2ban/tests/files/logs/proftpd +${PYSITELIB}/fail2ban/tests/files/logs/pure-ftpd +${PYSITELIB}/fail2ban/tests/files/logs/qmail +${PYSITELIB}/fail2ban/tests/files/logs/recidive +${PYSITELIB}/fail2ban/tests/files/logs/roundcube-auth +${PYSITELIB}/fail2ban/tests/files/logs/scanlogd +${PYSITELIB}/fail2ban/tests/files/logs/screensharingd +${PYSITELIB}/fail2ban/tests/files/logs/selinux-ssh +${PYSITELIB}/fail2ban/tests/files/logs/sendmail-auth +${PYSITELIB}/fail2ban/tests/files/logs/sendmail-reject +${PYSITELIB}/fail2ban/tests/files/logs/sieve +${PYSITELIB}/fail2ban/tests/files/logs/slapd +${PYSITELIB}/fail2ban/tests/files/logs/softethervpn +${PYSITELIB}/fail2ban/tests/files/logs/sogo-auth +${PYSITELIB}/fail2ban/tests/files/logs/solid-pop3d +${PYSITELIB}/fail2ban/tests/files/logs/squid +${PYSITELIB}/fail2ban/tests/files/logs/squirrelmail +${PYSITELIB}/fail2ban/tests/files/logs/sshd +${PYSITELIB}/fail2ban/tests/files/logs/sshd-journal +${PYSITELIB}/fail2ban/tests/files/logs/stunnel +${PYSITELIB}/fail2ban/tests/files/logs/suhosin +${PYSITELIB}/fail2ban/tests/files/logs/tine20 +${PYSITELIB}/fail2ban/tests/files/logs/traefik-auth +${PYSITELIB}/fail2ban/tests/files/logs/uwimap-auth +${PYSITELIB}/fail2ban/tests/files/logs/vsftpd +${PYSITELIB}/fail2ban/tests/files/logs/webmin-auth +${PYSITELIB}/fail2ban/tests/files/logs/wuftpd +${PYSITELIB}/fail2ban/tests/files/logs/xinetd-fail +${PYSITELIB}/fail2ban/tests/files/logs/znc-adminlog +${PYSITELIB}/fail2ban/tests/files/logs/zoneminder +${PYSITELIB}/fail2ban/tests/files/logs/zzz-generic-example +${PYSITELIB}/fail2ban/tests/files/logs/zzz-sshd-obsolete-multiline +${PYSITELIB}/fail2ban/tests/files/testcase-journal.log +${PYSITELIB}/fail2ban/tests/files/testcase-multiline.log +${PYSITELIB}/fail2ban/tests/files/testcase-usedns.log +${PYSITELIB}/fail2ban/tests/files/testcase-wrong-char.log +${PYSITELIB}/fail2ban/tests/files/testcase01.log +${PYSITELIB}/fail2ban/tests/files/testcase01a.log +${PYSITELIB}/fail2ban/tests/files/testcase02.log +${PYSITELIB}/fail2ban/tests/files/testcase03.log +${PYSITELIB}/fail2ban/tests/files/testcase04.log +${PYSITELIB}/fail2ban/tests/files/zzz-sshd-obsolete-multiline.log +${PYSITELIB}/fail2ban/tests/filtertestcase.py +${PYSITELIB}/fail2ban/tests/filtertestcase.pyc +${PYSITELIB}/fail2ban/tests/filtertestcase.pyo +${PYSITELIB}/fail2ban/tests/misctestcase.py +${PYSITELIB}/fail2ban/tests/misctestcase.pyc +${PYSITELIB}/fail2ban/tests/misctestcase.pyo +${PYSITELIB}/fail2ban/tests/observertestcase.py +${PYSITELIB}/fail2ban/tests/observertestcase.pyc +${PYSITELIB}/fail2ban/tests/observertestcase.pyo +${PYSITELIB}/fail2ban/tests/samplestestcase.py +${PYSITELIB}/fail2ban/tests/samplestestcase.pyc +${PYSITELIB}/fail2ban/tests/samplestestcase.pyo +${PYSITELIB}/fail2ban/tests/servertestcase.py +${PYSITELIB}/fail2ban/tests/servertestcase.pyc +${PYSITELIB}/fail2ban/tests/servertestcase.pyo +${PYSITELIB}/fail2ban/tests/sockettestcase.py +${PYSITELIB}/fail2ban/tests/sockettestcase.pyc +${PYSITELIB}/fail2ban/tests/sockettestcase.pyo +${PYSITELIB}/fail2ban/tests/tickettestcase.py +${PYSITELIB}/fail2ban/tests/tickettestcase.pyc +${PYSITELIB}/fail2ban/tests/tickettestcase.pyo +${PYSITELIB}/fail2ban/tests/utils.py +${PYSITELIB}/fail2ban/tests/utils.pyc +${PYSITELIB}/fail2ban/tests/utils.pyo +${PYSITELIB}/fail2ban/version.py +${PYSITELIB}/fail2ban/version.pyc +${PYSITELIB}/fail2ban/version.pyo +man/man1/fail2ban-client.1 +man/man1/fail2ban-regex.1 +man/man1/fail2ban-server.1 +man/man1/fail2ban-testcases.1 +man/man1/fail2ban.1 +man/man5/jail.conf.5 +share/doc/fail2ban/DEVELOP +share/doc/fail2ban/FILTERS +share/doc/fail2ban/README.Solaris +share/doc/fail2ban/README.md +share/doc/fail2ban/develop.txt +share/doc/fail2ban/fail2ban.client.actionreader.txt +share/doc/fail2ban/fail2ban.client.beautifier.txt +share/doc/fail2ban/fail2ban.client.configparserinc.txt +share/doc/fail2ban/fail2ban.client.configreader.txt +share/doc/fail2ban/fail2ban.client.configurator.txt +share/doc/fail2ban/fail2ban.client.csocket.txt +share/doc/fail2ban/fail2ban.client.fail2banreader.txt +share/doc/fail2ban/fail2ban.client.filterreader.txt +share/doc/fail2ban/fail2ban.client.jailreader.txt +share/doc/fail2ban/fail2ban.client.jailsreader.txt +share/doc/fail2ban/fail2ban.client.txt +share/doc/fail2ban/fail2ban.exceptions.txt +share/doc/fail2ban/fail2ban.helpers.txt +share/doc/fail2ban/fail2ban.protocol.txt +share/doc/fail2ban/fail2ban.server.action.txt +share/doc/fail2ban/fail2ban.server.actions.txt +share/doc/fail2ban/fail2ban.server.asyncserver.txt +share/doc/fail2ban/fail2ban.server.banmanager.txt +share/doc/fail2ban/fail2ban.server.database.txt +share/doc/fail2ban/fail2ban.server.datedetector.txt +share/doc/fail2ban/fail2ban.server.datetemplate.txt +share/doc/fail2ban/fail2ban.server.failmanager.txt +share/doc/fail2ban/fail2ban.server.failregex.txt +share/doc/fail2ban/fail2ban.server.filter.txt +share/doc/fail2ban/fail2ban.server.filtergamin.txt +share/doc/fail2ban/fail2ban.server.filterpoll.txt +share/doc/fail2ban/fail2ban.server.filterpyinotify.txt +share/doc/fail2ban/fail2ban.server.filtersystemd.txt +share/doc/fail2ban/fail2ban.server.jail.txt +share/doc/fail2ban/fail2ban.server.jails.txt +share/doc/fail2ban/fail2ban.server.jailthread.txt +share/doc/fail2ban/fail2ban.server.mytime.txt +share/doc/fail2ban/fail2ban.server.server.txt +share/doc/fail2ban/fail2ban.server.strptime.txt +share/doc/fail2ban/fail2ban.server.ticket.txt +share/doc/fail2ban/fail2ban.server.transmitter.txt +share/doc/fail2ban/fail2ban.server.txt +share/doc/fail2ban/fail2ban.server.utils.txt +share/doc/fail2ban/fail2ban.txt +share/doc/fail2ban/fail2ban.version.txt +share/doc/fail2ban/filters.txt +share/doc/fail2ban/index.txt +share/doc/fail2ban/release.txt +share/doc/fail2ban/run-rootless.txt +share/examples/fail2ban/action.d/abuseipdb.conf +share/examples/fail2ban/action.d/apf.conf +share/examples/fail2ban/action.d/apprise.conf +share/examples/fail2ban/action.d/blocklist_de.conf +share/examples/fail2ban/action.d/bsd-ipfw.conf +share/examples/fail2ban/action.d/cloudflare-token.conf +share/examples/fail2ban/action.d/cloudflare.conf +share/examples/fail2ban/action.d/complain.conf +share/examples/fail2ban/action.d/dshield.conf +share/examples/fail2ban/action.d/dummy.conf +share/examples/fail2ban/action.d/firewallcmd-allports.conf +share/examples/fail2ban/action.d/firewallcmd-common.conf +share/examples/fail2ban/action.d/firewallcmd-ipset.conf +share/examples/fail2ban/action.d/firewallcmd-multiport.conf +share/examples/fail2ban/action.d/firewallcmd-new.conf +share/examples/fail2ban/action.d/firewallcmd-rich-logging.conf +share/examples/fail2ban/action.d/firewallcmd-rich-rules.conf +share/examples/fail2ban/action.d/helpers-common.conf +share/examples/fail2ban/action.d/hostsdeny.conf +share/examples/fail2ban/action.d/ipfilter.conf +share/examples/fail2ban/action.d/ipfw.conf +share/examples/fail2ban/action.d/iptables-allports.conf +share/examples/fail2ban/action.d/iptables-ipset-proto4.conf +share/examples/fail2ban/action.d/iptables-ipset-proto6-allports.conf +share/examples/fail2ban/action.d/iptables-ipset-proto6.conf +share/examples/fail2ban/action.d/iptables-ipset.conf +share/examples/fail2ban/action.d/iptables-multiport-log.conf +share/examples/fail2ban/action.d/iptables-multiport.conf +share/examples/fail2ban/action.d/iptables-new.conf +share/examples/fail2ban/action.d/iptables-xt_recent-echo.conf +share/examples/fail2ban/action.d/iptables.conf +share/examples/fail2ban/action.d/ipthreat.conf +share/examples/fail2ban/action.d/mail-buffered.conf +share/examples/fail2ban/action.d/mail-whois-common.conf +share/examples/fail2ban/action.d/mail-whois-lines.conf +share/examples/fail2ban/action.d/mail-whois.conf +share/examples/fail2ban/action.d/mail.conf +share/examples/fail2ban/action.d/mynetwatchman.conf +share/examples/fail2ban/action.d/netscaler.conf +share/examples/fail2ban/action.d/nftables-allports.conf +share/examples/fail2ban/action.d/nftables-multiport.conf +share/examples/fail2ban/action.d/nftables.conf +share/examples/fail2ban/action.d/nginx-block-map.conf +share/examples/fail2ban/action.d/npf.conf +share/examples/fail2ban/action.d/nsupdate.conf +share/examples/fail2ban/action.d/osx-afctl.conf +share/examples/fail2ban/action.d/osx-ipfw.conf +share/examples/fail2ban/action.d/pf.conf +share/examples/fail2ban/action.d/route.conf +share/examples/fail2ban/action.d/sendmail-buffered.conf +share/examples/fail2ban/action.d/sendmail-common.conf +share/examples/fail2ban/action.d/sendmail-geoip-lines.conf +share/examples/fail2ban/action.d/sendmail-whois-ipjailmatches.conf +share/examples/fail2ban/action.d/sendmail-whois-ipmatches.conf +share/examples/fail2ban/action.d/sendmail-whois-lines.conf +share/examples/fail2ban/action.d/sendmail-whois-matches.conf +share/examples/fail2ban/action.d/sendmail-whois.conf +share/examples/fail2ban/action.d/sendmail.conf +share/examples/fail2ban/action.d/shorewall-ipset-proto6.conf +share/examples/fail2ban/action.d/shorewall.conf +share/examples/fail2ban/action.d/smtp.py +share/examples/fail2ban/action.d/symbiosis-blacklist-allports.conf +share/examples/fail2ban/action.d/ufw.conf +share/examples/fail2ban/action.d/xarf-login-attack.conf +share/examples/fail2ban/fail2ban.conf +share/examples/fail2ban/filter.d/3proxy.conf +share/examples/fail2ban/filter.d/apache-auth.conf +share/examples/fail2ban/filter.d/apache-badbots.conf +share/examples/fail2ban/filter.d/apache-botsearch.conf +share/examples/fail2ban/filter.d/apache-common.conf +share/examples/fail2ban/filter.d/apache-fakegooglebot.conf +share/examples/fail2ban/filter.d/apache-modsecurity.conf +share/examples/fail2ban/filter.d/apache-nohome.conf +share/examples/fail2ban/filter.d/apache-noscript.conf +share/examples/fail2ban/filter.d/apache-overflows.conf +share/examples/fail2ban/filter.d/apache-pass.conf +share/examples/fail2ban/filter.d/apache-shellshock.conf +share/examples/fail2ban/filter.d/assp.conf +share/examples/fail2ban/filter.d/asterisk.conf +share/examples/fail2ban/filter.d/bitwarden.conf +share/examples/fail2ban/filter.d/botsearch-common.conf +share/examples/fail2ban/filter.d/centreon.conf +share/examples/fail2ban/filter.d/common.conf +share/examples/fail2ban/filter.d/counter-strike.conf +share/examples/fail2ban/filter.d/courier-auth.conf +share/examples/fail2ban/filter.d/courier-smtp.conf +share/examples/fail2ban/filter.d/cyrus-imap.conf +share/examples/fail2ban/filter.d/directadmin.conf +share/examples/fail2ban/filter.d/domino-smtp.conf +share/examples/fail2ban/filter.d/dovecot.conf +share/examples/fail2ban/filter.d/dropbear.conf +share/examples/fail2ban/filter.d/drupal-auth.conf +share/examples/fail2ban/filter.d/ejabberd-auth.conf +share/examples/fail2ban/filter.d/exim-common.conf +share/examples/fail2ban/filter.d/exim-spam.conf +share/examples/fail2ban/filter.d/exim.conf +share/examples/fail2ban/filter.d/freeswitch.conf +share/examples/fail2ban/filter.d/froxlor-auth.conf +share/examples/fail2ban/filter.d/gitlab.conf +share/examples/fail2ban/filter.d/grafana.conf +share/examples/fail2ban/filter.d/groupoffice.conf +share/examples/fail2ban/filter.d/gssftpd.conf +share/examples/fail2ban/filter.d/guacamole.conf +share/examples/fail2ban/filter.d/haproxy-http-auth.conf +share/examples/fail2ban/filter.d/horde.conf +share/examples/fail2ban/filter.d/ignorecommands/apache-fakegooglebot +share/examples/fail2ban/filter.d/kerio.conf +share/examples/fail2ban/filter.d/lighttpd-auth.conf +share/examples/fail2ban/filter.d/mongodb-auth.conf +share/examples/fail2ban/filter.d/monit.conf +share/examples/fail2ban/filter.d/monitorix.conf +share/examples/fail2ban/filter.d/mssql-auth.conf +share/examples/fail2ban/filter.d/murmur.conf +share/examples/fail2ban/filter.d/mysqld-auth.conf +share/examples/fail2ban/filter.d/nagios.conf +share/examples/fail2ban/filter.d/named-refused.conf +share/examples/fail2ban/filter.d/nginx-bad-request.conf +share/examples/fail2ban/filter.d/nginx-botsearch.conf +share/examples/fail2ban/filter.d/nginx-http-auth.conf +share/examples/fail2ban/filter.d/nginx-limit-req.conf +share/examples/fail2ban/filter.d/nsd.conf +share/examples/fail2ban/filter.d/openhab.conf +share/examples/fail2ban/filter.d/openwebmail.conf +share/examples/fail2ban/filter.d/oracleims.conf +share/examples/fail2ban/filter.d/pam-generic.conf +share/examples/fail2ban/filter.d/perdition.conf +share/examples/fail2ban/filter.d/php-url-fopen.conf +share/examples/fail2ban/filter.d/phpmyadmin-syslog.conf +share/examples/fail2ban/filter.d/portsentry.conf +share/examples/fail2ban/filter.d/postfix.conf +share/examples/fail2ban/filter.d/proftpd.conf +share/examples/fail2ban/filter.d/pure-ftpd.conf +share/examples/fail2ban/filter.d/qmail.conf +share/examples/fail2ban/filter.d/recidive.conf +share/examples/fail2ban/filter.d/roundcube-auth.conf +share/examples/fail2ban/filter.d/scanlogd.conf +share/examples/fail2ban/filter.d/screensharingd.conf +share/examples/fail2ban/filter.d/selinux-common.conf +share/examples/fail2ban/filter.d/selinux-ssh.conf +share/examples/fail2ban/filter.d/sendmail-auth.conf +share/examples/fail2ban/filter.d/sendmail-reject.conf +share/examples/fail2ban/filter.d/sieve.conf +share/examples/fail2ban/filter.d/slapd.conf +share/examples/fail2ban/filter.d/softethervpn.conf +share/examples/fail2ban/filter.d/sogo-auth.conf +share/examples/fail2ban/filter.d/solid-pop3d.conf +share/examples/fail2ban/filter.d/squid.conf +share/examples/fail2ban/filter.d/squirrelmail.conf +share/examples/fail2ban/filter.d/sshd.conf +share/examples/fail2ban/filter.d/stunnel.conf +share/examples/fail2ban/filter.d/suhosin.conf +share/examples/fail2ban/filter.d/tine20.conf +share/examples/fail2ban/filter.d/traefik-auth.conf +share/examples/fail2ban/filter.d/uwimap-auth.conf +share/examples/fail2ban/filter.d/vsftpd.conf +share/examples/fail2ban/filter.d/webmin-auth.conf +share/examples/fail2ban/filter.d/wuftpd.conf +share/examples/fail2ban/filter.d/xinetd-fail.conf +share/examples/fail2ban/filter.d/znc-adminlog.conf +share/examples/fail2ban/filter.d/zoneminder.conf +share/examples/fail2ban/jail.conf +share/examples/fail2ban/paths-arch.conf +share/examples/fail2ban/paths-common.conf +share/examples/fail2ban/paths-debian.conf +share/examples/fail2ban/paths-fedora.conf +share/examples/fail2ban/paths-freebsd.conf +share/examples/fail2ban/paths-netbsd.conf +share/examples/fail2ban/paths-opensuse.conf +share/examples/fail2ban/paths-osx.conf +share/examples/fail2ban/paths-pkgsrc.conf diff --git a/security/fail2ban/distinfo b/security/fail2ban/distinfo new file mode 100644 index 0000000000..cade731e93 --- /dev/null +++ b/security/fail2ban/distinfo @@ -0,0 +1,6 @@ +$NetBSD: distinfo,v 1.10 2023/07/02 08:03:38 wiz Exp $ + +BLAKE2s (fail2ban-1.1.0.tar.gz) = 68434e84ba699560b9a8b0a75c4c9f61cb94357212b7b8c23cec4765ee81913d +SHA512 (fail2ban-1.1.0.tar.gz) = 9bff7b9c41e58a953901800468e5c4153c9db6af01c7eb18111ad8620b40d03a0771020472fb759b2809d250e2bb45471e6c7e8283e72ea48290ecf7bf921821 +Size (fail2ban-1.1.0.tar.gz) = 603854 bytes +SHA1 (patch-doc_Makefile) = b17d28b1ef79b0cf86e4cd5d6eaa3e3d1bc2da39 diff --git a/security/fail2ban/files/fail2ban.sh b/security/fail2ban/files/fail2ban.sh new file mode 100644 index 0000000000..fc99902241 --- /dev/null +++ b/security/fail2ban/files/fail2ban.sh @@ -0,0 +1,32 @@ +#!@RCD_SCRIPTS_SHELL@ +# +# PROVIDE: fail2ban +# REQUIRE: NETWORKING syslogd +# +# Add the following lines to /etc/rc.conf to enable fail2ban: +# fail2ban=YES +# fail2ban_flags="" + +. /etc/rc.subr + +name="@PKGBASE@" +rcvar=${name} +command="@PREFIX@/bin/fail2ban-server" +command_interpreter="@PYTHON_INTERP@" +client="@PREFIX@/bin/fail2ban-client" +pidfile="@VARBASE@/${name}/${name}.pid" +extra_commands="reload" + +load_rc_config ${name} + +start_precmd="fail2ban_precmd" +start_cmd="${client} ${fail2ban_flags} start" +stop_cmd="${client} ${fail2ban_flags} stop" +status_cmd="${client} ${fail2ban_flags} status" +reload_cmd="${client} ${fail2ban_flags} reload" + +fail2ban_precmd () { + mkdir -p /var/run/fail2ban +} + +run_rc_command "$1" diff --git a/security/fail2ban/files/paths-netbsd.conf b/security/fail2ban/files/paths-netbsd.conf new file mode 100644 index 0000000000..ddb4fc58ea --- /dev/null +++ b/security/fail2ban/files/paths-netbsd.conf @@ -0,0 +1,28 @@ +# NetBSD + +[INCLUDES] + +before = paths-common.conf + +after = paths-overrides.local + + +[DEFAULT] + +syslog_mail = /var/log/maillog + +syslog_mail_warn = /var/log/maillog + +syslog_authpriv = /var/log/authlog + +syslog_ftp = /var/log/xferlog + +syslog_daemon = /var/log/messages + +syslog_local0 = /var/log/messages + +# Linux things +# we fake to avoid parse error in startups + +auditd_log = /dev/null + diff --git a/security/fail2ban/files/paths-pkgsrc.conf b/security/fail2ban/files/paths-pkgsrc.conf new file mode 100644 index 0000000000..e70c75ecd4 --- /dev/null +++ b/security/fail2ban/files/paths-pkgsrc.conf @@ -0,0 +1,20 @@ +# pkgsrc + +[INCLUDES] + +#before = paths-distro.conf + +after = paths-overrides.local + + +[DEFAULT] + +apache_error_log = @VARBASE@/log/httpd/error_log + +apache_access_log = @VARBASE@/log/httpd/access_log + + +nginx_error_log = @VARBASE@/log/nginx/error.log + +nginx_access_log = @VARBASE@/log/nginx/access.log + diff --git a/security/fail2ban/options.mk b/security/fail2ban/options.mk new file mode 100644 index 0000000000..214d79847b --- /dev/null +++ b/security/fail2ban/options.mk @@ -0,0 +1,13 @@ +# $NetBSD: options.mk,v 1.1 2015/02/09 10:05:25 nils Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.fail2ban +PKG_SUPPORTED_OPTIONS= gamin + +.include "../../mk/bsd.options.mk" + +### +### Use Gamin +### +.if !empty(PKG_OPTIONS:Mgamin) +DEPENDS+= gamin>=0.0.21:../../sysutils/gamin +.endif diff --git a/security/fail2ban/patches/patch-doc_Makefile b/security/fail2ban/patches/patch-doc_Makefile new file mode 100644 index 0000000000..af820179a7 --- /dev/null +++ b/security/fail2ban/patches/patch-doc_Makefile @@ -0,0 +1,22 @@ +$NetBSD: patch-doc_Makefile,v 1.1 2015/02/09 10:05:25 nils Exp $ + +removed non-working check for sphinx and corrected sphinx-build name + +--- doc/Makefile.orig 2014-10-28 01:49:40.000000000 +0000 ++++ doc/Makefile +@@ -3,14 +3,10 @@ + + # You can set these variables from the command line. + SPHINXOPTS = +-SPHINXBUILD = sphinx-build2 ++SPHINXBUILD = sphinx-build + PAPER = + BUILDDIR = ""build + +-# User-friendly check for sphinx-build2 +-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +-$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +-endif + + # Internal variables. + PAPEROPT_a4 = -D latex_paper_size=a4