GNU/Linux >> LINUX-Kenntnisse >  >> FreeBSD

Freebsd – Einfügen einer Nat-Lösung in ein Netzwerk, obwohl es nicht das Gateway ist?

Ich habe dies auf verschiedene Arten versucht. Versuche es gerade mit pf auf Freebsd 8.2

Ich versuche, eine NAT-Lösung in ein vorhandenes Netzwerk einzufügen, die den Verkehr von einer externen IP-Adresse zu einer internen IP-Adresse an allen Ports umleitet (statisches NAT), aber ich möchte auch die Quelladresse übersetzen.

Aktuelles Netzwerk.

hosta
192.168.1.2/24 

gw
192.168.1.1/24

outsidehost
10.0.0.1/24 

natbox
em0 192.168.1.3/24 (used to manage the box)
em1 10.0.0.2/24 (outside address same lan as outsidehost)
em0_alias0 192.168.1.4/24 (inside address same lan as hosta)
route 192.168.1.0/24 192.168.1.1
route 0.0.0.0 0.0.0.0 10.0.0.1

Ich möchte, dass Outsidehost in der Lage ist, 192.168.1.3 per Telnet (sp) an 10.0.0.2 zu telnet

Damit dies funktioniert, nehme ich an, dass ich die Quelle des Pakets ändern muss, wenn es em0 verlässt, oder es geht auf dem Weg zurück zu em1 verloren.

Der Ablauf geht also so:

  • von außerhalb host telnet 10.0.0.2
  • Quelladresse auf 192.168.1.4 ändern
  • Verkehr für 10.0.0.2 auf 192.168.1.2 umleiten
  • das Paket verlässt mit src 192.168.1.4, geht zu 192.168.1.2, wird dann zurück zu 192.168.1.4 gesendet, übersetzt zurück zu dem, was die Quelladresse in diesem Fall 10.0.0.1 war

Ich denke immer, dass dies mit

getan werden kann

binat und rdr, aber ich kann die Syntax nicht herausfinden.

Wie bekomme ich das hin?

Akzeptierte Antwort:

Am Ende habe ich mich für iptables unter Linux entschieden, um dies zu erreichen.

Denn die IP-Weiterleitung muss eingeschaltet sein:

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

Und legen Sie die folgenden Regeln fest:

iptables -F -t nat
# flush the NAT Table.
iptables -t nat -P INPUT DROP
# set the input chain on the NAT table to DROP by default. 
# This way any traffic not allowed by defining a source address gets dropped.
# If you don't provide a -s address below it will allow all hosts from anywhere
# to reach the inside address via the outside ip. 

iptables -t nat -A PREROUTING -s 10.0.0.1 -d 10.0.0.2 \
         -j DNAT --destination-address 192.168.1.3 
# define the source and destination of the traffic allowed through.
# Change the dest address to our inside host. 

iptable -t nat -A INPUT -s 192.168.0.0/24 -J ALLOW
# Drop all traffic on sourcing from inside subnet. 
# This won't apply to traffic that matches the rule above
# as the source address will change in the next rule. 

iptables -t nat -A POSTROUTING -d 192.168.1.3 \
         -j SNAT --source-address 192.168.1.4
# here is the insert magic. Change the source address of any traffic destined
# for our inside host to our vip or owned inside address.
# This way the traffic is routed back to us at the FW. 

FreeBSD
  1. So installieren Sie FreeBSD 13.0 mit statischer Netzwerk-IP-Adresse

  2. Einfügen einer Datei in eine andere Datei nach dem ersten Auftreten eines Musters?

  3. Wird der Vorgang beim Kopieren einer .mkv-Datei in zwei Teile geteilt?

  4. Network Manager-Symbol auf 16.04 wird nicht angezeigt?

  5. Wie kann die eth0-Gateway-Adresse ermittelt werden, wenn es sich nicht um das Standard-Gateway handelt?

Centos – Wireguard leitet den Datenverkehr nicht vom Client zu anderen Servern im Netzwerk?

Zentyal als Gateway:Das perfekte Setup

Die While-Schleife in Shell-Skripten

Gewusst wie:FreeBSD-Netzwerkverwaltung

So erhalten Sie MAC-Adressen von Geräten, die sich nicht im Netzwerk befinden

Kann Reprepro eine neue Version eines Pakets in das Repository aufnehmen?