Mein Netzwerk ist bis auf einige Websites, die auf der Whitelist stehen, vollständig gesperrt. Dies wird alles über iptables erledigt, was ungefähr so aussieht:
# Allow traffic to google.com
iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p tcp -d 11.12.13.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 11.12.13.0/24 -j ACCEPT
iptables -A zone_lan_forward -p tcp -d 101.102.103.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 101.102.103.0/24 -j ACCEPT
...
Offensichtlich sind diese Adressen hypothetisch, aber Sie bekommen die Idee. Meine Firewall wird enorm. Es wäre viel einfacher zu pflegen, wenn ich das einfach machen könnte:
# Allow traffic to google.com
iptables -A zone_lan_forward -p tcp -d google.com -j ACCEPT
iptables -A zone_lan_forward -p udp -d google.com -j ACCEPT
Ich glaube das ist möglich, da man iptables
sagt:
Die Adresse kann entweder ein Netzwerkname, ein Hostname (bitte beachten Sie, dass die Angabe eines Namens, der mit einer Remote-Abfrage wie DNS aufgelöst werden soll, eine sehr schlechte Idee ist), eine Netzwerk-IP-Adresse (mit / mask) oder eine reine IP-Adresse sein.
Was mich jedoch beunruhigt, ist der Teil, der besagt, dass "es eine wirklich schlechte Idee ist, einen Namen anzugeben, mit dem aufgelöst werden soll ... DNS". Warum ist das eine schlechte Idee? Verlangsamt es nur alles?
Wenn ich wirklich keine Hostnamen in iptables-Regeln verwenden sollte, was soll ich dann tun, um meine Firewall zu vereinfachen?
quelle
Antworten:
Wenn Sie den HTTP-Zugriff blockieren möchten, ist es in der Regel weitaus besser, eine Software einzurichten, die darauf ausgelegt ist, auf dieser Ebene zu filtern (z. B. Squid + Squidquard).
quelle
Wenn Sie in Ihrer Firewall Hostnamen verwenden, ist Ihre Firewall jetzt von DNS abhängig. Dies öffnet die Firewall für eine Reihe von Problemen:
Wenn Sie Hostnamen verwenden und das DNS nicht steuern, steuert eine andere Person effektiv Ihre IPtables-Regeln. Fehler, Irrtümer oder Sicherheitsprobleme werden für Sie zu Problemen.
Das einzige Mal, dass ich gesehen habe, dass Hostnamen gut verwendet werden, sind interne Operationen. Ich habe in einem Büro gearbeitet, in dem IPs und Hostnamen über DHCP zugewiesen wurden. Die Firewalls verwendeten Hostnamen, um Barrieren zwischen verschiedenen Gruppen zu setzen. Da dies alles intern kontrolliert wurde, funktionierte es gut.
quelle
Sie könnten einen Wrapper um iptables wie shorewall verwenden, um die Verwaltung Ihrer Regeln zu vereinfachen.
quelle
Wie die anderen bereits gesagt haben, sollten Sie in iptables-Regeln keine DNS-auflösbaren Namen verwenden. Sie sind ungenau, werden von Dritten kontrolliert und sind in der Regel eine schlechte Sache. Ich möchte auch hinzufügen, dass Ihr DNS zum Zeitpunkt des Starts des iptables-Dienstes möglicherweise ausfällt oder nicht erreichbar ist. In diesem Fall wird die Regel überhaupt nicht hinzugefügt, und es können ganz neue Probleme auftreten (z. B. der Verlust des SSH-Zugriffs nach dem Neustart).
Was Sie tun können, ist:
ipset
s, um Adressen zu gruppieren und von den Regeln zu trennenAuch sagte niemand etwas Schlechtes über Hostnamen, die nicht durch DNS aufgelöst werden (dh in angegeben sind
hosts
. Sie können sie verwenden, wenn Sie wirklich brauchen.quelle
Ich persönlich weise einer IP manuell in / etc / hosts einen Hostnamen zu und verwende ihn dann in iptables.
Auf diese Weise du
quelle