Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Wie erstelle ich einen APT-Proxy mit einem Raspberry PI mit apt-cacher-ng?

Raspberry Pi
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Wenn Sie irgendwo mit langsamerem Internet leben und arbeiten und eine Reihe von Debian- und / oder Ubuntu-Systemen benötigen, aktualisieren Sie dies apt Proxy wird Ihr Leben viel einfacher und schneller machen.

APT ist das Programm, mit dem Debian- und Ubuntu Linux-Distributionen ihre Software installieren und aktualisieren. In ihrer Out-of-the-Box-Konfiguration, wenn Sie verwenden apt um ein Programm zu installieren, zB:

sudo apt install inkscape

APT lädt das Softwarearchiv von den Distributionsrepository-Servern herunter und installiert es. Dies funktioniert hervorragend, wenn das Softwarepaket klein ist, nur wenige Dateien heruntergeladen werden müssen und Ihre Internetverbindung schnell ist.

Wenn Sie jedoch viel Software installieren müssen und ein Büro voller Computer haben, die alle aktualisiert werden müssen, und Sie eine langsame Internetverbindung haben, kann es lange dauern, bis alles auf jeden Computer heruntergeladen und installiert ist.

Ein Proxyserver, insbesondere ein Caching-Proxy, wie z apt-cacher-ng ist ein Programm, das sich zwischen dem Computer befindet, den Sie aktualisieren möchten, und dem Repository-Server, auf dem sich die Software befindet, die Sie herunterladen. Der Computer, den Sie aktualisieren, fordert die Software vom Proxyserver anstelle des Repositorys an. Der Proxy leitet die Anforderung dann an das Repository weiter, lädt die Software herunter und gibt sie an den Aktualisierungscomputer zurück.

Der clevere Teil ist, dass der Proxy eine Kopie aller heruntergeladenen Softwaredateien aufbewahrt. Wenn ein anderer Computer im lokalen Netzwerk versucht, dieselben Dateien herunterzuladen, dh dieselbe Software installieren oder aktualisieren möchte, verfügt der Proxy bereits über eine Kopie, die er dem anfordernden Computer geben kann, ohne sie herunterladen zu müssen.

Nach dem ersten Download werden alle nachfolgenden Downloads mit der Geschwindigkeit Ihres lokalen Netzwerks gezippt.

Requirements

Um dieses Handbuch zu vervollständigen, benötigen Sie Folgendes:

  • Ein Bildschirm und eine Tastatur zum Anschließen an Ihren Raspberry Pi. Diese sind optional, wenn Sie SSH in Ihren Raspberry Pi einbinden können.
  • Ein nicht root, sudo-fähiger Benutzer auf Ihrem Raspberry Pi.
  • Ein Debian- oder Ubuntu-System in Ihrem lokalen Netzwerk.

Wenn Sie alle diese Anforderungen erfüllt haben, melden Sie sich als Sudo-Benutzer bei einem Terminal auf Ihrem Raspberry PI an und fahren Sie mit dem nächsten Abschnitt fort.

Installing apt-cacher-ng

Vor der Installation neuer Pakete unter Linux empfiehlt es sich immer, ein Systemupdate durchzuführen. Dadurch wird sichergestellt, dass auf Ihrem System dieselben Paketversionen ausgeführt werden, die in den Distributionsrepositorys verfügbar sind, und dass Ihre lokale Liste der Paketversionen auf dem neuesten Stand ist. Dadurch wird sichergestellt, dass bei der Installation von keine Fehler auftreten apt-cacher-ng.

Die folgenden Befehle aktualisieren Ihr System:

$ sudo apt update
$ sudo apt upgrade

Jetzt, da Ihr Raspberry PI auf dem neuesten Stand ist, installieren Sie ihn apt-cacher-ng :

$ sudo apt install apt-cacher-ng

Das Installationsprogramm fragt Sie, ob Sie HTTPS-Tunnel aktivieren möchten apt-cacher-ng. Sie sollten diese Frage mit „Nein“ beantworten. Wir werden APT so konfigurieren, dass HTTPS-Verbindungen über Proxy übertragen werden apt-cacher-ng anstatt Tunnel zu brauchen. Darüber hinaus können Sie diese Optionen in der ändern apt-cacher-ng Konfigurationsdatei später, wenn Sie es brauchen.

In Übereinstimmung mit modernen Software-Konventionen, a systemd Die Servicedatei wird bei der Installation erstellt und aktiviert apt-cacher-ng. Das bedeutet, dass apt-cacher-ng wird beim Booten automatisch gestartet und Sie können auch verwalten apt-cacher-ng mit den normalen systemd service Befehlen:

$ sudo systemctl start apt-cacher-ng.service
$ sudo systemctl stop apt-cacher-ng.service
$ sudo systemctl restart apt-cacher-ng.service

apt-cacher-ng wird jetzt als Systemdämon ausgeführt, der den Port überwacht 3142 und bereit, Verbindungen von zu akzeptieren apt.

Configuring apt on the Raspberry PI

Das erste System, das wir für die Verwendung konfigurieren werden apt-cacher-ng Proxy wird sein apt auf dem Raspberry PI. Die Art und Weise, wie wir konfigurieren werden apt zu verwenden, die apt-cacher-ng Der Proxy besteht darin, die URLs neu zu schreiben aptQuelldatei. Die Quelldatei enthält eine Liste der URLs der Repositorys, unter denen die Software der Distribution heruntergeladen werden kann.

Die Hauptquellendatei für Raspbian finden Sie unter /etc/apt/sources.list und bei einer Neuinstallation sieht es wie folgt aus:

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
# deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Die einzige aktive (nicht kommentierte) Zeile hier ist die erste, dh:

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Wir müssen diese Zeile ändern, also öffnen Sie die Datei mit einem Texteditor, den wir hier verwenden nano:

$ sudo nano /etc/apt/sources.list

Ändern Sie die erste Zeile so, dass sie wie folgt aussieht:

deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Was Sie hier getan haben, war einzufügen 127.0.0.1:3142 in die URL.

Die IP-Adresse 127.0.0.1 ist immer die IP des lokalen Computers, die oft als "localhost" bezeichnet wird. Das :3142 Teil gibt den Port an.

Speichern und schließen nano durch Drücken CTRL+o, ENTER, CTRL+x.

Sie müssen jetzt die gleiche Änderung an einer Quelldatei unter vornehmen /etc/apt/sources.list.d/raspi.list.

apt und apt-cacher-ng sind jetzt bereit zum Testen.

Testing apt with apt-cacher-ng

Wann immer du rennst apt Es wird eine Kopie aller heruntergeladenen Dateien zwischengespeichert. apt tut dies, damit nein, es werden keine unnötigen Downloads durchgeführt und auch eine lokale Kopie der Installationsarchive aufbewahrt, falls ein Paket neu installiert werden muss und kein Internet vorhanden ist.

Dieses lokale Caching bedeutet das apt wird den Proxy nicht kontaktieren, wenn Sie ausführen apt update or apt upgrade wenn sich das Repository nicht geändert hat. Um den Proxy zu testen, müssen wir ihn daher löschen apt manuell zwischenspeichern. Die folgenden Befehle löschen alle aptzwischengespeicherte Pakete:

$ sudo rm -rf /var/lib/apt/lists/
$ sudo rm -rf /var/cache/apt/*

Jetzt testen apt durch Ausführen eines Updates und Überprüfen auf Fehler:

$ sudo apt update

Sie sollten mehrere Ausgabezeilen sehen, die wie folgt aussehen:

Get:1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]

Die URL beginnt http://127.0.0.1:3142/ zeigt, dass die apt empfängt die Update-Dateien von apt-cacher-ng.

Sie können auch die apt-cacher-ng Protokolldatei für Fehler durch Ausführen dieses Befehls:

$ tail -f /var/log/apt-cacher-ng/apt-cacher.log

in einem zweiten Terminal. Wenn Sie keine Fehler feststellen, können Sie ein Debian- oder Ubuntu-System in Ihrem lokalen Netzwerk konfigurieren.

Configuring an Ubuntu or Debian System to use apt-cacher-ng

Auf den Debian- oder Ubuntu-Systemen in Ihrem lokalen Netzwerk, die Sie vom apt-cacher-ng-Proxy profitieren möchten, muss keine zusätzliche Software installiert werden. Alles, was Sie tun müssen, ist, ihre Quelldateien neu zu schreiben, damit sie alle ihre Updates von sammeln apt-cacher-ng anstatt das Repository direkt zu kontaktieren.

Die Änderung, die Sie an den Quelldateien vornehmen müssen, ist genau die gleiche wie die Bearbeitung, die Sie an den Quellen in der vorgenommen haben Raspberry PI außer dass Sie die IP-Adresse des Raspberry PI anstelle von verwenden müssen 127.0.0.1.

Dies bedeutet, dass Sie zuerst die IP-Adresse Ihres Raspberry Pi erhalten müssen. Der einfachste Weg, um die IP-Adresse des Raspberry PI zu erhalten, besteht darin, den folgenden Befehl in einem Terminal auf dem Raspberry PI auszuführen:

$ hostname -I

Dadurch werden die IP-Adressen des Raspberry PI ausgedruckt. Verwenden Sie die erste IPv4-IP-Adresse. Hier werde ich die Beispieladresse verwenden 192.168.0.2. Sie müssen die IP-Adresse Ihres Raspberry PI ersetzen.

Öffnen Sie auf dem Client-Computer die Hauptquellendatei mit einem Texteditor, den wir hier verwenden nano:

$ sudo nano /etc/apt/sources.list

Die Datei enthält Zeilen mit demselben Format wie die auf den Raspberry PIs /etc/apt/sources.list. Hier ist eine Beispielzeile aus einer Debian Buster-Installation:

deb http://ftp.debian.org/debian buster main

Sie müssen diese Zeilen wie folgt unter Verwendung der IP Ihres Raspberry PI bearbeiten, z. B.:

deb http://192.168.0.2:3142/ftp.debian.org/debian buster main

Bearbeiten Sie alle Zeilen in /etc/apt/sources.list und jede andere Quelldatei unter /etc/apt/sources.list.d/. Löschen Sie dann alle lokal zwischengespeicherten Dateien zum Testen:

$ sudo rm -rf /var/lib/apt/lists/*
$ sudo rm -rf /var/cache/apt/*

Aktualisieren Sie das System erneut:

$ sudo apt update
$ sudo apt upgrade

Die Ausgabe von apt sollte anzeigen, dass die Update-Dateien von der kommen apt-cacher-ng Proxy durch Drucken von Zeilen wie den folgenden, die die IP des Proxys enthalten:

Hit:1 http://192.168.0.2:3142/ftp.debian.org/debian buster InRelease

Dieses Gerät ist jetzt vollständig für die Verwendung Ihres neuen Geräts konfiguriert apt Proxy. Sie müssen alle neuen Quelldateien bearbeiten, die Sie in Zukunft zu diesem Computer hinzufügen, einschließlich aller neuen Zeilen, die für Distributions-Upgrades hinzugefügt werden.

APT over HTTPS

Die Quelldateien, die wir uns bisher angesehen haben, haben alle HTTP-Verbindungen verwendet. Dies ist eine bewusste Entwurfsentscheidung von Debian und Ubuntu, da in den Installationsarchiven interne kryptografische Signaturen integriert sind, die böswillige Manipulationen verhindern. HTTPS bietet daher nicht viel zusätzliche Sicherheit und erhöht gleichzeitig die technische Belastung durch eine große Anzahl geografisch unterschiedlicher Spiegel erheblich.

Die Verwendung von HTTPS bietet jedoch mehrere Vorteile, die bedeuten, dass einige nicht offizielle Repositorys HTTPS verwenden. apt-cacher-ng unterstützt zwei Methoden zur Behandlung von HTTPS-Repositorys.

Die erste besteht darin, die Verbindungen vom Client direkt an den Repository-Server weiterzuleiten. Dies hat die unglückliche Folge, dass die Pakete nicht zwischengespeichert werden apt-cacher-ng. Wenn du rennen willst apt-cacher-ng in diesem Modus dann öffnen /etc/apt-cacher-ng/acng.conf mit einem Texteditor:

$ sudo nano /etc/apt-cacher-ng/acng.conf

Und fügen Sie die folgende Zeile hinzu:

PassThroughPattern: .*

Dies konfiguriert apt-cacher-ng Damit können die HTTPS-Verbindungen vom Client zum Repository weitergeleitet werden.

Die zweite Methode besteht darin, die Repository-Zeilen in den Quelldateien des Clients so zu ändern, dass der Client eine Verbindung herstellt apt-cacher-ng über HTTP aber apt-cacher-ng stellt dann über HTTPS eine Verbindung zum Repository her. Die Pakete werden auf heruntergeladen apt-cacher-ng über HTTPS werden sie dann über HTTP an den Client-Computer gesendet. apt-cacher-ng kann die Pakete zwischenspeichern und wir verlieren nicht die Vorteile von HTTPS.

Die folgende Quellenzeile dient zum Zugriff auf die Docker Repository über HTTPS:

deb [arch=amd64] https://download.docker.com/linux/debian buster stable

Beim Bearbeiten von HTTP-Zeilen haben Sie hinzugefügt 192.168.0.2:3142 in die URL. Wenn Sie HTTPS-Zeilen bearbeiten, müssen Sie diese hinzufügen 192.168.0.2:3142/HTTPS/// z.B:

deb [arch=amd64] http://192.168.1.67:3142/HTTPS///download.docker.com/linux/debian buster stable

Jetzt fordert der Client-Computer das Paket von an apt-cacher-ng über HTTP und apt-cacher-ng lädt die Pakete von Docker über HTTPS herunter und speichert sie zwischen.

Administering apt-cacher-ng

Für die Verwaltung steht eine Web-GUI zur Verfügung apt-cacher-ng in Ihrem lokalen Netzwerk. Um auf diese GUI zugreifen zu können, müssen Sie Ihren Browser auf Folgendes verweisen:

http://<Proxy IP>:3142/acng-report.html

Ersetzen der beispielhaften lokalen Netzwerk-IP, 192.168.0.2, gibt uns:

http://192.168.0.2:3142/acng-report.html

Der erste und wichtigste Abschnitt der GUI, "Statistik übertragen", enthält Informationen zur Datenmenge, die aus den Repositorys heruntergeladen wurde, im Vergleich zu Daten, die aus dem Cache bereitgestellt wurden. Das folgende Bild zeigt diesen Abschnitt der GUI:

Der Abschnitt "Cache-Effizienz" informiert Sie über die Anzahl der Dateien apt-cacher-ngwird aus dem Cache Vs bedient, die den Cache umgangen haben. "Treffer" geben Dateien an, die der Proxy aus dem Cache bereitgestellt hat, und "Misses" sind Dateien, die der Proxy-Computer aus dem Repository heruntergeladen und dem Cache hinzugefügt hat.

Managing the cache

Die Dateien, die apt-cacher-ng Das Herunterladen und Bereitstellen auf den Clientcomputern in Ihrem lokalen Netzwerk wird veraltet, wenn die Entwickler dem Repository eine neue Version hinzufügen. Wenn dies auftritt, sind diese abgestanden apt-cacher-ng müssen sie aus dem Cache entfernen, da sie nicht mehr benötigt werden und Speicherplatz auf Ihrem Laufwerk belegen. Der Raspberry PI überprüft den Cache und entfernt die veralteten Dateien automatisch.

Bei der Installation apt-cacher-ng Sie haben auch eine installiert cron Datei unter:

/etc/cron.daily/apt-cacher-ng

Dies wird von ausgeführt cron jeden Tag, der den Cache für Sie löscht.

Wenn Sie den Cache manuell überprüfen und löschen möchten, sollten Sie sich bei der Web-GUI anmelden und auf die Schaltfläche "Scan und / oder Ablauf starten" klicken. Dies ist normalerweise nicht erforderlich. Möglicherweise müssen Sie dies jedoch tun, wenn Sie von schnell aktualisierten Repositorys aktualisieren.

Sie haben jetzt eine effiziente apt Proxy, der die Netzwerkbelastung durch große, wiederholte Systemaktualisierungen in Ihrem Büro oder zu Hause verringert.

Interessiert an der Erkundung von Raspberry Pi, Schauen Sie sich diesen Online-Kurs an.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Datenschutz
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder