My Universe Logo

My Universe Blog » Entries Tagged as Gentoo

Bye bye, Atuan

Posted by Jesco Freund at July 2, 2009 12:06 p.m.

Heute darf einer meiner Server in den Ruhestand gehen, der es sich auch redlich verdient hat:

uptime
12:02:24 up 416 days, 11:04,  1 user,  load average: 2.00, 2.00, 2.00

Die Kiste lief übrigens mit einem frisierten Gentoo Linux (~x86) und einem monolitischen Eigenbau-Kernel.

No comments | Defined tags for this entry: Gentoo, Linux, server

Hacking Gentoo – Spaß mit glibc-Harakiri

Posted by Jesco Freund at Feb. 28, 2009 11:25 p.m.

Vor kurzem hat (versehentlich?) glibc-2.9 die harte Maskierung verloren und landete somit in Testing. Die Entwickler haben nun diese Version zumindest im Hardened Profil wieder maskiert. Ärgerlich (aber hinlänglich bekannt): ein Downgrade der glibc ist gar keine gute Idee und wird auch von den portage-Werkzeugen nicht unterstützt. Dennoch blockiert die (bei mir problemlos arbeitende) zu neue Version ein Upgrade von world. Da emerge eine entsprechende exclude-Option fehlt und das löschen des glibc-Eintrags aus dem World-File leider auch keine Besserung brachte, bleibt nur ein dreckiger Shell-Hack:

emerge $(emerge -pDNu --columns world | grep '^\[' | grep -v 'glibc' | awk '{print $4}')

Kleiner Hinweis am Rande: die Option --columns ist zwar recht nett, aber inkonsequent implementiert. Je nach Upgrade-, Downgrade- oder Rebuild-Flag variiert die Anzahl der Spalten. Ein anderes sinnvolles Trennzeichen ist leider auch nicht vorhanden, so dass man vor jedem Lauf die Ausgabe der Pipe kontrollieren sollte, bevor man sie emerge zum Fraß vorwirft (wer zu viel Zeit hat, kann sich ja noch einen sed-Hack ausdenken, um die erste logische Spalte zu eliminieren).

1 comment | Defined tags for this entry: Gentoo, packet management, shell

Sendepause

Posted by Jesco Freund at April 17, 2008 8:20 p.m.

Dank des gestern schon angerissenen neuen „Features“ sind einige Dienste seit gestern nicht mehr erreichbar. Ich arbeite die Probleme zur Zeit nach Dringlichkeit ab. Seit einer guten Stunde läuft der MTA wenigstens wieder, der öffentliche FTPD läuft seit gerade eben wieder und so nach und nach kommt der Rest (diverse Webseiten und natürlich der CoE Sauerbraten Server) dann hoffentlich auch noch. Alle Betroffenen bitte ich, die Unannehmlichkeiten zu entschuldigen. Auslöser des Debakels: der OpenRC-Ebuild kann unter Umständen so wichtige Dateien wie /etc/conf.d/net überschreiben (allerdings nicht reproduzierbar, bei mir trat das nur bei einer Maschine auf, die andere blieb weitestgehend schadfrei). Woran das genau gelegen hat, kann ich nicht rekonstruieren (und will jetzt auf der Produktivkiste auch nicht mehr zu viel rumspielen).

<Linux-bashing-mode>
Zum Glück habe ich ja noch eine OpenBSD-Kiste am Rennen, da passieren solche irrwitzigen Sachen nicht. Sonst könnte ich meinen Frust nicht mal hier loswerden ;)
</Linux-bashing-mode>

No comments | Defined tags for this entry: Gentoo, killfile

Gentoo und OpenRC

Posted by Jesco Freund at April 17, 2008 12:05 a.m.

Gentoo hat für ~Testing-Systeme das bisherige Init-System auf OpenRC umgestellt. Interessanter Nebeneffekt: Auch die Initialisierung der Netzwerk-Interfaces wurde umgestellt. Ansich funktioniert alles wie gewohnt; die Konfiguration findet in /etc/conf.d/net statt. Allerdings muss sich auch wie bisher unter /etc/init.d für jedes Interface ein Symlink auf das Netzwerk-Startskript finden (das jetzt nicht mehr direkt in net.lo steht, sondern unter /lib{64}/rc/sh/net.sh firmiert). Als Namenskonvention gilt – ebenfalls völlig unverändert – net.<interface> (also z. B. net.eth0). Ärgerlicherweise werden bei der Installation von OpenRC alle bestehenden Symlinks bis auf net.lo gelöscht. Das lässt sich zwar manuell problemlos korrigieren, allerdings erfolgt das Löschen ohne Warnung. Wer sich also wundert, dass ein Server nach der Installation von OpenRC nicht erreichbar ist, der werfe mal einen Blick auf die Interface-Symlinks. Geht viel schneller, als nach einem Boot-Problem zu fahnden… man muss nur darauf kommen.

No comments | Defined tags for this entry: Gentoo

Virtuelle Brunnenvergifter

Posted by Jesco Freund at March 3, 2008 5:05 p.m.

FreeBSD hat ihn, Open- und NetBSD auch. Gentoo hat noch ein bisschen „age“ draufgepackt und gleich das Basissystem plus Kernel mit hineingepackt. Die Rede ist vom Ports- oder Portage-Tree, einem Verzeichnisbaum voller Bauanleitungen und Patches, der bei den genannten Betriebssystemen das herkömmliche Paketverwaltungssystem à la RPM, PKG, DEB etc. ersetzt oder ergänzt. Soweit nichts ungewöhnliches, doch unter bestimmten Umständen kann ein solcher Source Tree zum Angriffsvektor werden.

Kombiniert man eines der genannten Systeme mit einer nahezu beliebigen Virtualisierungstechnik (egal ob Xen, OpenVZ, Jails oder einfach nur gehärtete Chroot-Umgebungen), erscheint es schon bei einigen wenigen Instanzen interessant, den Quellenbaum nur einmal zentral für alle Instanzen vorzuhalten – das spart nicht nur Speicherplatz, sondern auch Bandbreite, und zwar in erheblichem Maße. Allerdings ist der gemeinsame Source Tree, egal ob über NFS oder mount-bindings bereitgestellt, nun auch von jeder virtuellen Instanz aus zugänglich. Die Kompromittierung eines virtuellen Subsystems könnte also auch die Kompromittierung des Ports- oder Portage Trees nach sich ziehen und einer Angriffsform Tür und Tor öffnen, die man als Ports Tree Poisoning bezeichnen kann. Hierbei wird gezielt ein Metapaket manipuliert (z. B. ein zusätzlicher Patch mit untergeschoben), wobei auch Digest-Files und das ggf. vorhandene Changelog mit angepasst werden, um die Paketverwaltungswerkzeuge zu überlisten. Gelingt dies einem Angreifer bei einem Port oder ebuild, der in wahrscheinlich allen virtuellen Instanzen installiert ist (ein gutes Ziel wäre eines der Paketmanagement-Tools selbst, OpenSSH o. ä.), bestehen große Chancen, dass der Admin des Systems mit dem nächsten Update aus der vergifteten Quelle schöpft und damit dem Angreifer sprichwörtlich die Schlüssel zum System überreicht.

Die Gefahr für ein solches Horrorszenario stellt sich je nach System allerdings ein wenig unterschiedlich dar. Bei Gentoo Linux etwa könnte der Portage-Tree den virtuellen Instanzen read-only zur Verfügung gestellt werden – kein Problem, da emerge die Kompilier-Arbeit in /var/tmp erledigt und nicht in einem Unterverzeichnis des ebuilds. Außerdem erfolgt die Synchronisierung des Portage-Trees mittels rsync; dabei wird der gesamte Tree überprüft und Fremdkörper zuverlässig entfernt. Entsprechende Sorgfalt vorausgesetzt, spricht hier also wenig gegen Source Tree Sharing – ein (minimales) Restrisiko besteht dennoch.

Deutlich risikoreicher nimmt sich die Lage bei FreeBSD aus: Der Ports-Tree darf nicht read-only sein, da das kompilieren der Pakete in einem Unterverzeichnis (./work) des jeweiligen Ports erfolgt. Updates des Ports-Trees erfolgen entweder direkt per CVS (csup bzw. cvsup) oder über Patches (portsnap). Dabei werden aber nur Änderungen übermittelt, die am zentralen Ports-Tree vorgenommen wurden. Manipulationen an nicht von Updates betroffenen Ports fallen hingegen nicht auf und werden auch nicht überschrieben. Ports Tree Sharing für FreeBSD Jails ist also indiskutabel, wenn das betreffende System zumindest minimalen Sicherheitsanforderungen genügen soll.

Fazit: Wird eine OS-Level-Virtualisierung à la Jails eingesetzt, um die Gesamtsicherheit eines Systems zu erhöhen, sollte man sich diesen Sicherheitsgewinn nicht durch unbedachte „Tunnel“ zunichte machen. Auch wenn Ports- und Portage-Tree sich auf den ersten Blick stark ähneln – es sind die Details in der Implementierung, die hier über sicher oder nicht sicher entscheiden.

2 comments | Defined tags for this entry: FreeBSD, Gentoo, security, hardware virtualization

Ü-30-Party

Posted by Jesco Freund at Dec. 26, 2007 12:47 a.m.

Die wäre eigentlich schon gestern fällig gewesen, aber da heute gleich Nummer 31 hinzugekommen ist… Übrigens, die Rede ist von Kerneln auf einem meiner Linux-Server. Auf einem haben sich seit Inbetriebnahme im Laufe eines guten Jahres doch ganze 31 Kernel-Images angesammelt (die Source-Verzeichnisse habe ich zwischendrin immer mal wieder entrümpelt). Und so sieht das ganze dann in /boot aus:

-rw-r--r--  1 root root 1.7M 2006-11-30 18:38 vmlinuz-2.6.18-hardened-r1
-rw-r--r--  1 root root 1.5M 2007-01-13 12:57 vmlinuz-2.6.19-hardened-r3
-rw-r--r--  1 root root 1.5M 2007-01-15 22:27 vmlinuz-2.6.19-hardened-r4
-rw-r--r--  1 root root 1.5M 2007-01-24 22:07 vmlinuz-2.6.19-hardened-r5
-rw-r--r--  1 root root 1.5M 2007-02-19 19:19 vmlinuz-2.6.19-hardened-r6
-rw-r--r--  1 root root 1.5M 2007-03-27 22:13 vmlinuz-2.6.20-hardened
-rw-r--r--  1 root root 1.5M 2007-04-05 15:58 vmlinuz-2.6.20-hardened-r1
-rw-r--r--  1 root root 1.5M 2007-04-14 17:40 vmlinuz-2.6.20-hardened-r2
-rw-r--r--  1 root root 1.5M 2007-04-14 17:34 vmlinuz-2.6.20-hardened-r2.old
-rw-r--r--  1 root root 1.5M 2007-05-26 08:57 vmlinuz-2.6.21-hardened
-rw-r--r--  1 root root 1.5M 2007-05-06 12:42 vmlinuz-2.6.21-hardened.old
-rw-r--r--  1 root root 1.5M 2007-05-26 09:08 vmlinuz-2.6.21-hardened-r1
-rw-r--r--  1 root root 1.4M 2007-06-10 12:32 vmlinuz-2.6.21-hardened-r2
-rw-r--r--  1 root root 1.4M 2007-05-27 18:17 vmlinuz-2.6.21-hardened-r2.old
-rw-r--r--  1 root root 1.4M 2007-08-14 19:22 vmlinuz-2.6.21-hardened-r3
-rw-r--r--  1 root root 1.4M 2007-08-12 16:16 vmlinuz-2.6.21-hardened-r3.old
-rw-r--r--  1 root root 1.5M 2007-08-14 19:30 vmlinuz-2.6.22-hardened
-rw-r--r--  1 root root 1.5M 2007-08-12 16:21 vmlinuz-2.6.22-hardened.old
-rw-r--r--  1 root root 1.5M 2007-08-17 00:43 vmlinuz-2.6.22-hardened-r1
-rw-r--r--  1 root root 1.5M 2007-08-17 12:52 vmlinuz-2.6.22-hardened-r2
-rw-r--r--  1 root root 1.5M 2007-08-25 08:25 vmlinuz-2.6.22-hardened-r3
-rw-r--r--  1 root root 1.5M 2007-09-20 22:44 vmlinuz-2.6.22-hardened-r4
-rw-r--r--  1 root root 1.5M 2007-09-23 08:27 vmlinuz-2.6.22-hardened-r5
-rw-r--r--  1 root root 1.5M 2007-09-27 08:19 vmlinuz-2.6.22-hardened-r6
-rw-r--r--  1 root root 1.5M 2007-10-04 12:19 vmlinuz-2.6.22-hardened-r7
-rw-r--r--  1 root root 1.5M 2007-10-15 22:38 vmlinuz-2.6.23-hardened
-rw-r--r--  1 root root 1.5M 2007-11-02 21:52 vmlinuz-2.6.23-hardened-r1
-rw-r--r--  1 root root 1.5M 2007-11-27 00:13 vmlinuz-2.6.23-hardened-r2
-rw-r--r--  1 root root 1.5M 2007-12-06 23:27 vmlinuz-2.6.23-hardened-r3
-rw-r--r--  1 root root 1.5M 2007-12-25 00:55 vmlinuz-2.6.23-hardened-r4
-rw-r--r--  1 root root 1.5M 2007-12-26 00:43 vmlinuz-2.6.23-hardened-r5

1 comment | Defined tags for this entry: Gentoo, kernel, Linux

The One and Only…

Posted by Jesco Freund at Dec. 16, 2007 12:02 p.m.

… gibt es nicht. Jedenfalls nicht unter den unixoiden Betriebssystemen. Für ein umfangreicheres Xen-Setup ein geeignetes Basis-System zu finden gestaltet sich schwieriger, als ich zunächst dachte. Favorit wäre für mich ein BSD-System; das einzige, das zur Zeit mit Xen-Unterstützung daherkommt, ist NetBSD. Nicht schlecht, aber NetBSD fehlt ein tauglicher Volume Manager, nachdem vinum mit 4.0 endgültig aus dem System fliegt – nicht weiter verwunderlich, da das Projekt seit 2004 nicht mehr weiterentwickelt wurde. Und bei dem Gedanken an eine Datenbank-DomU unter Volldampf auf einem Disk Image File kommt mir irgendwie das kalte Grausen. Richtig schick wäre ja ein System mit ZFS-Unterstützung, aber da käme nur OpenSolaris in Frage, und das ist mir wiederum für ein Produktivsystem zu wackelig und zu viel Bastelei.

continue reading The One and Only…

No comments | Defined tags for this entry: Gentoo, Linux, NetBSD, Ubuntu, unix, hardware virtualization, Xen, ZFS

Harter Gefängnis-Alltag

Posted by Jesco Freund at Sept. 21, 2007 9:54 p.m.

Am Montag hat das Hardened Gentoo Projekt Version 2.6.22-r4 der hardened-sources, eines speziell gepatchten und auf Sicherheit getrimmten Linux-Kernels, veröffentlicht. Insbesondere chroot-Umgebungen werden zu regelrechten Festungen erweitert, aus denen ein Ausbruch nur äußerst schwer gelingt (mir ist bis dato keine Methode bekannt, mit der das zu bewerkstelligen wäre). Bis auf die unter Linux noch fehlende Ressourcenbeschränkung (z. B. auf eine bestimmte IP-Adresse) sind die virtuellen Knasts vergleichbar mit Jails unter BSD, zur Zeit vermutlich sogar noch ausbruchssicherer.

continue reading Harter Gefängnis-Alltag

1 comment | Defined tags for this entry: Gentoo, Linux, security

Postfix 2.4.5 pingelig bei Quotas

Posted by Jesco Freund at Sept. 2, 2007 11:23 a.m.

Toller Spaß &mdash; nachdem ich gestern Abend ein Upgrade von Postfix 2.4.3 auf Postfix 2.4.5 gefahren habe, weigerte sich dieses promt, noch irgendwelche Mails zuzustellen. Jegliche eingehenden Mails wurden fortan folgendermaßen kommentiert:

status=deferred (maildir delivery failed: Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.)

Tolle Wurst. Natürlich hab ich für die meisten (virtuellen) Mailboxen ein Quota gesetzt, und bisher klappte das auch ganz hervorragend. Und nein, die Postfächer waren nicht alle voll bis Oberkante Unterlippe. Die Ursache liegt in einer kleinen „Pingeligkeit“ der neuen Postfix-Version (genauer: eigentlich ist ja VDA daran schuld). Die Direktive virtual_mailbox_limit = 0 war in der main.cf nicht gesetzt. Bisher kam Postfix auch ohne klar, aber irgendwie wurde wohl der Default-Wert geändert. Nachdem ich die zusätzliche Zeile in die Konfiguration reingebastelt und Postfix durchgestartet hab, geht auch alles wieder. Na prima.

No comments | Defined tags for this entry: Gentoo, Postfix

Debian zu Gast bei Gentoo

Posted by Jesco Freund at Aug. 24, 2007 4:43 p.m.

Für einen Mitbewohner meines Webservers habe ich heute ein Debian-Userland hochgezogen. Auf dem Server läuft normalerweise ein gehärtetes Gentoo Linux, und die eingerichteten chroot-Jails werden normalerweise auch von einem Gentoo-Userland bevölkert. Netterweise haben die Portage-Maintainer irgendwie erahnt, dass ich eines Tages doch mal einem Debian-Userland ein Dach über'm Kopf verschaffen muss – aus welchem Grund sollten sie sonst debootstrap in den Portage Tree aufgenommen haben? Ganz hürdenlos ist die Installation von Debian unter einem Nicht-Debian-System allerdings nicht…

continue reading Debian zu Gast bei Gentoo

No comments | Defined tags for this entry: Debian, Gentoo, Linux, security

Page 1 of 2 next page »