Seit Tagen kämpfe ich mit einer Konfiguration, die doch eigentlich nicht so
schwierig sein kann. Auf vieles habe ich hier im Forum Antworten gefunden. Das eine
oder ander fehlt mir aber noch. Gerne möchte ich meine Idee (und Konfiguration) zur
Diskussion stellen und dazu auch fragen:
Idee:
Ich nehme das aktuelle XAMPP (1.5.1), lass die Konfiguration as-is und hänge per
Include meine eigene dran. Zunächst habe ich DokuWiki http://www.splitbrain.org/projects/dokuwiki
eingebunden und das funktioniert auch gleich sehr fein! (THANX to XAMPP!!)
Nun will ich damit ans Internet mit möglichst wenig Veränderung der Original-conf.
(Damit habe ich einen deutlich besseren Überblick und Erleichterung bei Updates!)
Also stelle ich mit sowas vor:
Browser:80 <-internet-> 80:router:8080 <-lan-> 8080:vHost/ProxyPassReverse:80 <-local-> 80:dokuwiki
An andere Anwendungen in XAMPP gelangt man so dann nicht - funktioniert auch soweit,
zumindest im LAN. Weiter bin ich noch nicht
Später möchte ich noch auf andere hosts in meinem kleinen Heim-Netzwerk zugreifen
und ins Internet bringen - das per unterschiedlichen DynDns-Domains bzw. durch Verwendung
von Wildcards.
zusammengefasst:
Internet - 80:Router:8080 - 8080:vHostApache/Proxy:80 - 80:apache/dokuwiki
- und eben später:
Internet - 80:Router:8080 - 8080:vHostApache/Proxy:80 - 80:otherServer
in Worten: Ich öffne Port 80 des Router und leite auf port 8080 von XAMPP/apache weiter,
wo nur vHosts/ReverseProxies lauschen. von dort leite ich gezieht auf andere Ports bzw.
Anwendungen oder auf andere Server weiter. Der eigentliche Port 80 von XAMPP/apache ist
von aussen nicht sichtbar.
Anwendungsfälle:
- Wiki für ein Projekt im Internet (eigens domain dafür) den Beteiligten bereitstellen
- Zugriff auf die http-Konfiguration meines Proxy zuhause
- und einiges mehr ...
Lösung:
httpd.conf (bis auf letzte Zeile original-belassen - nur ssl-include auskommentiert):
conf/httpd.conf:
- Code: Select all
:
Include conf/httpd.conf.added
in conf/httpd.conf.added steht dann:
- Code: Select all
#
# Delta to Original XAMPP httpd.conf
#
# Change:
#
# off: #Include conf/extra/httpd-ssl.conf
# add: Include conf/httpd.conf.added
#
# All other Delta's follow here:
#
### Modules ...
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests off
### Default Host ...
NameVirtualHost *
<VirtualHost *>
ServerName default
DocumentRoot C:/programme/xampp/htdocs
ErrorDocument 404 D:/data/inet/notfound/index.htm
</VirtualHost>
### For Routing by Router via 8080 ...
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName default
DocumentRoot D:/data/inet/notfound
ErrorDocument 404 index.htm
</VirtualHost>
<VirtualHost *:8080>
ServerName wiki
ServerAlias wiki.proxy.lan wiki.account.dyndns.org
DocumentRoot D:/data/inet/notfound
ErrorDocument 404 D:/data/inet/notfound/index.htm
#nur das soll durchkommen:
ProxyPass /dokuwiki/ http://127.0.0.1:80/dokuwiki/
ProxyPassReverse /dokuwiki/ http://127.0.0.1:80/dokuwiki/
</VirtualHost>
<VirtualHost *:8080>
ServerName polarion
ServerAlias polarion.proxy.lan polarion.account.dyndns.org
DocumentRoot D:/data/inet/notfound
ErrorDocument 404 D:/data/inet/notfound/index.htm
#nur das soll durchkommen:
ProxyPass /polarion/ http://127.0.0.1:80/polarion/
ProxyPassReverse /polarion/ http://127.0.0.1:80/polarion/
</VirtualHost>
In hosts stehen dann wo erforderlich entsprechende Einträge:
- Code: Select all
192.168.1.1 polarion.proxy.lan
192.168.1.1 wiki.proxy.lan
Nun habe ich Fragen an euch, die Ihr zum grossen Teil ja schon reichlich Erfahrungen
gesammelt habt:
Fragen
Was ist von dem Ansatz an sich zu halten? Ist das eine vertretare Variante um a) Schutz vor
aussen zu erreichen und b) möglichst wenig an der XAMPP-Original-Konfiguration zu verändern?
Problem: Wenn ich das ganz so mit Standard-Port 80 mache, gibt es beim Einstieg in manche
Anwendungen mit denen ich bisher probiert habe oder bei bestimmten Operationen (z.B. [Save] bei
dokuwiki]) Redirect's auf (z.B. index.jsp) auf den Original-Port und die lokale Adresse des
Servers (also einfach am proxy vorbei). Wenn ich xampp/Apache mit einem anderen Port (z.B. 81)
laufen lass, dann tritt dieses Problem nicht auf. Woran kann das liegen bzw. wie lässt sich
das Problem mit speziell Port 80 abschaffen?
Welche weiteren Sicherheits-Massnahmen wären wichtige oder empfehlenswert?
Was mir auch nich fehlt: Kann ich irgendwie eine User-Verwaltung einschalten, die den Anwender
zu beginn bereits nach einem Login fragt? (also schon bevor das erste Durchreichen über einen der
vHost-Proxies statfindet?
Vielen Dank schon mal, wenn jemand helfen kann - Für jede Meinung oder zusätzliche Ideen zu
diesem Ansatz bin ich sehr dankbar.
lg!ingo