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

912
Aries

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

Der CentOS-Server hat 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. Ich stelle jedoch fest, dass der Server selbst, der als VPN-Gateway fungiert, keine virtuelle IP-Adresse hat.

Ich führe auf dem VPS-Server einige Dienste 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 den verbundenen VPN-Clients eine Möglichkeit gibt, auf Dienste auf dem Server zuzugreifen, der als VPN-Gateway durch den Tunnel fungiert. Danke im Voraus.

0
Wie sieht deine Konfig aus? Insbesondere die Einstellung "leftsubnet" auf dem Server und die Einstellung "rightsubnet" auf dem Client. Wenn Sie 0.0.0.0 / 0 verwenden, können die Clients wie üblich auf Ihren Server zugreifen, da der gesamte Verkehr getunnelt wird. ecdsa vor 9 Jahren 0
Danke für Ihre Antwort. Ich verwende 0.0.0.0/0 für leftsubnet auf dem Server. Und ich verwende den Windows 7-VPN-Client im IKEv2-Modus, um eine Verbindung herzustellen. Ich habe auch die Internet-Anfrage der Clients so eingerichtet, dass sie auf dem eth0-Port des Servers weitergeleitet wird, damit ich wie üblich auf den Dienst listen auf dem Server-eth0-Port zugreifen kann. Genauer gesagt, was ich gerne erreichen möchte, ist, dass einige Dienste hinter der Firewall ausgeführt werden und dass sie einige Ports im lokalen Netzwerk überwachen, wie beispielsweise localhost. Und nur die verbundenen VPN-Benutzer konnten auf sie zugreifen. Könnten Sie mir bitte einen Vorschlag dazu geben? Aries vor 9 Jahren 0

1 Antwort auf die Frage

0
ecdsa

Wenn die Clients den gesamten Datenverkehr an den Server weiterleiten (dh mit leftsubnet=0.0.0.0/0), müssen Sie nur sicherstellen, dass die privaten Dienste nur über VPN erreichbar sind. Mit strongSwan ist das ganz einfach zu erreichen. Akzeptieren Sie einfach IKE- und IPsec-Verkehr (und möglicherweise SSH und andere Protokolle, die Sie zulassen möchten) in der INPUTKette, und legen Sie die Standardrichtlinie auf Folgendes fest 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-Richtlinienanpassungsmodul für iptables / Netfiler ( -m policy), sodass sie nur für den Datenverkehr gelten, der von etablierten IPsec-Tunneln stammt.

Vielen Dank für Ihre Antwort. Wahrscheinlich habe ich meine Frage nicht klargestellt. Dies ist genau das gleiche iptables-Setup wie bei mir. Das Problem, das ich traf, 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 vor dem virtuellen Subnetz auszuführen. Ich frage mich, welche IP-Adresse der httpd-Prozess hören soll. Vielen Dank. Aries vor 9 Jahren 0
Sie benötigen keine spezielle IP-Adresse für Apache. Verwenden Sie einfach die öffentliche IP-Adresse (dieselbe wie der VPN-Server), um von Clients darauf zuzugreifen. Da Sie den Verkehr von allen außer den VPN-Clients blockieren, kann niemand auf den Dienst zugreifen. Natürlich können Sie auch eine andere IP-Adresse verwenden. Da die Clients jedoch alles an den VPN-Server weiterleiten, spielt es keine Rolle, welche IP-Adresse dies ist. ecdsa vor 9 Jahren 0