Ich versuche, einen einfachen NAT-Server einzurichten. Ich möchte, dass der gesamte Datenverkehr, der von außen zum NAT-Server kommt, auf eine andere Maschine umgeleitet wird, auf der ich einen Lipcap-Dienst zum Parsen dieses Datenverkehrs laufen habe.
Ich habe -redirect_port und -redirect_address im natd_flags-Teil in rc.conf ausprobiert, aber nichts funktioniert... irgendwelche Ideen?
Antwort1
Der Benutzerbereich natd
muss ipfw
aktiviert sein. IPFW fängt Pakete ab und leitet sie an die natd
Adressenumsetzer weiter. Heutzutage können Sie jedoch in IPFW eingebettetes Kernel-NAT verwenden.
Aktivieren wir die IPFW-Engine
# /etc/rc.conf
. . . . .
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.ipfw"
. . . . .
Und lassen Sie uns die Kernel-Umleitung konfigurieren:
# /etc/rc.ipfw
. . . . .
oip="1.2.3.4" # Outer IP looking to the internet
tip="10.0.0.100 # Target host
ipfw nat 1 config redirect_addr ${tip} ${oip}
. . . . .
Das ist alles.
Antwort2
In die PF-Firewall sind NAT und Umleitung integriert. Fügen Sie Folgendes zu /etc/rc.conf hinzu:
gateway_enable="YES"
pf_enable="YES"
Und konfigurieren Sie die Firewall. Fügen Sie diese Zeilen zu /etc/pf.conf hinzu:
ext_if=em0
ext_addr = N.N.N.N (your external IP)
int_if=em1
int_net=10.0.0.0/8
int_addr=10.0.0.1
libcap_host=10.0.0.2
nat on $ext_if from $int_net to any -> $ext_addr
rdr on $ext_if from any to $ext_addr -> $libcap_host
Die NAT-Regel macht das, was Sie erwarten: Sie sendet den gesamten in Ihrem Internetnetzwerk generierten Datenverkehr über die externe IP des Gateways in die Welt. Die RDR-Regel leitet alle eingehenden Verbindungen an Ihren Zielhost weiter.