Re: freebsd-update und patchlevel

From: Oliver Fromme <oliver(at)fromme.com>
Date: Tue, 1 Nov 2016 14:28:50 +0100 (CET)

Peter Ross wrote:
> On Mon, 31 Oct 2016, rainer(at)ultra-secure.de wrote:
> > Am 2016-10-31 17:10, schrieb Peter Ross:
> > >
> > > ich suche nach zwei Dingen, die mit freebsd-update zu tun haben:
> > >
> > > 1. Kann ich angeben, dass ich eine Release nur bis zu einem bestimmten
> > > Patchlevel aktualisieren kann?
> > >
> > > 2. Kann ich abfragen (ohne zu installieren), auf welchen Patchlevel
> > > ein freebsd-update aktualisieren wuerde?
> > >
> > > Beim ersten faellt mir nichts ein.
> > >
> > > Mir geht es darum, jails fuer Testzwecke moeglichst exakt
> > > "neuzubauen". Wenn ich ein System auf 10.2-RELEASE-p3 habe, wuerde mir
> > > ein freebsd-update inzwischen ein 10.2-RELEASE-p8 oder so bescheren.
> >
> > freebsd-version (ab 10.0-RELEASE) zeigt den genauen Patch-Level an.
>
> Ja. Nur weiss ich nicht, wie ich ein neues Jail aus Binaries bauen und
> genau auf diesen Level aktualisieren kann.
>
> Soweit ich sehe, holt sich freebsd-update alle Patches, die vorliegen, aus
> der Ferne.
>
> > Im Zweifel hilft wohl nur, einen eigenen Patch-Server zu haben.
> >
> > Kann/darf man die freebsd-updates eigentlic spiegeln?
>
> Leider weiss ich das nicht. Ich kenne die Innereien von freebsd-update bis
> jetzt nicht.
>
> Wenn ich genau weiss, welche Subversion-Revision "10.2-RELEASE-p3"
> entspricht, koennte ich natuerlich das Ergebnis durch lokales Neubauen
> erreichen. Besser als nichts, aber eigentlich wollte ich bei Binaries
> bleiben.

Mal ein bisschen Hintergrund-Info, auch für die anderen Mitleser
(ich nehme an, dass Dir das meiste schon bekannt ist, Peter):

Die Patch-Level (*-pX) fixen ja in der Regel immer nur einzelne
(wenige) Vulnerabilities, zu denen ein Advisory publiziert wurde.
Meist ist nur ein ganz kleiner Teil des Systems betroffen. In
dem von Dir genannten Beispiel 10.2-RELEASE-p3 sind Patches für
drei Advisories enthalten; das jünsgte davon betrifft den pkg-
Bootstrap, nachzulesen im zugehörigen Advisory:

https://www.freebsd.org/security/advisories/FreeBSD-EN-15:18.pkg.asc

Dort sieht man auch, dass der Patch in Subversion der Revision
r287872 entspricht (unter releng/10.2). Wenn man also die
Sourcen vom Stand 10.2-RELEASE-p3 selbst bauen möchte, muss man
r287872 auschecken.

Man braucht sich dazu nicht das "ausgewachsene" Subversion zu
installieren. Es gibt in der Ports-Collection ein praktisches
kleines Tool namens svnup (/usr/ports/net/svnup), mit dem man
bequem eine bestimmte Revision ziehen kann, ohne den ganzen
SVN-Overhead. Kochrezept:

 - svnup installieren

 - Unter /usr/local/etc gibt es eine Konfigurationsdatei.
   Am besten svnup.conf.sample nach svnup.conf kopieren, dann
   den Host für Europa auswählen (das "#" bei der Zeile für
   svn0.eu.freebsd.org entfernen), und folgenden Abschnitt
   für 10.2-RELEASE hinzufügen:

   [rel102]
   branch=base/releng/10.2
   target=/usr/src

   Je nach Wunsch kann man das target-Verzeichnis natürlich
   auch woanders hinlegen. Achtung, die Dateien dort werden
   natürlich überschrieben.

 - Aufruf mit: svnup rel102 -r 287872

   Danach hast Du den Source von 10.2-RELEASE-p3 unter /usr/src
   (oder was auch immer Du als target angegeben hast).
   Siehe die Manpages svnup(1) und svnup.conf(5).

 - Mit dem üblichen "make world" (ggf. mit DESTDIR=/foo/bar)
   kannst Du Dir das System bauen. Das funktioniert auch in
   einem Jail (nicht vergessen, vorher darin /dev zu mounten).

ABER -- Wie erwähnt, handelt es sich bei den Release-Patches
um einzelne Fixes für Advisories (meist Security-relevante
Fixes). Daher ist es durchaus empfehlenswert, immer den
neusten Patchlevel zu nehmen, und dann sparst Du Dir auch die
ganze Zauberei mit der SVN-Revision und dem Selberbauen, da
Du ganz einfach freebsd-update nehmen kannst.

Funktionale Unterschiede gibt es zwischen den Patches der-
selben Release so gut wie gar nicht. Daher ist es i.allg.
auch für Tests (z.B. Test-Jails) unerheblich, ob sie sich
durch den Patchlevel unterscheiden. Im Zweifel wirft man
einen Blick in die Advisories, um zu sehen, welche Teile des
Systems davon betroffen sind. Häufig ändern die Patches
nur wenige Zeilen im Source.

Übrigens, eine praktische Seite mit einer Übersicht über alle
Releases, Patch-Level und Advisories findet man hier:

http://bokut.in/freebsd-patch-level-table/

Welcher Patch-Level welche Advisories fixt, findet man außerdem
auch in /usr/src/UPDATING. Im Falle von 10.2-RELEASE (d.h.
releng/10.2 in "Subversion-Sprache") liest man dort zu -p3:

20150916: p3 FreeBSD-EN-15:16.pw
                        FreeBSD-EN-15:17.libc
                        FreeBSD-EN-15:18.pkg

        Fix regression in pw(8) when creating numeric users or groups.
        [EN-15:16]

        Fix libc handling of signals for multi-threaded processes.
        [EN-15:17]

        Implement pubkey support for pkg(7) bootstrap. [EN-15:18]

Und eine komplette Liste aller Advisories gibt es hier:
https://www.freebsd.org/security/advisories/

Gruß
   Olli

-- 
Oliver Fromme, München   --   FreeBSD + DragonFly BSD
``We are all but compressed light'' - Albert Einstein
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 01 Nov 2016 - 14:28:58 CET

search this site