import os SKIP_BACKUP_PREFIXES = ( "redirectlog", "stats:ip", "stats:user_agent", "stats:referrer", "stats:host:", "sequence:", # per-IP sekwencje żądań (ltrim, ale bez TTL) "requests:", # per-IP ostatnie requesty (ltrim, ale bez TTL) ) CONFIG = { "basic_auth": { "username": "admin", "password": "admin" }, "api_keys": { "default": "d844X5w4GJ7X29tvp3bQ48" }, "api_trusted_networks": [ "127.0.0.1/32", "::1/128", "10.87.0.0/16", "172.16.0.0/24" ], "trusted_proxies": ["127.0.0.1", "::1"], "sqlite_db": os.path.join(os.path.dirname(__file__), "redis_backup.sqlite3"), "webserver_bin": "/usr/sbin/angie", "log_files": [ "/var/log/angie/unitraklub.pl_access.log", "/var/log/angie/unitra.eu.org_access.log", "/var/log/angie/unitrafan.pl_access.log", ], "redis_host": "localhost", "redis_port": 6379, "redis_db": 8, "thresholds": { "requests": 25000, "errors": 10, "success_requests": 20000, "error_codes": [404, 500, 410], "requests_time_window": 3600, "ban_duration": 15552000, "request_size": 256000000, }, "deny_file": "/etc/angie/conf.d/deny_auto.conf", #'deny_file': 'deny_auto.conf', "geoip_db": "GeoIP/GeoLite2-City.mmdb", "api_port": 5002, "prometheus_port": 9502, "pushover": { "token": "afh4yqrybtf7jnznyapq2bs1wcdmiq", "user_key": "u629MYggcYdRs6UM3TdYJviHWmcdKe", "enabled": True, }, "whitelist_endpoints": [ "/customerror/404", "/block_refresh/quicktabs/3", "/block_refresh/block/10", "/block_refresh/views/apk_user_tracker_page-block_1", "/klubowyczat/includes/json/receive/receive_core.php", "/klubowyczat/includes/json/receive/receive_buddylist.php", ], "notification_batching": { "enabled": True, "batch_window": 43200, # X minut w sekundach "threshold": 25, # minimum banów do wysłania powiadomienia "max_window": 21600, # maksymalny czas oczekiwania "summary_limit": 10, # ile najczęstszych IP pokazać w podsumowaniu }, "attack_patterns": { "path_traversal": [ r"\.\./", r"\.\.\\", r"%2e%2e%2f", # ../ r"%2e%2e%5c", # ..\ r"%252e%252e%252f", # podwójnie kodowane ../ r"%c0%ae%c0%ae%c0%af", # UTF-8 overlong ../ r"%uff0e%uff0e%u2215", # Unicode fullwidth r"/etc/passwd", r"/etc/shadow", r"/proc/self/environ", r"c:\\windows\\system32", r"c:\\boot\\.ini", r"web\.config", r"\.\./\.\./", # ../../ r"\\..\\", # UNC style ], "command_injection": [ r";\s*cat\s+/etc/passwd", r";\s*ls\s+", r";\s*id\s*;", r";\s*whoami\s*;", r"&&\s*cat\s+", r"\|\s*cat\s+", r"`cat\s+/etc/passwd`", r"\$\(cat\s+/etc/passwd\)", r";\s*wget\s+", r";\s*curl\s+", r";\s*nc\s+", r";\s*bash\s*;", ], "nosql_injection": [ r"\$ne:", r"\$gt:", r"\$lt:", r"\$where:", r"\$regex:", r"\$exists:", r'{"username":\s*{"?\$ne', r'{"password":\s*{"?\$ne', r";\s*db\.dropDatabase\(\)", r"MapReduce", r"\$eval:", ], "ldap_injection": [ r"\*\)\(cn=\*", r"\)\(\|", r"\(\|\(", r"\)\(uid=\*", r"\(\&\(", r"admin\)\(\|", r"\*\)\(userPassword=\*", r"\(\!\(", r"\)%00", ], "xxe": [ r"", r"\{\{.*?\.\_\_class\_\_.*?\}\}", ], "csrf": [ r'