PF - port átírányítás

Fórumok

Sziasztok!

Esetleg valaki tudna segíteni, hogy az alábbi egyszerű pf.conf miért nem működik? (valami alapvető dolgot hagyhatok ki, és FreeBSD-n próbálom)

set skip on lo0

rdr on re0 inet proto tcp from any to 192.168.4.200 port 80 -> 127.0.0.1 port 8080

block in all

pass in on re0 proto tcp to port {22, 80}
pass out all

Egy shared ip-s jail-ben fut egy traefik a 8080-as porton. Ha a block-ot kiveszem, akkor szépen elérhető.

Át akarom irányítani a 80-as portot a 127.0.0.1:8080-ra. Ha a block-ot kiveszem, akkor az átirányítás működik. Az SSH  működik.

Egyéb kapcsolódó beállítások:

Az rc.conf-ból:

ifconfig_re0="inet 192.168.4.200 netmask 255.255.255.0"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm re0 up"

A sysctl.conf-ból:

net.inet.ip.forwarding=1       # Enable IP forwarding between interfaces
net.link.bridge.pfil_onlyip=0  # Only pass IP packets when pfil is enabled
net.link.bridge.pfil_bridge=0  # Packet filter on the bridge interface
net.link.bridge.pfil_member=0  # Packet filter on the member interface

 

A másik kérdés, hogy vnet-es jail-ekre sem működik, tehát ez pl (a 192.168.4.206-os gép egy vnet-es jail ami a 192.168.4.200-as host-on fut):

rdr on re0 inet proto tcp from any to 192.168.4.200 port 80 -> 192.168.4.206 port 8080

 

A cél: Hobbi projekt, plex, unifi controller, adguard, stb... fut jail-ekben. + egy samba a host gépen.

Csak azokat a portokat szeretném nyitva tartani, amiket el kell érni kívülről (samba, ssh, stb..), legyen rendesen beállítva.

A többit, az egyes webfelületek elérését Traefik segítségével szeretném megoldani, reverse proxy-val, https-sel.

Jelenleg vnet-es jail-ekben fut minden, de a traefik-et már átraktam shared ip-s jail-be, aminek a 127.0.0.1-es IP címet adtam meg:

iocage set vnet=off ip4_addr="lo0|127.0.0.1" traefik

Ez működik a host gépről (és átirányítással a http://192.168.4.200/dashboard is kívülről, ha nincs bent a block in all):

# curl 127.0.0.1:8080/dashboard
<!DOCTYPE html><html><head><title>Traefik</title> stb...

Köszönöm előre is.

Hozzászólások

Nagyon régen pf-eztem utoljára, de emlékeim szerint az rdr csak dstnat, attól még a(z átcímzett) csomag nincs beengedve. Vagy rdr pass, vagy rdr és egy külön pass 127.0.0.1:8080 kellene.

Igen, működik! Köszönöm szépen! :)

set skip on lo0

rdr pass on re0 inet proto tcp from any to 192.168.4.200 port 80 -> 127.0.0.1 po
rt 8080

block in all

pass in on re0 proto tcp to port {22, 80}
pass out all

Ezzel több órát töltöttem, ez hiányzott. :) Most ismerkedek a pf-fel, nem tudtam, hogy a pass-t külön meg kell adni.

Szerkesztve: 2024. 10. 20., v – 13:58

A vnet jail-ekre is működik a port átirányítás, ha ezeket átállítom 1-re.

net.link.bridge.pfil_bridge=0  # Packet filter on the bridge interface
net.link.bridge.pfil_member=0  # Packet filter on the member interface