From 31a9bb446c6fd2e4a5834a6c9f7df4eb5a082f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Peters?= Date: Sat, 17 Feb 2018 08:51:41 +0100 Subject: [PATCH] [Netfilter] Fixes a f2boptions not defined error --- data/Dockerfiles/netfilter/server.py | 41 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/data/Dockerfiles/netfilter/server.py b/data/Dockerfiles/netfilter/server.py index 3b03eb1bb..5bb665471 100644 --- a/data/Dockerfiles/netfilter/server.py +++ b/data/Dockerfiles/netfilter/server.py @@ -25,21 +25,22 @@ RULES[5] = 'SOGo.+ Login from \'([0-9a-f\.:]+)\' for user .+ might not have work RULES[6] = 'mailcow UI: Invalid password for .+ by ([0-9a-f\.:]+)' if not r.get('F2B_OPTIONS'): - f2options = {} - f2options['ban_time'] = int - f2options['max_attempts'] = int - f2options['retry_window'] = int - f2options['netban_ipv4'] = int - f2options['netban_ipv6'] = int - f2options['ban_time'] = r.get('F2B_BAN_TIME') or 1800 - f2options['max_attempts'] = r.get('F2B_MAX_ATTEMPTS') or 10 - f2options['retry_window'] = r.get('F2B_RETRY_WINDOW') or 600 - f2options['netban_ipv4'] = r.get('F2B_NETBAN_IPV4') or 24 - f2options['netban_ipv6'] = r.get('F2B_NETBAN_IPV6') or 64 - r.set('F2B_OPTIONS', json.dumps(f2options, ensure_ascii=False)) + f2boptions = {} + f2boptions['ban_time'] = int + f2boptions['max_attempts'] = int + f2boptions['retry_window'] = int + f2boptions['netban_ipv4'] = int + f2boptions['netban_ipv6'] = int + f2boptions['ban_time'] = r.get('F2B_BAN_TIME') or 1800 + f2boptions['max_attempts'] = r.get('F2B_MAX_ATTEMPTS') or 10 + f2boptions['retry_window'] = r.get('F2B_RETRY_WINDOW') or 600 + f2boptions['netban_ipv4'] = r.get('F2B_NETBAN_IPV4') or 24 + f2boptions['netban_ipv6'] = r.get('F2B_NETBAN_IPV6') or 64 + r.set('F2B_OPTIONS', json.dumps(f2boptions, ensure_ascii=False)) else: try: - f2options = json.loads(r.get('F2B_OPTIONS')) + f2boptions = {} + f2boptions = json.loads(r.get('F2B_OPTIONS')) except ValueError, e: print 'Error loading F2B options: F2B_OPTIONS is not json' raise SystemExit(1) @@ -52,11 +53,11 @@ log = {} quit_now = False def ban(address): - BAN_TIME = int(f2options['ban_time']) - MAX_ATTEMPTS = int(f2options['max_attempts']) - RETRY_WINDOW = int(f2options['retry_window']) - NETBAN_IPV4 = '/' + str(f2options['netban_ipv4']) - NETBAN_IPV6 = '/' + str(f2options['netban_ipv6']) + BAN_TIME = int(f2boptions['ban_time']) + MAX_ATTEMPTS = int(f2boptions['max_attempts']) + RETRY_WINDOW = int(f2boptions['retry_window']) + NETBAN_IPV4 = '/' + str(f2boptions['netban_ipv4']) + NETBAN_IPV6 = '/' + str(f2boptions['netban_ipv6']) WHITELIST = r.hgetall('F2B_WHITELIST') ip = ipaddress.ip_address(address.decode('ascii')) @@ -225,8 +226,8 @@ def snat(snat_target): def autopurge(): while not quit_now: - BAN_TIME = f2options['ban_time'] - MAX_ATTEMPTS = f2options['max_attempts'] + BAN_TIME = f2boptions['ban_time'] + MAX_ATTEMPTS = f2boptions['max_attempts'] QUEUE_UNBAN = r.hgetall('F2B_QUEUE_UNBAN') if QUEUE_UNBAN: for net in QUEUE_UNBAN: