	"Owl", -- eine sicherheitsoptimierte Server-Plattform.

"Owl" (oder "Openwall GNU/*/Linux";  -- das "O" ist in
jedem Fall gross zu schreiben) ist ein auf Sicherheit optimiertes
Betriebssystem mit Linux und GNU-Software als Kern.  Owl ist zu allen
anderen grossen GNU/*/Linux Distributionen kompatibel und als Server-
Plattform gedacht.  Und es ist natrlich frei.


	Features.

Weil wir inhaltliche Qualitt ber Features stellen, hlt Owl
einiges fr die Sicherheit bereit.  Owl versucht nicht nur sicher
zu sein.

Einer der Vorteile von Owl ist, dass es als Basis fr die Installation
jeglicher Software, die fr GNU/*/Linux verfgbar ist, genutzt
werden kann.  Owl bietet einige Kompatibilitt (siehe unten) fr
Software-Pakete von anderen grossen Linux Distributionen, wie zum
Beispiel Red Hat Linux.

Zustzlich beinhaltet Owl eine wachsende Zahl von Internet Diensten
fr Server-Plattformen.

Mit Owl ist es mglich das komplette System aus den Quellen neu
zu kompilieren.  Und das ganze mit einem einzigen Befehl
("make buildworld") (Das ganze wird unten detaillierter erklrt.)

Owl untersttzt mehrere Architekturen (momentan x86, SPARC und Alpha).
Dies hat den Vorteil, dass man es in mehr Situationen benutzen kann
und es uns hilft Software-Fehler frher zu erkennen.


	Sicherheit.

Owl kombiniert verschiedene Versuche die Anzahl der Schwchen in
seinen Softwarekomponenten und denen von Dritt-Anbietern, die auf
dem System installiert werden knnten, zu reduzieren.

Der primre Versuch Sicherheit zu gewhrleisten besteht darin, den
Quelltext nach bestimmten Klassen von Sicherheitslcken zu
durchsuchen.  Wegen der riesigen Menge des Quelltextes gibt es ein
bestimmtes Mass an "Wichtigkeit" von Software oder Teilen davon.
Momentan werden nur Quelltextteile geprft, die mit besonderen
Privilegien arbeiten oder die mit dem Netzwerk kommunizieren.  Dies
beinhaltet relevanten Code in den meisten Systembibilotheken, allen
SUID/SGID Programmen, allen Dmonen und Netzwerkdiensten.  Alles
andere wird, wenn es ein Teil von Owl ist, eventuell geprft.
Potentielle Probleme die whrend des Prfens gefunden werden,
werden meistens gelst oder fhren in einigen Fllen zum Ausschluss
der Software aus Owl.  Bei der Implementierung von Features wird
in den meisten Fllen zwischen diesem und der Codequalitt plus
Sicherheit abgewogen.  Je mehr das Projekt wchst, desto mehr
Softwarekomponenten werden durch unsere eigenen ersetzt.

Wenn Pakete fr Owl erstellt werden, wird die Software so konfiguriert,
dass sie standardmssig sicher ist.  In einzelnen Fllen wird die
Software auch modifiziert um dieses Ziel zu erreichen.  Da optionale
und eventuell sicherheitsgefhrdende Features explizit erlaubt
werden mssen, knnen wir die Quelltextteile der Standard-
konfiguration grndlicher durchsehen.  Zustzliche Administrations-
mglichkeiten ("owl-control") werden zum Managen der SUID/SGID
Binrpakete zur Verfgung gestellt.  Diese sind unabhngig von
der Paketinstallation.  Da jedes Owl-Paket seinen berprfungsstatus
dokumentiert, kann man abwgen, ob man es benutzt oder nicht.

Obwohl die berprfung des Quelltextes der bevorzugte Weg ist, um
mit Softwarefehlern umzugehen, kann es nicht in allen Fllen
angewandt werden.  Wenn unsichere Dritt-Software auf ein sonst
sicheres System installiert wird, ist "das Spiel" verloren.  Das
Einzige was ein Betriebssystem garantieren kann, ist dass der
mgliche unauthorisierte Zugriff auf die von der Software
bereitgestellten Privilegien limitiert bleibt.
In den letzten Jahren wurden einige Versuche unternommen um die
erfolgreichen Attacken auf unsichere Dritt-Software einzudmmen.
Owl wird einige von diesen "Versuchen" in verschiedenen Teilen
des Systems benutzen.

Owl benutzt "starke" Kryptographie in den Kern-Komponenten und
enthlt einige sicherheitssteigernde Regeln (aktives berprfen
des Passwortes mit "pam_passwdqc", Ablaufen des Passwortes und
des Kontos, Adressbasierte Zugriffskontrolle des Netzwerkes) und
das berprfen der Integritt ("mtree").  Es ist eines unserer
Ziele, eine grosse Palette von Sicherheits-Tools zur Verfgung
zu stellen, die auch "out of the box" benutzt werden knnen.


	Die Arbeitsumgebung und das Paket-Management.

Im Gegensatz zu anderen "Linux Distributionen" enthlt Owl eine
komplette Arbeitsumgebung um das ganze System aus den Quelltexten
neu zu kompilieren.  Und das mit einem einzigen Kommando ("make
buildworld").  Die Implementation des "make buildworld" ist jedoch
unter Owl komplett anders als die von *BSD.  Es ist eigentlich
mehr mit den *BSD ports/packages vergleichbar, da sie die komplette
Owl-Benutzersoftware beinhaltet (alles ausser dem Linux Kernel).

Der Owl-Benutzersoftware Quelltext besteht aus zwei Verzeichnis-
bumen, wobei jedes Owl-Paket zwischen den beiden Bumen aufge-
teilt werden kann.  Ein Verzeichnisbaum besteht aus den Original
Softwarearchiven, wie sie von den Besitzern der jeweiligen Software
herrausgegeben werden.  Der andere Baum, den wir in einem CVS Archiv
verwalten, enthlt die Spezifikationen, Patches und andere Owl-
spezifische Zustze zu den Paketen.  Einige Pakete wurden als
Teil von Owl entwickelt und sind deswegen komplett in den CVS
Archiven verfgbar.

Auf diesen zwei Verzeichnisbumen basierend, werden die Binr-
pakete erstellt.  Diese knnen installiert werden, um das ganze
System zu updaten (mit "make installworld") oder um eine neue
Owl-Installation zu erstellen (die ROOT= Einstellung).  Sie
knnen auch ber das Netzwerk transferiert und irgendwo anders
installiert werden.

Wir benutzen das RPM-Format fr Binrpakete, weil es uns erlaubt
Abhngigkeiten von Paketen zu regeln, die von einem Red Hat Linux
oder einem anderen System auf ein Owl-System installiert werden.


	Kompatibilit.

Ausser einigen Ausnahmen, wo dieses Ziel mit unseren wichtigeren
Zielen kollidiert, versucht Owl Binr- und Paketkompatibel mit
diversen grossen GNU/*/Linux Distributionen zu sein.  In den meisten
Fllen ist es mglich eine Applikation, die fr eine aktuelle Version
von Fedora Core oder Red Hat Enterprise Linux erstellt worden ist, auf
Owl zu installieren (fr Owl 2.0 trifft das auf FC3 und RHEL4 zu).

$Owl: Owl/doc/de/CONCEPTS,v 1.9 2006/02/03 08:53:27 schmidt Exp $
