UUGRN:Dienste/Proxy: Unterschied zwischen den Versionen
Rabe (Diskussion | Beiträge) (übernommen von UUGRN:Jails/shd proxy) |
Rabe (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
UUGRN betreibt für interne | UUGRN betreibt für interne Zwecke einen zentralen '''Web-Proxy'''. | ||
{{Navigationsleiste Dienste}} | {{Navigationsleiste Dienste}} | ||
__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>. | ||
Der primäre Einsatzzweck ist dadurch entstanden, dass wir mit [[UUGRN:Jails/ | Der primäre Einsatzzweck ist dadurch entstanden, dass wir mit [[UUGRN:Jails/uug_ftp|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. [[UUGRN:Jails/ | Umgekehrt ist es außerdem möglich von einem IPv4-only-Client aus auf einen IPv6-only Server (z.B. [[UUGRN:Jails/uug_ftp|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. | 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. | ||
== Ausblick == | === 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. | |||
== 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>. | |||
=== IP-Adressen === | |||
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. | |||
Das | === VirtualHosts und SSL === | ||
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, ...) | |||
=== Dienste === | |||
Derzeit sind folgende Dienste konfiguriert: | |||
* [[/wiki.uugrn.org]] https://wiki.uugrn.org/ auf {{Jail|name=uug_wiki|label=wiki.uugrn.lan}} | |||
* [[/blogs.uugrn.org]] https://blogs.uugrn.org/ auf {{Jail|name=uug_blogs|label=blogs.uugrn.lan}} | |||
* [[/pad.uugrn.org]] 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. | |||
=== Weitere Einsatzmöglichkeiten === | |||
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, ... ) | |||
== Siehe auch == | == Siehe auch == | ||
* | * {{Jail|name=uug_proxy|label=proxy.uugrn.org}} | ||
== Weblinks == | == Weblinks == |
Aktuelle Version vom 20. Juni 2014, 21:46 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[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