This commit is contained in:
Mateusz Gruszczyński
2025-10-28 21:27:10 +01:00
commit 7b41672d05
14 changed files with 1253 additions and 0 deletions

63
backends/base.py Normal file
View File

@@ -0,0 +1,63 @@
"""
Bazowa klasa dla backendów firewall
"""
import logging
class FirewallBackend:
"""Bazowa klasa dla backendów firewall"""
def __init__(self, config):
"""
Args:
config: ConfigParser object z konfiguracją
"""
self.config = config
self.logger = logging.getLogger(self.__class__.__name__)
def ban_ip(self, ip, duration):
"""
Banuje IP na określony czas
Args:
ip: Adres IP do zbanowania
duration: Czas bana w sekundach
Returns:
bool: True jeśli ban się powiódł
"""
raise NotImplementedError("Subclasses must implement ban_ip()")
def unban_ip(self, ip):
"""
Usuwa ban dla IP
Args:
ip: Adres IP do odbanowania
Returns:
bool: True jeśli odbanowanie się powiodło
"""
raise NotImplementedError("Subclasses must implement unban_ip()")
def is_banned(self, ip):
"""
Sprawdza czy IP jest zbanowany
Args:
ip: Adres IP do sprawdzenia
Returns:
bool: True jeśli IP jest zbanowany
"""
raise NotImplementedError("Subclasses must implement is_banned()")
def test_availability(self):
"""
Sprawdza czy backend jest dostępny w systemie
Returns:
bool: True jeśli backend jest dostępny
"""
return True