Dies ist eine alte Version des Dokuments!


Squid DEB Proxy

Verwendetes System: Ubuntu 16.04

Dieser ersetzt den Apt-cacher-NG vollwertig. Damit sind auch lässtige Updateprobleme behoben. Auch ist gibt es einen Client der per Multcast den Squid dynamisch automatisch einbindet.

apt install squid-deb-proxy -y

Hier wird es entwas kniffliger. Im Gegesatz zum Apt-cacher muss im Squid wirklich jede Quelle die gecacht werden soll eingetragen werden. ACLs für Netze können auf ALL gesetzt oder die gewünschten Netze per IPV4/IPV6 angegeben werden. Der Ort des Caches kann frei gewählt werden. Hier auf einem eigenen gzip-9 komprimierten ZFS-Dataset.

nano /etc/squid-deb-proxy/allowed-networks-src.acl
...
all
...

Mit nur diesem einen Eintrag sind alle Netze zum Proxy zugänglich.

nano /etc/squid-deb-proxy/squid-deb-proxy.conf
...
cache_dir aufs  /home/squid-deb-proxy 40000 16 256
...
# we need a big cache, some debs are huge
maximum_object_size 1024 MB
...

Die Objektgröße bezieht sich auf die DEB-Pakete. Setzt man das auf 1024 so wird der Download über diesen Wert pro Paket nicht gecacht. Setzt sein Cachdir extern muss man das Appamor mitteilen. Z.B:

nano  /etc/apparmor.d/usr.sbin.squid
# squid-deb-proxy
...
/mnt/NFS4-fqdn/home/squid-deb-proxy/ r,
/mnt/NFS4-fqdn/home/squid-deb-proxy/** rwk,
...

Danach Apparmor und Squid neu starten.

Die Datei je nach Quellen/Wunsch anpassen. /etc/squid-deb-proxy/mirror-dstdomain.acl

mirror-dstdomain.acl
# mirror-dstdomain.conf
# 
# network destinations that are allowed by this cache
 
# default ubuntu and ubuntu country archive mirrors
.archive.ubuntu.com 
ports.ubuntu.com 
security.ubuntu.com
ddebs.ubuntu.com
mirrors.ubuntu.com
 
#official third party repositories
.archive.canonical.com
.extras.ubuntu.com
 
# default changelogs location, this includes changelogs and the meta-release
# file that has information about new ubuntu versions
changelogs.ubuntu.com
 
# additional destinations can be added to the directory:
#  /etc/squid-deb-proxy/mirror-dstdomain.acl.d
 
 
# osit.cc
.puppetlabs.com
.styrion.at
.styrion.net
.steampowered.com
.mkvtoolnix.download
.iteas.at
.freerdp.com
.launchpad.net
.google.com
.virtualbox.org
.kde.org
.teamviewer.com
.skype.com
.debian.org
.proxmox.com
.download.onlyoffice.com

Zum Schluss den Dienst noch neu Starten:

systemctl restart squid-deb-proxy.service

Wer bereits den Apt-cacher im Einsatz hat, möchte sich natürlich so wenig Arbeit wie möglich antun. Hierfür genügt es den Port des Proxys in der Datei /etc/squid-deb-proxy/squid-deb-proxy.conf zu ändern.

...
# default to a different port than stock squid
http_port 3142
...

Statisch per:

echo 'Acquire::http { Proxy "http://hostname.local:3142"; };' | sudo tee /etc/apt/apt.conf.d/01proxy

Automatische Anbindung per Multicast (Avahi):

apt install squid-deb-proxy-client -y

Diese Methode ist natürlich für Mobile Geräte optimal und funktioniert wunderbar.