Von einer Jail ins Internet

SolarCatcher

Well-Known Member
Hallo,

ich habe unter PC-BSD 8.1 mit Warden eine Jail erstellt. Wenn ich ping erlaube, kann ich auch vom Host in die Jail pingen und vom der Jail auf den Host. Aber ich komme von der Jail nicht ins Internet (und nicht einmal auf die IP des DSL-Routers). Auf dem Host tauchen die externe IP des Hosts und die externe IP der Jail im externen IF auf (in diesem Fall wlan0) und alles sieht schön aus.

Muss ich pf.conf anpassen und NAT oder RDR Rules zur Jail einführen...?

Falls jemand die Antwort hat, wäre das vielleicht auch einmal ein Howto wert, denn es gab im Forum schon mehrere Anfragen dazu, aber soweit ich sehen konnte, nie eine Lösung, z.B. hier und hier.

Wie immer bin ich für jegliche Hinweise sehr dankbar!
SolarCatcher
 
Ein Alias hast du auf dem Interface des Hosts also eingerichtet?

Sonst zeig mal dein ifconfig von der Jail, als auch des Hosts. ;)
 
Gerne! Vielen Dank schon einmal!

Also, dann habe ich für den Host:
Code:
em0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
        ether xx:xx:xx:xx:xx:xx
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether ether xx:xx:xx:xx:xx:xx
        ch 1 dma -1
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        lladdr 0.a.e4.6.0.48.20.73.a.2.ff.fe.0.0.0.0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 
        inet6 ::1 prefixlen 128 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
pflog0: flags=0<> metric 0 mtu 33200
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
rum0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 2290
        ether xx:xx:xx:xx:xx:xx
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
        status: associated
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether xx:xx:xx:xx:xx:xx
        inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
        inet 172.16.0.1 netmask 0xffffffff broadcast 172.16.0.1
        media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
        status: associated
        ssid xxx channel 2 (2417 MHz 11g) bssid 00:1d:6a:a4:96:3d
        country US authmode WPA2/802.11i privacy ON deftxkey UNDEF
        AES-CCM 2:128-bit txpower 0 bmiss 7 scanvalid 450 bgscan
        bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
        roaming MANUAL
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet 10.1.1.1 netmask 0xffffff00

Und für die Jail:
Code:
em0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
        ether xx:xx:xx:xx:xx:xx
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether ether xx:xx:xx:xx:xx:xx
        ch 1 dma -1
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        lladdr 0.a.e4.6.0.48.20.73.a.2.ff.fe.0.0.0.0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
pflog0: flags=0<> metric 0 mtu 33200
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
rum0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 2290
        ether xx:xx:xx:xx:xx:xx
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
        status: associated
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether xx:xx:xx:xx:xx:xx
        inet 172.16.0.1 netmask 0xffffffff broadcast 172.16.0.1
        media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
        status: associated
        ssid xxx channel 2 (2417 Mhz 11g) bssid 00:1d:6a:a4:96:3d
        country US authmode WPA2/802.11i privacy ON deftxkey UNDEF
        AES-CCM 2:128-bit txpower 0 bmiss 7 scanvalid 450 bgscan
        bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
        roaming MANUAL
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
 
Also entweder musst du Routen einrichten, oder du gibst der Jail eine IP Adresse aus dem Netz des Routers. Dann sollte es klappen.
 
Hallo,

Muss ich pf.conf anpassen und NAT oder RDR Rules zur Jail einführen...?
Im Forum ist das oder ähnliches zu finden:

Code:
ext_if=ngeth0 #Interface mit offizieller ip
int_ip3=192.168.177.22  #private ip des Jails / Alias / http

svc_port_http=80
svc_port_ftp=21

#nat für Jail
nat on $ext_if from $int_ip3 to any -> ($ext_if)

#Portsforward an Jail
#httpd Jail
rdr on $ext_if proto tcp from any to any port $svc_port_http -> $int_ip3
rdr on $ext_if proto tcp from any to any port 443 -> $int_ip3
rdr on $ext_if proto tcp from any to any port $svc_port_ftp -> $int_ip3

#httpd Jail
pass in on $ext_if inet proto tcp from any to $int_ip3 port $svc_port_http
pass in on $ext_if inet proto tcp from any to $int_ip3 port 443
pass in on $ext_if inet proto tcp from any to $int_ip3 port $svc_port_ftp


Quelle:

http://wiki.bsdforen.de/howto/ezjail
 
Zuletzt bearbeitet:
Edit:
Und wenn kein Dienst in der Jail erreicht (von außen (also Internetz)) werden soll, denn genügt die nat-Regel.
 
Zuletzt bearbeitet:
Vielleicht ist das worauf ich immer reinfalle deine Lösung:
Dir fehlt zusätzlich die /etc/resolv.conf in der Jail.

HTH
 
Vielen Dank für die Tips!

Ich habe verschiedenes ausprobiert und am Ende doch die IP in das Netzwerk des Hosts (und damit des DSL-Routers) verlegt. Damit klappt es nun endlich! Ich vermute, dass es letztlich am Router lag (ein noname-Produkt meines Internet-Anbieters), bei dem ich nur sehr beschränkt was konfigurieren kann... Vermutlich konnte der Anfragen einfach nicht weiterleiten.

Ansonsten muss ich sagen, dass Warden das erstellen und managen einer Jail echt einfach macht - inklusive Netwerk einrichten, /etc/resolv.conf übertragen usw. Kann ich jedem empfehlen, der PC-BSD nutzt.
 
Wenn die IP des Jails nicht aus dem Netz des Hosts/Routers kommt, brauchst Du zum einen die NAT-Regel, und zum anderen muss gateway_enable="YES" in der rc.conf gesetzt sein - sonst forwarded der Kernel keine Pakete zwischen verschiedenen Netzen. Anstelle des rc.conf-Eintrags kannst Du auch händisch die folgenden sysctl-Einstellungen setzen:
Code:
net.inet.ip.forwarding: 1
net.inet.ip.redirect: 1
 
Zurück
Oben