Hauseigenes Apt-Repo: https://apt.iteas.at
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
Hierbei wird auch der normale Squidproxy mit installiert. Diesen brauchen wir auf jeden Fall mal nicht.
systemctl disable squid.service
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.d/10-default
In dieser Datei werden alle weiteren Mirrors angelegt. Weiteres sind auch noch diese Dateien vorhanden, und auch schon default mit ACL's befüllt, werden aber nicht manuell verändet.
/etc/squid-deb-proxy/autogenerated/mirror-dstdomain.acl /etc/squid-deb-proxy/mirror-dstdomain.acl
# /etc/squid-deb-proxy/mirror-dstdomain.acl.d/10-default # # network destinations that are allowed by this cache .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 # osit.cc .puppetlabs.com .styrion.at .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.opensuse.org .liveusb.info .tuxedocomputers.com .leaseweb.net .ocf.berkeley.edu .packages.graylog2.org .mirror.umd.edu .mirrors.syringanetworks.net .mirrors.gigenet.com .mirror.web-ster.com .raspbian.phirephly.design .fortinet.com .api.snapcraft.io .signal.org .cloudfront.net .software-univention.de .nightly.odoo.com .onlyoffice.com .cinelerra-gg.org packages.grafana.com packages.microsoft.com www.benno-mailarchiv.de repository.spotify.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 ...
Betreibt man den Proxy auf UCS muss man noch die Firewallports öffnen:
ucr set security/packetfilter/tcp/3142/all=ACCEPT service univention-firewall restart
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.