Wenn heute der Datenverkehr und die Internetgeschwindigkeiten selbst für gewöhnliche Internetkunden in den Größenordnungen von Gigabyte pro Sekunde gemessen werden, fragen Sie sich vielleicht, was der Zweck ist, einen lokalen Repository-Cache im LAN einzurichten?

Einer der Gründe besteht darin, den Internet-Bandbreitenverbrauch zu reduzieren und die Geschwindigkeit beim Abrufen von Paketen aus dem lokalen Cache zu erhöhen. Aber ein weiterer wichtiger Grund sollte auch die Privatsphäre sein. Stellen Sie sich vor, dass die Clients Ihrer Organisation im Internet eingeschränkt sind, aber ihre Linux-Systeme regelmäßige Systemupdates für Software und Sicherheit benötigen oder einfach neue Softwarepakete benötigen. Um es weiter zu verdeutlichen, ein Server, der in einem privaten Netzwerk läuft, geheime sensible Informationen nur für ein eingeschränktes Netzwerksegment enthält und niemals dem öffentlichen Internet ausgesetzt werden sollte.
Dies sind nur einige Gründe, warum Sie einen lokalen Repository-Spiegel auf Ihrem LAN einrichten sollten, einen Edge-Server für diese Aufgabe delegieren und interne Clients konfigurieren sollten, um Software aus seinem Cache-Spiegel abzurufen.
Ubuntu bietet das Paket apt-mirror zur Synchronisierung des lokalen Caches mit den offiziellen Ubuntu-Repositories an, einen Spiegel, der über einen HTTP– oder FTP-Server konfiguriert werden kann, um seine Softwarepakete mit lokalen Systemclients zu teilen.
Für einen vollständigen Spiegelcache benötigt Ihr Server mindestens 120G freien Speicherplatz, der für lokale Repositories reserviert ist.
Anforderungen
- Mindestens 120G freier Speicherplatz
- Proftpd-Server installiert und im anonymen Modus konfiguriert.
Schritt 1: Server konfigurieren
1. Das Erste, was Sie tun möchten, ist, die nächsten und schnellsten Ubuntu-Spiegel in Ihrer Nähe zu identifizieren, indem Sie die Ubuntu-Archiv-Spiegel-Seite besuchen und Ihr Land auswählen.

Wenn Ihr Land mehr Spiegel bereitstellt, sollten Sie die Spiegeladresse identifizieren und einige Tests basierend auf den Ping– oder Traceroute-Ergebnissen durchführen.

2. Der nächste Schritt besteht darin, die erforderliche Software für die Einrichtung des lokalen Spiegel-Repositories zu installieren. Installieren Sie die Pakete apt-mirror und proftpd und konfigurieren Sie proftpd als eigenständigen Systemdämon.
$ sudo apt-get install apt-mirror proftpd-basic


3. Jetzt ist es an der Zeit, den apt-Mirror-Server zu konfigurieren. Öffnen und bearbeiten Sie die Datei /etc/apt/mirror.list, indem Sie Ihre nächsten Standorte hinzufügen (Schritt 1) – optional, wenn die Standard-Spiegel schnell genug sind oder Sie es nicht eilig haben – und wählen Sie den Systempfad, in dem die Pakete heruntergeladen werden sollen. Standardmäßig verwendet apt-mirror den Speicherort /var/spool/apt-mirror für den lokalen Cache, aber in diesem Tutorial verwenden wir einen anderen Systempfad und richten die set base_path-Direktive auf den Speicherort /opt/apt-mirror aus.
$ sudo nano /etc/apt/mirror.list

Sie können auch andere Quellenlisten vor der Bereinigungsanweisung – einschließlich Debian-Quellen – auskommentieren oder hinzufügen, abhängig davon, welche Ubuntu-Versionen Ihre Clients verwenden. Sie können beispielsweise Quellen von 12.04 hinzufügen, aber beachten Sie, dass das Hinzufügen weiterer Quellen mehr freien Speicherplatz erfordert.
Für Debian Quellenlisten besuchen Sie Debian Wiki oder Debian Sources Listen-Generator.
4. Alles, was Sie jetzt tun müssen, ist, einfach einen Verzeichnispfad zu erstellen und den Befehl apt-mirror auszuführen, um die offiziellen Ubuntu Repositories mit unserem lokalen Mirror zu synchronisieren.
$ sudo mkdir -p /opt/apt-mirror $ sudo apt-mirror

Wie Sie sehen können, führt apt-mirror mit der Indizierung und dem Herunterladen von Archiven fort und zeigt die Gesamtzahl der heruntergeladenen Pakete und ihre Größe an. Wie wir uns vorstellen können, ist 110-120 GB groß genug, um einige Zeit für den Download zu benötigen.
Sie können den Befehl ls ausführen, um den Inhalt des Verzeichnisses anzuzeigen.

Sobald der initiale Download abgeschlossen ist, werden zukünftige Downloads klein sein.
5. Während apt-mirror Pakete herunterlädt, können Sie Ihren Proftpd Server konfigurieren. Das Erste, was Sie tun müssen, ist, eine anonyme Konfigurationsdatei für Proftpd zu erstellen, indem Sie den folgenden Befehl ausführen.
$ sudo nano /etc/proftpd/conf.d/anonymous.conf
Fügen Sie dann den folgenden Inhalt zur Datei anonymous.conf hinzu und starten Sie den Proftd-Dienst neu.
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp RequireValidShell off # MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>

6. Der nächste Schritt besteht darin, den Pfad von apt-mirror mit dem Pfad von Proftpd zu verknüpfen, indem Sie ein Bind-Mount durchführen, indem Sie den Befehl ausführen.
$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Um dies zu überprüfen, führen Sie den Befehl mount ohne Parameter oder Optionen aus.
$ mount

7. Der letzte Schritt ist sicherzustellen, dass der Proftpd-Server nach einem System Neustart automatisch gestartet wird und das mirror-cache-Verzeichnis auch automatisch am FTP-Serverpfad eingebunden ist. Um Proftpd automatisch zu aktivieren, führen Sie den folgenden Befehl aus.
$ sudo update-rc.d proftpd enable
Um den apt-mirror-Cache automatisch auf Proftpd zu mounten, öffnen und bearbeiten Sie die Datei /etc/rc.local.
$ sudo nano /etc/rc.local
Fügen Sie die folgende Zeile vor der Anweisung exit 0 hinzu. Verwenden Sie auch eine Verzögerung von 5 Sekunden, bevor Sie den Mount-Versuch starten.
sleep 5 sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Wenn Sie Pakete aus den Debian-Repositories beziehen, führen Sie die folgenden Befehle aus und stellen Sie sicher, dass die entsprechenden Einstellungen für die oben genannte rc.local-Datei aktiviert sind.
$ sudo mkdir /srv/ftp/debian $ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Für eine tägliche apt-mirror-Synchronisation können Sie auch einen Systemplanungsauftrag erstellen, der jeden Tag um 2 Uhr morgens ausgeführt wird. Führen Sie den crontab-Befehl aus, wählen Sie Ihren bevorzugten Editor und fügen Sie die folgende Zeilensyntax hinzu.
$ sudo crontab –e

Fügen Sie auf der letzten Zeile die folgende Zeile hinzu.
0 2 * * * /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Jetzt wird jeden Tag um 2 Uhr morgens der System-Repository-Cache mit den offiziellen Ubuntu-Spiegelservern synchronisiert und eine Protokolldatei erstellt.
Schritt 2: Clients konfigurieren
9. Um lokale Ubuntu-Clients zu konfigurieren, bearbeiten Sie auf den Client-Computern die Datei /etc/apt/source.list, um auf die IP-Adresse oder den Hostnamen des apt-mirror-Servers zu verweisen – ersetzen Sie das HTTP-Protokoll durch FTP und aktualisieren Sie dann das System.
deb ftp://192.168.1.13/ubuntu trusty universe deb ftp://192.168.1.13/ubuntu trusty main restricted deb ftp://192.168.1.13/ubuntu trusty-updates main restricted ## Ad so on….

10. Um die Repositories anzuzeigen, können Sie tatsächlich einen Browser öffnen und auf die IP-Adresse oder den Domainnamen Ihres Servers mit dem FTP-Protokoll verweisen.

Das gleiche System gilt auch für Debian-Clients und -Server, die einzige erforderliche Änderung sind Debian-Mirror und Quellenliste.
Wenn Sie ein frisches Ubuntu– oder Debian-System installieren, geben Sie bei der Aufforderung des Installationsprogramms manuell Ihren lokalen Mirror mit dem FTP-Protokoll an.
Der große Vorteil des Besitzes eigener lokaler Mirror-Repositories besteht darin, dass Sie immer auf dem neuesten Stand sind und Ihre lokalen Clients keine Verbindung zum Internet herstellen müssen, um Updates oder Software zu installieren.
Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/