Ubuntu Update Server

Hallo Leute!
Ich hoffe ich es kann mir hier einer Helfen.

Ich habe ein Netzwerk ohne Internetzugang mit mehreren Ubuntu PCs. In diesem Netzwerk möchte ich gern ein Ubuntu Update Server einrichten. Ich habe bereits ein wenig gegooglet und bin immer wieder auf die zwei Möglichkeiten gestoßen:

  1. apt-cache
  2. apt-mirror

Jedoch, meiner Meinung nach, ist es nicht das richtige für mich.
Grund:
zu 1: So wie ich es verstanden habe, ist einer der PC mit apt-cache der Referenz-PC und braucht eine Internetverbingung um z.B. Ubuntu Updates zu ziehen.
zu 2: Ein komplette Spieglung der Ubuntu-Umgebung wird in meinen Fall nicht benötigt. Es ist also in diesem Fall mit Kanonen auf Spatzen geschossen.

Die Möglichkeit Internet zu diesem Netzwerk zu legen habe ich nicht. Schlimmer noch, aus Sichheitsgründen ist es sogar VERBOTEN!

Was ich brauche:

Ich brauchen eine Möglichkeit einen Ubuntu-Update-Server auf dem ausschließlich nur die Pakete zur Verfügung gestellt werden, die ich vorher kontrolliert habe.

Hat einer eine Idee? Vielleicht hat ja einer so etwas schon mal realisiert.

Würde mich über konstruktive Vorschläge sehr freuen!

Vielen Dank schon mal.

Gruß

Andreas

Hallo Andreas,

Ich habe ein Netzwerk ohne Internetzugang mit mehreren Ubuntu
PCs. In diesem Netzwerk möchte ich gern ein Ubuntu Update
Server einrichten.

Die Möglichkeit Internet zu diesem Netzwerk zu legen habe ich
nicht. Schlimmer noch, aus Sichheitsgründen ist es sogar
VERBOTEN!

Ich brauchen eine Möglichkeit einen Ubuntu-Update-Server auf
dem ausschließlich nur die Pakete zur Verfügung gestellt
werden, die ich vorher kontrolliert habe.

Was verstehst Du darunter „Pakete vorher zu kontrollieren“?
Wenn Du apt-cache und apt-mirror nicht möchtest bleibt eigentlich nur noch approx
http://wiki.ubuntuusers.de/Lokale_Paketquellen/approx
oder apt-cacher-ng
http://wiki.ubuntuusers.de/Lokale_Paketquellen/Apt-C…
aber die wirst Du wohl aus den gleichen Gründen nicht mögen.
Ich sehe aber nicht, wie Du zumindest ohne eine ganze Quelle zu spiegeln, dein Ziel erreichen kannst. Die meisten Pakete ziehen ja andere Pakete als Abhängigkeiten nach sich, von den Sicherheitsaktualisierungen ganz zu schweigen. irgendwoher müssen die Pakete ja letztendlich kommen.
Du kannst Images natürlich auch übers Netzwerk installieren und dabei CD/DVDs oder USB-Sticks benutzen
http://www.debian.org/releases/stable/i386/apas02.ht…
oder eine PXE-Installation
http://wiki.ubuntuusers.de/PXE-Installation
aber das läuft auch wieder „nur“ auf sowas wie apt-proxy bzw. einen gespiegelten Server hinaus.

Viele Grüße
Marvin

Hallo Marvin!

Vielen Dank für deine Antwort.

Die genannten Programme haben das primäre Ziel die Downloadmege zu reduzieren. Dies ist wahrscheinlich auch der Grund warum diese für meine Zwecke nicht geeignet sind. Mein Anliegen ist ein Netzwerkt mit Ubuntu Rechnern mit Updates zu versorgen, obwohl das Netzwerk kein Internetzugang hat. (Sicherheitsgründe)
So wie ich mir das Vorstelle, müsste ich in einer unsicheren (Netzwerkt mit Internet) Umgebung die Update-Packete runterladen. Verifizieren, dass diese auch von Ubuntu stammen und diese dann per USB-Stick oder andere Speichermedien in das sichere Netzwerk transportieren und von dort aus an die jeweiligen Clients verteilen.
Das einrichten der Clients in Bezug auf die Quelle ist kein Problem (/etc/apt/source.list) Was für mich jedoch momentan ein Problem ist, ist die Frage: Was brauchen ich um in sicheren Netzwerk ein „eigenen“ Ubuntu-Update-Server zu betreiben? Ein HowTo wäre ideal :smile:
Spiegelung wäre im Prinzip eine Lösung aber ich brauche nicht die ganzen 82GB an Daten nur die Update-Packete von Ubuntu.

Gruß
Andreas

Hallo Andreas,

Die genannten Programme haben das primäre Ziel die
Downloadmege zu reduzieren.

Naja, das kann man so sagen, aber man kann auch sagen, daß sie das Ziel haben einen lokalen Spiegelserver einzurichten und dadurch dann die Downloadmenge zu reduzieren.

So wie ich mir das Vorstelle, müsste ich in einer unsicheren
(Netzwerkt mit Internet) Umgebung die Update-Packete
runterladen. Verifizieren, dass diese auch von Ubuntu stammen

Die Quellen werden ja ohnehin mittels apt-key und dem Schlüsselbund authentifiziert, insofern ist mir nicht ganz klar, inwiefern Du noch eine eigene Verifizierung durchführen willst.

und diese dann per USB-Stick oder andere Speichermedien in das
sichere Netzwerk transportieren und von dort aus an die
jeweiligen Clients verteilen.

Was brauchen ich um in
sicheren Netzwerk ein „eigenen“ Ubuntu-Update-Server zu
betreiben?

Aber willst oder musst Du dir das tatsächlich antun, sozusagen täglich einen USB-Stick an dem einen (unsicheren) Rechner zu beschreiben und dann an den anderen (sicheren) Rechner anzustöpseln?
Welches Medium da auch dran hängt, es kann ja von den anderen Rechnern gelesen und als Quelle genommen werden, da sehe ich nicht die Schwierigkeit. Aber kann man da noch von „Update-Server“ reden?

Spiegelung wäre im Prinzip eine Lösung aber ich brauche nicht
die ganzen 82GB an Daten nur die Update-Packete von Ubuntu.

Ich habe nicht nachgezählt, weiss also nicht, wie Du auf 82 GB kommst, aber diese Zahl ist entschieden zu hoch gegriffen. Ich habe hier eine Ubuntu-DVD rumliegen, also maximal 4,7 GB, und da ist schon mehr drauf, als ich wahrscheinlich jemals in meinem Leben brauchen werde.
Wegen der Trennung stelle ich mir das so vor: Auf dem unsicheren Rechner richtest Du ganz normal einen Spiegelserver ein, in dessen Konfigurationsdatei /etc/apt/mirror.list nur die Update-Section eingetragen ist:

deb-amd64 http://ftp.de.debian.org/debian/ squeeze-updates main

Das ist die Zeile von meinem Rechner, für Ubuntu bin ich zu faul zum nachsehen, die Anpassung sollte aber kein Problem sein. Da lädtst Du einmal eine größere Menge an Updates herunter, für den Rest der Tage hält sich das dann in Grenzen. Bei mir kommen höchstens mal bei einem Kernel-Update mehr als 200MB an.
Anschliessend wird dieser Rechner vom Internet getrennt und der sichere Rechner synchronisiert sich mit ihm (rsync, ftpsync).
Wenns tatsächlich beim USB-Stick bleiben soll, dann werden eben die Update-Pakete, die ja letztendlich auch nur eine Verzeichnis-Struktur sind, damit auf den sicheren Rechner kopiert.
Aber da reicht meine Phantasie nicht aus, um zu sagen, warum man das nicht gleich so mit dem sicheren Rechner machen könnte, währenddessen den anderen Rechnern im Netz der Zugriff auf das Internet verwehrt bleibt.
Mir ist jedenfalls keine Lösung bekannt, wie man auf einem Rechner, der sich nie mit dem Internet verbinden darf, effektiv einen Update-Server einrichten sollte.

Viele Grüße
Marvin

Zu dem Punkt mit dem USB-Stick:
Es ist leider so, dass ich es mir antuen MUSS. (Also ich will es nicht)
Da aber das „sichere“ keinerlei Verbindung nach Außen haben darf bin ich dazu gezwungen.

Die Überprüfung führe ich selbst nicht durch. Es soll aber jede Datei (auch der Inhalt der Containerdateien) protokolliert werden und jeder Zeit zur Verifizierung und Überprüfung zur Verfügung stehen.
Da Ubuntu als eine Vertrauenswürdige Quelle gilt und jedes Paket mit Überprüfung geladen wird ist die Bezugsquelle nachvollziehbar. Der Weg in das sichere Netz erfolgt ausschließlich durch bestimmte Personen. Und selbst in dem sicheren Bereich müssen die Pakete noch mal signiert werden und zwar mit eigenem Zertifikat und nur die zertifizierten (eigener Zertifikat) Pakete dürfen von Clients installiert werden.

Nur zur meiner Verteidigung ich habe diese Regeln nicht aufgestellt ich muss diese nur erfüllen.

Aber ich habe die Lösung die ich gesucht habe. Und zwar mit apt-ftparchive kann man eigene Reposotories anlegen und mit Hilfe von HTTP Server entsprechend im Netzwerk verteilt werden. Die eigene Signatur ist damit auch möglich.
Nun muss ich lediglich die Paket in unsicheren runter laden. Sicherstellen das die Signatur mit Ubuntu übereinstimmt und die Checksummen prüfen. Dies geschieht ja automatisch mit apt (bei richtiger Konfiguration). Dann kopiere ich diese Pakete über USB-Stick in den sicheren Bereich und Signiere diese erneut mit dem Unternehmen Zertifikat. Die Clients können diese Pakete dann entsprechend installieren.
Eine Automatisierung dieses Vorgangs mache ich mit Scripten [bis auf das kopieren mit dem USB-Stickt :frowning:].

Danke für deine Hilfe. Dein Beitrag hat mir geholfen!

Gruß

Andreas

Hallo Andreas,

Nur zur meiner Verteidigung ich habe diese Regeln nicht
aufgestellt ich muss diese nur erfüllen.

Um Himmelswillen, Du musst dich nicht verteidigen. Sollte ich den Eindruck erweckt haben, so entschuldige ich mich dafür.

Aber ich habe die Lösung die ich gesucht habe. Und zwar mit
apt-ftparchive kann man eigene Reposotories anlegen und mit
Hilfe von HTTP Server entsprechend im Netzwerk verteilt
werden. Die eigene Signatur ist damit auch möglich.

Das ist eine interessante Lösung. Sollte ich mal in deine Lage kommen, in solch einem Hochsicherheitstrakt :wink: etwas ähnliches durchführen zu müssen, werde ich mich daran erinnern.
Ich erlaube mir mal, hier einfach zwei kleine Anleitungen dafür zu verlinken, die ich durch deinen Hinweis gefunden habe.
Zuerst deine Lösung mit apt-ftparchive:
http://www.pro-linux.de/artikel/2/print/1459/apt-rep…
und dann eine Variante mit reprepro
http://www.pro-linux.de/artikel/2/print/1475/apt-rep…

Viele Grüße
Marvin