UUGRN:Dienste/Proxy: Unterschied zwischen den Versionen

Aus UUGRN
(übernommen von UUGRN:Jails/shd proxy)
 
KKeine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
UUGRN betreibt für interne zwecke einen zentralen Web-Proxy.
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/shd_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.
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/shd_ftp|ftp.uugrn.org]]) zuzugreifen.  
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 ===
Zukünftig könnte parallel zum Web-Proxy-Cache (squid<ref name="squid">{{Homepage2|www.squid-cache.org|Squid Cache}}</ref>) auch ein Apache als Reverse-Proxy<ref>[http://httpd.apache.org/docs/2.2/mod/mod_proxy.html Apache Module mod_proxy]</ref> betrieben werden um IPv4/IPv6 mit/ohne SSL umzusetzen auf Backend-Dienste, die in anderen Jails und ohne öffentliche IP-Adresse laufen.
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>.


Gerade für SSL könnten hier SNI (Server Name Identifcation=mehere SSL-zertifikate hinter einer IP-Adresse auf dem gleichen port<ref>{{Wikipedia2|Server_Name_Indication|Server Name Indication}}</ref>) und/oder SAN (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>) zum Einsatz kommen oder bei IPv6 dedizierte IP-Adressen mit dedizierten SSL-Zertifikaten. Prinzipiell währen auch dedizierte IPv4-Adresse auf diesem ReverseProxy möglich jedoch aufgrund der prinzipiellen Knappheit von IPv4-Adressen kein favorisiertes Setup.
=== 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 gleiche ist prinzipiell auch möglich für Webapplikationen, die in anderen Jails in einem Application Server (zB Tomcat<ref>{{Homepage2|tomcat.apache.org|Apache Tomcat}}</ref>) betrieben werden. Hier könnte Apache mit 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>zum Einsatz kommen.
=== 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, ... )


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.


== Siehe auch ==
== Siehe auch ==
* [[UUGRN:Jails/shd proxy|proxy.uugrn.org]]
* {{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) • WikiPadIRCJobsWebseiteFTP Für Mitglieder→  IntranetalphaShellsJailsWebspaceMySQLUsenetBlogsBNCMailman Infrastruktur→  MailDNSBackupProxyircbotBuildsystem

Öffentliche →   • IRC ChatDrawing PadAscii PadText PadVorstand Infoshare  Für Mitglieder →   • Shell AccountUsenet 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:

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]