Apache Seiten nur aus VPN erreichbar machen?

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Apache seiten nur aus VPN erreichbar machen?

Beitrag von bluestar » 21.12.2018 20:39:05

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...

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Apache seiten nur aus VPN erreichbar machen?

Beitrag von MSfree » 21.12.2018 21:07:54

bluestar hat geschrieben: ↑ zum Beitrag ↑
21.12.2018 20:39:05
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.
Es würde reichen, nur die HTTP(S)-Pakete durch den Tunnel zu leiten. Mit ein paar iptables-Regeln ist das eigentlich kein Problem:

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
(ohne Gewähr)

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.

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Apache seiten nur aus VPN erreichbar machen?

Beitrag von bluestar » 21.12.2018 21:15:40

MSfree hat geschrieben: ↑ zum Beitrag ↑
21.12.2018 21:07:54
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
(ohne Gewähr)
Naja nicht so ganz, dann erreicht er ja gar keine anderen Server mehr über Port 80 bzw. 443.

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.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Apache seiten nur aus VPN erreichbar machen?

Beitrag von MSfree » 21.12.2018 21:28:06

bluestar hat geschrieben: ↑ zum Beitrag ↑
21.12.2018 21:15:40
Naja nicht so ganz, dann erreicht er ja gar keine anderen Server mehr über Port 80 bzw. 443.
Doch, zumindest theoretisch, denn

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.

pcace
Beiträge: 231
Registriert: 28.08.2011 01:08:55

Re: Apache seiten nur aus VPN erreichbar machen?

Beitrag von pcace » 22.12.2018 09:34:54

Das wird mir hier alles viel zu kompliziert ;) ich hab es jetzt per htpasswd gemacht. Die htaccess sieht jetzt so aus:

Code: Alles auswählen

<RequireAll>
  AuthType Basic
  AuthName "Authentication Required"
  AuthUserFile "/var/www/html/.htpasswd"
  Require valid-user
</RequireAll>
Spricht da etwas dagegen? (ausser vllt, das man das pw unverschlüsselt bei http überträgt... )


Gruß

Pcace

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Apache seiten nur aus VPN erreichbar machen?

Beitrag von bluestar » 22.12.2018 09:42:00

pcace hat geschrieben: ↑ zum Beitrag ↑
22.12.2018 09:34:54

Code: Alles auswählen

  AuthUserFile "/var/www/html/.htpasswd"
Leg die Datei nach /etc, sonst kann man deine htpasswd Datei herunterladen.
pcace hat geschrieben: ↑ zum Beitrag ↑
22.12.2018 09:34:54
Spricht da etwas dagegen? (ausser vllt, das man das pw unverschlüsselt bei http überträgt... )
Nimm certbot und nutze kostenlose SSL-Zertifikate von LetsEncrypt.

Unverschlüsselt ist Mist

pcace
Beiträge: 231
Registriert: 28.08.2011 01:08:55

Re: Apache Seiten nur aus VPN erreichbar machen?

Beitrag von pcace » 22.12.2018 10:18:30

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!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Apache Seiten nur aus VPN erreichbar machen?

Beitrag von HZB » 22.12.2018 11:03:59

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.

Antworten