UUGRN:Dienste/Proxy
UUGRN betreibt für interne Zwecke einen zentralen Web-Proxy.
öffentliche→ Mailingliste (Mailinglistenarchiv) • Wiki • Pad • IRC • Jobs • Webseite • FTP Für Mitglieder→ Intranetalpha • Shells • Jails • Webspace • MySQL • Usenet • Blogs • BNC • Mailman Infrastruktur→ Mail • DNS • Backup • Proxy • ircbot • Buildsystem
Öffentliche → • IRC Chat • Drawing Pad • Ascii Pad • Text Pad • Vorstand Infoshare Für Mitglieder → • Shell Account • Usenet Zugang Infrastruktur → • DNS <edit>
Proxy-Server[Bearbeiten]
Zweck[Bearbeiten]
Implementiert wird der Proxy-Server durch squid[1].
Der primäre Einsatzzweck ist dadurch entstanden, dass wir mit ftp.uugrn.org das ersten rein auf IPv6 basierende Jail in Betrieb genommen haben. Da in diesem Jail auch Mirror-Scripte laufen (werden), die Dateien von IPv4-only-Quellen beziehen, wurde dieser Proxy erforderlich.
Umgekehrt ist es außerdem möglich von einem IPv4-only-Client aus auf einen IPv6-only Server (z.B. ftp.uugrn.org) zuzugreifen.
Auch wenn heutzutage (Stand: 3/2013) die überwiegende Anzahl von öffentlichen Diensten auf Ipv4 angeboten wird, so könnte es in absehbarer Zeit passieren, dass bestimmte Angebote nur noch über IPv6 ordentlich zugreifbar sein werden.
Zugriffe[Bearbeiten]
Dieser Service wird nur und ausschließlich für IPv4 und IPv6 Adressen von UUGRN angeboten.
Es findet keine Anonymisierung statt, alle Zugriffe werden protokolliert und Clients werden über den X-Forwarded-for-Header dem Zielsystem übermittelt.
Ausblick[Bearbeiten]
Es wäre prinzipiell denkbar einen über die Benutzerdatenbank authentifizierten Benutzerbetrieb des Web-Proxy-Caches (squid[1]) zu gestatten um Mitgliedern mit IPv4-only den Zugriff auf IPv6 zu gewähren.
Reverse-Proxy[Bearbeiten]
Auf den IP-Adressen 164.177.171.13 und 2a03:2500:1:6:d:: läuft jeweils auf Port 80/tcp und Port 443/tcp ein Apache Webserver als Reverse-Proxy[2].
IP-Adressen[Bearbeiten]
Der Reverse-Proxy ist per IPv4 und IPv6 erreichbar und kann auf IPv4 und IPv6 Dienste durchleiten, so ließe sich zB ein IPv4-Only Webangebot zusätzlich mit IPv6 bereichern, indem für den entsprechenden Dienst ein Quad-A-Record in der Form "www.example.com IN AAAA 2a03:2500:1:6:d::" im DNS eingetragen wird. Zusätzlich muss in der Datei /usr/local/etc/apache22/extra/httpd-vhosts.conf ein entsprechender Vhost angelegt werden.
VirtualHosts und SSL[Bearbeiten]
Auf den beiden IP-Adressen wird NameBased VirtualHosting für HTTP und HTTPS (per SNI = Server Name Identifcation=mehere SSL-zertifikate hinter einer IP-Adresse auf dem gleichen port[3])) implementiert. Verschiedene SSL-Namen sind auch per SAN möglich (SubjectAltName=ein SSL-Zertifikat mit mehreren gültigen Namen zusätzlich zum CommonName[4])
Das jeweils passende SSL-Zertifikat wird innerhalb des *:443-Vhosts konfiguriert. SSL mit IP basiertem VHost ist nur für (zusätzliche) IPv6-Adressen möglich oder auf alternativen Ports (zB 10443, 20443, ...)
Dienste[Bearbeiten]
Derzeit sind folgende Dienste konfiguriert:
- /wiki.uugrn.org https://wiki.uugrn.org/ auf wiki.uugrn.lan
- /blogs.uugrn.org https://blogs.uugrn.org/ auf blogs.uugrn.lan
- /pad.uugrn.org https://pad.uugrn.org/ auf pad.uugrn.lan
Die Zugriffe auf http:// dieser Dienste werden direkt vom Reverse-Proxy weitergeleitet auf die jeweilige https:// -Adresse. Das kann pro Dienst individuell konfiguriert werden.
Die Services laufen jeweils in separaten Jails (z.B. wiki.uugrn.lan). Diese haben keine direkte Internet-Anbindung und sind daher nur über den Reverse-Proxy erreichbar oder können via Forward-Proxy (squid) auf das Internet zugreifen. Fremdsoftware wird somit der unkontrollierte Zugriff auf das Internet erschwert.
wiki.uugrn.lan und blogs.uugrn.lan sind Apache 2.2 + PHP5 basiert, pad.uugrn.lan beheimatet lediglich ein node.js mit einem eigenen (internen) Webserver.
Weitere Einsatzmöglichkeiten[Bearbeiten]
Denkbar für diese Anwendung sind neben der Jail-Separierung von PHP-Applikationen auch der Zugriff auf tomcat[5]-Applikationen (via ajp[6][7]) oder der (transparente) Zugriff auf externe HTTP-Dienste. Außerdem ließe sich hier an zentraler Stelle ein Web-Application-Firewall und andere Schutzmechanismen (mod_security, Authentifizierung, ... )
Siehe auch[Bearbeiten]
Weblinks[Bearbeiten]
- ↑ 1,0 1,1 Offizielle Webpräsenz „Squid Cache”
- ↑ Apache Module mod_proxy
- ↑ Die deutschsprachige Wikipedia zum Thema „Server Name Indication”
- ↑ en.wikipedia.org/wiki/Subject_Alternative_Name
- ↑ Offizielle Webpräsenz „Apache Tomcat”
- ↑ [http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html Apache mod_proxy_ajp}
- ↑ Apache Tomcat Connector, mod_jk