Updates/Eigener Update Server

MJS

Active Member
Hallo Jungs,

ich bin Neuling in Sachen BSD und habe mich entschlossen mal mit FreeBSD anzufangen. Komme von der SuSE-Schiene und will mal was anderes sehen. Ich habe erfolgreich mal eine Maschine installiert. Nun möchte ich das System auf den aktuellen Stand bringen...

Ich habe die Methode via cvsup mal angeschaut, jedoch sitze ich hier in der Firma mit vorgschalteten Firewall. Diese Lässt nur HTTP und HTTPS zu. Ein FTP-Proxy ist geplant.

Meine Frage nun, kann ich mir von einem HTTP-Server die aktuellen Ports und Sourcen ziehen, die ich für ein Update benötige. Mein Gedanke wäre, dass ich hierfür einen eigenen Update Server baue, der sich die Daten via http holt und als interner FTP-Server allen 'hoffentlich* zukünftigen BSD-Servern zur verfügung stellt. Der Server könnte via wget und Cronjob die Updates reglmäßig holen.

Ist das so möglich, wie ich mir das Vorstelle ???
Ich habe so was schon aml Laufen für SuSE-Updates.

Ich brauche unbedingt Hilfe.

DANKE.

MJS
 
Aus der Manpage von cvsup:

-p port Sets the TCP port to which cvsup attempts to connect on the
server host. This feature is primarily for testing. The
default port is 5999. When not in passive mode (see the
description of the -P option), the server also uses the next
lower port to establish a second connection back to the
client.


Hilft Dir das bei Deiner Firewall weiter?
 
>> Hilft Dir das bei Deiner Firewall weiter?[/QUOTE]
Leider Nein.

Mein Chef will die Firewall nicht aufmachen. Deshalb suche ich eine Lösung, die über HTTP funktioniert.

Wie machen das eigentlich andere Firmen, die ja vielleicht sogar zwei Firewalls haben ???

MJS
 
Hmm, wie sieht die Firewallloesung aus bei euch?
Es reicht also nicht, cvsup ueber Port 80 laufen zu lassen?

For more information on using CVSup with specific kinds of firewalls, see
the CVSup FAQ at <http://www.cvsup.org/>.
 
moonlook schrieb:
Hmm, wie sieht die Firewallloesung aus bei euch?
Es reicht also nicht, cvsup ueber Port 80 laufen zu lassen?

For more information on using CVSup with specific kinds of firewalls, see
the CVSup FAQ at <http://www.cvsup.org/>.


Wir setzen als Firewall-Lösung die SuSE Firewall on CD 2 ein. Leider, mag mich der Firewall-Admin nicht mehr so sehr, seit ich ihm gesagt habe, dass die Firewall abgekündigt ist und er mal nach was gescheitem schauen soll...

Ich habe folgende Probeleme:
Es gibt einen Proxy in der DMZ (Squid auf SuSE 9.0).
Die Firewall ist nur für die Ports 25, 80, 443 offen.

Wie hat Du das mit cvsup gemeint ?
Müsste hier hierbei über den Proxy gehen ?
Wenn es geht, würde ich gerne die Updates auf einem zentralen Server ablegen, so dass ich immer einen aktuellen internen Server habe, über den ich dann die anderen FreeBSD Server updaten kann.

Verstehst Du was ich meine ?

Ich will mich mal schon jetzt für Eure Hilfe bedanken.
 
MJS schrieb:
Wir setzen als Firewall-Lösung die SuSE Firewall on CD 2 ein. Leider, mag mich der Firewall-Admin nicht mehr so sehr, seit ich ihm gesagt habe, dass die Firewall abgekündigt ist und er mal nach was gescheitem schauen soll...
<<-- LOL :)
Ich habe folgende Probeleme:
Es gibt einen Proxy in der DMZ (Squid auf SuSE 9.0).
Die Firewall ist nur für die Ports 25, 80, 443 offen.

Wie hat Du das mit cvsup gemeint ?
Müsste hier hierbei über den Proxy gehen ?
Wenn es geht, würde ich gerne die Updates auf einem zentralen Server ablegen, so dass ich immer einen aktuellen internen Server habe, über den ich dann die anderen FreeBSD Server updaten kann.

Verstehst Du was ich meine ?

Ich will mich mal schon jetzt für Eure Hilfe bedanken.

Ich meinte (siehe dazu nochmals genauer die Manpage von cvsup und Parameter -P, ich hab es selbst noch nciht versucht), dass cvsup ueber Port 80 alles holt, also src und Ports. Fuer die anderen FreeBSD-Server mountest du einfach /usr/ports und /usr/src per NFS von dem jetzigen an die anderen Server. ok?
 
Wenn du einen Host ausserhalb der Firewall unter deiner Kontrolle hast, ist das ganz einfach zu bewerkstelligen. Aber ACHTUNG: Du kannst deinen Job verlieren, wenn dein Chef erfaehrt, dass du die Firewall umgehst!

Auf Kiste X im Internet machst du also cvsup drauf und aktualisierst /usr/src und /usr/ports nach belieben. Es laeuft weiterhin ein sshd auf Port 443 und rsync ist installiert.
Hinter der Firewall machst du nun sowas:
Code:
rsync --rsh="ssh -l user -p 443" -vaP hostX:/usr/src /usr/src
rsync --rsh="ssh -l user -p 443" -vaP hostX:/usr/ports /usr/ports

Ich wuerde noch vorher sicherstellen, das /usr/ports/distfiles auf Host X leer ist. Das dauert mit rsync sonst nur unverhaeltnismaessig lange.

Du kannst das ganze natuerlich auch mit /home/ncvs machen, und dann im lokalen Netz damit einen cvsup Server anbieten, aber /usr/src und /usr/ports per NFS freigeben und mounten duerfte _erheblich_ einfacher und vernuenftiger sein, zumal dann die distfiles nur einmal gezogen werden muessen.

Da die distfiles ja eh per ftp/http kommen, duerfte das dann keine weiteren Schwierigkeiten mehr geben.

hth
 
moonlook schrieb:
<<-- LOL :)


Ich meinte (siehe dazu nochmals genauer die Manpage von cvsup und Parameter -P, ich hab es selbst noch nciht versucht), dass cvsup ueber Port 80 alles holt, also src und Ports. Fuer die anderen FreeBSD-Server mountest du einfach /usr/ports und /usr/src per NFS von dem jetzigen an die anderen Server. ok?

Ich habe es mit der Option versicht, doch es geht leider nicht. Es wird gesagt "Reversed Port 80 not permittet".

Trotzdem Danke für den Tip.
 
Da die distfiles ja eh per ftp/http kommen, duerfte das dann keine weiteren Schwierigkeiten mehr geben.

Ich habe leider keine Kist im Internet, aber die Idee ist ja klasse...

Gibt es noch einen anderen Weg ?
Ich habe das was von httptunnel gelesen.
Was bringt das und ist das eine akzeptable Lösung ???

[Ich wuerde noch vorher sicherstellen, das /usr/ports/distfiles auf Host X leer ist. Das dauert mit rsync sonst nur unverhaeltnismaessig lange.
Dumme Frage, was bewirkt dieses Verzeichnis überhaupt ???

Du kannst das ganze natuerlich auch mit /home/ncvs machen, und dann im lokalen Netz damit einen cvsup Server anbieten, aber /usr/src und /usr/ports per NFS freigeben und mounten duerfte _erheblich_ einfacher und vernuenftiger sein, zumal dann die distfiles nur einmal gezogen werden muessen.
Ich verstehe nicht ganz...
Kannst Du mir mal versichen diesen Vorschalg zu erklären ?
 
> Gibt es noch einen anderen Weg ?
> Ich habe das was von httptunnel gelesen.
> Was bringt das und ist das eine akzeptable Lösung ???

Ja, damit baust du einen Tunnel mittels CONNECT/https über den Proxy auf. Duch den Tunnel kannst
du so ziemlich alles schicken was du willst. Dazu gab es schon Einiges hier im Forum.

http://www.bsdforen.de/showthread.php?t=6257&page=2
 
Hallo,
unter /usr/ports/distfiles werden die runtergeladenen Source-Pakete gespeichert.

Ich habe mir mit /usr/ports/net/cvsup-mirror einen lokalen cvsup-Mirror eingerichtet und bin gerade dabei die distfiles zu spiegeln.
Die anderen Rechner bekommen vom Server dann die Distfiles per NFS geliefert und bekommen die Updates per cvsup vom lokalen Server geliefert.
Sollte ich irgendwann mal mein LAN über WLAN öffnen, dann werde ich meiner Nachbarschaft diesen Dienst dann auch anbieten.

Sven
 
marmorkuchen schrieb:
Die anderen Rechner bekommen vom Server dann die Distfiles per NFS geliefert und bekommen die Updates per cvsup vom lokalen Server geliefert.
Warum nicht gleich /usr/ports komplett per NFS freigeben? So musst du immer umstaendlich cvsup laufen lassen und verschwendest einiges an Inodes auf jedem deiner Rechner :)
 
MrFixit schrieb:
Warum nicht gleich /usr/ports komplett per NFS freigeben? So musst du immer umstaendlich cvsup laufen lassen und verschwendest einiges an Inodes auf jedem deiner Rechner :)
Für die Ports hast Du Recht, aber die die Systemupdates kann ich damit nicht abdecken.

Sven
 
Hallo Jungs,

nach allem was ich gehöhrt habe, erst einmal ein ganz Dickes Dankeschön. So viel Hilfe und vor allem so schnelle Antworten, so was habe ich noch nie erlebt. Macht weiter so, denn ein Freies System ist nur so gut, wie die Leute, die dahinter stehen.. ECHT KLASSE !!! :)

Ich werde mich wohl oder übel mal mit dem Firewall Admin zusammensetzen. Wenn ich mich richtig schlau gemacht habe, zum einen von der internen Firewall in die DMZ eine IP-Weiterleitung auf Port 5999 zuslassen. Zum anderen ein Masquerading von innen nach aussen wieder mit Port 5999 zulassen.
Und im muss cvs wohl mit folgendem Aufruf starten:
cvsup -P m supfile
Korrekt ???

Aber hierzu dann eine Frage, wie kann ich es machen, dass ich die Updates für alle anderen FreeBSD Server bereitstelle. Kann ich folgendes machen:
Ich habe einen Server, der nur Updates holt.
Die anderen Server können auch via cvsup die Files holen.
Also mit anderen Worten ein interner cvsup-Server.
Ist das zu machen ???
Wenn ja wie ???
Gibt es hierfür eine Deutsche Anleitung ???
Kann man hier aich für verschiedene Versionen die Updates bereithalten ???

DANKE MJS
 
marmorkuchen schrieb:
Für die Ports hast Du Recht, aber die die Systemupdates kann ich damit nicht abdecken.

Warum nicht? Wenn es um 4.x und 5.x geht, so kannst du ja /usr/src und /usr/src2 exportieren. Desweiteren musst du so nur einmal buildworld laufen lassen :)
 
MJS schrieb:
Ich werde mich wohl oder übel mal mit dem Firewall Admin zusammensetzen. Wenn ich mich richtig schlau gemacht habe, zum einen von der internen Firewall in die DMZ eine IP-Weiterleitung auf Port 5999 zuslassen. Zum anderen ein Masquerading von innen nach aussen wieder mit Port 5999 zulassen.
Hmm, reicht es nicht, den Port fuer cvsup (5999?) analog zu Port 80 und 443 freizuschalten? Es kann ja auf einen dt. cvsup-Mirror begrenzt bleiben. (Also nicht generell Port 5999 erlauben, sondern nur Port 5999 zum cvsup-Server)
Und im muss cvs wohl mit folgendem Aufruf starten:
cvsup -P m supfile
Korrekt ???
Also ich setze einfach folgendes in /etc/make.conf, dann funktioniert ein 'make update' in /usr/src und in /usr/ports
Code:
SUP_UPDATE=     yes

SUP=            /usr/local/bin/cvsup
SUPFLAGS=       -g -L 1
SUPHOST?=        cvsup2.de.FreeBSD.org
SUPFILE=        /usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=   /usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=     /usr/share/examples/cvsup/doc-supfile
Aber hierzu dann eine Frage, wie kann ich es machen, dass ich die Updates für alle anderen FreeBSD Server bereitstelle. Kann ich folgendes machen:
Ich habe einen Server, der nur Updates holt.
Die anderen Server können auch via cvsup die Files holen.
Also mit anderen Worten ein interner cvsup-Server.
/usr/ports/net/cvsup-mirror
Ist das zu machen ???
Wenn ja wie ???
Gibt es hierfür eine Deutsche Anleitung ???
Kann man hier aich für verschiedene Versionen die Updates bereithalten ???

EIN Fragezeichen genuegt, oder bist du dermassen verwirrt? Deine Fragen sind groesstenteils im Handbuch beantwortet, lies das erstmal http://www.freebsd.org/handbook

Wenn danach noch Unklarheiten sind, kannst du ja fragen. Wobei ich den cvsup-mirror als Overkill empfinde. NFS leistet hier viel bessere Dienste.
 
MrFixit schrieb:
Warum nicht? Wenn es um 4.x und 5.x geht, so kannst du ja /usr/src und /usr/src2 exportieren. Desweiteren musst du so nur einmal buildworld laufen lassen :)
Hallo,
auch wieder wahr. Nun ja, warum einfach wenn es auch schwer geht.

Sven
 
Ich habe mir das Buch FreeBSD von der XFree Redaktion gekauft und arbeite mich geade durch, aber auf die Fragestellung für ein Update mit mehreren Servern geht das Buch nicht ein, dehsalb meine Fragen hier.

Original geschrieben von MrFixit
Warum nicht? Wenn es um 4.x und 5.x geht, so kannst du ja /usr/src und /usr/src2 exportieren. Desweiteren musst du so nur einmal buildworld laufen lassen

Bedeutet dass, dass ich ein cvsup auf einem Server laufen lasse, jeweils für doc, src und den ports und danach ein buildworld durchführe. Anschließend kann ich das Verzeichnis /usr exportieren und auf die anderen Server kopieren?
Ist das so richtig verstanden, ich kopiere und überschreibe die vorhandenen Daten und Programme ?

Der Vorteil von cvs-mirror ist wohl der, dass ich mich gleich mit cvsup mit meinem jetzt lokalen Server verbinden kann und von dort für jeden Server und den unterschiedlichen Systemen 4.x und 5.x Updates beziehen kann ?
Kennt jemnad zu diesem Tehma eine gute Deutsche Doku ?
Kommuniziert der cvs-mirrot auch auf Port 5999 mit dem Server um sich zu aktualisieren ?
Mit wieviel Speicherplatz ist zu rechnen ?
 
Hallo,
auf dem Server ziehst Du per cvsup die Sourcen und Ports und bietest dann die Verzeichnisse /usr/ports und /usr/src Deinen anderen Rechner per NFS an.
Anschließend machst Du auf Deinem stärksten System ein make buildworld und führst dann auf jedem Rechner ein make installworld aus.
In dem Fall kannst Du Dir einen lokalen CVSUP-Mirror sparen.

Sven
 
Das mit dem Update habe ich soweist verstanden, aber nun die Frage, wie ich es den anderen Servern zu verfügung stelle. Wenn ich beispielsweise eine DMZ habe, ist es aus Sicherheitsgründen nicht sinvoll eine dauerhfaten NFS Mount für die sourcen und Ports einzusichten.
Wenn ich die Ports und Sourcen auf einem Sever heruntergeladen und via make buildworld kompiliert habe, kann ich dann auch das ganze /usr Verzeichnis auf die anderen Server kopieren ?
Ist das so zulässig ?

Kennst Du trotzdem eine Duetsche Anleitung für den CVSUP-Mirror ?
 
Hallo,
bei einer deutschen Anleitung muß ich leider passen.
Bei Deiner ersten Frage muß ich leider auch passen, da ich es so noch nicht probiert habe.

Sven
 
Hat jemand anderes das schon mal so ausprobiert ?

Oder kann mit jemand eine brauchbare Lösunf für eine DMZ sagen ?
 
Zurück
Oben