Erstellen einer IP-Whitelist für iptables

Erstellen einer IP-Whitelist für iptables

Ich verwende ein Mobilfunkmodem/einen Mobilfunkrouter mit iptables. Es gibt auch eine klobige Web-Benutzeroberfläche, die einfache Anpassungen ermöglicht, wie z. B. das Einschalten von WAN ICMP/HTTPS/SSH. Ich möchte diese Ports natürlich nicht weit oben und öffentlich zugänglich haben. Aber ich hätte gerne Fernverwaltungszugriff auf dieses Gerät von einer vorgegebenen Whitelist von Adressen aus. Es gibt möglicherweise bis zu 10 Adressen, und einige davon sind IP-Bereiche/Subnetze. Ich habe dies mit einer einzelnen Adresse mit einer Regel wie dieser getestet

-A HTTPS_WAN_INPUT -i ppp0 -s x.x.x.x -p tcp -m tcp --dport 443 -j ACCEPT

Aber die Aussicht, solche Regeln zehnmal und für jeden Port/jedes Protokoll zu schreiben, erscheint mir umständlich, also schreibe ich, um zu sehen, ob es einen besseren Weg gibt, dies zu tun. Kann ich eine $WHITELIST-Variable erstellen, die alle Adressen enthält, und diese in -s verwenden? Oder kann ich die Whitelist auf etwas weiter oben in der Kette anwenden, beispielsweise auf eine der Richtlinien?

Ich versuche nur herauszufinden, ob es eine elegantere Möglichkeit gibt, den Fernzugriff auf eine Reihe von IPs zu ermöglichen, ohne für jede Regel 10 verschiedene Zeilen zu schreiben.

Antwort1

Sie haben eigentlich nur zwei Optionen (oder eine Kombination) … aber eine ist etwas riskanter als die andere. Denken Sie daran, dass das srcFeld auch Subnetze akzeptiert, z. B. 192.168.1.0/24.

Erste,WennIhr iptables/Kernel ist mit dem Modul erstellt iprange, Sie können es verwenden, um einen IP-Bereich statt nur 1-2 anzugeben... Sie können jedoch keine „Liste“ von IPs bereitstellen. Beispiel:

-A HTTPS_WAN_INPUT -i ppp0 -m iprange --src-range x.x.x.x-y.y.y.y -p tcp -m tcp --dport 443 -j ACCEPT

Zweitens können Sie ein neues zielspezifisches Ziel einrichten, das IPs auf der Whitelist enthält, um alles sauber zu halten. Beispiel:

iptables -N RemoteManagement
iptables -P RemoteManagement DROP
iptables -A -A HTTPS_WAN_INPUT -i ppp0 -p tcp -m tcp --dport 443 -j RemoteManagement

... und für jede IP, die Sie zulassen möchten ...

iptables -I RemoteManagement -s x.x.x.x -j ACCEPT

Dadurch können Sie Ihre Regeln etwas übersichtlicher halten und bei Bedarf einfach IPs löschen/IPs hinzufügen. Wenn Sie das iprangeModul zur Verfügung haben, können Sie natürlich auch Bereiche in der RemoteManagement-Kette angeben. Sie können diese Kette auch in anderen Szenarien wiederverwenden, in denen sie zutrifft.

verwandte Informationen