Iptables-Firewall, und jetzt Netzwerkprobleme

Liebe Leute!

Nun, mein lieber Server ist neu installiert und sollte jetzt keine Probleme mehr machen - sollte.
Ich habe mit einem Skript eine iptables-Firewall aufgesetzt (da bin ich leider kein Experte), und nun habe ich drei Fragen:

  1. Wie gefällt Euch die Konfiguration?
  2. Am Ende des Skripts habe ich ein paar Dienste freigeschalten - muss das so kompliziert sein oder gehts auch einfacher?
  3. Alle paar Minuten scheint was schiefzugehen - es gibt keine Netzwerkverbindung mehr zum Server, ca. eine Minute später gehts dann wieder - was kann da sein?

Hier ist das Skript:

#########

Parameter

#########

IPTABLES="/sbin/iptables"
LAN_IF=„eth1“
LAN_IP=„10.0.0.1“
LAN_NET=„10.0.0.0/16“
EXT_IF=„eth0“
EXT_IP=„xxx.xxx.xxx.xxx“ # In Wirklichkeit natürlich anders…

#########

ip_forward aktivieren und alte Regeln löschen

#########

echo 1 > /proc/sys/net/ipv4/ip_forward

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -Z

#########

Policies

#########

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

#########

Loopback

#########

$IPTABLES -A INPUT -i lo -j ACCEPT

#########

NAT

#########

$IPTABLES -t nat -A POSTROUTING -s $LAN_NET -d ! $LAN_NET -o eth0 -j SNAT --to-source $EXT_IP

Wir hatten früher einen anderen Provider, und um nicht alle Maschinen

umstellen zu müssen, werden die Pakete zum DNS umgeleitet

Auch diese Adressen unterliegen der Zensur :wink:

$IPTABLES -t nat -A PREROUTING -d yyy.yyy.yyy.yyy -j DNAT --to-destination zzz.zzz.zzz.zzz
$IPTABLES -t nat -A PREROUTING -d yyy.yyy.yyy.yyz -j DNAT --to-destination zzz.zzz.zzz.zzy

Auf dem Server läuft auch Squid als transparenter Proxy

$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to $LAN_IP:8080
$IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to $LAN_IP:8080
$IPTABLES -t nat -A PREROUTING -p udp --dport 443 -j DNAT --to $LAN_IP:8080

#########

Der interne Input

#########

$IPTABLES -A INPUT -i $LAN_IF -s $LAN_NET -d $LAN_NET -j ACCEPT

#########

Der externe Input

#########

$IPTABLES -A INPUT -i $EXT_IF -s ! $LAN_NET -m state --state ESTABLISHED,RELATED -j ACCEPT

#########

FORWARD - geht das einfacher?

#########

$IPTABLES -A FORWARD -p tcp --dport 80 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -d zzz.zzz.zzz.zzz --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -d zzz.zzz.zzz.zzy --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s zzz.zzz.zzz.zzz --sport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s zzz.zzz.zzz.zzy --sport 53 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 443 -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 443 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 443 -j ACCEPT
$IPTABLES -A FORWARD -p udp --sport 443 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 995 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 995 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 25 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 25 -j ACCEPT

#########

Ping

#########

#iptables -N PING
#iptables -A PING -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
#iptables -A PING -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
#iptables -A PING -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
#iptables -A PING -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
#iptables -A PING -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

#iptables -A INPUT -p icmp -i $EXT_IF -j PING
#iptables -A FORWARD -p icmp -i $EXT_IF -j PING

Vielen herzlichen Dank für Eure Hilfe!

Michael

Ich habe gerade wirklich wenig Lust, fremde Schripte zu debuggen, nur ein paar prima-vista anmerkungen:

Nun, mein lieber Server ist neu installiert und sollte jetzt
keine Probleme mehr machen - sollte.
Ich habe mit einem Skript eine iptables-Firewall aufgesetzt

Was ist denn das Konzept hinter der „Firewall“?

(da bin ich leider kein Experte), un

Und das ist etwas anderes als ein „ich spiele rum-Server?“ Uiuiui!

  1. Alle paar Minuten scheint was schiefzugehen - es gibt keine
    Netzwerkverbindung mehr zum Server, ca. eine Minute später
    gehts dann wieder - was kann da sein?

Schalte halt das Logging ein und sieh’ nach. Wer DROPt hat ohnehin kein Anrecht auf funktionierendes TCP/IP.

EXT_IP=„xxx.xxx.xxx.xxx“ # In Wirklichkeit natürlich anders…

Security by obscurity.

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

Was ist das für ein Quark? Drop ist ein Ärgernis.

Wir hatten früher einen anderen Provider, und um nicht alle

Maschinen

umstellen zu müssen, werden die Pakete zum DNS umgeleitet

Auch diese Adressen unterliegen der Zensur :wink:

Das ist eine wirklich schlechte Idee. Mach einen Caching Nameserver dort hin (nicht Bind, djbdns zum Beipile) und gut is’.

Sebastian

Hi,

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

Was ist das für ein Quark? Drop ist ein Ärgernis.

mal ne dumme Frage, ich bastel auch gerade an meinem Firewallskript rum, was stört dich so am DROP? Das keine ICMP-unreachable Pakete zurückgeschickt werden? Ich hab daheim mein kleines Netzwerk, und da braucht auch keiner genauere Infos rausfinden können, also DROPpe ich alles was nicht reinkommen soll.

Bitte um Erklärung, lass mir ja auch gern neue Sachen beibringen :wink:

Mfg Daniel.at

mal ne dumme Frage, ich bastel auch gerade an meinem
Firewallskript rum, was stört dich so am DROP? Das keine
ICMP-unreachable Pakete zurückgeschickt werden?

Genau das.

Ich hab daheim
mein kleines Netzwerk, und da braucht auch keiner genauere
Infos rausfinden können, also DROPpe ich alles was nicht
reinkommen soll.

Ja, was soll denn schon reinkommen? Entweder gibt es einen Service, der Pakete entgegennimmt und verarbeitet, oder es gibt ein „Conenction refused“-Statement. Oder im Falle von ICMP-Paketen ein Unreachable-Statement. Alles andere ist doch Versteckspielen („Huhu, ich mach Internet, aber kein kann mich sehen“).

Sicherer macht dich das nicht.

Stefan

Ich habe gerade wirklich wenig Lust, fremde Schripte zu
debuggen, nur ein paar prima-vista anmerkungen:

Dafür herzlichen Dank!

Nun, mein lieber Server ist neu installiert und sollte jetzt
keine Probleme mehr machen - sollte.
Ich habe mit einem Skript eine iptables-Firewall aufgesetzt

Was ist denn das Konzept hinter der „Firewall“?

Relativ einfach: alles verboten, ausser WWW, SMTP und POP. Weil Services „für draussen“ gibts nicht.

(da bin ich leider kein Experte), un

Und das ist etwas anderes als ein „ich spiele rum-Server?“
Uiuiui!

Wie gesagt: ich hab ein bissal eine Ahnung, halt net unendlich viel. Der Server ist mir hergestellt worden (und hat damals noch um einiges schlimmer ausgeschaut), und jetzt versuch ich, neben dem Haufen an restlicher Arbeit auch mit Linux ein bisschen was weiter zu bringen. Bitte keine Kritik, dass die Firma dann wen suchen sollte, der sich damit auskennt - ich sitz in einem Entwicklungsland, und da bin ich schon mit dem wenigen was ich weiss einem gottähnlichen Status recht nahe.

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

Was ist das für ein Quark? Drop ist ein Ärgernis.

„Die Policy kann entweder ACCEPT (akzeptieren) oder DROP (verwerfen)sein.“ (packet-filtering-HOWTO).

Ah, jetzt geht mir ein Licht auf, Policy auf ACCEPT, dann akzeptieren, was zum akzeptieren ist, und dann erst alles RETURNen, und somit die Einschränkungen bei der Policy umgehen. Richtig?

Wir hatten früher einen anderen Provider, und um nicht alle

Maschinen

umstellen zu müssen, werden die Pakete zum DNS umgeleitet

Auch diese Adressen unterliegen der Zensur :wink:

Das ist eine wirklich schlechte Idee. Mach einen Caching
Nameserver dort hin (nicht Bind, djbdns zum Beipile) und gut
is’.

OK, ich werds einmal angehen.

Danke aus dem sonnigen Mittelamerika!

Michael

PS: Falls Du mehrere Benachrichtigungen bekommen hast, sorry, an die fehlende Bearbeiten-Funktion muss ich mich erst gewöhnen. Ja, ich weiss, Denken vor Posten :wink:

Andere Frage zu IP-Adressen
Hi!

LAN_NET=„10.0.0.0/16“

Kann mir jemand sagen wie man diese schreibweise interpretiert mit dem /16 ? Ich habe das nun
schon oefters gesehen, kann aber nix damit anfangen.

Vielen Dank
Mip

Hi!

LAN_NET=„10.0.0.0/16“

Kann mir jemand sagen wie man diese schreibweise interpretiert
mit dem /16 ? Ich habe das nun
schon oefters gesehen, kann aber nix damit anfangen.

Die ersten 16 bits der Netzwerkkmaske sind gesetzt. Entspricht also der Netzmaske 255.255.0.0 . /24 ist demnach 255.255.255.0 usw.

Alexander

1 Like

Was ist das für ein Quark? Drop ist ein Ärgernis.

„Die Policy kann entweder ACCEPT (akzeptieren) oder DROP
(verwerfen)sein.“ (packet-filtering-HOWTO).

http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.h…

Gruß,

Sebastian

Ich danke :smile:

Gruss
Mip