Sorry, aber natd (portforwarding) problem

daiv

AgainstAllAuthority
Habe diese Anleitung von asg mehr oder weniger 1:1 übernommen:

http://www.bsdforen.de/showthread.php?t=148&highlight=ipfw+howto

natürlich interfaces angepasst etc.

ich habe auch die jail anleitung von asg genutzt. allerdings leitet mein rechner keine anfragen auf die jails weiter. die jails selbst funktionieren. auch der apache läuft in der jail (wenn ich auf der jail localhost öffne). mysql wird auch nicht weitergeiltet der ebenfalls in ner jail sitzt.

ich habe jetzt schon wirklich alle themen im forum gelesen die mit natd, nat oder was weiß ich zu tun haben. hab schon augen weh. ich kriegs nicht gebacken :_(

hier meine natd.conf

redirect_port tcp 192.168.0.201:80 80
redirect_port udp 192.168.0.201:80 80
redirect_port tcp 192.168.0.202:3306 3306
redirect_port udp 192.168.0.202:3306 3306
redirect_port tcp 192.168.0.203:25 25
redirect_port udp 192.168.0.203:25 25
redirect_port tcp 192.168.0.203:109 109
redirect_port udp 192.168.0.203:109 109
redirect_port tcp 192.168.0.203:110 110
redirect_port udp 192.168.0.203:110 110
redirect_port tcp 192.168.0.204:6667 6667
redirect_port udp 192.168.0.204:6667 6667
redirect_port tcp 192.168.0.204:6666 6666
redirect_port udp 192.168.0.204:6666 6666

vielleicht kann mir einer helfen, obwohl ich beim lesen der weiteren themen gesehen habe, dass dies nicht besonders einfaches problem ist.
 
also wenn ich das richtig verstanden habe geht alles blos die NAT nicht..
hast du eine entsprechende regel im IPFW drinne?
z.B. "${fw} divert 8668 ip from any to any via tun0"
 
natd auch in der /etc/rc.conf eingetragen?
Code:
natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic -f /etc/firewall/natd.conf"
Auf dem Hostsystem rennt kein Prozess der sich auf die Ports stürzt (netstat)?
 
ja habe das in der rc.conf stehen.
nein, kein prozess aufm hostsystem, aber auch mysql geht zb in der jail nicht. er leitet einfach die ports nicht weiter. ich habe auch schon nen portscan auf das hostsystem gemacht und da zeigt er auch keinen offenen port 80 an. firewall habe ich auch schon auf "OPEN" gehabt.

ich habe auch schon versucht statt dem tun0 meine netzwerkkarte für dsl anzugeben. das einzige was da passiert ist, war dass die jail beim start von apache sehr langsam war.
 
Zuletzt bearbeitet:
ich habe jetzt auch mal auf meinen client umgeleitet. also keine jail sondern ein anderer rechner im netzwerk. geht ebenfalls nicht.
 
spielt die anordnung in der rc.conf eine rolle? also was oben steht zuerst oder so?
 
hier bitte
00010 divert 8668 ip from any to any via tun0
00110 deny log logamount 100 tcp from any to any 6000 in recv tun0
00210 allow ip from any to any via lo0
00310 allow ip from any to any via rl0
00410 allow tcp from any to any out xmit tun0 setup
00510 allow tcp from any to any via tun0 established
00610 reset log logamount 100 tcp from any to any 113 in recv tun0
00710 allow udp from any to 62.27.27.62 53 out xmit tun0
00810 allow udp from any to 194.25.2.129 53 out xmit tun0
00910 allow udp from any to 217.5.99.105 53 out xmit tun0
01010 allow tcp from any to 62.27.27.62 53 out xmit tun0
01110 allow tcp from any to 194.25.2.129 53 out xmit tun0
01210 allow tcp from any to 217.5.99.105 53 out xmit tun0
01310 allow udp from 62.27.27.62 53 to any in recv tun0
01410 allow udp from 194.25.2.129 53 to any in recv tun0
01510 allow udp from 217.5.99.105 53 to any in recv tun0
01610 allow tcp from 62.27.27.62 53 to any in recv tun0
01710 allow tcp from 194.25.2.129 53 to any in recv tun0
01810 allow tcp from 217.5.99.105 53 to any in recv tun0
01910 allow log logamount 100 icmp from any to any in recv tun0 icmptype 3
02010 allow log logamount 100 icmp from any to any in recv tun0 icmptype 8
02110 allow icmp from any to any
02210 deny log logamount 100 tcp from any to any 0-1000 in recv tun0 setup
02310 deny log logamount 100 tcp from any to any 2049 in recv tun0 setup
02410 deny log logamount 100 tcp from any to any 12345 in recv tun0
02510 deny log logamount 100 tcp from any to any 20034 in recv tun0
02610 deny ip from any to any
65535 deny ip from any to any
 
IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to deny, logging limited to 100 packets/entry by default

das steht übrigens noch da wenn ich dmesg mach.

bedeutet das irgendetwas?
 
AAH
ich glaub ich habs.

also folgendes: wenn ich jetzt von einem client ausm netzwerk auf meine externe ip connecte, geht nix. wahrscheinlich weil er eben die verbindung direkt macht. also nicht über die externe ip und da als interface tun0 angegeben wurde, muss es ja so laufen.
ich habe nämlich mal bei nem proxy im internet die ip angegeben und promt gings.

kann ich jetzt 2 interfaces für nat eintragen? so dass ich auch vom client aus drauf zugreifen kann?
 
Hallo daiv,

geh doch mal systematisch vor:
  • Läuft der natd überhaupt (als root-User ps -ax | grep natd)
  • Hast Du das "gateway" eingeschaltet
  • Öffne Deine firewall total und teste anschließend
  • Anschließend Regel für Regel einbauen und testen
  • Hast Du die Jails richtig gestartet (jail ... /bin/sh /etc/rc)

Sonst fällt mir nix mehr ein :cool:

Grüße

Jürgen
 
hi juedan, und danke für deine bemühungen.

ps -ax | grep natd gibt das:

101 ?? Ss 0:22.28 /sbin/natd -f /etc/firewall/natd.conf -n tun0

gateway läuft denke ich auch. in der rc.conf steht das:

gateway_enable="YES"

firewall habe ich auch so geöffnet auszug aus der rc.conf:

# Firewall config
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="OPEN"
firewall_logging="YES"

jail starte ich mit:

jail /usr/jail/www jailname 192.168.0.201 /bin/sh /etc/rc

wenns irgend etwas bringt kann ich auch die volle rc.conf oder was ihr auch immer braucht geben. ich habe auch schon das weiterleiten auf einen client versucht. das geht auch nicht. also liegt es wohl auch nicht an den jails :_(

ich kann bald echt nimma
 
das problem ist nach wie vor, dass ich von nem anderen host aus die seite anzeigen lassen kann (wenn die firewall aus ist), allerdings kann ich von meinem netzwerk hier, nicht auf die seite.
wahrscheinlich weil diese anfragen nicht über tun0 gehen? aber ich kann ja nur ein interface mit nat benutzen, oder?
 
daiv schrieb:
das problem ist nach wie vor, dass ich von nem anderen host aus die seite anzeigen lassen kann (wenn die firewall aus ist), allerdings kann ich von meinem netzwerk hier, nicht auf die seite.
wahrscheinlich weil diese anfragen nicht über tun0 gehen? aber ich kann ja nur ein interface mit nat benutzen, oder?

Bau doch mal folgende Regel ein:
Code:
${fwcmd} add allow tcp from any to any 80 setup

Viele Grüße

Jürgen
 
diese regel ist bereits drin :_(
von außen kommt ja auch dran. nur ich von intern nicht.
 
Selbiges hier

Hallo,

Ich habe wohl irgendwie dasselbe Problem. :rolleyes:

Auf dem Gateway (192.168.1.1) laufen Jails (192.168.1.xx - z.B. Apache 192.168.1.10).

NATD läuft.
Ports sind redirected.

Vom LAN (192.168.1.2xx) komme ich ins Internet.
Von der Apache-Jail aus ebenfalls.
Per SSH komme ich logischerweise direkt vom LAN auf die Jails.

Auf den Apache komme ich vom LAN allerdings nicht direkt, sondern nur über einen Proxy (z.B. über http://anonymouse.ws).
Ohne das die LAN-Anfrage über tun0 läuft geht anscheinend nix.
Ein http://192.168.1.10 (optional mit Port 80) geht ebenfalls nicht aus dem LAN.

Kann man dies irgendwie ändern, so dass ich auch vom LAN aus direkt auf den Apache in der Jail komme? ;)

Vielen dank i.V.
Quasar
 
daiv,

verstehe ich das richtig, dass Du aus Deinem internen Netz mittels der public IP Deines Routers versuchst auf den internen Webserver zu kommen?

Wenn ja, dann handelt es hier um das klassische NAT Reflection Problem, welches man am saubersten löst indem man den/die betreffende Server in ein separates lokales Subnetz hängt.
Es geht aber auch mit entsprechenden Rules.
Für OpenBSD: http://www.openbsd.org/faq/pf/rdr.html#reflect

Die Regeln sollten aber auch unter FreeBSD mit ipfw entsprechend nachempfunden werden können.

Wenn es das nicht war und ich Dich nicht richtig verstanden habe, dann ignoriere bitte diesen Post. :)

P.S. Mit jails hat Dein Problem und das von Quasar jedenfalls nix zu tun.
 
NAT-Problem

"Embedded BSDler" hat meines erachtens Recht und der Weg über die pf-Firewall aus OpenBSD wird wahrscheinlich am elegantesten sein (wird ab 5.3 eh bei FBSD dabei sein).
Bei IPFW musst du im Prinzip darauf achten, dass die Clients aus dem internen Netz kein NAT im Sinne eines NAT-Router abbekommen, sondern nur den redirect); ob das mit IPFW/NATD überhaupt geht, weiss ich leider nicht.

Vielleicht nach der divert-Rule noch einige FORWARD-Rules für das interne Netzt?
 
Embedded BSDler und tmueko,

echt nett von euch. aber ich habe 4.10 stable. da gibts meineswissens nach kein pf. korrigiert mich wenn ich falsch liege.

mit dem anderen subnetz: das wäre alles? ich kanns jetzt hier zwar nicht testen, aber heute abend kann ichs mal ausprobieren. wie realisiere ich es am besten? an welche ipaddy vergabe hast du da gedacht?

vielen dank

(ich muss mich an dieser stelle auch nochmal bei juedan bedanken, der mir über email geholfen hat, dass ich mein problem wenigstens mit dem proxy lösen kann und meine jails richtig benutzen kann! VIELEN DANK!!!!!!!)
 
daiv,

pf gibt es bei FreeBSD auch über die ports. Du musst aber nicht unbedingt pf benutzen, sondern kannst auch versuchen es mittels ipfw/natd zu konfigurieren. Da es sich hierbei nur um eine Redirection und zwei NAT Regeln (auf dem internen Interface!) handelt sollte es eigentlich auch mit ipfw/natd möglich sein. Einfach mal ausprobieren.
Für das zweite lokale Subnetz benötigst Du eine weitere Netzwerkkarte an Deiner Firewall (insgesamt dann also drei). Eines ist dann das sog. WAN Interface zum Internet raus, das zweite ist dann z.B. LAN1 zum ersten lokalen Subnetz und die dritte LAN2 zum zweiten lokalen Subnetz.
Die IP Adressen im zweiten lokalen Subnetz kannst Du frei bestimmen wie im ersten auch. Da Du momentan wahrscheinlich schon ein 192.168.0.0/24 Subnetz benutzt kannst Du ja z.B. einfach das 192.168.1.0/24 Subnetz benutzen. Aber es steht Dir frei das selbst zu entscheiden. Es müssen dann halt nur die Regeln entsprechend angepasst werden.
 
zum glück habe ich noch eine netzwerkkarte rumliegen. also zwei sind ja natürlich schon drin. 1internet, 1 netzwerk. also hau ich mir noch eine extra für (alle) jails rein?

also zb das 192.168.1.0/24 subnetz für die jails (4 stück) (zb) netzwerkkarte rl0
und zb das 192.168.0.0/24 subnetz für den "host"/"wirt" (zb) netzwerkkarte rl1

und natürlich für dsl ne netzwerkkarte (zb) rl2

wäre das deiner meinung nach so ok?


was ich dann doch noch nicht so ganz verstehe ist: das nat interface ist doch tun0, also dsl bzw ppp oder wie auch immer. ich komme also wenn ich mit meinem heimnetzwerk auf die seite zugreife nicht über tun0 "rein" sondern über ne interne netzwerkkarte (in diesem fall rl1 oder rl0 rein. dann geht doch das wieder nicht, weil er doch nur anfragen auf tun0 weiterleitet?!
ich weiß nicht ob ich jetzt müll rede, korrigiere mich bitte wenns falsch ist.
 
Zurück
Oben