Diese Anleitung beschreibt die Installation von SQUID als SSL-Reverse-Proxy unter Debian-Linux. Das Ziel soll es sein, mit Hilfe eines Wildcard-Zertifikates, nur eine IP-Adresse und einen TCP-Port zu belegen.Der SQUID-Server arbeitet in dieser Konfiguration also als SSL-Endpunkt. Die Verschlüsselung läuft nur vom Client bis zu diesem Proxy und wird dann aufgebrochen. Es liegt an Ihnen selbst herauszufinden, ob dies für Sie in Frage kommt. Zum Beispiel haben wir die Domain: bluemm.net https://kunden.bluemm.net https://webmail.bluemm.net https://shop.bluemm.net
|
|
ACHTUNG:Diese Anleitung soll nur ein Beispiel für eine Grundinstallation sein und ist nicht für den Produktivbetrieb gedacht. Hier liegt es an jedem selbst die notwendigen Schritte durchzuführen. Dies gilt auch für die Kontrolle der Lizenz- und Nutzungsbedingungen der beschriebenen Software. |
|
Inhalt
|
|
1. Debian frisch installierenKlicken Sie HIER für die Anleitung der Grundinstallation Nach der Installation müssen wir natürlich noch ein paar Sachen anpassen. Nach der Grundinstallation bekommt dieser Rechner seine IP-Adresse per DHCP und das ist für einen Server in den wenigsten Fällen eine gute Idee. Editieren Sie die folgenden Dateien passend für ihre Umgebung und führen Sie einen Neustart durch. |
|
/etc/network/interfaces |
|
/etc/hostname |
|
2. OpsView-Agent installieren (optional)Der OpsView-Agent ist ein Client für den OpsView-Server. Wenn Sie den OpsView-Server nicht betreiben, brauchen Sie auch diesen Agent nicht zu installieren. |
|
OpsView GPG-Schlüssel runterladen und einbinden. Informieren Sie sich bitte beim Hersteller ob der Key evtl. geändert wurde. |
gpg --keyserver subkeys.pgp.net --recv-key 77CB2CF6 gpg --export --armor 77CB2CF6 | apt-key add - |
Debian die Bezugsquellen von OpsView beibringen. Editieren Sie die Datei /etc/apt/sources.list und tragen Sie folgende Zeilen am Ende ein.
HINWEIS: NON-Free wird für die JAVA-Komponenten benötigt.
|
deb http://apt.opsview.org/ squeeze main deb http://ftp.debian.org/debian squeeze non-free |
Quellen des Debian-Systems aktualisieren |
apt-get update |
OpsView-Agent installieren |
apt-get install opsview-agent |
3. Installation des SQUID-Proxy-Servers |
|
Notwendige Pakete für SQUID installieren |
apt-get install dpkg-dev devscripts build-essential fakeroot |
Wechsel in die lokalen SRC |
cd /usr/src/ |
Quellcode für SQUID, OpenSSL und OpenSSH holen |
apt-get source squid3 openssl openssh |
Abhängigkeiten prüfen und evtl. nachladen |
apt-get build-dep squid3 openssl openssh |
Wechsel in das SQUID-Verzeichnis |
cd squid-<version> |
Die Make-Regeln erweitern |
nano debian/rules --enable-snmp\ --enable-ssl \ --with-open-ssl=/pfad/zur/openssl.cnf |
Configure laufen lassen |
./configure |
Binary-Package erzeugen -b: Binary Package -us: *.dsc-Datei wird nicht durch GPG signiert -uc: *.changes-Datei wird nicht durch GPG signiert |
debuild -us -uc –b |
Verzeichnis verlassen |
cd .. |
LangPack für Squid installieren |
apt-get install squid-langpack |
Installation des selbst gebauten Package |
dpkg -i squid-package-version-#.deb dpkg -i squid-common-package-version-#.deb |
Prüfen ob SSL mit drin ist
squid3 –v |
|
SQUID aus dem regulären Upgrade-Prozess entfernenSQUID darf jetzt unter keinen Umständen mit den „APT“-Tools aktualisiert werden. In diesem Fall würde dann die eigene Kompilierung überschrieben werden und wäre dementsprechend nicht mehr funktionstüchtig. | |
Installieren des Paketes: wajig |
apt-get install wajig |
Exkludieren der Pakete, die nicht per „APT“-Tools aktualisiert werden sollen. |
wajig hold squid3 wajig hold squid3-common |
4. Monitoring des Hosts selbst (optional) |
|
Für eine Langzeitüberwachung dieses Hostes wird SNMP verwendet. Dieser Schritt ist ebenfalls optional und hat nichts mit SQUID als SSL-Reverse-Proxy zu tun | |
Installation des SNMP-Agenten und hilfreicher Tools | apt-get install snmp snmpd |
Konfiguriert den SNMPd nach euren Bedürfnissen. | snmpconf |
Für Testzwecke sollte folgende Konfiguration ausreichen. | |
5. Squid.conf anpassenDiese Parameter sind die Grundeinstellung für SSL. Alles andere was die Funktion und Sicherheit von SQUID angeht wurde weggelassen. Quelle: http://wiki.squid-cache.org/ConfigExamples/Reverse/SslWithWildcardCertifiate |
|
Aktivierung des Ports 443, Präsentation des Zertifikates und öffentlichen Schlüssels an den anfragenden Rechner. Ausserdem wird eine Standardseite konfiguriert und dem SQUID mitgeteilt, dass wir hier vHosts verwenden.Dies ist eine einzige Zeile in der SQUID-Konfigurationsdatei. | https_port 443 cert=/pfad/zum/zertifikat key=/pfad/zum/privaten/schlüssel cafile=/pfad/zum/zertifikat/der/CA defaultsite=www.bluemm.net vhost |
Festlegung des LogRotating | logfile_rotate 750 |
Festlegung des Formates der LogDatei. Dies ist ebenfalls nur eine Zeile. | logformat combined %>a %[ui %[un [%tl] „%rm %ru HTTP/%rv“ %>Hs %<st „%{Referer}>h“ „%{User-Agent}>h“ %Ss:%Sh |
Das erste Portal (Selfservice für Kunden) | cache_peer 172.16.3.150 parent 80 0 no-query originserver name=kunden acl sites_kunden dstdomain kunden.bluemm.net cache_peer_access kunden allow sites_kunden access_log /var/log/squid3/access_kunden.log combined sites_kunden |
Das zweite Portal (Ein Shopsystem) | cache_peer 172.16.3.151 parent 81 0 no-query originserver name=shop acl sites_shop dstdomain shop.bluemm.net cache_peer_access shop allow sites_shop access_log /var/log/squid3/access_shop.log combined sites_shop |
Das dritte Portal (Ein Exchange-Server) | cache_peer 172.16.3.152 parent 443 0 no-query proxy-only originserver login=PASS ssl sslflags=DONT_VERIFY_PEER front-end-https=on name=webmail acl sites_webmail dstdomain webmail.bluemm.net cache_peer_access webmail allow sites_webmail access_log /var/log/squid3/access_webmail.log combined sites_webmail |
Die Access-Regeln für die 3 Portale | http_access allow sites_kunden http_access allow sites_shop http_access allow sites_webmail |
6. Squid.conf anpassenDiese Parameter sind die Erweiterung für SNMP. Alles andere was die Funktion und Sicherheit von SQUID angeht wurde weggelassen. |
|
Die ACL für den Zugriff auf die SNMP-Schnittstelle des SQUID | acl snmp_zugriff snmp_community ReadOnly |
Der Standard-Port für SNMP (UDP 161) ist auf diesem Rechner evtl. schon belegt. Aus diesem Grund müssen wir uns einen anderen, nicht belegten, Port aussuchen. | snmp_port 3401 |
Hiermit wird der Port an eine bestimmte IP des Rechners gebunden. | snmp_incoming_address 0.0.0.0snmp_outgoing_address 0.0.0.0 |
Anwenden der definierten ACL | snmp_access allow snmp_zugriff allsnmp_access deny all |
Prüfen ob der SQUID den SNMP-Port bereitstellt. |