Wie kann auf den Dienst auf dem Server zugegriffen werden, der auch als VPN-Gateway fungiert?

0

Ich verwende derzeit ein VPN-Gateway von Strongswan auf einem CentOS 6.5 VPS.

Der CentOS-Server verfügt über einen Eth-Port.

Das VPN verwendet IKEv2 und die Verbindungen zwischen Clients und Server werden hergestellt. Den Clients werden virtuelle IPs zugewiesen, die aus einem 10.0.0.0/24-Pool stammen. Die Clients können auch problemlos aufeinander zugreifen. Allerdings stelle ich fest, dass der Server selbst, der als VPN-Gateway fungiert, keine virtuelle IP-Adresse hat.

Ich führe einige Dienste auf dem VPS-Server aus, die ich durch den VPN-Tunnel sichern möchte. Wenn möglich, würde ich sie nicht direkt dem Internet aussetzen.

Ich frage mich also, ob es für die verbundenen VPN-Clients eine Möglichkeit gibt, über den Tunnel auf Dienste auf dem Server zuzugreifen, der als VPN-Gateway fungiert. Danke im Voraus.

Widder
quelle
Wie sieht deine Konfiguration aus? Insbesondere die leftsubnetEinstellung auf dem Server und die rightsubnetEinstellung auf dem Client. Wenn Sie verwenden, können 0.0.0.0/0die Clients wie gewohnt auf Ihren Server zugreifen, da der gesamte Datenverkehr getunnelt wird.
ecdsa
Danke für Ihre Antwort. Ich benutze 0.0.0.0/0 für das linke Subnetz auf dem Server. Und ich benutze den Windows 7 VPN-Client im IKEv2-Modus, um eine Verbindung herzustellen. Ich richte auch die Internetanforderung der Clients ein, die über den eth0-Port des Servers weitergeleitet werden sollen, damit ich auf den Dienst zugreifen kann, der wie gewohnt über den eth0-Port des Servers empfangsbereit ist. Um genauer zu sein, was ich erreichen möchte, ist, dass einige Dienste hinter der Firewall ausgeführt werden und einige Ports im lokalen Netzwerk abgehört werden, beispielsweise localhost. Und nur die verbundenen VPN-Benutzer konnten darauf zugreifen. Könnten Sie mir bitte einen Vorschlag dazu machen?
Widder

Antworten:

0

Wenn die Clients den gesamten Datenverkehr zum Server leiten (dh mit leftsubnet=0.0.0.0/0), müssen Sie nur sicherstellen, dass die privaten Dienste nur über VPN zugänglich sind. Dies ist mit strongSwan ganz einfach zu erreichen. Akzeptieren Sie einfach IKE- und IPSec-Datenverkehr (und möglicherweise SSH und andere Protokolle, die Sie zulassen möchten) in der INPUTKette und stellen Sie die Standardrichtlinie auf DROP:

# allow ESP
iptables -A INPUT -p 50 -j ACCEPT
# allow IKE
iptables -A INPUT -p udp --dport 500 -j ACCEPT
# allow NAT-T (IKE and ESP-in-UDP)
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
# allow SSH and other protocols
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
...
# drop packets by default
iptables -P INPUT DROP

Dann konfiguriert leftfirewall=yesund lefthostaccess=yesin ipsec.confso dass strongSwan automatisch Regeln einfügen, um Ihren VPN - Clients ermöglichen , auf den Server zuzugreifen. Diese Regeln verwenden das IPSec-Richtlinienabgleichsmodul für iptables / Netfiler ( -m policy), sodass sie nur für Datenverkehr gelten, der von eingerichteten IPSec-Tunneln stammt.

ecdsa
quelle
Vielen Dank für Ihre Antwort. Wahrscheinlich habe ich meine Frage nicht klar geklärt. Dies ist genau das gleiche iptables-Setup wie meins. Das Problem, auf das ich gestoßen bin, war, wie das virtuelle Subnetz für die Clients eine sichere Verbindung zum Dienst auf dem Server herstellen kann, da der Server selbst nicht in diesem Subnetz dargestellt wird. Zum Beispiel versuche ich, einen Apache mit Blick auf das virtuelle Subnetz auszuführen. Ich frage mich, welche IP-Adresse der httpd-Prozess abhören soll. Danke.
Widder
Sie benötigen keine spezielle IP-Adresse für Apache. Verwenden Sie einfach die öffentliche IP-Adresse (genau wie den VPN-Server), um von Clients aus darauf zuzugreifen. Da Sie den Datenverkehr nur für die VPN-Clients blockieren, kann niemand auf den Dienst zugreifen. Natürlich können Sie auch eine andere IP-Adresse verwenden, aber da die Clients alles an den VPN-Server weiterleiten, spielt es keine Rolle, um welche IP-Adresse es sich handelt.
ecdsa