Squid mit SSL-Support in Debian und Ubuntu installieren

Aufgrund von idealistischen Lizenz-Streitigkeiten weigert sich Debian seit Jahren, sein Squid-Paket mit SSL-Support auszuliefern. in Mehreren Tickets wird deutlich, dass man die Squid-Entwickler zum Support von OpenTLS statt OpenSSL zwingen möchte und bis dahin in Kauf nimmt, Nutzer mit unsicherer Software ohne Verschlüsselung zu beliefern.

Da Ubuntu keine wirkliche Eigenleistung zeigt, sondern nur die Produkte von Debian mit einem neuen Logo versieht, sind Ubuntu und seine Abkömmlinge ebenfalls betroffen.

Mit den aktuellen Paketen kann Squid zwar die Verbindung zwischen Proxy und Webserver verschlüsselt aufbauen; die Verbindung vom Client zum Proxyserver bleibt aber zwingend unverschlüsselt. Somit ist der Proxyserver als Forward-Proxy nur dann brauchbar, wenn er in internen Netzen steht. Als den Einsatz als Reverse-Proxy ist mangels SSL-Support nicht zu denken.

Es ist jedoch äußerst einfach, das Problem selbst zu beseitigen.

Voraussetzungen

Um die Quellen den Squid-Pakets herunterladen zu können müssen die Zeilen für Quell-Pakete in der Datei /etc/apt/sources.list ergänzt werden, sofern sie noch nicht vorhanden sind:

deb-src http://deb.debian.org/debian stretch main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free

Grundlage sollte immer ein System sein, auf dem alle Updates installiert wurden:

 apt-get -y update ; apt-get -y upgrade

Im zweiten Schritt werden Pakete installieren, die zum Kompilieren des Source-Pakets erforderlich sind:

apt-get -y install openssl devscripts build-essential fakeroot libdbi-perl libssl1.0-dev

Abschließende installiert man die Paket-Abhängigkeiten von Squid:

apt-get build-dep -y squid3

Voraussetzung für den Betrieb von Squid ist das Paket squid-langpack. Bei dessen Installation wird leider der defekte SSL-unfähige Krüppel mit installiert, den wird sofort wieder entfernen:

apt-get install -y squid-langpack
apt-get remove --purge -y squid-common squid

Quellen herunterladen und kompilieren

Nun lädt man die Quellpakete für Squid in das dafür vorgesehene Verzeichnis herunter. Die Fehlermeldung über einen „unsandboxed“ Download kann getrost ignoriert werden. Wir wissen, dass die Quellen sicher sind.

cd /usr/local/src
apt-get source squid3

Wir wechseln in das Quellcode-Verzeichnis (evtl. Version anpassen) und bearbeiten die Datei mit den Regeln für den Kompiler.

cd squid3-3.5.23
vi debian/rules

Der Option DEB_CONFIGURE_EXTRA_FLAGS fügen wir am Ende ein paar Regeln hinzu:

--enable-ssl \
--enable-ssl-crtd \
--with-openssl

Nach dem Speichern starten wir das Kompilieren der Quellen, das u.U. sehr lange dauern kann:

debuild -us -uc

Pakete installieren

Nach der abgeschlossenen Kompolierung der Quellen finden wir die fertigen Pakete im Quellverzeichnis /usr/local/src. Evtl. enthalten die Dateien andere Versionsnummern; zum Zeitpunkt dieses Posts ist die Version 3.5.23-5 aktuell:

squid3_3.5.23-5+deb9u1_all.deb
squid_3.5.23-5+deb9u1_amd64.deb
squid-cgi_3.5.23-5+deb9u1_amd64.deb
squidclient_3.5.23-5+deb9u1_amd64.deb
squid-common_3.5.23-5+deb9u1_all.deb
squid-dbg_3.5.23-5+deb9u1_amd64.deb
squid-purge_3.5.23-5+deb9u1_amd64.deb

Die Pakete können nun mit dpkg installiert werden. Für den Betrieb von Squid sind allerdings nicht alle erforderlich. Hier wird der Mindestansatz gezeigt; wer mehr benötigt, darf natürlich auch mehr installieren, von der Installation unnötiger Pakete wird aber abgeraten. Aufgrund von Paket-Abhängigkeiten ist die Reihenfolge wichtig:

dpkg -i squid-common_3.5.23-5+deb9u1_all.deb
dpkg -i squid_3.5.23-5+deb9u1_amd64.deb
dpkg -i squid3_3.5.23-5+deb9u1_all.deb

Updates sperren und manuell durchführen

Debian „denkt“ nun, wir hätten sein verkrüppeltes Squid-Paket installiert. Erscheint ein Update, wird Apt es automatisch zur installation anbieten und unsere SSL-fähige Squid-Version mit der Schrott-Version des Debian-Paket-Maintainers ersetzen. Um das zu verhindern, sperren wir die manuell installierten Pakete für Updates. Zur Sicherheit tun wir das mit beiden Paketmanagern aptitude und apt, damit auch sicher nichts schief laufen kann.

aptitude hold squid3 squid squid-common
apt-mark hold squid3 squid squid-common

Es ist wichtig, zu realisieren, dass Debian nun keine Updates mehr installieren wird. Immer, wenn ein Sicherheitsupdate erscheint, muss die gesamte Prozendur wiederholt werden.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.