Commit graph

64 commits

Author SHA1 Message Date
Dirk Brenken
16acda2262
banip: update 0.8.4-2
* fix domain lookup function (parse banIP config vars)
* update readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-04-28 12:07:06 +02:00
Dirk Brenken
c5d9b3ded2
banip: release 0.8.4-1
* add support for a custom feeds file (/etc/banip/banip.custom.feeds). Add new or edit existing banIP feeds on your own with the integrated custom feed editor (LuCI-component
* add a new option 'ban_blockpolicy' to overrule the default bblock policy (block all chains), see readme for details
* change the feed file format and add a new ipthreat feed, see readme
* refine (debug) logging
* multiple small fixes and improvements
* readme update
* luci update (separate commit)

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-04-23 22:03:09 +02:00
Dirk Brenken
d178bf5d35
banip: update 0.8.3-2
* more init fixes

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-04-12 15:31:31 +02:00
Dirk Brenken
c07fae25e7
banip: release 0.8.3-1
* add the new init command 'lookup', to lookup the IPs of domain names in the local lists and update them
* significant acceleration of the domain lookup function
* multiple small fixes and improvements
* readme update
* luci update (separate commit)

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-04-06 19:43:46 +02:00
Dirk Brenken
692fe359a9
banip: update to 0.8.2-6
* restored some accidently removed init stuff in last commit

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-30 20:13:21 +02:00
Dirk Brenken
c9bf92c88d
banip: update to 0.8.2-5
* fixed missing version number when installed as separate package (not in build)
* fixed cornercase init and mailing issues
* sorted Country list by country names ascending
* fixed some shellcheck findings

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-30 18:00:40 +02:00
Dirk Brenken
6b1df72e64
banip: update to 0.8.2-4
* fixed a race condition if the service is in a disabled state

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-26 22:52:34 +02:00
Dirk Brenken
1f5bc3f0f1
banip: update to 0.8.2-3
* raise max. timeouts from 10 to 30 seconds to stabilize the autodetection on slow hardware
* made interface trigger action configurable, set 'ban_triggeraction' accordingly (default: 'start')
* made E-Mail notifications configurable to receive status E-Mais with every banIP run,
  set 'ban_mailnotification' accordingly (default: disabled)
* small fixes & optimizations
* readme update

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-22 19:15:39 +01:00
Dirk Brenken
d8b6e2ca2a
banip: update 0.8.2-2
* fix the auto-detection for pppoe and 6in4 tunnel interfaces
* add the new 'ban_nftpolicy' option to expose the nft set policy, values: memory (default), performance
* add the new 'ban_nftlogevel' option to expose the nft syslog level, values: emerg, alert, crit, err, warn (default),
  notice, info, debug, audit
* status optimizations
* logging optimizations
* update the readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-10 19:42:41 +01:00
Dirk Brenken
7c2296c891
banip: release 0.8.2-1
* major performance improvements: clean-up/optimize all nft calls
* add a new "ban_reportelements" option,
  to disable the (time consuming) Set element count in the report (enabled by default)
* update the readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-08 21:03:34 +01:00
Dirk Brenken
0b37036e5a
banip: update 0.8.1-3
* finalized the LuCI frontend preparation (this is the minmal version to use the forthcoming LuCI frontend)
* added a Set survey, to list all elements of a certain set
* changed the default logterm for asterisk
* update the readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-03-06 14:21:52 +01:00
Dirk Brenken
0706b1d2d9
banip: update 0.8.1-2
* add oisdbig as new feed
* LuCI frontend preparation:
  - the json feed file points always to /etc/banip/banip.feeds (and is no longer compressed)
  - supply country list in /etc/banip/banip.countries
* update readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-02-26 08:16:15 +01:00
Dirk Brenken
02c2587f9d
banip: release 0.8.1-1
* add missing wan-forward chain (incl. report/mail adaption)
* changed options:
  - old: ban_blockforward, new: ban_blockforwardwan and ban_blockforwardlan
  - old: ban_logforward, new: ban_logforwardwan and ban_logforwardlan
* add missing dhcp(v6) rules/exceptions
* update readme

Previously run tested by certain forum users (and by me).

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-02-25 10:01:11 +01:00
Dirk Brenken
618dd4676d
banip: update 0.8.0-4
* remove bogus log limit

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-02-21 21:43:21 +01:00
Dirk Brenken
eb3c89ceed
banip: update 0.8.0-3
* properly initialize the 'proto' variable in the log service

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-02-21 18:43:17 +01:00
Dirk Brenken
b50383e4d9
banip: update 0.8.0-2
* fix a potential race condition during initial startup (after flash) which leads to a "disabled" service

Signed-off-by: Dirk Brenken <dev@brenken.org
Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-02-20 19:18:31 +01:00
Dirk Brenken
82a491bac8
banip: release 0.8.0 (nft rewrite)
- complete rewrite of banIP to support nftables
- all sets are handled in a separate nft table/namespace 'banIP'
- for incoming blocking it uses the inet input hook, for outgoing blocking it uses the inet forward hook
- full IPv4 and IPv6 support
- supports nft atomic set loading
- supports blocking by ASN numbers and by iso country codes
- 42 preconfigured external feeds are available, plus local allow- and blocklist
- supports local allow- and blocklist (IPv4, IPv6, CIDR notation or domain names)
- auto-add the uplink subnet to the local allowlist
- provides a small background log monitor to ban unsuccessful login attempts in real-time
- the logterms for the log monitor service can be freely defined via regex
- auto-add unsuccessful LuCI, nginx, Asterisk or ssh login attempts to the local blocklist
- fast feed processing as they are handled in parallel as background jobs
- per feed it can be defined whether the input chain or the forward chain should be blocked (default: both chains)
- automatic blocklist backup & restore, the backups will be used in case of download errors or during startup
- automatically selects one of the following download utilities with ssl support: aria2c, curl, uclient-fetch or wget
- supports a 'allowlist only' mode, this option restricts internet access from/to a small number of secure websites/IPs
- provides comprehensive runtime information
- provides a detailed set report
- provides a set search engine for certain IPs
- feed parsing by fast & flexible regex rulesets
- minimal status & error logging to syslog, enable debug logging to receive more output
- procd based init system support (start/stop/restart/reload/status/report/search)
- procd network interface trigger support
- ability to add new banIP feeds on your own
- add a readme with all available options/feeds to customize your installation to your needs
- a new LuCI frontend will be available in due course

Signed-off-by: Dirk Brenken <dev@brenken.org>
2023-02-18 21:06:26 +01:00
Dirk Brenken
a2f0257272
banip: mark as broken
banIP 0.7.x is not compatible with new nft firewall (default in master and 22.03).
Mark the package as BROKEN for now.

Signed-off-by: Dirk Brenken <dev@brenken.org>
2022-05-27 21:23:56 +02:00
Rosen Penev
59dcbb741a banip: make reproducible
Timestamp needs to be removed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-02-07 22:02:26 -08:00
Oskari Rauta
1441366364 banip: update nginx matching
Currently banip matches nginx log entries starting with
nginx[number]:...

I am running a containerized nginx with alpine as base, which
ends up adding log entries without [number] part..
like this:
nginx:...

This patch updates regex for nginx log entry search to include
both versions.

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
2021-12-03 05:15:00 +02:00
Richard Gering
e803f3d75f banip: update 0.7.10-3
* Updated firehol ipset URLs

Signed-off-by: Richard Gering <rg4github@dutchies.us>
2021-09-11 22:39:17 -07:00
Dirk Brenken
f630037043
banip: update 0.7.10-2
* optimize dns resolve function
* cosmetics

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-09-07 21:16:08 +02:00
Dirk Brenken
8ac0103cbd
banip: update 0.7.10
* switch to unencrypted http downloads for ipdeny.com due to persistant certificate issues
* compact json generator code (tested with report files > 2MB)
* various code cleanups and optimizations

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-08-29 17:16:59 +02:00
Dirk Brenken
0c16840e26
banip: refine/fix nginx search pattern
* fix issue with nginx search pattern reported in forum support thread

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-06-17 22:23:24 +02:00
Dirk Brenken
945513860d
banip: update 0.7.9
* add switch 'ban_fetchinsecure' to allow insecure downloads
  without certificate check (disabled by default)
* better explain 'ban_fetchparm' in readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-06-13 07:36:45 +02:00
Dirk Brenken
1402b3b56d
banip: update to 0.7.8
* fix pid file processing of the background monitor plus child
  processes (bug reported in the forum)
* made the enabled/disabled switch of the background monitor functional

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-05-04 18:44:26 +02:00
Dirk Brenken
7cfb0f4657
banip: fix housekeeping
* fix whitelist housekeeping if you switch between normal- and
  'whitelist only' mode

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-04-23 15:03:53 +02:00
Dirk Brenken
515397b009
banip: update to 0.7.7
* add a "whitelist only" mode, this option allows to restrict Internet
  access from/to a small number of secure websites/IPs, and block access
  from/to the rest of the Internet.

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-04-21 21:13:36 +02:00
Dirk Brenken
86a20c7955
banip: bugfix 0.7.6-2
* fix housekeeping of external list sources

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-04-03 19:16:39 +02:00
Dirk Brenken
1235acdde6
banip: update to 0.7.6
* rework the central iptables function to significantly
  reduce the code complexity and the overall number of iptables calls
* check early and only once in the chain for ctstate NEW and
  return otherwise (thanks @ldir-EDB0)
* made the whitelist ordering within the chain more flexible

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-03-28 17:07:28 +02:00
Dirk Brenken
fb4bfd259d
banip: update to 0.7.5-4
* fix another IPv4/IPv6 related iptables chain creation problem
* fix counter during ipset creation
* fix regex for debug counters
* fix ipset housekeeping for local sources

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-03-26 19:19:57 +01:00
Dirk Brenken
80466dd045
banip: update 0.7.5-3
* fix iptables/chain creation in setups without IPv6 support

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-03-19 20:49:59 +01:00
Dirk Brenken
909a87c2f5
banip: update to 0.7.5-2
* refine the new dns resolving process
* add a caching mechanism for the resolved IPs, the detached name
  lookup takes place only during 'restart' or 'reload' action, 'start'
  and 'refresh' actions are using an auto-generated backup instead.
* update the readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-03-15 20:38:46 +01:00
Dirk Brenken
804249a571
banip: bump to 0.7.5
* black- and whitelist now supporting domain names as well - the
corresponding IPs (IPv4 & IPv6) will be resolved in a detached
background process and added to the IPsets

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-03-14 06:07:07 +01:00
Dirk Brenken
b65353b4f7
banip: update to 0.7.3
* fix search string/pipe preparation for the background service
* fix IPSet maxelem limitation, made it more flexible
* fix potential error during resume action
* add Cisco Talos IP blacklist
* update readme

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-02-20 10:26:16 +01:00
Dirk Brenken
55d663d291
banip: update to 0.7.2
* add scanning for suspicious nginx events
* add a log counter to track the number of the failed requests
  or login repetitions of the same ip in the log before banning,
  defaults are: ssh (3), luci (3), nginx (5)
* optimize the background service handling
* add 'greensnow' as a new source
* update readme and LuCI frontend regarding the new log count options

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-02-17 21:24:44 +01:00
Dirk Brenken
e461c5e88c
banip: bugfix
* fix a stale pid file during package update

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-02-12 20:44:11 +01:00
Dirk Brenken
34d5fcb109
banip: release 0.7.1
* add 'ban_extrasources' to handle banIP-unrelated sets for reporting
  and queries
* add set timeouts for local sources (maclist, whitelist, blacklist)

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-02-07 08:30:54 +01:00
Dirk Brenken
cadaedbfb2
banip: release 0.7.0
* major rewrite
* add support for multiple chains
* add mac whitelisting
* add support for multiple ssh daemons in parallel
* add an ipset report engine
* add mail notifications
* add suspend/resume functions
* add a cron wrapper to set an ipset related auto-timer for
  automatic blocklist updates
* add a list wrapper to add/remove blocklist sources
* add 19.x and Turris OS 5.x compatibility code
* sources stored in an external compressed json file
  (/etc/banip/banip.sources.gz)
* change Country/ASN download sources (faster/more reliable)
* fix DHCPv6/icmpv6 issues

Signed-off-by: Dirk Brenken <dev@brenken.org>
2021-02-04 21:18:02 +01:00
Dirk Brenken
33ed1eff57
banip: DHCPv6 bugfix
* ignore local DHCPv6 related and local icmpv6 traffic in banIP chain

Signed-off-by: Dirk Brenken <dev@brenken.org>
2020-12-30 20:02:40 +01:00
Javier Marcet
a627e1f6c7 banip: removed logd check since logd dep has been dropped
Signed-off-by: Javier Marcet <javier@marcet.info>
2020-11-10 08:34:56 +01:00
Dirk Brenken
14a6971589 banip: adapt openwrt rc.common changes
* since openwrt master has merged the depending P/R, the old
extra_help/extra_commands syntax is no longer working, see #13798 for
reference

* removed logd dependency, see #13820 for reference

Signed-off-by: Dirk Brenken <dev@brenken.org>
2020-11-03 19:44:22 +01:00
Richard Gering
29a4f8bbb7 banip: Added packet logging feature. Resolved shellcheck warnings.
Signed-off-by: Richard Gering <rg4github@dutchies.us>
2020-10-24 16:20:21 -07:00
Dirk Brenken
e97f350a00
banip: update 0.3.11
* fix ssh daemon autodetection
* fix 'sshd' logfile parsing

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-30 19:31:14 +01:00
Dirk Brenken
de149441a4
banip: update 0.3.10
* add missing logd dependency
* check if logd is enabled during runtime
* some more init tweaks

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-15 16:19:40 +01:00
Dirk Brenken
e38810f38e
banip: update 0.3.9
* fix 'enabled' service check

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-10 18:55:21 +01:00
Dirk Brenken
0dee2a92de
banIP: update 0.3.8
* limit firewall hotplug trigger to certain wan 'INTERFACE' as well,
  to prevent possible race conditions during boot

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-09 06:40:40 +01:00
Dirk Brenken
49b43b81e8
banip: update 0.3.7
* fix a logical glitch in the hotplug event handler
* properly handle fatal iptables errors - even in subshells

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-08 18:40:30 +01:00
Dirk Brenken
72fba3a17b
banip: update 0.3.6
* more startup tweaks
* re-use f_log function in helper scripts
* small fixes / polish up for forthcoming 19.07 release

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-06 20:45:20 +01:00
Dirk Brenken
fcea2f75c3
banip: update 0.3.5
* fix race condition in download utility detection during boot
* fix multiple possible bugs in ipset creation
* prevent parallel service starts
* refine service trigger handling
* add ssh daemon auto detection
* print to stdout if 'logger' is not available

Signed-off-by: Dirk Brenken <dev@brenken.org>
2019-11-03 16:44:22 +01:00