mal wieder natd und ipfw prob.

Marco

Well-Known Member
Hallo

Jetzt hab ich auch mal ein ungeklärtes Problem bezüglich nat und ipfw.
Folgende eigentlich einfache Situation:

3 Rechner im LAN. 192.168.0.2 ist mein Client, 192.168.0.13 mein FreeBSD Router und 192.168.0.1 u.a. der Webserver.

Ich möchte nun das alle http Port 80 Anfragen die beim Router landen, an den Webserver weitergeleitet werden. Sowohl aus dem LAN als natürlich auch aus dem Inet. NATd habe ich soweit eigentlich konfiguriert und meine IPFW Rules auch. PPPoE, IPFW usw. an sich funktionieren so wie so sollen.

Hier die Configdateien:
/etc/rc.conf:
--------------------------
[....]

natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/firewall/natd.conf"
natd_program="/sbin/natd"

gateway_enable="YES"

firewall_enable="YES"
firewall_script="/etc/firewall/fw.rules"

named_enable="YES"
named_flags="-u bind -g bind"

ppp_enable='YES'
ppp_mode='ddial'
ppp_profile='default'

ifconfig_rl0="up"
ifconfig_dc0="inet 192.168.0.13 netmask 255.255.255.0"
hostname="Router.mb-network"
--------------------------

Soweit alles i.O.
/etc/firewall/natd.conf:

--------------------------
redirect_port tcp 192.168.0.1:80 80
redirect_port udp 192.168.0.1:80 80
--------------------------

Nun noch die
/etc/firewall/fw.rules

--------------------------
ipfw add 10 divert natd all from any to any via tun0
ipfw add 20 divert natd all from any to any via dc0

ipfw add allow ip from any to any via lo0

ipfw add allow ip from any to any via dc0

ipfw add allow tcp from any to any out xmit tun0 setup

ipfw add allow tcp from any to any via tun0 established

ipfw add allow icmp from any to any icmptype 3,4
ipfw add allow icmp from any to any out icmptype 8
ipfw add allow icmp from any to any in icmptype 0

ipfw add 65534 allow ip from any to any
--------------------------

Soweit ich das beurteilen kann, hat alles seine Richtigkeit und zumindest im LAN sollte der Zugriff über den Router auf den Webserver kein Problem darstellen. Aber Pustekuchen!
Webserver ist natürlich bei direkt-connect ansprechbar.

Schätze aber trotzdem mal, dass es an den Rules liegt, wobei ich zu 90% sicher bin, dass es funktionieren müsste.

Natürlich habe ich mir diverse Tutorials, Foreneinträge und das FreeBSD Handbuch diesbezüglich durchgelesen, aber trotzdem bin ich zu keiner Lösung gekommen.

Bin für jede Hilfe dankbar.
 
Original geschrieben von Marco

--------------------------
redirect_port tcp 192.168.0.1:80 80
redirect_port udp 192.168.0.1:80 80
--------------------------
/etc/firewall/fw.rules
--------------------------
ipfw add 10 divert natd all from any to any via tun0
ipfw add 20 divert natd all from any to any via dc0

ipfw add allow ip from any to any via lo0

ipfw add allow ip from any to any via dc0

ipfw add allow tcp from any to any out xmit tun0 setup

ipfw add allow tcp from any to any via tun0 established

ipfw add allow icmp from any to any icmptype 3,4
ipfw add allow icmp from any to any out icmptype 8
ipfw add allow icmp from any to any in icmptype 0

ipfw add 65534 allow ip from any to any
--------------------------
Ich glaube, du musst explizit den Traffic von aussen auf die 192.168.0.1:80 erlauben, zumindest mein ich mich an sowas erinnern zu können, hab bloss meinen Router nicht mehr um das zu überprüfen.
Gruß
 
Das hatte ich mir auch schon gedacht und hatte es auch schon explizit erlaubt, nur ging es danach auch nicht, also habe ich die Rules wieder rausgenommen.

Meiner Meinung nach müsste die Regel, dass alles innerhalb des LAN erlaubt ist, genügen.
 
Original geschrieben von Marco
Das hatte ich mir auch schon gedacht und hatte es auch schon explizit erlaubt, nur ging es danach auch nicht, also habe ich die Rules wieder rausgenommen.

Meiner Meinung nach müsste die Regel, dass alles innerhalb des LAN erlaubt ist, genügen.

Sag mal, kann es eventuell sein, dass das ganze schon funktioniert?
Wenn ich von ausserhalb auf deine IP Connecte, kommt eine .htaccess Abfrage, und wenn ich da Abbreche das hier:
401 Unauthorized

Authorization required.



mini_httpd/1.15c 02may2001

Stimmt das so?
 
Ja das stimmt, aber leider auch nur weil im Moment der http-server als router fungiert (fli4l) und somit direkt am netz hängt.

Den FreeBSD hänge ich nur dann direkt ans Netz wenn ich was testen will.
Im Prinzip tut der FreeBSD Router schon das was ich will, aber leider noch nicht 100%ig alles, da ich im Moment an diesem Punkt mit dem NAT hänge.
 
Original geschrieben von Marco
Ja das stimmt, aber leider auch nur weil im Moment der http-server als router fungiert (fli4l) und somit direkt am netz hängt.

Den FreeBSD hänge ich nur dann direkt ans Netz wenn ich was testen will.
Im Prinzip tut der FreeBSD Router schon das was ich will, aber leider noch nicht 100%ig alles, da ich im Moment an diesem Punkt mit dem NAT hänge.
Hmm, naja.
Ich werd einfach nochmal die HDD von meinem Router ausgraben - da ist eine funktionierende Konfiguration drauf.
Gruß
 
würde mich dann auch interessieren

hänge genau am selben problem - port 80 wird einfach nicht auf den webserver durchgeschleift....

von den konfigurationen her hab ich genau grunix anweisungen in seinem howto befolgt
 
Moin.

Irgendwo hapert es noch an mir.
Verstehe ich das Problem nun richtig, von aussen funktioniert NAT von port 80 des Routers auf den internen webserver, ABER von innen könnt ihr nicht über den Router auf den webserver zugreifen?
 
hi,

also bei mir funktioniert der zugriff von aussen nicht
sprich der port 80 wird nicht vom router auf den webserver durchgeschleift

von innen erreich ich unter port 80 des routers nur den webserver des routers selbst (sobald ich den anschmeisse)

z.Z. ist der Freebsd rechner aber wieder abgeschalten bei mir drum kann ich's nicht "vorführen"
 
sorry marco das ich dein thread hier so missbrauche


arghhhh jetzt dreh ich durch
hab gerade von nem freund erfahren das gestern als der freebsd rechner noch lief der zugriff auf den internen webserver doch möglich war

arrrrghhhh
jetzt dreh ich durch

gibts nen unterschied wenn ich von intern auf port 80 auf den router zugreife und wenn ich von extern zugreife?

schleift er das bei einem internen zugriff nicht durch?

... argh

ich glaub mir fällts grad wie schuppen aus den haaren... mal kurz was nachschauen

ok, ich glaub mein problem hat sich erledigt - pure dummheit des anwenders

zur erklärung:
hab das mit der weiterleitung nur intern getestet (kann ja von daheim keinen richtigen externen zugriff durchführen).

und dann hab ich vergessen das ja in der /etc/rc.conf als natd_interface das tun0 eingetragen ist - und wenn ich von intern zugreife benutze ich aber ed0
also wird das durchschleifen des ports wohl eher nicht funktionieren... menno

ich glaub mein problem löst sich dann mit einem
redirect_port tcp 192.168.1.1:80 192.168.1.10:80
 
Zuletzt bearbeitet:
also bei mir funktioniert der zugriff von aussen nicht sprich der port 80 wird nicht vom router auf den webserver durchgeschleift
von innen erreich ich unter port 80 des routers nur den webserver des routers selbst (sobald ich den anschmeisse)

show config.
Poste mal Deine natd.conf und Deine ipfw Rules.

Überprüfe ob auf dem Router nicht ein daemon auf port 80 lauscht, was Dir dann wieder alles zusammenhaut.
 
Original geschrieben von grunix
show config.
Poste mal Deine natd.conf und Deine ipfw Rules.

Überprüfe ob auf dem Router nicht ein daemon auf port 80 lauscht, was Dir dann wieder alles zusammenhaut.

sorry - meine einträge vergessen (siehe meinen letzen post)
hat sich schon erledigt - war pure dummheit (mal wieder) meinerseits
 
Na das ist doch gut, dass hier so langsam Licht ins Dunkle kommt. Ich werde jetzt auch nochmal ein bisschen rumprobieren.
Darauf habe ich garnicht geachtet, dass NATd nur auf tun0 horcht. Dabei hab ich es selber so eingetragen.

Ist auch eine Angabe von mehreren Devices möglich?


Update -- 14:22 --

Also ich hab jetzt mal nen bissel rumprobiert. Es war mir allerdings immernoch nicht möglich das Problem zu lösen. Ich habe NATd jetzt dc0 (meiner LAN-Karte des FreeBSD-Router) zugewiesen. Außerdem habe ich nochmal die Rules überarbeitet und natd auch wirklich über dieses Interface erlaubt.

Ich weiß nicht mehr weiter :/
 
Zuletzt bearbeitet:
also mit einem:

rdr dc0 0/0 port 80 -> xxx.xxx.xxx.xxx port 80 tcp

sollte es eigentlich gewesen sein.

Der Trick beim testen eines Webservers ueber nen z.B. DynDNS Account ist der das Ihr Eure IP anonymisieren müsst.
Eure BSD Kiste verkaspert sich dann mit der externen IP die auf die externe IP zugreifen moechte.

Nehmt zum Webserver testen solcher Dienste wie www.anonymizer.com , einfach die DynDns Adresse eintragen und los gehts.
Test von http ist kostenlos und der Rest kostet Geld ;)
 
Zuletzt bearbeitet:
Original geschrieben von madCode
also mit einem:

rdr dc0 0/0 port 80 -> xxx.xxx.xxx.xxx port 80 tcp

sollte es eigentlich gewesen sein.

Der Trick beim testen eines Webservers ueber nen z.B. DynDNS Account ist der das Ihr Eure IP anonymisieren müsst.
Eure BSD Kiste verkaspert sich dann mit der externen IP die auf die externe IP zugreifen moechte.

Nehmt zum Webserver testen solcher Dienste www.anonymizer.com , einfach die DynDns Adresse eintragen und los gehts.
Test von http ist kostenlos und der Rest kostet Geld ;)
Alternativ: http://validator.w3.org
Reicht auch zum testen ;)
 
Zurück
Oben