Hallo, ich bin leider kein IPTables Profi, habe mir über die Jahre aber ein ganz anständiges Firewall-Skript zusammen gebastelt (meist alles copy&paste und dann angepasst), was ganz gut funktioniert. Seit einiger Zeit setze ich auch die xtables-addons ein um Traffic aus unerwünschten Ländern (China, Taiwan, etc.) komplett zu blocken. Ursprünglich wollte ich auch die USA mit aufnehmen, weil (besonders in den letzten Wochen) hier Spamwellen (Mailserver) einrollen, dass es nicht mehr auszuhalten ist. Das führt leider dazu, dass ich gewisse Dienste die aus Amerika kommen (z.B. Google, Steam, usw.) nicht mehr nutzen kann, sprich ich auch von dort keine Mails mehr bekomme. Also hatte ich mir überlegt eine Whitelist für solche "Dienste" anzulegen. Ist zwar etwas Aufwand, aber wäre es mir wert. Dazu wollte ich einfach ein Textfiles mit IP's in meinen IPTables Script einlesen. Das ganze sieht bisher so aus:
/etc/iptables-ip.whitelist (beispielhaft)
[...] 8.8.8.8 65.126.223.5 195.173.51.226 195.173.52.0/25 [...]
/etc/init.d/firewall (Auszug)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [...] ################ ### Security ### ################ ### Protecting from countries via maxmind geoip using xtables. ## exceptions for blocked countries list here or... ## ...use a File with IP(Un-Block/Allow)-List: while read RANGE; do $IPTABLES -A INPUT -s $RANGE -p tcp --syn -m state --state NEW -j ACCEPT done < /etc/iptables-ip.whitelist ## blocked Countries; use ISO-Country codes (e.g. China=CN,Taiwan=TW,Hungary=HU, etc.) $IPTABLES -A INPUT -m geoip --src-cc DE,US,CN,TW,HU -j DROP [...] |
Die geoip-Zeile alleine hab ich schon ein paar Monate erfolgreich im Einsatz (allerdings ohne DE und US; die hab ich jetzt zum testen hinzugefügt). Der Dreizeiler darüber ist neu.
Zum Testen habe ich nun einmal Deutschland zum blocken mit aufgenommen und in der whitelist-Datei meine Abgehende IP bzw. IP-Subnet hinzugefügt. Soweit ich IPTables verstanden habe, arbeiten diese ja nach dem First-Match-Prinzip, oder? Jedenfalls funktioniert das ganze nicht. Aktiviere ich die Regeln so und starte die firewall neu, reißt bei mir instant die SSH Verbindung ab (was ich auch merkwürdig finde, da doch eigentlich bestehende Verbindungen offen bleiben sollten?) und ich kann den Server nicht mehr erreichen. Btw. falls relevant. Es ist ein Root-Server bei Hetzner.
Deaktiviere ich die geoip-Regel und benutze nur den Dreizeiler für die whitelist zeigt er mir mit 'iptables -L' wunderbar die ganze Latte an erlaubten IP's an. Beides zusammen haut aber wie gesagt leider nicht hin.
Hat jemand eine Idee dazu? Vielleicht auch einen ganz anderen Ansatz um mein Problem zu lösen (noch cooler wäre ja eine kostenlose Whitelist für email-Server)? Vielen Dank und beste Grüße, Christoph
Moderiert von sebix:
Thema in einen passenden Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“) in jedem Forenbereich. Danke.