Apache Seiten nur aus VPN erreichbar machen?
Re: Apache seiten nur aus VPN erreichbar machen?
Das Problem liegt an anderer Stelle begründet... Ich vermute mal das der VPN-Tunnel von seinem Client (irgendwo in einem LAN 192.168.x.x) via NAT auf die IP-Adresse des Apache & VPN-Server geht.
Damit der Traffic zu dem Apache durch das VPN läuft, müsste er die öffentliche IP des Apache "explizit" durch den VPN Tunnel routen, damit schießt sich das Setup in den Kopf. Die VPN-Pakete zu der IP dürfen nämlich nicht durch den VPN-Tunnel geroutet werden.
Das Problem lässt sich auch "ohne" zweiten DNS-Eintrag lösen, allerdings benötigt der TE dann für den VPN-Dienst eine eigene IP-Adresse, in dem Falle ist es möglich die 2. IP-Adresse worauf der Apache lauscht, durch das VPN zu routen.
Da bleibt nur die Frage an den TE, hat er die Möglichkeit bei dem Hoster eine zweite IP-Adresse für den Server zu bekommen, falls nicht bleibt die Option mit dem zweiten DNS-Eintrag.
Man könnte natürlich auch die DNS-Anfragen durch das VPN umleiten und über Bind Views den VPN-Rechnern einfach für den DNS-Namen des Servers eine andere IP zurückliefern, aber da schießt man mit Kanonen auf Spatzen und erntet wieder neue Probleme...
Damit der Traffic zu dem Apache durch das VPN läuft, müsste er die öffentliche IP des Apache "explizit" durch den VPN Tunnel routen, damit schießt sich das Setup in den Kopf. Die VPN-Pakete zu der IP dürfen nämlich nicht durch den VPN-Tunnel geroutet werden.
Das Problem lässt sich auch "ohne" zweiten DNS-Eintrag lösen, allerdings benötigt der TE dann für den VPN-Dienst eine eigene IP-Adresse, in dem Falle ist es möglich die 2. IP-Adresse worauf der Apache lauscht, durch das VPN zu routen.
Da bleibt nur die Frage an den TE, hat er die Möglichkeit bei dem Hoster eine zweite IP-Adresse für den Server zu bekommen, falls nicht bleibt die Option mit dem zweiten DNS-Eintrag.
Man könnte natürlich auch die DNS-Anfragen durch das VPN umleiten und über Bind Views den VPN-Rechnern einfach für den DNS-Namen des Servers eine andere IP zurückliefern, aber da schießt man mit Kanonen auf Spatzen und erntet wieder neue Probleme...
Re: Apache seiten nur aus VPN erreichbar machen?
Es würde reichen, nur die HTTP(S)-Pakete durch den Tunnel zu leiten. Mit ein paar iptables-Regeln ist das eigentlich kein Problem:bluestar hat geschrieben:21.12.2018 20:39:05Damit der Traffic zu dem Apache durch das VPN läuft, müsste er die öffentliche IP des Apache "explizit" durch den VPN Tunnel routen, damit schießt sich das Setup in den Kopf. Die VPN-Pakete zu der IP dürfen nämlich nicht durch den VPN-Tunnel geroutet werden.
Auf der Clientseite des VPN-Tunnels sollten folgende Regeln ausreichen:
Code: Alles auswählen
iptables -t nat -A -PREROUTING -p tcp -d öffentliche-IP --dport 80 -j DNAT --to-destination 10.x.y.z
iptables -t nat -A -PREROUTING -p tcp -d öffentliche-IP --dport 443 -j DNAT --to-destination 10.x.y.z
Damit sollten eigentlich alle Anfragen auf Port 80 (HTTP) und Port 443 (HTTPS) an die öffentliche IP-Adresse des Servers an das Ende des Tunnels (hier läuft ja auch der Apache) geroutet werden.
Solche Regeln könnte man vermutlich sogar vom VPN-Server in Form eine Skriptes pushen. Windows-tauglich ist so eine Lösung allerdings nicht.
Re: Apache seiten nur aus VPN erreichbar machen?
Naja nicht so ganz, dann erreicht er ja gar keine anderen Server mehr über Port 80 bzw. 443.MSfree hat geschrieben:21.12.2018 21:07:54Auf der Clientseite des VPN-Tunnels sollten folgende Regeln ausreichen:(ohne Gewähr)Code: Alles auswählen
iptables -t nat -A -PREROUTING -p tcp -d öffentliche-IP --dport 80 -j DNAT --to-destination 10.x.y.z iptables -t nat -A -PREROUTING -p tcp -d öffentliche-IP --dport 443 -j DNAT --to-destination 10.x.y.z
Falls du masochistische Neigungen hast, so gibt es auch noch IPSEC im Transport-Mode, damit kannst du tatsächlich den Client-Traffic für die Server-Ports 80 & 443 verschlüsseln.
Re: Apache seiten nur aus VPN erreichbar machen?
Doch, zumindest theoretisch, dennbluestar hat geschrieben:21.12.2018 21:15:40Naja nicht so ganz, dann erreicht er ja gar keine anderen Server mehr über Port 80 bzw. 443.
iptables -t nat -A -PREROUTING -p tcp -d öffentliche-IP --dport 80 -j DNAT --to-destination 10.x.y.z
schränkt das Forwarding ja auf die öffentliche IP des Apache und Port 80 ein, analog die zweite Regel mit Port 443. Ich bin mir nur nicht ganz sicher, ob diese Kombination aus -d öffentliche-IP --dport 80 von iptables akzeptiert wird.
Re: Apache seiten nur aus VPN erreichbar machen?
Das wird mir hier alles viel zu kompliziert ich hab es jetzt per htpasswd gemacht. Die htaccess sieht jetzt so aus:
Spricht da etwas dagegen? (ausser vllt, das man das pw unverschlüsselt bei http überträgt... )
Gruß
Pcace
Code: Alles auswählen
<RequireAll>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/var/www/html/.htpasswd"
Require valid-user
</RequireAll>
Gruß
Pcace
Re: Apache seiten nur aus VPN erreichbar machen?
Leg die Datei nach /etc, sonst kann man deine htpasswd Datei herunterladen.pcace hat geschrieben:22.12.2018 09:34:54Code: Alles auswählen
AuthUserFile "/var/www/html/.htpasswd"
Nimm certbot und nutze kostenlose SSL-Zertifikate von LetsEncrypt.pcace hat geschrieben:22.12.2018 09:34:54Spricht da etwas dagegen? (ausser vllt, das man das pw unverschlüsselt bei http überträgt... )
Unverschlüsselt ist Mist
Re: Apache Seiten nur aus VPN erreichbar machen?
Gut. ich glaube so sollte das klappen.
johannes-froelich.de --> redirect nach https?
cloud.johannes-froelich.de/mail.johannes-froelich.de--> redirect nach https?
johannes-froelich.de/munin --> auch https, aber nur mit pw?
Gruß und Dank für die Hilfe!
johannes-froelich.de --> redirect nach https?
cloud.johannes-froelich.de/mail.johannes-froelich.de--> redirect nach https?
johannes-froelich.de/munin --> auch https, aber nur mit pw?
Gruß und Dank für die Hilfe!
Re: Apache Seiten nur aus VPN erreichbar machen?
Also es schaut schon ganz gut aus.
Ich würde es noch etwas mehr absichern. zB Server Token usw.
Ein Fail2ban auf das Apache Error log kann ich nur dringend empfhlen.
Macht brute force auf die geschützten seiten schwieriger.
Ich würde es noch etwas mehr absichern. zB Server Token usw.
Ein Fail2ban auf das Apache Error log kann ich nur dringend empfhlen.
Macht brute force auf die geschützten seiten schwieriger.