Hallo Firewallspezialisten,
ich brauche euren Rat.
Ich habe mir einen alten Rechner als Router (Linux, Debian 3.0) eingerichtet. Über diesen Router baue ich eine Dial-Verbindnung zu meinem Provider auf. So das ich von einem Client (meines lokalen Netzes) über diesen Router eine Verbindung zum Internet aufbauen kann.
Hinter meinem Router habe ich einen Apache-Webserver(mit Dyndns) eingerichtet. Von draußen ist es ohne Probleme möglich auf die Webseiten meines Webservers zuzugreifen.
Dieser Webserver ist NOCH!!! WindowsXP. Werde diesen Webserver später auf einem Linux-Rechner umziehen lassen.
Alle anderen FORWARD von außen nach innen sind geblockt. Habe das über security.symantec.com
scan.sygate.com prüfen lassen. Ob man sich darauf verlassen kann weiß ich leider nicht.
Die FORWARD von innen nach außen zu den Ports „21, 25, 53, 80, 110“ sind geöffnet.
Jetzt zu meinem Problem.
Ich möchte innerhalb meines localen Netzes AUCH auf meinem Webserver zugreifen können. Wenn ich die locale IP-Adresse eingebe, ist dies auch möglich. Aber wenn ich die Web-Adresse eingebe leider nicht. Auch wenn ich die öffentliche IP-Adresse im Browser eingebe.
Das ist mein Host_FORWARDING für DNAT
$IPTABLES -t nat -A PREROUTING -i $EXT -p tcp --dport 80 -j DNAT --to 192.168.1.3:80
$IPTABLES -A FORWARD -i $EXT -o $INT -p tcp --sport $p_high -d 192.168.1.3 --dport 80 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -i $EXT -o $INT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INT -o $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT
Firewalleinstellungen
Hallo,
entweder du benutzt externe (im Internet stehende) Proxies, oder du schießt dir die Firewall löchrig indem du interne Ip Adressen von extern zugreifen lasst. Wobei letzteres eher nich anzuraten ist, da man dadurch unter Umständen (z.B. wenn der Angreifer beim gleichen Provider und im gleichen IP Segment sitzt) interne Berechtigungen aber von extern erlangen kann!
VORSICHT: Mit dieser Regel werden Ausnahmslos alle Ports von extern nach innen duch gelassen, wenn es auf der externen NIC in der INPUT Chain nicht geblock wird!
entweder du benutzt externe (im Internet stehende) Proxies, oder du schießt dir die Firewall löchrig indem du interne Ip Adressen von extern zugreifen lasst. Wobei letzteres eher nich anzuraten ist, da man dadurch unter Umständen (z.B. wenn der Angreifer beim gleichen Provider und im gleichen IP Segment sitzt) interne Berechtigungen aber von extern erlangen kann!
VORSICHT: Mit dieser Regel werden Ausnahmslos alle Ports von extern nach innen duch gelassen, wenn es auf der externen NIC in der INPUT Chain nicht geblock wird!
Ciao, Hendri$IPTABLES -A FORWARD -i $EXT -o $INT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Die Sache ist eigentlich ganz einfach. Wenn Du aus Deinem internen Netz über die öffentliche IP auf Deinen Webserver zugreifen willst, dann kommt Dein Request beim Router nicht an der externen, sondern an der internen Netzwerkkarte an.
Deine Regel leitet aber nur Pakete von der externen Karte an den Webserver weiter:
Versuchs stattdessen mal mit wobei EXT_IP auf Deine öffentliche IP gesetzt werden müßte.
Alternativ wäre auch denkbar:
Das leitet aber alle Zugriffe auf Port 80 Deines Routers an den Webserver weiter, unabhängig davon, ob diese Zugriffe über die interne oder die externe IP erfolgen.
Wofür soll eigentlich diese Regel gut sein?
Deine Regel leitet aber nur Pakete von der externen Karte an den Webserver weiter:
Code: Alles auswählen
$IPTABLES -t nat -A PREROUTING -i $EXT -p tcp --dport 80 -j DNAT --to 192.168.1.3:80
Code: Alles auswählen
$IPTABLES -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 80 -j DNAT --to 192.168.1.3:80
Alternativ wäre auch denkbar:
Code: Alles auswählen
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.3:80
Wofür soll eigentlich diese Regel gut sein?
Code: Alles auswählen
$IPTABLES -A FORWARD -i $EXT -o $INT -p tcp --sport $p_high -d 192.168.1.3 --dport 80 -m state --state NEW -j ACCEPT