UUGRN:Dienste/Proxy: Unterschied zwischen den Versionen
Rabe (Diskussion | Beiträge) K (Rabe verschob Seite UUGRN:Proxy nach UUGRN:Dienste/Proxy: Alle Dienste als Subpage von UUGRN:Dienste) |
Rabe (Diskussion | Beiträge) (Wir haben nun einen Reverse-Proxy) |
||
Zeile 4: | Zeile 4: | ||
__TOC__ | __TOC__ | ||
== Zweck == | |||
== Proxy-Server == | |||
=== Zweck === | |||
Implementiert wird der Proxy-Server durch squid<ref name="squid">{{Homepage2|www.squid-cache.org|Squid Cache}}</ref>. | Implementiert wird der Proxy-Server durch squid<ref name="squid">{{Homepage2|www.squid-cache.org|Squid Cache}}</ref>. | ||
Zeile 13: | Zeile 15: | ||
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. | 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 == | === Zugriffe === | ||
Dieser Service wird nur und ausschließlich für IPv4 und IPv6 Adressen von UUGRN angeboten. | 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. | Es findet keine Anonymisierung statt, alle Zugriffe werden protokolliert und Clients werden über den ''X-Forwarded-for''-Header dem Zielsystem übermittelt. | ||
== | === Reverse-Proxy === | ||
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<ref>[http://httpd.apache.org/docs/2.2/mod/mod_proxy.html Apache Module mod_proxy]</ref>. | |||
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. | |||
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<ref>{{Wikipedia2|Server_Name_Indication|Server Name Indication}}</ref>)) implementiert. Verschiedene SSL-Namen sind auch per SAN möglich (SubjectAltName=ein SSL-Zertifikat mit mehreren gültigen Namen zusätzlich zum CommonName<ref>[http://en.wikipedia.org/wiki/Subject_Alternative_Name en.wikipedia.org/wiki/Subject_Alternative_Name]</ref>) | |||
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, ...) | |||
Derzeit sind folgende Dienste konfiguriert: | |||
* https://wiki.uugrn.org/ auf {{Jail|name=uug_wiki|label=wiki.uugrn.lan}} | |||
* https://blogs.uugrn.org/ auf {{Jail|name=uug_blogs|label=blogs.uugrn.lan}} | |||
* https://pad.uugrn.org/ auf {{Jail|name=uug_pad|label=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. {{Jail|name=uug_wiki|label=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. | |||
{{Jail|name=uug_wiki|label=wiki.uugrn.lan}} und {{Jail|name=uug_blogs|label=blogs.uugrn.lan}} sind Apache 2.2 + PHP5 basiert, {{Jail|name=uug_pad|label=pad.uugrn.lan}} beheimatet lediglich ein node.js mit einem eigenen (internen) Webserver. | |||
Denkbar für diese Anwendung sind neben der Jail-Separierung von PHP-Applikationen auch der Zugriff auf tomcat<ref>{{Homepage2|tomcat.apache.org|Apache Tomcat}}</ref>-Applikationen (via ajp<ref>[http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html Apache mod_proxy_ajp}</ref><ref>[http://tomcat.apache.org/connectors-doc/ Apache Tomcat Connector, mod_jk]</ref>) 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, ... ) | |||
== Ausblick == | |||
Es wäre prinzipiell denkbar einen über die [[UUGRN:LDAP|Benutzerdatenbank]] authentifizierten Benutzerbetrieb des Web-Proxy-Caches (squid<ref name="squid">{{Homepage2|www.squid-cache.org|Squid Cache}}</ref>) zu gestatten um Mitgliedern mit IPv4-only den Zugriff auf IPv6 zu gewähren. | Es wäre prinzipiell denkbar einen über die [[UUGRN:LDAP|Benutzerdatenbank]] authentifizierten Benutzerbetrieb des Web-Proxy-Caches (squid<ref name="squid">{{Homepage2|www.squid-cache.org|Squid Cache}}</ref>) zu gestatten um Mitgliedern mit IPv4-only den Zugriff auf IPv6 zu gewähren. | ||
Version vom 6. April 2014, 23:08 Uhr
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
Zweck
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
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.
Reverse-Proxy
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].
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.
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, ...)
Derzeit sind folgende Dienste konfiguriert:
- https://wiki.uugrn.org/ auf wiki.uugrn.lan
- https://blogs.uugrn.org/ auf blogs.uugrn.lan
- 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.
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, ... )
Ausblick
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.
Siehe auch
Weblinks
- ↑ 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