from typing_extensions import override from firewall.fwtype import FWType class Iptables(FWType): @override def getBanlist(self, ips) -> str: """ Generate iptables ban rules from an array of IP addresses. Args: ips: List of IP addresses to ban Returns: String containing iptables commands, one per line """ if not ips: return "" rules = [] chain = "INPUT" target = "DROP" rules.append("#!/bin/bash") rules.append("# iptables ban rules") rules.append("") for ip in ips: ip = ip.strip() # Build the iptables command rule_parts = ["iptables", "-A", chain, "-s", ip] # Add target rule_parts.extend(["-j", target]) rules.append(" ".join(rule_parts)) return "\n".join(rules)