Ich habe einen Linux-Server A mit einem Block von 5 öffentlichen IP-Adressen 8.8.8.122/29
. Derzeit 8.8.8.122
ist zugeordnet eth0
und 8.8.8.123
zugeordnet eth0:1
.
Ich habe eine andere Linux-Maschine B an einem entfernten Ort hinter NAT. Ich möchte einen Tunnel zwischen den beiden einrichten, damit B die IP-Adresse 8.8.8.123
als primäre IP-Adresse verwenden kann.
OpenVPN ist wahrscheinlich die Antwort, aber ich kann nicht genau herausfinden, wie die Dinge eingerichtet werden sollen ( topology subnet
oder topology p2p
könnte angemessen sein. Oder sollte ich Ethernet-Bridging verwenden?). Sicherheit und Verschlüsselung sind zu diesem Zeitpunkt kein großes Problem, daher wäre GRE auch in Ordnung - Maschine B wird von einer bekannten IP-Adresse stammen und kann basierend darauf authentifiziert werden.
Wie kann ich das machen? Kann jemand eine OpenVPN-Konfiguration oder einen anderen Ansatz vorschlagen, der in dieser Situation funktionieren könnte? Idealerweise kann es auch mehrere Clients verarbeiten (z. B. alle vier Ersatz-IPs mit anderen Computern teilen), ohne dass diese Clients IPs verwenden dürfen, auf die sie keinen Anspruch haben.
iptables
Regeln. B steht hinter einem NAT, auf dem ein anderer Linux-Server ausgeführt wirdshorewall
.Antworten:
Am Ende habe ich mich für die Ethernet-Überbrückung entschieden. Viele extrem ausführliche Beispiele, die man online durchgehen kann, aber es stellt sich als ziemlich einfach heraus:
Zuerst auf A ,
/etc/network/interfaces
wurde geändert von:zu:
um
eth0
(die echte WAN-tap0
Schnittstelle) beim Booten mit (einer neuen Tunnelschnittstelle) zu verbinden.Führen Sie dann auf A den openvpn-Server aus mit:
Stellen Sie auf B eine Verbindung her mit:
Das ist die supereinfache Konfiguration, nach der ich gesucht habe, und sie funktioniert - B ist jetzt unter 8.8.8.123 öffentlich zugänglich, und ausgehende Verbindungen stammen von derselben Adresse.
In Sicherheit (
--secret
,--tls-server
usw.) je nach Bedarf, natürlich.quelle
pre-up openvpn
Zeile erstellentap1
zu, fügen Sietap1
zubridge_ports
, und führen Sie mit einer anderen Instanz von OpenVPNopenvpn --dev tap1
.Du wirst es schwer haben, denke ich. Die meisten Firewalls haben Schwierigkeiten, den OpenVPN-Verkehr weiterzuleiten, wenn sich beide Seiten des VPN im selben Subnetz befinden.
Wenn Sie versuchen, für den öffentlichen Zugriff zu routen, verschiebe ich beide Server von Ihren öffentlichen Adressen in verschiedene Subnetze und verwende dann virtuelle IPs (1 zu 1 Nat), um sie zu verbinden. Um die beiden Standorte zu verbinden, würde OpenVPN oder ein IP-Sec-Tunnel funktionieren.
Virtuelle IPs: http://doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses%3F
Site zu Site: http://doc.pfsense.org/index.php/VPN_Capability_IPsec
Bearbeiten basierend auf Kommentaren:
Ich persönlich würde pfSense auf der A-Box installieren und ihr den Port geben, den Sie für das WAN wollten. Richten Sie dann einen OpenVPN-Server in einem lokalen Subnetz ein (das in der pfSense-Weboberfläche einsatzbereit ist) und richten Sie den anderen Computer mit einer virtuellen IP-Adresse ein, die auf die lokale OpenVPN-IP verweist. Dies würde Ihnen später Raum für Erweiterungen geben (fügen Sie weitere Computer mit virtuellen IPs hinzu, leiten Sie bestimmte Ports logisch an verschiedene Server weiter und verfügen Sie über ein vollständiges LAN / WAN / DMZ-Setup mit OpenVPN für den virtuellen Zugriff. Ganz zu schweigen davon, dass Sie einen haben Voll ausgewachsener Router, damit er wahrscheinlich sicherer ist.
quelle
push "route 50.7.19.122 255.255.255.255 net_gateway"
sicherstellen würde, dass die VPN-Daten weiterhin über das normale Netzwerk übertragen werden.