• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

routing und nat probleme

physis

Newbie
hi,

ich bin gerade am einrichten meines Linux Routers und stoss da grade auf ein Problem.

Ich nutze zwar Debian aber iptables sind ja gleich.

hier mal mein Grund gedanke

Router --> 192.168.0.155
4 Clients--> 192.168.0.30-34
wichtig ist eigentlich nur noch dass ich 1. Auf dem Router nen Webserver betreibe.
auf dem einen Client wollt ich jetzt ne Webcam mit streaming betreiben.
Bei der Software kann man den Port definieren wodurch es ja gehen sollte mit nat zu routen (ich hab das mal auf port 81 eingestellt.)

Es funktioniert alles wunderbar! nur wenn ich meinen router aufrufe kommt nur DNS problem

Mein bislang unfähiges script sieht wie folgt aus.

^^snip^^
# Zurücksetzen der Konfiguration
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
# Default-Policies setzen - alles fliegt raus
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Einschalten von ip-Forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
# Vom internen Netz alles erlauben
iptables -A INPUT -i $IFACE_INT -j ACCEPT
# Vom Loopback Alles erlauben
iptables -A INPUT -i $IFACE_LO -j ACCEPT
# Vom Internet: Darf nicht sein hab ich zur sicherheit auskommentiert
#iptables -A INPUT -i $IFACE_EXT -s 192.168.0.0/255.255.255.0 -j DROP
# Vom Internet Erlauben von bereits initialisierten Verbindungen
iptables -A INPUT -i $IFACE_EXT -m state \--state ESTABLISHED,RELATED -j ACCEPT
# SSH und WEBSERVER erlauben
iptables -A INPUT -i $IFACE_EXT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $IFACE_EXT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $IFACE_EXT -p tcp --dport 81 -j ACCEPT
#MASQ ENABLE
iptables -A POSTROUTING -o $IFACE_EXT -t nat -j MASQUERADE

##########
DAS HIER IST WOHL NICHT GANZ KORREKT
###########

iptables -t nat -A PREROUTING -i ppp0 -p TCP --dport 81 -j DNAT --to-destination 192.168.0.31


... logging kommt dann noch


Wenn ich einen Portscan mach erkennt der auf port 81 nichts
das sieht aus, als würde das forwarden verweigert werden, aber wenn ich mir die logs anschau scheint alles zu funktionieren.

Weis jemand von euch vielleicht noch was?

Gruß
Physis :?
 

basman

Member
Du hast die FORWARD-Policy auf DROP, erlaubst aber nirgends explizit für die FORWARD-Chain Pakete aus dem Internet ins LAN. Die Regeln für INPUT greifen also nicht und machen Deine Firewall angreifbar. Denn die von Dir gemeinten Pakete passieren die INPUT-Chain nicht, dafür aber die FORWARD-Chain, wo sie geblockt werden. Pack die INPUT-Regeln also in die FORWARD-Chain und dann sollte es gehen.

Siehe dazu http://hb9zz.ethz.ch/~basman/iptables.pdf
 
OP
P

physis

Newbie
richtig,

Code:
iptables -A INPUT -i ppp0 -p tcp --dport 81 -j ACCEPT

raus und dafür

Code:
iptables -A FORWARD -i ppp0 -p tcp --dport 81 -j ACCEPT

rein.

Dadurch habe ich erreicht, dass meine Firewall von außen den port auf 192.168.0.31 weiterleitet

Inzwischen ist es so, dass wenn ich von intern die ip des routers mit port 81 aufrufe leitet er aber nicht weiter obwohl ich

Code:
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 81 -j DNAT --to-destination 192.168.0.31 

iptables -A FORWARD -i eth0 -p tcp --dport 81 -j ACCEPT

auch noch explizit erlaubt hab.
wobei ich die prerouting zeile vermutlich auch weglassen kann ... aber das hilft auch nicht.

Es sieht so aus als müsse ich den umweg über einen proxy machen, denn dann funktionierts :(

Danke für deine hilfe.
 
Oben