====== FreeBSD - Port-Weiterleitung ====== **//In diesem Beispiel wird der Port// ''192.168.1.1:24'' //(Host) auf den Port// ''192.168.1.200:22'' //(VM) weitergeleitet.//** ===== VM als Ziel für die Port-Weiterleitung ===== ==== Bhyve mit FreeBSD 13.0-RELEASE-p9 ==== siehe auch: [[::FreeBSD:FreeBSD - Bhyve]] Die Linux-VM mit der IP ''192.168.1.200'', zu der der Port ''24'' hin weiter geleitet werden soll: > grub-bhyve -m device.map -r hd0,msdos1 -M 4G Linux > bhyve -AHP -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 -s 3:0,virtio-blk,./linux.img -l com1,stdio -c 1 -m 4G Linux ===== allgemeine Einstellungen für die Port-Weiterleitung (FreeBSD 13.0-RELEASE-p9) ===== sshd_enable="YES" gateway_enable="YES" ipv6_gateway_enable="YES" ===== Port-Weiterleitung mit PF (FreeBSD 13.0-RELEASE-p9) ===== * [[https://docs.freebsd.org/de/books/handbook/firewalls/#firewalls-pf]] * [[https://forums.freebsd.org/threads/pf-port-forwarding.56995/]] pf_enable="YES" pf_rules="/etc/pf.conf" pflog_enable="YES" pflog_logfile="/var/log/pflog" NIC_EXT="em0" # FreeBSD-Host mit IP = 192.168.1.1 NIC_INT="tap0" # Linux-VM mit IP = 192.168.1.200 IP_HOST="192.168.1.1" # locale IP IP_VM="192.168.1.200" # IP in der VM ### Rules must be in order: options, normalization, queueing, translation, filtering rdr log on $NIC_EXT proto { tcp, udp } from any to $IP_HOST port 24 -> $IP_VM port 22 rdr pass on $NIC_EXT proto icmp from any to $IP_HOST -> $IP_VM set skip on lo0 block in all pass out all keep state pass out log on $NIC_EXT all pass in all keep state > pfctl -e ; pfctl -f /etc/pf.conf > service pf start > service pflog start > pfctl -s nat rdr log on em0 inet proto tcp from any to 192.168.1.1 port = 24 -> 192.168.1.200 port 22 rdr log on em0 inet proto udp from any to 192.168.1.1 port = 24 -> 192.168.1.200 port 22 rdr pass on em0 inet proto icmp from any to 192.168.1.1 -> 192.168.1.200 > pfctl -s states > pfctl -s info > pfctl -s Running > pfctl -s timeouts > pfctl -s memory > pfctl -s Interfaces > pfctl -s all