                          Das FreeBSD-Handbuch

  The FreeBSD German Documentation Project

   Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 The
   FreeBSD German Documentation Project

   Willkommen bei FreeBSD! Dieses Handbuch beschreibt die
   Installation und den ta:glichen Umgang mit FreeBSD 8.3-RELEASE und
   FreeBSD 9.0-RELEASE. Das Handbuch ist jederzeit unter Bearbeitung
   und das Ergebnis der Arbeit vieler Einzelpersonen. Dies kann dazu
   fu:hren, dass bestimmte Bereiche nicht mehr aktuell sind und auf
   den neuesten Stand gebracht werden mu:ssen. Bei Unklarheiten
   empfiehlt es sich daher stets, die englische Originalversion des
   Handbuchs zu lesen.

   Wenn Sie bei der U:bersetzung des Handbuchs mithelfen mo:chten,
   senden Sie bitte eine E-Mail an die Mailingliste 'FreeBSD German
   Documentation Project' <de-bsd-translators@de.FreeBSD.org>.

   Die aktuelle Version des Handbuchs ist immer auf dem
   FreeBSD-Webserver verfu:gbar und kann in verschiedenen Formaten
   und in komprimierter Form vom FreeBSD-FTP-Server oder einem der
   vielen Spiegel herunter geladen werden (a:ltere Versionen finden
   Sie hingegen unter http://docs.FreeBSD.org/doc/). Vielleicht
   mo:chten Sie das Handbuch aber auch durchsuchen.

   Redistribution and use in source (SGML DocBook) and 'compiled'
   forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or
   without modification, are permitted provided that the following
   conditions are met:

    1. Redistributions of source code (SGML DocBook) must retain the
       above copyright notice, this list of conditions and the
       following disclaimer as the first lines of this file
       unmodified.

    2. Redistributions in compiled form (transformed to other DTDs,
       converted to PDF, PostScript, RTF and other formats) must
       reproduce the above copyright notice, this list of conditions
       and the following disclaimer in the documentation and/or other
       materials provided with the distribution.

     Wichtig: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD
     DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED
     WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD
     DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT,
     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
     DAMAGE.

   FreeBSD ist ein eingetragenes Warenzeichen der FreeBSD Foundation.

   3Com und HomeConnect sind eingetragene Warenzeichen der 3Com
   Corporation.

   3ware und Escalade sind eingetragene Warenzeichen von 3ware Inc.

   ARM ist ein eingetragenes Warenzeichen von ARM Limited.

   Adaptec ist ein eingetragenes Warenzeichen von Adaptec, Inc.

   Adobe, Acrobat, Acrobat Reader und PostScript sind entweder
   eingetragene Warenzeichen oder Warenzeichen von Adobe Systems
   Incorporated in den Vereinigten Staaten und/oder in anderen
   La:ndern.

   Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime und TrueType
   sind eingetragene Warenzeichen von Apple Computer, Inc., in den
   Vereinigten Staaten und anderen La:ndern.

   Corel und WordPerfect sind Warenzeichen oder eingetragene
   Warenzeichen der Corel Corporation und/oder ihren Gesellschaften
   in den Vereinigten Staaten und/oder anderen La:ndern.

   Sound Blaster ist ein Warenzeichen von Creative Technology Ltd. in
   den Vereinigten Staaten und/oder in anderen La:ndern.

   CVSup ist ein eingetragenes Warenzeichen von John D. Polstra.

   Heidelberg, Helvetica, Palatino und Times Roman sind Marken der
   Heidelberger Druckmaschinen AG in Deutschland und anderen
   La:ndern.

   IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390 und
   ThinkPad sind Warenzeichen der International Business Machines
   Corporation in den Vereinigten Staaten, anderen La:ndern oder
   beiden.

   IEEE, POSIX und 802 sind eingetragene Warenzeichen vom Institute
   of Electrical and Electronics Engineers, Inc. in den Vereinigten
   Staaten.

   Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium und
   Xeon sind Warenzeichen oder eingetragene Warenzeichen der Intel
   Corporation oder ihrer Gesellschaften in den Vereinigten Staaten
   und in anderen La:ndern.

   Intuit und Quicken sind eingetragene Warenzeichen und/oder
   Dienstleistungsmarken von Intuit Inc. oder einer ihrer
   Geselllschaften in den Vereinigten Staaten und in anderen
   La:ndern.

   Linux ist ein eingetragenes Warenzeichen von Linus Torvalds.

   LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID und Mylex sind
   Warenzeichen oder eingetragene Warenzeichen der LSI Logic Corp.

   M-Systems und DiskOnChip sind Warenzeichen oder eingetragene
   Warenzeichen von M-Systems Flash Disk Pioneers, Ltd.

   Macromedia, Flash und Shockwave sind Warenzeichen oder
   eingetragene Warenzeichen von Macromedia, Inc. in den Vereinigten
   Staaten und/oder in anderen La:ndern.

   Microsoft, MS-DOS, Outlook, Windows, Windows Media und Windows NT
   sind entweder eingetragene Warenzeichen oder Warenzeichen der
   Microsoft Corporation in den Vereinigten Staaten und/oder in
   anderen La:ndern.

   Netscape und Netscape Navigator sind eingetragene Warenzeichen der
   Netscape Communications Corporation in den Vereinigten Staaten und
   in anderen La:ndern.

   GateD und NextHop sind eingetragene Warenzeichen und Warenzeichen
   von NextHop in den Vereinigten Staaten und in anderen La:ndern.

   Motif, OSF/1 und UNIX sind eingetragene Warenzeichen und IT
   DialTone und The Open Group sind Warenzeichen der The Open Group
   in den Vereinigten Staaten und in anderen La:ndern.

   Oracle ist ein eingetragenes Warenzeichen der Oracle Corporation.

   PowerQuest und PartitionMagic sind eingetragene Warenzeichender
   PowerQuest Corporation in den Vereinigten Staaten und/oder anderen
   La:ndern.

   RealNetworks, RealPlayer und RealAudio sind eingetragene
   Warenzeichen von RealNetworks, Inc.

   Red Hat, RPM, sind Warenzeichen oder eingetragene Warenzeichen von
   Red Hat, Inc. in den Vereinigten Staaten und in anderen La:ndern.

   SAP, R/3 und mySAP sind Warenzeichen oder eingetragene
   Warenzeichen der SAP AG in Deutschland und in anderen La:ndern der
   Welt.

   Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer
   Pages, JDK, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun
   Enterprise, Sun Fire, SunOS und Ultra sind Warenzeichen oder
   eingetragene Warenzeichen von Sun Microsystems, Inc. in den
   Vereinigten Staaten und in anderen La:ndern.

   Symantec und Ghost sind eingetragene Warenzeichen der Symantec
   Corporation in den Vereinigten Staaten und in anderen La:ndern.

   MATLAB ist ein eingetragenes Warenzeichen von The MathWorks, Inc.

   SpeedTouch ist ein Warenzeichen von Thomson

   U.S. Robotics und Sportster sind eingetragene Warenzeichen der
   U.S. Robotics Corporation.

   VMware ist ein Warenzeichen von VMware, Inc

   Waterloo Maple und Maple sind Warenzeichen oder eingetragene
   Warenzeichen von Waterloo Maple Inc.

   Mathematica ist ein eingetragenes Warenzeichen von Wolfram
   Research, Inc.

   XFree86 ist ein Warenzeichen von The XFree86 Project, Inc.

   Ogg Vorbis und Xiph.Org sind Warenzeichen von Xiph.Org.

   Viele Produktbezeichnungen von Herstellern und Verka:ufern sind
   Warenzeichen. Soweit dem FreeBSD Project das Warenzeichen bekannt
   ist, werden die in diesem Dokument vorkommenden Bezeichnungen mit
   dem Symbol "(TM)" oder dem Symbol "(R)" gekennzeichnet.

     --------------------------------------------------------------

   Inhaltsverzeichnis

   Vorwort

   I. Erste Schritte

                1. Einfu:hrung

                             1.1. U:bersicht

                             1.2. Willkommen bei FreeBSD!

                             1.3. Das FreeBSD Project

                2. FreeBSD 8.X (und a:lter) installieren

                             2.1. U:bersicht

                             2.2. Hardware-Anforderungen

                             2.3. Vor der Installation

                             2.4. Die Installation starten

                             2.5. Das Werkzeug sysinstall

                             2.6. Plattenplatz fu:r FreeBSD
                             bereitstellen

                             2.7. Den Installationsumfang bestimmen

                             2.8. Das Installationsmedium auswa:hlen

                             2.9. Die Installation festschreiben

                             2.10. Arbeiten nach der Installation

                             2.11. Fehlersuche

                             2.12. Anspruchsvollere Installationen

                             2.13. Eigene Installationsmedien
                             herstellen

                3. FreeBSD 9.x (und neuer) installieren

                             3.1. U:bersicht

                             3.2. Hardware-Anforderungen

                             3.3. Vor der Installation

                             3.4. Die Installation starten

                             3.5. Das bsdinstall-Werkzeug

                             3.6. Installation aus dem Netzwerk

                             3.7. Plattenplatz bereitstellen

                             3.8. Die Installation festschreiben

                             3.9. Arbeiten nach der Installation

                             3.10. Fehlerbehebung

                4. Grundlagen des UNIX Betriebssystems

                             4.1. U:bersicht

                             4.2. Virtuelle Konsolen und Terminals

                             4.3. Zugriffsrechte

                             4.4. Verzeichnis-Strukturen

                             4.5. Festplatten, Slices und Partitionen

                             4.6. Anha:ngen und Abha:ngen von
                             Dateisystemen

                             4.7. Prozesse

                             4.8. Da:monen, Signale und Stoppen von
                             Prozessen

                             4.9. Shells

                             4.10. Text-Editoren

                             4.11. Gera:te und Gera:tedateien

                             4.12. Bina:rformate

                             4.13. Weitere Informationen

                5. Installieren von Anwendungen: Pakete und Ports

                             5.1. U:bersicht

                             5.2. Installation von Software

                             5.3. Suchen einer Anwendung

                             5.4. Benutzen des Paketsystems

                             5.5. Benutzen der Ports-Sammlung

                             5.6. Nach der Installation

                             5.7. Kaputte Ports

                6. Das X-Window-System

                             6.1. U:bersicht

                             6.2. X-Grundlagen

                             6.3. X11 installieren

                             6.4. X11 konfigurieren

                             6.5. Schriftarten in X11 benutzen

                             6.6. Der X-Display-Manager

                             6.7. Grafische Oberfla:chen

   II. Oft benutzte Funktionen

                7. Desktop-Anwendungen

                             7.1. U:bersicht

                             7.2. Browser

                             7.3. Bu:roanwendungen

                             7.4. Anzeigen von Dokumenten

                             7.5. Finanzsoftware

                             7.6. Zusammenfassung

                8. Multimedia

                             8.1. U:bersicht

                             8.2. Soundkarten einrichten

                             8.3. MP3-Audio

                             8.4. Videos wiedergeben

                             8.5. TV-Karten einrichten

                             8.6. MythTV

                             8.7. Scanner

                9. Konfiguration des FreeBSD-Kernels

                             9.1. U:bersicht

                             9.2. Wieso einen eigenen Kernel bauen?

                             9.3. Informationen u:ber die vorhandene
                             Hardware beschaffen

                             9.4. Kerneltreiber, Subsysteme und
                             Module

                             9.5. Erstellen und Installation eines
                             angepassten Kernels

                             9.6. Die Kernelkonfigurationsdatei

                             9.7. Wenn etwas schiefgeht

                10. Drucken

                             10.1. U:bersicht

                             10.2. Einfu:hrung

                             10.3. Grund-Konfiguration

                             10.4. Erweiterte Drucker-Konfiguration

                             10.5. Drucker verwenden

                             10.6. Alternativen zum LPD-Drucksystem

                             10.7. Problembehandlung

                11. Linux-Bina:rkompatibilita:t

                             11.1. U:bersicht

                             11.2. Installation

                             11.3. Mathematica(R) installieren

                             11.4. Maple(TM) installieren

                             11.5. MATLAB(R) installieren

                             11.6. Oracle(R) installieren

                             11.7. Weiterfu:hrende Themen

   III. Systemadministration

                12. Konfiguration und Tuning

                             12.1. U:bersicht

                             12.2. Vorbereitende Konfiguration

                             12.3. Basiskonfiguration

                             12.4. Konfiguration von Anwendungen

                             12.5. Start von Diensten

                             12.6. Programme mit cron starten

                             12.7. Das rc-System fu:r Systemdienste

                             12.8. Einrichten von Netzwerkkarten

                             12.9. Virtual Hosts

                             12.10. Konfigurationsdateien

                             12.11. Einstellungen mit sysctl

                             12.12. Tuning von Laufwerken

                             12.13. Einstellungen von Kernel Limits

                             12.14. Hinzufu:gen von Swap-Bereichen

                             12.15. Energie- und Ressourcenverwaltung

                             12.16. ACPI-Fehlersuche

                13. FreeBSDs Bootvorgang

                             13.1. U:bersicht

                             13.2. Das Problem des Bootens

                             13.3. Boot-Manager und Boot-Phasen

                             13.4. Kernel Interaktion wa:hrend des
                             Bootprozesses

                             13.5. Konfiguration von Gera:ten

                             13.6. Init: Initialisierung der
                             Prozess-Kontrolle

                             13.7. Der Shutdown-Vorgang

                14. Benutzer und grundlegende Account-Verwaltung

                             14.1. U:bersicht

                             14.2. Einfu:hrung

                             14.3. Der Superuser-Account

                             14.4. System-Accounts

                             14.5. Benutzer-Accounts

                             14.6. Accounts vera:ndern

                             14.7. Benutzer einschra:nken

                             14.8. Gruppen

                15. Sicherheit

                             15.1. U:bersicht

                             15.2. Einfu:hrung

                             15.3. Absichern von FreeBSD

                             15.4. DES, Blowfish, MD5, und Crypt

                             15.5. Einmalpasswo:rter

                             15.6. TCP-Wrapper

                             15.7. Kerberos5

                             15.8. OpenSSL

                             15.9. VPNs mit IPsec

                             15.10. OpenSSH

                             15.11. Zugriffskontrolllisten fu:r
                             Dateisysteme

                             15.12. Sicherheitsprobleme in Software
                             Dritter u:berwachen

                             15.13. FreeBSD Sicherheitshinweise

                             15.14. Prozess-U:berwachung

                16. Jails

                             16.1. U:bersicht

                             16.2. Jails - Definitionen

                             16.3. Einfu:hrung

                             16.4. Einrichtung und Verwaltung von
                             Jails

                             16.5. Feinabstimmung und Administration

                             16.6. Anwendung von Jails

                17. Verbindliche Zugriffskontrolle

                             17.1. U:bersicht

                             17.2. Schlu:sselbegriffe

                             17.3. Erla:uterung

                             17.4. MAC Labels verstehen

                             17.5. Planung eines Sicherheitsmodells

                             17.6. Modulkonfiguration

                             17.7. Das MAC Modul seeotheruids

                             17.8. Das MAC Modul bsdextended

                             17.9. Das MAC Modul ifoff

                             17.10. Das MAC Modul portacl

                             17.11. Das MAC Modul partition

                             17.12. Das MAC Modul Multi-Level
                             Security

                             17.13. Das MAC Modul Biba

                             17.14. Das MAC Modul LOMAC

                             17.15. Beispiel 1: Nagios in einer MAC
                             Jail

                             17.16. Beispiel 2: User Lock Down

                             17.17. Fehler im MAC beheben

                18. Security Event Auditing

                             18.1. Einleitung

                             18.2. Schlu:sselbegriffe

                             18.3. Installation der
                             Audit-Unterstu:tzung

                             18.4. Die Konfiguration des Audit

                             18.5. Administration des
                             Audit-Subsystems

                19. Speichermedien

                             19.1. U:bersicht

                             19.2. Gera:tenamen

                             19.3. Hinzufu:gen von Laufwerken

                             19.4. RAID

                             19.5. USB Speichermedien

                             19.6. CDs benutzen

                             19.7. DVDs benutzen

                             19.8. Disketten benutzen

                             19.9. Bandmedien benutzen

                             19.10. Was ist mit Backups auf
                             Disketten?

                             19.11. Backup-Strategien

                             19.12. Datensicherung

                             19.13. Netzwerk-, speicher- und
                             dateibasierte Dateisysteme

                             19.14. Schnappschu:sse von Dateisystemen

                             19.15. Dateisystem-Quotas

                             19.16. Partitionen verschlu:sseln

                             19.17. Den Auslagerungsspeicher
                             verschlu:sseln

                             19.18. Highly Available Storage (HAST)

                20. GEOM: Modulares Framework zur
                Plattentransformation

                             20.1. U:bersicht

                             20.2. Einfu:hrung in GEOM

                             20.3. RAID0 - Striping

                             20.4. RAID1 - Spiegelung

                             20.5. GEOM Gate Netzwerkgera:te

                             20.6. Das Labeln von Laufwerken

                             20.7. UFS Journaling in GEOM

                21. Dateisystemunterstu:tzung

                             21.1. U:bersicht

                             21.2. Das Z-Dateisystem (ZFS)

                22. Der Vinum Volume Manager

                             22.1. U:bersicht

                             22.2. Ihre Platten sind zu klein.

                             22.3. Mo:gliche Engpa:sse

                             22.4. Datenintegrita:t

                             22.5. Vinum-Objekte

                             22.6. Einige Beispiele

                             22.7. Objektbenennung

                             22.8. Vinum konfigurieren

                             22.9. Vinum fu:r das Root-Dateisystem
                             benutzen

                23. Virtualisierung

                             23.1. U:bersicht

                             23.2. FreeBSD als Gast-Betriebssystem

                             23.3. FreeBSD als Host-Betriebssystem

                24. Lokalisierung - I18N/L10N einrichten und benutzen

                             24.1. U:bersicht

                             24.2. Grundlagen

                             24.3. Lokale Anpassungen benutzen

                             24.4. I18N-Programme u:bersetzen

                             24.5. Lokalisierung fu:r einzelne
                             Sprachen

                25. FreeBSD aktualisieren

                             25.1. U:bersicht

                             25.2. FreeBSD-Update

                             25.3. Portsnap: Ein Werkzeug zur
                             Aktualisierung der Ports-Sammlung

                             25.4. Aktualisieren der
                             Dokumentationssammlung

                             25.5. Einem Entwicklungszweig folgen

                             25.6. Synchronisation der Quellen

                             25.7. Das komplette Basissystem neu
                             bauen

                             25.8. Veraltete Dateien, Verzeichnisse
                             und Bibliotheken lo:schen

                             25.9. Installation mehrerer Maschinen

                26. DTrace

                             26.1. U:berblick

                             26.2. Unterschiede in der
                             Implementierung

                             26.3. Die DTrace Unterstu:tzung
                             aktivieren

                             26.4. DTrace verwenden

                             26.5. Die Sprache D

   IV. Netzwerke

                27. Serielle Datenu:bertragung

                             27.1. U:bersicht

                             27.2. Einfu:hrung

                             27.3. Terminals

                             27.4. Einwa:hlverbindungen

                             27.5. Verbindungen nach Aussen

                             27.6. Einrichten der seriellen Konsole

                28. PPP und SLIP

                             28.1. U:bersicht

                             28.2. User-PPP

                             28.3. Kernel-PPP

                             28.4. Probleme bei PPP-Verbindungen

                             28.5. PPP over Ethernet (PPPoE)

                             28.6. PPP over ATM (PPPoA)

                             28.7. SLIP

                29. Elektronische Post (E-Mail)

                             29.1. Terminologie

                             29.2. U:bersicht

                             29.3. Elektronische Post benutzen

                             29.4. sendmail-Konfiguration

                             29.5. Wechseln des
                             Mailu:bertragungs-Agenten

                             29.6. Fehlerbehebung

                             29.7. Weiterfu:hrende Themen

                             29.8. SMTP u:ber UUCP

                             29.9. Ausgehende E-Mail u:ber einen
                             Relay versenden

                             29.10. E-Mail u:ber Einwahl-Verbindungen

                             29.11. SMTP-Authentifizierung

                             29.12. E-Mail-Programme

                             29.13. E-Mails mit fetchmail abholen

                             29.14. E-Mails mit procmail filtern

                30. Netzwerkserver

                             30.1. U:bersicht

                             30.2. Der inetd "Super-Server"

                             30.3. NFS - Network File System

                             30.4. NIS/YP - Network Information
                             Service

                             30.5. Automatische Netzwerkkonfiguration
                             mit DHCP

                             30.6. DNS - Domain Name Service

                             30.7. Der Apache HTTP-Server

                             30.8. FTP - File Transfer Protocol

                             30.9. Mit Samba einen Datei- und
                             Druckserver fu:r
                             Microsoft Windows-Clients einrichten

                             30.10. Die Uhrzeit mit NTP
                             synchronisieren

                             30.11. Protokollierung von anderen Hosts
                             mittels syslogd

                31. Firewalls

                             31.1. Einfu:hrung

                             31.2. Firewallkonzepte

                             31.3. Firewallpakete

                             31.4. Paket Filter (PF) von OpenBSD und
                             ALTQ

                             31.5. Die IPFILTER-Firewall (IPF)

                             31.6. IPFW

                32. Weiterfu:hrende Netzwerkthemen

                             32.1. U:bersicht

                             32.2. Gateways und Routen

                             32.3. Drahtlose Netzwerke

                             32.4. Bluetooth

                             32.5. LAN-Kopplung mit einer Bridge

                             32.6. Link-Aggregation und Failover

                             32.7. Start und Betrieb von FreeBSD
                             u:ber ein Netzwerk

                             32.8. ISDN - diensteintegrierendes
                             digitales Netzwerk

                             32.9. NAT - Network Address Translation

                             32.10. PLIP - Parallel Line IP

                             32.11. IPv6 - Internet Protocol Version
                             6

                             32.12. ATM - Asynchronous Transfer Mode

                             32.13. CARP - Common Address Redundancy
                             Protocol

   V. Anhang

                A. Bezugsquellen fu:r FreeBSD

                             A.1. CD-ROM und DVD Verleger

                             A.2. FTP-Server

                             A.3. BitTorrent

                             A.4. Anonymous CVS

                             A.5. CTM

                             A.6. Benutzen von CVSup

                             A.7. CVS-Tags

                             A.8. AFS-Server

                             A.9. rsync-Server

                B. Bibliografie

                             B.1. Bu:cher und Magazine speziell fu:r
                             FreeBSD

                             B.2. Handbu:cher

                             B.3. Administrations-Anleitungen

                             B.4. Programmierhandbu:cher

                             B.5. Betriebssystem-Interna

                             B.6. Sicherheits-Anleitung

                             B.7. Hardware-Anleitung

                             B.8. UNIX(R) Geschichte

                             B.9. Magazine und Journale

                C. Ressourcen im Internet

                             C.1. Mailinglisten

                             C.2. Usenet-News

                             C.3. World Wide Web Server

                             C.4. E-Mail Adressen

                D. PGP Schlu:ssel

                             D.1. Ansprechpartner

                             D.2. Mitglieder des Core Teams

                             D.3. Entwickler

   FreeBSD Glossar

   Kolophon

   Tabellenverzeichnis

   2-1. Gera:tekonfiguration

   2-2. Partitionen auf dem ersten Laufwerk

   2-3. Partitionen auf weiteren Laufwerken

   2-4. FreeBSD 7.X und 8.X ISO-Abbilder

   3-1. Partitionierungsschemas

   4-1. Laufwerk-Codes

   19-1. Namenskonventionen von physikalischen Laufwerken

   22-1. Vinum-Plexus - Aufbau

   27-1. Nullmodemkabel vom Typ DB-25-zu-DB-25

   27-2. Nullmodemkabel vom Typ DB-9-zu-DB-9

   27-3. Nullmodemkabel vom Typ DB-9-zu-DB-25

   27-4. Signalnamen

   32-1. Die Netzwerk-Verdrahtung eines parallelen Kabels

   32-2. Reservierte IPv6-Adressen

   Abbildungsverzeichnis

   2-1. FreeBSD Boot Loader Menu

   2-2. Ausgabe der Gera:teerkennung

   2-3. Ihr Land auswa:hlen

   2-4. Die Tastaturbelegung auswa:hlen

   2-5. Die Gebrauchsanweisung von sysinstall auswa:hlen

   2-6. Die Dokumentation abrufen

   2-7. Das Dokumentationsmenu: von sysinstall

   2-8. Das Hauptmenu: von sysinstall

   2-9. Sysinstall Keymap Menu

   2-10. Das Hauptmenu: von sysinstall

   2-11. Optionen von sysinstall

   2-12. Die Standard-Installation starten

   2-13. Ein Laufwerk fu:r Fdisk aussuchen

   2-14. Typischer Fdisk-Bildschirm vor dem Editieren

   2-15. Eine Partition u:ber die gesamte Platte

   2-16. Sysinstall Boot-Manager-Menu:

   2-17. Die Laufwerksauswahl verlassen

   2-18. Sysinstall Disklabel-Editor

   2-19. Sysinstall Disklabel-Editor mit automatischen Vorgaben

   2-20. Die Gro:sse einer Partition festlegen

   2-21. Die Gro:sse einer Partition a:ndern

   2-22. Den Partitionstyp festlegen

   2-23. Den Mountpoint festlegen

   2-24. Sysinstall Disklabel-Editor

   2-25. Die Distribution auswa:hlen

   2-26. Die Distributionen besta:tigen

   2-27. Das Installationsmedium auswa:hlen

   2-28. Eine Netzwerkkarte auswa:hlen

   2-29. Die Netzwerkkarte ed0 konfigurieren

   2-30. inetd.conf editieren

   2-31. Anonymous-FTP konfigurieren

   2-32. Begru:ssungsmeldung des FTP-Servers editieren

   2-33. exports editieren

   2-34. Merkmale der Systemkonsole

   2-35. Bildschirmschoner auswa:hlen

   2-36. Den Bildschirmschoner einstellen

   2-37. Die Konfiguration der Systemkonsole verlassen

   2-38. Das Gebiet auswa:hlen

   2-39. Das Land auswa:hlen

   2-40. Die Zeitzone auswa:hlen

   2-41. Das Mausprotokoll festlegen

   2-42. Das Mausprotokoll festlegen

   2-43. Den Mausport einstellen

   2-44. Den Mausport einstellen

   2-45. Den Mouse-Daemon aktivieren

   2-46. Den Mouse-Daemon testen

   2-47. Die Paketkategorie aussuchen

   2-48. Pakete auswa:hlen

   2-49. Pakete installieren

   2-50. Paketinstallation besta:tigen

   2-51. Benutzerkonto auswa:hlen

   2-52. Benutzerkonto anlegen

   2-53. Benutzermenu: verlassen

   2-54. Die Installation beenden

   2-55. Netzwerkdienste - obere Ha:lfte

   2-56. Den MTA festlegen

   2-57. Ntpdate konfigurieren

   2-58. Netzwerkdienste - untere Ha:lfte

   3-1. Das FreeBSD-Bootloader Menu:

   3-2. Typical Device Probe Results

   3-3. Auswahl der Verwendung des Installationsmediums

   3-4. Tastaturbelegung festlegen

   3-5. Tastaturauswahlbildschirm

   3-6. Festlegen des Rechnernamens

   3-7. Komponenten fu:r die Installation auswa:hlen

   3-8. Installation u:ber das Netzwerk

   3-9. Einen Spiegelserver wa:hlen

   3-10. Gefu:hrte oder manuelle Partitionierung auswa:hlen

   3-11. Aus mehreren Platten eine auswa:hlen

   3-12. Auswahl der gesamten Platte oder einer Partition

   3-13. U:berpru:fen der erstellen Partitionen

   3-14. Partitionen manuell erstellen

   3-15. Partitionen manuell anlegen

   3-16. Partitionen manuell erzeugen

   3-17. Letzte Besta:tigung

   3-18. Herunterladen der Distributionsdateien

   3-19. U:berpru:fen der Distributionsdateien

   3-20. Entpacken der Distributionsdateien

   3-21. Das root-Passwort setzen

   3-22. Eine zu konfigurierende Netzwerkschnittstelle auswa:hlen

   3-23. Nach drahtlosen Access Points scannen

   3-24. Ein drahtloses Netzwerk auswa:hlen

   3-25. Verbindungsaufbau mit WPA2

   3-26. Auswahl von IPv4

   3-27. Auswa:hlen der IPv4-Konfiguration u:ber DHCP

   3-28. Statische IPv4-Konfiguration

   3-29. Auswahl von IPv6

   3-30. Auswahl der IPv6 SLAAC-Konfiguration

   3-31. Statische IPv6-Konfiguration

   3-32. DNS-Konfiguration

   3-33. Lokale oder UTC-Zeit

   3-34. Das Gebiet auswa:hlen

   3-35. Das Land auswa:hlen

   3-36. Wa:hlen einer Zeitzone

   3-37. Besta:tigen der Zeitzone

   3-38. Auswahl zusa:tzlicher Dienste

   3-39. Aktivierung der Absturzaufzeichnung

   3-40. Benutzerkonten hinzufu:gen

   3-41. Benutzerinformationen eingeben

   3-42. Verlassen der Benutzer- und Gruppenverwaltung

   3-43. Letzte Schritte der Konfiguration

   3-44. Manuelle Konfiguration

   3-45. Die Installation vervollsta:ndigen

   22-1. Konkatenierte Anordnung

   22-2. Striped-Anordnung

   22-3. RAID-5 Aufbau

   22-4. Ein einfaches Vinum-Volume

   22-5. Ein gespiegeltes Vinum Volume

   22-6. Ein Striped Vinum Volume

   22-7. Ein gespiegeltes, Striped Vinum Volume

   Beispiele

   2-1. Eine bestehende Partition verwenden

   2-2. Eine bestehende Partition verkleinern

   3-1. Eine existierende Partition vera:ndern

   3-2. Verkleinern einer bestehenden Partition

   3-3. Ein traditionelles, partitioniertes Dateisystem erstellen

   4-1. Namen von Platten, Slices und Partitionen

   4-2. Aufteilung einer Festplatte

   5-1. Download vor Installation eines Pakets

   12-1. Erstellen einer Swap-Datei

   13-1. boot0-Screenshot

   13-2. boot2-Screenshot

   13-3. Auf insecure gesetzte Konsole in /etc/ttys

   14-1. Einen Benutzer unter FreeBSD anlegen

   14-2. Interaktives Lo:schen von Account mit rmuser

   14-3. Interaktives chpass des Superusers

   14-4. Interaktives chpass eines normalen Benutzers

   14-5. Wechseln des Passworts

   14-6. Als Superuser das Passwort eines anderen Accounts vera:ndern

   14-7. Setzen der Mitgliederliste einer Gruppe mit pw(8)

   14-8. Ein Gruppenmitglied mit pw hinzufu:gen

   14-9. Hinzufu:gen eines neuen Gruppenmitglieds mittels pw(8)

   14-10. Mit id die Gruppenzugeho:rigkeit bestimmen

   15-1. Mit SSH einen sicheren Tunnel fu:r SMTP erstellen

   19-1. dump mit ssh benutzen

   19-2. dump u:ber ssh mit gesetzter RSH benutzen

   19-3. Einha:ngen eines existierenden Abbildes unter FreeBSD

   19-4. Erstellen eines dateibasierten Laufwerks mit mdconfig

   19-5. Mit mdmfs ein dateibasiertes Dateisystem erstellen

   19-6. Erstellen eines speicherbasierten Laufwerks mit mdconfig

   19-7. Erstellen eines speicherbasierten Laufwerks mit mdmfs

   20-1. Die Partitionen einer Bootplatte labeln

   27-1. Eintra:ge in /etc/ttys hinzufu:gen

   29-1. Konfigurieren der sendmail Zugriffsdatenbank

   29-2. E-Mail Aliases

   29-3. Beispiel einer virtuellen Doma:nen Zuordnung

   30-1. Die inetd-Konfiguration neu einlesen

   30-2. Ein exportiertes Dateisystem mit amd in den Verzeichnisbaum
   einha:ngen

   30-3. Django mit Apache2, mod_python3, und PostgreSQL installieren

   30-4. Apache-Konfiguration fu:r Django/mod_python

   32-1. LACP Aggregation mit einem Switch von Cisco(R)

   32-2. Ausfallsicherer Modus

   32-3. Failover Modus zwischen drahtgebundenen und drahtlosen
   Schnittstellen

   32-4. Kleines Netzwerk (Privatnetz)

   32-5. Grosses Netzwerk (Firmennetz)

   A-1. ls(1) von -CURRENT auschecken

   A-2. Den src/-Baum u:ber SSH auschecken

   A-3. ls(1) aus dem 8-STABLE-Zweig auschecken

   A-4. A:nderungen in ls(1) zwischen 5.3 RELEASE und 5.4 RELEASE
   (als unified diff)

   A-5. Gu:ltige Modulnamen herausfinden

     --------------------------------------------------------------

                                Vorwort

U:ber dieses Buch

   Der erste Teil dieses Buchs fu:hrt FreeBSD-Einsteiger durch den
   Installationsprozess und stellt leicht versta:ndlich Konzepte und
   Konventionen vor, die UNIX(R) zu Grunde liegen. Sie mu:ssen nur
   neugierig sein und bereitwillig neue Konzepte aufnehmen, wenn
   diese vorgestellt werden, um diesen Teil durchzuarbeiten.

   Wenn Sie den ersten Teil bewa:ltigt haben, bietet der
   umfangreichere zweite Teil eine versta:ndliche Darstellung vieler
   Themen, die fu:r FreeBSD-Administratoren relevant sind. Wenn
   Kapitel auf anderen Kapiteln aufbauen, wird das in der U:bersicht
   am Anfang eines Kapitels erla:utert.

   Weitere Informationsquellen entnehmen Sie bitte Anhang B.

A:nderungen gegenu:ber der dritten Auflage

   Die aktuelle Auflage des Handbuchs ist das Ergebnis der
   engagierten Arbeit Hunderter Mitarbeiter des FreeBSD Documentation
   Projects in den vergangenen 10 Jahren. Die wichtigsten A:nderungen
   dieser Auflage gegenu:ber der dritten Auflage von 2004 sind:

     * Kapitel 26, DTrace, ein neues Kapitel, informiert Sie u:ber
       die ma:chtigen Funktionen zur Leistungsmessung, die dieses
       Werkzeug bietet.

     * Kapitel 21, File Systems Support, ebenfalls ein neues Kapitel,
       entha:lt Informationen u:ber die Unterstu:tzung nicht-nativer
       Dateisysteme (beispielsweise ZFS von Sun(TM)) durch FreeBSD.

     * Kapitel 18, Security Event Auditing, wurde neu angelegt, um
       u:ber die neuen Auditing-Fa:higkeiten von FreeBSD zu
       informieren.

     * Kapitel 23, Virtualisierung, wurde hinzugefu:gt und entha:lt
       Informationen zur Installation von FreeBSD in verschiedenen
       Virtualisierungs-Programmen.

     * Kapitel 3, FreeBSD 9.x (und neuer) installieren, wurde
       hinzugefu:gt, um die Installation von FreeBSD mit dem neuen
       Installationswerkzeug, bsdinstall, zu dokumentieren.

A:nderungen gegenu:ber der zweiten Auflage (2004)

   Die dritte Auflage des Handbuchs war das Ergebnis der u:ber zwei
   Jahre dauernden engagierten Arbeit des FreeBSD Documentation
   Projects. Die gedruckte Ausgabe war derart umfangreich, dass es
   notwendig wurde, sie in zwei Ba:nde aufzuteilen. Die wichtigsten
   A:nderungen dieser Auflage waren:

     * Kapitel 12, Konfiguration und Tuning, entha:lt neue Abschnitte
       u:ber ACPI, Energie- und Ressourcenverwaltung und das Werkzeug
       cron.

     * Kapitel 15, Sicherheit, erla:utert nun Virtual Private
       Networks (VPNs), Zugriffskontrolllisten (ACLs) und
       Sicherheitshinweise.

     * Kapitel 17, Mandatory Access Control (MAC), ist ein neues
       Kapitel, das vorgeschriebene Zugriffskontrollen vorstellt und
       erkla:rt, wie FreeBSD-Systeme mit MACs abgesichert werden
       ko:nnen.

     * Kapitel 22, Vinum, ist ebenfalls ein neues Kapitel in dieser
       Auflage. Dieses Kapitel beschreibt den Logical-Volume-Manager
       Vinum, der gera:teunabha:ngige logische Platten und RAID-0,
       RAID-1 sowie RAID-5 auf Software-Ebene bereitstellt.

     * Zum Kapitel Kapitel 28, PPP und SLIP, wurde ein Abschnitt
       u:ber Fehlersuche hinzugefu:gt.

     * Kapitel 29, Elektronische Post (E-Mail), wurde um Abschnitte
       u:ber andere Transport-Agenten (MTAs), SMTP-Authentifizierung,
       UUCP, fetchmail, procmail und weitere Themen erweitert.

     * Kapitel 30, Netzwerkserver, ist ein weiteres neues Kapitel
       dieser Auflage. Das Kapitel beschreibt, wie der Apache
       HTTP-Server, ftpd und ein Samba-Server fu:r Microsoft(R)
       Windows(R)-Clients eingerichtet werden. Einige Abschnitte aus
       dem Kapitel 32, Weiterfu:hrende Netzwerkthemen, befinden sich
       nun, wegen des thematischen Zusammenhangs, in diesem Kapitel.

     * Das Kapitel 32, Weiterfu:hrende Netzwerkthemen, beschreibt nun
       den Einsatz von Bluetooth(R)-Gera:ten unter FreeBSD und das
       Einrichten von drahtlosen Netzwerken sowie ATM-Netzwerken.

     * Neu hinzugefu:gt wurde ein Glossar, das die im Buch
       verwendeten technischen Ausdru:cke definiert.

     * Das Erscheinungsbild der Tabellen und Abbildungen im Buch
       wurde verbessert.

A:nderungen gegenu:ber der ersten Auflage (2001)

   Die zweite Auflage ist das Ergebnis der engagierten Arbeit der
   Mitglieder des FreeBSD Documentation Projects u:ber zwei Jahre.
   Die wichtigsten A:nderungen gegenu:ber der ersten Auflage sind:

     * Ein Index wurde erstellt.

     * Alle ASCII-Darstellungen wurden durch Grafiken ersetzt.

     * Jedes Kapitel wird durch eine U:bersicht eingeleitet, die den
       Inhalt des Kapitels zusammenfasst und die Voraussetzungen fu:r
       ein erfolgreiches Durcharbeiten des Kapitels darstellt.

     * Der Inhalt wurde in die logischen Abschnitte "Erste Schritte",
       "Systemadministration" und "Anha:nge" unterteilt.

     * Kapitel 2 ("FreeBSD installieren") wurde komplett neu
       geschrieben und mit Abbildungen versehen, die Einsteigern das
       Versta:ndnis des Texts erleichtern.

     * Kapitel 4 ("Grundlagen des UNIX Betriebssystems") wurde um den
       Abschnitt "Da:monen, Signale und Stoppen von Prozessen"
       erweitert.

     * Das Kapitel 5 ("Installieren von Anwendungen") behandelt nun
       auch Pakete.

     * Kapitel 6 ("Das X Window System") wurde neu geschrieben. Der
       Schwerpunkt liegt auf modernen Benutzeroberfla:chen unter
       XFree86(TM) 4.X wie KDE und GNOME.

     * Das Kapitel 13 ("FreeBSDs Bootvorgang") wurde erweitert.

     * Kapitel 19 ("Speichermedien") ist aus den beiden Kapiteln
       "Laufwerke" und "Sicherungen" entstanden. Die in den beiden
       Kapiteln diskutierten Themen sind so leichter zu verstehen.
       Hinzugekommen ist ein Abschnitt u:ber Software- und
       Hardware-RAID.

     * Das Kapitel 27 ("Serielle Datenu:bertragung") wurde
       umorganisiert und auf FreeBSD 4.X/5.X angepasst.

     * Das Kapitel 28 ("PPP und SLIP") wurde aktualisiert.

     * Kapitel 32 ("Weiterfu:hrende Netzwerkthemen") wurde um viele
       neue Abschnitte erweitert.

     * Kapitel 29 ("Electronic Mail") wurde um einen Abschnitt u:ber
       die Konfiguration von sendmail erweitert.

     * Kapitel 11 ("Linux(R) Compatibility") behandelt zusa:tzlich
       die Installation von Oracle(R) und Mathematica(R).

     * Neu hinzugekommen sind:

          * Konfiguration und Tuning (Kapitel 12) und

          * Multimedia (Kapitel 8).

Gliederung

   Dieses Buch ist in fu:nf Abschnitte unterteilt. Der erste
   Abschnitt, Erste Schritte, behandelt die Installation und die
   Grundlagen von FreeBSD. Dieser Abschnitt sollte in der
   vorgegebenen Reihenfolge durchgearbeitet werden, schon Bekanntes
   darf aber u:bersprungen werden. Der zweite Abschnitt, Oft benutzte
   Funktionen, behandelt ha:ufig benutzte Funktionen von FreeBSD.
   Dieser Abschnitt sowie alle nachfolgenden Abschnitte ko:nnen in
   beliebiger Reihenfolge gelesen werden. Jeder Abschnitt beginnt mit
   einer kurzen U:bersicht, die das Thema des Abschnitts und das
   no:tige Vorwissen erla:utert. Die U:bersichten helfen dem Leser,
   interessante Kapitel zu finden und erleichtern das Sto:bern im
   Handbuch. Der dritte Abschnitt, Systemadministration, behandelt
   die Administration eines FreeBSD-Systems. Der vierte Abschnitt,
   Netzwerke, bespricht Netzwerke und Netzwerkdienste. Der fu:nfte
   Abschnitt entha:lt Anha:nge und Verweise auf weitere
   Informationen.

   Kapitel 1, Einfu:hrung

           Dieses Kapitel macht Einsteiger mit FreeBSD vertraut. Es
           behandelt die Geschichte, die Ziele und das
           Entwicklungsmodell des FreeBSD-Projekts.

   Kapitel 2, FreeBSD 8.x (und a:lter) installieren

           Beschreibt den Ablauf der Installation von FreeBSD 8.x und
           fru:her mittels sysinstall. Spezielle
           Installationsmethoden, wie die Installation mit einer
           seriellen Konsole, werden ebenfalls behandelt.

   Kapitel 3, FreeBSD 9.x (und neuer) installieren

           Beschreibt den Ablauf der Installation von FreeBSD 9.x und
           neuere mittels bsdinstall.

   Kapitel 4, Grundlagen des UNIX Betriebssystems

           Erla:utert die elementaren Kommandos und Funktionen von
           FreeBSD. Wenn Sie schon mit Linux oder einem anderen UNIX
           System vertraut sind, ko:nnen Sie dieses Kapitel
           u:berspringen.

   Kapitel 5, Installieren von Anwendungen

           Zeigt wie mit der innovativen Ports-Sammlung oder mit
           Paketen Software von Fremdherstellern installiert wird.

   Kapitel 6, Das X Window System

           Beschreibt allgemein das X Window System und geht speziell
           auf X11 unter FreeBSD ein. Weiterhin werden grafische
           Benutzeroberfla:chen wie KDE und GNOME behandelt.

   Kapitel 7, Desktop-Anwendungen

           Entha:lt eine Aufstellung verbreiteter Anwendungen wie
           Browser, Bu:roanwendungen und Office-Pakete und beschreibt
           wie diese Anwendungen installiert werden.

   Kapitel 8, Multimedia

           Erkla:rt, wie Sie auf Ihrem System Musik und Videos
           abspielen ko:nnen. Beispielhaft werden auch Anwendungen
           aus dem Multimedia-Bereich beleuchtet.

   Kapitel 9, Konfiguration des FreeBSD-Kernels

           Erkla:rt, warum Sie einen angepassten Kernel erzeugen
           sollten und gibt ausfu:hrliche Anweisungen wie Sie einen
           angepassten Kernel konfigurieren, bauen und installieren.

   Kapitel 10, Drucken

           Beschreibt, wie Sie Drucker unter FreeBSD verwalten.
           Diskutiert werden Deckbla:tter, das Einrichten eines
           Druckers und ein Abrechnungssystem fu:r ausgedruckte
           Seiten.

   Kapitel 11, Linux-Bina:rkompatibilita:t

           Beschreibt die bina:re Kompatibilita:t zu Linux. Weiterhin
           werden ausfu:hrliche Installationsanleitungen fu:r Oracle,
           SAP(R) R/3(R) und Mathematica gegeben.

   Kapitel 12, Konfiguration und Tuning

           Beschreibt die Einstellungen, die ein Systemadministrator
           vornehmen kann, um die Leistungsfa:higkeit eines FreeBSD
           Systems zu verbessern. In diesem Kapitel werden auch
           verschiedene Konfigurationsdateien besprochen.

   Kapitel 13, FreeBSDs Bootvorgang

           Erkla:rt den Bootprozess von FreeBSD und beschreibt die
           Optionen, mit denen sich der Bootprozess beeinflussen
           la:sst.

   Kapitel 14, Benutzer und grundlegende Account-Verwaltung

           Beschreibt, wie Benutzer-Accounts angelegt, vera:ndert und
           verwaltet werden. Weiterhin wird beschrieben, wie dem
           Benutzer zur Verfu:gung stehende Ressourcen beschra:nkt
           werden ko:nnen.

   Kapitel 15, Sicherheit

           Beschreibt die Werkzeuge mit denen Sie Ihr FreeBSD-System
           absichern. Unter Anderem werden Kerberos, IPsec und
           OpenSSH besprochen.

   Kapitel 16, Jails

           Dieses Kapitel beschreibt das Jails-Framework sowie die
           Vorteile von Jails gegenu:ber der traditionellen
           chroot-Unterstu:tzung von FreeBSD.

   Kapitel 17, Mandatory Access Control

           Erkla:rt vorgeschriebene Zugriffskontrollen (MACs) und wie
           mit ihrer Hilfe FreeBSD-Systeme gesichert werden.

   Kapitel 18, Security Event Auditing

           Beschreibt, was FreeBSD Event Auditing ist, wie Sie diese
           Funktion installieren und konfigurieren und die damit
           erzeugten Audit-Trails u:berwachen und auswerten ko:nnen.

   Kapitel 19, Speichermedien

           Erla:utert den Umgang mit Speichermedien und
           Dateisystemen. Behandelt werden Plattenlaufwerke,
           RAID-Systeme, optische Medien, Bandlaufwerke,
           RAM-Laufwerke und verteilte Dateisysteme.

   Kapitel 20, GEOM

           Beschreibt das GEOM-Framework von FreeBSD sowie die
           Konfiguration der verschiedenen unterstu:tzten RAID-Level.

   Kapitel 21, File Systems Support

           Beschreibt die Unterstu:tzung nicht-nativer Dateisysteme
           (beispielsweise des Z-Dateisystems (zfs) von Sun) durch
           FreeBSD.

   Kapitel 22, Vinum

           Beschreibt den Vinum Volume Manager, der virtuelle
           Laufwerke, RAID-0, RAID-1 und RAID-5 auf Software-Ebene
           bereitstellt.

   Kapitel 23, Virtualisierung

           Dieses Kapitel beschreibt verschiedene
           Virtualisierungslo:sungen und wie diese mit FreeBSD
           zusammenarbeiten.

   Kapitel 24, Lokalisierung

           Zeigt wie Sie FreeBSD mit anderen Sprachen als Englisch
           einsetzen. Es wird sowohl die Lokalisierung auf der
           System-Ebene wie auch auf der Anwendungs-Ebene betrachtet.

   Kapitel 25, FreeBSD aktualisieren

           Erkla:rt die Unterschiede zwischen FreeBSD-STABLE,
           FreeBSD-CURRENT und FreeBSD-Releases. Das Kapitel entha:lt
           Kriterien anhand derer Sie entscheiden ko:nnen, ob es sich
           lohnt, ein Entwickler-System zu installieren und aktuell
           zu halten. Ausserdem wird beschrieben, wie Sie Ihr System
           durch das Einspielen neuer Sicherheits-Patches absichern.

   Kapitel 26, DTrace

           Beschreibt, wie das von Sun entwickelte DTrace-Werkzeug
           unter FreeBSD konfiguriert und eingesetzt werden kann.
           Dynamisches Tracing kann Ihnen beim Aufspu:ren von
           Leistungsproblemen helfen, indem Sie
           Echtzeit-Systemanalysen durchfu:hren.

   Kapitel 27, Serielle Datenu:bertragung

           Erla:utert, wie Sie Terminals und Modems an Ihr
           FreeBSD-System anschliessen und sich so ein- und
           auswa:hlen ko:nnen.

   Kapitel 28, PPP und SLIP

           Erkla:rt wie Sie mit PPP, SLIP oder PPP u:ber Ethernet ein
           FreeBSD-System mit einem entfernten System verbinden.

   Kapitel 29, Elektronische Post (E-Mail)

           Erla:utert die verschiedenen Bestandteile eines E-Mail
           Servers und zeigt einfache Konfigurationen fu:r sendmail,
           dem meist genutzten E-Mail-Server.

   Kapitel 30, Netzwerkserver

           Bietet ausfu:hrliche Informationen und
           Beispielkonfigurationen, die es Ihnen ermo:glichen, Ihren
           FreeBSD-Rechner als Network File System Server, Domain
           Name Server, Network Information Server, oder als
           Zeitsynchronisationsserver einzurichten.

   Kapitel 31, Firewalls

           Erkla:rt die Philosophie hinter softwarebasierten
           Firewalls und bietet ausfu:hrliche Informationen zur
           Konfiguration der verschiedenen, fu:r FreeBSD verfu:gbaren
           Firewalls.

   Kapitel 32, Weiterfu:hrende Netzwerkthemen

           Behandelt viele Netzwerkthemen, beispielsweise das
           Verfu:gbarmachen einer Internetverbindung fu:r andere
           Rechner eines LANs, Routing, drahtlose Netzwerke,
           Bluetooth, IPv6, ATM und andere mehr.

   Anhang A, Bezugsquellen fu:r FreeBSD

           Entha:lt eine Aufstellung der Quellen von denen Sie
           FreeBSD beziehen ko:nnen: CD-ROM, DVD sowie
           Internet-Sites.

   Anhang B, Bibliografie

           Dieses Buch behandelt viele Themen und kann nicht alle
           Fragen erscho:pfend beantworten. Die Bibliografie entha:lt
           weiterfu:hrende Bu:cher, die im Text zitiert werden.

   Anhang C, Ressourcen im Internet

           Entha:lt eine Aufstellung der Foren, die FreeBSD Benutzern
           fu:r Fragen und Diskussionen zur Verfu:gung stehen.

   Anhang D, PGP Schlu:ssel

           Entha:lt PGP-Fingerabdru:cke von etlichen FreeBSD
           Entwicklern.

Konventionen in diesem Buch

   Damit der Text einheitlich erscheint und leicht zu lesen ist,
   werden im ganzen Buch die nachstehenden Konventionen beachtet:

  Typographie

   Kursiv

           Fu:r Dateinamen, URLs, betonte Teile eines Satzes und das
           erste Vorkommen eines Fachbegriffs wird ein kursiver
           Zeichensatz benutzt.

   Fixschrift

           Fehlermeldungen, Kommandos, Umgebungsvariablen, Namen von
           Ports, Hostnamen, Benutzernamen, Gruppennamen,
           Gera:tenamen, Variablen und Code-Ausschnitte werden in
           einer Fixschrift dargestellt.

   Fett

           Fett kennzeichnet Anwendungen, Kommandozeilen und
           Tastensymbole.

  Benutzereingaben

   Tasten werden fett dargestellt, um sie von dem umgebenden Text
   abzuheben. Tasten, die gleichzeitig gedru:ckt werden mu:ssen,
   werden durch ein + zwischen den einzelnen Tasten dargestellt:

   Ctrl+Alt+Del

   Im gezeigten Beispiel soll der Benutzer die Tasten Ctrl, Alt und
   Del gleichzeitig dru:cken.

   Tasten, die nacheinander gedru:ckt werden mu:ssen, sind durch
   Kommas getrennt:

   Ctrl+X, Ctrl+S

   Das letzte Beispiel bedeutet, dass die Tasten Ctrl und X
   gleichzeitig beta:tigt werden und danach die Tasten Ctrl und S
   gleichzeitig gedru:ckt werden mu:ssen.

  Beispiele

   Beispiele, die durch E:\> eingeleitet werden, zeigen ein MS-DOS(R)
   Kommando. Wenn nichts Anderes angezeigt wird, ko:nnen diese
   Kommandos unter neuen Versionen von Microsoft Windows auch in
   einem DOS-Fenster ausgefu:hrt werden.

 E:\> tools\fdimage floppies\kern.flp A:

   Beispiele, die mit # beginnen, mu:ssen unter FreeBSD mit
   Superuser-Rechten ausgefu:hrt werden. Dazu melden Sie sich
   entweder als root an oder Sie wechseln von Ihrem normalen Account
   mit su(1) zu dem Benutzer root.

 # dd if=kern.flp of=/dev/fd0

   Beispiele, die mit % anfangen, werden unter einem normalen
   Benutzer-Account ausgefu:hrt. Sofern nichts Anderes angezeigt
   wird, verwenden die Beispiele die Syntax der C-Shell.

 % top

Danksagung

   Dieses Buch ist aus Beitra:gen von vielen Leuten aus allen Teilen
   der Welt entstanden. Alle eingegangen Beitra:ge, zum Beispiel
   Korrekturen oder vollsta:ndige Kapitel, waren wertvoll.

   Einige Firmen haben dieses Buch dadurch unterstu:tzt, dass Sie
   Autoren in Vollzeit bescha:ftigt und die Vero:ffentlichung des
   Buchs finanziert haben. Besonders BSDi (das spa:ter von Wind River
   Systems u:bernommen wurde) bescha:ftigte Mitglieder des FreeBSD
   Documentation Projects, um dieses Buch zu erstellen. Dadurch wurde
   die erste (englische) gedruckte Auflage im Ma:rz 2000 mo:glich
   (ISBN 1-57176-241-8). Wind River Systems bezahlte dann weitere
   Autoren, die die zum Drucken no:tige Infrastruktur verbesserten
   und zusa:tzliche Kapitel beisteuerten. Das Ergebnis dieser Arbeit
   ist die zweite (englische) Auflage vom November 2001 (ISBN
   1-57176-303-1). Zwischen 2003 und 2004 bezahlte FreeBSD Mall, Inc
   mehrere Mitarbeiter fu:r die Vorbereitung der gedruckten dritten
   Auflage.

                           I. Erste Schritte

   Dieser Teil des FreeBSD-Handbuchs richtet sich an Benutzer und
   Administratoren fu:r die FreeBSD neu ist. Diese Kapitel

     * geben Ihnen eine Einfu:hrung in FreeBSD,

     * geleiten Sie durch den Installationsprozess,

     * erkla:ren Ihnen die Grundlagen von UNIX Systemen,

     * zeigen Ihnen, wie Sie die Fu:lle der erha:ltlichen Anwendungen
       Dritter installieren und

     * fu:hren Sie in X, der Benutzeroberfla:che von UNIX Systemen
       ein. Es wird gezeigt, wie Sie den Desktop konfigurieren, um
       effektiver arbeiten zu ko:nnen.

   Wir haben uns bemu:ht, Referenzen auf weiter vorne liegende
   Textteile auf ein Minimum zu beschra:nken, so dass Sie diesen Teil
   des Handbuchs ohne viel Bla:ttern durcharbeiten ko:nnen.

   Inhaltsverzeichnis

   1. Einfu:hrung

   2. FreeBSD 8.X (und a:lter) installieren

   3. FreeBSD 9.x (und neuer) installieren

   4. Grundlagen des UNIX Betriebssystems

   5. Installieren von Anwendungen: Pakete und Ports

   6. Das X-Window-System

     --------------------------------------------------------------

                         Kapitel 1. Einfu:hrung

   Neu zusammengestellt, umstrukturiert und um Abschnitte erweitert
   durch Jim Mock. U:bersetzt von Sascha Edelburg.

1.1. U:bersicht

   Herzlichen Dank fu:r Ihr Interesse an FreeBSD! Das folgende
   Kapitel behandelt verschiedene Aspekte des FreeBSD Projects wie
   dessen geschichtliche Entwicklung, dessen Ziele oder dessen
   Entwicklungsmodell.

   Nach dem Durcharbeiten des Kapitels wissen Sie u:ber folgende
   Punkte Bescheid:

     * Wo FreeBSD im Vergleich zu anderen Betriebssystemen steht

     * Die Geschichte des FreeBSD Projects

     * Die Ziele des FreeBSD Projects

     * Die Grundlagen des FreeBSD-Open-Source-Entwicklungsmodells

     * Und natu:rlich wo der Name "FreeBSD" herru:hrt

     --------------------------------------------------------------

1.2. Willkommen bei FreeBSD!

   FreeBSD ist ein auf 4.4BSD-Lite basierendes Betriebssystem fu:r
   Intel (x86 und Itanium(R)), AMD64 und Sun UltraSPARC(R) Rechner.
   An Portierungen zu anderen Architekturen wird derzeit gearbeitet.
   Mehr zu Geschichte von FreeBSD ko:nnen Sie im kurzen
   geschichtlichen Abriss zu FreeBSD oder im Abschnitt Das aktuelle
   FreeBSD-Release nachlesen. Falls Sie das FreeBSD Project
   unterstu:tzen wollen (mit Quellcode, Hardware- oder Geldspenden),
   sollten Sie den Artikel FreeBSD unterstu:tzen lesen.

     --------------------------------------------------------------

  1.2.1. Was kann FreeBSD?

   FreeBSD hat zahlreiche bemerkenswerte Eigenschaften. Um nur einige
   zu nennen:

     * Pra:emptives Multitasking mit dynamischer Priorita:tsanpassung
       zum reibungslosen und ausgeglichenen Teilen der
       Systemressourcen zwischen Anwendungen und Anwendern, selbst
       unter schwerster Last.

     * Der Mehrbenutzerbetrieb von FreeBSD erlaubt es, viele Anwender
       gleichzeitig am System mit verschiedenen Aufgaben arbeiten zu
       lassen. Beispielsweise Gera:te wie Drucker oder Bandlaufwerke,
       die sich nur schwerlich unter allen Anwendern des Systems oder
       im Netzwerk teilen lassen, ko:nnen durch Setzen von
       Verwendungsbeschra:nkungen auf Benutzer oder Benutzergruppen
       wichtige Systemressourcen vor U:berbeanspruchung schu:tzen.

     * Hervorragende TCP/IP-Netzwerkfa:higkeit mit Unterstu:tzung von
       Industriestandards wie SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec
       und IPv6. Das heisst, Ihr FreeBSD-System kann in einfachster
       Weise mit anderen Systemen interagieren. Zudem kann es als
       Server-System im Unternehmen wichtige Aufgaben u:bernehmen,
       beispielsweise als NFS- oder E-Mail-Server oder es kann Ihren
       Betrieb durch HTTP- und FTP-Server beziehungsweise durch
       Routing und Firewalling Internet-fa:hig machen.

     * Der Speicherschutz stellt sicher, dass Anwendungen (oder
       Anwender) sich nicht gegenseitig sto:ren. Stu:rzt eine
       Anwendung ab, hat das keine Auswirkung auf andere Prozesse.

     * FreeBSD ist ein 32-Bit-Betriebssystem (64-Bit auf Itanium,
       AMD64, und UltraSPARC) und wurde als solches von Grund auf neu
       entworfen.

     * Das X-Window-System (X11R7) als Industriestandard bietet eine
       grafische Benutzeroberfla:che (GUI). Minimale Voraussetzung
       zur Verwendung ist lediglich eine Grafikkarte und ein
       Bildschirm, die beide den VGA-Modus unterstu:tzen.

     * Bina:rkompatibilita:t mit vielen unter verschiedenen
       Betriebssystemen erstellten Programmen wie Linux, SCO, SVR4,
       BSDI und NetBSD.

     * Tausende von sofort lauffa:higen Anwendungen sind aus den
       Ports- und Packages-Sammlungen fu:r FreeBSD verfu:gbar. Warum
       mu:hselig im Netz Software suchen, wenn sie bereits hier
       vorhanden ist?

     * Tausende zusa:tzliche leicht zu portierende Anwendungen sind
       u:ber das Internet zu beziehen. FreeBSD ist
       Quellcode-kompatibel mit den meisten kommerziellen UNIX
       Systemen. Daher bedu:rfen Anwendungen ha:ufig nur geringer
       oder gar keiner Anpassung, um auf einem FreeBSD-System zu
       kompilieren.

     * Seitenweise anforderbarer Virtueller Speicher und der "merged
       VM/buffer cache"-Entwurf bedient effektiv den grossen
       Speicherhunger mancher Anwendungen bei gleichzeitigem
       Aufrechterhalten der Bedienbarkeit des Systems fu:r weitere
       Benutzer.

     * SMP-Unterstu:tzung fu:r Mehrprozessorsysteme

     * Ein voller Satz von C, C++ und Fortran-
       Entwicklungswerkzeugen. Viele zusa:tzliche Programmiersprachen
       fu:r Wissenschaft und Entwicklung sind aus der Ports- und
       Packages-Sammlung zu haben.

     * Quellcode fu:r das gesamte System bedeutet gro:sstmo:gliche
       Kontrolle u:ber Ihre Umgebung. Warum sollte man sich durch
       proprieta:re Lo:sungen knebeln und sich auf Gedeih und Verderb
       der Gnade eines Herstellers ausliefern, wenn man doch ein
       wahrhaft offenes System haben kann?

     * Umfangreiche Online-Dokumentation.

   FreeBSD basiert auf dem 4.4BSD-Lite-Release der Computer Systems
   Research Group (CSRG) der Universita:t von Kalifornien in Berkeley
   und fu:hrt die namhafte Tradition der Entwicklung von BSD-Systemen
   fort. Zusa:tzlich zu der herausragenden Arbeit der CSRG hat das
   FreeBSD Project tausende weitere Arbeitsstunden investiert, um das
   System zu verfeinern und maximale Leistung und Zuverla:ssigkeit
   bei Alltagslast zu bieten. Wa:hrend viele kommerzielle Riesen
   Probleme haben PC-Betriebssysteme mit derartigen Funktionen,
   Leistungpotential und Zuverla:ssigkeit anzubieten, kann FreeBSD
   damit schon jetzt aufwarten!

   Die Anwendungsmo:glichkeiten von FreeBSD werden nur durch Ihre
   Vorstellungskraft begrenzt. Von Software-Entwicklung bis zu
   Produktionsautomatisierung, von Lagerverwaltung u:ber
   Abweichungskorrektur bei Satelliten; Falls etwas mit kommerziellen
   UNIX Produkten machbar ist, dann ist es ho:chstwahrscheinlich auch
   mit FreeBSD mo:glich. FreeBSD profitiert stark von tausenden
   hochwertigen Anwendungen aus wissenschaftlichen Instituten und
   Universita:ten in aller Welt. Ha:ufig sind diese fu:r wenig Geld
   oder sogar kostenlos zu bekommen. Kommerzielle Anwendungen sind
   ebenso verfu:gbar und es werden ta:glich mehr.

   Durch den freien Zugang zum Quellcode von FreeBSD ist es in
   unvergleichbarer Weise mo:glich, das System fu:r spezielle
   Anwendungen oder Projekte anzupassen. Dies ist mit den meisten
   kommerziellen Betriebssystemen einfach nicht mo:glich. Beispiele
   fu:r Anwendungen, die unter FreeBSD laufen, sind:

     * Internet-Dienste: Die robuste TCP/IP-Implementierung in
       FreeBSD macht es zu einer idealen Plattform fu:r
       verschiedenste Internet-Dienste, wie zum Beispiel:

          * FTP-Server

          * HTTP-Server (Standard-Web-Server oder mit
            SSL-Verschlu:sselung)

          * IPv4- und IPv6-Routing

          * Firewalls und NAT-Gateways ("IP-Masquerading")

          * E-Mail-Server

          * Usenet-News und Foren (BBS)

       Zum Betreiben von FreeBSD reicht schon ein gu:nstiger 386-PC.
       Wenn es das Wachstum Ihres Unternehmens verlangt, kann FreeBSD
       aber auch auf einem hochgeru:steten 4-Wege-System mit
       Xeon-Prozessoren und RAID-Plattenspeicher Verwendung finden.

     * Bildung: Sind Sie Informatikstudent oder Student eines
       verwandten Studiengangs? Die praktischen Einblicke in FreeBSD
       sind die beste Mo:glichkeit etwas u:ber Betriebssysteme,
       Rechnerarchitektur und Netzwerke zu lernen. Einige frei
       erha:ltliche CAD-, mathematische und grafische Anwendungen
       sind sehr nu:tzlich, gerade fu:r diejenigen, die FreeBSD nicht
       zum Selbstzweck, sondern als Arbeitsmittel einsetzen.

     * Wissenschaft: Mit dem frei verfu:gbaren Quellcode fu:r das
       gesamte System bildet FreeBSD ein exzellentes Studienobjekt in
       der Disziplin der Betriebssysteme, wie auch in anderen Zweigen
       der Informatik. Es ist beispielsweise denkbar, das ra:umlich
       getrennte Gruppen gemeinsam an einer Idee oder Entwicklung
       arbeiten. Das Konzept der freien Verfu:gbarkeit und -nutzung
       von FreeBSD ermo:glicht so einen Gebrauch, auch ohne sich
       gross Gedanken u:ber Lizenzbedingungen oder -beschra:nkungen
       machen zu mu:ssen.

     * Netzwerkfa:higkeit: Brauchen Sie einen neuen Router? Oder
       einen Name-Server (DNS)? Eine Firewall zum Schutze Ihres
       Intranets vor Fremdzugriff? FreeBSD macht aus dem in der Ecke
       verstaubenden 386- oder 486-PC im Handumdrehen einen
       leistungsfa:higen Router mit anspruchsvollen
       Packet-Filter-Fa:higkeiten.

     * X-Window-Workstation: FreeBSD ist eine gute Wahl fu:r
       kostengu:nstige X-Terminals mit dem frei verfu:gbaren
       X11-Server. Im Gegensatz zu einem X-Terminal erlaubt es
       FreeBSD, viele Anwendungen lokal laufen zu lassen, was die
       Last eines zentralen Servers erleichtern kann. FreeBSD kann
       selbst "plattenlos" starten, was einzelne Workstations noch
       gu:nstiger macht und die Wartung erleichtert.

     * Software-Entwicklung: Das Standard-System von FreeBSD wird mit
       einem kompletten Satz an Entwicklungswerkzeugen
       bereitgestellt, unter anderem mit dem bekannten GNU
       C/C++-Kompiler und -Debugger.

   FreeBSD ist sowohl in Form von Quellcode als auch in Bina:rform
   auf CD-ROM, DVD und u:ber anonymous FTP erha:ltlich. Na:heres zum
   Bezug von FreeBSD entha:lt Anhang A.

     --------------------------------------------------------------

  1.2.2. Wer benutzt FreeBSD?

   FreeBSD dient als Plattform fu:r Gera:te und Produkte einiger der
   weltgro:ssten IT-Firmen, darunter:

     * Apple

     * Cisco

     * Juniper

     * NetApp

   Ausserdem laufen einige der gro:ssten Internet-Auftritte unter
   FreeBSD, beispielsweise:

     * Yahoo!

     * Yandex

     * Apache

     * Rambler

     * Sina

     * Pair Networks

     * Sony Japan

     * Netcraft

     * NetEase

     * Weathernews

     * TELEHOUSE America

     * Experts Exchange

   und viele andere.

     --------------------------------------------------------------

1.3. Das FreeBSD Project

   Der folgende Abschnitt bietet einige Hintergrundinformationen zum
   FreeBSD Project, einschliesslich einem kurzen geschichtlichen
   Abriss, den Projektzielen und dem Entwicklungsmodell.

     --------------------------------------------------------------

  1.3.1. Kurzer geschichtlicher Abriss zu FreeBSD

   Beigesteuert von Jordan Hubbard.

   Das FreeBSD Project erblickte das Licht der Welt Anfang 1993 teils
   als Auswuchs des "Unofficial 386BSD Patchkit" unter der Regie der
   letzten drei Koordinatoren des Patchkits: Nate Williams, Rod
   Grimes und mir.

   Unser eigentliches Ziel war es, einen zwischenzeitlichen Abzug von
   386BSD zu erstellen, um ein paar Probleme zu beseitigen, die das
   Patchkit-Verfahren nicht lo:sen konnte. Einige von Ihnen werden
   sich in dem Zusammenhang noch an die fru:hen Arbeitstitel "386BSD
   0.5" oder "386BSD Interim" erinnern.

   386BSD war das Betriebssystem von Bill Jolitz. Dieses litt bis zu
   diesem Zeitpunkt heftig unter fast einja:hriger Vernachla:ssigung.
   Als das Patchkit mit jedem Tag anschwoll und unhandlicher wurde,
   waren wir einhellig der Meinung, es mu:sse etwas geschehen. Wir
   entschieden uns Bill Jolitz zu helfen, indem wir den
   u:bergangsweise "bereinigten" Abzug zur Verfu:gung stellten. Diese
   Pla:ne wurden unscho:n durchkreuzt als Bill Jolitz plo:tzlich
   seine Zustimmung zu diesem Projekt zuru:ckzog, ohne einen Hinweis
   darauf, was stattdessen geschehen sollte.

   Es hat nicht lange gedauert zu entscheiden, dass das Ziel es wert
   war, weiterverfolgt zu werden, selbst ohne Bills Unterstu:tzung.
   Also haben wir den von David Greenman gepra:gten Namen "FreeBSD"
   angenommen. Unsere anfa:nglichen Ziele setzten wir nach
   Ru:cksprache mit den damaligen Benutzern des Systems fest. Und als
   deutlich wurde, das Projekt wu:rde mo:glicherweise Realita:t, nahm
   ich Kontakt mit Walnut Creek CDROM auf, mit einem Auge darauf, den
   Vertriebsweg fu:r die vielen Missbegu:nstigten zu verbessern, die
   keinen einfachen Zugang zum Internet hatten. Walnut Creek CDROM
   unterstu:tzte nicht nur die Idee des CD-ROM-Vertriebs, sondern
   stellte sogar dem Projekt einen Arbeitsrechner und eine schnelle
   Internetverbindung zur Verfu:gung. Ohne den beispiellosen Glauben
   von Walnut Creek CDROM in ein zu der Zeit absolut unbekanntes
   Projekt, ga:be es FreeBSD in der heutigen Form wohl nicht.

   Die erste auf CD-ROM (und netzweit) verfu:gbare Vero:ffentlichung
   war FreeBSD 1.0 im Dezember 1993. Diese basierte auf dem Band der
   4.3BSD-Lite ("Net/2") der Universita:t von Kalifornien in
   Berkeley. Viele Teile stammten aus 386BSD und von der Free
   Software Foundation. Gemessen am ersten Angebot, war das ein
   ziemlicher Erfolg und wir liessen dem das extrem erfolgreiche
   FreeBSD 1.1 im Mai 1994 folgen.

   Zu dieser Zeit formierten sich unerwartete Gewitterwolken am
   Horizont, als Novell und die Universita:t von Kalifornien in
   Berkeley (UCB) ihren langen Rechtsstreit u:ber den rechtlichen
   Status des Berkeley Net/2-Bandes mit einem Vergleich beilegten.
   Eine Bedingung dieser Einigung war es, dass die UCB grosse Teile
   des Net/2-Quellcodes als "belastet" zugestehen musste, und dass
   diese Besitz von Novell sind, welches den Code selbst einige Zeit
   vorher von AT&T bezogen hatte. Im Gegenzug bekam die UCB den
   "Segen" von Novell, dass sich das 4.4BSD-Lite-Release bei seiner
   endgu:ltigen Vero:ffentlichung als unbelastet bezeichnen darf.
   Alle Net/2-Benutzer sollten auf das neue Release wechseln. Das
   betraf auch FreeBSD. Dem Projekt wurde eine Frist bis Ende Juli
   1994 eingera:umt, das auf Net/2-basierende Produkt nicht mehr zu
   vertreiben. Unter den Bedingungen dieser U:bereinkunft war es dem
   Projekt noch erlaubt ein letztes Release vor diesem festgesetzten
   Zeitpunkt herauszugeben. Das war FreeBSD 1.1.5.1.

   FreeBSD machte sich dann an die beschwerliche Aufgabe, sich Stu:ck
   fu:r Stu:ck, aus einem neuen und ziemlich unvollsta:ndigen Satz
   von 4.4BSD-Lite-Teilen, wieder aufzubauen. Die
   "Lite"-Vero:ffentlichungen waren deswegen leicht, weil Berkeleys
   CSRG grosse Code-Teile, die fu:r ein start- und lauffa:higes
   System gebraucht wurden, aufgrund diverser rechtlicher
   Anforderungen entfernen musste und weil die 4.4-Portierung fu:r
   Intel-Rechner extrem unvollsta:ndig war. Das Projekt hat bis
   November 1994 gebraucht diesen U:bergang zu vollziehen, was dann
   zu dem im Netz vero:ffentlichten FreeBSD 2.0 und zur
   CD-ROM-Version (im spa:ten Dezember) fu:hrte. Obwohl FreeBSD
   gerade die ersten Hu:rden genommen hatte, war dieses Release ein
   massgeblicher Erfolg. Diesem folgte im Juni 1995 das robustere und
   einfacher zu installierende FreeBSD 2.0.5.

   Im August 1996 vero:ffentlichten wir FreeBSD 2.1.5. Es schien
   unter ISPs und der Wirtschaft beliebt genug zu sein, ein weiteres
   Release aus dem 2.1-STABLE-Zweig zu rechtfertigen. Das war
   FreeBSD 2.1.7.1. Es wurde im Februar 1997 vero:ffentlicht und
   bildete das Ende des Hauptentwicklungszweiges 2.1-STABLE. Derzeit
   unterliegt dieser Zweig dem Wartungsmodus, das heisst, es werden
   nur noch Sicherheitsverbesserungen und die Beseitigung von
   kritischen Fehlern vorgenommen (RELENG_2_1_0).

   FreeBSD 2.2 entsprang dem Hauptentwicklungszweig ("-CURRENT") im
   November 1996 als RELENG_2_2-Zweig und das erste komplette Release
   (2.2.1) wurde im April 1997 herausgegeben. Weitere
   Vero:ffentlichungen des 2.2-Zweiges gab es im Sommer und Herbst
   1997. Das letzte Release des 2.2-Zweiges bildete die Version
   2.2.8, die im November 1998 erschien. Das erste offizielle
   3.0-Release erschien im Oktober 1998 und la:utete das Endes des
   2.2-Zweiges ein.

   Am 20. Januar 1999 teilte sich der Quellbaum in die Zweige
   4.0-CURRENT und 3.X-STABLE. Auf dem 3.X-STABLE-Zweig wurden
   folgende Releases erstellt: 3.1 am 15. Februar 1999, 3.2 am
   15. Mai 1999, 3.3 am 16. September 1999, 3.4 am 20. Dezember 1999
   und 3.5 am 24. Juni 2000. Letzterem folgte ein paar Tage spa:ter
   das Release 3.5.1, welches einige akute Sicherheitslo:cher von
   Kerberos stopfte und die letzte Vero:ffentlichung des 3.X-Zweiges
   darstellte.

   Eine weitere Aufspaltung, aus dem der 4.X-STABLE-Zweig hervorging,
   erfolgte am 13. Ma:rz 2000. Bisher gab es mehrere
   Vero:ffentlichungen aus diesem Zweig: 4.0-RELEASE erschien im
   Ma:rz 2000. Das letzte Release, 4.11-RELEASE, erschien im Januar
   2005.

   Das lang erwartete 5.0-RELEASE wurde am 19. Januar 2003
   vero:ffentlicht. Nach nahezu drei Jahren Entwicklungszeit brachte
   dieses Release die Unterstu:tzung fu:r Mehrprozessor-Systeme sowie
   fu:r Multithreading. Mit diesem Release lief FreeBSD erstmalig auf
   den Plattformen UltraSPARC und ia64. Im Juni 2003 folgte
   5.1-RELEASE. Das letzte 5.X-Release aus dem CURRENT-Zweig war
   5.2.1-RELEASE, das im Februar 2004 vero:ffentlicht wurde.

   Der Zweig RELENG_5 wurde im August 2004 erzeugt. Als erstes
   Release dieses Zweiges wurde 5.3-RELEASE vero:ffentlicht, bei dem
   es sich gleichzeitig auch um das erste 5-STABLE-Release handelte.
   Das aktuelle 5.5-RELEASE (dem keine RELENG_5-Versionen mehr folgen
   werden) erschien im Mai 2006.

   Der Zweig RELENG_6 wurde im Juli 2005 erzeugt. 6.0-RELEASE, das
   erste Release des 6.X-Zweiges, wurde im November 2005
   vero:ffentlicht. Das aktuelle 6.4-RELEASE (erschienen im November
   2008) ist das letzte Release aus RELENG_6-Zweig. RELENG_6 ist der
   letzte Zweig, der die Alpha-Architektur noch unterstu:tzt.

   Der Zweig RELENG_7 wurde im Oktober 2007 erzeugt. 7.0-RELEASE, das
   erste Release des 7.X-Zweiges, wurde im Februar 2008
   vero:ffentlicht. Das aktuelle 8.3-RELEASE (dem keine weiteren
   RELENG_7-Versionen folgen werden) erschien im Februar 2011.

   Im August 2009 wurde der RELENG_8-Zweig angelegt. 8.0-RELEASE, das
   erste Release des 8.X-Zweiges, erschien im November 2009. Das
   aktuelle 9.0-RELEASE (dem weitere RELENG_8-Versionen folgen
   werden) wurde im Juli 2010 vero:ffentlicht.

   Zurzeit werden Projekte mit langem Entwicklungshorizont im Zweig
   9.X-CURRENT verfolgt, Schnappschu:sse von 9.X auf CD-ROM (und
   natu:rlich im Netz) werden bei fortlaufender Entwicklung auf dem
   Snapshot-Server zur Verfu:gung gestellt.

     --------------------------------------------------------------

  1.3.2. Ziele des FreeBSD Projects

   Beigesteuert von Jordan Hubbard.

   Das FreeBSD Project stellt Software her, die ohne Einschra:nkungen
   fu:r beliebige Zwecke eingesetzt werden kann. Viele von uns haben
   betra:chtlich in Quellcode und Projekt investiert und ha:tten
   sicher nichts dagegen, hin und wieder ein wenig finanziellen
   Ausgleich dafu:r zu bekommen. Aber in keinem Fall bestehen wir
   darauf. Wir glauben unsere erste und wichtigste "Mission" ist es,
   Software fu:r jeden Interessierten und zu jedem Zweck zur
   Verfu:gung zu stellen, damit die Software gro:sstmo:gliche
   Verbreitung erlangt und gro:sstmo:glichen Nutzen stiftet. Das ist,
   glaube ich, eines der grundlegenden Ziele freier Software, welche
   wir mit gro:sster Begeisterung unterstu:tzen.

   Der Code in unserem Quellbaum, der unter die General Public
   License (GPL) oder die Library General Public License (LGPL)
   fa:llt, stellt geringfu:gig mehr Bedingungen. Das aber vielmehr im
   Sinne von eingefordertem Zugriff, als das u:bliche Gegenteil der
   Beschra:nkungen. Aufgrund zusa:tzlicher Abha:ngigkeiten, die sich
   durch die Verwendung von GPL-Software bei kommerziellem Gebrauch
   ergeben, bevorzugen wir daher Software unter dem transparenteren
   BSD-Copyright, wo immer es angebracht ist.

     --------------------------------------------------------------

  1.3.3. Das Entwicklungsmodell von FreeBSD

   Beigesteuert von Satoshi Asami.

   Die Entwicklung von FreeBSD ist ein offener und vielseitiger
   Prozess. FreeBSD besteht aus Beisteuerungen von Hunderten Leuten
   rund um die Welt, wie Sie aus der Liste der Beitragenden ersehen
   ko:nnen. Die vielen Entwickler ko:nnen aufgrund der
   Entwicklungs-Infrastruktur von FreeBSD u:ber das Internet
   zusammenarbeiten. Wir suchen sta:ndig nach neuen Entwicklern,
   Ideen und jenen, die sich in das Projekt tiefer einbringen wollen.
   Nehmen Sie einfach auf der Mailingliste FreeBSD technical
   discussions Kontakt mit uns auf. Die Mailingliste FreeBSD
   announcements steht fu:r wichtige Anku:ndigungen, die alle
   FreeBSD-Benutzer betreffen, zur Verfu:gung.

   Unabha:ngig davon ob Sie alleine oder mit anderen eng zusammen
   arbeiten, entha:lt die folgende Aufstellung nu:tzliche
   Informationen u:ber das FreeBSD Project und dessen
   Entwicklungsabla:ufe.

   CVS- und SVN-Repositories

           Der Hauptquellbaum von FreeBSD wurde u:ber viele Jahre
           ausschliesslich mit CVS gepflegt, einem frei erha:ltlichen
           Versionskontrollsystem, welches mit FreeBSD geliefert
           wird. Im Juni 2008 begann das FreeBSD Project mit dem
           Umstieg auf SVN (Subversion). Dieser Schritt wurde
           notwendig, weil CVS aufgrund des rapide wachsenden
           Quellcodebaumes und dem Umfang der bereits gespeichterten
           Revisisionsinformationen an seine Grenzen zu stossen
           begann. Wa:hrend das Hauptrepository nun SVN verwendet,
           hat sich auf der Client-Seite nichts gea:ndert. Werkzeuge
           wie CVSup und csup, die auf der alten CVS-Infrastruktur
           aufbauen, funktionieren weiterhin, weil alle A:nderungen,
           die im SVN-Repository erfolgen, in das CVS-Repository
           portiert werden. Im Moment wird nur src-Quellcodebaum
           u:ber SVN verwaltet. Die Dokumentation, die Webseiten
           sowie die Ports befinden sich weiterhin in einem
           CVS-Repository. Das Haupt-CVS-Repository la:uft auf einer
           Maschine in Santa Clara, Kalifornien, USA. Von dort wird
           es auf zahlreiche Server in aller Welt gespiegelt. Der
           SVN-Quellbaum, der die Zweige -CURRENT und -STABLE
           entha:lt, kann so einfach auf Ihr eigenes System
           gespiegelt werden. Na:heres dazu ko:nnen Sie im Handbuch
           unter Synchronisation der Quellen in Erfahrung bringen.

   Die Committer-Liste

           Die Committer sind Personen mit Schreibzugriff auf den
           CVS-Quellbaum (der Begriff "Committer" stammt vom
           cvs(1)-Befehl commit, der zum Einspeisen von A:nderungen
           ins Repository gebraucht wird). Der beste Weg, Vorschla:ge
           zur Pru:fung durch die Mitglieder der Committer-Liste
           einzureichen, bietet der Befehl send-pr(1). Sollte es
           unerwartete Probleme mit diesem Verfahren geben, besteht
           immer noch die Mo:glichkeit eine E-Mail an die Liste
           "FreeBSD committers" zu schicken.

   Das FreeeBSD-Core-Team

           Wu:rde man das FreeBSD Project mit einem Unternehmen
           vergleichen, so wa:re das FreeBSD-Core-Team das
           Gegenstu:ck zum Vorstand. Die Hauptaufgabe des Core-Teams
           ist es, das Projekt als Ganzes in gesunder Verfassung zu
           halten und die weitere Entwicklung in die richtige Bahn zu
           lenken. Das Anwerben leidenschaftlicher und
           verantwortungsbewusster Entwickler ist eine Aufgabe des
           Core-Team, genauso wie die Rekrutierung neuer Mitglieder
           fu:r das Core-Team, im Falle, dass Altmitglieder aus dem
           Projekt aussteigen. Das derzeitige Core-Team wurde im
           Juli 2010 aus einem Kreis kandidierender Committer
           gewa:hlt. Wahlen werden alle zwei Jahre abgehalten.

           Einige Core-Team-Mitglieder haben auch spezielle
           Verantwortungsbereiche. Das bedeutet, sie haben sich
           darauf festgelegt, sicherzustellen, dass ein gro:sserer
           Teil des Systems so funktioniert wie ausgewiesen. Eine
           vollsta:ndige Liste an FreeBSD beteiligter Entwickler und
           ihrer Verantwortungsbereiche kann in der Liste der
           Beitragenden eingesehen werden.

             Anmerkung: Die Mehrzahl der Mitglieder des Core-Teams
             sind Freiwillige in Bezug auf die FreeBSD-Entwicklung
             und profitieren nicht finanziell vom Projekt. Daher
             sollte "Verpflichtung" nicht als "garantierter Support"
             fehlinterpretiert werden. Der oben angefu:hrte Vergleich
             mit einem Vorstand hinkt und es wa:re angebrachter zu
             erwa:hnen, dass diese Leute - wider besseres Wissen -
             ihr eigenes Leben fu:r FreeBSD aufgegeben haben!

   Weitere Beitragende

           Die gro:sste Entwicklergruppe sind nicht zuletzt die
           Anwender selbst, die Ru:ckmeldungen und Fehlerbehebungen
           in einem anhaltend hohen Masse an uns senden. Der
           bevorzugte Weg an dem weniger zentralisierten Bereich der
           FreeBSD-Entwicklung teilzuhaben, ist die Mo:glichkeit sich
           bei der Liste FreeBSD technical discussions anzumelden.
           Weitere Informationen u:ber die verschiedenen
           FreeBSD-Mailinglisten erhalten Sie in Anhang C.

           Die Liste der zu FreeBSD Beitragenden ist eine lange und
           wachsende. Also warum nicht selbst dort stehen, indem Sie
           gleich perso:nlich etwas zu FreeBSD beitragen?

           Quellcode ist nicht der einzige Weg, etwas zum Projekt
           beizusteuern. Eine genauere U:bersicht u:ber offene
           Aufgaben finden Sie auf der FreeBSD-Web-Site.

   Zusammengefasst bildet unser Entwicklungsmodell einen losen
   Verbund konzentrischer Kreise. Das zentralisierte Modell ist auf
   die Bedu:rfnisse der Anwender zugeschnitten, mit der einfachen
   Mo:glichkeit eine zentrale Code-Basis zu verfolgen und mo:glichen
   neuen Beitragenden nicht das Leben zu erschweren! Unser Ziel ist
   es, ein stabiles Betriebssystem mit einer grossen Zahl passender
   Programme zu bieten, die der Anwender leicht installieren und
   anwenden kann. Und dieses Modell funktioniert fu:r diese Aufgabe
   ziemlich gut.

   Das Einzige was wir von mo:glichen neuen Mitgliedern fordern, ist
   die gleiche Hingabe, mit der die jetzigen Mitglieder am
   dauerhaften Erfolg arbeiten!

     --------------------------------------------------------------

  1.3.4. Das aktuelle FreeBSD-Release

   FreeBSD ist ein (mit vollem Quellcode und ein frei erha:ltliches)
   auf 4.4BSD-Lite-basierendes Release fu:r Intel i386(TM), i486(TM),
   Pentium(R), Pentium Pro, Celeron(R), Pentium II, Pentium III,
   Pentium 4 (oder ein dazu kompatibler Prozessor), Xeon(TM), und Sun
   UltraSPARC Systeme. Es stu:tzt sich zum gro:ssten Teil auf
   Software der Computer Systems Research Group (CSRG) der
   Universita:t von Kalifornien in Berkeley mit einigen
   Verbesserungen aus NetBSD, OpenBSD, 386BSD und der Free Software
   Foundation.

   Seit unserem FreeBSD 2.0 von Ende 1994 haben sich Leistung,
   Funktionsvielfalt und Stabilita:t dramatisch verbessert. Die
   gro:sste A:nderung erfuhr das virtuelle Speichermanagement durch
   eine Kopplung von virtuellem Speicher und dem Buffer-Cache, das
   nicht nur die Leistung steigert, sondern auch den
   Hauptspeicherverbrauch reduziert und ein 5 MB-System zu einem
   nutzbaren Minimal-System verhilft. Weitere Verbesserungen sind
   volle NIS-Client- und Server-Unterstu:tzung, T/TCP,
   Dial-On-Demand-PPP, integriertes DHCP, ein verbessertes
   SCSI-Subsystem, ISDN-Support, Unterstu:tzung fu:r ATM-, FDDI-,
   Fast- und Gigabit-Ethernet-Karten (1000 Mbit), verbesserter
   Support der neusten Adaptec-Controller und tausende
   Fehlerkorrekturen.

   Zusa:tzlich zur Standard-Distribution bietet FreeBSD eine Sammlung
   von portierter Software mit tausenden begehrten Programmen. Zum
   Verfassungszeitpunkt waren u:ber 23,000 Anwendungen in der
   Ports-Sammlung! Das Spektrum der Ports-Sammlung reicht von
   HTTP-Servern u:ber Spiele, Programmiersprachen, Editoren und so
   ziemlich allem dazwischen. Die gesamte Ports-Sammlung beno:tigt
   500 MB an Speicherplatz, wobei jeder Port anhand eines "Deltas" zu
   den Quellen angegeben wird. Das macht es fu:r uns erheblich
   leichter, Ports zu aktualisieren und es verringert den
   Plattenbedarf im Vergleich zur a:lteren 1.0-Port-Sammlung. Um ein
   Port zu u:bersetzen, mu:ssen Sie einfach ins Verzeichnis des
   Programms wechseln und ein make install absetzen. Den Rest
   erledigt das System. Die originalen Quellen jedes zu
   installierenden Port werden dynamisch von CD-ROM oder einem
   FTP-Server bezogen. Es reicht also fu:r genu:gend Plattenplatz zu
   sorgen, um die gewu:nschten Ports zu erstellen. Allen, die Ports
   nicht selbst kompilieren wollen: Es gibt zu fast jedem Port ein
   vorkompiliertes Paket, das einfach mit dem Befehl (pkg_add)
   installiert wird. Pakete und Ports werden in Kapitel 5
   beschrieben.

   Eine Reihe von weiteren Dokumenten, die sich als hilfreich bei der
   Installation oder dem Arbeiten mit FreeBSD erweisen ko:nnten,
   liegen auf neueren FreeBSD-Systemen im Verzeichnis /usr/share/doc.
   Die lokal installierten Anleitungen lassen sich mit jedem
   HTML-fa:higen Browser unter folgenden Adressen betrachten:

   Das FreeBSD-Handbuch

           /usr/share/doc/handbook/index.html

   Die FreeBSD-FAQ

           /usr/share/doc/faq/index.html

   Es besteht auch die Mo:glichkeit, sich die jeweils aktuellste
   Version der Referenzdokumente auf der FreeBSD-Homepage anzusehen.

     --------------------------------------------------------------

            Kapitel 2. FreeBSD 8.X (und a:lter) installieren

   U:berarbeitet und teilweise neu geschrieben von Jim Mock. Der Gang
   durch sysinstall und alle Bildschirmabzu:ge von Randy Pratt.
   U:bersetzt von Martin Heinen und Johann Kois.

2.1. U:bersicht

   FreeBSD wird mit dem textorientierten und einfach zu benutzendem
   Installationsprogramm installiert. Beginnend mit
   FreeBSD 9.0-RELEASE handelt es sich dabei um das Programm
   bsdinstall. A:ltere FreeBSD-Versionen verwenden hingegen nach wie
   vor sysinstall fu:r die Installation. Dieses Kapitel beschreibt
   die Installation von FreeBSD u:ber sysinstall. Der Einsatz von
   bsdinstall wird hingegen in Kapitel 3 besprochen.

   Dieses Kapitel behandelt folgende Punkte:

     * Das Erzeugen von FreeBSD-Startdisketten.

     * Wie FreeBSD Platten anspricht und aufteilt.

     * Wie sysinstall ausgefu:hrt wird.

     * Die Menu:s von sysinstall und die erforderlichen Eingaben in
       den Menu:s.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Die Hardware-Notes der FreeBSD-Release, die Sie installieren
       wollen, lesen und sicherstellen, dass Ihre Hardware
       unterstu:tzt wird.

     Anmerkung: Diese Installationsanleitung gilt fu:r Rechner mit
     i386-Architektur (PC-kompatible Rechner). Abweichende
     Anweisungen fu:r andere Plattformen werden, falls notwendig,
     gegeben. Obwohl diese Anleitung so aktuell wie mo:glich ist,
     kann das Installationsverfahren von dem hier gezeigten
     geringfu:gig abweichen. Legen Sie bitte daher diese Anleitung
     nicht wortwo:rtlich aus, sondern lassen Sie sich von diesem
     Kapitel durch den Installationsprozess leiten.

     --------------------------------------------------------------

2.2. Hardware-Anforderungen

  2.2.1. Minimalkonfiguration

   Die zur Installation von FreeBSD erforderliche
   Minimalkonfiguration ha:ngt von der zu installierenden
   FreeBSD-Version sowie von der Hardware-Architektur ab.

   Informationen zur jeweiligen Minimalkonfiguration finden Sie in
   den folgenden Abschnitten dieses Kapitels. Je nachdem, wie Sie
   FreeBSD installieren, beno:tigen Sie eventuell auch ein
   Diskettenlaufwerk, ein unterstu:tztes CD-ROM-Laufwerk, oder auch
   eine Netzwerkkarte. Abschnitt 2.3.7 des Handbuchs entha:lt weitere
   Informationen zu den verschiedenen Installationsarten.

     --------------------------------------------------------------

    2.2.1.1. Die FreeBSD/i386- und FreeBSD/pc98-Architekturen

   Sowohl FreeBSD/i386 als auch FreeBSD/pc98 beno:tigen jeweils
   mindestens einen 486-Prozessor sowie mindestens 24 MB RAM.
   Ausserdem beno:tigen Sie fu:r eine Minimalinstallation mindestens
   150 MB freien Platz auf Ihrer Festplatte.

     Anmerkung: In den meisten derartigen Konfigurationen ist es
     besser, fu:r mehr RAM und mehr Plattenplatz zu sorgen, statt
     einen schnelleren Prozessor einzubauen.

     --------------------------------------------------------------

    2.2.1.2. Die FreeBSD/amd64-Architektur

   Es gibt zwei Klassen von Prozessoren, auf denen Sie FreeBSD/amd64
   ausfu:hren ko:nnen. Die erste Klasse bilden die AMD64-Prozessoren
   (zu denen AMD Athlon 64-, AMD Athlon 64-FX-, oder
   AMD Opteron-Prozessoren geho:ren).

   Die zweite Klasse von Prozessoren, auf denen Sie diese
   FreeBSD/amd64 einsetzen ko:nnen, ist die Intel(R)
   EM64T-Architektur. Prozessoren dieser Klasse sind beispielsweise
   Intel Core(TM) 2 Duo-, Quad-, und Extreme-Prozessoren sowie die
   Intel Xeon-Prozessorreihen 3000, 5000, und 7000.

   Wenn Sie einen auf dem Chipsatz nVidia nForce3 Pro-150 basierenden
   Rechner haben, mu:ssen Sie im BIOS das IO-APIC deaktivieren.
   Erlaubt ihr BIOS dies nicht, mu:ssen Sie stattdessen ACPI
   deaktivieren. Der Grund dafu:r sind Fehler im Pro-150-Chipsatz,
   die bis jetzt nicht behoben werden konnten.

     --------------------------------------------------------------

    2.2.1.3. Die FreeBSD/sparc64-Architektur

   Um FreeBSD/sparc64 zu installieren, beno:tigen Sie eine
   unterstu:tzte Plattform (lesen Sie dazu auch Abschnitt 2.2.2 des
   Handbuchs).

   Sie beno:tigen ausserdem eine seperate Festplatte, wenn Sie
   FreeBSD/sparc64 installieren wollen, da es derzeit leider noch
   nicht mo:glich ist, die Platte mit einem weiteren Betriebssystem
   zu teilen.

     --------------------------------------------------------------

  2.2.2. Unterstu:tzte Hardware

   Die Hardware-Notes, die mit jedem FreeBSD-Release ausgeliefert
   werden, enthalten eine Liste lauffa:higer Hardware. Die
   Hardware-Notes befinden sich u:blicherweise in der Datei
   HARDWARE.TXT im Wurzelverzeichnis der Distribution (CD-ROM oder
   FTP). Sie ko:nnen die Hardware-Notes ausserdem im
   Dokumentationsmenu: von sysinstall oder auf der Webseite Release
   Information lesen.

     --------------------------------------------------------------

2.3. Vor der Installation

  2.3.1. Erstellen Sie eine Gera:teliste

   Bevor Sie FreeBSD installieren, erfassen Sie die Komponenten Ihres
   Rechners. Die FreeBSD-Installation wird die Komponenten
   (Festplatten, Netzwerkkarten, CD-ROM-Laufwerke) zusammen mit der
   Modellbezeichnung und des Herstellers anzeigen. FreeBSD wird auch
   versuchen, die richtige Konfiguration der Gera:te zu ermitteln.
   Dazu geho:ren die benutzten Interrupts (IRQ) und IO-Ports. Wegen
   der Unwa:gbarkeiten von PC-Hardware kann die Konfiguration der
   Gera:te allerdings fehlschlagen. In diesem Fall mu:ssen Sie die
   von FreeBSD ermittelte Konfiguration korrigieren.

   Wenn Sie schon ein anderes Betriebssystem, wie Windows oder Linux
   installiert haben, ko:nnen Sie die Hardware-Konfiguration mit den
   Mitteln dieses Betriebssystems bestimmen. Wenn Sie nicht sicher
   sind, welche Einstellungen eine Erweiterungskarte besitzt, sehen
   Sie auf der Karte selbst nach. Manchmal sind die Einstellungen
   dort aufgedruckt. Gebra:uchliche IRQs sind 3, 5 und 7. Die
   Adressen von IO-Ports werden normalerweise hexadezimal, zum
   Beispiel 0x330, angegeben.

   Halten Sie die Gera:tekonfiguration vor der Installation in einer
   Tabelle wie der nachstehenden fest:

   Tabelle 2-1. Gera:tekonfiguration

         Gera:t        IRQ IO-Ports             Anmerkung             
   erste Festplatte    -   -        40 GB, Seagate, erster IDE-Master 
   CD-ROM              -   -        erster IDE-Slave                  
   zweite Festplatte   -   -        20 GB, IBM, zweiter IDE-Master    
   erster              14  0x1f0                                      
   IDE-Controller                   
   Netzwerkkarte       -   -        Intel 10/100                      
   Modem               -   -        3Com(R) 56K Faxmodem, an COM1     
   ...                                                                

   Nachdem Sie wissen, u:ber welche Hardware Ihr Rechner verfu:gt,
   mu:ssen Sie diese Informationen mit den Hardwareanforderungen der
   zu installierenden FreeBSD-Version abgleichen.

     --------------------------------------------------------------

  2.3.2. Sichern Sie Ihre Daten

   Wenn der Rechner, auf dem Sie FreeBSD installieren wollen,
   wichtige Daten entha:lt, sichern Sie bitte diese Daten. Pru:fen
   Sie auch, dass Sie die Daten aus der Sicherung wiederherstellen
   ko:nnen, bevor Sie FreeBSD installieren. Die FreeBSD-Installation
   fragt zwar nach, bevor Sie Daten auf Ihre Festplatte schreibt,
   Ihre Daten sind allerdings unwiderruflich verloren, wenn der
   Installationsvorgang einmal angelaufen ist.

     --------------------------------------------------------------

  2.3.3. Den Installationsort von FreeBSD festlegen

   Wenn Sie die gesamte Festplatte fu:r FreeBSD verwenden wollen,
   mu:ssen Sie sich an dieser Stelle keine weiteren Gedanken machen -
   lesen Sie bitte im na:chsten Abschnitt weiter.

   Wenn Sie allerdings FreeBSD neben anderen Betriebssystemen
   betreiben wollen, mu:ssen Sie wissen, wie Daten auf einer
   Festplatte abgelegt werden und welche Auswirkungen dies hat.

     --------------------------------------------------------------

    2.3.3.1. Platteneinteilung von FreeBSD/i386-Systemen

   Eine PC-Festplatte wird in einzelne Bereiche unterteilt, die
   Partitionen heissen. FreeBSD verwendet intern ebenfalls
   Partitionen. Um Verwechslungen und Unklarheiten zu vermeiden,
   werden diese Plattenbereiche unter FreeBSD als Slices bezeichnet.
   So verwendet beispielsweise das Werkzeug fdisk den Begriff Slices,
   um sich auf PC-Partitionen zu beziehen. Auf einer PC-Festplatte
   ko:nnen maximal vier Partitionen, die prima:re Partitionen genannt
   werden, angelegt werden. Eine erweiterte Partition hebt diese
   Beschra:nkung auf. Eine Festplatte kann nur eine erweiterte
   Partition enthalten, die wiederum weitere so genannte logische
   Partitionen enthalten kann.

   Jede Partition besitzt eine Partitions-ID - eine Zahl, die den Typ
   der Partition festlegt. FreeBSD-Partitionen tragen die
   Partitions-ID 165.

   U:blicherweise kennzeichnen Betriebssysteme Partitionen in einer
   besonderen Art und Weise. Beispielsweise werden jeder prima:ren
   und logischen Partition unter MS-DOS und dem verwandten Windows
   Laufwerksbuchstaben beginnend mit C: zugewiesen.

   FreeBSD muss auf einer prima:ren Partition installiert werden. In
   dieser Partition ha:lt FreeBSD alle Daten einschliesslich der
   Dateien, die Sie anlegen. Verfu:gt das System u:ber mehrere
   Festplatten, ko:nnen Sie auf allen oder einigen Platten eine
   FreeBSD-Partition einrichten. Zur Installation von FreeBSD
   beno:tigen Sie eine freie Partition: Dies kann eine extra fu:r die
   Installation eingerichtete Partition sein oder eine existierende
   Partition, die nicht mehr beno:tigte Daten entha:lt.

   Wenn auf allen Platten bereits sa:mtliche Partitionen benutzt
   werden, mu:ssen Sie eine der Partitionen fu:r FreeBSD frei machen.
   Benutzen Sie dazu die Werkzeuge des eingesetzten Betriebssystems
   (fdisk unter MS-DOS oder Windows).

   Verfu:gt das System u:ber eine freie Partition, benutzen Sie diese
   Partition. Es kann allerdings sein, dass Sie eine oder mehrere der
   vorhandenen Partitionen vorher verkleinern mu:ssen.

   Eine minimale FreeBSD-Installation beno:tigt nur 100 MB
   Plattenplatz. Diese Installation ist allerdings sehr begrenzt und
   la:sst wenig Platz fu:r Ihre eigenen Dateien. Realistischer sind
   250 MB fu:r FreeBSD ohne graphische Benutzeroberfla:che und 350 MB
   fu:r FreeBSD mit einer graphischen Benutzeroberfla:che. Sie
   beno:tigen weiteren Platz fu:r die Installation zusa:tzlicher
   Software.

   Um die Partitionen zu verkleinern, ko:nnen Sie beispielsweise das
   kommerzielle PartitionMagic(R) oder das freie GParted benutzen.
   Sowohl GParted als auch PartitionMagic ko:nnen auch
   NTFS-Partitionen vera:ndern. GParted ist auf vielen
   Linux-Live-CDs, beispielsweise der SystemRescueCD, verfu:gbar.

   Bei der Vera:nderung von Microsoft Vista-Partionen kommt es
   manchmal zu Problemen. In einem solchen Fall ist es von Vorteil,
   wenn Sie eine Vista-Installations-CD zur Verfu:gung haben. Wie bei
   jeder A:nderung an Ihrer Festplatte sollten Sie auch hier zuerst
   ein aktuelles Backup anlegen.

     Warnung: Der falsche Gebrauch dieser Werkzeuge kann Daten auf
     der Festplatte lo:schen. Vor dem Einsatz dieser Werkzeuge
     stellen Sie bitte sicher, dass Sie frische, funktionierende
     Datensicherungen besitzen.

   Beispiel 2-1. Eine bestehende Partition verwenden

   Nehmen wir an, Sie haben einen Rechner mit einer 4 GB Festplatte,
   auf der schon eine Version von Windows installiert ist. Weiterhin
   haben Sie die Platte in zwei Laufwerke C: und D: unterteilt, die
   jeweils 2 GB gross sind. Auf C: wird 1 GB benutzt und 0,5 GB von
   Laufwerk D: werden benutzt.

   Sie haben also eine Festplatte mit zwei Partitionen und ko:nnten
   alle Daten von Laufwerk D: auf das Laufwerk C: kopieren. Damit
   wa:re die zweite Partition fu:r FreeBSD frei.

   Beispiel 2-2. Eine bestehende Partition verkleinern

   Nehmen wir an, Sie haben einen Rechner mit einer 4 GB Festplatte
   auf der schon eine Version von Windows installiert ist. Wa:hrend
   der Installation von Windows haben sie eine grosse Partition C:
   angelegt, die 4 GB gross ist. Von den 4 GB werden 1,5 GB benutzt
   und Sie wollen 2 GB fu:r FreeBSD verwenden.

   Sie haben zwei Mo:glichkeiten, FreeBSD zu installieren:

    1. Sichern Sie die Daten der Windows-Partition und installieren
       Sie Windows erneut auf einer 2 GB grossen Partition.

    2. Verkleinern Sie die Windows-Partition mit einem der oben
       aufgefu:hrten Werkzeuge.

     --------------------------------------------------------------

  2.3.4. Netzwerkparameter ermitteln

   Wird wa:hrend der Installation ein Netzwerk beno:tigt (weil Sie
   u:ber FTP oder von einem NFS-Server installieren wollen), mu:ssen
   Sie die Konfiguration des Netzwerks kennen. Wa:hrend der
   Installation werden Netzwerkparameter abgefragt, damit sich
   FreeBSD mit dem Netzwerk verbinden und die Installation
   abschliessen kann.

     --------------------------------------------------------------

    2.3.4.1. Verbindung u:ber Ethernet oder ein Kabel/DSL-Modem

   Wenn Sie sich mit einem Ethernet verbinden oder eine
   Internet-Verbindung mit einem Ethernet-Adapter u:ber Kabel oder
   DSL herstellen, beno:tigen Sie die nachstehenden Daten:

    1. IP-Adresse

    2. IP-Adresse des Default-Gateways

    3. Hostname

    4. IP-Adressen der DNS-Server

    5. Subnetzmaske

   Wenn Sie die Daten nicht besitzen, fragen Sie bitte Ihren
   Systemadministrator oder Ihren Service-Provider. Ko:nnen die Daten
   u:ber DHCP bezogen werden, merken Sie sich diese Tatsache.

     --------------------------------------------------------------

    2.3.4.2. Verbindung u:ber ein Modem

   Auch wenn Sie sich mit einem normalen Modem bei einem ISP
   einwa:hlen, ko:nnen Sie FreeBSD aus dem Internet installieren. Die
   Installation u:ber ein Modem dauert nur sehr lange.

   Sie beno:tigen die nachstehenden Daten:

    1. Die Telefonnummer des ISPs.

    2. Die COM-Schnittstelle, an der das Modem angeschlossen ist.

    3. Den Benutzernamen und das Passwort fu:r Ihr Konto.

     --------------------------------------------------------------

  2.3.5. Lesen Sie die FreeBSD-Errata

   Auch wenn das FreeBSD-Project bemu:ht ist, ein Release so stabil
   wie mo:glich herzustellen, treten ab und an Fehler auf. In
   seltenen Fa:llen betrifft ein Fehler die Installations-Prozedur.
   Die Fehler und deren Behebungen werden in den FreeBSD-Errata
   festgehalten. Lesen Sie bitte die Errata, bevor Sie FreeBSD
   installieren, damit Sie nicht in frisch entdeckte Probleme laufen.

   Dokumentation zu jedem Release, inklusive der Errata zu jedem
   Release, finden Sie im Release-Bereich des FreeBSD Webauftritts.

     --------------------------------------------------------------

  2.3.6. Die Installationsdateien beschaffen

   FreeBSD kann von Dateien aus irgendeiner der nachstehenden Quellen
   installiert werden:

   Lokale Medien

     * von einer CD-ROM oder einer DVD

     * von einem USB-Stick

     * von einer MS-DOS-Partition auf demselben Rechner

     * von einem SCSI- oder QIC-Bandlaufwerk

     * von Disketten

   Netzwerk

     * von einem FTP-Server, wenn erforderlich auch durch eine
       Firewall oder durch einen HTTP-Proxy

     * von einem NFS-Server

     * u:ber eine feste serielle oder eine feste parallele Verbindung

   Wenn Sie eine FreeBSD-CD oder FreeBSD-DVD gekauft haben, besitzen
   Sie schon alles, was Sie zur Installation beno:tigen. Lesen Sie
   bitte im na:chsten Abschnitt (Abschnitt 2.3.7) weiter.

   Wenn Sie sich die FreeBSD-Installationsdateien noch nicht besorgt
   haben, lesen Sie bitte zuerst den Abschnitt 2.13. Dort werden die
   notwendigen Vorbereitungen fu:r eine Installation von den eben
   genannten Medien beschrieben. Wenn Sie den Abschnitt
   durchgearbeitet haben, lesen Sie bitte in Abschnitt 2.3.7 weiter.

     --------------------------------------------------------------

  2.3.7. Das Startmedium vorbereiten

   Um FreeBSD zu installieren, mu:ssen Sie Ihren Rechner mit einem
   speziellen Startmedium hochfahren, das die Installationsroutine
   startet. Sie ko:nnen das Installationsprogramm nicht unter einem
   anderen Betriebssystem ausfu:hren. Ein Rechner startet
   normalerweise das auf der Festplatte installierte Betriebssystem,
   er kann aber auch von Disketten gestartet werden. Aktuelle Rechner
   ko:nnen in der Regel auch von einer CD-ROM oder von einem
   USB-Stick starten.

     Tipp: Wenn Sie eine FreeBSD CD-ROM oder DVD besitzen (gekauft
     oder selbst erstellt) und Ihr Rechner von CD-ROM oder DVD
     starten kann (u:blicherweise ko:nnen Sie das mit der BIOS-Option
     Boot Order einstellen), ko:nnen Sie diesen Abschnitt
     u:berspringen. Eine FreeBSD CD-ROM oder DVD la:sst sich direkt
     starten; Sie ko:nnen damit FreeBSD ohne weitere Vorbereitungen
     installieren.

   Um einen bootbaren USB-Stick zu erstellen, gehen Sie wie folgt
   vor:

    1. Das Speicherabbild fu:r den USB-Stick herunterladen

       Das Speicherabbild finden Sie auf dem FreeBSD-FTP-Server
       ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/ISO-IMAGES/version/FreeBSD-version-RELEASE-arch-memstick.img
       (oder einem Spiegelserver) im Verzeichnis ISO-IMAGES/.
       Ersetzen Sie arch und version durch die von Ihnen verwendete
       Architektur und die FreeBSD-Version, die Sie einsetzen wollen.
       Fu:r FreeBSD/i386 9.0-RELEASE finden Sie das Speicherabbild
       fu:r den USB-Stick beispielsweise unter folgenden Link:
       ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-memstick.img.

       Das beno:tigte Speicherabbild hat den Dateityp .img. Das
       Verzeichnis ISO-IMAGES/ entha:lt verschiedene
       Speicherabbilder. Sie mu:ssen also (basierend auf der zu
       installierenden FreeBSD-Version und/oder Ihrer Hardware) das
       fu:r Sie passende Speicherabbild herunterladen.

         Wichtig: Sichern Sie Ihre Daten, bevor Sie fortfahren, da im
         na:chsten Schritt alle auf dem USB-Stick befindlichen Daten
         gelo:scht werden.

    2. Den USB-Stick vorbereiten

       Den USB-Stick unter FreeBSD vorbereiten

         Warnung: Das Beispiel im na:chsten Schritt verwendet
         /dev/da0 als die Gera:tedatei, u:ber die Sie den USB-Stick
         ansprechen. Achten Sie besonders darauf, dass Sie die
         richtige Gera:tedatei verwenden, da Sie ansonsten
         unbeabsichtigt Daten lo:schen ko:nnten.

         1. Das Image mit dd(1) auf den Stick schreiben

            Bei der .img-Datei handelt es sich nicht um eine normale
            Datei, die Sie einfach auf den Stick kopieren ko:nnen.
            Vielmehr handelt es sich dabei um ein Image des
            kompletten Dateisystems, das Sie mit dd(1) direkt auf den
            USB-Stick schreiben mu:ssen:

 # dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k

            Wird dabei die Fehlermeldung Operation not permitted
            angezeigt, stellen Sie bitte sicher, dass das Zielgera:t
            nicht verwendet, manuell eingeha:ngt oder von einem
            Systemprogramm automatisch eingeha:ngt wurde. Dann
            versuchen Sie es erneut.

       Den USB-Stick unter Windows(R) vorbereiten

         Warnung: Stellen Sie unbedingt sicher, dass Sie im folgenden
         Schritt den korrekten Laufwerkbuchstaben fu:r Ihren
         USB-Stick angeben, da Sie ansonsten unbeabsichtigt Daten
         lo:schen ko:nnten.

         1. Image Writer fu:r Windows herunterladen

            Image Writer fu:r Windows ist ein frei verfu:gbares
            Programm, mit dem Sie ein Image auf einen USB-Stick
            schreiben ko:nnen. Laden Sie das Programm von
            https://launchpad.net/win32-image-writer/ herunter und
            entpacken Sie es in einen Ordner auf Ihrer Festplatte.

         2. Das Image mit Image Writer auf den Stick schreiben

            Klicken Sie doppelt auf das Symbol Win32DiskImager, um
            das Programm zu starten. Vergewissern Sie sich, dass es
            sich bei dem unter Device angezeigten Laufwerk um Ihren
            USB-Stick handelt. Danach klicken Sie auf das
            Ordnersymbol und wa:hlen die zuvor heruntergeladene
            Image-Datei aus. Klicken Sie auf Save, um die Image-Datei
            zu laden. Nachdem Sie alle Eingaben nochmals gepru:ft
            haben, mu:ssen Sie noch sicherstellen, dass kein anderes
            Programm auf den USB-Stick zugreift. Danach klicken Sie
            auf den Button Write, um das Image auf den USB-Stick zu
            schreiben.

   Um Startdisketten zu erzeugen, benutzen Sie die nachstehende
   Anleitung:

    1. Abbilder der Startdisketten besorgen

         Wichtig: Beachten Sie, dass ab FreeBSD 8.X Startdisketten
         nicht mehr unterstu:tzt werden. Lesen Sie bitte weiter oben
         in diesem Kapitel, wie Sie FreeBSD von einer CD-ROM, einer
         DVD oder einem USB-Stick installieren ko:nnen.

       Die Abbilder der Startdisketten befinden sich auf dem
       Installationsmedium im Verzeichnis floppies/; sie ko:nnen auch
       aus dem Internet heruntergeladen werden:
       ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/version-RELEASE/floppies/.
       Ersetzen Sie arch und version durch die passende Architektur
       und die passende Version. Beispielsweise stehen die
       Startdisketten von FreeBSD/i386 8.3-RELEASE unter
       ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/8.3-RELEASE/floppies/.

       Die Abbilder besitzen die Dateinamenerweiterung .flp. Im
       Verzeichnis floppies/ befinden sich verschiedene Abbilder;
       welches Sie benutzen, ha:ngt von der zu installierenden
       FreeBSD-Version und in einigen Fa:llen vom Zielrechner ab. In
       den meisten Fa:llen werden Sie vier Disketten beno:tigen:
       boot.flp, kern1.flp, kern2.flp sowie kern3.flp. Lesen Sie
       bitte die Datei README.TXT im Verzeichnis floppies/, sie
       entha:lt aktuelle Informationen zu den Abbildern.

         Wichtig: Wenn Sie die Abbilder aus dem Internet
         herunterladen, benutzen Sie bitte den Bina:rmodus des
         FTP-Programms. Einige Web-Browser verwenden den Textmodus
         (oder ASCII-Modus), was dazu fu:hrt, dass sich die
         erstellten Disketten nicht starten lassen.

    2. Die Disketten vorbereiten

       Pro Abbild beno:tigen Sie eine Diskette. Es ist wichtig, dass
       die verwendeten Disketten fehlerfrei sind. Sie ko:nnen dies
       sicherstellen, indem Sie die Disketten selbst formatieren,
       verlassen Sie sich bitte nicht auf vorformatierte Disketten.
       Das Formatierprogramm von Windows zeigt fehlerhafte Blo:cke
       nicht an, es markiert die Blo:cke einfach als fehlerhaft und
       ignoriert sie dann. Benutzen Sie neue Disketten, wenn Sie
       diese Installationsart verwenden.

         Wichtig: Wenn Sie FreeBSD installieren und das
         Installationsprogramm abstu:rzt, einfriert oder sich
         merkwu:rdig verha:lt, sind oft fehlerbehaftete Disketten die
         Ursache. Schreiben Sie die Abbilder auf neue Disketten und
         versuchen Sie, noch mal zu installieren.

    3. Die Abbilder auf Disketten schreiben

       Die .flp-Dateien sind keine normalen Dateien, die Sie auf eine
       Diskette kopieren. Sie ko:nnen die Abbilder nicht von einem
       Laufwerk auf ein anderes Laufwerk kopieren. Die Abbilder
       werden mit einem speziellen Werkzeug direkt auf die Diskette
       geschrieben.

       Wenn Sie die Startdisketten unter MS-DOS oder Windows
       erstellen, ko:nnen Sie das mitgelieferte Werkzeug fdimage
       verwenden.

       Wenn Sie die Abbilder auf der CD-ROM verwenden und das
       CD-ROM-Laufwerk den Laufwerksbuchstaben E: besitzt, fu:hren
       Sie den nachstehenden Befehl aus:

 E:\> tools\fdimage floppies\boot.flp A:

       Fu:hren Sie das Kommando fu:r jede .flp-Datei aus. Wechseln
       Sie bitte jedes Mal die Diskette und beschriften Sie die
       Diskette mit dem Namen der kopierten Datei. Falls Sie die
       Abbilder an anderer Stelle liegen haben, passen Sie bitte die
       Kommandozeile an. Wenn Sie keine CD-ROM besitzen, ko:nnen Sie
       fdimage aus dem Verzeichnis tools des FreeBSD-FTP-Servers
       herunterladen.

       Wenn Sie Startdisketten auf einem UNIX System (zum Beispiel
       einem anderen FreeBSD System) erstellen, schreiben Sie die
       Abbilder mit dem Befehl dd(1) direkt auf die Disketten. Auf
       einem FreeBSD-System lautet die Kommandozeile:

 # dd if=boot.flp of=/dev/fd0

       Unter FreeBSD spricht /dev/fd0 das erste Diskettenlaufwerk an
       (das Laufwerk A:), /dev/fd1 spricht das Laufwerk B: an. Andere
       UNIX Varianten verwenden unter Umsta:nden andere Gera:tenamen,
       die in der Dokumentation des jeweiligen Systems beschrieben
       sind.

   Nun ist alles fu:r die FreeBSD-Installation vorbereitet.

     --------------------------------------------------------------

2.4. Die Installation starten

     Wichtig: Die Installationsprozedur la:sst die Daten auf Ihren
     Laufwerken solange unvera:ndert bis die nachstehende Meldung
     erscheint:

 Last Chance: Are you SURE you want continue the installation?

 If you're running this on a disk with data you wish to save then WE
 STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!

 We can take no responsibility for lost disk contents!

     Vor dieser Meldung kann die Installationsprozedur jederzeit
     abgebrochen werden, ohne die Daten auf der Festplatte zu
     vera:ndern. Wenn Sie meinen, etwas falsch konfiguriert zu haben,
     ko:nnen Sie vor diesem Zeitpunkt einfach den Rechner
     ausschalten.

     --------------------------------------------------------------

  2.4.1. Der Systemstart

    2.4.1.1. Systemstart von i386(TM)-Systemen

    1. Schalten Sie zuna:chst Ihren Rechner aus.

    2. Schalten Sie den Rechner ein. Wa:hrend des Starts sollte
       angezeigt werden, wie Sie das Systemeinstellungsmenu: (oder
       BIOS) erreichen. Meist dru:cken Sie dazu die Tasten F2, F10,
       Del oder Alt+S. Benutzen Sie die angezeigte Tastenkombination.
       Viele Rechner zeigen beim Systemstart eine Grafik an.
       Typischerweise ko:nnen Sie die Grafik mit der Taste Esc
       entfernen und so die angezeigten Meldungen lesen.

    3. Suchen Sie Option, die einstellt von welchem Gera:t der
       Rechner startet. Normalerweise wird die Option Boot Order
       genannt und zeigt eine Gera:teliste, beispielsweise Floppy,
       CD-ROM, First Hard Disk an.

       Wenn Sie von einer CD-ROM starten, stellen Sie sicher, das das
       CD-ROM-Laufwerk ausgewa:hlt ist. Starten Sie hingegen von
       einem USB-Stick oder von einer Startdiskette, wa:hlen Sie
       ebenfalls den entsprechenden Eintrag aus. Wenn Sie nicht
       sicher sind, lesen Sie bitte im Handbuch des Rechners oder im
       Handbuch der Systemplatine nach.

       Stellen Sie das gewu:nschte Startmedium ein und sichern Sie
       die Einstellungen. Der Rechner sollte dann neu starten.

    4. Wenn Sie (wie in Abschnitt 2.3.7 beschrieben) ein bootbaren
       USB-Stick vorbereitet haben, sto:pseln Sie diesen bitte ein,
       bevor Sie Ihren Rechner einschalten.

       Wenn Sie den Rechner von einer CD-ROM starten, legen Sie die
       CD-ROM so fru:h wie mo:glich in das Laufwerk ein.

         Anmerkung: Bis einschliesslich FreeBSD 7.3 kann FreeBSD auch
         von einer Startdiskette aus installiert werden. Eine
         Anleitung hierzu finden Sie in Abschnitt 2.3.7). Legen Sie
         die erste Diskette (diese entha:lt das Abbild boot.flp) in
         das Diskettenlaufwerk ein und starten Sie den Rechner.

       Wenn Ihr Rechner wieder normal startet und das existierende
       Betriebssystem la:dt, kann das folgende Ursachen haben:

         1. Das Startmedium (Diskette, CD-ROM) ist nicht schnell
            genug eingelegt worden. Belassen Sie das Startmedium im
            Laufwerk und starten Sie Ihren Rechner neu.

         2. Die BIOS-Einstellungen sind falsch vorgenommen worden.
            Wiederholen Sie diesen Schritt, bis Sie die richtige
            Einstellung gefunden haben.

         3. Das verwendete BIOS kann nicht von dem gewu:nschten
            Medium starten.

    5. FreeBSD startet jetzt. Wenn Sie von einer CD-ROM starten,
       sehen Sie die folgenden Meldungen (Versionsangaben entfernt):

 Booting from CD-Rom...
 645MB medium detected
 CD Loader 1.2

 Building the boot loader arguments
 Looking up /BOOT/LOADER... Found
 Relocating the loader and the BTX
 Starting the BTX loader

 BTX loader 1.00 BTX version is 1.02
 Consoles: internal video/keyboard
 BIOS CD is cd0
 BIOS drive C: is disk0
 BIOS drive D: is disk1
 BIOS 636kB/261056kB available memory

 FreeBSD/i386 bootstrap loader, Revision 1.1

 Loading /boot/defaults/loader.conf
 /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d]
 \          

       Wenn Sie mit Startdisketten hochfahren, sehen Sie folgende
       Meldungen (Versionsangaben entfernt):

 Booting from Floppy...
 Uncompressing ... done

 BTX loader 1.00  BTX version is 1.01
 Console: internal video/keyboard
 BIOS drive A: is disk0
 BIOS drive C: is disk1
 BIOS 639kB/261120kB available memory

 FreeBSD/i386 bootstrap loader, Revision 1.1

 Loading /boot/defaults/loader.conf
 /kernel text=0x277391 data=0x3268c+0x332a8 |

 Insert disk labelled "Kernel floppy 1" and press any key...

       Folgen Sie der Anweisung und entfernen Sie die
       boot.flp-Diskette, anschliessend legen Sie die
       kern1.flp-Diskette ein und dru:cken Enter. Starten Sie das
       System mit der ersten Diskette und legen Sie, wenn Sie dazu
       aufgefordert werden, die anderen Disketten ein.

    6. Unabha:ngig davon, ob Sie von Disketten oder von CD-ROM
       gestartet haben, erscheint danach das FreeBSD
       Bootloader-Menu::

       Abbildung 2-1. FreeBSD Boot Loader Menu

       Warten Sie entweder zehn Sekunden oder dru:cken Sie Enter.

     --------------------------------------------------------------

    2.4.1.2. Systemstart bei SPARC64(R)-Systemen

   Die meisten SPARC64(R)-Systeme sind so konfiguriert, dass sie
   automatisch von der Festplatte starten. Um FreeBSD auf einem
   solchen System zu installieren, mu:ssen Sie das System aber u:ber
   das Netzwerk oder von einer CD-ROM starten. Daher mu:ssen Sie den
   Bootprozess unterbrechen und das System u:ber das PROM
   (OpenFirmware) starten.

   Dazu starten Sie Ihr System neu und warten, bis die Startmeldung
   erscheint. Der genaue Wortlaut ha:ngt vom eingesetzten Modell ab,
   die Nachricht sollte aber a:hnlich der folgenden aussehen:

 Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
 Copyright 1998-2001 Sun Microsystems, Inc.  All rights reserved.
 OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
 Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.

   Um den Startvorgang zu unterbrechen, dru:cken Sie nun die
   Tastenkombination L1+A oder Stop+A. Verwenden Sie eine serielle
   Verbindung, senden Sie das Signal BREAK u:ber die serielle Konsole
   (etwa durch die Eingabe von ~# in den Programmen tip(1) oder
   cu(1)). In beiden Fa:llen landen Sie anschliessend am PROM-Prompt:

 ok         (1)
 ok {0}     (2)

   (1)
           Der auf Einprozessorsystemen verwendete Prompt.
   (2)
           Der Prompt auf Mehrprozessorsystemen. Die Zahl steht dabei
           fu:r die Anzahl der vorhandenen Prozessoren.

   Nun legen Sie Ihre CD-ROM in das Laufwerk ein und geben am
   PROM-Prompt boot cdrom ein. Danach startet Ihr System von der
   eingelegten CD-ROM.

     --------------------------------------------------------------

  2.4.2. Die Gera:teerkennung pru:fen

   Die letzten paar Hundert Zeilen der Bildschirmausgabe werden
   gesichert und ko:nnen gepru:ft werden.

   Um sich den Bildschirmpuffer anzusehen, dru:cken Sie die Taste
   Scroll-Lock. Im Puffer ko:nnen Sie mit den Pfeiltasten oder den
   Tasten PageUp und PageDown bla:ttern. Um zur normalen
   Bildschirmausgabe zuru:ckzukehren, dru:cken Sie nochmals die Taste
   Scroll-Lock.

   Pru:fen Sie mit diesem Verfahren nun die Ausgaben der
   Gera:teerkennung. Sie werden einen Text a:hnlich wie in Abbildung
   2-2 sehen. Die genauen Ausgaben sind abha:ngig von den in Ihrem
   System installierten Gera:ten.

   Abbildung 2-2. Ausgabe der Gera:teerkennung

 avail memory = 253050880 (247120K bytes)
 Preloaded elf kernel "kernel" at 0xc0817000.
 Preloaded mfs_root "/mfsroot" at 0xc0817084.
 md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4

 md1: Malloc disk
 Using $PIR table, 4 entries at 0xc00fde60
 npx0: <math processor> on motherboard
 npx0: INT 16 interface
 pcib0: <Host to PCI bridge> on motherboard
 pci0: <PCI bus> on pcib0
 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
 pci1: <PCI bus> on pcib1
 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
 isa0: <iSA bus> on isab0
 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
 ata0: at 0x1f0 irq 14 on atapci0
 ata1: at 0x170 irq 15 on atapci0
 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci
 0
 usb0: <VIA 83572 USB controller> on uhci0
 usb0: USB revision 1.0
 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1
 uhub0: 2 ports with 2 removable, self powered
 pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3
 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir
 q 11 at device 8.0 on pci0
 dc0: Ethernet address: 00:04:5a:74:6b:b5
 miibus0: <MII bus> on dc0
 ukphy0: <Generic IEEE 802.3u media interface> on miibus0
 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10.
 0 on pci0
 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit)
 isa0: too many dependant configs (8)
 isa0: unexpected small tag 14
 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0
 fdc0: FIFO enabled, 8 bytes threshold
 fd0: <1440-KB 3.5'' drive> on fdc0 drive 0
 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0
 kbd0 at atkbd0
 psm0: <PS/2 Mouse> irq 12 on atkbdc0
 psm0: model Generic PS/@ mouse, device ID 0
 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
 sc0: <System console> at flags 0x100 on isa0
 sc0: VGA <16 virtual consoles, flags=0x300>
 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
 sio0: type 16550A
 sio1 at port 0x2f8-0x2ff irq 3 on isa0
 sio1: type 16550A
 ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
 ppc0: FIFO with 16/16/15 bytes threshold
 plip0: <PLIP network interface> on ppbus0
 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33
 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4
 Mounting root from ufs:/dev/md0c
 /stand/sysinstall running as init on vty0

   Pru:fen Sie die Ausgabe der Gera:teerkennung sorgfa:ltig und
   stellen Sie sicher, dass FreeBSD alle erwarteten Gera:te gefunden
   hat. Wenn ein Gera:t nicht gefunden wurde, wird es nicht
   angezeigt. Ist dies bei Ihnen der Fall, mu:ssen Sie einen
   angepassten Kernel erstellen, da das betroffene Gera:t
   (beispielsweise eine Soundkarte) in diesem Fall vom GENERIC-Kernel
   nicht unterstu:tzt wird.

   Sie gelangen im na:chsten Schritt in ein Menu:, in dem Sie u:ber
   die Cursortasten das Land, in dem Sie sich befinden, auswa:hlen
   ko:nnen (Abbildung 2-3). Durch die Besta:tigung mit der
   Enter-Taste wird automatisch das von Ihnen gewa:hlte Land sowie
   die dazu passende Tastaturbelegung gewa:hlt.

   Abbildung 2-3. Ihr Land auswa:hlen

   Haben Sie als Land United States gewa:hlt, wird automatisch die
   amerikanische Standardtastatur verwendet. Haben Sie hingegen ein
   anderes Land angegeben, erscheint das folgende Menu:, in dem Sie
   Ihre Tastaturbelegung auswa:hlen ko:nnen (besta:tigen Sie Ihre
   Auswahl mit der Enter-Taste).

   Abbildung 2-4. Die Tastaturbelegung auswa:hlen

   Nachdem Sie das Land ausgewa:hlt haben, erscheint das Hauptmenu:
   von sysinstall.

     --------------------------------------------------------------

2.5. Das Werkzeug sysinstall

   Zum Installieren von FreeBSD stellt das FreeBSD-Project das
   Werkzeug sysinstall zur Verfu:gung. Das Werkzeug arbeitet
   textorientiert und bietet eine Reihe von Menu:s und Bildschirmen,
   um den Installationsprozess zu konfigurieren und zu steuern.

   Die Menu:s von sysinstall werden mit Tasten wie den Pfeiltasten,
   Enter, Tab oder Space bedient. Eine ausfu:hrliche Beschreibung der
   Tastenbelegung ist in der Gebrauchsanweisung von sysinstall
   enthalten.

   Die Gebrauchsanweisung ko:nnen Sie lesen, indem Sie den Menu:punkt
   Usage auswa:hlen. Stellen Sie sicher, dass die Schaltfla:che
   [Select], wie in Abbildung 2-5 gezeigt, aktiviert ist und dru:cken
   Sie die Taste Enter.

   Es erscheinen Anweisungen wie das Menu:system zu bedienen ist.
   Wenn Sie diese gelesen haben, dru:cken Sie Enter, um in das
   Hauptmenu: zuru:ckzukehren.

   Abbildung 2-5. Die Gebrauchsanweisung von sysinstall auswa:hlen

     --------------------------------------------------------------

  2.5.1. Die Dokumentation abrufen

   Aus dem Hauptmenu: wa:hlen Sie mit den Pfeiltasten Doc aus und
   dru:cken Enter.

   Abbildung 2-6. Die Dokumentation abrufen

   Es wird das Dokumentationsmenu: angezeigt.

   Abbildung 2-7. Das Dokumentationsmenu: von sysinstall

   Lesen Sie bitte unbedingt die mitgelieferte Dokumentation.

   Um ein Dokument zu lesen, wa:hlen Sie das Dokument mit den
   Pfeiltasten aus und dru:cken Enter. Wenn Sie das Dokument gelesen
   haben, kommen Sie mit der Taste Enter in das Dokumentationsmenu:
   zuru:ck.

   Um in das Hauptmenu: zuru:ckzukommen, wa:hlen Sie mit den
   Pfeiltasten Exit aus und dru:cken die Taste Enter.

     --------------------------------------------------------------

  2.5.2. Die Tastaturbelegung a:ndern

   Um die Tastaturbelegung zu a:ndern, wa:hlen Sie den Menu:punkt
   Keymap und dru:cken Enter. Dies ist nur erforderlich wenn Sie eine
   nicht standard-konforme Tastatur oder eine andere als eine
   amerikanische Tastatur einsetzen.

   Abbildung 2-8. Das Hauptmenu: von sysinstall

   Eine andere Tastaturbelegung ko:nnen Sie mit den Pfeiltasten
   markieren und der Taste Space auswa:hlen. Wenn Sie die Taste Space
   nochmals dru:cken wird die Auswahl aufgehoben. Haben Sie eine
   Tastaturbelegung ausgewa:hlt, markieren Sie mit den Pfeiltasten
   [ OK ] und dru:cken Sie Enter.

   Der Bildschirmabzug zeigt nur einen der verfu:gbaren Belegungen
   an. Mit der Taste Tab markieren Sie die Schaltfla:che [ Cancel ],
   die mit der Vorgabe-Belegung wieder in das Hauptmenu:
   zuru:ckfu:hrt.

   Abbildung 2-9. Sysinstall Keymap Menu

     --------------------------------------------------------------

  2.5.3. Installationsoptionen einstellen

   Wa:hlen Sie Options aus und ru:cken die Taste Enter.

   Abbildung 2-10. Das Hauptmenu: von sysinstall

   Abbildung 2-11. Optionen von sysinstall

   Fu:r die meisten Benutzer sind die voreingestellten Werte vo:llig
   ausreichend und brauchen daher nicht gea:ndert werden. Der Name
   des Releases variiert mit der zu installierenden Version von
   FreeBSD.

   Eine Beschreibung der ausgewa:hlten Option erscheint blau
   hervorgehoben am unteren Ende des Bildschirms. Mit der Option Use
   Defaults ko:nnen Sie alle Optionen auf die Vorgabewerte
   zuru:ckstellen.

   Wenn Sie die Hilfeseite zu den verschiedenen Optionen lesen
   wollen, dru:cken Sie die Taste F1.

   Die Taste Q fu:hrt in das Hauptmenu: zuru:ck.

     --------------------------------------------------------------

  2.5.4. Eine Standard-Installation starten

   Die Standard-Installation sollte von allen UNIX- oder
   FreeBSD-Anfa:ngern benutzt werden. Markieren Sie mit den
   Pfeiltasten Standard und dru:cken Sie Enter, um die Installation
   zu starten.

   Abbildung 2-12. Die Standard-Installation starten

     --------------------------------------------------------------

2.6. Plattenplatz fu:r FreeBSD bereitstellen

   Ihre erste Aufgabe ist, FreeBSD Plattenplatz bereitzustellen und
   den Plattenplatz fu:r sysinstall kenntlich zu machen (label). Sie
   mu:ssen daher wissen, wie FreeBSD mit Platten umgeht.

     --------------------------------------------------------------

  2.6.1. Nummerierung der Laufwerke im BIOS

   Bevor Sie FreeBSD installieren und konfigurieren, sollten Sie Sie
   einen wichtigen Punkt beachten. Dies gilt insbesondere dann, wenn
   Sie mehrere Festplatten besitzen.

   In einem PC, der unter einem vom BIOS abha:ngigen Betriebssystem,
   wie MS-DOS oder Microsoft Windows la:uft, kann das BIOS die
   normale Reihenfolge der Laufwerke vera:ndern und das
   Betriebssystem beachtet diese A:nderung. Mit dieser Funktion kann
   der Rechner von einem anderen Laufwerk als dem so genannten
   "prima:ren Laufwerk" gestartet werden. Die Funktion ist sehr
   zweckma:ssig fu:r Benutzer, die Datensicherungen auf einer zweiten
   Platte erstellen und dafu:r Werkzeuge wie Ghost(R) oder xcopy
   einsetzen. Wenn die erste Platte ausfa:llt, von einem Virus
   befallen wird oder durch einen Fehler des Betriebssystems
   verunstaltet wird, ko:nnen die Platten im BIOS logisch getauscht
   werden. Es sieht so aus, als wa:ren die Laufwerke, ohne O:ffnen
   des Geha:uses getauscht worden.

   Teurere Systeme mit SCSI-Controllern haben oft BIOS-Erweiterungen,
   mit denen die Reihenfolge von bis zu sieben SCSI-Platten in
   a:hnlicher Weise vera:ndert werden kann.

   Ein Benutzer, der es gewohnt ist, diese BIOS-Funktionen zu
   benutzen, mag u:berrascht sein, dass FreeBSD sich nicht wie
   erwartet verha:lt. FreeBSD verwendet das BIOS nicht und weiss
   daher nichts von der logischen Plattenordnung im BIOS. Dies kann
   zu sehr verwirrenden Situationen fu:hren, insbesondere wenn die
   Platten identische Geometrien besitzen und Kopien voneinander
   sind.

   Vor der Installation von FreeBSD sollte im BIOS die normale
   Nummerierung der Laufwerke eingestellt und so belassen werden. Ist
   es no:tig, die Reihenfolge der Laufwerke zu vera:ndern, so sollte
   das immer auf dem schweren Weg, also durch O:ffnen des Geha:uses
   und Vera:ndern der Jumper und Kabel, erfolgen.

   +----------------------------------------------------------------+
   | Von Bills und Freds ungewo:hnlichen Abenteuern                 |
   |                                                                |
   | Bill macht aus einer a:lteren Wintel Kiste ein neues           |
   | FreeBSD-System fu:r Fred. Auf einer SCSI-Platte, die er mit    |
   | der SCSI-ID 0 konfiguriert, installiert Bill FreeBSD.          |
   |                                                                |
   | Nachdem Fred das System einige Tage benutzt hat, bemerkt er,   |
   | dass die a:ltere SCSI-Platte viele Fehler meldet und beschwert |
   | sich bei Bill.                                                 |
   |                                                                |
   | Nach einigen Tagen entschliesst sich Bill, die Sache in die    |
   | Hand zu nehmen. Er schnappt sich eine identische SCSI-Platte   |
   | aus dem Lager im Hinterzimmer und baut diese, nachdem Sie      |
   | einen Oberfla:chenscan u:berstanden hat, mit der SCSI-ID 4     |
   | ein. Anschliessend kopiert er die Daten von der Platte mit der |
   | SCSI-ID 0 auf die Platte mit der SCSI-ID 4. Da die neue Platte |
   | zufriedenstellend la:uft, stellt Bill im SCSI-BIOS die         |
   | Reihenfolge der Platten so um, dass das System von der neuen   |
   | Platte startet. Nach einem problemlosen Start von FreeBSD      |
   | la:uft das System und Fred ist zufrieden.                      |
   |                                                                |
   | Nach einiger Zeit haben Bill und Fred Lust auf ein weiteres    |
   | Abenteuer - Sie wollen das System auf eine neue                |
   | FreeBSD-Version aktualisieren. Bill ersetzt die angeschlagene  |
   | Platte mit der SCSI-ID 0 durch eine gleiche Platte aus dem     |
   | Lager. Auf der ausgetauschten Platte installiert er problemlos |
   | mithilfe von Freds Startdisketten die neue Version von         |
   | FreeBSD.                                                       |
   |                                                                |
   | Fred braucht ein paar Tage, um die neue FreeBSD-Version zu     |
   | testen und entscheidet, dass Sie fu:r den produktiven Einsatz  |
   | geeignet ist. Nun mu:ssen die Daten von der alten Platte (mit  |
   | der SCSI-ID 4) kopiert werden. Fred ha:ngt dazu die alte       |
   | Platte ein und stellt bestu:rzt fest, dass alle Daten          |
   | verschwunden sind.                                             |
   |                                                                |
   | Wo sind die Daten hin?                                         |
   |                                                                |
   | Bill kopierte die Daten von der Platte mit der SCSI-ID 0 auf   |
   | die Platte mit der SCSI-ID 4. Als Bill die Startreihenfolge im |
   | SCSI-BIOS a:nderte, fu:hrte er sich nur selbst an der Nase     |
   | herum. FreeBSD lief weiterhin auf der Platte mit der           |
   | SCSI-ID 0. Durch die A:nderung der Startreihenfolge wurde nur  |
   | ein Teil des Boot- und Loader-Codes von der Platte mit der     |
   | SCSI-ID 4 geladen. Die Kernel-Treiber von FreeBSD ignorieren   |
   | die BIOS-Einstellungen und benutzen die normale Nummerierung.  |
   | Das System lief also weiterhin auf der Platte mit der          |
   | SCSI-ID 0 und alle Daten von Fred befanden sich auf dieser     |
   | Platte. Es schien nur so, als wu:rde das System auf der Platte |
   | mit der SCSI-ID 4 laufen.                                      |
   |                                                                |
   | Wir sind erleichtert zu bemerken, dass keine Daten verloren    |
   | gingen oder vera:ndert wurden. Die alte Platte wurde im Mu:ll  |
   | wiedergefunden und Freds Daten konnten wiederhergestellt       |
   | werden (Bill weiss jetzt, dass er noch viel zu lernen hat).    |
   |                                                                |
   | Obwohl in diesem Beispiel SCSI-Platten verwendet wurden,       |
   | gelten die Konzepte gleichermassen fu:r IDE-Platten.           |
   +----------------------------------------------------------------+

     --------------------------------------------------------------

  2.6.2. Slices mit Fdisk erstellen

     Anmerkung: Zu diesem Zeitpunkt werden noch keine A:nderungen auf
     die Festplatte ausgeschrieben. Sie ko:nnen daher sysinstall
     jederzeit verlassen, und erneut beginnen, wenn Sie denken, einen
     Fehler gemacht zu haben. Sie ko:nnen sysinstall u:ber die Menu:s
     verlassen, die Taste U dru:cken oder die Option Undo wa:hlen.
     Wenn Sie einmal nicht wissen, wie Sie ein Menu: verlassen,
     ko:nnen Sie den Rechner auch einfach ausschalten.

   Nachdem Sie in sysinstall die Standard-Installation ausgewa:hlt
   haben, werden Sie folgende Meldung sehen:

                                  Message
  In the next menu, you will need to set up a DOS-style ("fdisk")
  partitioning scheme for your hard disk. If you simply wish to devote
  all disk space to FreeBSD (overwriting anything else that might be on
  the disk(s) selected) then use the (A)ll command to select the default
  partitioning scheme followed by a (Q)uit. If you wish to allocate only
  free space to FreeBSD, move to a partition marked "unused" and use the
  (C)reate command.
                                 [  OK  ]

                       [ Press enter or space ]

   Dru:cken Sie, wie angegeben, Enter. Im na:chsten Bildschirm werden
   alle Festplatten angezeigt, die der Kernel wa:hrend der
   Gera:teerkennung gefunden hat. Abbildung 2-13 zeigt ein Beispiel
   von einem System mit zwei IDE-Platten, die als ad0 und ad2 erkannt
   wurden.

   Abbildung 2-13. Ein Laufwerk fu:r Fdisk aussuchen

   Sie fragen sich vielleicht, warum ad1 nicht angezeigt wird. Wurde
   die Platte vielleicht nicht erkannt?

   Stellen Sie sich ein System mit zwei IDE-Platten vor. Eine Platte
   ist als Master am ersten Controller, die andere als Master am
   zweiten Controller angeschlossen. Wenn FreeBSD die Platten in der
   Reihenfolge, in der sie gefunden werden, nummerieren wu:rde,
   hiessen die Platten ad0 und ad1 und alles wu:rde funktionieren.

   Wenn Sie nun am ersten IDE-Controller eine dritte Platte als Slave
   anschliessen wu:rden, wa:re diese Platte ad1. Die vorher ad1
   genannte Platte wu:rde nun ad2 heissen. Dateisysteme werden auf
   Gera:ten wie ad1s1a angelegt. Daher ko:nnte es passieren, dass auf
   einmal Dateisysteme nicht mehr gefunden werden und Sie FreeBSD
   umkonfigurieren mu:ssten.

   Um diese Probleme zu umgehen, kann der Kernel so eingestellt
   werden, dass er Platten nach ihrem Anschlussort anstelle der
   gefundenen Reihenfolge benennt. Nach diesem Schema ist die
   Master-Platte am zweiten IDE-Controller immer ad2, auch wenn es
   die Gera:te ad0 oder ad1 gar nicht gibt.

   Dieses Verhalten ist in FreeBSD voreingestellt und der Grund warum
   im Beispiel die Gera:te ad0 und ad2 angezeigt werden. Der Rechner,
   von dem die gezeigte Ausgabe stammt, hatte zwei IDE-Platten, die
   beide als Master konfiguriert waren, und keine Slave-Platten.

   Wa:hlen Sie die Platte aus, auf die Sie FreeBSD installieren
   wollen und dru:cken Sie [ OK ]. Anschliessend startet Fdisk und
   zeigt einen Bildschirm wie den in Abbildung 2-14.

   Der Bildschirm von Fdisk ist in drei Abschnitte unterteilt.

   Der erste Abschnitt umfasst die ersten beiden Zeilen der Anzeige.
   Er entha:lt Einzelheiten u:ber die aktuell ausgewa:hlte Platte,
   unter anderem den FreeBSD-Gera:tenamen, die Plattengeometrie und
   die Kapazita:t der Platte.

   Der zweite Abschnitt zeigt die auf der Platte befindlichen Slices.
   Angezeigt wird der Anfang und das Ende der Slice, die Gro:sse der
   Slice, der FreeBSD-Gera:tename, eine Beschreibung und der Subtyp.
   Im Beispiel sehen Sie zwei unbenutzte Slices, die durch die
   Plattenbelegung auf PCs entstehen. Weiterhin sehen Sie eine grosse
   FAT-Slice, die ziemlich sicher unter MS-DOS/Windows als Laufwerk
   C: auftaucht und eine erweiterte Slice, die unter MS-DOS/Windows
   weitere Laufwerke enthalten kann.

   Im dritten Abschnitt sind die Kommandos von Fdisk zusammengefasst.

   Abbildung 2-14. Typischer Fdisk-Bildschirm vor dem Editieren

   Die na:chsten Schritte ha:ngen von der beabsichtigten Einteilung
   der Festplatte ab.

   Wenn Sie die gesamte Festplatte fu:r FreeBSD verwenden wollen,
   dru:cken Sie die Taste A (entspricht dem Menu:punkt Use Entire
   Disk). Spa:ter im Installationsverlauf mu:ssen Sie diese Auswahl
   besta:tigen, danach werden alle bisherigen Daten von der
   Festplatte gelo:scht. Diese Auswahl lo:scht vorher vorhandene
   Slices und ersetzt sie durch einen kleinen unbenutzten Bereich
   (der wieder durch das PC-Design bedingt ist) und eine grosse Slice
   fu:r FreeBSD. Wa:hlen Sie dann die neu erstellte Slice mit den
   Pfeiltasten aus und dru:cken Sie die Taste S, um die Slice als
   startfa:hig (bootbar) zu markieren. Abbildung 2-15 zeigt den
   Bildschirm zu diesem Zeitpunkt. Beachten Sie das A in der Spalte
   Flags. Dies zeigt an, dass die Slice aktiv ist und das System von
   dieser Slice starten wird.

   Um Platz fu:r FreeBSD zu schaffen, ko:nnen Sie auch bestehende
   Slices lo:schen. Markieren Sie dazu die Slice mit den Pfeiltasten
   und dru:cken Sie die Taste D. Danach legen Sie eine neue Slice mit
   der Taste C an. Sie werden nach der Gro:sse der zu erstellenden
   Slice gefragt; der Vorgabewert entspricht der gro:ssten Slice, die
   angelegt werden kann (entspricht entweder dem gro:ssten freien
   Bereich auf der Festplatte oder der ganzen Festplatte).

   Wenn Sie schon Platz fu:r FreeBSD geschaffen haben (beispielsweise
   mit PartitionMagic), ko:nnen Sie eine neue Slice direkt mit der
   Taste C anlegen. Sie werden wieder nach der Gro:sse der
   anzulegenden Slice gefragt.

   Abbildung 2-15. Eine Partition u:ber die gesamte Platte

   Dru:cken Sie die Taste Q, wenn Sie fertig sind. Sysinstall merkt
   sich die A:nderungen, schreibt sie aber noch nicht auf die
   Festplatte.

     --------------------------------------------------------------

  2.6.3. Einen Boot-Manager installieren

   Sie ko:nnen nun einen Boot-Manager installieren. Unter folgenden
   Umsta:nden sollten Sie den FreeBSD-Boot-Manager installieren:

     * Das System besitzt mehr als ein Laufwerk und FreeBSD ist auf
       einem anderen Laufwerk als dem ersten Laufwerk installiert.

     * FreeBSD teilt sich das Laufwerk mit einem anderen
       Betriebssystem. Beim Systemstart wollen Sie auswa:hlen,
       welches Betriebssystem gestartet wird.

   Wird der Rechner ausschliesslich mit FreeBSD betrieben und FreeBSD
   ist auf dem ersten Laufwerk installiert, dann genu:gt der
   Standard-Boot-Manager. Wenn Sie einen anderen Boot-Manager
   benutzen, der FreeBSD starten kann, wa:hlen Sie bitte None aus.

   Nachdem Sie die Auswahl getroffen haben, dru:cken Sie die Taste
   Enter.

   Abbildung 2-16. Sysinstall Boot-Manager-Menu:

   In der Hilfe, die Sie mit der Taste F1 aufrufen, werden Probleme
   beschrieben, die entstehen ko:nnen, wenn sich zwei Betriebssysteme
   ein Laufwerk teilen.

     --------------------------------------------------------------

  2.6.4. Slices auf einem anderen Laufwerk anlegen

   Wenn das System mehr als ein Laufwerk besitzt, kehrt die
   Installationsprozedur nach der Auswahl des Boot-Managers zum
   Bildschirm Select Drives zuru:ck. Sie ko:nnen hier ein anderes
   Laufwerk auswa:hlen und auf diesem Laufwerk mit Fdisk weitere
   Slices anlegen.

     Wichtig: Wenn Sie FreeBSD auf einem anderen Laufwerk als dem
     ersten Laufwerk installieren, mu:ssen Sie den
     FreeBSD-Boot-Manager auf beiden Laufwerken installieren.

   Abbildung 2-17. Die Laufwerksauswahl verlassen

   Die Taste Tab wechselt zwischen dem zuletzt ausgewa:hlten Laufwerk
   und den Schaltfla:chen [ OK ] und [ Cancel ].

   Dru:cken Sie einmal die Taste Tab, um [ OK ] auszuwa:hlen und
   dru:cken Sie anschliessend Enter um die Installation
   weiterzufu:hren.

     --------------------------------------------------------------

  2.6.5. Partitionen mit Bsdlabel anlegen

   In jeder angelegten Slice mu:ssen Sie Partitionen anlegen. Die
   Partitionen werden mit Buchstaben von a bis h gekennzeichnet. Die
   Buchstaben b, c und d haben eine besondere Bedeutung, die Sie
   beachten sollten.

   Einige Anwendungen profitieren von einer besonderen Aufteilung der
   Partitionen, insbesondere wenn das System mehr als ein Laufwerk
   besitzt. Bei der ersten FreeBSD-Installation sollten Sie sich
   allerdings nicht zu viele Gedanken u:ber die Partitionen machen.
   Wichtiger ist, dass Sie FreeBSD installieren und benutzen. Wenn
   Sie mehr Erfahrung mit FreeBSD gesammelt haben, ko:nnen Sie
   FreeBSD jederzeit mit anderen Partitionen installieren.

   Das folgende Schema legt vier Partitionen an: Eine Partition fu:r
   den Auslagerungsbereich (swap space) und drei Partitionen fu:r
   Dateisysteme.

   Tabelle 2-2. Partitionen auf dem ersten Laufwerk

   Partition Dateisystem   Gro:sse             Beschreibung           
                                     Das Root-Dateisystem. Jedes      
                                     andere Dateisystem wird irgendwo 
                                     unterhalb von diesem Dateisystem 
                                     eingehangen. 1 GB ist eine       
                                     vernu:nftige Gro:sse fu:r dieses 
                                     Dateisystem. Sie werden hier     
   a         /           1 GB        wenig Daten speichern und        
                                     FreeBSD beno:tigt ungefa:hr      
                                     128 MB Platz auf diesem          
                                     Dateisystem. Der Rest ist fu:r   
                                     tempora:re Daten und die         
                                     Reserve, falls ku:nftige         
                                     Versionen von FreeBSD mehr Platz 
                                     in / beno:tigen.                 
                                     Der Auslagerungsbereich befindet 
                                     sich auf der b-Partition. Es ist 
                                     schon fast eine Kunst, die       
                                     Gro:sse des Auslagerungsbereichs 
                                     richtig zu bestimmen. Eine gute  
                                     Daumenregel ist, den             
                                     Auslagerungsbereich zwei bis     
                                     dreimal gro:sser als den         
                                     Hauptspeicher (RAM) anzulegen.   
                                     Sie sollten mindestens 64 MB     
                                     fu:r den Auslagerungsbereich     
                                     vorsehen. Wenn das System also   
                                     weniger als 32 MB Hauptspeicher  
                                     besitzt, richten Sie einen 64 MB 
                                     grossen Auslagerungsbereich ein. 
                                                                      
                                     
 Besitzt das System mehr als    
                                     ein Laufwerk, ko:nnen Sie auf    
   b         N/A         2-3 x RAM   jedem Laufwerk                   
                                     Auslagerungsbereiche anlegen. Da 
                                     FreeBSD alle                     
                                     Auslagerungsbereiche benutzt,    
                                     wird der Vorgang des Auslagerns  
                                     durch mehrere Bereiche           
                                     beschleunigt. Berechnen Sie in   
                                     diesem Fall die Gro:sse des      
                                     beno:tigten                      
                                     Auslagerungsbereichs,            
                                     beispielsweise 128 MB, und       
                                     teilen Sie die Gro:sse durch die 
                                     Anzahl der Laufwerke. Dies gibt  
                                     die Gro:sse des                  
                                     Auslagerungsbereichs auf jedem   
                                     Laufwerk. Mit zwei Platten       
                                     ergibt das in diesem Beispiel    
                                     64 MB Auslagerungsbereich pro    
                                     Platte.                          
                                     Das Verzeichnis /var entha:lt    
                                     Dateien, die sich dauernd        
                                     a:ndern (Protokolldateien und    
                                     Dateien fu:r Verwaltungszwecke)  
                                     und auf die im Normalbetrieb oft 
   e         /var        512 MB bis  zugegriffen wird. Liegen diese   
                         4096 MB     Dateien in einem gesonderten     
                                     Dateisystem, kann FreeBSD den    
                                     Zugriff auf die Dateien          
                                     optimieren, ohne den Zugriff auf 
                                     Dateien mit einem anderen        
                                     Zugriffmuster zu sto:ren.        
                         Der Rest    Alle anderen Dateien werden      
                         des         normalerweise im Verzeichnis     
   f         /usr        Laufwerks   /usr oder einem Unterverzeichnis 
                         (mindestens von /usr abgelegt.               
                         8 GB)       

     Warnung: Die eben genannten Werte dienen nur als Beispiel und
     sollten nur von erfahrenen Benutzern editiert werden. Wir
     empfehlen Ihnen, die vom Partitionseditor vorgeschlagene
     Aufteilung (Auto Defaults) zu verwenden.

   Wenn Sie FreeBSD auf mehr als einem Laufwerk installieren, mu:ssen
   Sie noch weitere Partitionen in den Slices auf den anderen
   Laufwerken anlegen. Am einfachsten legen Sie pro Laufwerk zwei
   Partitionen an: eine fu:r den Auslagerungsbereich und eine andere
   fu:r ein Dateisystem.

   Tabelle 2-3. Partitionen auf weiteren Laufwerken

   Partition Dateisystem   Gro:sse             Beschreibung           
                                      Wie schon besprochen, ko:nnen   
                                      Sie den Auslagerungsbereich auf 
                                      mehrere Platten verteilen. Auch 
   b         -           -            wenn die a-Partition frei ist,  
                                      sollte der Auslagerungsbereich  
                                      entsprechend der Konvention auf 
                                      der b-Partition angelegt        
                                      werden.                         
                                      Der Rest der Platte wird von    
                                      einer grossen Partition         
                                      eingenommen. Sie ko:nnten fu:r  
                                      diese Partition die a-Partition 
                                      anstelle der e-Partition        
                                      benutzen. Allerdings ist die    
                                      a-Partition per Konvention fu:r 
                                      das Root-Dateisystem (/)        
                                      reserviert. Sie brauchen die    
                         Der Rest des Konvention nicht zu beachten,   
   e         /diskn      Laufwerks    da aber sysinstall die          
                                      Konvention beachtet, ist die    
                                      Installation sauberer, wenn Sie 
                                      das auch tun. Sie ko:nnen das   
                                      Dateisystem irgendwo            
                                      einha:ngen. Das Beispiel        
                                      schla:gt die Verzeichnisse      
                                      /diskn vor, wobei n die         
                                      Laufwerke nummeriert. Sie       
                                      ko:nnen ein anderes Schema      
                                      verwenden, wenn Sie mo:chten.   

   Wenn Sie die Aufteilung der Partitionen festgelegt haben, ko:nnen
   Sie die Partitionen mit sysinstall anlegen. Es erscheint die
   nachstehende Meldung:

                                  Message
  Now, you need to create BSD partitions inside of the fdisk
  partition(s) just created. If you have a reasonable amount of disk
  space (1GB or more) and don't have any special requirements, simply
  use the (A)uto command to allocate space automatically. If you have
  more specific needs or just don't care for the layout chosen by
  (A)uto, press F1 for more information on manual layout.

                                 [  OK  ]
                           [ Press enter or space ]

   Dru:cken Sie Enter, um den FreeBSD-Partitionseditor, der Disklabel
   heisst, zu starten.

   Abbildung 2-18 zeigt den Einstiegsbildschirm von Disklabel. Der
   Bildschirm ist in drei Bereiche geteilt.

   Die ersten Zeilen zeigen den Namen des Laufwerks, das Sie gerade
   bearbeiten und die Slice, die die erstellten Partitionen entha:lt
   (Disklabel spricht hier von Partitionen anstatt von Slices). Der
   freie Platz einer Slice, der noch keiner Partition zugeordnet ist,
   wird ebenfalls angezeigt.

   In der Mitte des Bildschirms werden die angelegten Partitionen,
   der Name des Dateisystems, das sich in der Partition befindet,
   dessen Gro:sse und die Optionen zum Erstellen des Dateisystems
   angezeigt.

   Das untere Drittel des Bildschirms zeigt die in Disklabel
   gu:ltigen Tastenkombinationen.

   Abbildung 2-18. Sysinstall Disklabel-Editor

   Disklabel kann fu:r Sie automatisch Partitionen mit vorgegebenen
   Gro:ssen erstellen (diese Standardgro:ssen werden durch einen
   internen Partitionierungsalgorithmus ermittelt, der auf der
   Plattengro:sse beruht). Probieren Sie das bitte jetzt aus und
   dru:cken Sie die Taste A. Der Bildschirm sieht danach a:hnlich wie
   in Abbildung 2-19 aus. Abha:ngig von der Gro:sse des Laufwerks
   ko:nnen die Vorgabewerte richtig oder falsch sein. Da Sie die
   Vorgaben nicht akzeptieren mu:ssen, spielt das keine Rolle.

     Anmerkung: FreeBSD legt das Verzeichnis /tmp in einer eigenen
     Partition an. Dies verhindert, dass sich die Root-Partition mit
     tempora:ren Dateien fu:llt.

   Abbildung 2-19. Sysinstall Disklabel-Editor mit automatischen
   Vorgaben

   Wollen Sie die vorgegebenen Partitionen nicht verwenden und durch
   eigene ersetzen, markieren Sie mit den Pfeiltasten die erste
   Partition und dru:cken Sie die Taste D, um die Partition zu
   lo:schen. Wiederholen Sie dies fu:r alle vorgegebenen Partitionen.

   Um die erste Partition (a), die als / eingehangen wird, zu
   erstellen, dru:cken Sie die Taste C. Stellen Sie dabei sicher,
   dass die richtige Slice im oberen Teil des Bildschirms markiert
   ist. Wie in Abbildung 2-20, erscheint ein Fenster, in dem Sie die
   Gro:sse der Partition angeben mu:ssen. Sie ko:nnen die Gro:sse in
   Blo:cken oder einer Zahl gefolgt von M fu:r Megabyte, G fu:r
   Gigabyte oder C fu:r Zylinder angeben.

   Abbildung 2-20. Die Gro:sse einer Partition festlegen

   Die vorgegebene Gro:sse erstellt eine Partition, die den Rest der
   Slice ausfu:llt. Wenn Sie die Gro:ssen aus dem fru:heren Beispiel
   verwenden, lo:schen Sie die vorgeschlagene Gro:sse mit der Taste
   Backspace und tragen Sie 512M ein, wie in Abbildung 2-21 gezeigt.
   Dru:cken Sie anschliessend [ OK ].

   Abbildung 2-21. Die Gro:sse einer Partition a:ndern

   Nachdem Sie die Gro:sse der Partition festgelegt haben, werden Sie
   gefragt, ob die Partition ein Dateisystem oder einen
   Auslagerungsbereich enthalten soll (siehe Abbildung 2-22). Die
   erste Partition entha:lt ein Dateisystem, wa:hlen Sie FS aus und
   dru:cken Sie die Taste Enter.

   Abbildung 2-22. Den Partitionstyp festlegen

   Abschliessend mu:ssen Sie, weil Sie ein Dateisystem erstellen,
   angeben, wo das Dateisystem eingehangen wird. Die Eingabe ist in
   Abbildung 2-23 dargestellt. Das Root-Dateisystem wird in /
   eingehangen, geben Sie daher / ein und dru:cken Sie die Taste
   Enter.

   Abbildung 2-23. Den Mountpoint festlegen

   Auf dem Bildschirm wird jetzt die neu angelegte Partition
   angezeigt. Wiederholen Sie diese Prozedur fu:r die restlichen
   Partitionen. Beim Anlegen des Auslagerungsbereichs werden Sie
   nicht nach einem Mountpoint gefragt, da ein Auslagerungsbereich
   nie eingehangen wird. Wenn Sie die letzte Partition anlegen, /usr,
   ko:nnen Sie die vorgeschlagene Gro:sse stehen lassen. Das
   Dateisystem wird dann den Rest der Slice einnehmen.

   Der letzte Bildschirm von Disklabel sieht wie in Abbildung 2-24
   aus (Ihre Werte werden von den gezeigten Werten abweichen).
   Dru:cken Sie die Taste Q, um Disklabel zu verlassen.

   Abbildung 2-24. Sysinstall Disklabel-Editor

     --------------------------------------------------------------

2.7. Den Installationsumfang bestimmen

  2.7.1. Die Distribution auswa:hlen

   Welche Software Sie installieren, ha:ngt hauptsa:chlich vom Zweck
   des Rechners und dem zur Verfu:gung stehenden Plattenplatz ab. Die
   vorgegebenen Distributionen reichen von der minimalen Installation
   bis hin zu einer kompletten Installation. Anfa:nger sollten eine
   der vorgegebenen Distributionen auswa:hlen, erfahrene Benutzer
   ko:nnen die zu installierende Distribution anpassen.

   Die Taste F1 fu:hrt zu einem Hilfebildschirm, der die
   Distributionen und deren Inhalte beschreibt. Dru:cken Sie Enter,
   um die Hilfe zu verlassen und zur Auswahl der Distribution
   zuru:ckzukehren.

   Wenn Sie eine graphische Benutzeroberfla:che installieren wollen,
   mu:ssen Sie die Konfiguration des X-Servers und die Auswahl der
   Benutzeroberfla:che nach erfolgreicher Installation durchfu:hren.
   Die Installation und Konfiguration des X-Servers wird in Kapitel 6
   besprochen.

   Wenn Sie einen angepassten Kernel erstellen wollen, wa:hlen Sie
   eine Distribution aus, die den Quellcode (source code) entha:lt.
   Warum und wie Sie einen angepassten Kernel erstellen, erfahren Sie
   in Kapitel 9.

   Natu:rlich ist das flexibelste System das, auf dem alles
   installiert ist. Wenn das System u:ber ausreichend Plattenplatz
   verfu:gt, wa:hlen Sie mit den Pfeiltasten die Option All aus
   (siehe Abbildung 2-25) und dru:cken die Taste Enter. Wenn Sie
   Bedenken haben, dass der Plattenplatz nicht ausreicht, wa:hlen Sie
   eine Distribution, die weniger Software entha:lt. Machen Sie sich
   keine unno:tigen Sorgen um die richtige Distribution, ausgelassene
   Distribution ko:nnen spa:ter nachinstalliert werden.

   Abbildung 2-25. Die Distribution auswa:hlen

     --------------------------------------------------------------

  2.7.2. Die Ports-Sammlung installieren

   Nach der Auswahl der Distribution haben Sie Gelegenheit, die
   FreeBSD-Ports-Sammlung zu installieren. Mit der Ports-Sammlung
   la:sst sich Software Dritter auf einfache Art und Weise
   installieren. Der Quellcode der zu installierenden Software ist
   nicht in der Ports-Sammlung enthalten. Stattdessen entha:lt die
   Ports-Sammlung Dateien, die den Installationsprozess
   (herunterladen, u:bersetzen und installieren) automatisieren. Die
   Ports-Sammlung wird in Kapitel 5 besprochen.

   Der Installationsprozess pru:ft nicht, ob ausreichend Platz fu:r
   die Ports-Sammlung vorhanden ist. Wa:hlen Sie die Ports-Sammlung
   bitte nur aus, wenn das System u:ber ausreichenden Platz verfu:gt.
   In FreeBSD 9.0 nimmt die Ports-Sammlung ungefa:hr 500 MB
   Plattenplatz in Anspruch. Neuere Versionen von FreeBSD beno:tigen
   mit Sicherheit noch mehr Platz.

                          User Confirmation Requested
  Would you like to install the FreeBSD ports collection?

  This will give you ready access to over 23,000 ported software packages,
  at a cost of around 500 MB of disk space when "clean" and possibly much
  more than that if a lot of the distribution tarballs are loaded
  (unless you have the extra CDs from a FreeBSD CD/DVD distribution
  available and can mount it on /cdrom, in which case this is far less
  of a problem).

  The ports collection is a very valuable resource and well worth having
  on your /usr partition, so it is advisable to say Yes to this option.

  For more information on the ports collection & the latest ports,
  visit:
      http://www.FreeBSD.org/ports

                               [ Yes ]     No

   Wa:hlen Sie mit den Pfeiltasten [ Yes ] aus, um die Ports-Sammlung
   zu installieren. Wa:hlen Sie [ No ] aus, um die Ports-Sammlung
   auszulassen. Dru:cken Sie danach die Taste Enter, es erscheint
   wieder das Distributionsmenu:.

   Abbildung 2-26. Die Distributionen besta:tigen

   Wenn Sie mit den ausgewa:hlten Optionen zufrieden sind, wa:hlen
   Sie mit den Pfeiltasten Exit aus (stellen Sie sicher, dass [ OK ]
   aktiv ist) und dru:cken Sie die Taste Enter.

     --------------------------------------------------------------

2.8. Das Installationsmedium auswa:hlen

   Wenn Sie von einer CD-ROM oder einer DVD installieren, wa:hlen Sie
   bitte Install from a FreeBSD CD/DVD aus. Stellen Sie sicher, dass
   [ OK ] aktiv ist und dru:cken Sie dann die Taste Enter, um mit der
   Installation fortzufahren.

   Wenn Sie ein anderes Installationsmedium benutzen, wa:hlen Sie die
   passende Option aus und folgen den angezeigten Anweisungen.

   Die Hilfeseiten u:ber Installationsmedien erreichen Sie mit der
   Taste F1. Dru:cken Sie Enter, um zur Auswahl des
   Installationsmediums zuru:ckzukehren.

   Abbildung 2-27. Das Installationsmedium auswa:hlen

     FTP-Installationsmodi: Sie ko:nnen zwischen drei
     FTP-Installationsmodi wa:hlen: Active-FTP, Passive-FTP oder
     u:ber einen HTTP-Proxy.

     FTP Active: Install from an FTP server

             Diese Option fu:hrt alle FTP-Operationen im Active-Mode
             aus. Dieser Modus funktioniert nicht durch Firewalls, er
             funktioniert aber mit alten FTP-Servern, die den
             Passive-Mode nicht beherrschen. Wenn die Verbindung im
             Passive-Mode (das ist die Vorgabe) ha:ngt, versuchen Sie
             den Active-Mode.

     FTP Passive: Install from an FTP server through a firewall

             Mit dieser Option benutzt sysinstall den Passive-Mode
             fu:r alle FTP-Operationen. In diesem Modus funktionieren
             Verbindungen durch Firewalls, die einkommende Pakete auf
             beliebigen TCP-Ports blockieren.

     FTP via a HTTP proxy: Install from an FTP server through a http
     proxy

             Diese Option weist sysinstall an, alle FTP-Operationen
             mit HTTP u:ber einen Proxy (wie ein Web-Browser)
             durchzufu:hren. Der Proxy leitet die Anfragen an den
             richtigen FTP-Server weiter. Mit dieser Option passieren
             Sie eine Firewall, die FTP-Verbindungen verbietet, aber
             einen HTTP-Proxy anbietet. Neben dem FTP-Server mu:ssen
             Sie in diesem Fall den Proxy-Server angeben.

     Bei einem FTP-Proxy-Server mu:ssen Sie normalerweise den
     Ziel-FTP-Server als Teil des Benutzernamens hinter dem
     Klammeraffen ("@") angeben. Der Proxy-Server u:bernimmt die
     Kommunikation mit dem Ziel-FTP-Server. Nehmen wir an, Sie wollen
     von ftp.FreeBSD.org u:ber den FTP-Proxy foo.example.com auf Port
     1234 installieren.

     Wa:hlen Sie das Menu: Options aus und setzen Sie dort den
     FTP-Benutzernamen (username) auf ftp@ftp.FreeBSD.org. Als
     Passwort geben Sie bitte Ihre E-Mail-Adresse an. Setzen Sie das
     Installationsmedium auf Active-FTP oder Passive-FTP, je nachdem
     welchen Modus der Proxy-Server unterstu:tzt. Fu:r die URL geben
     Sie ftp://foo.example.com:1234/pub/FreeBSD an.

     Der Proxy-Server foo.example.com leitet Zugriffe auf das
     Verzeichnis /pub/FreeBSD an den Server ftp.FreeBSD.org weiter.
     Daher ko:nnen foo.example.com als FTP-Server angeben.

     --------------------------------------------------------------

2.9. Die Installation festschreiben

   Wenn Sie wu:nschen, kann die Installation nun beginnen. Dies ist
   die letzte Gelegenheit, die Installation abzubrechen und
   A:nderungen auf der Festplatte zu vermeiden.

                        User Confirmation Requested
  Last Chance! Are you SURE you want to continue the installation?

  If you're running this on a disk with data you wish to save then WE
  STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!

  We can take no responsibility for lost disk contents!

                              [ Yes ]    No

   Wa:hlen Sie [ Yes ] aus und dru:cken Sie Enter, um weiter zu
   machen.

   Die Installationsdauer ha:ngt von den ausgewa:hlten
   Distributionen, dem Installationsmedium und der Geschwindigkeit
   des Rechners ab. Wa:hrend der Installation wird der Fortgang mit
   Statusmeldungen angezeigt.

   Die Installation ist beendet, wenn die folgende Meldung erscheint:

                                Message

 Congratulations! You now have FreeBSD installed on your system.

 We will now move on to the final configuration questions.
 For any option you do not wish to configure, simply select No.

 If you wish to re-enter this utility after the system is up, you may
 do so by typing: /usr/sbin/sysinstall.

                                  [ OK ]

                       [  Press enter or space  ]

   Dru:cken Sie die Taste Enter, um die Nacharbeiten durchzufu:hren.

   Wenn Sie [ No ] auswa:hlen und Enter dru:cken wird die
   Installation abgebrochen und das System wird nicht vera:ndert. Die
   nachstehende Meldung wird angezeigt:

                                 Message
 Installation complete with some errors.  You may wish to scroll
 through the debugging messages on VTY1 with the scroll-lock feature.
 You can also choose "No" at the next prompt and go back into the
 installation menus to retry whichever operations have failed.

                                  [ OK ]

   Die Meldung wird angezeigt, weil nichts installiert wurde.
   Dru:cken Sie Enter, um in das Hauptmenu: zuru:ckzukehren. Dort
   ko:nnen Sie die Installationsprozedur verlassen.

     --------------------------------------------------------------

2.10. Arbeiten nach der Installation

   Nach einer erfolgreichen Installation wird das System
   konfiguriert. Sie ko:nnen das System direkt konfigurieren oder
   nach einem Neustart. Nach einem Neustart rufen Sie sysinstall auf
   und wa:hlen den Menu:punkt Configure.

     --------------------------------------------------------------

  2.10.1. Netzwerkkonfiguration

   Wenn Sie schon PPP fu:r eine FTP-Installation konfiguriert haben,
   erscheint dieser Bildschirm nicht. Sie ko:nnen die Konfiguration
   spa:ter in sysinstall vornehmen.

   Netzwerke und die Konfiguration von FreeBSD als Gateway oder
   Router werden eingehend im Kapitel Weiterfu:hrende Netzwerkthemen
   behandelt.

                       User Confirmation Requested
    Would you like to configure any Ethernet or PPP network devices?

                              [ Yes ]   No

   Wenn Sie eine Netzwerkkarte konfigurieren wollen, wa:hlen Sie
   [ Yes ] aus und dru:cken Sie die Taste Enter. Wa:hlen Sie [ No ],
   um die Netzwerkkonfiguration zu u:berspringen.

   Abbildung 2-28. Eine Netzwerkkarte auswa:hlen

   Wa:hlen Sie die zu konfigurierende Karte mit den Pfeiltasten aus
   und dru:cken Sie die Taste Enter.

                       User Confirmation Requested
        Do you want to try IPv6 configuration of the interface?

                               Yes   [ No ]

   Fu:r das gezeigte Installationsbeispiel genu:gte das momentan
   verwendete Internet-Protokoll (IPv4). Daher wurde mit den
   Pfeiltasten [ No ] ausgewa:hlt und mit der Taste Enter besta:tigt.

   Wenn Sie durch einen RA-Server mit einem IPv6-Netzwerk verbunden
   sind, wa:hlen Sie bitte [ Yes ] und dru:cken die Taste Enter. Die
   Suche nach den RA-Servern dauert einige Sekunden.

                              User Confirmation Requested
         Do you want to try DHCP configuration of the interface?

                               Yes   [ No ]

   Falls Sie das Dynamic Host Configuration Protocol (DHCP) nicht
   verwenden, wa:hlen Sie [ No ] aus und dru:cken Sie Enter.

   Wenn Sie [ Yes ] auswa:hlen, wird das Programm dhclient
   ausgefu:hrt und bei Erfolg die Netzwerkkarte konfiguriert. Mehr
   u:ber DHCP ko:nnen Sie in Abschnitt 30.5 nachlesen.

   Der na:chste Bildschirmabzug zeigt die Netzwerkkonfiguration eines
   Systems, das Gateway fu:r das lokale Netz ist.

   Abbildung 2-29. Die Netzwerkkarte ed0 konfigurieren

   Tragen Sie in die Felder, die Sie mit der Taste Tab auswa:hlen
   ko:nnen, die richtige Konfiguration ein.

   Host

           Der vollsta:ndige Rechnername (fully-qualified hostname),
           wie in diesem Beispiel k6-2.example.com.

   Domain

           Der Domain-Name, in dem sich der Rechner befindet. Im
           Beispiel ist das example.com.

   IPv4 Gateway

           Die IP-Adresse des Rechners, der Pakete an entfernte Netze
           weiterleitet. Sie mu:ssen dieses Feld ausfu:llen, wenn der
           sich der Rechner in einem Netzwerk befindet. Lassen Sie
           das Feld leer, wenn der Rechner der Gateway in das
           Internet ist. Der IPv4-Gateway wird auch default gateway
           oder default route genannt.

   Name server

           Die IP-Adresse des lokalen DNS-Servers. Im Beispiel gibt
           es keinen lokalen DNS-Server, daher wurde der DNS-Server
           des Providers (208.163.10.2) benutzt.

   IPv4 address

           Die IP-Adresse der Netzwerkkarte (192.168.0.1).

   Netmask (Netzmaske)

           Im Beispiel werden Adressen aus einem Klasse C Netz
           (192.168.0.0 bis 192.168.0.255) benutzt. Standardma:ssig
           besitzt ein Klasse C Netz die Netzmaske 255.255.255.0.

   Extra options to ifconfig (Optionen fu:r ifconfig)

           Zusa:tzliche Optionen fu:r den Befehl ifconfig, die
           spezifisch fu:r die verwendete Netzwerkkarte sind. Im
           Beispiel sind keine Optionen angegeben.

   Wenn Sie alle Werte eingegeben haben, wa:hlen Sie mit Tab [ OK ]
   aus und dru:cken Sie Enter.

                       User Confirmation Requested
         Would you like to bring the ed0 interface up right now?

                              [ Yes ]   No

   Wenn Sie [ Yes ] auswa:hlen und Enter dru:cken, wird die
   Netzwerkkonfiguration aktiviert. Allerdings bringt dies zu diesem
   Zeitpunkt nicht viel, da der Rechner noch neu gestartet werden
   muss.

     --------------------------------------------------------------

  2.10.2. Gateway einrichten

                        User Confirmation Requested
        Do you want this machine to function as a network gateway?

                               [ Yes ]    No

   Wa:hlen Sie [ Yes ], wenn der Rechner ein Gateway fu:r ein lokales
   Netz ist und Pakete an andere Netze weiterleitet. Wenn der Rechner
   ein normaler Netzknoten ist, wa:hlen Sie [ No ] aus. Besta:tigen
   Sie die auswahl mit der Taste Enter.

     --------------------------------------------------------------

  2.10.3. IP-Dienste einrichten

                       User Confirmation Requested
 Do you want to configure inetd and the network services that it provides?

                                Yes   [ No ]

   Wenn [ No ] ausgewa:hlt wird, werden Dienste wie telnetd nicht
   aktiviert. Benutzer ko:nnen sich dann von entfernten Rechnern
   nicht mit telnet an dieser Maschine anmelden. Lokale Benutzer
   ko:nnen aber auf entfernte Rechner mit telnet zugreifen.

   Die Dienste ko:nnen Sie nach der Installation aktivieren, indem
   Sie die Datei /etc/inetd.conf editieren. Dies wird in Abschnitt
   30.2.1 beschrieben.

   Wenn Sie jetzt weitere Dienste aktivieren mo:chten, wa:hlen Sie
   [ Yes ] aus. Es erscheint die nachstehende Ru:ckfrage:

                       User Confirmation Requested
 The Internet Super Server (inetd) allows a number of simple Internet
 services to be enabled, including finger, ftp and telnetd.  Enabling
 these services may increase risk of security problems by increasing
 the exposure of your system.

 With this in mind, do you wish to enable inetd?

                              [ Yes ]   No

   Besta:tigen Sie die Ru:ckfrage mit [ Yes ].

                       User Confirmation Requested
 inetd(8) relies on its configuration file, /etc/inetd.conf, to determine
 which of its Internet services will be available.  The default FreeBSD
 inetd.conf(5) leaves all services disabled by default, so they must be
 specifically enabled in the configuration file before they will
 function, even once inetd(8) is enabled.  Note that services for
 IPv6 must be separately enabled from IPv4 services.

 Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to
 use the current settings.

                              [ Yes ]   No

   Wenn Sie [ Yes ] auswa:hlen, ko:nnen Sie Dienste aktivieren, in
   dem Sie das Zeichen # am Zeilenanfang entfernen.

   Abbildung 2-30. inetd.conf editieren

   Wenn Sie die gewu:nschten Dienste aktiviert haben, dru:cken Sie
   die Taste Esc. Es erscheint ein Menu:, in dem Sie die A:nderungen
   abspeichern und den Editor verlassen ko:nnen.

     --------------------------------------------------------------

  2.10.4. SSH aktivieren

                       User Confirmation Requested
                   Would you like to enable SSH login?
                            Yes        [  No  ]

   Durch die Auswahl von [ Yes ], wird sshd(8), der OpenSSH-Daemon
   aktiviert. Danach ist es mo:glich, sich u:ber eine verschlu:sselte
   Verbindung auf Ihrem System anzumelden. Weitere Informationen
   u:ber OpenSSH finden Sie in Abschnitt 15.10 des FreeBSD-Handbuchs.

     --------------------------------------------------------------

  2.10.5. Anonymous-FTP

                       User Confirmation Requested
  Do you want to have anonymous FTP access to this machine?

                               Yes    [ No ]

     --------------------------------------------------------------

    2.10.5.1. Anonymous-FTP verbieten

   Wenn Sie die vorgegebene Auswahl [ No ] mit der Taste Enter
   besta:tigen, ko:nnen Benutzer, die ein Konto und ein Passwort auf
   dem System besitzen, immer noch mit FTP auf das System zugreifen.

     --------------------------------------------------------------

    2.10.5.2. Anonymous-FTP erlauben

   Wenn Sie Anonymous-FTP erlauben, darf jeder auf Ihr System
   zugreifen. Bedenken Sie die Folgen fu:r die Systemsicherheit
   (siehe Kapitel 15) bevor Sie diese Option aktivieren.

   Um Anonymous-FTP zu aktivieren, wa:hlen Sie mit den Pfeiltasten
   [ Yes ] aus und dru:cken Sie die Taste Enter. Es erscheint
   folgende Meldung:

                        User Confirmation Requested
  Anonymous FTP permits un-authenticated users to connect to the system
  FTP server, if FTP service is enabled.  Anonymous users are
  restricted to a specific subset of the file system, and the default
  configuration provides a drop-box incoming directory to which uploads
  are permitted.  You must separately enable both inetd(8), and enable
  ftpd(8) in inetd.conf(5) for FTP services to be available.  If you
  did not do so earlier, you will have the opportunity to enable inetd(8)
  again later.

  If you want the server to be read-only you should leave the upload
  directory option empty and add the -r command-line option to ftpd(8)
  in inetd.conf(5)

  Do you wish to continue configuring anonymous FTP?

                           [ Yes ]         No

   Diese Nachricht informiert Sie daru:ber, dass der FTP-Dienst auch
   in der Datei /etc/inetd.conf aktiviert werden muss, wenn Sie
   anonyme FTP-Verbindungen erlauben wollen (lesen Sie dazu auch
   Abschnitt 2.10.3 des FreeBSD-Handbuchs). Wa:hlen Sie [ Yes ] und
   dru:cken Sie Enter, um fortzufahren. Danach erscheint der folgende
   Bildschirm:

   Abbildung 2-31. Anonymous-FTP konfigurieren

   Mit der Taste Tab wechseln Sie zwischen den Feldern, in die Sie
   die beno:tigten Informationen eingeben.

   UID

           Die User-ID, die dem anonymen FTP-Benutzer zugewiesen
           werden soll. Alle hochgeladenen Dateien werden diesem
           User-ID geho:ren.

   Group

           Die Gruppe, zu der der anonyme FTP-Benutzer geho:ren soll.

   Comment

           Eine Beschreibung dieses Benutzers in der Datei
           /etc/passwd.

   FTP Root Directory

           Ort, an dem Dateien fu:r anonymen FTP-Zugang
           bereitgestellt werden sollen.

   Upload Subdirectory

           Das Verzeichnis, in dem von einem anonymen FTP-Benutzer
           hochgeladene Dateien gespeichert werden.

   Das FTP-Wurzelverzeichnis wird per Voreinstellung in /var
   angelegt. Wenn in /var zu wenig Platz vorhanden ist, ko:nnen Sie
   das FTP-Wurzelverzeichnis beispielsweise nach /usr/ftp verlegen.

   Wenn Sie mit den Einstellungen zufrieden sind, dru:cken Sie die
   Taste Enter.

                           User Confirmation Requested
          Create a welcome message file for anonymous FTP users?

                               [ Yes ]    No

   Wenn Sie [ Yes ] auswa:hlen und mit Enter besta:tigen, ko:nnen Sie
   die Begru:ssungsmeldung des FTP-Servers in einem Editor a:ndern.

   Abbildung 2-32. Begru:ssungsmeldung des FTP-Servers editieren

   Der Editor, in dem Sie sich befinden, heisst ee. Folgen Sie den
   Anweisungen, um die Meldung zu editieren. Sie ko:nnen die Meldung
   auch spa:ter in einem Editor Ihrer Wahl editieren. Merken Sie sich
   dazu den Dateinamen, der im Editor unten angezeigt wird.

   Wenn Sie die Taste Esc dru:cken, erscheint ein Menu:, in dem a)
   leave editor vorgewa:hlt ist. Dru:cken Sie die Taste Enter, um den
   Editor zu verlassen. Falls Sie A:nderungen vorgenommen haben,
   besta:tigen Sie die A:nderungen nochmals mit Enter.

     --------------------------------------------------------------

  2.10.6. Network-File-System einrichten

   Mit dem Network-File-System (NFS) ko:nnen Sie u:ber ein Netzwerk
   auf Dateien zugreifen. Ein Rechner kann NFS-Server, NFS-Client
   oder beides sein. NFS wird in Abschnitt 30.3 besprochen.

     --------------------------------------------------------------

    2.10.6.1. NFS-Server einrichten

                        User Confirmation Requested
  Do you want to configure this machine as an NFS server?

                               Yes    [ No ]

   Wenn Sie keinen NFS-Server beno:tigen, wa:hlen Sie [ No ] aus und
   besta:tigen Sie mit Enter.

   Wenn Sie [ Yes ] auswa:hlen, erscheint der Hinweis, dass die Datei
   exports angelegt werden muss.

                                Message
 Operating as an NFS server means that you must first configure an
 /etc/exports file to indicate which hosts are allowed certain kinds of
 access to your local filesystems.
 Press [Enter] now to invoke an editor on /etc/exports
                                [ OK ]

   Dru:cken Sie Enter und es wird ein Editor gestartet, in dem Sie
   die Datei exports editieren ko:nnen.

   Abbildung 2-33. exports editieren

   Folgen Sie den Anweisungen, um Dateisysteme zu exportieren. Sie
   ko:nnen die Datei auch spa:ter in einem Editor Ihrer Wahl
   editieren. Merken Sie sich dazu den Dateinamen, der im Editor
   unten angezeigt wird.

   Dru:cken Sie die Taste Esc und es erscheint ein Menu:, in dem a)
   leave editor vorgewa:hlt ist. Dru:cken Sie die Taste Enter, um den
   Editor zu verlassen.

     --------------------------------------------------------------

    2.10.6.2. NFS-Client einrichten

   Mit einem NFS-Client ko:nnen Sie auf NFS-Server zugreifen.

                        User Confirmation Requested
  Do you want to configure this machine as an NFS client?

                               Yes   [ No ]

   Wa:hlen Sie entweder [ Yes ] oder [ No ] aus und dru:cken Sie
   Enter.

     --------------------------------------------------------------

  2.10.7. Die Systemkonsole einrichten

   Sie ko:nnen verschiedene Merkmale der Systemkonsole anpassen.

                       User Confirmation Requested
        Would you like to customize your system console settings?

                               [ Yes ]  No

   Wenn Sie die Merkmale der Systemkonsole anpassen wollen, wa:hlen
   Sie [ Yes ] aus und dru:cken Sie die Taste Enter.

   Abbildung 2-34. Merkmale der Systemkonsole

   Oft wird ein Bildschirmschoner auf der Konsole aktiviert. Wa:len
   Sie mit den Pfeiltasten Saver aus und dru:cken Sie die Taste
   Enter.

   Abbildung 2-35. Bildschirmschoner auswa:hlen

   Wa:hlen Sie den gewu:nschten Bildschirmschoner mit den Pfeiltasten
   aus und dru:cken Sie Enter. Das Konfigurationsmenu: der
   Systemkonsole erscheint wieder.

   In der Voreinstellung wird der Bildschirmschoner nach 300 Sekunden
   aktiviert. Um diese Zeitspanne zu a:ndern, wa:hlen Sie wieder
   Saver aus. Mit den Pfeiltasten wa:hlen Sie dann Timeout aus und
   dru:cken Enter. Es erscheint ein Eingabefenster:

   Abbildung 2-36. Den Bildschirmschoner einstellen

   A:ndern Sie die Zeitspanne und wa:hlen Sie [ OK ] aus. Mit Enter
   kehren Sie in das Konfigurationsmenu: der Systemkonsole zuru:ck.

   Abbildung 2-37. Die Konfiguration der Systemkonsole verlassen

   Um die Nacharbeiten fortzufu:hren, wa:hlen Sie Exit aus und
   dru:cken Sie Enter.

     --------------------------------------------------------------

  2.10.8. Die Zeitzone einstellen

   Wenn Sie die Zeitzone richtig einstellen, kann Ihr Rechner
   automatisch regional bedingte Zeitumstellungen ausfu:hren und
   andere von der Zeitzone abha:ngige Funktionen handhaben.

   Das folgende Beispiel gilt fu:r den Osten der USA. Ihre Auswahl
   ha:ngt vom geographischen Standort Ihres Rechners ab.

                       User Confirmation Requested
           Would you like to set this machine's time zone now?

                             [ Yes ]   No

   Um die Zeitzone einzustellen, wa:hlen Sie [ Yes ] und dru:cken
   Enter.

                        User Confirmation Requested
  Is this machine's CMOS clock set to UTC? If it is set to local time
  or you don't know, please choose NO here!

                               Yes   [ No ]

   Je nachdem ob die Systemzeit die Zeitzone UTC verwendet, wa:hlen
   Sie [ Yes ] oder [ No ] aus. Besta:tigen Sie die Auswahl mit der
   Taste Enter.

   Abbildung 2-38. Das Gebiet auswa:hlen

   Wa:hlen Sie mit den Pfeiltasten das richtige Gebiet aus und
   dru:cken Sie Enter.

   Abbildung 2-39. Das Land auswa:hlen

   Wa:hlen Sie mit den Pfeiltasten das richtige Land aus und dru:cken
   Sie Enter.

   Abbildung 2-40. Die Zeitzone auswa:hlen

   Wa:hlen Sie mit den Pfeiltasten die richtige Zeitzone aus dru:cken
   Sie Enter.

                             Confirmation
             Does the abbreviation 'EDT' look reasonable?

                             [ Yes ]   No

   Wenn die angezeigte Abku:rzung der Zeitzone richtig ist,
   besta:tigen Sie diese mit der Taste Enter.

     --------------------------------------------------------------

  2.10.9. Linux-Kompatibilita:t

     Anmerkung: Die folgenden Anweisungen sind nur fu:r FreeBSD 7.X
     gu:ltig. Installieren Sie eine FreeBSD 8.X-Version, wird der
     folgende Bildschirm nicht angezeigt.

                       User Confirmation Requested
           Would you like to enable Linux binary compatibility?

                             [ Yes ]   No

   Wenn Sie [ Yes ] auswa:hlen und Enter dru:cken, ko:nnen Sie
   Linux-Software auf FreeBSD laufen lassen. Spa:ter wird dazu die
   notwendige Software installiert.

   Wenn Sie u:ber FTP installieren, mu:ssen Sie mit dem Internet
   verbunden sein. Einige FTP-Server bieten nicht alle verfu:gbare
   Software an. Es kann sein, dass die no:tige Software fu:r die
   Linux-Kompatibilita:t nicht installiert werden kann, dies ko:nnen
   Sie spa:ter jedoch nachholen.

     --------------------------------------------------------------

  2.10.10. Die Maus konfigurieren

   Mit einer 3-Tasten-Maus ko:nnen Sie Texte auf der Konsole und in
   Programmen markieren und einfu:gen (cut and paste). Wenn Sie eine
   2-Tasten-Maus besitzen, ko:nnen Sie eine 3-Tasten-Maus emulieren.
   Lesen Sie dazu nach der Installation die Hilfeseite moused(8). Das
   folgende Beispiel zeigt die Konfiguration einer nicht-USB-Maus
   (PS/2 oder serielle Maus):

                       User Confirmation Requested
          Does this system have a PS/2, serial, or bus mouse?

                             [ Yes ]    No

   Wa:hlen Sie [ Yes ] fu:r eine PS/2-, eine serielle oder eine
   Bus-Maus. Haben Sie hingegen eine USB-Maus, wa:hlen Sie [ No ].
   Danach dru:cken Sie Enter.

   Abbildung 2-41. Das Mausprotokoll festlegen

   Markieren Sie mit den Pfeiltasten Type und dru:cken Sie press
   Enter.

   Abbildung 2-42. Das Mausprotokoll festlegen

   Im Beispiel wurde eine PS/2-Maus verwendet, sodass die Vorgabe
   Auto passend war. Sie ko:nnen das Protokoll mit den Pfeiltasten
   a:ndern. Stellen Sie sicher, dass [ OK ] aktiviert ist und
   verlassen Sie das Menu: mit der Taste Enter.

   Abbildung 2-43. Den Mausport einstellen

   Wa:hlen Sie mit den Pfeiltasten Port und dru:cken Sie die Taste
   Enter.

   Abbildung 2-44. Den Mausport einstellen

   Im Beispiel wurde eine PS/2-Maus verwendet, sodass die Vorgabe
   PS/2 richtig war. Sie ko:nnen den Port mit den Pfeiltasten
   a:ndern. Besta:tigen Sie die Auswahl mit der Taste Enter.

   Abbildung 2-45. Den Mouse-Daemon aktivieren

   Wa:hlen Sie nun mit den Pfeiltasten Enable aus und dru:cken Sie
   die Taste Enter, um den Mouse-Daemon zu aktivieren und zu testen.

   Abbildung 2-46. Den Mouse-Daemon testen

   Bewegen Sie die Maus hin und her und pru:fen Sie, dass sich der
   Mauszeiger entsprechend bewegt. Wenn alles in Ordnung ist, wa:hlen
   Sie [ Yes ] aus und dru:cken Sie Enter. Wenn sich die Maus nicht
   richtig verha:lt, wurde sie nicht korrekt konfiguriert. Wa:hlen
   Sie in diesem Fall [ No ] und versuchen Sie, die Einstellungen zu
   korrigieren.

   Um mit den Nacharbeiten fortzufahren, wa:hlen Sie mit den
   Pfeiltasten Exit aus und dru:cken Sie Enter.

     --------------------------------------------------------------

  2.10.11. Pakete installieren

   Pakete (packages) sind schon u:bersetzte Programme und sind ein
   zweckma:ssiger Weg, Programme zu installieren.

   Beispielhaft wird im Folgenden die Installation eines Paketes
   gezeigt. In diesem Schritt ko:nnen auch weitere Pakete installiert
   werden. Nach der Installation ko:nnen Sie mit sysinstall
   zusa:tzliche Pakete installieren.

                      User Confirmation Requested
  The FreeBSD package collection is a collection of hundreds of
  ready-to-run applications, from text editors to games to WEB servers
  and more. Would you like to browse the collection now?

                             [ Yes ]   No

   Nachdem Sie [ Yes ] ausgewa:hlt und Enter gedru:ckt haben,
   gelangen Sie in die Paketauswahl:

   Abbildung 2-47. Die Paketkategorie aussuchen

   Es stehen nur die Pakete zur Auswahl, die sich auf dem momentanen
   Installationsmedium befinden.

   Wenn Sie All auswa:hlen, werden alle Pakete angezeigt. Sie ko:nnen
   die Anzeige auf die Pakete einer Kategorie beschra:nken. Wa:hlen
   Sie mit den Pfeiltasten die Kategorie aus und dru:cken Sie die
   Taste Enter.

   Ein Menu: mit allen Paketen der ausgewa:hlten Kategorie erscheint:

   Abbildung 2-48. Pakete auswa:hlen

   Im gezeigten Bildschirm ist das Paket bash ausgewa:hlt. Sie
   ko:nnen weitere Pakete auswa:hlen, indem Sie die Pakete mit den
   Pfeiltasten markieren und die Taste Space dru:cken. In der unteren
   linken Ecke des Bildschirms wird eine Kurzbeschreibung des
   ausgewa:hlten Pakets angezeigt.

   Die Taste Tab wechselt zwischen dem zuletzt ausgesuchten Paket,
   [ OK ] und [ Cancel ].

   Wenn Sie die zu installierenden Pakete ausgewa:hlt haben, dru:cken
   Sie einmal Tab, um [ OK ] zu markieren. Dru:cken Sie dann Enter,
   um wieder in die Paketauswahl zu gelangen.

   Die rechte und die linke Pfeiltaste wechseln ebenfalls zwischen
   [ OK ] und [ Cancel ]. Mit diesen Tasten ko:nnen Sie auch [ OK ]
   auswa:hlen und dann mit Enter zur Paketauswahl zuru:ckkehren.

   Abbildung 2-49. Pakete installieren

   Benutzen Sie die Taste Tab und die Pfeiltasten um [ Install ]
   auszuwa:hlen. Dru:cken Sie anschliessend die Taste Enter. Sie
   mu:ssen jetzt die Installation der Pakete besta:tigen:

   Abbildung 2-50. Paketinstallation besta:tigen

   Die Paketinstallation wird gestartet, wenn Sie [ OK ] auswa:hlen
   und Enter dru:cken. Den Verlauf der Installation ko:nnen Sie
   anhand der angezeigten Meldungen verfolgen; achten Sie dabei auf
   Fehlermeldungen.

   Nach der Paketinstallation ko:nnen Sie die Nacharbeiten
   fortsetzen. Wenn Sie keine Pakete ausgewa:hlt haben und die
   Nacharbeiten fortsetzen mo:chten, wa:hlen Sie trotzdem [ Install ]
   aus.

     --------------------------------------------------------------

  2.10.12. Benutzer und Gruppen anlegen

   Wa:hrend der Installation sollten Sie mindestens ein Benutzerkonto
   anlegen, sodass Sie das System ohne das Konto root benutzen
   ko:nnen. Normalerweise ist die Root-Partition recht klein und
   la:uft schnell voll, wenn Sie Anwendungen unter dem root-Konto
   laufen lassen. Vor der gro:ssten Gefahr warnt der nachstehende
   Hinweis:

                      User Confirmation Requested
  Would you like to add any initial user accounts to the system? Adding
  at least one account for yourself at this stage is suggested since
  working as the "root" user is dangerous (it is easy to do things which
  adversely affect the entire system).

                             [ Yes ]   No

   Der Bildschirm auf Deutsch:

                       Besta:tigung erforderlich
  Wollen Sie Benutzerkonten anlegen?  Wir empfehlen, mindestens
  ein Konto fu:r sich selbst anzulegen, da es gefa:hrlich
  ist, unter "root" zu arbeiten (es ist leicht, Befehle einzugeben,
  die das System nachhaltig beeintra:chtigen).

                             [ Yes ]   No

   Um ein Benutzerkonto anzulegen, wa:hlen Sie [ Yes ] aus und
   dru:cken Enter.

   Abbildung 2-51. Benutzerkonto auswa:hlen

   Markieren Sie User mit den Pfeiltasten und dru:cken Sie die Taste
   Enter.

   Abbildung 2-52. Benutzerkonto anlegen

   Wa:hlen Sie die Felder zum Ausfu:llen mit der Taste Tab aus. Zur
   Hilfe werden die nachstehenden Beschreibungen werden im unteren
   Teil des Bildschirms angezeigt:

   Login ID

           Der Name des Benutzerkontos (verpflichtend).

   UID

           Die numerische ID dieses Kontos. Wenn Sie das Feld leer
           lassen, wird eine ID automatisch zugeteilt.

   Group

           Die diesem Konto zugeordnete Login-Gruppe. Wenn Sie das
           Feld leer lassen, wird automatisch eine Gruppe zugeteilt.

   Password

           Das Passwort des Benutzerkontos. Fu:llen Sie dieses Feld
           sehr sorgfa:tig aus.

   Full name

           Der vollsta:ndige Name des Benutzers (Kommentarfeld).

   Member groups

           Die Gruppen, in denen dieses Konto Mitglied ist (das Konto
           erha:lt Zugriffsrechte auf Dateien dieser Gruppe).

   Home directory

           Das Heimatverzeichnis des Benutzerkontos. Wenn Sie das
           Feld leer lassen, wird das Verzeichnis automatisch
           festgelegt.

   Login shell

           Die Login-Shell des Kontos. Wenn Sie das Feld leer lassen,
           wird /bin/sh als Login-Shell festgesetzt.

   Im Beispiel wurde die Login-Shell von /bin/sh zu der vorher
   installierten /usr/local/bin/bash gea:ndert. Tragen Sie keine
   Shell ein, die nicht existiert, da sich sonst nicht anmelden
   ko:nnen. In der BSD-Welt wird ha:ufig die C-Shell benutzt, die Sie
   mit /bin/tcsh angeben ko:nnen.

   Damit ein Wechsel auf den Superuser root mo:glich ist, wurde dem
   Benutzerkonto die Gruppe wheel zugeordnet.

   Wenn Sie zufrieden sind, dru:cken Sie [ OK ]. Es erscheint wieder
   das Benutzer-Menu::

   Abbildung 2-53. Benutzermenu: verlassen

   Weitere Gruppen ko:nnen, wenn Sie die Anforderungen schon kennen,
   zu diesem Zeitpunkt angelegt werden. Nach der Installation ko:nnen
   Sie Gruppen mit dem Werkzeug sysinstall anlegen.

   Wenn Sie alle Benutzer angelegt haben, wa:hlen Sie mit den
   Pfeiltasten Exit aus und dru:cken Sie die Taste Enter.

     --------------------------------------------------------------

  2.10.13. Das root-Passwort festlegen

                         Message
  Now you must set the system manager's password.
  This is the password you'll use to log in as "root".

                          [ OK ]

                [ Press enter or space ]

   Um das root-Passwort festzulegen, dru:cken Sie die Taste Enter.

   Sie mu:ssen das Passwort zweimal eingeben. Stellen Sie sicher,
   dass Sie das Passwort nicht vergessen. Beachten Sie, dass bei der
   Eingabe das Passwort weder ausgegeben wird noch Sterne angezeigt
   werden.

 New password :
 Retype new password :

   Nach der erfolgreichen Eingabe des Passworts kann die Installation
   fortgesetzt werden.

     --------------------------------------------------------------

  2.10.14. Die Installation beenden

   Wenn Sie noch weitere Netzwerkkarten konfigurieren oder weitere
   Einstellungen vornehmen wollen, ko:nnen Sie das jetzt tun. Sie
   ko:nnen die Einstellungen auch nach der Installation mit
   sysinstall vornehmen.

                      User Confirmation Requested
  Visit the general configuration menu for a chance to set any last
  options?

                               Yes   [ No ]

   Um in das Hauptmenu: zuru:ckzukehren, wa:hlen Sie mit den
   Pfeiltasten [ No ] aus und dru:cken Sie Enter.

   Abbildung 2-54. Die Installation beenden

   Wa:hlen Sie mit den Pfeiltasten [X Exit Install] aus und dru:cken
   Sie die Taste Enter. Sie mu:ssen das Beenden der Installation
   besta:tigen:

                      User Confirmation Requested
  Are you sure you wish to exit? The system will reboot.

                             [ Yes ]   No

   Wa:hlen Sie [ Yes ]. Wenn Sie von einer CD-ROM gestartet haben,
   erhalten Sie die folgende Meldung, die Sie daran erinnert, die
   CD-ROM aus dem Laufwerk zu entfernen:

                     Message
 Be sure to remove the media from the drive.

                     [ OK ]
            [ Press enter or space ]

   Das CD-Laufwerk ist bis zum Neustart des Systems verriegelt.
   Entfernen Sie die CD zu:gig, wenn der Rechner startet.

   Achten Sie beim Neustart des Systems auf eventuell auftauchende
   Fehlermeldungen (lesen Sie Abschnitt 2.10.16 fu:r weitere
   Informationen).

     --------------------------------------------------------------

  2.10.15. Weitere Netzwerkdienste einrichten

   Beigetragen von Tom Rhodes.

   Anfa:nger ohne Vorwissen finden das Einrichten von
   Netzwerkdiensten oft deprimierend. Netzwerke und das Internet sind
   fu:r moderne Betriebssysteme von entscheidender Bedeutung. Es ist
   daher wichtig, die Netzwerkfunktionen von FreeBSD zu kennen. Die
   von FreeBSD angebotenen Netzwerkdienste ko:nnen Sie wa:hrend der
   Installation kennen lernen.

   Netzwerkdienste sind Programme, die Eingaben aus dem Netzwerk
   entgegennehmen. Es wird grosse Mu:he darauf verwendet, dass diese
   Programme keinen Schaden verursachen. Leider ko:nnen auch
   Programmierern Fehler unterlaufen und es gibt Fa:lle, in denen
   Fehler in Netzwerkdiensten von Angreifern ausgenutzt wurden. Es
   ist daher wichtig, dass Sie nur Dienste aktivieren, die Sie
   beno:tigen. Im Zweifallsfall sollten Sie einen Dienst solange
   nicht aktivieren, bis Sie herausfinden, dass Sie den Dienst
   beno:tigen. Einen Dienst ko:nnen Sie spa:ter immer noch mit
   sysinstall oder in der Datei /etc/rc.conf aktivieren.

   Wa:hlen Sie den Menu:punkt Networking und es erscheint ein Menu:
   wie das nachstehende:

   Abbildung 2-55. Netzwerkdienste - obere Ha:lfte

   Die erste Option, Interfaces, wurde schon in Abschnitt 2.10.1
   konfiguriert. Sie ko:nnen daher diesen Punkt u:berspringen.

   Der Punkt AMD aktiviert einen Dienst, der automatisch Dateisysteme
   einha:ngt. Normalerweise wird der Dienst zusammen mit dem
   NFS-Protokoll (siehe unten) verwendet, um automatisch entfernte
   Dateisysteme einzuha:ngen. Dieser Menu:punkt erfordert keine
   weitere Konfiguration.

   Der na:chste Menu:punkt ist AMD Flags. Wenn Sie den Punkt
   auswa:hlen, erscheint ein Fenster, in dem Sie AMD-spezifische
   Optionen eingeben ko:nnen. Die nachstehenden Optionen sind schon
   vorgegeben:

 -a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map

   Die Option -a legt das Verzeichnis fest (hier /.amd_mnt), unter
   dem Dateisysteme eingehangen werden. Die Option -l legt die
   Protokolldatei fest. Wenn syslogd verwendet wird, werden alle
   Meldungen an den Daemon syslogd gesendet. Das Verzeichnis /host
   dient zum Zugriff auf exportierte Verzeichnisse von entfernten
   Rechnern, das Verzeichnis /net dient zum Zugriff auf exportierte
   Verzeichnisse von entfernten IP-Adressen. Die Datei /etc/amd.map
   entha:lt die Einstellungen fu:r von AMD verwaltete Dateisysteme.

   Die Auswahl Anon FTP erlaubt Anonymous-FTP-Verbindungen. Wa:hlen
   Sie diese Option, wenn Sie einen Anonymous-FTP-Server einrichten
   wollen. Seien Sie sich u:ber die Sicherheitsrisiken bewusst, wenn
   Sie Anonymous-FTP erlauben. Die Sicherheitsrisiken und die
   Konfiguration von Anonymous-FTP werden in einem gesonderten
   Fenster erkla:rt, das aufgeht, wenn Sie diese Option auswa:hlen.

   Der Menu:punkt Gateway konfiguriert das System, wie vorher
   erla:utert, als Gateway. Wenn Sie wa:hrend der Installation den
   Rechner aus Versehen als Gateway konfiguriert haben, ko:nnen Sie
   dies hier wieder ru:ckga:ngig machen.

   Der Menu:punkt Inetd konfiguriert, wie schon oben besprochen, den
   Daemon inetd(8).

   Die Auswahl Mail konfiguriert den Mail Transfer Agent (MTA) des
   Systems. Wenn Sie diesen Punkt auswa:hlen, erscheint das folgende
   Menu::

   Abbildung 2-56. Den MTA festlegen

   In diesem Menu: wa:hlen Sie aus, welcher MTA installiert und
   benutzt wird. Ein MTA ist ein Mail-Server, der E-Mails an lokale
   Empfa:nger oder an Empfa:nger im Internet ausliefert.

   Die Auswahl Sendmail installiert das verbreitete sendmail (in
   FreeBSD die Voreinstellung). Die Auswahl Sendmail local verwendet
   sendmail als MTA, deaktiviert aber den Empfang von E-Mails aus dem
   Internet. Postfix und Exim sind a:hnlich wie Sendmail. Beide
   Programme liefern E-Mails aus und einige Anwender verwenden lieber
   eines der beiden Programme als MTA.

   Nachdem Sie einen MTA ausgewa:hlt haben (oder beschlossen haben,
   keinen MTA zu benutzen), erscheint wieder das Menu:
   Netzwerkdienste. Der na:chste Menu:punkt ist NFS client.

   Die Auswahl NFS client erlaubt es dem System, mit einem NFS-Server
   zu kommunizieren. Ein NFS-Server stellt mithilfe des
   NFS-Protokolls Dateisysteme fu:r andere Systeme auf dem Netzwerk
   bereit. Wenn der Rechner alleine fu:r sich steht, ko:nnen Sie
   diesen Menu:punkt auslassen. Wahrscheinlich mu:ssen Sie noch
   weitere Einstellungen vornehmen; der Abschnitt 30.3 beschreibt die
   Einstellungen fu:r NFS-Server und NFS-Clients.

   Der Menu:punkt NFS server richtet einen NFS-Server auf dem Rechner
   ein. Durch die Auswahl dieses Punktes werden die fu:r
   Remote-Procedure-Call (RPC) beno:tigten Dienste gestartet. Mit RPC
   werden Routinen auf entfernten Rechnern aufgerufen.

   Der na:chste Punkt, Ntpdate, konfiguriert die Zeitsynchronisation.
   Wenn Sie diesen Punkt auswa:hlen, erscheint das folgende Menu::

   Abbildung 2-57. Ntpdate konfigurieren

   Wa:hlen Sie aus diesem Menu: einen nahe liegenden Server aus. Die
   Zeitsynchronisation mit einem nahe liegenden Server ist, wegen der
   geringeren Latenzzeit, genauer als die Synchronisation mit einem
   weiter entfernten Server.

   Der na:chste Menu:punkt ist PCNFSD. Wenn Sie diesen Punkt
   auswa:hlen, wird net/pcnfsd aus der Ports-Sammlung installiert.
   Dieses nu:tzliche Werkzeug stellt NFS-Authentifizierungsdienste
   fu:r Systeme bereit, die diese Dienste nicht anbieten
   (beispielsweise Microsofts MS-DOS).

   Um die na:chsten Menu:punkte zu sehen, mu:ssen Sie
   herunterbla:ttern:

   Abbildung 2-58. Netzwerkdienste - untere Ha:lfte

   Die Programme rpcbind(8), rpc.statd(8) und rpc.lockd(8) werden
   fu:r Remote-Procedure-Calls (RPC) benutzt. Das Programm rpcbind
   verwaltet die Kommunikation zwischen NFS-Servern und NFS-Clients
   und ist fu:r den Betrieb eines NFS-Servers erforderlich. Der
   Daemon rpc.statd ha:lt zusammen mit dem Daemon rpc.statd des
   entfernten Rechners den Status der Verbindung. Der Status einer
   Verbindung wird normalerweise in der Datei /var/db/statd.status
   festgehalten. Der na:chste Menu:punkt ist rpc.lockd, der
   Dateisperren (file locks) bereitstellt. rpc.lockd wird
   normalerweise zusammen mit dem Daemon rpc.statd benutzt, der
   festha:lt welche Rechner Sperren anfordern und wie oft Sperren
   angefordert werden. Beide Dienste sind wunderbar zur Fehlersuche
   geeignet, doch werden Sie zum Betrieb von NFS-Servern und
   NFS-Clients nicht beno:tigt.

   Der na:chste Punkt in der Auswahl ist Routed, der Routing-Daemon.
   Das Programm routed(8) verwaltet die Routing-Tabelle, entdeckt
   Multicast-Router und stellt die Routing-Tabelle auf Anfrage jedem
   mit dem Netz verbundenen Rechner zur Verfu:gung. Der Daemon wird
   hauptsa:chlich auf Gateways eines lokalen Netzes eingesetzt. Wenn
   Sie den Punkt auswa:hlen mu:ssen Sie den Ort des Programms
   angeben. Die Vorgabe ko:nnen Sie mit der Taste Enter u:bernehmen.
   Anschliessend werden Sie nach den Kommandozeilenoptionen fu:r
   routed gefragt. Vorgegeben ist die Option -q.

   Der na:chste Menu:punkt ist Rwhod. Wenn Sie diesen Punkt
   auswa:hlen, wird wa:hrend des Systemstarts der Daemon rwhod(8)
   gestartet. Das Kommando rwhod schickt Broadcast-Meldungen in das
   Netz oder empfa:ngt diese im Consumer-Mode. Die Funktion der
   Werkzeuge wird in den Hilfeseiten ruptime(1) und rwho(1)
   beschrieben.

   Der vorletzte Menu:punkt aktiviert den Daemon sshd(8), den OpenSSH
   Secure-Shell-Server. Wo mo:glich sollte SSH anstelle von telnet
   und FTP eingesetzt werden. Der Secure-Shell-Server erstellt
   verschlu:sselte und daher sichere Verbindungen zwischen zwei
   Rechnern.

   TCP Extensions ist der letzte Menu:punkt. Diese Auswahl aktiviert
   die TCP-Erweiterungen aus RFC 1323 und RFC 1644. Obwohl dies auf
   vielen Rechnern die Verbindungsgeschwindigkeit erho:ht, ko:nnen
   durch diese Option auch Verbindungsabbru:che auftreten. Auf
   Servern sollte diese Option nicht aktiviert werden, auf
   Einzelmaschinen kann diese Option nu:tzlich sein.

   Wenn Sie die Netzwerkdienste eingerichtet haben, bla:ttern Sie zum
   Menu:punkt Exit hoch, um die Nacharbeiten fortzusetzen oder
   verlassen Sie sysinstall, indem Sie zweimal X Exit und danach [X
   Exit Install] wa:hlen.

     --------------------------------------------------------------

  2.10.16. FreeBSD starten

    2.10.16.1. Start von FreeBSD auf FreeBSD/i386

   Wenn alles funktioniert hat, laufen viele Meldungen u:ber den
   Bildschirm und schliesslich erscheint ein Anmeldeprompt. Um sich
   die Meldungen anzusehen. dru:cken Sie die Taste Scroll-Lock. Sie
   ko:nnen dann mit den Tasten PgUp und PgDn bla:ttern. Wenn Sie
   erneut Scroll-Lock dru:cken, kehren Sie zum Anmeldeprompt zuru:ck.

   Es kann sein, dass der Puffer zu klein ist, um alle Meldungen
   anzuzeigen. Nachdem Sie sich angemeldet haben, ko:nnen Sie sich
   mit dem Kommando dmesg alle Meldungen ansehen.

   Melden Sie sich bitte mit dem Benutzerkonto an (rpratt im
   Beispiel), das Sie wa:hrend der Installation eingerichtet haben.
   Arbeiten Sie mit root nur dann wenn es erforderlich ist.

   Die nachfolgende Abbildung zeigt typische Startmeldungen
   (Versionsangaben entfernt):

 Copyright (c) 1992-2002 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.

 Timecounter "i8254"  frequency 1193182 Hz
 CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU)
   Origin = "AuthenticAMD"  Id = 0x580  Stepping = 0
   Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
   AMD Features=0x80000800<SYSCALL,3DNow!>
 real memory  = 268435456 (262144K bytes)
 config> di sn0
 config> di lnc0
 config> di le0
 config> di ie0
 config> di fe0
 config> di cs0
 config> di bt0
 config> di aic0
 config> di aha0
 config> di adv0
 config> q
 avail memory = 256311296 (250304K bytes)
 Preloaded elf kernel "kernel" at 0xc0491000.
 Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c.
 md0: Malloc disk
 Using $PIR table, 4 entries at 0xc00fde60
 npx0: <math processor> on motherboard
 npx0: INT 16 interface
 pcib0: <Host to PCI bridge> on motherboard
 pci0: <PCI bus> on pcib0
 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0
 pci1: <PCI bus> on pcib1
 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11
 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
 isa0: <ISA bus> on isab0
 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0
 ata0: at 0x1f0 irq 14 on atapci0
 ata1: at 0x170 irq 15 on atapci0
 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0
 usb0: <VIA 83C572 USB controller> on uhci0
 usb0: USB revision 1.0
 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
 uhub0: 2 ports with 2 removable, self powered
 chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0
 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at
 device 10.0 on pci0
 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit)
 isa0: too many dependant configs (8)
 isa0: unexpected small tag 14
 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
 fdc0: FIFO enabled, 8 bytes threshold
 fd0: <1440-KB 3.5'' drive> on fdc0 drive 0
 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0
 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
 kbd0 at atkbd0
 psm0: <PS/2 Mouse> irq 12 on atkbdc0
 psm0: model Generic PS/2 mouse, device ID 0
 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
 sc0: <System console> at flags 0x1 on isa0
 sc0: VGA <16 virtual consoles, flags=0x300>
 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
 sio0: type 16550A
 sio1 at port 0x2f8-0x2ff irq 3 on isa0
 sio1: type 16550A
 ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
 ppc0: FIFO with 16/16/15 bytes threshold
 ppbus0: IEEE1284 device found /NIBBLE
 Probing for PnP devices on ppbus0:
 plip0: <PLIP network interface> on ppbus0
 lpt0: <Printer> on ppbus0
 lpt0: Interrupt-driven port
 ppi0: <Parallel I/O> on ppbus0
 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33
 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33
 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4
 Mounting root from ufs:/dev/ad0s1a
 swapon: adding /dev/ad0s1b as swap device
 Automatic boot in progress...
 /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS
 /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation)
 /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS
 /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation)
 /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS
 /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation)
 /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS
 /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)
 Doing initial network setup: hostname.
 ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
         inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1
         ether 52:54:05:de:73:1b
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
         inet6 ::1 prefixlen 128
         inet 127.0.0.1 netmask 0xff000000
 Additional routing options: IP gateway=YES TCP keepalive=YES
 routing daemons:.
 additional daemons: syslogd.
 Doing additional network setup:.
 Starting final network daemons: creating ssh RSA host key
 Generating public/private rsa1 key pair.
 Your identification has been saved in /etc/ssh/ssh_host_key.
 Your public key has been saved in /etc/ssh/ssh_host_key.pub.
 The key fingerprint is:
 cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com
  creating ssh DSA host key
 Generating public/private dsa key pair.
 Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
 Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
 The key fingerprint is:
 f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com.
 setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib
 /usr/local/lib
 a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
 starting standard daemons: inetd cron sshd usbd sendmail.
 Initial rc.i386 initialization:.
 rc.i386 configuring syscons: blank_time screensaver moused.
 Additional ABI support: linux.
 Local package initialization:.
 Additional TCP options:.

 FreeBSD/i386 (k6-2.example.com) (ttyv0)

 login: rpratt
 Password:

   Das Erzeugen der RSA- und DSA-Schlu:ssel kann auf langsamen
   Maschinen lange dauern. Die Schlu:ssel werden nur beim ersten
   Neustart erzeugt, spa:tere Neustarts sind schneller.

   Wenn der X-Server konfiguriert ist und eine Oberfla:che
   ausgewa:hlt wurde, ko:nnen Sie X mit dem Kommando startx starten.

     --------------------------------------------------------------

  2.10.17. FreeBSD herunterfahren

   Es ist wichtig, dass Sie das Betriebssystem richtig
   herunterfahren. Wechseln Sie zuna:chst mit dem Befehl su zum
   Superuser; Sie mu:ssen dazu das root-Passwort eingeben. Der
   Wechsel auf den Superuser gelingt nur, wenn der Benutzer ein
   Mitglied der Gruppe wheel ist. Ansonsten melden Sie sich direkt
   als Benutzer root an. Der Befehl shutdown -h now ha:lt das System
   an.

 The operating system has halted.
 Please press any key to reboot.

   Sie ko:nnen den Rechner ausschalten, nachdem die Meldung Please
   press any key to reboot erschienen ist. Wenn Sie stattdessen eine
   Taste dru:cken, startet das System erneut.

   Sie ko:nnen das System auch mit der Tastenkombination Ctrl+Alt+Del
   neu starten. Sie sollten diese Tastenkombination allerdings nicht
   gewohnheitsma:ssig benutzen.

     --------------------------------------------------------------

2.11. Fehlersuche

   Dieser Abschnitt behandelt ha:ufig auftretende
   Installationsprobleme. Weiterhin entha:lt er Hinweise, wie FreeBSD
   parallel mit MS-DOS oder Windows betrieben wird.

     --------------------------------------------------------------

  2.11.1. Wenn etwas schief geht

   Aufgrund der Beschra:nkungen der PC-Architektur ist eine
   zuverla:ssige Gera:teerkennung nicht mo:glich. Falls die
   Gera:teerkennung fehlschla:gt, ko:nnen Sie einige Dinge versuchen.

   Sehen Sie in den Hardware Notes Ihrer FreeBSD-Version nach, ob
   Ihre Hardware unterstu:tzt wird.

   Wenn Ihre Hardware unterstu:tzt wird und sich der
   Installationsprozess aufha:ngt oder sonstige Probleme auftauchen,
   mu:ssen Sie einen angepassten Kernel erstellen, da Ihre Hardware
   in diesem Fall nicht vom GENERIC-Kernel unterstu:tzt wird. Der
   Kernel auf den Startdisketten verwendet die Werkseinstellungen
   fu:r IRQs, IO-Adressen und DMA-Kana:le. Gea:nderte Einstellungen
   mu:ssen Sie daher in der Kernelkonfigurationsdatei angeben, damit
   FreeBSD diese Gera:te korrekt erkennt.

   Es ist auch mo:glich, dass die Suche nach einem nicht vorhandenen
   Gera:t dazu fu:hrt, dass die Erkennung eines vorhandenen Gera:ts
   fehlschla:gt. In diesem Fall sollten Sie nicht vorhandene Gera:te,
   deren Einstellungen sich mit vorhandenen Gera:ten u:berschneiden,
   deaktivieren.

     Anmerkung: Einige Installationsprobleme ko:nnen Sie vermeiden
     oder umgehen, indem Sie die Firmware der Hardware, insbesondere
     die Firmware der Systemplatine, aktualisieren. Die Firmware der
     Systemplatine ist das BIOS. Die meisten Hardware-Hersteller
     bieten aktuelle Firmware und Anleitungen zur Aktualisierung der
     Firmware auf dem Internet an.

     Viele Hersteller raten davon ab, ohne guten Grund das BIOS zu
     aktualisieren. Die Aktualisierung kann fehlschlagen und den
     BIOS-Chip dauerhaft bescha:digen.

     --------------------------------------------------------------

  2.11.2. MS-DOS(R)- und Windows-Dateisysteme benutzen

   Mit Double Space(TM) komprimierte Dateisysteme werden zurzeit von
   FreeBSD nicht unterstu:tzt. Damit FreeBSD auf die Daten zugreifen
   kann, mu:ssen Sie das Dateisystem daher dekomprimieren. Rufen Sie
   dazu den Compression Agent aus dem Menu: Start > Programs > System
   Tools auf.

   FreeBSD unterstu:tzt MS-DOS-Dateisysteme (manchmal auch als
   FAT-Dateisysteme bezeichnet). Der Befehl mount_msdosfs(8) bindet
   diese Dateisysteme in den FreeBSD-Verzeichnisbaum ein und erlaubt
   dadurch den Zugriff auf die darin enthaltenen Daten.
   mount_msdosfs(8) wird normalerweise nicht direkt, sondern u:ber
   einen Eintrag in der Datei /etc/fstab oder durch den Aufruf des
   Befehls mount(8) (in Kombination mit den korrekten Parametern).

   Ein typischer Eintrag in /etc/fstab sieht so aus:

 /dev/ad0sN  /dos  msdosfs rw  0   0

     Anmerkung: Das Verzeichnis /dos muss bereits vorhanden sein,
     damit dieser Eintrag funktioniert. Weitere Informationen zu den
     Einstellungen in der Datei /etc/fstab finden sich in der
     Manualpage fstab(5).

   Ein typischer Aufruf von mount(8) zum Einha:ngen eines
   MS-DOS-Dateisystems sieht so aus:

 # mount -t msdosfs /dev/ad0s1 /mnt

   Das MS-DOS-Dateisystem befindet sich hier auf der ersten Partition
   der prima:ren Platte. Dies kann bei Ihnen anders sein. Die
   Anordnung der Partitionen entnehmen Sie den Ausgaben von dmesg und
   mount.

     Anmerkung: FreeBSD numeriert Platten (genauer
     MS-DOS-Partitionen) anders als andere Betriebssysteme. Die
     Nummern von erweiterten Partitionen sind in der Regel ho:her als
     die Nummern von prima:ren Partitionen. Das Werkzeug fdisk(8)
     kann Ihnen dabei helfen, festzustellen, welche Partitionen zu
     FreeBSD und welche zu einem anderen Betriebssystem geho:ren.

   Analog werden NTFS-Partitionen mit dem Kommando mount_ntfs(8)
   eingehangen.

     --------------------------------------------------------------

  2.11.3. Fragen und Antworten zu ha:ufig auftretenden Problemen

   2.11.3.1. Mein System ha:ngt sich beim Testen der Hardware auf,
   oder es verha:lt sich seltsam wa:hrend der Installation oder das
   Diskettenlaufwerk wird nicht getestet.

   2.11.3.2. Direkt nach der Installation beginnt das System zwar zu
   booten, der Kernel wird geladen und meine Hardware getestet. Dann
   bricht der Bootvorgang aber mit der folgenden (oder einer
   a:hnlichen) Fehlermeldung ab:

   2.11.3.3. Nach der Installation beginnt das System zu booten, der
   Bootmanager zeigt im Bootmenu: aber immer nur F? an und das System
   startet nicht.

   2.11.3.4. FreeBSD erkennt meine ed(4)-Netzwerkkarte. Trotzdem
   erhalte ich weiterhein Timeout-Meldungen fu:r dieses Gera:t.

   2.11.3.5. Wenn ich sysinstall aus einen X-Terminal starte, ist die
   gelbe Schritt auf dem grauen Hintergrund nur schwer zu erkennen.
   Gibt es eine Mo:glichkeit, den Kontrast fu:r dieses Programm zu
   erho:hen?

   2.11.3.1. Mein System ha:ngt sich beim Testen der Hardware auf,
   oder es verha:lt sich seltsam wa:hrend der Installation oder das
   Diskettenlaufwerk wird nicht getestet.

   FreeBSD 5.0 und neuer machen ausgiebig Gebrauch von den
   ACPI-Systemdiensten zur Systemkonfiguration der i386-, amd64- und
   ia64-Plattformen, falls diese wa:hrend des Bootvorgangs gefunden
   werden. Leider enthalten sowohl der ACPI-Treiber als auch manche
   Motherboard- und BIOS-Implementierungen fu:r ACPI noch einige
   Fehler. Kommt es auf Ihrem System zu Problemen, ko:nnen Sie ACPI
   daher deaktivieren, indem wa:hrend des Bootvorganges den "Hint"
   hint.acpi.0.disabled aktivieren:

 set hint.acpi.0.disabled="1"

   Da diese Einstellung bei jedem Neustart verloren geht, aktivieren
   Sie sie dauerhaft, indem Sie die Zeile hint.acpi.0.disabled="1" in
   die Datei /boot/loader.conf. Weitere Informationen u:ber den
   Bootloader finden Sie in Abschnitt 13.1 des FreeBSD-Handbuchs.

   2.11.3.2. Direkt nach der Installation beginnt das System zwar zu
   booten, der Kernel wird geladen und meine Hardware getestet. Dann
   bricht der Bootvorgang aber mit der folgenden (oder einer
   a:hnlichen) Fehlermeldung ab:

 changing root device to ad1s1a panic: cannot mount root

   Was la:uft hier falsch? Was kann/muss ich tun?

   Was soll ich mit diesem
   bios_drive:interface(unit,partition)kernel_name anfangen, das mir
   die Hilfefunktion ausgibt?

   Dabei handelt es sich um ein lange bekanntes Problem, das nur dann
   auftritt, wenn es sich bei der Bootplatte nicht um die erste
   Platte im System handelt. Das BIOS numeriert die Festplatten
   anders als FreeBSD, daher ist das System manchmal nicht in der
   Lage, diese Numerierungen selbst automatisch in Einklang zu
   bringen.

   Sollte Ihre Bootplatte nicht die erste Platte im System sein,
   ko:nnen Sie FreeBSD dabei helfen, diese Platte zu finden. Es gibt
   zwei Situationen, in denen Sie FreeBSD mitteilen mu:ssen, wo sich
   das root-Dateisystem befindet. Dazu mu:ssen Sie die Nummer der
   Platte im BIOS, den Plattentyp sowie die Nummer der Platte unter
   FreeBSD angeben.

   Im ersten Fall verfu:gen Sie u:ber zwei IDE-Platten, die beide als
   Master an ihrem jeweiligen IDE-Controller konfiguriert sind.
   FreeBSD soll dabei von der zweiten Platte booten. Ihr BIOS erkennt
   die beiden Platten als "Platte 1" und "Platte 2", wa:hrend FreeBSD
   die Platten als ad0 und ad2 erkennt.

   Fu:r das BIOS befindet sich FreeBSD auf der Platte Nummer 1, der
   Typ ist ad, und FreeBSD erkennt die Platte als Platte Nummer 2.
   Daher geben Sie Folgendes ein:

 1:ad(2,a)kernel

   Beachten Sie, dass dieser Eintrag nicht notwendig ist, wenn die
   zweite Platte als Slave am prima:ren IDE-Controller konfiguriert
   ist (sondern sogar falsch wa:re).

   Die zweite Situation entsteht, wenn Sie von einer SCSI-Platte
   booten und zusa:tzlich eine oder mehrere IDE-Platten installiert
   haben. In diesem Fall ist die Plattennummer unter FreeBSD kleiner
   als die Plattennummer im BIOS. Verfu:gen Sie u:ber zwei
   IDE-Platten und eine SCSI-Platte, hat die SCSI-Platte im BIOS die
   Nummer 2, den Typ da, und wird von FreeBSD als Platte Nummer 0
   erkannt. In diesem Fall geben Sie daher Folgendes ein:

 2:da(0,a)kernel

   Durch diese Zeile teilen Sie FreeBSD mit, dass Sie von der
   BIOS-Platte Nummer 2 booten wollen (bei der es sich um die erste
   SCSI-Platte Ihres Systems handelt). Verfu:gen Sie nur u:ber eine
   IDE-Platte, geben Sie hingegen 1: ein.

   Nachdem Sie die korrekten Werte ermittelt haben, ko:nnen Sie die
   entsprechende Zeile in exakt der gleichen Form in die Datei
   /boot.config aufnehmen. In der Voreinstellung verwendet FreeBSD
   den Inhalt dieser Datei als Standardantwort am boot:-Prompt.

   2.11.3.3. Nach der Installation beginnt das System zu booten, der
   Bootmanager zeigt im Bootmenu: aber immer nur F? an und das System
   startet nicht.

   Sie haben bei der FreeBSD-Installation eine falsche
   Plattengeometrie angegeben. Starten Sie den Partitionseditor neu
   und geben Sie die korrekte Plattengeometrie an. Danach
   installieren Sie FreeBSD erneut (diesmal mit der korrekten
   Plattengeometrie).

   Ist es Ihnen nicht mo:glich, die korrekte Plattengeometrie
   herauszufinden, hilft Ihnen vielleicht der folgende Tipp weiter:
   Legen Sie eine kleine MS-DOS-Partition am Beginn Ihrer Bootplatte
   an und installieren Sie anschliessend FreeBSD auf diese Platte.
   Das FreeBSD-Installationsprogramm wird die MS-DOS-Partition
   erkennen und ist dadurch normalerweise in der Lage, die korrekte
   Plattenkonfiguration automatisch zu erkennen.

   Die Vorgangsweise im folgenden Tipp wird zwar nicht la:nger
   empfohlen, soll aber trotzdem dokumentiert werden:

     Wenn Sie ein reines FreeBSD-System aufsetzen wollen (als Server
     oder als Workstation) und daher nie auf Kompatibilita:lt zu
     MS-DOS, Linux oder anderen Betriebssystemen angewiesen sein
     werden, haben Sie auch die Mo:glichkeit, die komplette Platte
     (durch die Wahl von A im Partitionseditor) fu:r FreeBSD zu
     verwenden. Danach wird FreeBSD die komplette Platte vom ersten
     bis zum letzten Sektor verwenden und die tatsa:chliche
     Plattengeometrie ignorieren. Danach ist es allerdings nicht mehr
     mo:glich, ein anderes Betriebssystem auf die gleiche Platte zu
     installieren (ohne auch FreeBSD neu zu installieren).

   2.11.3.4. FreeBSD erkennt meine ed(4)-Netzwerkkarte. Trotzdem
   erhalte ich weiterhein Timeout-Meldungen fu:r dieses Gera:t.

   Ihre Karte verwendet wahrscheinlich einen anderen IRQ als den, der
   in der Datei /boot/device.hints angegeben wurde. Der ed(4)-Treiber
   verwendet in der Voreinstellung keine "Soft"-Konfiguration (also
   Werte, die durch EZSETUP unter MS-DOS eingeben wurden). Sie
   ko:nnen dies allerdings erzwingen, indem Sie die Option -1 in den
   "Hints" fu:r dieses Gera:t angeben.

   Entweder vera:ndern Sie die Jumper-Konfiguration der Karte (und,
   falls notwendig, die Kerneleinstellungen). Oder Sie geben den IRQ
   als -1 an, indem Sie hint.ed.0.irq="-1" eingeben. Dadurch wird der
   Kernel angewiesen, die "Soft"-Konfiguration zu verwenden.

   Pru:fen Sie auch, ob Ihre Karte nicht etwa IRQ 9 verwendet, da
   dieser mit IRQ 2 geteilt wird. Diese Einstellung verursacht
   ha:ufig Probleme (insbesondere dann, wenn IRQ 2 durch eine
   VGA-Grafikkarte belegt ist!). Wenn irgend mo:glich, sollten Sie
   daher IRQ 2 oder 9 nicht verwenden.

   2.11.3.5. Wenn ich sysinstall aus einen X-Terminal starte, ist die
   gelbe Schritt auf dem grauen Hintergrund nur schwer zu erkennen.
   Gibt es eine Mo:glichkeit, den Kontrast fu:r dieses Programm zu
   erho:hen?

   Haben Sie X11 bereits installiert und die von sysinstall
   verwendeten Farben bereiten Ihnen beim Lesen von Text Probleme
   (wenn Sie ein X-Terminal verwenden), sollten Sie die Zeile
   XTerm*color7: #c0c0c0 in die Datei ~/.Xdefaults aufnehmen. Dadurch
   wird der Hintergrund in einem dunkleren Grauton dargestellt.

     --------------------------------------------------------------

2.12. Anspruchsvollere Installationen

   Beigetragen von Valentino Vaschetto. Aktualisiert von Marc
   Fonvieille.

   Dieser Abschnitt beschreibt die Installation von FreeBSD in
   besonderen Situationen.

     --------------------------------------------------------------

  2.12.1. FreeBSD auf einem System ohne Monitor oder Tastatur
  installieren

   Diese Methode wird als "headless install" (kopflose Installation)
   bezeichnet, da die Maschine, auf die FreeBSD installiert werden
   soll, entweder keinen Monitor angeschlossen hat oder u:ber keine
   VGA-Karte verfu:gt. Wie kann FreeBSD dennoch installiert werden?
   Eben mithilfe einer seriellen Konsole. Im Wesentlichen ist eine
   serielle Konsole eine andere Maschine, die Ein- und Ausgaben fu:r
   eine andere Maschine bereitstellt. Um u:ber eine serielle Konsole
   zu installieren, erstellen Sie zuna:chst (wie in Abschnitt 2.3.7
   beschrieben) einen bootbaren USB-Stick oder laden Sie das passende
   CD-ISO-Abbild herunter.

   Um von diesen Medien in eine serielle Konsole booten zu ko:nnen,
   mu:ssen Sie die folgenden Schritte durchfu:hren (bei Verwendung
   einer Boot-CD kann der erste Schritt entfallen):

    1. Den USB-Stick fu:r eine serielle Konsole anpassen

       Wenn Sie ein System mit den frisch erstellten USB-Stick
       starten, la:uft der normale FreeBSD-Installationsprozess an.
       Diese Installation soll aber u:ber die serielle Konsole
       gesteuert werden. Daher mu:ssen Sie den USB-Stick mit dem
       Befehl mount(8) in den Verzeichnisbaum einha:ngen:

 # mount /dev/da0a /mnt

         Anmerkung: Passen Sie den Mountpunkt und die Gera:tedatei
         falls no:tig an Ihre Gegebenheiten an.

       Nachdem Sie den USB-Stick eingeha:ngt haben, mu:ssen Sie ihn
       rekonfigurieren, damit er in eine serielle Konsole startet.
       Dazu nehmen Sie in die Datei loader.conf des USB-Sticks eine
       Zeile auf, die die serielle Konsole als Systemkonsole
       festlegt:

 # echo 'console="comconsole"' >> /mnt/boot/loader.conf

       Damit ist Ihr USB-Stick fu:r die Installation vorbereitet. Sie
       ko:nnen ihn daher wieder aus dem Dateisystem ausha:ngen:

 # umount /mnt

       Entfernen Sie nun den USB-Stick und machen Sie direkt mit
       Schritt 3 weiter.

    2. Die Installations-CD fu:r eine serielle Konsole anpassen

       Wenn Sie von dem soeben heruntergeladenen CD-ISO-Abbild (siehe
       Abschnitt 2.13.1) starten, gelangen Sie in den normalen
       Installationsmodus von FreeBSD. Da wir aber in eine serielle
       Konsole booten wollen, muss das CD-Image extrahiert,
       modifiziert und neu erzeugt werden, bevor Sie es auf eine CD-R
       brennen.

       Entpacken Sie alle Dateien des CD-ISO-Abbilds (beispielsweise
       FreeBSD-9.0-RELEASE-i386-disc1.iso) auf dem System, auf das
       Sie das Abbild heruntergeladen haben unter Verwendung von
       tar(1):

 # mkdir /path/to/headless-iso
 # tar -C /path/to/headless-iso -pxvf FreeBSD-9.0-RELEASE-i386-disc1.iso

       Nun mu:ssen Sie das entpackte ISO-Abbild rekonfigurieren,
       damit es ku:nftig in eine serielle Konsole startet. Dazu
       nehmen Sie in die Datei loader.conf des entpackten ISO-Abbild
       eine Zeile auf, die die serielle Konsole als Systemkonsole
       festlegt:

 # echo 'console="comconsole"' >> /path/to/headless-iso/boot/loader.conf

       Damit ist der Dateibaum des entpackten ISO-Abbilds fu:r die
       Installation vorbereitet und Sie ko:nnen u:ber den Befehl
       mkisofs(8) (das Sie u:ber den Port sysutils/cdrtools
       installieren ko:nnen) ein neues CD-ISO-Abbild erzeugen:

 # mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "Headless_install" \
             -o Headless-FreeBSD-9.0-RELEASE-i386-disc1.iso /path/to/headless-iso

       Dieses rekonfigurierte ISO-Abbild brennen Sie nun mit dem
       Brennprogramm Ihrer Wahl auf eine CD-R.

    3. Das Nullmodemkabel anschliessen

       Sie mu:ssen beide Maschinen mit einem Nullmodemkabel
       verbinden. Schliessen Sie das Nullmodemkabel an die seriellen
       Schnittstellen beider Maschinen an. Sie ko:nnen kein direktes
       serielles Kabel verwenden, Nullmodemkabel besitzen gekreuzte
       Leitungen.

    4. Die Installation starten

       Sie ko:nnen die Installation jetzt starten. Sto:pseln Sie den
       vorbereiteten USB-Stick ein und starten Sie Ihren Computer.
       Alternativ starten Sie Ihren Computer und legen die
       vorbereitete Installations-CD ein.

    5. Die Verbindung mit der zur installierenden Maschine herstellen

       Mit dem Kommando cu(1) verbinden Sie sich mit der zu
       installierenden Maschine:

 # cu -l /dev/cuau0

       Unter FreeBSD 7.X verwenden Sie hingegen den folgenden Befehl:

 # cu -l /dev/cuad0

   Fertig! U:ber die cu-Sitzung ko:nnen Sie nun die zu installierende
   Maschine steuern. Der Kernel wird automatisch geladen und Sie
   ko:nnen anschliessend den Terminaltyp festlegen. Wa:hlen Sie die
   FreeBSD color console aus und fahren wie gewohnt mit der
   Installation fort.

     --------------------------------------------------------------

2.13. Eigene Installationsmedien herstellen

     Anmerkung: Im Folgenden ist mit "Installations-CD" eine CD-ROM
     oder DVD gemeint, die Sie gekauft oder selbst hergestellt haben.

   Oft mu:ssen Sie eigene Installationsmedien erzeugen. Dies ko:nnen
   physische Medien wie Ba:nder sein oder Installationsquellen sein,
   aus denen sysinstall Dateien herunterla:dt, beispielsweise ein
   lokaler FTP-Server oder eine MS-DOS-Partition.

   Beispiele:

     * Im lokalen Netzwerk befinden sich viele Maschinen, Sie
       besitzen allerdings nur eine Installations-CD. Den Inhalt der
       Installations-CD wollen Sie auf einem lokalem FTP-Server
       bereitstellen. Zur Installation wird der lokale FTP-Server
       anstelle eines Internet-Servers benutzt.

     * Sie haben eine Installations-CD, allerdings erkennt FreeBSD im
       Gegensatz zu MS-DOS/Windows das CD- oder DVD-Laufwerk nicht.
       Sie ko:nnen die Installationsdateien auf eine MS-DOS-Partition
       desselben Rechners kopieren und FreeBSD von der
       MS-DOS-Partition installieren.

     * Der Rechner, auf dem Sie FreeBSD installieren wollen, besitzt
       kein CD- oder DVD-Laufwerk. Ein anderer Rechner, zu dem eine
       serielle oder parallele Verbindung besteht, besitzt allerdings
       ein CD- oder DVD-Laufwerk.

     * Sie wollen ein Band erzeugen, mit dem Sie FreeBSD installieren
       ko:nnen.

     --------------------------------------------------------------

  2.13.1. Eine Installations-CD-ROM erzeugen

   Mit jeder Release stellt das FreeBSD-Project fu:r jede
   unterstu:tzte Architektur mindestens zwei CD-Abbilder
   ("ISO-Images") zur Verfu:gung. Wenn Sie einen CD-Brenner besitzen,
   ko:nnen Sie diese Abbilder brennen und damit FreeBSD installieren.
   Wenn Sie einen CD-Brenner besitzen und u:ber eine gute
   Internet-Verbindung verfu:gen, ist das die preiswerteste Art,
   FreeBSD zu installieren.

    1. Das richtige Abbild herunterladen

       Die ISO-Abbilder fu:r jedes Releases ko:nnen Sie von
       ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-arch/version oder
       einem nahe gelegenen Spiegel herunterladen. Ersetzen Sie arch
       und version durch passende Werte.

       Das Verzeichnis entha:lt die folgenden Abbilder:

       Tabelle 2-4. FreeBSD 7.X und 8.X ISO-Abbilder

                       Dateiname                         Inhalt         
                                                 Entha:lt alles, was    
                                                 Sie beno:tigen, um um  
                                                 den FreeBSD-Kernel zu  
                                                 laden und das          
                                                 Installationsprogramm  
                                                 zu starten. Die zu     
       FreeBSD-version-RELEASE-arch-bootonly.iso installierenden        
                                                 Dateien mu:ssen        
                                                 allerdings u:ber FTP   
                                                 oder eine andere       
                                                 geeignete Quelle       
                                                 bezogen werden, da sie 
                                                 in diesem Abbild nicht 
                                                 enthalten sind.        
                                                 Dieses DVD-Abbild      
                                                 entha:lt alle zur      
                                                 Installation von       
                                                 FreeBSD no:tigen       
                                                 Dateien, eine Auswahl  
                                                 an Paketen Dritter     
       FreeBSD-version-RELEASE-arch-dvd1.iso.gz  sowie die              
                                                 Dokumentation.         
                                                 Zusa:tzlich            
                                                 ermo:glicht es Ihnen   
                                                 dieses Abbild, einen   
                                                 "livefs"-basierten     
                                                 Rettungsmodus zu       
                                                 starten.               
                                                 Dieses Abbild kann auf 
                                                 einen USB-Stick        
                                                 geschrieben werden.    
                                                 Dieser kann danach als 
                                                 Installationsmedium    
                                                 verwendet werden (wenn 
                                                 Ihr System dies        
                                                 unterstu:tzt).         
                                                 Zusa:tzlich            
                                                 ermo:glicht es Ihnen   
       FreeBSD-version-RELEASE-arch-memstick.img dieses Abbild, einen   
                                                 "livefs"-basierten     
                                                 Rettungsmodus zu       
                                                 starten. Die           
                                                 FreeBSD-Dokumentation  
                                                 ist ebenfalls          
                                                 enthalten, aber keine  
                                                 Pakete Dritter. Dieses 
                                                 Abbild ist erst ab     
                                                 FreeBSD 8.0            
                                                 verfu:gbar.            
                                                 Dieses CD-Abbild       
                                                 entha:lt alle fu:r die 
                                                 Installation von       
                                                 FreeBSD no:tigen       
       FreeBSD-version-RELEASE-arch-disc1.iso    Dateien sowie die      
                                                 Dokumentation. Es sind 
                                                 allerdings keine       
                                                 Pakete Dritter         
                                                 enthalten.             
                                                 So viele Pakete        
                                                 Dritter, wie auf dem   
                                                 Installationsmedium    
       FreeBSD-version-RELEASE-arch-disc2.iso    Platz hatten. Dieses   
                                                 Abbild ist fu:r        
                                                 FreeBSD 8.X nicht mehr 
                                                 verfu:gbar.            
                                                 Ein weiteres Abbild    
                                                 mit so vielen Paketen  
                                                 Dritter, wie auf dem   
       FreeBSD-version-RELEASE-arch-disc3.iso    Installationsmedium    
                                                 Platz hatten. Dieses   
                                                 Abbild ist fu:r        
                                                 FreeBSD 8.X nicht mehr 
                                                 verfu:gbar.            
       version-RELEASE-arch-docs.iso             Die                    
                                                 FreeBSD-Dokumentation. 
                                                 Dieses Abbild entha:t  
                                                 einen                  
                                                 "livefs"-basierten     
       FreeBSD-version-RELEASE-arch-livefs.iso   Rettungsmodus. Eine    
                                                 Installation von       
                                                 FreeBSD ist mit diesem 
                                                 Abbild allerdings      
                                                 nicht mo:glich.        

         Anmerkung: Die Abbilder fu:r FreeBSD 7.X-Releases vor
         FreeBSD 7.3 sowie fu:r FreeBSD 8.0 wurden noch
         unterschiedlich benannt. Bei Ihnen fehlt die Bezeichnung
         FreeBSD- am Anfang des Abbildnamens.

       Sie beno:tigen nur eines der beiden Abbilder bootonly oder
       disc1. Laden Sie bitte nicht beide Abbilder herunter, das
       disc1-Abbild entha:lt alles, was das bootonly-Abbild entha:lt.

       Benutzen Sie das bootonly-Abbild, wenn Sie eine preiswerte
       Internet-Anbindung besitzen. Mit diesem Abbild ko:nnen Sie
       FreeBSD installieren. Software Dritter ko:nnen Sie
       anschliessend mithilfe des Ports-Systems (Kapitel 5)
       herunterladen.

       Benutzen Sie das dvd1-Abbild, wenn Sie FreeBSD installieren
       wollen und das Installationsmedium eine angemessene Auswahl an
       Software Dritter enthalten soll.

       Die zusa:tzlichen Abbilder sind nu:tzlich, aber nicht
       notwendig, insbesondere wenn Sie eine schnelle
       Internet-Verbindung besitzen.

    2. Die CDs brennen

       Sie mu:ssen die Abbilder auf eine CD brennen. Das Brennen von
       CDs unter FreeBSD wird in Abschnitt 19.6 erla:utert (sehen Sie
       sich insbesondere Abschnitt 19.6.3 und Abschnitt 19.6.4 an).

       Wenn Sie die CDs unter einem anderen Betriebssystem erstellen,
       benutzen Sie die entsprechenden Werkzeuge des Betriebssystems.
       Die Abbilder sind Standard-ISO-Abbilder und ko:nnen von vielen
       Brennprogrammen verarbeitet werden.

     Anmerkung: Wenn Sie eine angepasste Version von FreeBSD
     erstellen wollen, sollten Sie den Release Engineering Article
     lesen.

     --------------------------------------------------------------

  2.13.2. Einen lokalen FTP-Server einrichten

   Die Dateien auf der Installations-CD sind genauso angeordnet wie
   auf den FreeBSD-FTP-Servern. Daher ist es einfach, einen lokalen
   FTP-Server fu:r die FreeBSD-Installation u:ber ein Netzwerk
   einzurichten.

    1. Ha:ngen Sie auf dem FTP-Server die CD-ROM in das Verzeichnis
       /cdrom ein:

 # mount /cdrom

    2. Legen Sie ein Konto fu:r Anonymous-FTP an. Dazu editieren Sie
       die Datei /etc/passwd mit dem Kommando vipw(8) und fu:gen die
       nachstehende Zeile hinzu:

 ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent

    3. Stellen Sie sicher, dass der FTP-Dienst in der Datei
       /etc/inetd.conf aktiviert ist.

   Jeder, der Ihren Rechner u:ber das Netzwerk erreicht, kann nun
   FreeBSD u:ber FTP installieren. In sysinstall wird dazu FTP als
   Installationsmedium wa:hlt. Der FTP-Server wird durch die Auswahl
   Other (andere als die vorgegebenen Server) und anschliessende
   Eingabe von ftp://Ihr Rechner festgelegt.

     Anmerkung: Wenn die Version der fu:r die FTP-Installation Ihrer
     Clients verwendeten Bootmedien (normalerweise Disketten) nicht
     exakt der von Ihnen auf Ihrem lokalen FTP-Server angebotenen
     Version entspricht, ist sysinstall nicht in der Lage, die
     Installation abzuschliessen. Sind die Versionsnummern
     unterschiedlich, ko:nnen Sie durch das Aufrufen des Punktes
     Options sysinstall dazu zwingen, die Installation dennoch
     abzuschliessen. Dazu setzen Sie den Namen der Distribution auf
     any.

     Warnung: Diese Vorgehensweise ist in Ihrem lokalen Netzwerk, das
     durch eine Firewall geschu:tzt ist, vo:llig in Ordnung. Wenn Sie
     FTP fu:r Rechner auf dem Internet (und nicht fu:r lokale
     Rechner) anbieten, zieht Ihr Server die Aufmerksamkeit von
     Crackern und andere Unannehmlichkeiten auf sich. Achten Sie in
     diesem Fall darauf, dass Sie gute Sicherheitsverfahren anwenden.

     --------------------------------------------------------------

  2.13.3. Installationsdisketten erstellen

   Wenn Sie, was wir nicht empfehlen, von Disketten installieren
   mu:ssen, weil Disketten das einzig unterstu:tzte
   Installationsmedium sind oder Sie es sich einfach schwer machen
   wollen, mu:ssen Sie zuna:chst einige Disketten vorbereiten.

   Sie mu:ssen mindestens den Inhalt des Verzeichnisses base auf
   1.44 MB Disketten kopieren. Wenn Sie die Disketten unter MS-DOS
   erstellen, mu:ssen Sie die Disketten mit dem MS-DOS-Kommando
   FORMAT formatieren. Unter Windows ko:nnen Sie Disketten mithilfe
   des Explorers formatieren (klicken Sie mit der rechten Maustaste
   auf das A:-Laufwerk und wa:hlen Sie Format aus).

   Vertrauen Sie vorformatierten Disketten nicht; formatieren Sie die
   Disketten zur Sicherheit immer selbst. In der Vergangenheit waren
   vorformatierte Disketten der Verursacher vieler Probleme.

   Falls Sie die Disketten auf einer FreeBSD-Maschine erstellen,
   sollten Sie immer noch formatieren. Allerdings brauchen Sie kein
   MS-DOS-Dateisystem auf den Disketten anzulegen. Mit den Kommandos
   bsdlabel und newfs ko:nnen Sie das Dateisystem UFS verwenden, wie
   im nachstehenden Beispiel fu:r 3.5" 1.44 MB Disketten gezeigt:

 # fdformat -f 1440 fd0.1440
 # bsdlabel -w fd0.1440 floppy3
 # newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0

   Anschliessend ko:nnen Sie die Disketten wie ein normales
   Dateisystem einha:ngen und beschreiben.

   Nachdem Sie die Disketten formatiert haben, kopieren Sie die
   Dateien der Distribution auf die Disketten. Die Dateien der
   Distribution sind in Stu:cke geteilt, sodass fu:nf Dateien auf
   eine 1.44 MB Diskette passen. Kopieren Sie die gewu:nschten
   Distribution auf Disketten, wobei Sie so viele Dateien wie
   mo:glich auf eine Diskette kopieren. Jede Distribution wird auf
   der Diskette in einem eigenen Verzeichnis abgelegt, beispielsweise
   a:\base\base.aa, a:\base\base.ab und so weiter.

     Wichtig: Die Datei base.inf muss unbedingt auf die erste
     Diskette des base-Diskettensatzes kopiert werden, damit das
     Installationsprogramm feststellen kann, wie viele Disketten
     geladen werden mu:ssen, um die Distribution wieder
     zusammenzusetzen.

   Im Installationsprozess wa:hlen Sie als Installationsmedium Floppy
   aus. Folgen Sie dann den gegebenen Anweisungen.

     --------------------------------------------------------------

  2.13.4. Von einer MS-DOS-Partition installieren

   Um eine Installation von einer MS-DOS-Partition vorzubereiten,
   kopieren Sie Dateien der Distributionen in das Verzeichnis freebsd
   direkt unterhalb des Wurzelverzeichnisses (zum Beispiel
   c:\freebsd). In diesem Verzeichnis muss sich dieselbe
   Verzeichnisstruktur wie auf dem Installationsmedium befinden. Wenn
   Sie die Dateien von einer Installations-CD kopieren, empfehlen wir
   den MS-DOS-Befehl xcopy. Das nachstehende Beispiel bereitet eine
   minimale Installation von FreeBSD vor:

 C:\> md c:\freebsd
 C:\> xcopy e:\bin c:\freebsd\bin\ /s
 C:\> xcopy e:\manpages c:\freebsd\manpages\ /s

   Im Beispiel wurde angenommen, dass auf Laufwerk C: ausreichend
   Platz vorhanden ist und die CD-ROM Laufwerk E: ist.

   Wenn Sie kein CD-Laufwerk besitzen, ko:nnen Sie die Distributionen
   von ftp.FreeBSD.org herunterladen. Jede Distribution liegt in
   einem eigenen Verzeichnis. Beispielsweise liegt die
   Base-Distribution im Verzeichnis 9.0/base/.

   Kopieren Sie jede Distribution, die Sie von einer MS-DOS-Partition
   installieren wollen (und fu:r die Platz ist) in das Verzeichnis
   c:\freebsd. Fu:r eine minimale Installation beno:tigen Sie nur die
   Base-Distribution.

     --------------------------------------------------------------

  2.13.5. Ein Installationsband erstellen

   Falls Sie nicht u:ber FTP oder von einer CD-ROM installieren
   ko:nnen, ist die Installation von Band wahrscheinlich die
   einfachste Methode. Das Installationsprogramm erwartet, dass sich
   die Distributionen im tar-Format auf dem Band befinden. Von den
   Distributions-Dateien erstellen Sie das Installationsband einfach
   mit dem Kommando tar:

 # cd /freebsd/distdir
 # tar cvf /dev/rwt0 dist1 ... dist2

   Stellen Sie wa:hrend der Installation sicher, dass Sie u:ber
   genu:gend freien Platz in einem tempora:ren Verzeichnis (das Sie
   festlegen ko:nnen) verfu:gen. Das tempora:re Verzeichnis muss den
   gesamten Inhalt des Bands aufnehmen ko:nnen. Da auf Ba:nder nicht
   wahlfrei zugegriffen werden kann, beno:tigt diese
   Installationsmethode tempora:r sehr viel Platz.

     Anmerkung: Das Band muss sich vor dem Neustart mit der
     Startdiskette im Laufwerk befinden. Ansonsten wird das Band
     wa:hrend der Gera:teerkennung vielleicht nicht erkannt.

     --------------------------------------------------------------

  2.13.6. Eine Netzwerkinstallation vorbereiten

   Sie ko:nnen drei Verbindungsarten fu:r eine Netzwerkinstallation
   benutzen: Eine Ethernet-Verbindung, eine serielle Verbindung
   (PPP), oder eine parallele Verbindung (PLIP, Laplink-Kabel).

   Die schnellste Netzwerkinstallation ist natu:rlich mit einer
   Netzwerkkarte mo:glich. FreeBSD unterstu:tzt die meisten der
   u:blichen Netzwerkkarten. Eine Liste der unterstu:tzten
   Netzwerkkarten ist in den Hardware-Notes jedes Releases enthalten.
   Wenn Sie eine unterstu:tzte PCMCIA-Netzwerkkarte benutzen, stellen
   Sie sicher, dass die Karte eingesteckt ist, bevor der Laptop
   eingeschaltet wird. Leider unterstu:tzt FreeBSD das Einstecken von
   PCMCIA-Karten wa:hrend der Installation noch nicht.

   Fu:r eine Netzwerkinstallation mu:ssen Sie Ihre IP-Adresse, die
   Netzwerkmaske und den Namen Ihres Rechner kennen. Wenn Sie u:ber
   eine PPP-Verbindung installieren und keine feste IP-Adresse
   besitzen, braucht Sie der vorgehende Satz nicht zu beunruhigen.
   Sie ko:nnen eine IP-Adresse dynamisch von Ihrem ISP beziehen.
   Fragen Sie Ihren Systemadministrator nach den richtigen
   Netzwerkeinstellungen. Wenn Sie andere Rechner u:ber Namen anstatt
   u:ber IP-Adressen erreichen wollen, brauchen Sie zudem einen
   Nameserver und mo:glicherweise die Adresse eines Gateways (mit PPP
   ist das die Adresse des ISPs), u:ber den Sie den Nameserver
   erreichen. Wenn Sie von einem FTP-Server u:ber einen HTTP-Proxy
   installieren wollen, beno:tigen Sie ausserdem noch die Adresse des
   Proxy-Servers. Wenn Sie nicht alle oder zumindest die meisten der
   beno:tigten Daten kennen, sollten Sie wirklich vor der
   Installation mit Ihrem Systemadministrator oder ISP reden!

   Wenn Sie ein Modem benutzen, ist PPP ziemlich sicher die einzige
   Wahl. Stellen Sie sicher, dass Sie die Daten Ihres Service
   Providers bereitliegen haben, da Sie wa:hrend der Installation die
   Daten fru:h beno:tigen.

   Wenn Sie PAP oder CHAP benutzen, um sich mit Ihrem ISP zu
   verbinden (wenn Sie unter Windows kein Skript beno:tigen, um die
   Verbindung herzustellen), brauchen Sie an der
   ppp-Eingabeaufforderung nur das Kommando dial abzusetzen.
   Ansonsten mu:ssen Sie sich mit Modem-spezifischen AT-Kommandos bei
   Ihrem ISP einwa:hlen (PPP stellt nur einen einfachen
   Terminal-Emulator zur Verfu:gung). Weiteres u:ber PPP erfahren Sie
   im Abschnitt User-PPP des Handbuchs und im PPP-Abschnitt der FAQ.
   Bei Problemen ko:nnen Sie mit dem Kommando set log local Meldungen
   auf den Bildschirm umleiten.

   Wenn eine feste Verbindung zu einer anderen FreeBSD-Maschine
   besteht, sollten Sie ein paralleles Laplink-Kabel in Betracht
   ziehen. U:ber eine parallele Verbindung sind ho:hrere
   Geschwindigkeiten als u:ber eine serielle Verbindung
   (typischerweise bis zu 50 kByte/s) mo:glich. Daher ist die
   Installation u:ber eine parallele Verbindung schneller als eine
   Installation u:ber eine serielle Verbindung.

     --------------------------------------------------------------

    2.13.6.1. Eine NFS-Installation vorbereiten

   Eine NFS-Installation ist unkompliziert. Kopieren Sie einfach die
   Distributionen auf einen NFS-Server und wa:hlen Sie NFS als
   Installationsmedium aus.

   Wenn der NFS-Server nur Verbindungen u:ber privilegierte Ports
   (Ports kleiner 1024) annimmt, setzen Sie vor der Installation die
   Option NFS Secure im Menu: Options.

   Wenn Sie eine schlechte Netzwerkkarte besitzen, die sehr langsam
   ist, wa:hlen Sie die Option NFS Slow.

   Damit die NFS-Installation funktioniert, muss der NFS-Server auch
   Unterverzeichnisse von exportierten Verzeichnissen zum Einha:ngen
   freigeben. Wenn beispielsweise die Distribution von FreeBSD 9.0
   unter ziggy:/usr/archive/stuff/FreeBSD liegt, muss der Rechner
   ziggy erlauben, das Verzeichnis /usr/archive/stuff/FreeBSD
   einzuha:ngen. Es reicht nicht, dass ziggy erlaubt das Verzeichnis
   /usr oder /usr/archive/stuff einzuha:ngen.

   Unter FreeBSD werden diese Freigaben in der Datei /etc/exports mit
   der Option -alldirs eingestellt. Die no:tigen Einstellungen
   ko:nnen auf einem anderen NFS-Server unterschiedlich sein. Wenn
   Sie vom NFS-Server die Fehlermeldung "permission denied" erhalten,
   dann haben Sie wahrscheinlich die Freigaben nicht richtig
   konfiguriert.

     --------------------------------------------------------------

            Kapitel 3. FreeBSD 9.x (und neuer) installieren

   Restructured, reorganized, and parts rewritten by Jim Mock. The
   sysinstall walkthrough, screenshots, and general copy by Randy
   Pratt. Updated for bsdinstall by Gavin Atkinson und Warren Block.
   U:bersetzt von Benedict Reuschling.

3.1. U:bersicht

   FreeBSD entha:lt ein text-basiertes, einfach zu verwendendes
   Installationsprogramm. FreeBSD 9.0-RELEASE und neuer verwendet ein
   Installationsprogramm genannt bsdinstall, wa:hrend Versionen vor
   FreeBSD 9.0-RELEASE stattdessen sysinstall zur Installation
   einsetzten. Dieses Kapitel beschreibt die Verwendung von
   bsdinstall. Der Einsatz von sysinstall wird in Kapitel 2
   behandelt.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:

     * wie man FreeBSD Installationsmedien erstellt.

     * wie FreeBSD Festplatten unterteilt und darauf verweist.

     * wie man bsdinstall startet.

     * welche Fragen Sie von bsdinstall gestellt bekommen, was sie
       bedeuten und und wie man diese beantwortet.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * Die Liste von unterstu:tzter Hardware lesen, die mit Ihrer zu
       installierenden Version von FreeBSD ausgeliefert wird, um
       sicherzustellen, dass Ihre Hardware auch unterstu:tzt wird.

     Anmerkung: Generell wurden diese Installationsanweisungen fu:r
     Rechner der i386 ("PC-kompatibel") Architektur verfasst. An
     Stellen, an denen sich die Anweisungen speziell auf eine andere
     Plattform beziehen, wird darauf hingewiesen. Es mag kleinere
     Unterschiede geben zwischen dem Installationsprogramm und dem,
     was hier beschrieben steht. Sie sollten daher dieses Kapitel als
     eine Art Wegweiser und keine exakte Anleitung betrachten.

     --------------------------------------------------------------

3.2. Hardware-Anforderungen

  3.2.1. Minimalkonfiguration

   Die Minimalkonfiguration zur Installation von FreeBSD variiert mit
   der Version von FreeBSD und der Hardwarearchitektur.

   Eine Zusammenfassung dieser Informationen wird in den folgenden
   Abschnitten gegeben. Abha:ngig von der Installationsmethode, die
   Sie verwenden, um FreeBSD zu installieren, werden Sie unter
   Umsta:nden ein unterstu:tztes CD-ROM-Laufwerk beno:tigen und in
   manchen Fa:llen eine Netzwerkkarte. Dies wird im Abschnitt
   Abschnitt 3.3.5 genauer betrachtet.

     --------------------------------------------------------------

    3.2.1.1. FreeBSD/i386

   FreeBSD/i386 beno:tigt einen 486er oder einen schnelleren
   Prozessor und mindestens 64 MB RAM. Es sollte mindestens 1.1 GB
   freier Festplattenspeicher fu:r die Installation zur Verfu:gung
   stehen.

     Anmerkung: Auf alten Rechnern hat die Aufru:stung von RAM und
     dem Festplattenplatz normalerweise einen ho:heren
     geschwindigkeitssteigernden Effekt als einen schnelleren
     Prozessor einzubauen.

     --------------------------------------------------------------

    3.2.1.2. FreeBSD/amd64

   Es gibt zwei Klassen von Prozessoren, die in der Lage sind, auf
   FreeBSD/amd64 zu laufen. Die erste Klasse sind AMD64-Prozessoren,
   was sowohl AMD Athlon(TM)64, AMD Athlon64-FX, AMD Opteron(TM) oder
   bessere Prozessoren beinhaltet.

   Die zweite Klasse von Prozessoren, die FreeBSD/amd64 benutzen
   kann, besteht aus der Intel EM64T-Architektur. Beispiele dieser
   Prozessoren beinhalten die Intel Core 2 Duo, Quad, Extreme
   Prozessorfamilien, die Intel Xeon 3000, 5000, und 7000 Reihe von
   Prozessoren, sowie die Intel Core i3, i5 and i7 Prozessoren.

   Sollten Sie einen Rechner basierend auf der nVidia nForce3 Pro-150
   besitzen, mu:ssen Sie im BIOS das IO APIC deaktivieren. Falls Sie
   keine solche Option zum deaktivieren besitzen, werden Sie
   wahrscheinlich ACPI deaktivieren mu:ssen. Der Pro-150 Chipsatz
   entha:lt Fehler, fu:r die wir noch keine Abhilfe gefunden haben.

     --------------------------------------------------------------

    3.2.1.3. FreeBSD/powerpc Apple(R) Macintosh(R)

   Alle neuen Apple(R) Macintosh(R) Systeme mit eingebautem USB
   werden unterstu:tzt. SMP wird auf Maschinen mit mehreren CPUs
   unterstu:tzt.

   Ein 32-bit Kernel kann nur die ersten 2 GB des Hauptspeichers
   verwenden. FireWire(R) wird auf den blauen und weissen PowerMac
   G3s nicht unterstu:tzt.

     --------------------------------------------------------------

    3.2.1.4. FreeBSD/sparc64

   Systeme, die von FreeBSD/sparc64 unterstu:tzt werden, sind auf der
   FreeBSD/sparc64-Projektseite aufgelistet.

   Eine dedizierte Platte wird fu:r FreeBSD/sparc64 beno:tigt. Es ist
   nicht mo:glich, eine Platte mit einem anderen Betriebssystem zur
   gleichen Zeit zu teilen.

     --------------------------------------------------------------

  3.2.2. Unterstu:tzte Hardware

   Hardwarearchitekturen und von FreeBSD unterstu:tzte Gera:te werden
   in der Datei mit Hardware Notes aufgelistet. Normalerweise heisst
   diese Datei HARDWARE.TXT und befindet sich im Wurzelverzeichnis
   des Vero:ffentlichungsmediums. Kopien dieser unterstu:tzten
   Hardwareliste ist ebenfalls auf der Seite Release Information der
   FreeBSD Webseite abrufbar.

     --------------------------------------------------------------

3.3. Vor der Installation

  3.3.1. Sichern Sie Ihre Daten

   Sichern Sie alle wichtigen Daten auf dem Zielcomputer, auf dem
   FreeBSD installiert werden soll. u:berpru:fen Sie diese
   Sicherungen, bevor Sie fortfahren. Die FreeBSD Installation wird
   Sie vor A:nderungen an den Platten danach fragen, jedoch kann dies
   nicht mehr ru:ckga:ngig gemacht werden, sobald der Prozess
   gestartet wurde.

     --------------------------------------------------------------

  3.3.2. Den Installationsort von FreeBSD festlegen

   Falls FreeBSD das einzige installierte Betriebssystem sein wird
   und die gesamte Platte dazu verwenden kann, kann der Rest dieses
   Abschnitts u:bersprungen werden. Sollten Sie allerdings die Platte
   mit anderen Betriebssystemen teilen, ist ein Versta:ndnis des
   Plattenlayouts hilfreich fu:r die Installation.

     --------------------------------------------------------------

    3.3.2.1. Festplattenlayout fu:r FreeBSD/i386 und FreeBSD/amd64

   Festplatten ko:nnen in mehrere verschiedene Bereiche aufgeteilt
   werden. Diese Bereiche werden Partitionen genannt.

   Es gibt zwei Arten, eine Festplatte in mehrere Partitionen
   einzuteilen. Traditionell entha:lt ein Master Boot Record (MBR)
   eine Partitionstabelle, welche bis zu vier prima:re Partitionen
   aufnehmen kann (aus historischen Gru:nden werden diese prima:ren
   Partitionen in FreeBSD slices genannt). Eine Begrenzung von nur
   vier Partitionen ist fu:r grosse Platten sehr beschra:nkt, so dass
   eine dieser prima:ren Partitionen als erweiterte Partition
   eingesetzt wird. Mehrere logische Partitionen ko:nnen dann
   innerhalb der erweiterten Partition angelegt werden. Dies mag
   etwas unhandlich erscheinen und das ist auch der Fall.

   Die GUID-Partitionstabelle (GPT) ist eine neuere und einfachere
   Methode zur Partition einer Festplatte. GPT ist weitaus flexibler
   als die traditionelle MBR-Partitionstabelle. Gela:ufige
   GPT-Implementierungen erlauben bis zu 128 Partitionen pro Platte,
   was die Notwendigkeit von umsta:ndlichen Behelfen wie logische
   Partitionen eliminiert.

     Warnung: Manche a:lteren Betriebssysteme wie Windows XP sind mit
     dem GPT-Partitionsschema nicht kompatibel. Wenn sich FreeBSD die
     Platte mit einem solchen Betriebssystem teilen soll, werden MBR
     Partitionen beno:tigt.

   FreeBSDs Standard-Bootloader beno:tigt entweder eine prima:re oder
   eine GPT-Partition (lesen Sie dazu Kapitel 13 fu:r weitere
   Informationen zum FreeBSD Bootvorgang). Wenn alle der prima:ren
   oder GPT-Partitionen bereits in Verwendung sind, muss eine davon
   fu:r FreeBSD zur Verfu:gung gestellt werden.

   Eine Minimalinstallation von FreeBSD braucht ungefa:hr 1 GB
   Plattenplatz. Dies ist jedoch eine sehr minimale Installation, die
   fast gar keinen freien Speicherplatz u:brig la:sst. Eine etwas
   realistischere Minimalangabe sind 3 GB ohne eine graphische
   Umgebung und 5 GB oder mehr, falls eine graphische
   Benutzeroberfla:che verwendet werden soll. Anwendungen von
   Drittanbietern beno:tigt sogar noch mehr Platz.

   Eine Vielzahl freier und kommerzieller Werkzeuge zur Vera:nderung
   der Partitionsgro:ssen sind verfu:gbar. GParted Live ist eine
   freie Live-CD, die den GParted-Partitionseditor entha:lt. GParted
   ist auch in einer Vielzahl von anderen Linux Live-CD
   Distributionen enthalten.

     Warnung: Anwendungen zur Festplattenpartition kann Daten
     zersto:ren. Erstellen Sie eine Vollsicherung und u:berpru:fen
     Sie deren Integrita:t bevor Sie die Partitionen auf der Platte
     vera:ndern.

   Die Vera:nderung der Gro:sse von Microsoft Vista-Partitionen kann
   schwierig sein. Eine Vista Installations-CD-ROM kann hilfreich
   sein, wenn eine solche Aktion versucht wird.

   Beispiel 3-1. Eine existierende Partition vera:ndern

   Ein Windows-Computer besitzt eine einzelne 40 GB Platte, die in
   zwei 20 GB Partitionen aufgeteilt wurde. Windows nennt diese C:
   und D:. Die C: Partition entha:lt 10 GB und the D: Partition 5 GB
   an Daten.

   Durch kopieren der Daten von D: nach C: macht die zweite Partition
   frei, so dass FreeBSD sie benutzen kann.

   Beispiel 3-2. Verkleinern einer bestehenden Partition

   Ein Windows-Computer besitzt eine einzelne 40 GB Platte und eine
   grosse Partition, welche die gesamte Platte einnimmt. Windows
   zeigt diese 40 GB Partition als einzelne C: Partition. 15 GB
   Plattenplatz wird verwendet. Das Ziel ist, fu:r Windows eine 20 GB
   Partition einzurichten und eine weitere 20 GB-Partition fu:r
   FreeBSD bereitzustellen.

   Es gibt zwei Wege, dieses Ziel zu erreichen.

    1. Sichern Sie Ihre Windows-Daten. Installieren Sie dann Windows
       neu, indem Sie eine 20 GB-Partition wa:hrend der Installation
       anlegen.

    2. Verwenden Sie ein Werkzeug zur Vera:nderung einer Partition
       wie GParted, um die Windows-Partition zu verkleinern und eine
       neue Partition im freigewordenen Plattenplatz fu:r FreeBSD
       anzulegen.

   Festplattenpartitionen, die unterschiedliche Betriebssysteme
   enthalten, ermo:glichen es, jeweils eines dieser Systeme zu
   verwenden. Eine andere Methode, die es erlaubt, mehrere
   Betriebssysteme gleichzeitig einzusetzen, wird in Kapitel 23
   behandelt.

     --------------------------------------------------------------

  3.3.3. Netzwerkparameter ermitteln

   Manche FreeBSD Installationsarten beno:tigen eine
   Netzwerkverbindung, um Dateien herunter zu laden. Um zu einem
   Ethernet-Netzwerk (bzw. Kabel oder DSL-Modem mit einem
   Ethernet-Anschluss) eine Verbindung herzustellen, wird das
   Installationsprogramm bestimmte Information zum Netzwerk abfragen.

   DHCP wird allgemein verwendet, um automatisch
   Netzwerkeinstellungen vorzunehmen. Falls DHCP nicht verfu:gbar
   ist, mu:ssen diese Netzwerkeinstellungen vom lokalen
   Netzwerkadministrator oder Provider erfragt werden:

   Informationen zum Netzwerk

    1. IP-Adresse

    2. Subnetz-Maske

    3. Default-Router IP-Adresse

    4. Doma:nenname des lokalen Netzwerks

    5. DNS-Server IP-Adresse(n)

     --------------------------------------------------------------

  3.3.4. Lesen Sie die FreeBSD-Errata

   Obwohl das FreeBSD Projekt sich bemu:ht, jede vero:ffentlichte
   Version von FreeBSD so stabil wie mo:glich zu machen, ko:nnen sich
   doch gelegentlich Fehler in den Vero:ffentlichungsprozess
   einschleichen. In sehr seltenen Fa:llen betreffen diese Fehler den
   Installationsvorgang. Wenn diese Probleme entdeckt und behoben
   sind, werden dazu Hinweise in der FreeBSD Errata auf der FreeBSD
   Webseite vero:ffentlicht. Pru:fen Sie die Errata vor der
   Installation, um sicherzustellen, dass es keine Probleme gibt,
   welche die Installation betreffen.

   Informationen und Errata fu:r all diese Vero:ffentlichungen
   ko:nnen u:ber den Abschnitt release information der FreeBSD
   Webseite abgerufen werden.

     --------------------------------------------------------------

  3.3.5. Die Installationsmedien beschaffen

   Eine FreeBSD-Installation wird durch das starten des Computers mit
   einer eingelegten FreeBSD-Installations-CD/DVD oder eines
   USB-Sticks begonnen. Das Installationsprogramm ist kein Programm
   das aus einem anderen Betriebssystem heraus gestartet werden kann.

   Zusa:tzlich zum Standardinstallationsmedium, welches Kopien von
   allen FreeBSD-Installationsdateien entha:lt, gibt es auch eine
   bootonly-Variante. Ein solches Installationsmedium besitzt keine
   Kopien der Installationsdateien, jedoch kann es diese wa:hrend der
   Installation aus dem Netzwerk nachladen. Die bootonly
   Installations-CD ist dadurch viel kleiner und reduziert die
   beno:tigte Bandbreite wa:hrend der Installation durch
   herunterladen der allerno:tigsten Dateien.

   Kopien der FreeBSD-Installationsmedien sind auf der FreeBSD
   Webseite verfu:gbar.

     Tipp: Falls Sie bereits eine Kopie von FreeBSD auf CD-ROM, DVD
     oder USB-Stick besitzen, kann dieser Abschnitt u:bersprungen
     werden.

   CD und DVD-Images von FreeBSD sind startfa:hige ISO-Dateien. Nur
   eine CD oder DVD wird fu:r eine Installation beno:tigt. Brennen
   Sie ein ISO-Image auf eine startfa:hige CD oder DVD mit Hilfe
   eines CD-Brennprogramms, das fu:r Ihr aktuelles Betriebssystem zur
   Verfu:gung steht.

   Um einen startfa:higen USB-Stick zu erstellen, fu:hren Sie die
   folgenden Schritte durch:

    1. Das Image fu:r den USB-Stick herunterladen

       Das Image fu:r FreeBSD 9.0-RELEASE und ho:here kann von dem
       ISO-IMAGES/-Verzeichnis unter
       ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/arch/ISO-IMAGES/version/FreeBSD-version-RELEASE-arch-memstick.img
       bezogen werden. Ersetzen Sie jeweils arch und version mit der
       Architektur und der Versionsnummer, die Sie installieren
       mo:chten. Beispielsweise sind die USB-Stick Images fu:r
       FreeBSD/i386 9.0-RELEASE verfu:gbar unter
       ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-memstick.img.

         Tipp: Fu:r FreeBSD 8.X und fru:here Versionen wird ein
         anderer Pfad verwendet. Details fu:r das Herunterladen und
         Installieren von FreeBSD 8.X und fru:here werden in Kapitel
         2 behandelt.

       Das USB-Stick Image hat die Endung .img. Das
       ISO-IMAGES/-Verzeichnis entha:lt eine Vielzahl von
       verschiedenen Installations-Images und die jeweils beno:tigte
       Version von FreeBSD, sowie in manchen Fa:llen die
       Zielhardware.

         Wichtig: Bevor Sie fortfahren, machen Sie Sicherungskopien
         der Daten auf dem USB-Stick, da die folgende Prozedur alle
         Daten lo:scht.

    2. Das Image auf den USB-Stick schreiben

       Den USB-Stick unter FreeBSD vorbereiten

         Warnung: Das Beispiel unten verwendet /dev/da0 als das
         Zielgera:t, auf welches das Image geschrieben werden soll.
         Seien Sie vorsichtig, dass das richtige Gera:t als das
         Ausgabe benutzt wird oder Sie zersto:ren wichtige Daten.

         1. Das Image mit dd(1) schreiben

            Die .img-Datei ist keine gewo:hnliche Datei. Es ist ein
            Image des kompletten spa:teren Inhalts des USB-Sticks. Es
            kann nicht einfach wie eine gewo:hnliche Datei kopiert
            werden, sondern muss direkt auf das Zielgera:t mit dd(1)
            geschrieben werden:

 # dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k

       Das Image unter Windows schreiben

         Warnung: Versichern Sie sich, dass Sie den korrekten
         Laufwerksbuchstaben als Ausgabe angeben oder Sie
         u:berschreiben und zersto:ren bestehende Daten.

         1. Image Writer fu:r Windows herunterladen

            Image Writer fu:r Windows ist eine frei verfu:gbare
            Anwendung, welche eine Imagedatei korrekt auf einen
            SB-Stick schreiben kann. Laden Sie diese von
            https://launchpad.net/win32-image-writer/ herunter und
            entpacken Sie sie in einen Ordner.

         2. Das Image mit Image Writer auf den USB-Stick schreiben

            Klicken Sie doppelt auf das Win32DiskImager-Icon, um das
            Programm zu starten. Pru:fen Sie dabei, dass der
            Laufwerksbuchstabe unter Device dem Gera:t entspricht, in
            dem sich der USB-Stick befindet. Klicken Sie auf das
            Ordnersymbol und wa:hlen Sie das Image aus, welches auf
            den USB-Stick geschrieben werden soll. Um den
            Image-Dateinamen zu akzeptieren, klicken Sie auf
            [ Save ]. U:berpru:fen Sie erneut, ob alles stimmt und
            dass keine Ordner auf dem USB-Stick in anderen Fenstern
            geo:ffnet sind. Sobald alles bereit ist, klicken Sie auf
            [ Write ], um die Imagedatei auf den USB-Stick zu
            schreiben.

     Anmerkung: Die Installation von Disketten wird nicht mehr
     unterstu:tzt.

   Sie sind jetzt dazu bereit, mit der Installation von FreeBSD zu
   beginnen.

     --------------------------------------------------------------

3.4. Die Installation starten

     Wichtig: Es werden durch die Installation keine A:nderungen an
     Ihren Festplatten durchgefu:hrt, so lange Sie nicht die folgende
     Meldung sehen:

 Your changes will now be written to disk.  If you
 have chosen to overwrite existing data, it will
 be PERMANENTLY ERASED. Are you sure you want to
 commit your changes?

     Die Installation kann vor dieser Warnung zu jeder Zeit
     abgebrochen werden, ohne dass die Inhalte der Festplatte
     gea:ndert davon betroffen sind. Falls Sie besorgt sind, dass
     etwas falsch konfiguriert wurde, schalten Sie einfach den
     Computer vor diesem Punkt aus und es wird kein Schaden
     angerichtet.

     --------------------------------------------------------------

  3.4.1. Der Systemstart

    3.4.1.1. Systemstart von i386 und amd64

    1. Falls Sie einen "startfa:higen" USB-Stick einsetzen, wie in
       Abschnitt 3.3.5 beschrieben ist, dann stecken Sie diesen vor
       dem Anschalten des Computers hinein.

       Falls Sie von einer CD-ROM starten, mu:ssen Sie den Computer
       anschalten und die CD-ROM so bald wie mo:glich einlegen.

    2. Konfigurieren Sie Ihren Rechner so, dass er entweder von der
       CD-ROM oder dem USB-Stick startet, abha:ngig davon, welches
       Installationsmedium Sie verwenden. Die Konfiguration im BIOS
       erlaubt es, das Gera:t, von dem gestartet werden soll,
       auszuwa:hlen. Die meisten Systeme erlauben es auch, das
       Startgera:t wa:hrend des Startvorgangs zu wa:hlen,
       typischerweise durch dru:cken von entweder F10, F11, F12 oder
       Escape.

    3. Falls Ihr Computer wie normal startet und Ihr bestehendes
       Betriebssystem la:dt, befolgen Sie einen der hier
       aufgefu:hrten Schritte:

         1. Die Medien wurden wa:hrend des Startvorgangs nicht fru:h
            genug eingelegt. Lassen Sie diese wo sie sind und
            versuchen Sie, den Rechner davon neu zu starten.

         2. Die A:nderungen am BIOS haben nicht richtig funktioniert.
            Sie sollten diese erneut durchfu:hren, um die richtige
            Option auszuwa:len.

         3. Das von Ihnen verwendete BIOS unterstu:tzt das starten
            vom gewa:hlten Medium nicht. Der Plop Boot Manager kann
            in diesem Fall verwendet werden, um a:ltere Computer von
            CD or USB-Medien zu starten.

    4. FreeBSD wird anfangen zu starten. Falls Sie von CD-ROM
       starten, werden Sie eine Anzeige a:hnlich wie die folgende zu
       sehen bekommen (Versionsinformationen wurden hier entfernt):

 Booting from CD-ROM...
 645MB medium detected
 CD Loader 1.2

 Building the boot loader arguments
 Looking up /BOOT/LOADER... Found
 Relocating the loader and the BTX
 Starting the BTX loader

 BTX loader 1.00 BTX version is 1.02
 Consoles: internal video/keyboard
 BIOS CD is cd0
 BIOS drive C: is disk0
 BIOS drive D: is disk1
 BIOS 636kB/261056kB available memory

 FreeBSD/i386 bootstrap loader, Revision 1.1

 Loading /boot/defaults/loader.conf
 /boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d]
 \

    5. Der FreeBSD-Bootloader wird angezeigt:

       Abbildung 3-1. Das FreeBSD-Bootloader Menu:

       Warten Sie entweder zehn Sekunden oder dru:cken Sie Enter.

     --------------------------------------------------------------

    3.4.1.2. Systemstart beim Macintosh PowerPC(R)

   Auf den meisten Maschinen ko:nnen Sie C auf der Tastatur gedru:ckt
   halten, um von der CD zu starten. Andernfalls, halten Sie
   Command+Option+O+F, oder Windows+Alt+O+F auf nicht-Apple
   Tastaturen gedru:ckt. Geben Sie an der 0 >-Eingabeaufforderung
   folgendes ein:

 boot cd:,\ppc\loader cd:0

   Fu:r Xserves ohne Tastatur, lesen Sie Apples Support Webseite
   u:ber das starten in die Open Firmware.

     --------------------------------------------------------------

    3.4.1.3. Systemstart fu:r SPARC64

   Die meisten SPARC64-Systeme sind so eingerichtet, dass diese
   automatisch von CD starten. Um FreeBSD zu installieren, mu:ssen
   Sie u:ber das Netzwerk oder von einer CD-ROM starten, was es
   no:tig macht, in die PROM OpenFirmware einzubrechen.

   Um dies zu tun, starten Sie das System neu und warten Sie bis die
   Startmeldungen erscheinen. Abha:ngig vom Modell sollte dies in
   etwa folgendermassen aussehen:

 Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
 Copyright 1998-2001 Sun Microsystems, Inc.  All rights reserved.
 OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
 Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.

   Falls Ihr System damit fortfa:hrt, von diesem Zeitpunkt an von
   Platte zu starten, mu:ssen Sie L1+A oder Stop+A auf der Tastatur
   eingeben oder ein BREAK-Kommando (indem Sie z.B. ~# in tip(1) oder
   cu(1) absetzen) u:ber die serielle Konsole senden, um zur PROM
   Befehlszeile zu gelangen. Es sieht dann so aus:

 ok         (1)
 ok {0}     (2)

   (1)
           Dies ist die Eingabeaufforderung, welche auf Systemen mit
           nur einer CPU verwendet wird.
   (2)
           Dies ist die Eingabeaufforderung auf SMP-Systemen. Die
           Zahl gibt die Nummer der aktiven CPU an.

   An dieser Eingabeaufforderung angekommen, legen Sie nun die CD-ROM
   in Ihr Laufwerk und geben Sie boot cdrom ein.

     --------------------------------------------------------------

  3.4.2. Die Gera:teerkennung pru:fen

   Die letzten hundert Zeilen, die am Bildschirm angezeigt wurden,
   sind gespeichert worden und ko:nnen erneut abgerufen werden.

   Um diesen Puffer anzusehen, dru:cken Sie Scroll Lock. Das bewirkt,
   dass Sie die Bildschirmanzeige hoch und runter bewegen (scrollen)
   ko:nnen. Sie ko:nnen dann die Pfeiltasten oder PageUp und PageDown
   benutzen, um die Meldungen zu sehen. Dru:cken Sie Scroll Lock
   erneut, um das scrollen zu stoppen.

   Tun Sie dies jetzt, um den Text, der aus den Bildschirm gelaufen
   ist, als der Kernel die Gera:teerkennung durchgefu:hrt hat, erneut
   zu pru:fen. Sie werden einen Text a:hnlich zu Abbildung 3-2 sehen,
   obwohl sich der genaue Text, abha:ngig von den Gera:ten in Ihrem
   Computer, unterscheiden wird.

   Abbildung 3-2. Typical Device Probe Results

 Copyright (c) 1992-2011 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
 FreeBSD is a registered trademark of The FreeBSD Foundation.
 FreeBSD 9.0-RELEASE #0 r225473M: Sun Sep 11 16:07:30 BST 2011
     root@psi:/usr/obj/usr/src/sys/GENERIC amd64
 CPU: Intel(R) Core(TM)2 Duo CPU     T9400  @ 2.53GHz (2527.05-MHz K8-class CPU)
   Origin = "GenuineIntel"  Id = 0x10676  Family = 6  Model = 17  Stepping = 6
   Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
   Features2=0x8e3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1>
   AMD Features=0x20100800<SYSCALL,NX,LM>
   AMD Features2=0x1<LAHF>
   TSC: P-state invariant, performance statistics
 real memory  = 3221225472 (3072 MB)
 avail memory = 2926649344 (2791 MB)
 Event timer "LAPIC" quality 400
 ACPI APIC Table: <TOSHIB A0064   >
 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 FreeBSD/SMP: 1 package(s) x 2 core(s)
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
 ioapic0: Changing APIC ID to 1
 ioapic0 <Version 2.0> irqs 0-23 on motherboard
 kbd1 at kbdmux0
 acpi0: <TOSHIB A0064> on motherboard
 acpi0: Power Button (fixed)
 acpi0: reservation of 0, a0000 (3) failed
 acpi0: reservation of 100000, b6690000 (3) failed
 Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
 acpi_timer0: <24-bit timer at 3.579545MHz> port 0xd808-0xd80b on acpi0
 cpu0: <ACPI CPU> on acpi0
 ACPI Warning: Incorrect checksum in table [ASF!] - 0xFE, should be 0x9A (20110527/tbutils-282)
 cpu1: <ACPI CPU> on acpi0
 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
 pci0: <ACPI PCI bus> on pcib0
 vgapci0: <VGA-compatible display> port 0xcff8-0xcfff mem 0xff400000-0xff7fffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0
 agp0: <Intel GM45 SVGA controller> on vgapci0
 agp0: aperture size is 256M, detected 131068k stolen memory
 vgapci1: <VGA-compatible display> mem 0xffc00000-0xffcfffff at device 2.1 on pci0
 pci0: <simple comms> at device 3.0 (no driver attached)
 em0: <Intel(R) PRO/1000 Network Connection 7.2.3> port 0xcf80-0xcf9f mem 0xff9c0000-0xff9dffff,0xff9fe000-0xff9fefff irq 20 at device 25.0 on pci0
 em0: Using an MSI interrupt
 em0: Ethernet address: 00:1c:7e:6a:ca:b0
 uhci0: <Intel 82801I (ICH9) USB controller> port 0xcf60-0xcf7f irq 16 at device 26.0 on pci0
 usbus0: <Intel 82801I (ICH9) USB controller> on uhci0
 uhci1: <Intel 82801I (ICH9) USB controller> port 0xcf40-0xcf5f irq 21 at device 26.1 on pci0
 usbus1: <Intel 82801I (ICH9) USB controller> on uhci1
 uhci2: <Intel 82801I (ICH9) USB controller> port 0xcf20-0xcf3f irq 19 at device 26.2 on pci0
 usbus2: <Intel 82801I (ICH9) USB controller> on uhci2
 ehci0: <Intel 82801I (ICH9) USB 2.0 controller> mem 0xff9ff800-0xff9ffbff irq 19 at device 26.7 on pci0
 usbus3: EHCI version 1.0
 usbus3: <Intel 82801I (ICH9) USB 2.0 controller> on ehci0
 hdac0: <Intel 82801I High Definition Audio Controller> mem 0xff9f8000-0xff9fbfff irq 22 at device 27.0 on pci0
 pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
 pci1: <ACPI PCI bus> on pcib1
 iwn0: <Intel(R) WiFi Link 5100> mem 0xff8fe000-0xff8fffff irq 16 at device 0.0 on pci1
 pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.1 on pci0
 pci2: <ACPI PCI bus> on pcib2
 pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0
 pci4: <ACPI PCI bus> on pcib3
 pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0
 pci5: <ACPI PCI bus> on pcib4
 cbb0: <RF5C476 PCI-CardBus Bridge> at device 11.0 on pci5
 cardbus0: <CardBus bus> on cbb0
 pccard0: <16-bit PCCard bus> on cbb0
 isab0: <PCI-ISA bridge> at device 31.0 on pci0
 isa0: <ISA bus> on isab0
 ahci0: <Intel ICH9M AHCI SATA controller> port 0x8f58-0x8f5f,0x8f54-0x8f57,0x8f48-0x8f4f,0x8f44-0x8f47,0x8f20-0x8f3f mem 0xff9fd800-0xff9fdfff irq 19 at device 31.2 on pci0
 ahci0: AHCI v1.20 with 4 3Gbps ports, Port Multiplier not supported
 ahcich0: <AHCI channel> at channel 0 on ahci0
 ahcich1: <AHCI channel> at channel 1 on ahci0
 ahcich2: <AHCI channel> at channel 4 on ahci0
 acpi_lid0: <Control Method Lid Switch> on acpi0
 battery0: <ACPI Control Method Battery> on acpi0
 acpi_button0: <Power Button> on acpi0
 acpi_acad0: <AC Adapter> on acpi0
 acpi_toshiba0: <Toshiba HCI Extras> on acpi0
 acpi_tz0: <Thermal Zone> on acpi0
 attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
 Timecounter "i8254" frequency 1193182 Hz quality 0
 Event timer "i8254" frequency 1193182 Hz quality 100
 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
 atkbd0: <AT Keyboard> irq 1 on atkbdc0
 kbd0 at atkbd0
 atkbd0: [GIANT-LOCKED]
 psm0: <PS/2 Mouse> irq 12 on atkbdc0
 psm0: [GIANT-LOCKED]
 psm0: model GlidePoint, device ID 0
 atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0
 Event timer "RTC" frequency 32768 Hz quality 0
 hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
 Timecounter "HPET" frequency 14318180 Hz quality 950
 Event timer "HPET" frequency 14318180 Hz quality 450
 Event timer "HPET1" frequency 14318180 Hz quality 440
 Event timer "HPET2" frequency 14318180 Hz quality 440
 Event timer "HPET3" frequency 14318180 Hz quality 440
 uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
 sc0: <System console> at flags 0x100 on isa0
 sc0: VGA <16 virtual consoles, flags=0x300>
 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
 ppc0: cannot reserve I/O port range
 est0: <Enhanced SpeedStep Frequency Control> on cpu0
 p4tcc0: <CPU Frequency Thermal Control> on cpu0
 est1: <Enhanced SpeedStep Frequency Control> on cpu1
 p4tcc1: <CPU Frequency Thermal Control> on cpu1
 Timecounters tick every 1.000 msec
 hdac0: HDA Codec #0: Realtek ALC268
 hdac0: HDA Codec #1: Lucent/Agere Systems (Unknown)
 pcm0: <HDA Realtek ALC268 PCM #0 Analog> at cad 0 nid 1 on hdac0
 pcm1: <HDA Realtek ALC268 PCM #1 Analog> at cad 0 nid 1 on hdac0
 usbus0: 12Mbps Full Speed USB v1.0
 usbus1: 12Mbps Full Speed USB v1.0
 usbus2: 12Mbps Full Speed USB v1.0
 usbus3: 480Mbps High Speed USB v2.0
 ugen0.1: <Intel> at usbus0
 uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
 ugen1.1: <Intel> at usbus1
 uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
 ugen2.1: <Intel> at usbus2
 uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
 ugen3.1: <Intel> at usbus3
 uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
 uhub0: 2 ports with 2 removable, self powered
 uhub1: 2 ports with 2 removable, self powered
 uhub2: 2 ports with 2 removable, self powered
 uhub3: 6 ports with 6 removable, self powered
 ugen2.2: <vendor 0x0b97> at usbus2
 uhub8: <vendor 0x0b97 product 0x7761, class 9/0, rev 1.10/1.10, addr 2> on usbus2
 ugen1.2: <Microsoft> at usbus1
 ada0 at ahcich0 bus 0 scbus1 target 0 lun 0
 ada0: <Hitachi HTS543225L9SA00 FBEOC43C> ATA-8 SATA 1.x device
 ada0: 150.000MB/s transfers (SATA 1.x, UDMA6, PIO 8192bytes)
 ada0: Command Queueing enabled
 ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
 ada0: Previously was known as ad4
 ums0: <Microsoft Microsoft 3-Button Mouse with IntelliEyeTM, class 0/0, rev 1.10/3.00, addr 2> on usbus1
 SMP: AP CPU #1 Launched!
 cd0 at ahcich1 bus 0 scbus2 target 0 lun 0
 cd0: <TEAC DV-W28S-RT 7.0C> Removable CD-ROM SCSI-0 device
 cd0: 150.000MB/s transfers (SATA 1.x, ums0: 3 buttons and [XYZ] coordinates ID=0
 UDMA2, ATAPI 12bytes, PIO 8192bytes)
 cd0: cd present [1 x 2048 byte records]
 ugen0.2: <Microsoft> at usbus0
 ukbd0: <Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2> on usbus0
 kbd2 at ukbd0
 uhid0: <Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2> on usbus0
 Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...

   Pru:fen Sie die Ergebnisse der Gera:teerkennung genau, um sicher
   zu stellen, dass FreeBSD alle Gera:te, die Sie erwarten, auch
   gefunden hat. Falls ein Gera:t nicht gefunden wurde, wird es auch
   nicht aufgelistet. Kernelmodule erlauben es, Unterstu:tzung fu:r
   Gera:te, die nicht im GENERIC-Kernel vorhanden sind,
   hinzuzufu:gen.

   Nach der Gera:teerkennungsprozedur, werden Sie Abbildung 3-3
   sehen. Das Installationsmedium kann auf drei Arten verwendet
   werden: um FreeBSD zu installieren, als eine "live CD" oder um
   einfach eine FreeBSD-Shell zu o:ffnen. Benutzen Sie die
   Pfeiltasten, um eine Option auszuwa:hlen und druu:cken Sie Enter
   zum besta:tigen.

   Abbildung 3-3. Auswahl der Verwendung des Installationsmediums

   Wa:hlen Sie hier [ Install ], gelangen Sie in das
   Installationsprogramm.

     --------------------------------------------------------------

3.5. Das bsdinstall-Werkzeug

   bsdinstall ist ein textbasiertes FreeBSD Installationsprogramm,
   geschrieben von Nathan Whitehorn <nwhitehorn@FreeBSD.org> und im
   Jahr 2011 fu:r FreeBSD 9.0 vorgestellt wurde.

     Anmerkung: Kris Moore <kmoore@FreeBSD.org>s pc-sysinstall ist in
     PC-BSD enthalten und kann ebenfalls verwendet werden, um FreeBSD
     zu installieren. Obwohl es manchmal mit bsdinstall verwechselt
     wird, sind die beiden Programme nicht miteinander verwandt.

   Das bsdinstall Menu:system wird durch die Pfeiltasten gesteuert,
   Enter, Tab, Space und andere Tasten.

     --------------------------------------------------------------

  3.5.1. Die Tastaturbelegung auswa:hlen

   Abha:ngig davon, welche Systemkonsole verwendet wird, fragt
   bsdinstall am Anfang ab, ob eine nicht-Standard Tastaturbelegung
   festgelegt werden soll.

   Abbildung 3-4. Tastaturbelegung festlegen

   Wenn [ YES ] ausgewa:hlt wird, wird der folgende
   Tastaturauswahlbildschirm angezeigt. Andernfalls wird dieser
   Auswahlbildschirm nicht gezeigt und eine Standardtastaturbelegung
   genutzt.

   Abbildung 3-5. Tastaturauswahlbildschirm

   Wa:hlen Sie die Tastenbelegung, die Ihrer am System
   angeschlossenen Tastatur am na:chsten kommt, indem Sie die
   Pfeiltasten Hoch/Runter verwenden und anschliessend Enter
   dru:cken.

     Anmerkung: Durch dru:cken von Esc wird die Standardbelegung
     eingestellt. United States of America ISO-8859-1 ist eine
     sichere Option, falls Sie sich unsicher sind, welche Auswahl Sie
     treffen sollen.

     --------------------------------------------------------------

  3.5.2. Den Rechnernamen festlegen

   Als na:chstes fragt Sie bsdinstall nach dem Rechnernamen, der in
   dem neu zu installierenden System verwendet werden soll.

   Abbildung 3-6. Festlegen des Rechnernamens

   Der eingegebene Rechnername sollte ein voll-qualifizierter
   Rechnername sein, so wie z.B. machine3.example.com

     --------------------------------------------------------------

  3.5.3. Auswahl der zu installierenden Komponenten

   Im na:chsten Schritt fragt Sie bsdinstall, die optionalen
   Komponenten fu:r die Installation auszuwa:hlen.

   Abbildung 3-7. Komponenten fu:r die Installation auswa:hlen

   Die Entscheidung, welche Komponenten auszuwa:hlen sind, ha:ngt
   gro:sstenteils davon ab, fu:r was das System ku:nftig eingesetzt
   werden soll und der zur Verfu:gung stehende Plattenplatz. Der
   FreeBSD-Kernel und die Systemprogramme (zusammengenommen auch als
   "Basissystem" bezeichnet) werden immer installiert.

   Abha:ngig vom Typ der Installation, werden manche dieser
   Komponenten nicht erscheinen.

   Optionale Komponenten

     * doc - Zusa:tzliche Dokumentation, meistens eher von
       historischem Interesse. Dokumentation, wie Sie vom FreeBSD
       Dokumentationsprojekt bereitgestellt wird, kann zu einem
       spa:teren Zeitpunkt noch installiert werden.

     * games - Mehrere traditionelle BSD-Spiele, sowohl fortune,
       rot13 und andere.

     * lib32 - Kompatibilita:ts-Bibliotheken, um 32-bit Anwendungen
       auf der 64-bit Version von FreeBSD laufen zu lassen.

     * ports - Die FreeBSD Ports-Sammlung.

       Die Ports-Sammlung stellt eine einfache und praktische Art
       dar, Software zu installieren. Die Ports-Sammlung entha:lt
       nicht den no:tigen Quellcode, um die Software zu erstellen.
       Stattdessen handelt es sich um einen Sammlung von Dateien, die
       das herunterladen, erstellen und installieren von
       Drittanbietersoftware automatisiert. Kapitel 5 behandelt die
       Verwendung der Ports-Sammlung.

         Warnung: Das Installationsprogramm pru:ft nicht, ob
         genu:gend Plattenplatz zur Verfu:gung steht. Wa:hlen Sie
         diese Option nur, wenn Sie u:ber ausreichend
         Festplattenspeicher verfu:gen. Seit FreeBSD 9.0, nimmt die
         Ports-Sammlung etwa ports.size; Plattenplatz ein. Sie
         ko:nnen fu:r neuere Versionen von FreeBSD einen gro:sseren
         Wert annehmen.

     * src - Quellcode fu:r das System.

       FreeBSD wird mit allen Quellen fu:r den Kernel und die
       Systemprogramme ausgeliefert. Obwohl dies fu:r die meisten
       Anwendungen nicht beno:tigt wird, kann es doch fu:r manche
       Software, die als Quellcode verbreitet wird (beispielsweise
       Gera:tetreiber oder Kernelmodule), oder um an FreeBSD selbst
       mitzuentwickeln, notwendig sein.

       Der komplette Quellcodebaum beno:tigt 1 GB Plattenplatz und um
       das gesamte Betriebssystem neu zu erstellen, werden
       zusa:tzliche 5 GB Platz beno:tigt.

     --------------------------------------------------------------

3.6. Installation aus dem Netzwerk

   Die bootonly-Installationsmedien entha:lt keine Kopien der
   Installationsdateien. Wenn eine bootonly-Installationsmethode
   verwendet wird, mu:ssen die Dateien u:ber eine Netzwerkverbindung
   u:bertragen werden, sobald diese beno:tigt werden.

   Abbildung 3-8. Installation u:ber das Netzwerk

   Nachdem die Netzwerkverbindung wie in Abschnitt 3.9.2 konfiguriert
   wurde, kann ein Spiegelserver ausgewa:hlt werden. Spiegelserver
   dienen zur Zwischenspeicherung von Kopien der FreeBSD-Dateien.
   Wa:hlen Sie einen Spiegelserver, welcher in der gleichen Region
   auf der Welt beheimatet ist, wie der Computer, auf dem FreeBSD
   installiert werden soll. Dateien ko:nnen so viel schneller
   u:bertragen werden, wenn der Spiegelserver sich n"her am
   Zielcomputer befindet und die Installationszeit wird somit
   reduziert.

   Abbildung 3-9. Einen Spiegelserver wa:hlen

   Die Installation wird auf die gleiche Weise fortfahren, als
   wu:rden die Installationsdateien auf einem lokalen Medium
   vorliegen.

     --------------------------------------------------------------

3.7. Plattenplatz bereitstellen

   Es gibt drei Arten, Plattenplatz fu:r FreeBSD zur Verfu:gung zu
   stellen. Gefu:hrte Partitionierung richtet Partitionen automatisch
   ein, wa:hrend manuelle Partitionierung es fortgeschrittenen
   Anwendern erlaubt, selbstgewa:hlte Partitionen zu erzeugen.
   Schliesslich gbt es noch die Option eine Shell zu starten, auf der
   Kommandozeilenprogramme wie gpart(8), fdisk(8) und bsdlabel(8)
   direkt ausgefu:hrt werden ko:nnen.

   Abbildung 3-10. Gefu:hrte oder manuelle Partitionierung auswa:hlen

     --------------------------------------------------------------

  3.7.1. Gefu:hrte Partitionierung

   Sollten mehrere Platten angeschlossen sein, wa:hlen Sie diejenige
   aus, auf der FreeBSD installiert werden soll.

   Abbildung 3-11. Aus mehreren Platten eine auswa:hlen

   Die gesamte Festplatte oder nur ein Teil davon kann fu:r FreeBSD
   verwendet werden. Ein allgemeines Partitionslayout, das die
   gesamte Platte einnimmt wird erstellt, wenn [ Entire Disk ]
   ausgewa:hlt wird. Durch die Wahl von [ Partition ] wird ein
   Partitionslayout im unbenutzten Speicherplatz der Platte
   eingerichtet.

   Abbildung 3-12. Auswahl der gesamten Platte oder einer Partition

   Nachdem das Partitionslayout nun erstellt wurde, sollten Sie es
   danach noch einmal auf Korrektheit pru:fen. Sollten Sie einen
   Fehler gemacht haben, ko:nnen Sie durch Auswahl von [ Revert ]
   wieder die urspru:nglichen Partitionen setzen oder durch [ Auto ]
   die automatischen FreeBSD Partitionen wiederherstellen.
   Partitionen ko:nnen manuell erstellt, gea:ndert oder gelo:scht
   werden. Sollte die Partitionierung richtig sein, wa:hlen Sie
   [ Finish ] aus, um mit der Installation fortzufahren.

   Abbildung 3-13. U:berpru:fen der erstellen Partitionen

     --------------------------------------------------------------

  3.7.2. Manuelle Partitionierung

   Manuelle Partitionierung fu:hrt Sie direkt zum Partitionseditor.

   Abbildung 3-14. Partitionen manuell erstellen

   Durch hervorheben einer Platte (in diesem Fall ada0) und die
   Auswahl von [ Create ], wird ein Menu: zur Wahl des
   Partitionierungsschemas angezeigt.

   Abbildung 3-15. Partitionen manuell anlegen

   GPT-Partitionierung ist normalerweise die passendste Auswahl fu:r
   PC-kompatible Rechner. A:ltere PC Betriebssysteme, die nicht mit
   GPT kompatibel und beno:tigen stattdessen MBR-Partitionen. Die
   anderen Partitionsschemata werden fu:r gewo:hnlich fu:r a:ltere
   Computersysteme benutzt.

   Tabelle 3-1. Partitionierungsschemas

   Abku:rzung Beschreibung                                            
   APM        Apple Partition Map, von PowerPC(R) Macintosh           
              verwendet.                                              
   BSD        BSD-Labels ohne einen MBR, manchmal auch "dangerously   
              dedicated mode" genannt. Lesen Sie dazu bsdlabel(8).    
   GPT        GUID Partition Table.                                   
   MBR        Master Boot Record.                                     
   PC98       MBR-Variante, verwendet von NEC PC-98 Computern.        
   VTOC8      Volume Table Of Contents, von Sun SPARC64 und           
              UltraSPARC Computern verwendet.                         

   Nachdem das Partitionierungsschema ausgewa:hlt und erstellt wurde,
   werden durch erneute Auswahl von [ Create ] neue Partitionen
   erzeugt.

   Abbildung 3-16. Partitionen manuell erzeugen

   Eine FreeBSD-Standardinstallation mit GPT legt mindestens die
   folgenden drei Partitionen an:

   Standard-FreeBSD GPT-Partitionen

     * freebsd-boot - FreeBSD-Bootcode. Diese Partition muss die
       erste auf der Festplatte sein.

     * freebsd-ufs - Ein FreeBSD UFS-Dateisystem.

     * freebsd-swap - FreeBSD Auslagerungsbereich (swap space).

   Mehere Dateisystempartitionen ko:nnen benutzt werden und manche
   Leute ziehen es vor, ein traditionelles Layout mit getrennten
   Partitionen fu:r die Dateisysteme /, /var, /tmp und /usr zu
   erstellen. Lesen Sie dazu Beispiel 3-3, um ein Beispiel zu
   erhalten.

   Lesen Sie gpart(8) fu:r eine vollsta:ndige Liste von verfu:gbaren
   GPT-Partitionstypen.

   Gro:ssenangaben ko:nnen mit ga:ngigen Abku:rzungen eingegeben
   werden: K fu:r Kilobytes, M fu:r Megabytes oder G fu:r Gigabytes.

     Tipp: Korrekte Sektorausrichtung ermo:glicht gro:sstmo:gliche
     Geschwindigkeit und das Anlegen von Partitionsgro:ssen als
     vielfaches von 4K-Bytes hilft, die passende Ausrichtung auf
     Platten mit entweder 512-Bytes oder 4K-Bytes Sektorgro:ssen,
     festzulegen. Generell sollte die Verwendung von
     Partitionsgro:ssen, die sogar vielfache von 1M oder 1G sind, den
     einfachsten Weg darstellen, um sicher zu stellen, dass jede
     Partition an einem vielfachen von 4K beginnt. Eine Ausnahme gibt
     es: momentan sollte die freebsd-boot-Partition aufgrund von
     Beschra:nkungen im Bootcode nicht gro:sser sein als 512K.

   Ein Einha:gepunkt wird beno:tigt, falls diese Partition ein
   Dateisystem entha:lt. Falls nur eine einzelne UFS-Partition
   erstellt wird, sollte der Einha:ngepunkt / lauten.

   Ein label wird ebenfalls beno:tigt. Ein Label ist ein Name, durch
   den diese Partition angesprochen wird. Festplattennamen oder
   -nummern ko:nnen sich a:ndern, falls die Platte einmal an einem
   anderen Controller oder Port angeschlossen sein sollte, doch das
   Partitionslabel a:ndert sich dadurch nicht. Anstatt auf
   Plattennamen und Partitionsnummern in Dateien wie /etc/fstab zu
   verweisen, sorgen Labels dafu:r, dass das System
   Hardwa:rea:nderungen eher toleriert. GPT-Labels erscheinen in
   /dev/gpt/, wenn eine Platte angeschlossen wird. Andere
   Partitionierungsschemas besitzen unterschiedliche Fa:higkeiten,
   Labels zu verwenden und diese erscheinen in anderen
   /dev/-Verzeichnissen.

     Tipp: Vergeben Sie ein einzigartiges Label auf jedem Dateisystem
     um Konflikte mit identischen Labels zu verhindern. Ein paar
     Buchstaben des Computernamens, dessen Verwendungszweck oder
     Ortes kann dem Label hinzugefu:gt werden. Beispielsweise
     "labroot" oder "rootfs-lab" fu:r die UFS root-Partition auf
     einem Laborrechner.

   Beispiel 3-3. Ein traditionelles, partitioniertes Dateisystem
   erstellen

   Fu:r ein traditionelles Partitionslayout, in dem sich /, /var,
   /tmp und /usr in getrennten Partitionen befinden sollen, erstellen
   Sie ein GPT-Partitionsschema und anschliessend die Partitionen
   selbst. Die gezeigten Partitionsgro:ssen sind typisch fu:r eine
   Festplatte von 20 G. Falls mehr Platz verfu:gbar ist, sind
   gro:ssere Swap oder /var-Partitionen nu:tzlich. Den hier gezeigten
   Beschreibungen sind bsp fu:r "Beispiel" vorangestellt, jedoch
   sollten Sie andere, einzigartige Beschreibungen verwenden, wie
   oben beschrieben.

   Partitionstyp           Gro:sse           Eingeha:ngt Beschreibung 
                                                 als     
   freebsd-boot  512K                                                 
   freebsd-ufs   2G                          /           bsprootfs    
   freebsd-swap  4G                                      bspswap      
   freebsd-ufs   2G                          /var        bspvarfs     
   freebsd-ufs   1G                          /tmp        bsptmpfs     
                 Akzeptieren Sie die                                  
   freebsd-ufs   Standardeinstellungen (Rest /usr        bspusrfs
                 der Platte)                             

   Nachdem die selbstgewa:hlten Partitionen erzeugt wurden, wa:hlen
   Sie [ Finish ], um mit der Installation fortzusetzen.

     --------------------------------------------------------------

3.8. Die Installation festschreiben

   Dies ist die letzte Chance, die Installation abzubrechen, ohne
   A:nderungen an den Festplatten vorzunehmen.

   Abbildung 3-17. Letzte Besta:tigung

   Wa:hlen Sie [ Commit ] und dru:cken Sie Enter, um fortzufahren.
   Fall noch A:nderungen zu machen sind, wa:hlen Sie [ Back ], um zum
   Partitionseditor zuru:ck zu gelangen. Mittels [ Revert & Exit ]
   wird das Installationsprogramm beendet, ohne A:nderungen an den
   Festplatten durchzufu:hren.

   Die Installationsdauer ha:ngt von den gewa:hlten Distributionen,
   dem Installationsmedium und der Geschwindigkeit des Computers ab.
   Eine Reihe von Nachrichten werden angezeigt, um den Fortschritt
   darzustellen.

   Zuerst wird das Installationsprogramm die Partitionen auf die
   Platte schreiben und den Befehl newfs ausfu:hren, um die
   Partitionen zu initialisieren.

   Falls Sie eine Netzwerkinstallation vornehmen, wird bsdinstall
   dann mit dem herunterladen der beno:tigten Distributionsdateien
   fortfahren.

   Abbildung 3-18. Herunterladen der Distributionsdateien

   Als na:chstes wird die Integrita:t der Distributionsdateien
   u:berpru:ft, um sicherzustellen, dass diese wa:hrend des
   Ladevorgangs nicht bescha:digt oder unsauber vom
   Installationsmedium gelesen wurden.

   Abbildung 3-19. U:berpru:fen der Distributionsdateien

   Zum Schluss werden die u:berpru:ften Distributionsdateien auf die
   Festplatte entpackt.

   Abbildung 3-20. Entpacken der Distributionsdateien

   Sobald alle beno:tigten Distributionsdateien entpackt wurden, wird
   bsdinstall direkt mit den Arbeiten nach der Installation
   fortsetzen (siehe Abschnitt 3.9).

     --------------------------------------------------------------

3.9. Arbeiten nach der Installation

   Die Konfiguration von verschiedenen Optionen folgt auf eine
   erfolgreiche FreeBSD-Installation. Eine solche Option kann durch
   das erneute betreten der Konfigurationsoptionen aus dem letzten
   Menu: vor dem Neustart in das gerade installierte FreeBSD-System
   angepasst werden.

     --------------------------------------------------------------

  3.9.1. Setzen des root-Passworts

   Das root-Password muss gesetzt werden. Wichtig ist dabei zu
   wissen, dass die eingegebenen Zeichen nicht auf dem Bildschirm
   angezeigt werden. Nachdem das Passwort eingegeben wurde, muss es
   zur Besta:tigung erneut eingetippt werden. Damit werden auch
   Tippfehler verhindert.

   Abbildung 3-21. Das root-Passwort setzen

   Nachdem das Passwort erfolgreich gesetzt wurde, wird die
   Installation nun fortgesetzt.

     --------------------------------------------------------------

  3.9.2. Die Netzwerkschnittstelle konfigurieren

     Anmerkung: Die Netzwerkkonfiguration wird u:bersprungen, falls
     dies bereits als Teil der bootonly durchgefu:hrt worden ist.

   Eine Liste aller gefundenen Netzwerkschnittstellen, die auf diesem
   Computer gefunden wurden, wird als na:chstes angezeigt. Wa:hlen
   Sie davon eine aus, um diese zu konfigurieren.

   Abbildung 3-22. Eine zu konfigurierende Netzwerkschnittstelle
   auswa:hlen

     --------------------------------------------------------------

    3.9.2.1. Eine drahtlose Netzwerkverbindung einrichten

   Sollte eine drahtlose Netzwerkverbindung ausgewa:hlt worden sein,
   mu:ssen WLAN-Identifikation und Sicherheitsparameter nun
   eingegeben werden, um die Verbindung mit dem Netzwerk
   herzustellen.

   Drahtlose Netzwerke werden durch einen Service Set Identifier oder
   auch SSID genannt, identifiziert. Der SSID ist ein kurzer,
   eindeutiger Namen, der fu:r jedes Netzwerk vergeben wird.

   Die meisten drahtlosen Netzwerke verschlu:sseln die u:bertragenen
   Daten, um die Information darin vor unautorisiertem Zugriff zu
   schu:tzen. Die Verwendung von WPA2-Verschlu:sselung wird
   empfohlen. A:ltere Verschlu:sselungstypen, wie WEP, bieten nur
   sehr wenig Sicherheit.

   Der erste Schritt des Verbindungsaufbaus ist das drahtlose
   Netzwerk nach drahtlosen Zugriffspunkten (access points) zu
   scannen.

   Abbildung 3-23. Nach drahtlosen Access Points scannen

   SSIDs, die wa:hrend des scannens gefunden wurden, werden
   aufgelistet, gefolgt von einer Beschreibung der
   Verschlu:sselungsarten, die fu:r dieses Netzwerk verfu:gbar sind.
   Falls die gewu:nschte SSID nicht in der Liste auftaucht, wa:hlen
   Sie [ Rescan ], um erneut einen Scanvorgang durchzufu:hren. Falls
   dann das gewu:nschte Netzwerk immer noch nicht erscheint,
   u:berpru:fen Sie Ihre Antenne auf Verbindungsprobleme oder
   versuchen Sie, na:her an den Access point zu gelangen. Scannen Sie
   erneut nach jeder vorgenommenen A:nderung.

   Abbildung 3-24. Ein drahtloses Netzwerk auswa:hlen

   Die Verschlu:sselungsinformationen, um sich mit dem Netzwerk zu
   verbinden, werden nach der Auswahl des Netzwerks eingegeben. Mit
   WPA2 wird nur ein Passwort (auch bekannt als Pre-Shared Key oder
   PSK) beno:tigt. Zeichen, die in die Eingabebox getippt werden,
   erscheinen aus Sicherheitsgru:nden als Sternchen.

   Abbildung 3-25. Verbindungsaufbau mit WPA2

   Die Netzwerkkonfiguration wird fortgesetzt, nachdem das drahtlose
   Netzwerk und die Verbindungsinformationen eingegeben wurden.

     --------------------------------------------------------------

    3.9.2.2. Konfiguration des IPv4-Netzwerks

   Wa:hlen Sie, ob Sie ein IPv4-Netzwerk verwenden mo:chten. Dies ist
   der am ha:ufigsten vorkommende Typ einer Netzwerkverbindung.

   Abbildung 3-26. Auswahl von IPv4

   Es gibt zwei Arten, ein IPv4-Netzwerk zu konfigurieren. DHCP wird
   automatisch die Netzwerkschnittstelle richtig konfigurieren und
   sollte als bevorzugte Methode verwendet werden. Statische
   Konfiguration erfordert die manuelle Eingabe von
   Netzwerkinformationen.

     Anmerkung: Geben Sie keine zufa:llig gewa:hlten
     Netzwerkinformationen ein, da dies nicht funktionieren wird.
     Holen Sie sich die in Abschnitt 3.3.3 gezeigten Informationen
     von Ihrem Netzwerkadministrator oder Serviceprovider.

     --------------------------------------------------------------

      3.9.2.2.1. Netzwerkkonfiguration von IPv4 mittels DHCP

   Falls ein DHCP-Server zur Verfu:gung steht, wa:hlen Sie [ Yes ],
   um die Netzwerkschnittstelle automatisch einrichten zu lassen.

   Abbildung 3-27. Auswa:hlen der IPv4-Konfiguration u:ber DHCP

     --------------------------------------------------------------

      3.9.2.2.2. Statische IPv4-Netzwerkkonfiguration

   Statische Konfiguration der Netzwerkschnittstelle erfordert die
   die Eingabe einiger IPv4-Informationen.

   Abbildung 3-28. Statische IPv4-Konfiguration

     * IP-Adresse - Die manuell festgelegte IPv4-Adresse, welche
       diesem Computer zugewiesen werden soll. Diese Adresse muss
       eindeutig sein und darf von keinem anderen Gera:t im lokalen
       Netzwerk bereits verwendet werden.

     * Subnetzmaske - Die Subnetzmaske, die im lokalen Netzwerk
       Verwendung findet. Typischerweise ist dies 255.255.255.0.

     * Defaultrouter - Die IP-Adresse des Defaultrouters in diesem
       Netzwerk. Normalerweise ist das die Adresse des Routers oder
       einer anderen Netzwerkkomponente, die das lokale Netzwerk mit
       dem Internet verbindet. Auch bekannt als das Default Gateway.

     --------------------------------------------------------------

    3.9.2.3. Konfiguration des IPv6-Netzwerks

   IPv6 ist eine neuere Methode der Netzwerkkonfiguration. Falls IPv6
   verfu:gbar ist und verwendet werden soll, wa:hlen Sie [ Yes ] aus.

   Abbildung 3-29. Auswahl von IPv6

   IPv6 besitzt ebenfalls zwei Arten der Konfiguration. SLAAC, oder
   StateLess Address AutoConfiguration, wird die
   Netzwerkschnittstelle automatisch richtig konfigurieren. Statische
   Konfiguration verlangt die manuelle Eingabe von
   Netzwerkinformationen.

     --------------------------------------------------------------

      3.9.2.3.1. IPv6 Stateless Address Autoconfiguration

   SLAAC erlaubt es einer IPv6-Netzwerkkomponente, die Information
   zur automatischen Konfiguration von einem lokalen Router
   abzufragen. Lesen Sie RFC4862 fu:r weitere Informationen.

   Abbildung 3-30. Auswahl der IPv6 SLAAC-Konfiguration

     --------------------------------------------------------------

      3.9.2.3.2. Statische IPv6-Netzwerkkonfiguration

   Statische Konfiguration der Netzwerkschnittstelle beno:tigt die
   Eingabe von IPv6-Konfigurationsinformationen.

   Abbildung 3-31. Statische IPv6-Konfiguration

     * IPv6-Adresse - The manuell zugewiesene IP-Adresse, welche dem
       Computer zugeteilt werden soll. Diese Adresse muss eindeutig
       sein und nicht bereits von einer anderen Netzwerkkomponente im
       lokalen Netzwerk verwendet werden.

     * Defaultrouter - Die IPv6-Adresse des Defaultrouters in diesem
       Netzwerk. Normalerweise ist dies die Adresse des Routers oder
       einer anderen Netzwerkkomponente, welche das lokale Netz mit
       dem Internet verbindet. Auch bekannt als Default Gateway.

     --------------------------------------------------------------

    3.9.2.4. DNS-Konfiguration

   Der Domain Name System (oder auch DNS) Auflo:ser wandelt Hostnamen
   von und zu Netzwerkadressen um. Falls DHCP oder SLAAC verwendet
   wurde, um die Netzwerkschnittstelle zu konfigurieren, ist die
   Konfiguration fu:r den Auflo:ser mo:glicherweise bereits
   vorhanden. Andernfalls geben Sie den lokalen Netzwerkdoma:nennamen
   in das Suchfeld ein. DNS #1 und DNS #2 sind die IP-Adressen der
   lokalen DNS-Server. Zumindest ein DNS-Server wird beno:tigt.

   Abbildung 3-32. DNS-Konfiguration

     --------------------------------------------------------------

  3.9.3. Setzen der Zeitzone

   Das Setzen der Zeitzone fu:r Ihre Maschine erlaubt es, diese auf
   regionale Zeitvera:nderungen hin anzupassen und um andere
   zeitzonenbezogene Funktionen richtig durchzufu:hren.

   Das hier Beispiel gezeigte Beispiel bezieht sich auf einen Rechner
   in der o:stlichen Zeitzone der Vereinigten Staaten. Ihre Auswahl
   wird von Ihrer geographischen Position davon abweichen.

   Abbildung 3-33. Lokale oder UTC-Zeit

   Wa:hlen Sie [ Yes ] oder [ No ], abha:ngig davon, wie die
   Rechneruhr konfiguriert ist und dru:cken Sie dann Enter. Wenn Sie
   nicht wissen, ob Ihr System UTC oder lokale Zeit verwendet,
   wa:hlen Sie [ No ], um die am ha:ufigsten verwendete lokale Zeit
   zu setzen.

   Abbildung 3-34. Das Gebiet auswa:hlen

   Das passende Gebiet wird durch die Pfeiltasten und das
   anschliessende druu:cken von Enter gewa:hlt.

   Abbildung 3-35. Das Land auswa:hlen

   Wa:hlen Sie das zutreffende Land mit den Pfeiltasten und durch
   anschliessendes dru:cken von Enter aus.

   Abbildung 3-36. Wa:hlen einer Zeitzone

   Die passende Zeitzone wird durch die Pfeiltasten und
   anschliessendes dru:cken von Enter ausgewa:hlt.

   Abbildung 3-37. Besta:tigen der Zeitzone

   Besta:tigen Sie, dass die Abku:rzung fu:r die Zeitzone richtig
   ist. Wenn Ihnen diese richtig erscheint, dru:cken Sie Enter, um
   mit dem Rest der Konfiguration nach der Installation fortzufahren.

     --------------------------------------------------------------

  3.9.4. Zu aktivierende Dienste auswa:hlen

   Zusa:tzliche Systemdienste, die zur Startzeit aktiviert werden
   sollen, ko:nnen eingeschaltet werden. All diese Dienste sind
   optional.

   Abbildung 3-38. Auswahl zusa:tzlicher Dienste

   Zusa:tzliche Dienste

     * sshd - Secure Shell (SSH)-Dienst fu:r sicheren Fernzugriff.

     * moused - Sorgt fu:r Mausunterstu:tzung innerhalb der
       Systemkonsole.

     * ntpd - Network Time Protocol (NTP)-Dienst zur automatischen
       Uhrzeitsynchronisation.

     * powerd - Systemleistungskontrollwerkzeug zur Leistungsregelung
       und fu:r Stromsparfunktionen.

     --------------------------------------------------------------

  3.9.5. Absturzaufzeichnung aktivieren

   bsdinstall wird Sie fragen, ob die Absturzaufzeichnung auf dem
   Zielsystem aktiviert werden soll. Die Aktivierung von
   Absturzaufzeichnungen kann sehr nu:tzlich sein, um Systemfehler
   aufzuspu:ren, deswegen wird Anwendern empfohlen, diese so oft wie
   mo:glich einzusetzen. Wa:hlen Sie [ Yes ], um
   Absturzaufzeichnungen zu aktivieren oder [ No ], um ohne die
   Aufzeichnung von Abstu:rzen fortzufahren.

   Abbildung 3-39. Aktivierung der Absturzaufzeichnung

     --------------------------------------------------------------

  3.9.6. Benutzer hinzufu:gen

   Das hinzufu:gen von mindestens einem Benutzer wa:hrend der
   Installaton erlaubt das Benutzen des Systems ohne als
   root-Benutzer angemeldet zu sein. Wenn man als root angemeldet
   ist, gibt es so gut wie keine Beschra:nkungen oder Schutz vor dem,
   was man tun kann. Anmeldenals normaler Benutzer ist daher sicherer
   und bietet mehr Schutz.

   Wa:hlen Sie [ Yes ], um neue Benutzer hinzuzufu:gen.

   Abbildung 3-40. Benutzerkonten hinzufu:gen

   Geben Sie die no:tigen Informationen fu:r den Benutzer ein, der
   dem System hinzugefu:gt werden soll.

   Abbildung 3-41. Benutzerinformationen eingeben

   Benutzerinformationen

     * Username - Der Name des Benutzers, den man zur Anmeldung
       eingeben muss. Typischerweise der erste Buchstabe des
       Vornamens, gefolgt vom Nachnamen.

     * Full name - Der volle Name des Benutzers.

     * Uid - User ID. Normalerweise wird dieses Feld leer gelassen,
       so dass das System einen Wert vergibt.

     * Login group - Die Benutzergruppe. Normalerweise bleibt dieses
       Feld leer, um die Standardgruppe zu akzeptieren.

     * Invite user into other groups? - Zusa:tzliche Gruppen zu denen
       der Benutzer als Mitglied hinzugefu:gt werden soll.

     * Login class - In der Regel bleibt dieses Feld leer.

     * Shell - Die interaktive Shell fu:r diesen Benutzer. In diesem
       Beispiel wurde csh(1) ausgewa:lt.

     * Home directory - Das Heimatverzeichnis des Benutzers. Die
       Vorgabe ist fu:r gewo:hnlich richtig.

     * Home directory permissions - Zugriffsrechte auf das
       Heimatverzeichnis des Benutzers. Die Vorgabe ist normalerweise
       die passende.

     * Use password-based authentication? Normalerweise "yes".

     * Use an empty password? - Normalerweise "no".

     * Use a random password? - Normalerweise "no".

     * Enter password - Das Passwort f"r diesem Benutzer. Eingegebene
       Zeichen werden nicht am Bildschirm angezeigt.

     * Enter password again - Das Passwort muss zur U:berpru:fung
       erneut eingegeben werden.

     * Lock out the account after creation? - Normalerweise "no".

   Nachdem alles eingegeben wurde, wird eine Zusammenfassung
   angezeigt und das System fragt Sie, dies so korrekt ist. Falls ein
   Eingabefehler gemacht wurde, geben Sie no ein und versuchen es
   erneut. Falls alles in Ordnung ist, dru:cken Sie yes, um den neuen
   Benutzer anzulegen.

   Abbildung 3-42. Verlassen der Benutzer- und Gruppenverwaltung

   Falls es mehr Benutzer hinzuzufu:gen gibt, beantworten Sie die
   Frage "Add another user?" mit yes. Geben Sie no ein, wird das
   hinzufu:gen von Benutzern beendet und die Installation
   fortgesetzt.

   Fu:r weitere Informationen zum hinzufu:gen von Benutzern und deren
   Verwaltung, lesen Sie Kapitel 14.

     --------------------------------------------------------------

  3.9.7. Letzte Konfigurationsschritte

   Nachdem alles installiert und konfiguriert wurde, bekommen Sie
   noch eine letzte Chance, um Einstellungen zu vera:ndern.

   Abbildung 3-43. Letzte Schritte der Konfiguration

   Verwenden Sie dieses Menu:, um noch letzte A:nderungen oder
   zusa:tzliche Konfigurationen vor dem Abschliessen der Installation
   zu ta:tigen.

   Letzte Konfigurationsoptionen

     * Add User - Beschrieben in Abschnitt 3.9.6.

     * Root Password - Beschrieben in Abschnitt 3.9.1.

     * Hostname - Beschrieben in Abschnitt 3.5.2.

     * Network - Beschrieben in Abschnitt 3.9.2.

     * Services - Beschrieben in Abschnitt 3.9.4.

     * Time Zone - Beschrieben in Abschnitt 3.9.3.

     * Handbook - Herunterladen und installieren des FreeBSD
       Handbuchs (welches Sie gerade lesen).

   Nachdem die lezten Konfigurationsschritte beendet sind, wa:hlen
   Sie Exit, um die Installation zu verlassen.

   Abbildung 3-44. Manuelle Konfiguration

   bsdinstall wird nach zusa:tzlichen Konfigurationen, die noch zu
   ta:tigen sind, fragen, bevor in das neue System gebootet wird.
   Wa:hlen Sie [ Yes ], um in eine Shell innerhalb des neuen Systems
   zu wechseln oder [ No ], um mit dem letzten Schritt der
   Installation zu beginnen.

   Abbildung 3-45. Die Installation vervollsta:ndigen

   Wenn weitere Konfigurationen oder besondere Einstellungen
   beno:tigt werden, kann durch auswa:hlen von [ Live CD ] das
   Installationsmedium im Live CD Modus gestartet werden.

   Wenn die Installation vollsta:ndig ist, wa:hlen Sie [ Reboot ], um
   den Computer neu zu starten und das neu installierte
   FreeBSD-System zu booten. Vergessen Sie nicht, die FreeBSD
   Installations-CD, -DVD oder den USB-Stick zu entfernen, oder der
   Computer wird erneut davon starten.

     --------------------------------------------------------------

  3.9.8. FreeBSD starten und herunterfahren

    3.9.8.1. FreeBSD/i386 starten

   Wenn FreeBSD startet, werden viele Informationsmeldungen
   ausgegeben. Die meisten davon werden aus dem Bildschirm
   verschwinden, das ist normal. Nachdem das System den Startvorgang
   abgeschlossen hat, wird eine Anmeldeaufforderungen angezeigt. Um
   Nachrichten, die aus dem Bildschirm gelaufen sind, zu sehen,
   aktivieren Sie durch dru:cken von Scroll-Lock den scroll-back
   buffer. Die Tasten PgUp, PgDn und die Pfeiltasten dienen zur
   Navigation durch die Nachrichten. Durch erneutes dru:cken von
   Scroll-Lock wird der Bildschirm wieder entsperrt und kehrt zur
   normalen Anzeige zuru:ck.

   Am login:-Bildschirm geben Sie den Benutzernamen ein, den Sie
   wa:hrend der Installation angelegt haben, in diesem Fall ist das
   asample. Vermeiden Sie die Anmeldung als root, ausser wenn es
   wirklich notwendig ist.

   Der oben beschriebene scroll-back buffer ist in der Gro:sse
   beschra:nkt, somit werden vielleicht nicht alle Nachrichten
   sichtbar sein. Nach dem Anmelden ko:nnen die meisten davon aus der
   Kommandozeile aus durch eingabe von dmesg | less betrachtet
   werden. Durch dru:cken von q kehren Sie wieder zur Kommandozeile
   zuru:ck.

   Typische Startmeldungen (Versionsinformationen wurden hier
   weggelassen):

 Copyright (c) 1992-2011 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
 FreeBSD is a registered trademark of The FreeBSD Foundation.

     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
 CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (3007.77-MHz K8-class CPU)
   Origin = "GenuineIntel"  Id = 0x10676  Family = 6  Model = 17  Stepping = 6
   Features=0x783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2>
   Features2=0x209<SSE3,MON,SSSE3>
   AMD Features=0x20100800<SYSCALL,NX,LM>
   AMD Features2=0x1<LAHF>
 real memory  = 536805376 (511 MB)
 avail memory = 491819008 (469 MB)
 Event timer "LAPIC" quality 400
 ACPI APIC Table: <VBOX   VBOXAPIC>
 ioapic0: Changing APIC ID to 1
 ioapic0 <Version 1.1> irqs 0-23 on motherboard
 kbd1 at kbdmux0
 acpi0: <VBOX VBOXXSDT> on motherboard
 acpi0: Power Button (fixed)
 acpi0: Sleep Button (fixed)
 Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
 acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
 cpu0: <ACPI CPU> on acpi0
 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
 pci0: <ACPI PCI bus> on pcib0
 isab0: <PCI-ISA bridge> at device 1.0 on pci0
 isa0: <ISA bus> on isab0
 atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xd000-0xd00f at device 1.1 on pci0
 ata0: <ATA channel 0> on atapci0
 ata1: <ATA channel 1> on atapci0
 vgapci0: <VGA-compatible display> mem 0xe0000000-0xe0ffffff irq 18 at device 2.0 on pci0
 em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd010-0xd017 mem 0xf0000000-0xf001ffff irq 19 at device 3.0 on pci0
 em0: Ethernet address: 08:00:27:9f:e0:92
 pci0: <base peripheral> at device 4.0 (no driver attached)
 pcm0: <Intel ICH (82801AA)> port 0xd100-0xd1ff,0xd200-0xd23f irq 21 at device 5.0 on pci0
 pcm0: <SigmaTel STAC9700/83/84 AC97 Codec>
 ohci0: <OHCI (generic) USB controller> mem 0xf0804000-0xf0804fff irq 22 at device 6.0 on pci0
 usbus0: <OHCI (generic) USB controller> on ohci0
 pci0: <bridge> at device 7.0 (no driver attached)
 acpi_acad0: <AC Adapter> on acpi0
 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
 atkbd0: <AT Keyboard> irq 1 on atkbdc0
 kbd0 at atkbd0
 atkbd0: [GIANT-LOCKED]
 psm0: <PS/2 Mouse> irq 12 on atkbdc0
 psm0: [GIANT-LOCKED]
 psm0: model IntelliMouse Explorer, device ID 4
 attimer0: <AT timer> port 0x40-0x43,0x50-0x53 on acpi0
 Timecounter "i8254" frequency 1193182 Hz quality 0
 Event timer "i8254" frequency 1193182 Hz quality 100
 sc0: <System console> at flags 0x100 on isa0
 sc0: VGA <16 virtual consoles, flags=0x300>
 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
 atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0
 Event timer "RTC" frequency 32768 Hz quality 0
 ppc0: cannot reserve I/O port range
 Timecounters tick every 10.000 msec
 pcm0: measured ac97 link rate at 485193 Hz
 em0: link state changed to UP
 usbus0: 12Mbps Full Speed USB v1.0
 ugen0.1: <Apple> at usbus0
 uhub0: <Apple OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
 cd0 at ata1 bus 0 scbus1 target 0 lun 0
 cd0: <VBOX CD-ROM 1.0> Removable CD-ROM SCSI-0 device
 cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
 cd0: Attempt to query device size failed: NOT READY, Medium not present
 ada0 at ata0 bus 0 scbus0 target 0 lun 0
 ada0: <VBOX HARDDISK 1.0> ATA-6 device
 ada0: 33.300MB/s transfers (UDMA2, PIO 65536bytes)
 ada0: 12546MB (25694208 512 byte sectors: 16H 63S/T 16383C)
 ada0: Previously was known as ad0
 Timecounter "TSC" frequency 3007772192 Hz quality 800
 Root mount waiting for: usbus0
 uhub0: 8 ports with 8 removable, self powered
 Trying to mount root from ufs:/dev/ada0p2 [rw]...
 Setting hostuuid: 1848d7bf-e6a4-4ed4-b782-bd3f1685d551.
 Setting hostid: 0xa03479b2.
 Entropy harvesting: interrupts ethernet point_to_point kickstart.
 Starting file system checks:
 /dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS
 /dev/ada0p2: clean, 2620402 free (714 frags, 327461 blocks, 0.0% fragmentation)
 Mounting local file systems:.
 vboxguest0 port 0xd020-0xd03f mem 0xf0400000-0xf07fffff,0xf0800000-0xf0803fff irq 20 at device 4.0 on pci0
 vboxguest: loaded successfully
 Setting hostname: machine3.example.com.
 Starting Network: lo0 em0.
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
         options=3<RXCSUM,TXCSUM>
         inet6 ::1 prefixlen 128
         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
         inet 127.0.0.1 netmask 0xff000000
         nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
         ether 08:00:27:9f:e0:92
         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
         media: Ethernet autoselect (1000baseT <full-duplex>)
         status: active
 Starting devd.
 Starting Network: usbus0.
 DHCPREQUEST on em0 to 255.255.255.255 port 67
 DHCPACK from 10.0.2.2
 bound to 192.168.1.142 -- renewal in 43200 seconds.
 add net ::ffff:0.0.0.0: gateway ::1
 add net ::0.0.0.0: gateway ::1
 add net fe80::: gateway ::1
 add net ff02::: gateway ::1
 ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib
 32-bit compatibility ldconfig path: /usr/lib32
 Creating and/or trimming log files.
 Starting syslogd.
 No core dumps found.
 Clearing /tmp (X related).
 Updating motd:.
 Configuring syscons: blanktime.
 Generating public/private rsa1 key pair.
 Your identification has been saved in /etc/ssh/ssh_host_key.
 Your public key has been saved in /etc/ssh/ssh_host_key.pub.
 The key fingerprint is:
 10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com
 The key's randomart image is:
 +--[RSA1 1024]----+
 |    o..          |
 |   o . .         |
 |  .   o          |
 |       o         |
 |    o   S        |
 |   + + o         |
 |o . + *          |
 |o+ ..+ .         |
 |==o..o+E         |
 +-----------------+
 Generating public/private dsa key pair.
 Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
 Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
 The key fingerprint is:
 7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com
 The key's randomart image is:
 +--[ DSA 1024]----+
 |       ..     . .|
 |      o  .   . + |
 |     . ..   . E .|
 |    . .  o o . . |
 |     +  S = .    |
 |    +  . = o     |
 |     +  . * .    |
 |    . .  o .     |
 |      .o. .      |
 +-----------------+
 Starting sshd.
 Starting cron.
 Starting background file system checks in 60 seconds.

 Thu Oct  6 19:15:31 MDT 2011

 FreeBSD/amd64 (machine3.example.com) (ttyv0)

 login:

   Das Generieren der RSA- und DSA-Schlu:ssel kann auf langsameren
   Rechnern einige Zeit beno:tigen. Dies geschieht nur wa:hrend der
   Startphase einer neuen Installation und auch nur, wenn sshd zum
   automatischen Start gesetzt ist. Die nachfolgenden Startvorga:nge
   werden schneller sein.

   FreeBSD installiert standardma:ssig keine graphische Umgebung,
   jedoch stehen viele zur Verfu:gung. Lesen Sie Kapitel 6 fu:r
   weitere Informationen.

     --------------------------------------------------------------

  3.9.9. FreeBSD herunterfahren

   Das korrekte herunterfahren eines FreeBSD-Computers hilft, beugt
   dem Datenverlust vor und schu:tzt sogar die Hardware vor Scha:den.
   Schalten Sie nicht einfach den Strom ab. Wenn der Benutzer ein
   Mitglied der wheel-Gruppe ist, ko:nnen Sie zum Superuser durch die
   Eingabe von su und der anschliessenden Eingabe des Passworts von
   root werden. Andernfalls melden Sie sich mit root an und verwenden
   den Befehl shutdown -p now. Das System wird jetzt sauber
   heruntergefahren und den Rechner ausschalten.

   Die Ctrl+Alt+Del Kombination kann verwendet werden, um das System
   neu zu starten, jedoch wird dies nicht wa:hrend des normalen
   Betriebs empfohlen.

     --------------------------------------------------------------

3.10. Fehlerbehebung

   Der folgende Abschnitt behandelt einfache Fehlerbehebungen fu:r
   die Installation, wie beispielsweise ha:ufig auftretende Fehler,
   die von Anwendern berichtet wurden.

     --------------------------------------------------------------

  3.10.1. Was man tun sollte, wenn etwas schiefgeht

   Wegen verschiedener Limitierungen der PC-Architektur ist es
   unmo:glich dass die Gera:teerkennung 100% verla:sslich
   funktioniert. Jedoch gibt es ein paar Dinge, die man tun kann,
   wenn es fehlschla:gt.

   U:berpru:fen Sie das Dokument Hardware Notes nach Ihrer Version
   von FreeBSD, um sicher zu stellen, dass Ihre Hardware auch
   unterstu:tzt wird.

   Wenn Ihre Hardware unterstu:tzt wird und Sie immer noch Abstu:rze
   oder andere Probleme erleben, mu:ssen Sie einen eigenen Kernel
   bauen. Das wird Ihnen erlauben, Unterstu:tzung fu:r Gera:te, die
   im GENERIC-Kernel nicht vorhanden sind, hinzuzufu:gen. Der Kernel
   auf den Bootmedien ist mit der Annahme konfiguriert, dass die
   Hardwaregera:te sich in Ihren Fabrikeinstellungen in Bezug auf
   IRQs, I/O-Adressen und DMA-Kana:len befinden. Wenn Ihre Hardware
   neu konfiguriert wurde, werden Sie mo:glicherweise die
   Konfiguration des Kernels bearbeiten und diesen neu erstellen
   mu:ssen, um FreeBSD mitzuteilen, wo es gewisse Dinge zu finden
   hat.

   Es ist auch mo:glich, dass ein fehlerhaft erkanntes Gera:t die
   Erkennung eines vorhandenen, spa:teren Gera:ts ebenfalls
   fehlschlagen la:sst. In diesem Fall sollte die Erkennung des
   fehlerhaften Gera:tetreibers deaktiviert werden.

     Anmerkung: Manche Installationsprobleme ko:nnen Aktualisierung
     der Firmware auf verschiedenen Hardwarekomponenten verhindert
     oder verringert werden, meistens am Mainboard. Mit
     Mainboard-Firmware ist fu:r gewo:hnlich das BIOS gemeint. Die
     meisten Mainboard- und Computerhersteller haben eine Webseite
     mit Aktualisierungen und Informationen zur Durchfu:hrung.

     Hersteller raten meist von einer Aktualisierung des
     Mainboard-BIOS ab, ausser es gibt einen guten Grund dafu:r, wie
     beispielsweise eine kritische Aktualisierung. Der
     Aktualisierungsvorgang kann schiefgehen, was das BIOS
     unvollsta:ndig macht und den Computer nicht mehr starten la:sst.

     --------------------------------------------------------------

  3.10.2. Fragen und Antworten zur Fehlerbehebung

   3.10.2.1. Mein System ha:ngt wa:hrend die Gera:teerkennung beim
   Starten durchgefu:hrt wird oder verha:lt sich merkwu:rdig wa:hrend
   der Installation.

   3.10.2.1. Mein System ha:ngt wa:hrend die Gera:teerkennung beim
   Starten durchgefu:hrt wird oder verha:lt sich merkwu:rdig wa:hrend
   der Installation.

   FreeBSD macht starken Gebrauch vom ACPI-Dienst des Systems auf den
   i386-, amd64-, and ia64-Platformen, um den System bei der
   Konfiguration wa:hrend des Startvorgangs zu helfen. Leider
   existieren immer noch Fehler im ACPI-Treiber, in den Mainboards
   und der BIOS-Firmware. ACPI kann durch setzen der Einstellung
   hint.acpi.0.disabled im dritten Teil des Bootloaders deaktiviert
   werden:

 set hint.acpi.0.disabled="1"

   Dies wird nach jedem Neustart des Systems wieder zuru:ckgesetzt,
   also ist es notwendig, die Zeile hint.acpi.0.disabled="1" zu der
   Datei /boot/loader.conf hinzuzufu:gen. Weitere Informationen u:ber
   den Bootloader lassen sich in Abschnitt 13.1 nachlesen.

     --------------------------------------------------------------

             Kapitel 4. Grundlagen des UNIX Betriebssystems

   Umgeschrieben von Chris Shumway. U:bersetzt von Uwe Pierau.

4.1. U:bersicht

   Das folgende Kapitel umfasst die grundlegenden Kommandos und
   Funktionsweisen des Betriebssystems FreeBSD. Viel von dem
   folgenden Material gilt auch fu:r jedes andere UNIX-artige System.
   Falls Sie mit dem Material schon vertraut sind, ko:nnen Sie dieses
   Kapitel u:berlesen. Wenn FreeBSD neu fu:r Sie ist, dann sollten
   Sie dieses Kapitel auf jeden Fall aufmerksam lesen.

   Dieser Abschnitt behandelt die folgenden Themen:

     * virtuelle Konsolen,

     * Zugriffsrechte unter UNIX sowie Datei-Flags unter FreeBSD,

     * Zugriffskontrolllisten fu:r Dateisysteme,

     * die Verzeichnisstruktur von FreeBSD,

     * Organisation von Dateisystemen unter FreeBSD,

     * Ein- und Abha:ngen von Dateisystemen,

     * Prozesse, Da:monen und Signale,

     * Shells und die Login-Umgebung,

     * Texteditoren,

     * Gera:te und Gera:tedateien,

     * Bina:rformate unter FreeBSD und

     * wie Sie in den Manualpages nach weiteren Informationen suchen
       ko:nnen.

     --------------------------------------------------------------

4.2. Virtuelle Konsolen und Terminals

   Sie ko:nnen FreeBSD mit einem Terminal benutzen, der nur Text
   darstellen kann. Wenn Sie FreeBSD auf diese Weise benutzen, stehen
   Ihnen alle Mo:glichkeiten eines UNIX Betriebssystems zur
   Verfu:gung. Dieser Abschnitt beschreibt was Terminals und Konsolen
   sind und wie sie unter FreeBSD eingesetzt werden.

     --------------------------------------------------------------

  4.2.1. Die Konsole

   Wenn Ihr FreeBSD-System ohne eine graphische Benutzeroberfla:che
   startet, wird am Ende des Systemstarts, nachdem die Startskripten
   gelaufen sind, ein Anmeldeprompt ausgegeben. Die letzten
   Startmeldungen sollten a:hnlich wie die Folgenden aussehen:

 Additional ABI support:.
 Local package initialization:.
 Additional TCP options:.

 Fri Sep 20 13:01:06 EEST 2002

 FreeBSD/i386 (pc3.example.org) (ttyv0)

 login:

   Beachten Sie die letzten beiden Zeilen der Ausgabe, die vorletzte
   lautet:

 FreeBSD/i386 (pc3.example.org) (ttyv0)

   Diese Zeile entha:lt einige Informationen u:ber das gerade
   gestartete System. Die Ausgabe stammt von der FreeBSD-Konsole
   einer Maschine mit einem Intel oder Intel-kompatiblen Prozessor
   der x86-Architektur[1]. Der Name des Systems (jedes UNIX System
   besitzt einen Namen) ist pc3.example.org und die Ausgabe stammt
   von der Systemkonsole, dem Terminal ttyv0.

   Das Ende der Ausgabe ist immer die Aufforderung zur Eingabe eines
   Benutzernamens:

 login:

   Der Anmeldevorgang wird im na:chsten Abschnitt erla:utert.

     --------------------------------------------------------------

  4.2.2. Der Anmeldevorgang

   FreeBSD ist ein Mehrbenutzersystem, das Multitasking unterstu:tzt.
   Das heisst mehrere Benutzer ko:nnen gleichzeitig viele Programme
   auf einem System laufen lassen.

   Jedes Mehrbenutzersystem muss die Benutzer voneinander
   unterscheiden ko:nnen. Bei FreeBSD und allen anderen UNIX-artigen
   Betriebssystemen wird dies dadurch erreicht, dass sich die
   Benutzer anmelden mu:ssen, bevor sie Programme laufen lassen
   ko:nnen. Jeder Benutzer besitzt einen eindeutigen Namen (den
   Account) und ein dazugeho:rendes Passwort, die beide bei der
   Anmeldung abgefragt werden.

   Nachdem FreeBSD gestartet ist und die Startskripten[2], gelaufen
   sind, erscheint eine Aufforderung zur Eingabe des Benutzernamens:

 login:

   Wenn Ihr Benutzername beispielsweise john ist, geben Sie jetzt
   john gefolgt von Enter ein. Sie sollten dann eine Aufforderung zur
   Eingabe des Passworts erhalten:

 login: john
 Password:

   Geben Sie jetzt das Passwort von john gefolgt von Enter ein. Das
   Passwort wird aus Sicherheitsgru:nden nicht auf dem Bildschirm
   angezeigt.

   Wenn Sie das richtige Passwort eingegeben haben, sind Sie am
   System angemeldet und ko:nnen nun alle verfu:gbaren Kommandos
   absetzen.

   Anmgemeldet sind Sie, wenn Sie die Tagesmeldungen (message of
   today) gefolgt von einer Eingabeaufforderung (dem Zeichen #, $
   oder %) gesehen haben.

     --------------------------------------------------------------

  4.2.3. Virtuelle Konsolen

   Da FreeBSD mehrere Programme gleichzeitig laufen lassen kann, ist
   eine einzige Konsole, an der Kommandos abgesetzt werden ko:nnen,
   zu wenig. Abhilfe schaffen virtuelle Konsolen, die mehrere
   Konsolen zur Verfu:gung stellen.

   Die Anzahl der virtuellen Konsolen unter FreeBSD ko:nnen Sie
   einstellen. Zwischen den einzelnen Konsolen ko:nnen Sie mit
   speziellen Tastenkombinationen wechseln. Jede Konsole verfu:gt
   u:ber einen eigenen Ausgabekanal und FreeBSD ordnet die
   Tastatureingaben und Monitorausgaben der richtigen Konsole zu,
   wenn Sie zwischen den Konsolen wechseln.

   Zum Umschalten der Konsolen stellt FreeBSD spezielle
   Tastenkombinationen bereit[3]. Benutzen Sie Alt-F1, Alt-F2 bis
   Alt-F8, um zwischen den verschiedenen Konsolen umzuschalten.

   Wenn Sie zu einer anderen Konsole wechseln, sichert FreeBSD den
   Bildschirminhalt und gibt den Bildschirminhalt der neuen Konsole
   aus. Dies erzeugt die Illusion mehrerer Bildschirme und
   Tastaturen, an denen Sie Kommandos absetzen ko:nnen. Wenn eine
   Konsole nicht sichtbar ist, weil Sie auf eine andere Konsole
   gewechselt haben, laufen die dort abgesetzten Kommandos weiter.

     --------------------------------------------------------------

  4.2.4. /etc/ttys

   In der Voreinstellung stehen unter FreeBSD acht virtuelle Konsolen
   zur Verfu:gung, deren Anzahl Sie leicht erho:hen oder verringern
   ko:nnen. Die Anzahl und Art der Konsolen wird in /etc/ttys
   eingestellt.

   Jede Zeile in /etc/ttys, die nicht mit # anfa:ngt, konfiguriert
   einen Terminal oder eine virtuelle Konsole. In der Voreinstellung
   werden in dieser Datei neun virtuelle Konsolen definiert, von
   denen acht aktiviert sind. Die Konsolen sind in den Zeilen, die
   mit ttyv beginnen, definiert:

 # name  getty                           type    status          comments
 #
 ttyv0   "/usr/libexec/getty Pc"         cons25  on  secure
 # Virtual terminals
 ttyv1   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv2   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv3   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv4   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv5   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv6   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv7   "/usr/libexec/getty Pc"         cons25  on  secure
 ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure

   Die Hilfeseite ttys(5) entha:lt eine ausfu:hrliche Beschreibung
   der Spalten dieser Datei und der Optionen, die Sie zum
   Konfigurieren der virtuellen Konsolen benutzen ko:nnen.

     --------------------------------------------------------------

  4.2.5. Die Konsole im Single-User-Modus

   Eine eingehende Beschreibung des Single-User-Modus finden Sie in
   Abschnitt 13.6.2. Im Single-User-Modus steht Ihnen nur eine
   Konsole zur Verfu:gung. Die Definition dieser Konsole befindet
   sich ebenfalls in /etc/ttys. Suchen Sie nach einer Zeile, die mit
   console beginnt:

 # name  getty                           type    status          comments
 #
 # If console is marked "insecure", then init will ask for the root password
 # when going to single-user mode.
 console none                            unknown off secure

     Anmerkung: In der Zeile, die mit console beginnt, ko:nnen Sie
     secure durch insecure ersetzen. Wenn Sie danach in den
     Single-User-Modus booten, verlangt das System ebenfalls die
     Eingabe des root-Passworts.

     Setzen Sie insecure nicht leichtfertig ein. Wenn Sie das
     Passwort von root vergessen, wird es schwierig, in den
     Single-User-Modus zu gelangen, wenn Sie den FreeBSD-Boot-Prozess
     nicht genau verstehen.

     --------------------------------------------------------------

  4.2.6. Den Videomodus der Konsole anpassen

   Der Standard-Videomodus der FreeBSD-Konsole kann auf jeden Modus
   eingestellt werden, der von Ihrer Grafikkarte und Ihrem Monitor
   unterstu:tzt wird (beispielsweise 1024x768 oder 1280x1024). Wollen
   Sie eine andere Einstellung verwenden, mu:ssen Sie Ihren Kernel
   neu kompilieren, nachdem Sie die zwei folgenden Zeilen in Ihre
   Kernelkonfigurationsdatei aufgenommen haben:

 OPTIONS VESA
 options SC_PIXEL_MODE

   Nachdem Sie den Kernel mit diesen zwei Optionen neu kompiliert
   haben, bestimmen Sie die mo:glichen Videomodi mit dem Werkzeug
   vidcontrol(1). Um beispielsweise einer Liste aller unterstu:tzten
   Modi zu erhalten, verwenden Sie den folgenden Befehl:

 # vidcontrol -i mode

   Als Ergebnis erhalten Sie eine Liste aller Videomodi, die von
   Ihrer Hardware unterstu:tzt werden. Sie wa:hlen einen neuen Modus
   aus, indem Sie den entsprechenden Wert (wiederum als Benutzer
   root) an vidcontrol(1) u:bergeben:

 # vidcontrol MODE_279

   Um diese Einstellung dauerhaft zu speichern, mu:ssen Sie die
   folgende Zeile in die Datei /etc/rc.conf aufnehmen:

 allscreens_flags="MODE_279"

     --------------------------------------------------------------

4.3. Zugriffsrechte

   FreeBSD, das ein direkter Abko:mmling von BSD UNIX ist, stu:tzt
   sich auf mehrere Grundkonzepte von UNIX Systemen. Das erste und
   ausgepra:gteste: FreeBSD ist ein Mehrbenutzer-Betriebssystem. Das
   System ermo:glicht, dass mehrere Benutzer gleichzeitig an vo:llig
   verschiedenen und unabha:ngigen Aufgaben arbeiten ko:nnen. Es ist
   verantwortlich fu:r eine gerechte Auf- und Zuteilung von
   Nachfragen nach Hardware- und Peripheriegera:ten, Speicher und
   CPU-Zeit unter den Benutzern.

   Da das System mehrere Benutzer unterstu:tzt, hat alles, was das
   System verwaltet, einen Satz von Rechten, die bestimmen, wer die
   jeweilige Ressource lesen, schreiben oder ausfu:hren darf. Diese
   Zugriffsrechte stehen in drei Achtergruppen, die in drei Teile
   unterteilt sind: einen fu:r den Besitzer der Datei, einen fu:r die
   Gruppe, zu der die Datei geho:rt und einen fu:r alle anderen. Die
   numerische Darstellung sieht wie folgt aus:

   Wert           Zugriffsrechte            Auflistung im Verzeichnis 
   0    Kein Lesen, Kein Schreiben, Kein    ---                       
        Ausfu:hren                          
   1    Kein Lesen, Kein Schreiben,         --x                       
        Ausfu:hren                          
   2    Kein Lesen, Schreiben, Kein         -w-                       
        Ausfu:hren                          
   3    Kein Lesen, Schreiben, Ausfu:hren   -wx                       
   4    Lesen, Kein Schreiben, Kein         r--                       
        Ausfu:hren                          
   5    Lesen, Kein Schreiben, Ausfu:hren   r-x                       
   6    Lesen, Schreiben, Kein Ausfu:hren   rw-                       
   7    Lesen, Schreiben, Ausfu:hren        rwx                       

   Sie ko:nnen -l auf der Kommandozeile von ls(1) angeben, um eine
   ausfu:hrliche Verzeichnisauflistung zu sehen, die in einer Spalte
   die Zugriffsrechte fu:r den Besitzer, die Gruppe und alle anderen
   entha:lt. Die Ausgabe von ls -l ko:nnte wie folgt aussehen:

 % ls -l
 total 530
 -rw-r--r--  1 root  wheel     512 Sep  5 12:31 myfile
 -rw-r--r--  1 root  wheel     512 Sep  5 12:31 otherfile
 -rw-r--r--  1 root  wheel    7680 Sep  5 12:31 email.txt
 ...

   Die erste Spalte der Ausgabe entha:lt die Zugriffsrechte:

 -rw-r--r--

   Das erste Zeichen von links ist ein Symbol, welches angibt, ob es
   sich um eine normale Datei, ein Verzeichnis, ein
   zeichenorientiertes Gera:t, ein Socket oder irgendeine andere
   Pseudo-Datei handelt. In diesem Beispiel zeigt - eine normale
   Datei an. Die na:chsten drei Zeichen, dargestellt als rw-, ergeben
   die Rechte fu:r den Datei-Besitzer. Die drei Zeichen danach r--
   die Rechte der Gruppe, zu der die Datei geho:rt. Die letzten drei
   Zeichen, r--, geben die Rechte fu:r den Rest der Welt an. Ein
   Minus bedeutet, dass das Recht nicht gegeben ist. In diesem Fall
   sind die Zugriffsrechte also: der Eigentu:mer kann die Datei lesen
   und schreiben, die Gruppe kann lesen und alle anderen ko:nnen auch
   nur lesen. Entsprechend obiger Tabelle wa:ren die Zugriffsrechte
   fu:r diese Datei 644, worin jede Ziffer die drei Teile der
   Zugriffsrechte dieser Datei verko:rpert.

   Das ist alles scho:n und gut, aber wie kontrolliert das System die
   Rechte von Hardware-Gera:ten? FreeBSD behandelt die meisten
   Hardware-Gera:te als Dateien, welche Programme o:ffnen, lesen und
   mit Daten beschreiben ko:nnen wie alle anderen Dateien auch. Diese
   Spezial-Dateien sind im Verzeichnis /dev gespeichert.

   Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie haben
   Lese-, Schreib- und Ausfu:hr-Rechte. Das Ausfu:hrungs-Bit hat eine
   etwas andere Bedeutung fu:r ein Verzeichnis als fu:r eine Datei.
   Die Ausfu:hrbarkeit eines Verzeichnisses bedeutet, dass in das
   Verzeichnis zum Beispiel mit cd gewechselt werden kann. Das
   bedeutet auch, dass in dem Verzeichnis auf Dateien, deren Namen
   bekannt sind, zugegriffen werden kann, vorausgesetzt die
   Zugriffsrechte der Dateien lassen dies zu.

   Das Leserecht auf einem Verzeichnis erlaubt es, sich den Inhalt
   des Verzeichnisses anzeigen zu lassen. Um eine Datei mit bekanntem
   Namen in einem Verzeichnis zu lo:schen, mu:ssen auf dem
   Verzeichnis Schreib- und Ausfu:hr-Rechte gesetzt sein.

   Es gibt noch mehr Rechte, aber die werden vor allem in speziellen
   Umsta:nden benutzt, wie zum Beispiel bei SetUID-Binaries und
   Verzeichnissen mit gesetztem Sticky-Bit. Mehr u:ber Zugriffsrechte
   von Dateien und wie sie gesetzt werden, finden Sie in chmod(1).

     --------------------------------------------------------------

  4.3.1. Symbolische Zugriffsrechte

   Beigesteuert von Tom Rhodes.

   Die Zugriffsrechte lassen sich auch u:ber Symbole anstelle von
   oktalen Werten festlegen. Symbolische Zugriffsrechte werden in der
   Reihenfolge Wer, Aktion und Berechtigung angegeben. Die folgenden
   Symbole stehen zur Auswahl:

         Option         Symbol                 Bedeutung              
   Wer                u           Benutzer (user)                     
   Wer                g           Gruppe (group)                      
   Wer                o           Andere (other)                      
   Wer                a           Alle                                
   Aktion             +           Berechtigungen hinzufu:gen          
   Aktion             -           Berechtigungen entziehen            
   Aktion             =           Berechtigungen explizit setzen      
   Berechtigung       r           lesen (read)                        
   Berechtigung       w           schreiben (write)                   
   Berechtigung       x           ausfu:hren (execute)                
   Berechtigung       t           Sticky-Bit                          
   Berechtigung       s           Set-UID oder Set-GID                

   Symbolische Zugriffsrechte werden wie die numerischen mit dem
   Kommando chmod(1) vergeben. Wenn Sie beispielsweise allen anderen
   Benutzern den Zugriff auf die Datei FILE verbieten wollen,
   benutzen Sie den nachstehenden Befehl:

 % chmod go= FILE

   Wenn Sie mehr als eine A:nderung der Rechte einer Datei vornehmen
   wollen, ko:nnen Sie eine durch Kommata getrennte Liste der Rechte
   angeben. Das folgende Beispiel entzieht der Gruppe und der Welt
   (den anderen) die Schreibberechtigung auf die Datei FILE und fu:gt
   dann fu:r alle Ausfu:hrungsrechte hinzu:

 % chmod go-w,a+x FILE

     --------------------------------------------------------------

  4.3.2. FreeBSD Datei-Flags

   Beigetragen von Tom Rhodes.

   Zusa:tzlich zu den vorhin diskutierten Zugriffsrechten
   unterstu:tzt FreeBSD auch die sogenannten "Datei-Flags". Diese
   erho:hen die Sicherheit Ihres Systems, indem sie eine verbesserte
   Kontrolle von Dateien erlauben. Verzeichnisse werden allerdings
   nicht unterstu:tzt.

   Diese verbesserte Sicherheit fu:hrt dazu, dass manche Dateien
   nicht einmal von root gelo:scht oder bearbeitet werden ko:nnen.

   Datei-Flags ko:nnen u:ber chflags(1) gesetzt oder gelo:scht
   werden. Um beispielsweise die Datei file1 mit dem
   "unlo:schbar"-Flag zu sichern, geben Sie folgenden Befehl ein:

 # chflags sunlink file1

   Um dieses Flag wieder zu lo:schen, geben Sie den Befehl erneut
   ein. Allerdings setzen Sie ein "no" vor sunlink:

 # chflags nosunlink file1

   Um die Flags dieser Datei anzuzeigen, verwenden Sie ls(1) zusammen
   mit der Option -lo:

 # ls -lo file1

   Dadurch erhalten Sie eine Ausgabe a:hnlich der folgenden:

 -rw-r--r--  1 trhodes  trhodes  sunlnk 0 Mar  1 05:54 file1

   Viele Flags ko:nnen nur von root gesetzt oder gelo:scht werden.
   Andere wiederum ko:nnen auch vom Eigentu:mer der Datei gesetzt
   werden. Weitere Informationen zu Datei-Flags finden sich in den
   Manualpages chflags(1) und chflags(2).

     --------------------------------------------------------------

  4.3.3. Die Berechtigungen setuid, setgid, und sticky

   Beigetragen von Tom Rhodes.

   Anders als die Berechtigungen, die bereits angesprochen wurden,
   existieren drei weitere Einstellungen, u:ber die alle
   Administratoren Bescheid wissen sollten. Dies sind die
   Berechtigungen setuid, setgid und sticky.

   Diese Einstellungen sind wichtig fu:r manche UNIX-Operationen, da
   sie Funktionalita:ten zur Verfu:gung stellen, die normalerweise
   nicht an gewo:hnliche Anwender vergeben wird. Um diese zu
   verstehen, muss der Unterschied zwischen der realen und der
   effektiven Benutzer-ID erwa:hnt werden.

   Die reale Benutzer-ID ist die UID, welche den Prozess besitzt oder
   gestartet hat. Die effektive UID ist diejenige, als die der
   Prozess la:uft. Beispielsweise wird passwd(1) mit der realen ID
   des Benutzers ausgefu:hrt, der sein Passwort a:ndert. Um jedoch
   die Passwortdatenbank zu bearbeiten, wird es effektiv als
   root-Benutzer ausgefu:hrt. Das ermo:glicht es normalen Benutzern,
   ihr Passwort zu a:ndern, ohne einen "Permission Denied"-Fehler
   angezeigt zu bekommen.

     Anmerkung: Die nosuid mount(8)-Option wird dafu:r sorgen, dass
     diese Anwendungen stillschweigend scheitern. Genauer gesagt, sie
     werden nicht ausgefu:hrt und der Anwender wird daru:ber auch
     nicht informiert. Auf diese Option kann man sich nicht
     vollsta:ndig verlassen, da ein nosuid-Wrapper in der Lage wa:re,
     dies zu umgehen, wie in der mount(8) Manualpage zu lesen ist.

   Die setuid-Berechtigung kann durch das Voranstellen bei einer
   Berechtigungsgruppe mit der Nummer Vier (4) gesetzt werden, wie im
   folgenden Beispiel gezeigt wird:

 # chmod 4755 suidexample.sh

   Die Berechtigungen auf der suidexample.sh-Datei sollten jetzt wie
   folgt aussehen:

 -rwsr-xr-x   1 trhodes  trhodes    63 Aug 29 06:36 suidexample.sh

   In dem Beispiel sollte auffallen, dass ein s jetzt Teil der
   Berechtigungen des Dateibesitzers geworden ist, welches das
   Ausfu:hren-Bit ersetzt. Dies ermo:glicht es Werkzeugen mit
   erho:hten Berechtigungen zu laufen, wie z.B. passwd.

   Um dies in Echtzeit zu beobachten, o:ffnen Sie zwei Terminals.
   Starten Sie auf einem den passwd-Prozess als normaler Benutzer.
   Wa:hrend es auf die Passworteingabe wartet, u:berpru:fen Sie die
   Prozesstabelle und sehen Sie sich die Informationen des
   passwd-Kommandos an.

   Im Terminal A:

 Changing local password for trhodes
 Old Password:

   Im Terminal B:

 # ps aux | grep passwd

 trhodes  5232  0.0  0.2  3420  1608   0  R+    2:10AM   0:00.00 grep passwd
          root     5211  0.0  0.2  3620  1724   2  I+    2:09AM   0:00.01 passwd

   Wie oben erwa:hnt, wird passwd von einem normalen Benutzer
   ausgefu:hrt, benutzt aber die effektive UID von root.

   Die setgid-Berechtigung fu:hrt die gleiche Aktion wie die
   setuid-Berechtigung durch, allerdings vera:ndert sie die
   Gruppenberechtigungen. Wenn eine Anwendung oder ein Werkzeug mit
   dieser Berechtigung ausgefu:hrt wird, erha:lt es die
   Berechtigungen basierend auf der Gruppe, welche die Datei besitzt
   und nicht die des Benutzers, der den Prozess gestartet hat.

   Um die setgid-Berechtigung auf einer Datei zu setzen, geben Sie
   dem chmod-Befehl eine fu:hrende Zwei (2) mit, wie im folgenden
   gezeigt:

 # chmod 2755 sgidexample.sh

   Die neue Einstellung kann wie zuvor betrachtet werden. Beachten
   Sie, dass das s sich jetzt in dem Feld befindet, das fu:r die
   Berechtigungen der Gruppe bestimmt ist:

   

 -rwxr-sr-x   1 trhodes  trhodes    44 Aug 31 01:49 sgidexample.sh

     Anmerkung: Obwohl es sich bei dem in diesen Beispielen gezeigten
     Shellskript um eine ausfu:hrbare Datei handelt, wird es nicht
     mit einer anderen EUID oder effektiven Benutzer-ID ausgefu:hrt.
     Das ist so, weil Shellskripte keinen Zugriff auf
     setuid(2)-Systemaufrufe erhalten.

   Diese beiden ersten angesprochenen Spezialberechtigungen (die
   setuid und setgid Berechtigungs-Bits) ko:nnen die Systemsicherheit
   verringern, da sie erho:hte Rechte ermo:glichen. Es gibt noch ein
   drittes Berechtigungs-Bit, das die Sicherheit eines Systems
   erho:hen kann: das sticky bit.

   Das sticky bit erlaubt, wenn es auf ein Verzeichnis angewendet
   wird, nur dem Besitzer der Datei diese Dateien auch zu lo:schen.
   Dieses Recht ist nu:tzlich, um die Lo:schung von Dateien in
   o:ffentlichen Verzeichnissen durch Benutzer, denen diese Dateien
   nicht geho:ren, zu verhindern, wie z.B. in /tmp. Um diese
   Berechtigung anzuwenden, stellen Sie der Berechtigung eine Eins
   (1) voran, beispielsweise so:

 # chmod 1777 /tmp

   Den Effekt ko:nnen Sie sich ansehen, indem Sie das Kommando ls
   ausfu:hren:

 # ls -al / | grep tmp

 drwxrwxrwt  10 root  wheel         512 Aug 31 01:49 tmp

   Das sticky bit kann anhand des t ganz am Ende der Berechtigungen
   abgelesen werden.

     --------------------------------------------------------------

4.4. Verzeichnis-Strukturen

   Die FreeBSD-Verzeichnishierarchie ist die Grundlage, um ein
   umfassendes Versta:ndnis des Systems zu erlangen. Das wichtigste
   Konzept, das Sie verstehen sollten, ist das Root-Verzeichnis "/".
   Dieses Verzeichnis ist das erste, das wa:hrend des Bootens
   eingehangen wird. Es entha:lt das notwendige Basissystem, um das
   System in den Mehrbenutzerbetrieb zu bringen. Das Root-Verzeichnis
   entha:lt auch die Mountpunkte fu:r Dateisysteme, die beim Wechsel
   in den Multiuser-Modus eingeha:ngt werden.

   Ein Mountpunkt ist ein Verzeichnis, in das zusa:tzliche
   Dateisysteme (in der Regel unterhalb des Wurzelverzeichnisses)
   eingeha:ngt werden ko:nnen. Dieser Vorgang wird in Abschnitt 4.5
   ausfu:hrlich beschrieben. Standard-Mountpunkte sind /usr, /var,
   /tmp, /mnt sowie /cdrom. Auf diese Verzeichnisse verweisen
   u:blicherweise Eintra:ge in der Datei /etc/fstab. /etc/fstab ist
   eine Tabelle mit verschiedenen Dateisystemen und Mountpunkten als
   Referenz des Systems. Die meisten der Dateisysteme in /etc/fstab
   werden beim Booten automatisch durch das Skript rc(8) gemountet,
   wenn die zugeho:rigen Eintra:ge nicht mit der Option noauto
   versehen sind. Weitere Informationen zu diesem Thema finden Sie im
   Abschnitt 4.6.1.

   Eine vollsta:ndige Beschreibung der Dateisystem-Hierarchie finden
   Sie in hier(7). Als Beispiel sei eine kurze U:bersicht u:ber die
   am ha:ufigsten verwendeten Verzeichnisse gegeben:

     Verzeichnis                      Beschreibung                    
   /               Wurzelverzeichnis des Dateisystems.                
   /bin/           Grundlegende Werkzeuge fu:r den Single-User-Modus  
                   sowie den Mehrbenutzerbetrieb.                     
   /boot/          Programme und Konfigurationsdateien, die wa:hrend  
                   des Bootens benutzt werden.                        
   /boot/defaults/ Vorgaben fu:r die Boot-Konfiguration, siehe        
                   loader.conf(5).                                    
   /dev/           Gera:tedateien, siehe intro(4).                    
   /etc/           Konfigurationsdateien und Skripten des Systems.    
   /etc/defaults/  Vorgaben fu:r die System Konfigurationsdateien,    
                   siehe rc(8).                                       
   /etc/mail/      Konfigurationsdateien von MTAs wie sendmail(8).    
   /etc/namedb/    Konfigurationsdateien von named, siehe named(8).   
                   Ta:glich, wo:chentlich oder monatlich ablaufende   
   /etc/periodic/  Skripte, die von cron(8) gestartet werden. Siehe   
                   periodic(8).                                       
   /etc/ppp/       Konfigurationsdateien von ppp, siehe ppp(8).       
                   Ein leeres Verzeichnis, das von                    
   /mnt/           Systemadministratoren ha:ufig als tempora:rer      
                   Mountpunkt genutzt wird.                           
   /proc/          Prozess Dateisystem, siehe procfs(5) und           
                   mount_procfs(8).                                   
   /rescue/        Statisch gelinkte Programme zur Wiederherstellung  
                   des Systems, lesen Sie dazu auch rescue(8).        
   /root/          Home Verzeichnis von root.                         
                   Systemprogramme und administrative Werkzeuge, die  
   /sbin/          grundlegend fu:r den Single-User-Modus und den     
                   Mehrbenutzerbetrieb sind.                          
                   Tempora:re Dateien, die fu:r gewo:hnlich bei einem 
                   Neustart des Systems verloren gehen. Ha:ufig wird  
                   ein speicherbasiertes Dateisystem unter /tmp       
                   eingeha:ngt. Dieser Vorgang kann automatisiert     
   /tmp/           werden, wenn Sie die tmpmfs-bezogenen Variablen    
                   von rc.conf(5) verwenden. Alternativ ko:nnen Sie   
                   auch einen entsprechenden Eintrag in /etc/fstab    
                   aufnehmen. Weitere Informationen finden Sie in     
                   mdmfs(8).                                          
   /usr/           Der Grossteil der Benutzerprogramme und            
                   Anwendungen.                                       
   /usr/bin/       Gebra:uchliche Werkzeuge, Programmierhilfen und    
                   Anwendungen.                                       
   /usr/include/   Standard C include-Dateien.                        
   /usr/lib/       Bibliotheken.                                      
   /usr/libdata/   Daten verschiedener Werkzeuge.                     
   /usr/libexec/   System-Da:monen und System-Werkzeuge, die von      
                   anderen Programmen ausgefu:hrt werden.             
                   Lokale Programme, Bibliotheken usw. Die            
                   Ports-Sammlung benutzt dieses Verzeichnis als      
                   Zielverzeichnis fu:r zu installierende             
                   Anwendungen. Innerhalb von /usr/local sollte das   
   /usr/local/     von hier(7) beschriebene Layout fu:r /usr benutzt  
                   werden. Das man Verzeichnis wird direkt unter      
                   /usr/local anstelle unter /usr/local/share         
                   angelegt. Die Dokumentation der Ports findet sich  
                   in share/doc/port.                                 
   /usr/obj/       Von der Architektur abha:ngiger Verzeichnisbaum,   
                   der durch das Bauen von /usr/src entsteht.         
   /usr/ports/     Die FreeBSD-Ports-Sammlung (optional).             
   /usr/sbin/      System-Da:monen und System-Werkzeuge, die von      
                   Benutzern ausgefu:hrt werden.                      
   /usr/share/     Von der Architektur unabha:ngige Dateien.          
   /usr/src/       Quelldateien von BSD und/oder lokalen              
                   Erga:nzungen.                                      
   /usr/X11R6/     Optionale X11R6-Programme und Bibliotheken.        
                   Wird fu:r mehrere Zwecke genutzt und entha:lt      
                   Logdateien, tempora:re Daten und Spooldateien.     
                   Manchmal wird ein speicherbasiertes Dateisystem    
                   unter /var eingeha:ngt. Dieser Vorgang kann        
   /var/           automatisiert werden, wenn Sie die                 
                   varmfs-bezogenen Variablen von rc.conf(5)          
                   verwenden. Alternativ ko:nnen Sie auch einen       
                   entsprechenden Eintrag in /etc/fstab aufnehmen.    
                   Weitere Informationen finden Sie in mdmfs(8).      
   /var/log/       Verschiedene Logdateien des Systems.               
   /var/mail/      Postfa:cher der Benutzer.                          
   /var/spool/     Verschiedene Spool-Verzeichnisse der Drucker- und  
                   Mailsysteme.                                       
                   Tempora:re Dateien. Dateien in diesem Verzeichnis  
   /var/tmp/       bleiben in der Regel auch bei einem Neustart des   
                   Systems erhalten, es sei denn, bei /var handelt es 
                   sich um ein speicherbasiertes Dateisystem.         
   /var/yp/        NIS maps.                                          

     --------------------------------------------------------------

4.5. Festplatten, Slices und Partitionen

   FreeBSD identifiziert Dateien anhand eines Dateinamens. In
   Dateinamen wird zwischen Gross- und Kleinschreibung unterschieden:
   readme.txt und README.TXT bezeichnen daher zwei verschiedene
   Dateien. FreeBSD benutzt keine Dateiendungen wie .txt, um den Typ
   der Datei (ein Programm, ein Dokument oder andere Daten) zu
   bestimmen.

   Dateien werden in Verzeichnissen gespeichert. In einem Verzeichnis
   ko:nnen sich keine oder hunderte Dateien befinden. Ein Verzeichnis
   kann auch andere Verzeichnisse enthalten und so eine Hierarchie
   von Verzeichnissen aufbauen, die Ihnen die Ablage von Daten
   erleichtert.

   In Dateinamen werden Verzeichnisse durch einen Schra:gstrich (/,
   Slash) getrennt. Wenn das Verzeichnis foo ein Verzeichnis bar
   entha:lt, in dem sich die Datei readme.txt befindet, lautet der
   vollsta:ndige Name der Datei (oder der Pfad zur Datei)
   foo/bar/readme.txt.

   Verzeichnisse und Dateien werden in einem Dateisystem gespeichert.
   Jedes Dateisystem besitzt ein Wurzelverzeichnis (Root-Directory),
   das weitere Verzeichnisse enthalten kann.

   Dieses Konzept kennen Sie vielleicht von anderen Betriebssystemen,
   aber es gibt einige Unterschiede: In MS-DOS werden Datei- und
   Verzeichnisnamen mit dem Zeichen \ getrennt, Mac OS(R) benutzt
   dazu das Zeichen :.

   FreeBSD kennt keine Laufwerksbuchstaben und in Pfaden werden keine
   Bezeichnungen fu:r Laufwerke benutzt. Die Pfadangabe
   c:/foo/bar/readme.txt gibt es in FreeBSD nicht.

   Stattdessen wird ein Dateisystem als Wurzeldateisystem (root file
   system) ausgewa:hlt. Das Wurzelverzeichnis dieses Dateisystems
   wird / genannt. Jedes andere Dateisystem wird unter dem
   Wurzeldateisystem eingehangen (mount). Daher scheint jedes
   Verzeichnis, unabha:ngig von der Anzahl der Platten, auf derselben
   Platte zu liegen.

   Betrachten wir drei Dateisysteme A, B und C. Jedes Dateisystem
   besitzt ein eigenes Wurzelverzeichnis, das zwei andere
   Verzeichnisse entha:lt: A1, A2, B1, B2, C1 und C2.

   Das Wurzeldateisystem soll A sein. Das Kommando ls zeigt darin die
   beiden Verzeichnisse A1 und A2 an. Der Verzeichnisbaum sieht wie
   folgt aus:

  /
  |
  +--- A1
  |
  `--- A2

   Ein Dateisystem wird in einem Verzeichnis eines anderen
   Dateisystems eingehangen. Wir ha:ngen nun das Dateisystem B in das
   Verzeichnis A1 ein. Das Wurzelverzeichnis von B ersetzt nun das
   Verzeichnis A1 und die Verzeichnisse des Dateisystems B werden
   sichtbar:

  /
  |
  +--- A1
  |     |
  |     +--- B1
  |     |
  |     `--- B2
  |
  `--- A2

   Jede Datei in den Verzeichnissen B1 oder B2 kann u:ber den Pfad
   /A1/B1 oder /A1/B2 erreicht werden. Dateien aus dem Verzeichnis
   /A1 sind jetzt verborgen. Wenn das Dateisystem B wieder abgehangen
   wird (umount), erscheinen die verborgenen Dateien wieder.

   Wenn das Dateisystem B unter dem Verzeichnis A2 eingehangen
   wu:rde, sa:he der Verzeichnisbaum so aus:

  /
  |
  +--- A1
  |
  `--- A2
        |
        +--- B1
        |
        `--- B2

   Die Dateien des Dateisystems B wa:ren unter den Pfaden /A2/B1 und
   /A2/B2 erreichbar.

   Dateisysteme ko:nnen u:bereinander eingehangen werden. Der
   folgende Baum entsteht, wenn im letzten Beispiel das Dateisystem C
   in das Verzeichnis B1 des Dateisystems B eingehangen wird:

  /
  |
  +--- A1
  |
  `--- A2
        |
        +--- B1
        |     |
        |     +--- C1
        |     |
        |     `--- C2
        |
        `--- B2

   C ko:nnte auch im Verzeichnis A1 eingehangen werden:

  /
  |
  +--- A1
  |     |
  |     +--- C1
  |     |
  |     `--- C2
  |
  `--- A2
        |
        +--- B1
        |
        `--- B2

   Der MS-DOS-Befehl join kann A:hnliches bewirken.

   Normalerweise mu:ssen Sie sich nicht mit Dateisystemen
   bescha:ftigen. Wa:hrend der Installation werden die Dateisysteme
   und die Stellen, in der sie eingehangen werden, festgelegt.
   Dateisysteme mu:ssen Sie erst wieder anlegen, wenn Sie eine neue
   Platte hinzufu:gen.

   Sie ko:nnen sogar mit nur einem grossen Dateisystem auskommen.
   Dies hat mehrere Nachteile und einen Vorteil.

   Vorteile mehrerer Dateisysteme

     * Die Dateisysteme ko:nnen mit unterschiedlichen Optionen (mount
       options) eingehangen werden. Bei sorgfa:ltiger Planung ko:nnen
       Sie beispielsweise das Wurzeldateisystem nur lesbar
       einha:ngen. Damit schu:tzen Sie sich vor dem unabsichtlichen
       Lo:schen oder Editieren kritischer Dateien. Von Benutzern
       beschreibbare Dateisysteme wie /home ko:nnen Sie mit der
       Option nosuid einha:ngen, wenn sie von anderen Dateisystemen
       getrennt sind. Die SUID- und GUID-Bits verlieren auf solchen
       Dateisystemen ihre Wirkung und die Sicherheit des Systems kann
       dadurch erho:ht werden.

     * Die Lage von Dateien im Dateisystem wird, abha:ngig vom
       Gebrauch des Dateisystems, automatisch von FreeBSD optimiert.
       Ein Dateisystem mit vielen kleinen Dateien, die ha:ufig
       geschrieben werden, wird anders behandelt als ein Dateisystem
       mit wenigen grossen Dateien. Mit nur einem Dateisystem ist
       diese Optimierung unmo:glich.

     * In der Regel u:bersteht ein FreeBSD-Dateisystem auch einen
       Stromausfall. Allerdings kann ein Stromausfall zu einem
       kritischen Zeitpunkt das Dateisystem bescha:digen. Wenn die
       Daten u:ber mehrere Dateisysteme verteilt sind, la:sst sich
       das System mit hoher Wahrscheinlichkeit noch starten. Dies
       erleichtert das Zuru:ckspielen von Datensicherungen.

   Vorteil eines einzelnen Dateisystems

     * Die Gro:sse von Dateisystemen liegt fest. Es kann passieren,
       dass Sie eine Partition vergro:ssern mu:ssen. Dies ist nicht
       leicht: Sie mu:ssen die Daten sichern, das Dateisystem
       vergro:ssert anlegen und die gesicherten Daten zuru:ckspielen.

         Wichtig: FreeBSD kennt den Befehl growfs(8), mit dem man
         Dateisysteme im laufenden Betrieb vergro:ssern kann.

   Dateisysteme befinden sich in Partitionen (damit sind nicht die
   normalen MS-DOS-Partitionen gemeint). Jede Partition wird mit
   einem Buchstaben von a bis h bezeichnet und kann nur ein
   Dateisystem enthalten. Dateisysteme ko:nnen daher u:ber ihren
   Mount-Point, den Punkt an dem sie eingehangen sind, oder den
   Buchstaben der Partition, in der sie liegen, identifiziert werden.

   FreeBSD benutzt einen Teil der Platte fu:r den Swap-Bereich, der
   dem Rechner virtuellen Speicher zur Verfu:gung stellt. Dadurch
   kann der Rechner Anwendungen mehr Speicher zur Verfu:gung stellen
   als tatsa:chlich eingebaut ist. Wenn der Speicher knapp wird, kann
   FreeBSD nicht benutzte Daten in den Swap-Bereich auslagern. Die
   ausgelagerten Daten ko:nnen spa:ter wieder in den Speicher geholt
   werden (dafu:r werden dann andere Daten ausgelagert).

   Fu:r einige Partitionen gelten besondere Konventionen:

   Partition                        Konvention                        
   a         Entha:lt normalerweise das Wurzeldateisystem             
   b         Entha:lt normalerweise den Swap-Bereich                  
             Ist normalerweise genauso gross wie die Slice in der die 
             Partition liegt. Werkzeuge, die auf der kompletten Slice 
   c         arbeiten, wie ein Bad-Block-Scanner, ko:nnen so die      
             c-Partition benutzen. Fu:r gewo:hnlich legen Sie in      
             dieser Partition kein Dateisystem an.                    
             Fru:her hatte die d-Partition eine besondere Bedeutung.  
   d         Heute ist dies nicht mehr der Fall und die Partition d   
             kann wie jede andere Partition auch verwendet werden.    

   Jede Partition, die ein Dateisystem entha:lt, wird in einer Slice
   angelegt. Slice ist der Begriff, den FreeBSD fu:r
   MS-DOS-Partitionen verwendet. Slices werden von eins bis vier
   durchnummeriert.

   Die Slice-Nummern werden mit vorgestelltem s hinter den
   Gera:tenamen gestellt: "da0s1" ist die erste Slice auf dem ersten
   SCSI-Laufwerk. Auf einer Festplatte gibt es ho:chstens vier
   Slices. In einer Slice des passenden Typs kann es weitere logische
   Slices geben. Diese erweiterten Slices werden ab fu:nf
   durchnummeriert: "ad0s5" ist die erste erweiterte Slice auf einer
   IDE-Platte. Diese Gera:te werden von Dateisystemen benutzt, die
   sich in einer kompletten Slice befinden mu:ssen.

   Slices, "dangerously dedicated"-Festplatten und andere Platten
   enthalten Partitionen, die mit Buchstaben von a bis h bezeichnet
   werden. Der Buchstabe wird an den Gera:tenamen gehangen: "da0a"
   ist die a-Partition des ersten da-Laufwerks. Dieses Laufwerk ist
   "dangerously dedicated". "ad1s3e" ist die fu:nfte Partition in der
   dritten Slice der zweiten IDE-Platte.

   Schliesslich wird noch jede Festplatte des Systems eindeutig
   bezeichnet. Der Name einer Festplatte beginnt mit einem Code, der
   den Typ der Platte bezeichnet. Es folgt eine Nummer, die angibt,
   um welche Festplatte es sich handelt. Anders als bei Slices werden
   Festplatten von Null beginnend durchnummeriert. Ga:ngige
   Festplatten-Namen sind in Tabelle 4-1 zusammengestellt.

   Wenn Sie eine Partition angeben, erwartet FreeBSD, dass Sie auch
   die Slice und die Platte angeben, in denen sich die Partition
   befindet. Wenn Sie eine Slice angeben, mu:ssen Sie auch die Platte
   der Slice angeben. Setzen Sie den Namen aus dem Plattennamen
   gefolgt von einem s, der Slice-Nummer und dem Buchstaben der
   Partition zusammen. Einige Beispiele finden Sie in Beispiel 4-1.

   Der Aufbau einer Festplatte wird in Beispiel 4-2 dargestellt.

   Um FreeBSD zu installieren, mu:ssen Sie zuerst Slices auf den
   Festplatten anlegen. Innerhalb der Slices, die Sie fu:r FreeBSD
   verwenden wollen, mu:ssen Sie dann Partitionen anlegen. In den
   Partitionen wiederum werden die Dateisysteme (oder der
   Auslagerungsbereich) angelegt. Fu:r Dateisysteme mu:ssen Sie
   schliesslich noch festlegen, wo diese eingehangen werden
   (Mount-Point).

   Tabelle 4-1. Laufwerk-Codes

      Code                           Bedeutung                        
   ad          ATAPI (IDE) Festplatte                                 
   da          SCSI-Festplatte                                        
   acd         ATAPI (IDE) CD-ROM                                     
   cd          SCSI-CD-ROM                                            
   fd          Disketten-Laufwerk                                     

   Beispiel 4-1. Namen von Platten, Slices und Partitionen

    Name                           Bedeutung                          
   ad0s1a Die erste Partition (a) in der ersten Slice (s1) der ersten 
          IDE-Festplatte (ad0).                                       
   da1s2e Die fu:nfte Partition (e) der zweiten Slice (s2) auf der    
          zweiten SCSI-Festplatte (da1).                              

   Beispiel 4-2. Aufteilung einer Festplatte

   Das folgende Diagramm zeigt die Sicht von FreeBSD auf die erste
   IDE-Festplatte eines Rechners. Die Platte soll 4 GB gross sein und
   zwei Slices (MS-DOS-Partitionen) mit je 2 GB besitzen. Die erste
   Slice entha:lt ein MS-DOS-Laufwerk (C:), die zweite Slice wird von
   FreeBSD benutzt. Im Beispiel verwendet die FreeBSD-Installationen
   drei Datenpartitionen und einen Auslagerungsbereich.

   Jede der drei Partitionen entha:lt ein Dateisystem. Das
   Wurzeldateisystem ist die a-Partition. In der e-Partition befindet
   sich der /var-Verzeichnisbaum und in der f-Partition befindet sich
   der Verzeichnisbaum unterhalb von /usr.

 .-----------------.  --.
 |                 |    |
 |  DOS / Windows  |    |
 :                 :     >  First slice, ad0s1
 :                 :    |
 |                 |    |
 :=================:  ==:                               --.
 |                 |    |  Partition a, mounted as /      |
 |                 |     > referred to as ad0s2a          |
 |                 |    |                                 |
 :-----------------:  ==:                                 |
 |                 |    |  Partition b, used as swap      |
 |                 |     > referred to as ad0s2b          |
 |                 |    |                                 |
 :-----------------:  ==:                                 |  Partition c, no
 |                 |    |  Partition e, used as /var       > file system, all
 |                 |     > referred to as ad0s2e          |  of FreeBSD slice,
 |                 |    |                                 |  ad0s2c
 :-----------------:  ==:                                 |
 |                 |    |                                 |
 :                 :    |  Partition f, used as /usr      |
 :                 :     > referred to as ad0s2f          |
 :                 :    |                                 |
 |                 |    |                                 |
 |                 |  --'                                 |
 `-----------------'                                    --'

     --------------------------------------------------------------

4.6. Anha:ngen und Abha:ngen von Dateisystemen

   Ein Dateisystem wird am besten als ein Baum mit der Wurzel /
   veranschaulicht. /dev, /usr, und die anderen Verzeichnisse im
   Rootverzeichnis sind Zweige, die wiederum eigene Zweige wie
   /usr/local haben ko:nnen.

   Es gibt verschiedene Gru:nde, bestimmte dieser Verzeichnisse auf
   eigenen Dateisystemen anzulegen. /var entha:lt log/, spool/ sowie
   verschiedene andere tempora:re Dateien und kann sich daher schnell
   fu:llen. Es empfiehlt sich, /var von / zu trennen, da es schlecht
   ist, wenn das Root-Dateisystem voll la:uft.

   Ein weiterer Grund bestimmte Verzeichnisba:ume auf andere
   Dateisysteme zu legen, ist gegeben, wenn sich die
   Verzeichnisba:ume auf gesonderten physikalischen oder virtuellen
   Platten, wie Network File System oder CD-ROM-Laufwerken, befinden.

     --------------------------------------------------------------

  4.6.1. Die fstab Datei

   Wa:hrend des Boot-Prozesses werden in /etc/fstab aufgefu:hrte
   Verzeichnisse, sofern sie nicht mit der Option noauto versehen
   sind, automatisch angehangen.

   Die Zeilen in /etc/fstab haben das folgende Format:

 device  /mount-point    fstype  options dumpfreq        passno

   device

           Ein existierender Gera:tename wie in Abschnitt 19.2
           beschrieben.

   mount-point

           Ein existierendes Verzeichnis, an das das Dateisystem
           angehangen wird.

   fstype

           Der Typ des Dateisystems, der an mount(8) weitergegeben
           wird. FreeBSDs Standarddateisystem ist ufs.

   options

           Entweder rw fu:r beschreibbare Dateisysteme oder ro fu:r
           schreibgeschu:tzte Dateisysteme, gefolgt von weiteren
           beno:tigten Optionen. Eine ha:ufig verwendete Option ist
           noauto fu:r Dateisysteme, die wa:hrend der normalen
           Bootsequenz nicht angehangen werden sollen. Weitere
           Optionen finden sich in mount(8).

   dumpfreq

           Gibt die Anzahl der Tage an, nachdem das Dateisystem
           gesichert werden soll. Fehlt der Wert, wird 0 angenommen.

   passno

           Bestimmt die Reihenfolge, in der die Dateisysteme
           u:berpru:ft werden sollen. Fu:r Dateisysteme, die
           u:bersprungen werden sollen, ist passno auf null zu
           setzen. Fu:r das Root-Dateisystem, das vor allen anderen
           u:berpru:ft werden muss, sollte der Wert von passno eins
           betragen. Allen anderen Dateisystemen sollten Werte
           gro:sser eins zugewiesen werden. Wenn mehrere Dateisysteme
           den gleichen Wert besitzen, wird fsck(8) versuchen, diese
           parallel zu u:berpru:fen.

     --------------------------------------------------------------

  4.6.2. Das mount Kommando

   mount(8) ha:ngt schliesslich Dateisysteme an.

   In der grundlegenden Form wird es wie folgt benutzt:

 # mount device mountpoint

   Viele Optionen werden in mount(8) beschrieben, die am ha:ufigsten
   verwendeten sind:

   Optionen von mount

   -a

           Ha:ngt alle Dateisysteme aus /etc/fstab an. Davon
           ausgenommen sind Dateisysteme, die mit "noauto" markiert
           sind, die mit der Option -t ausgeschlossen wurden und
           Dateisysteme, die schon angehangen sind.

   -d

           Fu:hrt alles bis auf den mount-Systemaufruf aus. Nu:tzlich
           ist diese Option in Verbindung mit -v. Damit wird
           angezeigt, was mount(8) tatsa:chlich versuchen wu:rde, um
           das Dateisystem anzuha:ngen.

   -f

           Erzwingt das Anha:ngen eines unsauberen Dateisystems oder
           erzwingt die Ru:cknahme des Schreibzugriffs, wenn der
           Status des Dateisystems von beschreibbar auf
           schreibgeschu:tzt gea:ndert wird.

   -r

           Ha:ngt das Dateisystem schreibgeschu:tzt ein. Das kann
           auch durch Angabe von ro als Argument der Option -o
           erreicht werden.

   -t fstype

           Ha:ngt das Dateisystem mit dem angegebenen Typ an, oder
           ha:ngt nur Dateisysteme mit dem angegebenen Typ an, wenn
           auch -a angegeben wurde.

           Die Voreinstellung fu:r den Typ des Dateisystems ist
           "ufs".

   -u

           Aktualisiert die Mountoptionen des Dateisystems.

   -v

           Geschwa:tzig sein.

   -w

           Ha:ngt das Dateisystem beschreibbar an.

   -o erwartet eine durch Kommata separierte Liste von Optionen,
   unter anderem die folgenden:

   noexec

           Verbietet das Ausfu:hren von bina:ren Dateien auf dem
           Dateisystem. Dies ist eine nu:tzliche Sicherheitsfunktion.

   nosuid

           SetUID und SetGID Bits werden auf dem Dateisystem nicht
           beachtet. Dies ist eine nu:tzliche Sicherheitsfunktion.

     --------------------------------------------------------------

  4.6.3. Das umount Kommando

   umount(8) akzeptiert als Parameter entweder einen Mountpoint,
   einen Gera:tenamen, oder die Optionen -a oder -A.

   Jede Form akzeptiert -f, um das Abha:ngen zu erzwingen, und -v, um
   etwas geschwa:tziger zu sein. Seien Sie bitte vorsichtig mit -f:
   Ihr Computer kann abstu:rzen oder es ko:nnen Daten auf dem
   Dateisystem bescha:digt werden, wenn Sie das Abha:ngen erzwingen.

   -a und -A werden benutzt um alle Dateisysteme, deren Typ durch -t
   modifiziert werden kann, abzuha:ngen. -A ha:ngt das
   Rootdateisystem nicht ab.

     --------------------------------------------------------------

4.7. Prozesse

   Da FreeBSD ein Multitasking-Betriebssystem ist, sieht es so aus,
   als ob mehrere Prozesse zur gleichen Zeit laufen. Jedes Programm,
   das zu irgendeiner Zeit la:uft, wird Prozess genannt. Jedes
   Kommando startet mindestens einen Prozess. Einige Systemprozesse
   laufen sta:ndig und stellen die Funktion des Systems sicher.

   Jeder Prozess wird durch eine eindeutige Nummer identifiziert, die
   Prozess-ID oder PID genannt wird. Prozesse haben ebenso wie
   Dateien einen Besitzer und eine Gruppe, die festlegen, welche
   Dateien und Gera:te der Prozess benutzen kann. Dabei finden die
   vorher beschriebenen Zugriffsrechte Anwendung. Die meisten
   Prozesse haben auch einen Elternprozess, der sie gestartet hat.
   Wenn Sie in der Shell Kommandos eingeben, dann ist die Shell ein
   Prozess und jedes Kommando, das Sie starten, ist auch ein Prozess.
   Jeder Prozess, den Sie auf diese Weise starten, besitzt den
   Shell-Prozess als Elternprozess. Die Ausnahme hiervon ist ein
   spezieller Prozess, der init(8) heisst. init ist immer der erste
   Prozess und hat somit die PID 1. init wird vom Kernel beim Booten
   von FreeBSD gestartet.

   Die Kommandos ps(1) und top(1) sind besonders nu:tzlich, um sich
   die Prozesse auf einem System anzusehen. ps zeigt eine statische
   Liste der laufenden Prozesse und kann deren PID, Speicherverbrauch
   und die Kommandozeile, mit der sie gestartet wurden und vieles
   mehr anzeigen. top zeigt alle laufenden Prozesse an und
   aktualisiert die Anzeige, so dass Sie Ihrem Computer bei der
   Arbeit zuschauen ko:nnen.

   Normal zeigt Ihnen ps nur die laufenden Prozesse, die Ihnen
   geho:ren. Zum Beispiel:

 % ps
   PID  TT  STAT      TIME COMMAND
   298  p0  Ss     0:01.10 tcsh
  7078  p0  S      2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
 37393  p0  I      0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
 48630  p0  S      2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
 48730  p0  IW     0:00.00 (dns helper) (navigator-linux-)
 72210  p0  R+     0:00.00 ps
   390  p1  Is     0:01.14 tcsh
  7059  p2  Is+    1:36.18 /usr/local/bin/mutt -y
  6688  p3  IWs    0:00.00 tcsh
 10735  p4  IWs    0:00.00 tcsh
 20256  p5  IWs    0:00.00 tcsh
   262  v0  IWs    0:00.00 -tcsh (tcsh)
   270  v0  IW+    0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
   280  v0  IW+    0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
   284  v0  IW     0:00.00 /bin/sh /home/nik/.xinitrc
   285  v0  S      0:38.45 /usr/X11R6/bin/sawfish

   Wie Sie sehen, gibt ps(1) mehrere Spalten aus. In der PID Spalte
   findet sich die vorher besprochene Prozess-ID. PIDs werden von 1
   beginnend bis 99999 zugewiesen und fangen wieder von vorne an,
   wenn die Grenze u:berschritten wird. Ist eine PID bereits
   vergeben, wird diese allerdings nicht erneut vergeben. Die Spalte
   TT zeigt den Terminal, auf dem das Programm la:uft. STAT zeigt den
   Status des Programms an und kann fu:r die Zwecke dieser Diskussion
   ebenso wie TT ignoriert werden. TIME gibt die Zeit an, die das
   Programm auf der CPU gelaufen ist - dies ist nicht unbedingt die
   Zeit, die seit dem Start des Programms vergangen ist, da die
   meisten Programme hauptsa:chlich auf bestimmte Dinge warten, bevor
   sie wirklich CPU-Zeit verbrauchen. Unter der Spalte COMMAND finden
   Sie schliesslich die Kommandozeile, mit der das Programm gestartet
   wurde.

   ps(1) besitzt viele Optionen, um die angezeigten Informationen zu
   beeinflussen. Eine nu:tzliche Kombination ist auxww. Mit a werden
   Information u:ber alle laufenden Prozesse und nicht nur Ihrer
   eigenen angezeigt. Der Name des Besitzers des Prozesses, sowie
   Informationen u:ber den Speicherverbrauch werden mit u angezeigt.
   x zeigt auch Da:monen-Prozesse an, und ww veranlasst ps(1) die
   komplette Kommandozeile fu:r jeden Befehl anzuzeigen, anstatt sie
   abzuschneiden, wenn sie zu lang fu:r die Bildschirmausgabe wird.

   Die Ausgabe von top(1) sieht a:hnlich aus:

 % top
 last pid: 72257;  load averages:  0.13,  0.09,  0.03    up 0+13:38:33  22:39:10
 47 processes:  1 running, 46 sleeping
 CPU states: 12.6% user,  0.0% nice,  7.8% system,  0.0% interrupt, 79.7% idle
 Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
 Swap: 256M Total, 38M Used, 217M Free, 15% Inuse

   PID USERNAME PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
 72257 nik       28   0  1960K  1044K RUN      0:00 14.86%  1.42% top
  7078 nik        2   0 15280K 10960K select   2:54  0.88%  0.88% xemacs-21.1.14
   281 nik        2   0 18636K  7112K select   5:36  0.73%  0.73% XF86_SVGA
   296 nik        2   0  3240K  1644K select   0:12  0.05%  0.05% xterm
 48630 nik        2   0 29816K  9148K select   3:18  0.00%  0.00% navigator-linu
   175 root       2   0   924K   252K select   1:41  0.00%  0.00% syslogd
  7059 nik        2   0  7260K  4644K poll     1:38  0.00%  0.00% mutt
 ...

   Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten fu:nf
   Kopfzeilen finden sich die zuletzt zugeteilte PID, die
   Systemauslastung (engl. load average), die Systemlaufzeit (die
   Zeit seit dem letzten Reboot) und die momentane Zeit. Die weiteren
   Zahlen im Kopf beschreiben wie viele Prozesse momentan laufen (im
   Beispiel 47), wie viel Speicher und Swap verbraucht wurde und wie
   viel Zeit das System in den verschiedenen CPU-Modi verbringt.

   Darunter befinden sich einige Spalten mit a:hnlichen Informationen
   wie in der Ausgabe von ps(1). Wie im vorigen Beispiel ko:nnen Sie
   die PID, den Besitzer, die verbrauchte CPU-Zeit und das Kommando
   erkennen. top(1) zeigt auch den Speicherverbrauch des Prozesses
   an, der in zwei Spalten aufgeteilt ist. Die erste Spalte gibt den
   gesamten Speicherverbrauch des Prozesses an, in der zweiten Spalte
   wird der aktuelle Verbrauch angegeben. Netscape(R) hat im
   gezeigten Beispiel insgesamt 30 MB Speicher verbraucht. Momentan
   benutzt es allerdings nur 9 MB.

   Die Anzeige wird von top(1) automatisch alle zwei Sekunden
   aktualisiert. Der Zeitraum kann mit -s eingestellt werden.

     --------------------------------------------------------------

4.8. Da:monen, Signale und Stoppen von Prozessen

   Wenn Sie einen Editor starten, ko:nnen Sie ihn leicht bedienen und
   Dateien laden. Sie ko:nnen das, weil der Editor dafu:r Vorsorge
   getroffen hat und auf einem Terminal la:uft. Manche Programme
   erwarten keine Eingaben von einem Benutzer und lo:sen sich bei
   erster Gelegenheit von ihrem Terminal. Ein Web-Server zum Beispiel
   verbringt den ganzen Tag damit, auf Anfragen zu antworten und
   erwartet keine Eingaben von Ihnen. Programme, die E-Mail von einem
   Ort zu einem anderen Ort transportieren sind ein weiteres Beispiel
   fu:r diesen Typ von Anwendungen.

   Wir nennen diese Programme Da:monen. Da:monen stammen aus der
   griechischen Mythologie und waren weder gut noch bo:se. Sie waren
   kleine dienstbare Geister, die meistens nu:tzliche Sachen fu:r die
   Menschheit vollbrachten. A:hnlich wie heutzutage Web-Server und
   Mail-Server nu:tzliche Dienste verrichten. Seit langer Zeit ist
   daher das BSD Maskottchen dieser fro:hlich aussehende Da:mon mit
   Turnschuhen und Dreizack.

   Programme, die als Da:mon laufen, werden entsprechend einer
   Konvention mit einem "d" am Ende benannt. BIND steht
   beispielsweise fu:r Berkeley Internet Name Domain, das
   tatsa:chlich laufende Programm heisst aber named. Der Apache
   Webserver wird httpd genannt, der Druckerspool-Da:mon heisst lpd
   usw. Dies ist allerdings eine Konvention und keine unumsto:ssliche
   Regel: Der Da:mon der Anwendung sendmail heisst sendmail und nicht
   maild, wie Sie vielleicht gedacht hatten.

   Manchmal mu:ssen Sie mit einem Da:mon kommunizieren. Dazu
   verwenden Sie Signale. Sie ko:nnen mit einem Da:monen oder jedem
   anderen laufenden Prozess kommunizieren, indem Sie diesem ein
   Signal schicken. Sie ko:nnen verschiedene Signale verschicken -
   manche haben eine festgelegte Bedeutung, andere werden von der
   Anwendung interpretiert. Die Dokumentation zur fraglichen
   Anwendung wird erkla:ren, wie die Anwendung Signale interpretiert.
   Sie ko:nnen nur Signale zu Prozessen senden, die Ihnen geho:ren.
   Normale Benutzer haben nicht die Berechtigung, Prozessen anderer
   Benutzer mit kill(1) oder kill(2) Signale zu schicken. Der
   Benutzer root darf jedem Prozess Signale schicken.

   In manchen Fa:llen wird FreeBSD Signale senden. Wenn eine
   Anwendung schlecht geschrieben ist und auf Speicher zugreift, auf
   den sie nicht zugreifen soll, so sendet FreeBSD dem Prozess das
   Segmentation Violation Signal (SIGSEGV). Wenn eine Anwendung den
   alarm(3) Systemaufruf benutzt hat, um nach einiger Zeit
   benachrichtigt zu werden, bekommt sie das Alarm Signal (SIGALRM)
   gesendet.

   Zwei Signale ko:nnen benutzt werden, um Prozesse zu stoppen:
   SIGTERM und SIGKILL. Mit SIGTERM fordern Sie den Prozess ho:flich
   zum Beenden auf. Der Prozess kann das Signal abfangen und merken,
   dass er sich beenden soll. Er hat dann Gelegenheit Logdateien zu
   schliessen und die Aktion, die er vor der Aufforderung sich zu
   beenden durchfu:hrte, abzuschliessen. Er kann sogar SIGTERM
   ignorieren, wenn er eine Aktion durchfu:hrt, die nicht
   unterbrochen werden darf.

   SIGKILL kann von keinem Prozess ignoriert werden. Das Signal
   la:sst sich mit "Mich interessiert nicht, was du gerade machst,
   ho:r sofort auf damit!" umschreiben. Wenn Sie einem Prozess
   SIGKILL schicken, dann wird FreeBSD diesen sofort beenden[4].

   Andere Signale, die Sie vielleicht verschicken wollen, sind
   SIGHUP, SIGUSR1 und SIGUSR2. Diese Signale sind fu:r allgemeine
   Zwecke vorgesehen und verschiedene Anwendungen werden
   unterschiedlich auf diese Signale reagieren.

   Nehmen wir an, Sie haben die Konfiguration Ihres Webservers
   vera:ndert und mo:chten dies dem Server mitteilen. Sie ko:nnten
   den Server natu:rlich stoppen und httpd wieder starten. Die Folge
   wa:re eine kurze Zeit, in der der Server nicht erreichbar ist. Die
   meisten Da:monen lesen Ihre Konfigurationsdatei beim Empfang eines
   SIGHUP neu ein. Da es keinen Standard gibt, der vorschreibt, wie
   auf diese Signale zu reagieren ist, lesen Sie bitte die
   Dokumentation zu dem in Frage kommenden Da:mon.

   Mit kill(1) ko:nnen Sie, wie unten gezeigt, Signale verschicken.

   Verschicken von Signalen

   Das folgende Beispiel zeigt, wie Sie inetd(8) ein Signal schicken.
   Die Konfigurationsdatei von inetd ist /etc/inetd.conf. Diese
   Konfigurationsdatei liest inetd ein, wenn er ein SIGHUP empfa:ngt.

    1. Suchen Sie die Prozess-ID des Prozesses, dem Sie ein Signal
       schicken wollen. Benutzen Sie dazu ps(1) und grep(1). Mit
       grep(1) ko:nnen Sie in einer Ausgabe nach einem String suchen.
       Da inetd(8) unter dem Benutzer root la:uft und Sie das
       Kommando als normaler Benutzer absetzen, mu:ssen Sie ps(1) mit
       ax aufrufen:

 % ps -ax | grep inetd
   198  ??  IWs    0:00.00 inetd -wW

       Die Prozess-ID von inetd(8) ist 198. In einigen Fa:llen werden
       Sie auch das grep inetd Kommando in der Ausgabe sehen. Dies
       hat damit zu tun, wie ps(1) die Liste der laufenden Prozesse
       untersucht.

    2. Senden Sie das Signal mit kill(1). Da inetd(8) unter dem
       Benutzer root la:uft, mu:ssen Sie zuerst mit su(1) root
       werden:

 % su
 Password:
 # /bin/kill -s HUP 198

       kill(1) wird, wie andere Kommandos von UNIX Systemen auch,
       keine Ausgabe erzeugen, wenn das Kommando erfolgreich war.
       Wenn Sie versuchen, einem Prozess, der nicht Ihnen geho:rt,
       ein Signal zu senden, dann werden Sie die Meldung "kill: PID:
       Operation not permitted" sehen. Wenn Sie sich bei der Eingabe
       der PID vertippen, werden Sie das Signal dem falschen Prozess
       schicken, was schlecht sein kann. Wenn Sie Glu:ck haben,
       existiert der Prozess nicht und Sie werden mit der Ausgabe
       "kill: PID: No such process" belohnt.

         Warum soll ich /bin/kill benutzen?: Viele Shells stellen
         kill als internes Kommando zur Verfu:gung, das heisst die
         Shell sendet das Signal direkt, anstatt /bin/kill zu
         starten. Das kann nu:tzlich sein, aber die unterschiedlichen
         Shells benutzen eine verschiedene Syntax, um die Namen der
         Signale anzugeben. Anstatt jede Syntax zu lernen, kann es
         einfacher sein, /bin/kill ... direkt aufzurufen.

   Andere Signale senden Sie auf die gleiche Weise, ersetzen Sie nur
   TERM oder KILL entsprechend.

     Wichtig: Es kann gravierende Auswirkungen haben, wenn Sie
     zufa:llig Prozesse beenden. Insbesondere init(8) mit der
     Prozess-ID ist ein Spezialfall. Mit /bin/kill -s KILL 1 ko:nnen
     Sie Ihr System schnell herunterfahren. U:berpru:fen Sie die
     Argumente von kill(1) immer zweimal bevor Sie Return dru:cken.

     --------------------------------------------------------------

4.9. Shells

   Von der tagta:glichen Arbeit mit FreeBSD wird eine Menge mit der
   Kommandozeilen Schnittstelle der Shell erledigt. Die Hauptaufgabe
   einer Shell besteht darin, Kommandos der Eingabe anzunehmen und
   diese auszufu:hren. Viele Shells haben ausserdem eingebaute
   Funktionen, die die ta:gliche Arbeit erleichtern, beispielsweise
   eine Dateiverwaltung, die Vervollsta:ndigung von Dateinamen
   (Globbing), einen Kommandozeileneditor, sowie Makros und
   Umgebungsvariablen. FreeBSD entha:lt die Shells sh (die Bourne
   Shell) und tcsh (die verbesserte C-Shell) im Basissystem. Viele
   andere Shells, wie zsh oder bash, befinden sich in der
   Ports-Sammlung.

   Welche Shell soll ich benutzen? Das ist wirklich eine
   Geschmacksfrage. Sind Sie ein C-Programmierer, finden Sie
   vielleicht eine C-artige Shell wie die tcsh angenehmer. Kommen Sie
   von Linux oder ist Ihnen der Umgang mit UNIX Systemen neu, so
   ko:nnten Sie die bash probieren. Der Punkt ist, dass jede Shell
   ihre speziellen Eigenschaften hat, die mit Ihrer bevorzugten
   Arbeitsumgebung harmonieren ko:nnen oder nicht. Sie mu:ssen sich
   eine Shell aussuchen.

   Ein verbreitetes Merkmal in Shells ist die
   Dateinamen-Vervollsta:ndigung. Sie mu:ssen nur einige Buchstaben
   eines Kommandos oder eines Dateinamen eingeben und die Shell
   vervollsta:ndigt den Rest automatisch durch dru:cken der
   Tab-Taste. Hier ist ein Beispiel. Angenommen, Sie haben zwei
   Dateien foobar und foo.bar. Die Datei foo.bar mo:chten Sie
   lo:schen. Nun wu:rden Sie an der Tastatur eingeben: rm fo[Tab].
   [Tab].

   Die Shell wu:rde dann rm foo[BEEP].bar ausgeben.

   [BEEP] meint den Rechner-Piepser. Diesen gibt die Shell aus, um
   anzuzeigen, dass es den Dateinamen nicht vervollsta:ndigen konnte,
   da es mehrere Mo:glichkeiten gibt. Beide Dateien foobar und
   foo.bar beginnen mit fo, so konnte nur bis foo erga:nzt werden.
   Nachdem Sie . eingaben und dann die Tab-Taste dru:ckten, konnte
   die Shell den Rest fu:r Sie ausfu:llen.

   Ein weiteres Merkmal der Shell ist der Gebrauch von
   Umgebungsvariablen. Dies sind vera:nderbare Schlu:sselpaare im
   Umgebungsraum der Shell, die jedes von der Shell aufgerufene
   Programm lesen kann. Daher entha:lt der Umgebungsraum viele
   Konfigurationsdaten fu:r Programme. Die folgende Liste zeigt
   verbreitete Umgebungsvariablen und was sie bedeuten:

   Variable                       Beschreibung                        
   USER     Name des angemeldeten Benutzers.                          
   PATH     Liste mit Verzeichnissen (getrennt durch Doppelpunkt) zum 
            Suchen nach Programmen.                                   
   DISPLAY  Der Name des X11-Bildschirms, auf dem Ausgaben erfolgen   
            sollen.                                                   
   SHELL    Die aktuelle Shell.                                       
   TERM     Name des Terminaltyps des Benutzers. Benutzt, um die      
            Fa:higkeiten des Terminals zu bestimmen.                  
   TERMCAP  Datenbankeintrag der Terminal Escape Codes, beno:tigt um  
            verschieden Terminalfunktionen auszufu:hren.              
   OSTYPE   Typ des Betriebsystems, beispielsweise FreeBSD.           
   MACHTYPE Die CPU Architektur auf dem das System la:uft.            
   EDITOR   Vom Benutzer bevorzugter Text-Editor.                     
   PAGER    Vom Benutzer bevorzugter Text-Betrachter.                 
   MANPATH  Liste mit Verzeichnissen (getrennt durch Doppelpunkt) zum 
            Suchen nach Manualpages.                                  

   Das Setzen von Umgebungsvariablen funktioniert von Shell zu Shell
   unterschiedlich. Zum Beispiel benutzt man in C-artigen Shells wie
   der tcsh dazu setenv. Unter Bourne-Shells wie sh oder bash
   benutzen Sie zum Setzen von Umgebungsvariablen export. Um
   beispielsweise die Variable EDITOR mit csh oder tcsh auf
   /usr/local/bin/emacs zu setzen, setzen Sie das folgende Kommando
   ab:

 % setenv EDITOR /usr/local/bin/emacs

   Unter Bourne-Shells:

 % export EDITOR="/usr/local/bin/emacs"

   Sie ko:nnen die meisten Shells Umgebungsvariablen expandieren
   lassen, in dem Sie in der Kommandozeile ein $ davor eingeben. Zum
   Beispiel gibt echo $TERM aus, worauf $TERM gesetzt ist, weil die
   Shell $TERM expandiert und das Ergebnis an echo gibt.

   Shells behandeln viele Spezialzeichen, so genannte Metazeichen,
   als besondere Darstellungen fu:r Daten. Das allgemeinste ist das
   Zeichen *, das eine beliebige Anzahl Zeichen in einem Dateinamen
   repra:sentiert. Diese Metazeichen ko:nnen zum Vervollsta:ndigen
   von Dateinamen (Globbing) benutzt werden. Beispielsweise liefert
   das Kommando echo * nahezu das gleiche wie die Eingabe von ls, da
   die Shell alle Dateinamen die mit * u:bereinstimmen, an echo
   weitergibt.

   Um zu verhindern, dass die Shell diese Sonderzeichen
   interpretiert, kann man sie schu:tzen, indem man ihnen einen
   Backslash (\) voranstellt. echo $TERM gibt aus, auf was auch immer
   Ihr Terminal gesetzt ist. echo \$TERM gibt $TERM genauso aus, wie
   es hier steht.

     --------------------------------------------------------------

  4.9.1. A:ndern der Shell

   Der einfachste Weg Ihre Shell zu a:ndern, ist das Kommando chsh zu
   benutzen. chsh platziert Sie im Editor, welcher durch Ihre
   Umgebungsvariable EDITOR gesetzt ist, im vi wenn die Variable
   nicht gesetzt ist. A:ndern Sie die Zeile mit "Shell:" entsprechend
   Ihren Wu:nschen.

   Sie ko:nnen auch chsh mit der Option -s aufrufen, dann wird Ihre
   Shell gesetzt, ohne dass Sie in einen Editor gelangen. Um Ihre
   Shell zum Beispiel auf die bash zu a:ndern, geben Sie das folgende
   Kommando ein:

 % chsh -s /usr/local/bin/bash

     Anmerkung: Die von Ihnen gewu:nschte Shell muss in /etc/shells
     aufgefu:hrt sein. Haben Sie eine Shell aus der Ports-Sammlung
     installiert, sollte das schon automatisch erledigt werden.
     Installierten Sie die Shell von Hand, so mu:ssen Sie sie dort
     eintragen.

     Haben Sie beispielsweise die bash nach /usr/local/bin
     installiert, geben Sie Folgendes ein:

 # echo "/usr/local/bin/bash" >> /etc/shells

     Danach ko:nnen Sie chsh aufrufen.

     --------------------------------------------------------------

4.10. Text-Editoren

   Eine grosser Teil der Konfiguration wird bei FreeBSD durch das
   Editieren von Textdateien erledigt. Deshalb ist es eine gute Idee,
   mit einem Texteditor vertraut zu werden. FreeBSD hat ein paar
   davon im Basissystem und sehr viel mehr in der Ports-Sammlung.

   Der am leichtesten und einfachsten zu erlernende Editor nennt sich
   ee, was fu:r easy editor steht. Um ee zu starten, gibt man in der
   Kommandozeile ee filename ein, wobei filename den Namen der zu
   editierenden Datei darstellt. Um zum Beispiel /etc/rc.conf zu
   editieren, tippen Sie ee /etc/rc.conf ein. Einmal im Editor,
   finden Sie alle Editor-Funktionen oben im Display aufgelistet. Das
   Einschaltungszeichen ^ steht fu:r die Ctrl (oder Strg) Taste, mit
   ^e ist also die Tastenkombination Ctrl+e gemeint. Um ee zu
   verlassen, dru:cken Sie Esc und wa:hlen dann leave editor aus. Der
   Editor fragt nach, ob Sie speichern mo:chten, wenn die Datei
   vera:ndert wurde.

   FreeBSD verfu:gt u:ber leistungsfa:higere Editoren wie vi als Teil
   des Basissystems, andere Editoren wie emacs oder vim sind Teil der
   Ports-Sammlung. Diese Editoren bieten ho:here Funktionalita:t und
   Leistungsfa:higkeit, jedoch auf Kosten einer etwas schwierigeren
   Erlernbarkeit. Wenn Sie viele Textdateien editieren, sparen Sie
   auf lange Sicht mehr Zeit durch das Erlernen von Editoren wie vim
   oder emacs ein.

   Viele Anwendungen, die Dateien vera:ndern oder Texteingabe
   erwarten, werden automatisch einen Texteditor o:ffnen. Um den
   Standardeditor zu a:ndern, setzen Sie die Umgebungsvariable
   EDITOR. Um mehr daru:ber zu erfahren, lesen Sie den Abschnitt
   Shells.

     --------------------------------------------------------------

4.11. Gera:te und Gera:tedateien

   Der Begriff Gera:t wird meist in Verbindung mit Hardware wie
   Laufwerken, Druckern, Grafikkarten oder Tastaturen gebraucht. Der
   Grossteil der Meldungen, die beim Booten von FreeBSD angezeigt
   werden, beziehen sich auf gefundene Gera:te. Sie ko:nnen sich die
   Bootmeldungen spa:ter in /var/run/dmesg.boot ansehen.

   Gera:tenamen, die Sie wahrscheinlich in den Bootmeldungen sehen
   werden, sind zum Beispiel acd0, das erste IDE CD-ROM oder kbd0,
   die Tastatur.

   Auf die meisten Gera:te wird unter UNIX Systemen u:ber spezielle
   Gera:tedateien im /dev Verzeichnis zugegriffen.

     --------------------------------------------------------------

  4.11.1. Anlegen von Gera:tedateien

   Wenn sie ein neues Gera:t zu Ihrem System hinzufu:gen, oder die
   Unterstu:tzung fu:r zusa:tzliche Gera:te kompilieren, mu:ssen ein
   oder mehrere Gera:tedateien erstellt werden.

     --------------------------------------------------------------

    4.11.1.1. DEVFS (Gera:tedateisystem)

   Das Gera:tedateisystem DEVFS ermo:glicht durch den Namensraum des
   Dateisystems Zugriff auf den Namensraum der Gera:te im Kernel.
   Damit mu:ssen Gera:tedateien nicht mehr extra angelegt werden,
   sondern werden von DEVFS verwaltet.

   Weitere Informationen finden Sie in devfs(5).

     --------------------------------------------------------------

4.12. Bina:rformate

   Um zu verstehen, warum FreeBSD das Format elf(5) benutzt, mu:ssen
   Sie zuna:chst etwas u:ber die drei gegenwa:rtig "dominanten"
   ausfu:hrbaren Formate fu:r UNIX Systeme wissen:

     * a.out(5)

       Das a:lteste und "klassische" Objektformat von UNIX Systemen.
       Es benutzt einen kurzen, kompakten Header mit einer magischen
       Nummer am Anfang, die oft benutzt wird, um das Format zu
       charakterisieren (weitere Details finden Sie unter a.out(5)).
       Es entha:lt drei geladene Segmente: .text, .data und .bss,
       sowie eine Symboltabelle und eine Stringtabelle.

     * COFF

       Das Objektformat von SVR3. Der Header entha:lt nun eine
       "Sectiontable". Man kann also mit mehr als nur den Sections
       .text, .data und .bss arbeiten.

     * elf(5)

       Der Nachfolger von COFF. Kennzeichnend sind mehrere Sections
       und mo:gliche 32-Bit- oder 64-Bit-Werte. Ein wesentlicher
       Nachteil: ELF wurde auch unter der Annahme entworfen, dass es
       nur eine ABI (Application Binary Interface) pro
       Systemarchitektur geben wird. Tatsa:chlich ist diese Annahme
       falsch - nicht einmal fu:r die kommerzielle SYSV-Welt (in der
       es mindestens drei ABIs gibt: SVR4, Solaris, SCO) trifft sie
       zu.

       FreeBSD versucht, dieses Problem zu umgehen, indem ein
       Werkzeug bereitgestellt wird, um ausfu:hrbare Dateien im
       ELF-Format mit Informationen u:ber die ABI zu versehen, zu der
       sie passen. Weitere Informationen finden Sie in der Manualpage
       brandelf(1).

   FreeBSD kommt aus dem "klassischen" Lager und verwendete
   traditionell das Format a.out(5), eine Technik, die bereits u:ber
   viele BSD-Releases hinweg eingesetzt und gepru:ft worden ist.
   Obwohl es bereits seit einiger Zeit mo:glich war, auf einem
   FreeBSD-System auch Binaries (und Kernel) im ELF-Format zu
   erstellen und auszufu:hren, widersetzte FreeBSD sich anfangs dem
   "Druck", auf ELF als Standardformat umzusteigen. Warum? Nun, als
   das Linux-Lager die schmerzhafte Umstellung auf ELF durchfu:hrte,
   ging es nicht so sehr darum, dem ausfu:hrbaren Format a.out zu
   entkommen, als dem unflexiblen, auf Sprungtabellen basierten
   Mechanismus fu:r "Shared-Libraries" der die Konstruktion von
   Shared-Libraries fu:r Hersteller und Entwickler gleichermassen
   sehr kompliziert machte. Da die verfu:gbaren ELF-Werkzeuge eine
   Lo:sung fu:r das Problem mit den Shared-Libraries anboten und
   ohnehin generell als "ein Schritt vorwa:rts" angesehen wurden,
   wurde der Aufwand fu:r die Umstellung als notwendig akzeptiert und
   die Umstellung wurde durchgefu:hrt. Unter FreeBSD ist der
   Mechanismus von Shared-Libraries enger an den Stil des
   Shared-Library-Mechanismus von Suns SunOS(TM) angelehnt und von
   daher sehr einfach zu verwenden.

   Ja, aber warum gibt es so viele unterschiedliche Formate?

   In alter, grauer Vorzeit gab es simple Hardware. Diese simple
   Hardware unterstu:tzte ein einfaches, kleines System. a.out war
   absolut passend fu:r die Aufgabe, Binaries auf diesem simplen
   System (eine PDP-11) darzustellen. Als UNIX von diesem simplen
   System portiert wurde, wurde auch das a.out-Format beibehalten,
   weil es fu:r die fru:hen Portierungen auf Architekturen wie den
   Motorola 68000 und VAX ausreichte.

   Dann dachte sich ein schlauer Hardware-Ingenieur, dass, wenn er
   Software zwingen ko:nnte, einige Tricks anzustellen, es ihm
   mo:glich wa:re, ein paar Gatter im Design zu sparen, und seinen
   CPU-Kern schneller zu machen. Obgleich es dazu gebracht wurde, mit
   dieser neuen Art von Hardware (heute als RISC bekannt) zu
   arbeiten, war a.out fu:r diese Hardware schlecht geeignet. Deshalb
   wurden viele neue Formate entwickelt, um eine bessere Leistung auf
   dieser Hardware zu erreichen, als mit dem begrenzten, simplen
   a.out-Format. Dinge wie COFF, ECOFF und einige andere obskure
   wurden erdacht und ihre Grenzen untersucht, bevor die Dinge sich
   in Richtung ELF entwickelten.

   Hinzu kam, dass die Gro:sse von Programmen gewaltig wurde und
   Festplatten sowie physikalischer Speicher immer noch relativ klein
   waren. Also wurde das Konzept von Shared-Libraries geboren. Das
   VM-System wurde auch immer fortgeschrittener. Obwohl bei jedem
   dieser Fortschritte das a.out-Format benutzt worden ist, wurde
   sein Nutzen mit jedem neuen Merkmal mehr und mehr gedehnt.
   Zusa:tzlich wollte man Dinge dynamisch zur Ausfu:hrungszeit laden,
   oder Teile ihres Programms nach der Initialisierung wegwerfen, um
   Hauptspeicher oder Swap-Speicher zu sparen. Programmiersprachen
   wurden immer fortschrittlicher und man wollte, dass Code
   automatisch vor der main-Funktion aufgerufen wird. Das
   a.out-Format wurde oft u:berarbeitet, um alle diese Dinge zu
   ermo:glichen und sie funktionierten auch fu:r einige Zeit. a.out
   konnte diese Probleme nicht ohne ein sta:ndiges Ansteigen eines
   Overheads im Code und in der Komplexita:t handhaben. Obwohl ELF
   viele dieser Probleme lo:ste, wa:re es sehr aufwa:ndig, ein System
   umzustellen, das im Grunde genommen funktionierte. Also musste ELF
   warten, bis es aufwa:ndiger war, bei a.out zu bleiben, als zu ELF
   u:berzugehen.

   Im Laufe der Zeit haben sich die Erstellungswerkzeuge, von denen
   FreeBSD seine Erstellungswerkzeuge abgeleitet hat (speziell der
   Assembler und der Loader), in zwei parallele Zweige entwickelt. Im
   FreeBSD-Zweig wurden Shared-Libraries hinzugefu:gt und einige
   Fehler behoben. Das GNU-Team, das diese Programme urspru:nglich
   geschrieben hat, hat sie umgeschrieben und eine simplere
   Unterstu:tzung zur Erstellung von Cross-Compilern durch beliebiges
   Einschalten verschiedener Formate usw. hinzugefu:gt. Viele Leute
   wollten Cross-Compiler fu:r FreeBSD erstellen, aber sie hatten
   kein Glu:ck, denn FreeBSD's a:ltere Sourcen fu:r as und ld waren
   hierzu nicht geeignet. Die neuen GNU-Werkzeuge (binutils)
   unterstu:tzen Cross-Compilierung, ELF, Shared-Libraries,
   C++-Erweiterungen und mehr. Weiterhin geben viele Hersteller
   ELF-Binaries heraus und es ist gut, wenn FreeBSD sie ausfu:hren
   kann.

   ELF ist ausdrucksfa:higer als a.out und gestattet eine bessere
   Erweiterbarkeit des Basissystems. Die ELF-Werkzeuge werden besser
   gewartet und bieten Unterstu:tzung von Cross-Compilierung, was
   fu:r viele Leute wichtig ist. ELF mag etwas langsamer sein, als
   a.out, aber zu versuchen, das zu messen, ko:nnte schwierig werden.
   Es gibt unza:hlige Details, in denen sich die beiden Formate
   unterscheiden, wie sie Pages abbilden, Initialisierungscode
   handhaben usw. Keins davon ist sehr wichtig, aber es sind
   Unterschiede. Irgendwann wird die Unterstu:tzung fu:r Programme im
   a.out-Format aus dem GENERIC-Kernel entfernt werden. Wenn es dann
   keinen oder kaum noch Bedarf fu:r die Unterstu:tzung dieses
   Formates gibt, werden die entsprechenden Routinen ganz entfernt
   werden.

     --------------------------------------------------------------

4.13. Weitere Informationen

  4.13.1. Manualpages

   Die umfassendste Dokumentation rund um FreeBSD gibt es in Form von
   Manualpages. Anna:hernd jedes Programm im System bringt eine kurze
   Referenzdokumentation mit, die die grundsa:tzliche Funktion und
   verschiedene Parameter erkla:rt. Diese Dokumentationen kann man
   mit dem man Kommando benutzen. Die Benutzung des man Kommandos ist
   einfach:

 % man Kommando

   Kommando ist der Name des Kommandos, u:ber das Sie etwas erfahren
   wollen. Um beispielsweise mehr u:ber das Kommando ls zu lernen,
   geben Sie ein:

 % man ls

   Die Online-Dokumentation ist in nummerierte Sektionen unterteilt:

    1. Benutzerkommandos.

    2. Systemaufrufe und Fehlernummern.

    3. Funktionen der C Bibliothek.

    4. Gera:tetreiber.

    5. Dateiformate.

    6. Spiele und andere Unterhaltung.

    7. Verschiedene Informationen.

    8. Systemverwaltung und -Kommandos.

    9. Kernel Entwickler.

   In einigen Fa:llen kann dasselbe Thema in mehreren Sektionen
   auftauchen. Es gibt zum Beispiel ein chmod Benutzerkommando und
   einen chmod() Systemaufruf. In diesem Fall ko:nnen Sie dem man
   Kommando sagen, aus welcher Sektion Sie die Information erhalten
   mo:chten, indem Sie die Sektion mit angeben:

 % man 1 chmod

   Dies wird Ihnen die Manualpage fu:r das Benutzerkommando chmod
   zeigen. Verweise auf eine Sektion der Manualpages werden
   traditionell in Klammern gesetzt. So bezieht sich chmod(1) auf das
   Benutzerkommando chmod und mit chmod(2) ist der Systemaufruf
   gemeint.

   Das ist nett, wenn Sie den Namen eines Kommandos wissen, und
   lediglich wissen wollen, wie es zu benutzen ist. Aber was tun Sie,
   wenn Sie Sich nicht an den Namen des Kommandos erinnern ko:nnen?
   Sie ko:nnen mit man nach Schlu:sselbegriffen in den
   Kommandobeschreibungen zu suchen, indem Sie den Parameter -k
   benutzen:

 % man -k mail

   Mit diesem Kommando bekommen Sie eine Liste der Kommandos, deren
   Beschreibung das Schlu:sselwort "mail" entha:lt. Diese
   Funktionalita:t erhalten Sie auch, wenn Sie das Kommando apropos
   benutzen.

   Nun, Sie schauen Sich alle die geheimnisvollen Kommandos in
   /usr/bin an, haben aber nicht den blassesten Schimmer, wozu die
   meisten davon gut sind? Dann rufen Sie doch das folgende Kommando
   auf:

 % cd /usr/bin
 % man -f *

   Dasselbe erreichen Sie durch Eingabe von:

 % cd /usr/bin
 % whatis *

     --------------------------------------------------------------

  4.13.2. GNU Info Dateien

   FreeBSD entha:lt viele Anwendungen und Utilities der Free Software
   Foundation (FSF). Zusa:tzlich zu den Manualpages bringen diese
   Programme ausfu:hrlichere Hypertext-Dokumente (info genannt) mit,
   welche man sich mit dem Kommando info ansehen kann. Wenn Sie emacs
   installiert haben, ko:nnen Sie auch dessen info-Modus benutzen.

   Um das Kommando info(1) zu benutzen, geben Sie ein:

 % info

   Eine kurze Einfu:hrung gibt es mit h; eine Befehlsreferenz
   erhalten Sie durch Eingabe von: ?.

     --------------------------------------------------------------

       Kapitel 5. Installieren von Anwendungen: Pakete und Ports

   U:bersetzt von Uwe Pierau.

5.1. U:bersicht

   FreeBSD entha:lt sehr viele Systemwerkzeuge, die Teil des
   Basissystems sind. Allerdings sind Sie fru:her oder spa:ter auf
   Software Dritter angewiesen, damit Sie bestimmte Arbeiten
   durchfu:hren ko:nnen. Um diese Software zu installieren, stellt
   FreeBSD zwei sich erga:nzende Methoden zur Verfu:gung: Die
   Ports-Sammlung (zur Installation aus dem Quellcode) sowie Pakete
   (auch als Packages bezeichnet, zur Installation von
   vorkompilierten bina:ren Softwarepaketen). Sie ko:nnen beide
   Methoden benutzen, um Ihre Lieblingsanwendungen von lokalen Medien
   oder u:ber das Netzwerk zu installieren.

   Dieses Kapitel behandelt die folgenden Themen:

     * Die Installation bina:rer Softwarepakete.

     * Der Bau Software Dritter aus dem Quellcode mithilfe der
       Ports-Sammlung.

     * Wie zuvor installierte Pakete oder Ports entfernt werden.

     * Wie Sie die Voreinstellungen der Ports-Sammlung
       u:berschreiben.

     * Die Suche nach geeigneter Software.

     * Wie Sie Ihre Anwendungen aktualisieren.

     --------------------------------------------------------------

5.2. Installation von Software

   Wenn Sie schon einmal ein UNIX System benutzt haben, werden Sie
   wissen, dass zusa:tzliche Software meist wie folgt installiert
   wird:

    1. Download der Software, die als Quelltext oder im Bina:rformat
       vorliegen kann.

    2. Auspacken der Software, die typischerweise ein mit
       compress(1), gzip(1) oder bzip2(1) komprimiertes Tar-Archiv
       entha:lt.

    3. Durchsuchen der Dokumentation, die sich meist in Dateien wie
       INSTALL, README oder mehreren Dateien im Verzeichnis doc/
       befindet, nach Anweisungen, wie die Software zu installieren
       ist.

    4. Kompilieren der Software wenn sie als Quelltext vorliegt. Dazu
       mu:ssen Sie vielleicht das Makefile anpassen, oder configure
       laufen lassen, oder andere Arbeiten durchfu:hren.

    5. Testen und installieren der Software.

   Das beschreibt aber nur den optimalen Fall. Wenn Sie Software
   installieren, die nicht speziell fu:r FreeBSD geschrieben wurde,
   mu:ssen Sie vielleicht sogar den Quelltext anpassen, damit die
   Software funktioniert.

   Wenn Sie unbedingt wollen, ko:nnen Sie mit FreeBSD Software nach
   der "althergebrachten" Methode installieren. Mit Paketen oder
   Ports bietet Ihnen FreeBSD allerdings zwei Methoden an, die Ihnen
   sehr viel Zeit sparen ko:nnen. Zurzeit werden u:ber 23,000
   Anwendungen Dritter u:ber diese Methoden zur Verfu:gung gestellt.

   Das FreeBSD-Paket einer Anwendung besteht aus einer einzigen
   Datei, die Sie sich herunterladen mu:ssen. Das Paket entha:lt
   schon u:bersetzte Kommandos der Anwendung, sowie zusa:tzliche
   Konfigurationsdateien oder Dokumentation. Zur Handhabung der
   Pakete stellt FreeBSD-Kommandos wie pkg_add(1), pkg_delete(1) oder
   pkg_info(1) zur Verfu:gung. Mit diesem System ko:nnen neue
   Anwendungen mit einem Kommando, pkg_add, installiert werden.

   Der FreeBSD-Port einer Anwendung ist eine Sammlung von Dateien,
   die das Kompilieren der Quelltexte einer Anwendung automatisieren.

   Die Dateien eines Ports fu:hren fu:r Sie alle oben aufgefu:hrten
   Schritte zum Installieren einer Anwendung durch. Mit einigen
   wenigen Kommandos wird der Quellcode der Anwendung automatisch
   heruntergeladen, ausgepackt, gepatcht, u:bersetzt und installiert.

   Tatsa:chlich kann das Portsystem auch dazu benutzt werden, Pakete
   zu generieren, die Sie mit den gleich beschriebenen Kommandos, wie
   pkg_add, manipulieren ko:nnen.

   Pakete und Ports beachten Abha:ngigkeiten zwischen Anwendungen.
   Angenommen, Sie wollen eine Anwendung installieren, die von einer
   Bibliothek abha:ngt und die Anwendung wie die Bibliothek sind als
   Paket oder Port fu:r FreeBSD verfu:gbar. Wenn Sie pkg_add oder das
   Portsystem benutzen, um die Anwendung zu installieren, werden Sie
   bemerken, dass die Bibliothek zuerst installiert wird, wenn sie
   nicht schon vorher installiert war.

   Sie werden sich fragen, warum FreeBSD-Pakete und -Ports
   unterstu:tzt, wo doch beide Methoden fast gleiches leisten. Beide
   Methoden haben ihre Sta:rken und welche Sie einsetzen, ha:ngt
   letztlich von Ihren Vorlieben ab.

   Vorteile von Paketen

     * Das komprimierte Paket einer Anwendung ist normalerweise
       kleiner als das komprimierte Archiv der Quelltexte.

     * Pakete mu:ssen nicht mehr kompiliert werden. Dies ist ein
       Vorteil, wenn Sie grosse Pakete, wie Mozilla, KDE oder GNOME
       auf langsamen Maschinen installieren.

     * Wenn Sie Pakete verwenden, brauchen Sie nicht zu verstehen,
       wie Sie Software unter FreeBSD kompilieren.

   Vorteile von Ports

     * Da die Pakete auf mo:glichst vielen System laufen sollen,
       werden Optionen beim U:bersetzen zuru:ckhaltend gesetzt. Wenn
       Sie eine Anwendung u:ber die Ports installieren, ko:nnen Sie
       die Angabe der Optionen optimieren. Zum Beispiel ko:nnen Sie
       spezifischen Code fu:r Pentium 4 oder Athlon Prozessoren
       erzeugen.

     * Die Eigenschaften einiger Anwendungen werden u:ber Optionen
       zum Zeitpunkt des U:bersetzens festgelegt. Apache kann zum
       Beispiel u:ber viele eingebaute Optionen konfiguriert werden.
       Wenn Sie das Portsystem benutzen, ko:nnen Sie die Vorgaben
       fu:r die Optionen u:berschreiben.

       Fu:r einige Fa:lle existieren verschiedene Pakete einer
       Anwendung, die beim U:bersetzen unterschiedlich konfiguriert
       wurden. Fu:r Ghostscript gibt es ein ghostscript-Paket und ein
       ghostscript-nox11-Paket, die sich durch die X11 Unterstu:tzung
       unterscheiden. Diese grobe Unterscheidung ist mit dem
       Paketsystem mo:glich, wird aber schnell unhandlich, wenn eine
       Anwendung mehr als ein oder zwei Optionen zum Zeitpunkt des
       U:bersetzens besitzt.

     * Die Lizenzbestimmungen mancher Software verbietet ein
       Verbreiten in bina:rer Form. Diese Software muss als Quelltext
       ausgeliefert werden.

     * Einige Leute trauen bina:ren Distributionen nicht. Wenn Sie
       den Quelltext besitzen, ko:nnen Sie sich diesen (zumindest
       theoretisch) durchlesen und nach mo:glichen Problemen
       durchsuchen.

     * Wenn Sie eigene Anpassungen besitzen, beno:tigen Sie den
       Quelltext, um diese anzuwenden.

     * Manch einer besitzt gerne den Quelltext, um ihn zu lesen, wenn
       es einmal langweilig ist, ihn zu hacken, oder sich einfach ein
       paar Sachen abzugucken (natu:rlich nur, wenn es die
       Lizenzbestimmungen erlauben).

   Wenn Sie u:ber aktualisierte Ports informiert sein wollen, lesen
   Sie bitte die Mailinglisten FreeBSD ports und FreeBSD ports bugs.

     Warnung: Bevor Sie eine Anwendung installieren, sollten Sie auf
     der Seite http://vuxml.FreeBSD.org/ u:ber mo:gliche
     Sicherheitsprobleme mit der Anwendung informieren.

     Die Anwendung ports-mgmt/portaudit pru:ft automatisch alle
     installierten Anwendungen auf bekannte Sicherheitslo:cher. Vor
     dem Bau eines Ports findet ebenfalls eine Pru:fung statt.
     Installierte Pakete pru:fen Sie mit dem Kommando portaudit -F
     -a.

   Der Rest dieses Kapitels beschreibt, wie Sie Software Dritter mit
   Paketen oder Ports auf einem FreeBSD-System installieren und
   verwalten.

     --------------------------------------------------------------

5.3. Suchen einer Anwendung

   Bevor Sie eine Anwendung installieren, mu:ssen Sie deren Art und
   Namen kennen.

   Die Anzahl der nach FreeBSD portierten Anwendungen steigt
   sta:ndig. Zum Glu:ck gibt es einige Wege, die richtige zu finden.

     * Eine aktuelle Liste verfu:gbarer Anwendungen, die sich auch
       durchsuchen la:sst, finden Sie unter
       http://www.FreeBSD.org/ports/. Die Anwendungen sind in
       Kategorien unterteilt und Sie ko:nnen sich alle Anwendungen
       einer Kategorie anzeigen lassen. Wenn Sie den Namen der
       Anwendung kennen, ko:nnen Sie natu:rlich auch direkt nach dem
       Namen suchen.

     * FreshPorts, das von Dan Langille gepflegt wird, erreichen Sie
       unter http://www.FreshPorts.org/. FreshPorts verfolgt
       A:nderungen an Anwendungen aus den Ports. Mit FreshPorts
       ko:nnen Sie ein oder mehrere Ports beobachten und sich eine
       E-Mail schicken lassen, wenn ein Port aktualisiert wird.

     * Wenn Sie den Namen einer Anwendung nicht kennen, versuchen Sie
       eine Webseite wie FreshMeat (http://www.freshmeat.net/), um
       eine passende Anwendung zu finden. Schauen Sie dann auf der
       FreeBSD-Webseite nach, ob die Anwendung schon portiert wurde.

     * Wenn Sie den Portnamen kennen und nur nach der Kategorie
       suchen wollen, verwenden Sie das Kommando whereis(1). Geben
       Sie einfach whereis Datei ein. Datei ist der Name des
       Programms, das Sie suchen:

 # whereis lsof
 lsof: /usr/ports/sysutils/lsof

       Damit haben wir herausgefunden, dass sich lsof, ein
       Systemwerkzeug, im Verzeichnis /usr/ports/sysutils/lsof
       befindet.

     * Auch mit einem einfachen echo(1)-Befehl ko:nnen Sie
       herausfinden, wo Sie einen bestimmten Port finden. Dazu ein
       Beispiel:

 # echo /usr/ports/*/*lsof*
           /usr/ports/sysutils/lsof

       Beachten Sie aber, dass dieser Befehl auch alle Dateien im
       Verzeichnis /usr/ports/distfiles findet, auf die der
       angegebene Suchbegriff passt.

     * Ein weiterer Weg, einen bestimmten Port zu finden, ist es, die
       eingebaute Suchfunktion der Ports-Sammlung zu benutzen. Dazu
       muss Ihr Arbeitsverzeichnis /usr/ports sein. In diesem
       Verzeichnis rufen Sie make search name=Anwendungsname auf,
       wobei Anwendungsname der Name der gesuchten Anwendung ist.
       Wenn Sie zum Beispiel nach lsof suchen:

 # cd /usr/ports
 # make search name=lsof
 Port:   lsof-4.56.4
 Path:   /usr/ports/sysutils/lsof
 Info:   Lists information about open files (similar to fstat(1))
 Maint:  obrien@FreeBSD.org
 Index:  sysutils
 B-deps:
 R-deps:

       Der Teil der Ausgabe der Sie interessiert ist die Zeile, die
       mit "Path:" beginnt, weil sie Ihnen sagt, wo der Port zu
       finden ist. Die anderen Informationen werden zum Installieren
       des Ports nicht direkt beno:tigt, Sie brauchen sich darum
       jetzt nicht weiter zu ku:mmern.

       Erweiterte Suchen fu:hren Sie mit dem Kommando make search
       key=Text aus. Damit werden Portnamen, Kommentare,
       Beschreibungen und Abha:ngigkeiten nach Text durchsucht. Dies
       kann sehr nu:tzlich sein, wenn Sie den Namen des Programms,
       nach dem Sie suchen, nicht kennen.

       In beiden Fa:llen wird Gross- und Kleinschreibung bei der
       Suche ignoriert. Die Suche nach "LSOF" wird dieselben
       Ergebnisse wie die Suche nach "lsof" liefern.

     --------------------------------------------------------------

5.4. Benutzen des Paketsystems

   Beigesteuert von Chern Lee.

   Es gibt viele unterschiedliche Werkzeuge um Pakete in FreeBSD zu
   verwalten:

     * Auf einem laufenden System kann sysinstall benutzt werden, um
       Pakete zu installieren, zu lo:schen und verfu:gbare und
       installierte anzuzeigen. Weitere Informationen finden Sie
       unter Abschnitt 2.10.11.

     * Die Paketverwaltungswerkzeuge der Kommandozeile sind die
       Themen von diesem Kapitel.

     --------------------------------------------------------------

  5.4.1. Installieren eines Pakets

   Mit pkg_add(1) ko:nnen Sie ein FreeBSD-Paket von einer lokalen
   Datei oder u:ber das Netzwerk installieren.

   Beispiel 5-1. Download vor Installation eines Pakets

 # ftp -a ftp2.FreeBSD.org
 Connected to ftp2.FreeBSD.org.
 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
 331 Guest login ok, send your email address as password.
 230-
 230-     This machine is in Vienna, VA, USA, hosted by Verio.
 230-         Questions? E-mail freebsd@vienna.verio.net.
 230-
 230-
 230 Guest login ok, access restrictions apply.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> cd /pub/FreeBSD/ports/packages/sysutils/
 250 CWD command successful.
 ftp> get lsof-4.56.4.tgz
 local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
 200 PORT command successful.
 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
 100% |**************************************************| 92375       00:00 ETA
 226 Transfer complete.
 92375 bytes received in 5.60 seconds (16.11 KB/s)
 ftp> exit
 # pkg_add lsof-4.56.4.tgz

   Wenn Sie die Pakete nicht lokal vorliegen haben (zum Beispiel auf
   den FreeBSD-CD-ROMs), ist es wahrscheinlich einfacher den Schalter
   -r von pkg_add(1) zu verwenden. Das Werkzeug bestimmt dann
   automatisch das no:tige Objektformat und die richtige Version des
   Pakets, la:dt dieses dann von einem FTP-Server und installiert das
   Paket.

 # pkg_add -r lsof

   Das obige Beispiel wu:rde ohne weitere Interaktion das richtige
   Paket herunterladen und installieren. Pakete werden vom
   FreeBSD-Hauptserver heruntergeladen. Wenn Sie anderen Server
   verwenden mo:chten, geben Sie den Server in der Umgebungsvariablen
   PACKAGESITE an. Die Dateien werden mit fetch(3), das
   Umgebungsvariablen wie FTP_PASSIVE_MODE, FTP_PROXY und
   FTP_PASSWORD beru:cksichtigt, heruntergeladen. Wenn Sie durch eine
   Firewall geschu:tzt werden, mu:ssen Sie vielleicht eine oder
   mehrere dieser Umgebungsvariablen setzen oder einen FTP oder HTTP
   Proxy verwenden. Eine Liste der unterstu:tzten Umgebungsvariablen
   finden Sie in fetch(3). Beachten Sie, dass im obigen Beispiel lsof
   anstelle von lsof-4.56.4 verwendet wird. Wenn Sie pkg_add(1) zum
   Herunterladen eines Pakets verwenden, darf die Versionsnummer des
   Pakets nicht angegeben werden, da automatisch die neuste Version
   der Anwendung geholt wird.

     Anmerkung: Unter FreeBSD-CURRENT oder FreeBSD-STABLE holt
     pkg_add(1) die neuste Version einer Anwendung, unter einer
     Release holt pkg_add(1) die Version der Anwendung, die im
     Release enthalten ist. Sie ko:nnen dies a:ndern, indem Sie die
     Umgebungsvariable PACKAGESITE u:berschreiben. Wenn Sie
     bespielsweise FreeBSD 8.1-RELEASE installiert haben, versucht
     pkg_add(1) in der Voreinstellung die Pakete von
     ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/
     zu laden. Wollen Sie pkg_add(1) dazu zwingen, nur
     FreeBSD 8-STABLE-Pakete herunterzuladen, setzen Sie die
     Umgebungsvariable PACKAGESITE auf
     ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/.

   Pakete werden im .tgz- und .tbz-Format ausgeliefert. Sie finden
   Sie unter ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/ oder
   auf der FreeBSD-CD-ROM-Distribution. Jede CD der FreeBSD
   Distribution (oder des PowerPaks) entha:lt Pakete im Verzeichnis
   /packages. Die Struktur des Paketbaums entspricht dem /usr/ports
   Baum. Jede Kategorie besitzt ein eigenes Verzeichnis und alle
   Pakete befinden sich im Verzeichnis All.

   Die Verzeichnisstruktur des Paketbaums ist ein Abbild der Ports,
   da beide Systeme eng zusammenarbeiten.

     --------------------------------------------------------------

  5.4.2. Verwalten von Paketen

   pkg_info(1) zeigt alle installierten Pakete und deren Beschreibung
   an.

 # pkg_info
 cvsup-16.1          A general network file distribution system optimized for CV
 docbook-1.2         Meta-port for the different versions of the DocBook DTD
 ...

   pkg_version(1) vergleicht die Version installierter Pakete mit der
   Version aus der Ports-Sammlung.

 # pkg_version
 cvsup                       =
 docbook                     =
 ...

   Die Symbole in der zweiten Spalte zeigen das Alter des Pakets im
   Vergleich zu der lokalen Version aus der Ports-Sammlung an.

   Symbol                          Bedeutung                          
   =      Die Version des installierten Paketes stimmt mit der        
          Version aus der lokalen Ports-Sammlung u:berein.            
   <      Die installierte Version ist a:lter als die der             
          verfu:gbaren Version aus der Ports-Sammlung.                
          Die installierte Version ist neuer als die aus der          
   >      Ports-Sammlung (Eventuell ist die lokale Ports-Sammlung     
          veraltet).                                                  
          Das installierte Paket konnte in der Ports-Sammlung nicht   
   ?      gefunden werden. Das kann dadurch hervorgerufen werden,     
          dass ein installierter Port aus der Ports-Sammlung entfernt 
          wurde oder einen neuen Namen erhalten hat.                  
   *      In der Ports-Sammlung befinden sich mehrere Versionen der   
          Anwendung.                                                  
          Das installierte Paket ist zwar im Index enthalten, aus     
          irgendeinem Grund war pkg_version aber dennoch nicht in der 
   !      Lage, die Versionsnummer des installierten Pakets mit der   
          Versionsnummer des entsprechenden Eintrags im Index zu      
          vergleichen.                                                

     --------------------------------------------------------------

  5.4.3. Entfernen eines Pakets

   Um ein zuvor installiertes Paket zu entfernen, benutzen Sie das
   Werkzeug pkg_delete(1).

 # pkg_delete xchat-1.7.1

   Beachten Sie, dass pkg_delete(1) die vollsta:ndige Bezeichnung des
   Pakets beno:tigt (also Paketname und Versionsnummer). Die Eingabe
   von xchat (anstelle von xchat-1.7.1) ist daher nicht ausreichend.
   Zwar ko:nnen Sie die Versionsnummer eines installierten Pakets mit
   pkg_version(1) herausfinden, es ist aber auch mo:glich, ein Paket
   zu deinstallieren, ohne die exakte Versionsnummer zu kennen, wenn
   Sie Wildcards einsetzen:

 # pkg_delete xchat\*

   In diesem Beispiel werden alle Pakete gelo:scht, deren Name mit
   xchat beginnt.

     --------------------------------------------------------------

  5.4.4. Verschiedenes

   Informationen u:ber alle installierte Pakete werden in /var/db/pkg
   abgelegt. Das Verzeichnis entha:lt Dateien, in denen sich die
   Beschreibungen der Pakete und Listen von Dateien, die zu einem
   Paket geho:ren, befinden.

     --------------------------------------------------------------

5.5. Benutzen der Ports-Sammlung

   Die folgenden Abschnitte stellen die grundlegenden Anweisungen
   vor, um Anwendungen aus der Ports-Sammlung auf Ihren Rechner zu
   installieren oder zu lo:schen. ports(7) entha:lt eine Auflistung
   aller verfu:gbaren make-Targets und Umgebungsvariablen.

     --------------------------------------------------------------

  5.5.1. Installation der Ports-Sammlung

   Bevor Sie einen Port installieren ko:nnen, mu:ssen Sie zuerst die
   Ports-Sammlung installieren, die aus Makefiles, Patches und
   Beschreibungen besteht. Die Ports-Sammlung wird fu:r gewo:hnlich
   unter /usr/ports installiert.

   Bei der FreeBSD-Installation hatten Sie in sysinstall die
   Mo:glichkeit, die Ports-Sammlung zu installieren. Wenn Sie die
   Sammlung damals nicht installiert haben, ko:nnen Sie das mit den
   folgenden Anweisungen nachholen:

   Installieren mit CVSup

   Dies ist eine schnelle Methode, um die Ports-Sammlung zu
   installieren und zu aktualisieren. CVSup wird im Abschnitt
   Benutzen von CVSup des Handbuchs beschrieben.

     Anmerkung: Die im Basissystem enthaltene Variante des
     CVSup-Protokolls heisst csup.

   Achten Sie darauf, dass das Verzeichnis /usr/ports leer ist, bevor
   Sie csup das erste Mal ausfu:hren! Haben Sie die Ports-Sammlung
   zuvor schon aus einer anderen Quelle installiert, wird csup
   bereits aus dem Repository entfernte Patches nicht aus der lokalen
   Kopie der Ports-Sammlung lo:schen.

    1. Rufen Sie csup auf:

 # csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

       Ersetzen Sie cvsup.FreeBSD.org durch einen CVSup-Server in
       Ihrer Na:he. Eine vollsta:ndige Liste der CVSup-Spiegel finden
       Sie im Abschnitt CVSup-Server des Handbuchs.

         Anmerkung: Sie sollten sich eine an Ihre Bedu:rfnisse
         angepasste ports-supfile erstellen, um so beispielsweise zu
         vermeiden, dass Sie bei jedem Aufruf von CVSup wieder die
         Parameterliste u:bergeben mu:ssen.

           1. Dazu kopieren Sie zuerst als root die Datei
              /usr/share/examples/cvsup/ports-supfile nach /root oder
              in Ihr Heimatverzeichnis.

           2. Danach mu:ssen Sie die Datei ports-supfile anpassen.

           3. Dazu ersetzen Sie cvsup.FreeBSD.org durch einen
              CVSup-Server in Ihrer Na:he. Eine vollsta:ndige Liste
              der CVSup-Spiegel finden Sie im Abschnitt CVSup-Server
              des Handbuchs.

           4. Nun ko:nnen Sie csup mit folgender Syntax starten:

 # csup -L 2 /root/ports-supfile

    2. Mit csup(1) ko:nnen Sie spa:ter auch die Ports-Sammlung
       aktualisieren. Die installierten Ports werden mit diesem
       Kommando allerdings nicht aktualisiert.

   Installieren mit Portsnap

   Bei Portsnap handelt es sich um ein alternatives System zur
   Distribution der Ports-Sammlung. Eine detaillierte Beschreibung
   von Portsnap finden Sie im Abschnitt Portsnap: Ein Werkzeug zur
   Aktualisierung der Ports-Sammlung des Handbuchs.

    1. Laden Sie einen komprimierten Snapshot der Ports-Sammlung in
       das Verzeichnis /var/db/portsnap herunter. Danach ko:nnen Sie
       die Internetverbindung trennen, wenn Sie dies wu:nschen.

 # portsnap fetch

    2. Wenn Sie Portsnap das erste Mal verwenden, mu:ssen Sie den
       Snapshot nach /usr/ports extrahieren:

 # portsnap extract

       Ist die Ports-Sammlung bereits installiert, und Sie wollen
       diese nur aktualisieren, fu:hren Sie stattdessen folgenden
       Befehl aus:

 # portsnap update

   Installieren mit sysinstall

   Nicht zuletzt ist es auch mo:glich, die Ports-Sammlung u:ber
   sysinstall zu installieren. Beachten Sie dabei aber, dass bei
   dieser Methode nicht die aktuellste Version der Ports-Sammlung,
   sondern die Version, die zum Zeitpunkt der Vero:ffentlichung der
   installierten FreeBSD-Version aktuell war, installiert wird. Haben
   Sie Zugriff auf das Internet, so sollten Sie daher stets eine der
   weiter oben beschriebenen Methoden verwenden, um die
   Ports-Sammlung zu installieren.

    1. Fu:hren Sie als root sysinstall aus:

 # sysinstall

    2. Wa:hlen Sie den Punkt Configure aus und dru:cken Sie Enter.

    3. Wa:hlen Sie dann Distributions aus und dru:cken Sie Enter.

    4. In diesem Menu: wa:hlen Sie ports aus und dru:cken die
       Leertaste.

    5. Danach wa:hlen Sie Exit aus und dru:cken Enter.

    6. Legen Sie nun ein geeignetes Installationsmedium, wie CD-ROM
       oder FTP, fest.

    7. Wa:hlen Sie nun Exit aus und dru:cken Enter.

    8. Verlassen Sie sysinstall mit X.

     --------------------------------------------------------------

  5.5.2. Ports installieren

   Was ist mit einem "Geru:st" im Zusammenhang mit der Ports-Sammlung
   gemeint? In aller Ku:rze: ein Geru:st eines Ports ist ein
   minimaler Satz von Dateien, mit denen das FreeBSD-System eine
   Anwendung sauber u:bersetzen und installieren kann. Ein jeder Port
   beinhaltet:

     * Eine Datei Makefile. Das Makefile entha:lt verschiedene
       Anweisungen, die spezifizieren, wie eine Anwendung kompiliert
       wird und wo sie auf Ihrem System installiert werden sollte.

     * Eine Datei distinfo. Diese entha:lt Informationen, welche
       Dateien heruntergeladen werden mu:ssen sowie deren
       MD5-Pru:fsummen (die Sie mit sha256(1) u:berpru:fen ko:nnen,
       um sicher zu gehen, dass diese Dateien wa:hrend des
       Herunterladens nicht bescha:digt wurden).

     * Ein files Verzeichnis. Hierin liegen Patches, welche das
       U:bersetzen und Installieren der Anwendung ermo:glichen.
       Patches sind im Wesentlichen kleine Dateien, die A:nderungen
       an speziellen Dateien spezifizieren. Sie liegen als reiner
       Text vor und sagen ungefa:hr: "Lo:sche Zeile 10" oder "A:ndere
       Zeile 26 zu ...". Patches sind auch bekannt unter dem Namen
       "diffs", weil Sie mit dem Programm diff(1) erstellt werden.

       Dieses Verzeichnis kann auch noch andere Dateien enthalten,
       welche zum Bauen des Ports benutzt werden.

     * Eine Datei pkg-descr. Eine ausfu:hrlichere, oft mehrzeilige
       Beschreibung der Anwendung.

     * Eine Datei pkg-plist. Das ist eine Liste aller Dateien, die
       durch diesen Port installiert werden. Ausserdem sind hier
       Informationen enthalten, die zum Entfernen des Ports beno:tigt
       werden.

   Einige Ports besitzen noch andere Dateien, wie pkg-message, die
   vom Portsystem benutzt werden, um spezielle Situationen zu
   handhaben. Wenn Sie mehr u:ber diese Dateien oder das Port-System
   erfahren sollen, lesen Sie bitte das FreeBSD Porter's Handbook.

   Ein Port entha:lt lediglich Anweisungen, wie der Quelltext zu
   bauen ist, nicht aber den eigentlichen Quelltext. Den Quelltext
   erhalten Sie von einer CD-ROM oder aus dem Internet. Quelltexte
   werden in einem Format nach Wahl des jeweiligen Software-Autors
   ausgeliefert. Ha:ufig ist dies ein gezipptes Tar-Archiv, aber es
   kann auch mit einem anderen Tool komprimiert oder gar nicht
   komprimiert sein. Der Quelltext, in welcher Form er auch immer
   vorliegen mag, wird "Distfile" genannt. Die zwei Methoden, mit
   denen ein Port installiert wird, werden unten besprochen.

     Anmerkung: Zum Installieren von Ports mu:ssen Sie als Benutzer
     root angemeldet sein.

     Warnung: Stellen Sie sicher, dass die Ports-Sammlung aktuell
     ist, bevor Sie einen Port installieren. Informieren Sie sich
     vorher zusa:tzlich unter http://vuxml.FreeBSD.org/ u:ber
     mo:gliche Sicherheitsprobleme des zu installierenden Ports.

     Vor der Installation kann portaudit eine neue Anwendung
     automatisch auf Sicherheitslo:cher pru:fen. Das Werkzeug
     befindet sich in der Ports-Sammlung (ports-mgmt/portaudit). Vor
     der Installation einer neuen Anwendung sollten Sie mit portaudit
     -F die Sicherheitsdatenbank aktualisieren. Die ta:glich laufende
     Sicherheitspru:fung des Systems aktualisiert die Datenbank und
     pru:ft installierte Anwendungen auf vorhandene
     Sicherheitslo:cher. Weiteres erfahren Sie in den Hilfeseiten
     portaudit(1) und periodic(8).

   Die Ports-Sammlung geht davon, dass Ihr System u:ber eine
   funktionierende Internetverbindung verfu:gt. Ist dies nicht der
   Fall, mu:ssen Sie eine Kopie des zu installierenden Distfiles
   manuell nach /usr/ports/distfiles kopieren.

   Dazu wechseln Sie als erstes in das Verzeichnis des Ports, den Sie
   installieren wollen:

 # cd /usr/ports/sysutils/lsof

   Im Verzeichnis lsof kann man das Geru:st erkennen. Der na:chste
   Schritt ist das U:bersetzen (auch Bauen genannt) des Ports durch
   die Eingabe des Befehls make:

 # make
 >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
 >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
 ===>  Extracting for lsof-4.57
 ...
 [Ausgabe des Auspackens weggelassen]
 ...
 >> Checksum OK for lsof_4.57D.freebsd.tar.gz.
 ===>  Patching for lsof-4.57
 ===>  Applying FreeBSD patches for lsof-4.57
 ===>  Configuring for lsof-4.57
 ...
 [configure-Ausgabe weggelassen]
 ...
 ===>  Building for lsof-4.57
 ...
 [Ausgabe der U:bersetzung weggelassen]
 ...
 #

   Ist die U:bersetzungsprozedur beendet, landen Sie wiederum in der
   Kommandozeile und ko:nnen das Programm im na:chsten Schritt
   installieren. Dazu verwenden Sie den Befehl make install:

 # make install
 ===>  Installing for lsof-4.57
 ...
 [Ausgabe der Installation weggelassen]
 ...
 ===>   Generating temporary packing list
 ===>   Compressing manual pages for lsof-4.57
 ===>   Registering installation for lsof-4.57
 ===>  SECURITY NOTE:
       This port has installed the following binaries which execute with
       increased privileges.
 #

   Nachdem die Installation abgeschlossen ist, ko:nnen Sie die gerade
   installierte Anwendung starten. Da lsof eine Anwendung ist, die
   mit erho:hten Rechten la:uft, wird eine Sicherheitswarnung
   angezeigt. Sie sollten alle Warnungen wa:hrend des Baus und der
   Installation eines Ports beachten.

   Es ist eine gute Idee, das Unterverzeichnis work nach erfolgter
   Installation wieder zu lo:schen. Einerseits gewinnen Sie dadurch
   Speicherplatz, andererseits ko:nnte es sonst zu Problemen bei der
   Aktualisierung des Ports auf eine neuere Version kommen.

 # make clean
 ===>  Cleaning for lsof-4.57
 #

     Anmerkung: Sie ko:nnen zwei Schritte sparen, wenn Sie gleich
     make install clean anstelle von make, make install und make
     clean eingeben.

     Anmerkung: Um die Suche nach Kommandos zu beschleunigen,
     speichern einige Shells eine Liste der verfu:gbaren Kommandos in
     den durch die Umgebungsvariable PATH gegebenen Verzeichnissen.
     Nach der Installation eines Ports mu:ssen Sie in einer solchen
     Shell vielleicht das Kommando rehash absetzen, um die neu
     installierten Kommandos benutzen zu ko:nnen. Das Kommando rehash
     gibt es in Shells wie der tcsh. Unter Shells wie der sh benutzen
     Sie das Kommando hash -r. Weiteres entnehmen Sie bitte der
     Dokumentation Ihrer Shell.

   Einige von Dritten angebotenen DVD-ROM-Produkte wie das FreeBSD
   Toolkit von der FreeBSD Mall enthalten auch Distfiles
   (komprimierte Quellcodepakete). Diese lassen sich u:ber die
   Ports-Sammlung installieren. Dazu ha:ngen Sie die DVD-ROM unter
   /cdrom in den Verzeichnisbaum ein. Wenn Sie einen anderen
   Mountpunkt verwenden, sollten Sie die make-Variable CD_MOUNTPTS
   setzen, damit die auf der DVD-ROM enthaltenen Distfiles
   automatisch verwendet werden.

     Anmerkung: Beachten Sie bitte, dass die Lizenzen einiger Ports
     die Einbeziehung auf der CD-ROM verbieten. Das kann verschiedene
     Gru:nde haben. Beispielsweise eine Registrierung vor dem
     Herunterladen erforderlich oder die Weiterverteilung ist
     verboten. Wenn Sie einen Port installieren wollen, der nicht auf
     der CD-ROM enthalten ist, mu:ssen Sie online sein.

   Die Ports-Sammlung benutzt zum Herunterladen von Dateien fetch(3),
   das Umgebungsvariablen wie FTP_PASSIVE_MODE, FTP_PROXY und
   FTP_PASSWORD beru:cksichtigt. Wenn Sie durch eine Firewall
   geschu:tzt werden, mu:ssen Sie vielleicht eine oder mehrere dieser
   Umgebungsvariablen setzen, oder einen FTP oder HTTP Proxy
   verwenden. Eine Liste der unterstu:tzten Umgebungsvariablen finden
   Sie in fetch(3).

   Benutzer ohne eine sta:ndige Internet-Verbindung werden das
   Kommando make fetch zu scha:tzen wissen. Das Kommando la:dt alle
   beno:tigten Dateien eines Ports herunter. Sie ko:nnen das Kommando
   im Verzeichnis /usr/ports laufen lassen. In diesem Fall werden
   alle Dateien heruntergeladen. Es ist auch mo:glich, make fetch nur
   in einem Teil des Baums, wie /usr/ports/net, aufzurufen. Die
   Dateien von allen abha:ngigen Ports werden mit diesem Kommando
   allerdings nicht heruntergeladen. Wenn Sie diese Dateien ebenfalls
   herunterladen wollen, ersetzen Sie im Kommando fetch durch
   fetch-recursive.

     Anmerkung: Abha:ngig davon, in welchem Verzeichnis Sie make
     aufrufen, ko:nnen Sie analog zu make fetch die Ports einer
     Kategorie oder alle Ports bauen. Beachten Sie allerdings, dass
     manche Ports nicht zusammen installiert werden ko:nnen.
     Weiterhin gibt es Fa:lle, in denen zwei Ports unterschiedliche
     Inhalte in derselben Datei speichern wollen.

   Manchmal ist es erforderlich, die beno:tigten Dateien von einem
   anderen Ort als den im Port vorgesehenen herunterzuladen. Der Ort
   wird durch die Variable MASTER_SITES vorgegeben, die Sie wie folgt
   u:berschreiben ko:nnen:

 # cd /usr/ports/directory
 # make MASTER_SITE_OVERRIDE= \
 ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

   Im Beispiel wurde MASTER_SITES mit dem Wert
   ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ u:berschrieben.

     Anmerkung: Einige Ports besitzen Optionen, mit denen Sie
     zusa:tzliche Funktionen oder Sicherheitsoptionen einstellen
     ko:nnen (oder manchmal auch mu:ssen). Zusa:tzliche Optionen
     ko:nnen beispielsweise fu:r www/firefox, security/gpgme und
     mail/sylpheed-claws angegeben werden. Wenn ein Port u:ber
     zusa:tzliche Optionen verfu:gt, werden diese beim Bau des Ports
     auf der Konsole ausgegeben.

     --------------------------------------------------------------

    5.5.2.1. Vorgabe-Verzeichnisse a:ndern

   Manchmal ist es nu:tzlich (oder erforderlich), in anderen
   Verzeichnissen zu arbeiten. Die Verzeichnisse ko:nnen Sie mit den
   Variablen WRKDIRPREFIX und PREFIX einstellen. Die Variable
   WRKDIRPREFIX gibt das Bauverzeichnis an:

 # make WRKDIRPREFIX=/usr/home/example/ports install

   Dieses Kommando baut den Port in /usr/home/example/ports und
   installiert ihn unter /usr/local.

   Die Variable PREFIX legt das Installations-Verzeichnis fest:

 # make PREFIX=/usr/home/example/local install

   In diesem Beispiel wird der Port unter /usr/ports gebaut und nach
   /usr/home/example/local installiert.

   Sie ko:nnen beide Variablen auch zusammen benutzen:

 # make WRKDIRPREFIX=../ports PREFIX=../local install

   Die Kommandozeile ist zu lang, um sie hier komplett wiederzugeben,
   aber Sie sollten die zugrunde liegende Idee erkennen.

     --------------------------------------------------------------

    5.5.2.2. Probleme mit imake

   Einige Ports, welche imake(1) (Teil des X-Window-Systems)
   benutzen, funktionieren nicht gut mit PREFIX und bestehen darauf,
   unter /usr/X11R6 installiert zu werden. In a:hnlicher Weise
   verhalten sich einige Perl-Ports, die PREFIX ignorieren und sich
   in den Perl-Verzeichnisbaum installieren. Zu erreichen, dass
   solche Ports PREFIX beachten, ist schwierig oder sogar unmo:glich.

     --------------------------------------------------------------

    5.5.2.3. Ports rekonfigurieren

   Beim Bau einiger Ports erhalten Sie ein ncurses-basiertes Menu:,
   u:ber dessen Optionen Sie den Bau dieser Ports beeinflussen
   ko:nnen. Es gibt diverse Mo:glichkeiten, dieses Menu: nach dem Bau
   eines Ports erneut aufzurufen, um beispielsweise Optionen zu
   entfernen, hinzuzufu:gen oder anzupassen. Sie ko:nnen
   beispielsweise in das Verzeichnis des Ports wechseln und dort den
   Befehl make config eingeben, wodurch das Menu: mit den
   urspru:nglichen gewa:hlten Optionen erneut aufgerufen wird. Eine
   andere Mo:glichkeit bietet der Befehl make showconfig, mit dem Sie
   eine Liste aller Konfigurationsoptionen dieses Ports aufrufen.
   Eine weitere Alternative bietet der Befehl make rmconfig, der die
   von Ihnen urspru:nglich gewa:hlten Optionen zuru:cksetzt und es
   Ihnen dadurch ermo:glicht, die Konfiguration erneut zu beginnen.
   Die eben erwa:hnten Optionen (und viele andere) werden
   ausfu:hrlich in der Manualpage ports(7) beschrieben.

     --------------------------------------------------------------

  5.5.3. Entfernen installierter Ports

   Da Sie nun wissen, wie man einen Port installiert, wollen Sie
   sicher auch wissen, wie man ein u:ber einen Port installiertes
   Programm wieder deinstallieren kann. Ports werden analog zu
   Paketen mit pkg_delete(1) deinstalliert (Lesen Sie sich den
   Abschnitt Benutzen des Paketsystems des Handbuchs durch, wenn Sie
   weitere Informationen beno:tigen.). Fu:r das vorhin installierte
   Programm lsof wu:rden Sie dazu wie folgt vorgehen:

 # pkg_delete lsof-4.57

     --------------------------------------------------------------

  5.5.4. Ports aktualisieren

   Als erstes sollten sie sich alle installierten Ports anzeigen
   lassen, von denen eine aktuellere Version in der Ports-Sammlung
   existiert. Dazu verwenden Sie den Befehl pkg_version(1):

 # pkg_version -v

     --------------------------------------------------------------

    5.5.4.1. /usr/ports/UPDATING

   Nachdem Sie die Ports-Sammlung auf den neusten Stand gebracht
   haben, lesen Sie bitte zuerst die Datei /usr/ports/UPDATING, bevor
   Sie einen Port aktualisieren. In dieser Datei werden Probleme und
   zusa:tzlich durchzufu:hrende Schritte bei der Aktualisierung
   einzelner Ports beschrieben. Dazu geho:ren solche Dinge wie
   gea:nderte Dateiformate, verschobene Konfigurationsdateien, aber
   auch Inkompatibilita:ten zu einer Vorga:ngerversion.

   Sollte UPDATING etwas hier Gesagtem widersprechen, so gilt das in
   UPDATING Gesagte.

     --------------------------------------------------------------

    5.5.4.2. Ports mit Portupgrade aktualisieren

   portupgrade wurde entwickelt, um die Aktualisierung von Ports zu
   vereinfachen. Sie ko:nnen portupgrade u:ber den Port
   ports-mgmt/portupgrade wie jeden anderen Port mit make install
   clean installieren:

 # cd /usr/ports/ports-mgmt/portupgrade/
 # make install clean

   Durchsuchen Sie regelma:ssig (am besten vor jeder Aktualisierung)
   die Liste der installierten Ports mit pkgdb -F und beheben Sie
   alle gefundenen Probleme.

   Wenn Sie portupgrade -a eingeben, beginnt portupgrade automatisch
   mit der Aktualisierung aller veralteter Ports Ihres Systems.
   Verwenden Sie den Schalter -i, wenn Sie individuell entscheiden
   wollen, ob ein Port aktualisiert werden soll:

 # portupgrade -ai

   Wenn Sie nur eine einzelne Anwendung anstelle aller Anwendungen
   aktualisieren wollen, verwenden Sie das Kommando portupgrade
   pkgname. Geben Sie den Schalter -R an, wenn portupgrade zuvor alle
   Ports aktualisieren soll, die von dem gegebenen Paket abha:ngen.

   Der Schalter -P verwendet zur Installation Pakete anstelle von
   Ports. Mit dieser Option durchsucht portupgrade die in der
   Umgebungsvariablen PKG_PATH aufgefu:hrten Verzeichnisse nach
   Paketen. Sind lokal keine Pakete vorhanden, versucht portupgrade
   die Pakete u:ber das Netz herunterzuladen. Gibt es die Pakete
   weder lokal noch auf entfernten Rechnern, werden die Ports
   verwendet. Um dies zu verhindern, benutzen Sie die Option -PP.

 # portupgrade -PP gnome2

   Wenn Sie nur die Quelldateien des Ports (oder die Pakete mit -P)
   herunterladen mo:chten, ohne die Anwendung zu bauen oder zu
   installieren, geben Sie die Option -F an. Weitere Mo:glichkeiten
   lesen Sie bitte in der Hilfeseite portupgrade(1) nach.

     --------------------------------------------------------------

    5.5.4.3. Ports mit Portmanager aktualisieren

   Portmanager ist ein weiteres Werkzeug, das die Aktualisierung
   installierter Ports erleichtert. Es kann u:ber den Port
   ports-mgmt/portmanager installiert werden:

 # cd /usr/ports/ports-mgmt/portmanager
 # make install clean

   Alle installierten Ports ko:nnen danach durch folgende Eingabe
   aktualisiert werden:

 # portmanager -u

   Wenn Sie zusa:tzlich die Optionen -ui an Portmanager u:bergeben,
   werden Sie bei jedem Schritt um eine Besta:tigung gefragt.
   Portmanager ist ausserdem in der Lage, neue Ports auf Ihrem System
   zu installieren. Im Gegensatz zum bekannten make install clean
   aktualisiert es aber vor dem Bau und der Installation eines Ports
   alle abha:ngigen Ports.

 # portmanager x11/gnome2

   Treten bei den Abha:ngigkeiten des zu installierenden Ports
   Probleme auf, ist Portmanager in der Lage, alle Abha:ngigkeiten in
   der korrekten Reihenfolge neu zu bauen. Nachdem dieser Schritt
   abgeschlossen ist, wird der problematische Port ebenfalls neu
   gebaut.

 # portmanager graphics/gimp -f

   Weitere Informationen finden Sie in der Manualpage portmanager(1).

     --------------------------------------------------------------

    5.5.4.4. Ports mit Portmaster aktualisieren

   Bei Portmaster handelt es sich um ein weiteres Werkzeug zum
   Aktualisieren von Ports. Portmaster nutzt nur Werkzeuge, die
   bereits im Basissystem vorhanden sind (ist also nicht von weiteren
   Ports abha:ngig). Es verwendet Informationen in /var/db/pkg/, um
   festzustellen, welche Ports aktualisiert werden sollen. Sie
   ko:nnen dieses Program u:ber den Port ports-mgmt/portmaster
   installieren:

 # cd /usr/ports/ports-mgmt/portmaster
 # make install clean

   Portmaster teilt Ports in vier Kategorien ein:

     * Root ports (no dependencies, not depended on)

     * Trunk ports (no dependencies, are depended on)

     * Branch ports (have dependencies, are depended on)

     * Leaf ports (have dependencies, not depended on)

   Um eine Liste aller installierter Ports anzuzeigen (und nach
   neueren Versionen zu suchen), verwenden Sie die Option -L:

 # portmaster -L
 ===>>> Root ports (No dependencies, not depended on)
 ===>>> ispell-3.2.06_18
 ===>>> screen-4.0.3
         ===>>> New version available: screen-4.0.3_1
 ===>>> tcpflow-0.21_1
 ===>>> 7 root ports
 ...
 ===>>> Branch ports (Have dependencies, are depended on)
 ===>>> apache-2.2.3
         ===>>> New version available: apache-2.2.8
 ...
 ===>>> Leaf ports (Have dependencies, not depended on)
 ===>>> automake-1.9.6_2
 ===>>> bash-3.1.17
         ===>>> New version available: bash-3.2.33
 ...
 ===>>> 32 leaf ports

 ===>>> 137 total installed ports
         ===>>> 83 have new versions available
        

   Um alle derzeit installierten Ports zu aktualisieren, verwenden
   Sie einfach den folgenden Befehl:

 # portmaster -a

     Anmerkung: In der Voreinstellung erzeugt Portmaster eine
     Sicherheitskopie, bevor ein installierter Port gelo:scht wird.
     Ist die Installation der neuen Version erfolgreich, wird dieses
     Backup wieder gelo:scht. Wollen Sie das Backup lieber manuell
     lo:schen, verwenden Sie die Option -b beim Aufruf von
     Portmaster. Durch die Verwendung der Option -i wird Portmaster
     im interaktiven Modus gestartet und fragt bei jedem zu
     aktualisierenden Port nach, wie Sie vorgehen wollen.

   Treten wa:hrend der Aktualisierung Fehler auf, ko:nnen Sie die
   Option -f verwenden, um alle Ports zu aktualisieren
   beziehungsweise neu zu bauen:

 # portmaster -af

   Portmaster ist auch in der Lage, neue Ports zu installieren, wobei
   zuvor alle abha:ngigen Ports aktualisiert werden:

 # portmaster shells/bash

   Weiterfu:hrende Informationen finden Sie in der Manualpage
   portmaster(8).

     --------------------------------------------------------------

  5.5.5. Platzbedarf von Ports

   Die Ports-Sammlung kann sehr viel Plattenplatz verschlingen.
   Fu:hren Sie nach dem Bau und der Installation eines Ports make
   clean aus, um die Arbeitsverzeichnisse zu lo:schen. Dieser Befehl
   entfernt das Verzeichnis work des gebauten Ports. Wollen Sie die
   gesamte Ports-Sammlung aufra:umen, verwenden Sie folgenden Befehl:

 # portsclean -C

   Im Laufe der Zeit werden sich zahlreiche Distfiles im Verzeichnis
   distfiles ansammeln. Sie ko:nnen diese entweder ha:ndisch
   lo:schen, oder Sie verwenden den folgenden Befehl, um alle
   Distfiles zu lo:schen, die nicht la:nger beno:tigt werden:

 # portsclean -D

   Falls Sie nur alle Distfiles lo:schen wollen, die von keinem
   derzeit installierten Port referenziert werden:

 # portsclean -DD

     Anmerkung: Das Werkzeug portsclean wird automatisch bei der
     Installation von portupgrade mit installiert.

   Denken Sie daran, installierte Ports wieder zu entfernen, wenn Sie
   diese nicht mehr beno:tigen. Um diese Arbeit zu erleichtern,
   ko:nnen Sie den Port ports-mgmt/pkg_cutleaves installieren.

     --------------------------------------------------------------

5.6. Nach der Installation

   Nach der Installation einer neuen Anwendung wollen Sie
   wahrscheinlich die mitgelieferte Dokumentation lesen und die
   Konfigurationsdateien der Anwendung anpassen. Wenn die Anwendung
   ein Daemon ist, sollten Sie sicherstellen, dass die Anwendung beim
   Booten startet.

   Die einzelnen Schritte sind natu:rlich von Anwendung zu Anwendung
   verschieden. Wenn Sie sich allerdings nach der Installation einer
   Anwendung die Frage "Was nun?" stellen, helfen die folgenden
   Hinweise vielleicht weiter.

     * Finden Sie mit pkg_info(1) heraus, welche Dateien die
       Anwendung wo installiert hat. Wenn Sie beispielsweise gerade
       die Version 1.0.0 von FooPackage installiert haben, zeigt
       Ihnen das folgende Kommando alle installierten Dateien des
       Pakets:

 # pkg_info -L foopackage-1.0.0 | less

       Achten Sie besonders auf die Manualpages, die Sie in man/
       Verzeichnissen finden und auf Konfigurationsdateien, die in
       etc/ abgelegt werden. Manche Pakete enthalten in doc/
       zusa:tzliche Dokumentation.

       Wenn Sie sich nicht sicher sind, welche Version einer
       Anwendung Sie gerade installiert haben, ko:nnen Sie mit dem
       folgenden Kommando nach der Anwendung suchen:

 # pkg_info | grep -i foopackage

       Das Kommando zeigt alle installierten Pakete, deren Paketname
       foopackage entha:lt. Ersetzen Sie foopackage durch den Namen
       der Anwendung, die Sie suchen.

     * Nachdem Sie die Manualpages der Anwendung gefunden haben,
       lesen Sie diese bitte mit man(1). Schauen Sie sich auch die
       Beispiele fu:r Konfigurationsdateien und die zusa:tzliche
       Dokumentation, wenn es welche gibt, an.

     * Wenn es fu:r die Anwendung eine Webseite gibt, suchen Sie dort
       nach zusa:tzlicher Dokumentation wie FAQs (ha:ufig gestellte
       Fragen). Wenn Sie die Adresse der Webseite nicht kennen,
       versuchen Sie das folgende Kommando:

 # pkg_info foopackage-1.0.0

       Die Ausgabe entha:lt oft eine Zeile, die mit WWW: beginnt und
       die URL der Webseite entha:lt.

     * Ports, die wa:hrend des Systemstarts gestartet werden sollen,
       installieren meist ein Beispielskript im Verzeichnis
       /usr/local/etc/rc.d. U:berpru:fen Sie dieses Skript. Wenn
       no:tig, passen Sie das Skript an und benennen Sie es um.
       Weitere Informationen finden Sie in Abschnitt 12.5.

     --------------------------------------------------------------

5.7. Kaputte Ports

   Stolpern Sie einmal u:ber einen Port, der bei Ihnen nicht
   funktioniert, ko:nnten Sie zum Beispiel Folgendes tun:

    1. Stellen Sie fest, ob die Datenbank mit den Problemberichten
       bereits einen Lo:sungsvorschlag entha:lt. Ist dies der Fall,
       ko:nnen Sie die vorgeschlagene Lo:sung testen.

    2. Bitten Sie den Betreuer des Ports um Hilfe. Geben Sie dazu
       make maintainer ein oder lesen Sie das Makefile im Verzeichnis
       des Ports, um an die E-Mail-Adresse zu kommen. Vergessen Sie
       nicht den Namen und die Version des Ports (schicken Sie die
       Zeile mit $FreeBSD: aus dem Makefile) und die Ausgabe bis zur
       Fehlermeldung mitzuschicken.

         Anmerkung: Einige Ports werden nicht von einer Einzelperson,
         sondern von einer Mailingliste betreut. Viele (aber nicht
         alle) dieser Adressen haben die Form
         <freebsd-NameDerListe@FreeBSD.org>. Denken Sie daran, wenn
         Sie Ihre Fragen formulieren.

         Dies gilt insbesondere fu:r Ports, die als als Betreuer den
         Eintrag <ports@FreeBSD.org> aufweisen. Derartige Ports haben
         u:berhaupt keinen Betreuer. Korrekturen und Unterstu:tzung
         kommen daher nur von Personen, die diese Mailingliste
         abonniert haben. Gerade in diesem Bereich werden jederzeit
         zusa:tzliche freiwillige Helfer beno:tigt!

       Erhalten Sie auf Ihre Anfrage keine Antwort, ko:nnen Sie u:ber
       send-pr(1) einen Problembericht erstellen. Bevor Sie einen
       solchen Bericht erstellen, sollten Sie den Artikel Writing
       FreeBSD Problem Reports lesen.

    3. Reparieren Sie ihn! Das FreeBSD Porter's Handbook entha:lt
       eine detaillierte Beschreibung des Portsystems. Damit sind Sie
       in der Lage, einen gelegentlich kaputten Port zu reparieren
       oder einen eigenen Port zu erstellen.

    4. Holen Sie sich das Paket von einem FTP-Server in Ihrer Na:he.
       Die "Basis"-Sammlung aller Pakete liegt auf ftp.de.FreeBSD.org
       im Verzeichnis packages. Aber versuchen Sie zuerst einen
       Spiegel in Ihrer Na:he! Benutzen Sie das Programm pkg_add(1),
       um Pakete auf Ihrem Rechner zu installieren. Dies hat zudem
       den Vorteil, dass es schneller geht.

     --------------------------------------------------------------

                     Kapitel 6. Das X-Window-System

   Erweitert um X.Orgs X11-Server von Ken Tom und Marc Fonvieille.
   U:bersetzt von Martin Heinen.

6.1. U:bersicht

   Mit X11 steht unter FreeBSD eine leistungsfa:hige frei verfu:gbare
   grafische Benutzeroberfla:che zur Verfu:gung, die in Xorg (sowie
   in weiteren, hier nicht diskutierten Varianten) implementiert
   wurde. Xorg von der X.Org Foundation ist der voreingestellte
   Standard-X11-Server, der unter einer Lizenz a:hnlich der von
   FreeBSD steht. Zusa:tzlich sind einige kommerzielle X-Server fu:r
   FreeBSD verfu:gbar.

   Auskunft u:ber von X11 unterstu:tzte Video-Hardware gibt die
   Webseite Xorg.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie

     * die Komponenten des X-Window-Systems und ihr Zusammenspiel
       kennen.

     * Wissen, wie X11 installiert und konfiguriert wird.

     * Wissen, wie Sie verschiedene Window-Manager installieren und
       benutzen.

     * Wissen, wie TrueType(R)-Schriftarten mit X11 benutzt werden.

     * Wissen, wie Sie die grafische Anmeldung (XDM) einrichten.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * wissen, wie Sie Software Dritter installieren (Kapitel 5).

     --------------------------------------------------------------

6.2. X-Grundlagen

   Anwendern anderer grafischer Benutzeroberfla:chen, wie
   Microsoft Windows oder Mac OS, kommt X beim ersten Mal oft
   befremdlich vor.

   Man braucht kein weitreichendes Versta:ndnis der X-Komponenten und
   Ihres Zusammenspiels, um X anzuwenden. Um die Sta:rken von X
   auszunutzen, sollten Sie allerdings die Grundlagen verstehen.

     --------------------------------------------------------------

  6.2.1. Warum heisst es X?

   X ist nicht die erste grafische Benutzeroberfla:che, die fu:r UNIX
   geschrieben wurde. Die Entwickler von X arbeiteten vorher an einem
   anderen System, das W (von engl. window: Fenster) hiess. X ist
   schlicht der na:chste Buchstabe im Alphabet.

   X wird "X", "X-Window-System" oder "X11" genannt. Sagen Sie bitte
   nicht "X-Windows": das kommt bei einigen Leuten schlecht an (die
   Hilfeseite X(7) fu:hrt dies na:her aus).

     --------------------------------------------------------------

  6.2.2. Das Client/Server-Modell von X

   X wurde von Anfang an netzwerktransparent entworfen und verwendet
   ein Client-Server-Modell. In diesem Modell la:uft der Server auf
   dem Rechner, an dem die Tastatur, der Bildschirm und die Maus
   angeschlossen ist. Der Server ist fu:r Dinge wie die Verwaltung
   des Bildschirms und die Verarbeitung von Tastatur- und
   Maus-Eingaben sowie anderer Ein- und Ausgabegera:te
   (beispielsweise ko:nnte ein "Tablet" zur Eingabe oder ein
   Videoprojektor zur Ausgabe verwendet werden) verantwortlich. Jede
   X-Anwendung, beispielsweise ein XTerm oder Netscape ist ein
   Client. Der Client sendet dem Server Nachrichten wie "Zeichne an
   diesen Koordinaten ein Fenster" und der Server sendet dem Client
   Nachrichten der Art "Der Benutzer hat gerade den Ok-Knopf
   gedru:ckt".

   In kleinen Umgebungen laufen der X-Server und die X-Clients auf
   demselben Rechner. Es ist aber durchaus mo:glich, den X-Server auf
   einem weniger leistungsfa:higen Arbeitsplatzrechner laufen zu
   lassen und die X-Anwendungen (die Clients) auf dem
   leistungsfa:higen und teuren Server der Arbeitsgruppe zu
   betreiben. In diesem Fall kommunizieren der X-Server und die
   X-Clients u:ber das Netz.

   Dieses Modell verwirrt viele Leute, die erwarten, dass der
   X-Server der dicke Rechner im Maschinenraum und der X-Client ihr
   Arbeitsplatzrechner ist.

   Merken Sie sich einfach, dass der X-Server der Rechner mit dem
   Bildschirm und der Maus ist und die X-Clients Programme sind, die
   in den Fenstern laufen.

   Das X-Protokoll ist unabha:ngig vom verwendeten Betriebssystem und
   Rechnertyp. Ein X-Server kann durchaus auch unter
   Microsoft Windows oder Apples Mac OS betrieben werden, wie viele
   kostenlose und kommerzielle Anwendungen zeigen.

     --------------------------------------------------------------

  6.2.3. Der Window-Manager

   Die X-Philosophie "Werkzeuge statt Richtlinien" ist wie die
   UNIX-Philosophie. Es wird nicht vorgeschrieben, wie eine Aufgabe
   zu lo:sen ist, stattdessen erha:lt der Benutzer Werkzeuge, u:ber
   die er frei verfu:gen kann.

   Dies geht so weit, dass X nicht bestimmt, wie Fenster auf dem
   Bildschirm auszusehen haben, wie sie mit der Maus zu verschieben
   sind, welche Tastenkombination benutzt werden muss, um zwischen
   den Fenstern zu wechseln (z.B. Alt+Tab unter Microsoft Windows),
   oder ob die Fensterrahmen Schaltfla:chen zum Schliessen haben.

   X gibt die Verantwortung fu:r all diese Sachen an eine Anwendung
   ab, die Window-Manager genannt wird. Unter X gibt es zahlreiche
   Window-Manager: AfterStep, Blackbox, ctwm, Enlightenment, fvwm,
   Sawfish, twm, Window Maker um nur einige zu nennen. Jeder dieser
   Window-Manager sieht anders aus: Manche stellen virtuelle
   Bildschirme zur Verfu:gung, in anderen lassen sich die
   Tastenkombinationen zur Verwaltung des Bildschirms anpassen,
   einige besitzen eine Startleiste oder etwas A:hnliches und in
   manchen la:sst sich das Aussehen und Verhalten u:ber die Anwendung
   von Themes beliebig einstellen. Die eben genannten Window-Manager
   und viele weitere finden Sie in der Kategorie x11-wm der
   Ports-Sammlung.

   Die grafischen Benutzeroberfla:chen KDE und GNOME besitzen eigene
   Window-Manager, die in den grafischen Arbeitsplatz integriert
   sind.

   Die Window-Manager werden unterschiedlich konfiguriert. Einige
   erwarten eine manuell erstellte Konfigurationsdatei, andere bieten
   grafische Werkzeuge fu:r die meisten Konfigurationsarbeiten an.
   Die Konfigurationsdatei von Sawfish ist sogar in einem
   Lisp-Dialekt geschrieben.

     Fokus: Der Window-Manager ist fu:r die Methode, mit der ein
     Fenster den Fokus bekommt, verantwortlich. Jedes System, das
     Fenster verwendet, muss entscheiden, wie ein Fenster aktiviert
     wird, damit es Eingaben empfangen kann. Das aktive Fenster
     sollte zudem sichtbar gekennzeichnet werden.

     Eine gela:ufige Methode, den Fokus zu wechseln, wird
     "click-to-focus" genannt. Die Methode wird in Microsoft Windows
     benutzt: Ein Fenster wird aktiv, wenn es mit der Maus angeklickt
     wird.

     X legt nicht fest, wie der Fokus einzustellen ist, stattdessen
     bestimmt der Window-Manager welches Fenster den Fokus zu einem
     gegebenen Zeitpunkt erha:lt. Alle Window-Manager stellen die
     Methode "click-to-focus" bereit, die meisten stellen auch noch
     andere Methoden bereit.

     Verbreitete Methoden, den Fokus einzustellen, sind:

     focus-follows-mouse

             Den Fokus hat das Fenster, unter dem sich der Mauszeiger
             befindet. Das muss nicht unbedingt das Fenster, sein,
             das sich vorne befindet. Wird der Mauszeiger in ein
             anderes Fenster bewegt, so erha:lt dieses Fenster den
             Fokus, ohne das es angeklickt werden muss.

     sloppy-focus

             Diese Methode erweitert die Methode
             "focus-follows-mouse". Wenn die Maus mit
             "focus-follows-mouse" aus dem Fenster auf die
             Oberfla:che bewegt wird, verliert das aktive Fenster den
             Fokus. Da dann kein Fenster mehr den Fokus hat, gehen
             alle Eingaben verloren. Die Methode "sloppy-focus"
             wechselt den Fokus nur, wenn sich der Mauszeiger in ein
             neues Fenster bewegt und nicht, wenn er das aktive
             Fenster verla:sst.

     click-to-focus

             Das aktive Fenster wird durch einen Mausklick festgelegt
             (dabei kann das Fenster vor alle anderen Fenster gesetzt
             werden). Alle Eingaben werden dann, unabha:ngig von der
             Position des Mauszeigers, dem aktiven Fenster
             zugeordnet.

     Viele Window-Manager unterstu:tzen noch andere Methoden, so wie
     Abwandlungen der hier vorgestellten Methoden. Schauen Sie sich
     dazu bitte die Hilfeseiten Ihres Window-Managers an.

     --------------------------------------------------------------

  6.2.4. Widgets

   Die X-Philosophie dehnt sich auch auf die Widgets aus, die von den
   Anwendungen benutzt werden.

   Ein Widget bezeichnet Objekte, die manipuliert werden ko:nnen, wie
   buttons (Schaltfla:chen), check buttons (Mehrfachauswahlknopf),
   radio buttons (Einfachauswahlknopf), Icons und Auswahllisten.
   Unter Microsoft Windows werden Widgets Controls genannt.

   Microsoft Windows und Apples Mac OS geben strenge Richtlinien fu:r
   Widgets vor: Von den Entwicklern wird erwartet, dass Sie
   Anwendungen mit einheitlichem Aussehen und einheitlicher Bedienung
   (look and feel) entwickeln. X gibt weder einen Stil noch Widgets
   vor, die benutzt werden mu:ssen.

   Erwarten Sie daher nicht, dass alle X-Anwendungen gleich aussehen
   oder sich gleich bedienen lassen. Es gibt mehrere verbreitete
   Widget-Sammlungen, beispielsweise die Athena-Widgets vom MIT,
   Motif(R) (abgeschra:gte Ecken und drei Grauto:ne, danach wurden
   die Widgets von Microsoft Windows entworfen) oder OpenLook.

   Die meisten neuen X-Anwendungen benutzen heute modern aussehende
   Widgets, wie Qt, das von KDE benutzt wird oder GTK+, das von GNOME
   benutzt wird. Damit wird eine gewisse Einheitlichkeit in Bedienung
   und Aussehen erreicht, die sicher neuen Benutzern die Arbeit
   erleichtert.

     --------------------------------------------------------------

6.3. X11 installieren

   Xorg ist der Standard-X-Server unter FreeBSD. Xorg ist der von der
   X.Org Foundation herausgegebene X-Server des Open-Source X Window
   Systems. Xorg beruht auf XFree86 4.4RC2 und X11R6.6. Derzeit ist
   die Version 7.5.2 von Xorg in der Ports-Sammlung vorhanden.

   Die nachstehenden Kommandos bauen und installieren Xorg aus der
   Ports-Sammlung:

 # cd /usr/ports/x11/xorg
 # make install clean

     Anmerkung: Der komplette Bau von Xorg beno:tigt mindestens 4 GB
     freien Plattenplatz.

   Mit pkg_add(1) ko:nnen Sie X11 direkt von fertigen Paketen
   installieren. Wenn pkg_add(1) die Pakete herunterla:dt, lassen Sie
   die Versionsnummer aus. pkg_add(1) holt automatisch die aktuelle
   Version eines Pakets.

   Das Xorg-Paket holen und installieren Sie wie folgt:

 # pkg_add -r xorg

     Anmerkung: Die obigen Beispiele installieren die vollsta:ndige
     X11-Distribution, die unter anderem Server, Clients und Fonts
     entha:lt. Fu:r die einzelnen Teile der Distribution gibt es
     ebenfalls separate Pakete.

     Alternativ ko:nnen Sie x11/xorg-minimal verwenden, um eine
     minimale X11-Distribution zu installieren.

   Der Rest dieses Kapitels erkla:rt, wie Sie X11 konfigurieren und
   sich eine Arbeitsumgebung einrichten.

     --------------------------------------------------------------

6.4. X11 konfigurieren

   Beigetragen von Christopher Shumway.

     --------------------------------------------------------------

  6.4.1. Vorarbeiten

   Bevor Sie X11 konfigurieren, beno:tigen Sie folgende
   Informationen:

     * die Spezifikationen des Monitors

     * den Chipset des Grafikadapters

     * die Speichergro:sse des Grafikadapters

   Aus den Spezifikationen des Monitors ermittelt X11 die Auflo:sung
   und die Wiederholrate fu:r den Betrieb des X-Servers. Die
   Spezifikationen entnehmen Sie der Dokumentation des Monitors oder
   der Webseite des Herstellers. Sie beno:tigen die horizontale und
   die vertikale Synchronisationsfrequenz.

   Der Chipsatz der Grafikkarte bestimmt den Treiber, den X11
   verwendet. Die meisten Chipsa:tze werden automatisch erkannt, Sie
   brauchen die Information jedoch, wenn die Erkennung fehlschla:gt.

   Die Speichergro:sse der Grafikkarte bestimmt die maximal mo:gliche
   Auflo:sung und Farbtiefe.

     --------------------------------------------------------------

  6.4.2. X11 konfigurieren

   Xorg verwendet HAL, um Tastaturen und Ma:use automatisch zu
   erkennen. Die Ports sysutils/hal und devel/dbus werden als
   Abha:ngigkeiten von x11/xorg installiert, mu:ssen aber durch die
   folgenden Eintra:ge in /etc/rc.conf aktiviert werden:

 hald_enable="YES"
 dbus_enable="YES"

   Diese Dienste sollten (entweder manuell oder durch einen Neustart)
   gestartet werden, bevor mit der weiteren Konfiguration oder
   Verwendung von Xorg begonnen wird.

   Xorg kann oft schon ohne weitere Konfigurationsschritte laufen,
   indem am Prompt folgendes eingegeben wird:

 % startx

   Die automatische Konfiguration kann mit bestimmter Hardware
   fehlschlagen oder gewisse Dinge nicht so einrichten, wie
   gewu:nscht. In diesen Fa:llen ist eine manuelle Konfiguration
   notwendig.

     Anmerkung: Grafische Oberfla:chen wie GNOME, KDE oder Xfce
     besitzen eigene Werkzeuge, die es dem Benutzer erlauben, auf
     einfache Art und Weise die Bildschirmparameter wie die
     Auflo:sung zu a:ndern. Falls die Standardkonfiguration fu:r Sie
     nicht akzeptabel ist und die Installation einer grafischen
     Oberfla:che geplant ist, fahren Sie damit fort und benutzen Sie
     dann das entsprechende Werkzeug fu:r die
     Bildschirmeinstellungen.

   Die X11 Konfiguration spielt sich in mehreren Schritten ab. Dazu
   erstellen Sie als erstes eine Vorgabe fu:r die
   Konfigurationsdatei. Setzen Sie dazu als root den folgenden Befehl
   ab:

 # Xorg -configure

   Die Vorgabe-Konfiguration wird dann unter dem Namen xorg.conf.new
   im Verzeichnis /root gespeichert (das verwendete Verzeichnis wird
   durch die Umgebungsvariable $HOME bestimmt und ha:ngt davon ab,
   wie Sie zu root gewechselt sind). X11 hat in diesem Schritt
   versucht, die Grafik-Hardware des Systems zu erkennen und eine
   Konfigurationsdatei ausgeschrieben, die zur Hardware passende
   Treiber la:dt.

   Im na:chsten Schritt wird gepru:ft, ob Xorg die Grafik-Hardware
   des Systems verwenden kann. Setzen Sie dazu den folgenden Befehl
   ab:

 # Xorg -config xorg.conf.new -retro

   Wenn jetzt ein graues Raster und der X-Mauszeiger erscheinen, war
   die Konfiguration erfolgreich. Beenden Sie den Test, indem Sie auf
   die virtuelle Konsole wechseln, die Sie verwendet haben, um den
   Test zu starten, durch gleichzeitiges dru:cken von Ctrl+Alt+Fn (F1
   fu:r die erste virtuelle Konsole) und dru:cken anschliessend
   Ctrl+C.

     Anmerkung: Die Tastenkombination Ctrl+Alt+Backspace kann
     verwendet werden, um Xorg zu beenden. Um diese zu aktivieren,
     fu:gen geben Sie entweder den folgenden Befehl von einem
     X-Terminalemulator ein:

 % setxkbmap -option terminate:ctrl_alt_bksp

     oder erstellen Sie eine Tastaturkonfigurationsdatei fu:r hald,
     x11-input.fdi genannt, und legen Sie diese im Verzeichnis
     /usr/local/etc/hal/fdi/policy ab. Diese Datei sollte die
     folgenden Zeilen enthalten:

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <deviceinfo version="0.2">
    <device>
      <match key="info.capabilities" contains="input.keyboard">
            <merge key="input.x11_XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
      </match>
    </device>
 </deviceinfo>

     Sie mu:ssen anschliessend ihren Computer neu starten, um hald zu
     zwingen, diese Datei einzulesen.

     Die folgende Zeile muss ebenfalls zu xorg.conf.new hinzugefu:gt
     werden, entweder in den Abschnitt ServerLayout oder ServerFlags:

 Option  "DontZap"       "off"

   Wenn die Maus nicht funktioniert, pru:fen Sie, ob die Maus
   konfiguriert wurde. Die Mauskonfiguration wird in Abschnitt
   2.10.10 im FreeBSD-Installationskapitel beschrieben. In neueren
   Xorg-Versionen werden die InputDevice-Abschnitte in xorg.conf
   ignoriert, um stattdessen die automatisch erkannten Gera:te zu
   verwenden. Um das alte Verhalten wiederherzustellen, fu:gen Sie
   die folgende Zeile zum ServerLayout- oder dem
   ServerFlags-Abschnitt dieser Datei hinzu:

 Option "AutoAddDevices" "false"

   Eingabegera:te ko:nnen dann wie in den vorherigen Versionen
   konfiguriert werden, zusammen mit anderen beno:tigen Optionen
   (z.B. wechseln des Tastaturlayouts).

     Anmerkung: Wie zuvor erwa:hnt, wird standardma:ssig der
     hald-Dienst automatisch Ihre Tastatur erkennen. Es kann
     passieren, dass ihr Tastaturlayout oder das Modell nicht korrekt
     erkannt wird. Grafische Oberfla:chen wie GNOME, KDE oder Xfce
     stellen Werkzeuge fu:r die Konfiguration der Tastatur bereit. Es
     ist allerdings auch mo:glich, die Tastatureigenschaften direkt
     zu setzen, entweder mit Hilfe von setxkbmap(1) oder mit einer
     Konfigurationsregel von hald.

     Wenn Sie zum Beispiel eine PC 102-Tasten Tastatur mit
     franzo:sischem Layout verwenden mo:chten, mo:ssen Sie eine
     Tastaturkonfigurationsdatei fu:r hald, genannt x11-input.fdi, im
     Verzeichnis /usr/local/etc/hal/fdi/policy ablegen. Diese Datei
     sollte die folgenden Zeilen enthalten:

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <deviceinfo version="0.2">
    <device>
      <match key="info.capabilities" contains="input.keyboard">
            <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
            <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
      </match>
    </device>
 </deviceinfo>

     Wenn diese Datei bereits existiert, kopieren Sie nur die Zeilen
     in diese Datei, welche die Tastaturkonfiguration betreffen.

     Sie mo:ssen Ihren Computer neu starten, um hald zu zwingen,
     diese Datei einzulesen.

     Es ist mo:glich, die gleiche Konfiguration von einem X-Terminal
     oder einem Skript u:ber den folgenden Befehl heraus zu ta:tigen:

 % setxkbmap -model pc102 -layout fr

     Die Datei /usr/local/share/X11/xkb/rules/base.lst listet die
     verschiedenen Tastatur- und Layoutoptionen auf, die Ihnen zur
     Verfu:gung stehen.

   Als Na:chstes passen Sie xorg.conf.new an. O:ffnen Sie die Datei
   in einem Editor, wie emacs(1) oder ee(1) und fu:gen Sie die
   Synchronisationsfrequenzen des Monitors ein. Die Frequenzen werden
   im Abschnitt "Monitor" eingetragen:

 Section "Monitor"
         Identifier   "Monitor0"
         VendorName   "Monitor Vendor"
         ModelName    "Monitor Model"
         HorizSync    30-107
         VertRefresh  48-120
 EndSection

   Unter Umsta:nden fehlen die Schlu:sselwo:rter HorizSync und
   VertRefresh, die Sie dann nachtragen mu:ssen. Geben Sie, wie im
   Beispiel gezeigt, die horizontale Synchronisationsfrequenz hinter
   HorizSync und die vertikale Synchronisationsfrequenz hinter
   VertRefresh an.

   X unterstu:tzt die Energiesparfunktionen (DPMS, Energy Star) Ihres
   Monitors. Mit xset(1) ko:nnen Sie Zeitschranken fu:r die DPMS-Modi
   "standby", "suspend", "off" vorgeben, oder diese zwingend
   aktivieren. Die DPMS-Funktionen ko:nnen Sie mit der nachstehenden
   Zeile im "Monitor"-Abschnitt aktivieren:

 Option       "DPMS"

   Die gewu:nschte Auflo:sung und Farbtiefe stellen Sie im Abschnitt
   "Screen" ein:

 Section "Screen"
         Identifier "Screen0"
         Device     "Card0"
         Monitor    "Monitor0"
         DefaultDepth 24
         SubSection "Display"
                 Viewport  0 0
                 Depth     24
                 Modes     "1024x768"
         EndSubSection
 EndSection

   Mit DefaultDepth wird die Farbtiefe des X-Servers vorgegeben. Mit
   der Option -depth von Xorg(1) la:sst sich die vorgegebene
   Farbtiefe u:berschreiben. Modes gibt die Auflo:sung fu:r die
   angegebene Farbtiefe an. Die Farbtiefe im Beispiel betra:gt
   24 Bits pro Pixel, die zugeho:rige Auflo:sung ist 1024x768 Pixel.
   Beachten Sie, dass in der Voreinstellung nur Standard-VESA-Modi
   der Grafikkarte angegeben werden ko:nnen.

   Sichern Sie die Konfigurationsdatei und testen Sie die
   Konfiguration wie oben beschrieben.

     Anmerkung: Bei der Fehlersuche sind Ihnen die Protokolle des
     X11-Servers behilflich. In den Protokollen wird die gefundene
     Graphik-Hardware protokolliert. Die Protokolle von Xorg heissen
     /var/log/Xorg.0.log. Die Dateinamen enthalten eine laufende
     Nummer, der Name variiert daher von Xorg.0.log zu Xorg.8.log.

   Wenn alles funktioniert hat, installieren Sie die Datei an einen
   Ort, an dem Xorg(1) sie findet. Normalerweise wird die
   Konfigurationsdatei unter /etc/X11/xorg.conf oder
   /usr/local/etc/X11/xorg.conf gespeichert:

 # cp xorg.conf.new /etc/X11/xorg.conf

   Damit ist die X11-Konfiguration beendet und Xorg kann nun mithilfe
   von startx(1) gestartet werden. Alternativ ko:nnen Sie X11 auch
   mit xdm(1) starten.

     --------------------------------------------------------------

  6.4.3. Spezielle Konfigurationen

    6.4.3.1. Konfiguration des Intel(R) i810 Graphics Chipsets

   Der Intel i810-Chipset beno:tigt den Treiber agpgart, die
   AGP-Schnittstelle von X11. Weitere Informationen finden sich in
   agp(4).

   Ab jetzt kann die Hardware wie jede andere Grafikkarte auch
   konfiguriert werden. Der Treiber agp(4) kann nicht nachtra:glich
   mit kldload(8) in einen laufenden Kernel geladen werden. Er muss
   entweder fest im Kernel eingebunden sein oder beim Systemstart
   u:ber /boot/loader.conf geladen werden.

     --------------------------------------------------------------

    6.4.3.2. Einen Widescreen-Monitor einsetzen

   Dieser Abschnitt geht u:ber die normalen Konfigurationsarbeiten
   hinaus und setzt einiges an Vorwissen voraus. Selbst wenn die
   Standardwerkzeuge zur X-Konfiguration bei diesen Gera:ten nicht
   zum Erfolg fu:hren, sollten sich in den Logdateien genug
   Informationen finden, mit denen Sie letztlich doch einen
   funktionierenden X-Server konfigurieren ko:nnen. Alles, was Sie
   dazu noch beno:tigen, ist ein Texteditor.

   Aktuelle Widescreen-Formate (wie WSXGA, WSXGA+, WUXGA, WXGA,
   WXGA+, und andere mehr) unterstu:tzen Seitenverha:ltnisse wie
   16:10 oder 10:9, die unter X Probleme verursachen ko:nnen. Bei
   einem Seitenverha:ltnis von 16:10 sind beispielsweise folgende
   Auflo:sungen mo:glich:

     * 2560x1600

     * 1920x1200

     * 1680x1050

     * 1440x900

     * 1280x800

   Diese Konfiguration ko:nnte so einfach sein wie das zusa:tzliche
   Anlegen eines Eintrags einer dieser Auflo:sungen als ein
   mo:glicher Mode in Section "Screen":

 Section "Screen"
 Identifier "Screen0"
 Device     "Card0"
 Monitor    "Monitor0"
 DefaultDepth 24
 SubSection "Display"
         Viewport  0 0
         Depth     24
         Modes     "1680x1050"
 EndSubSection
 EndSection

   Xorg ist normalerweise intelligent genug, um die Informationen zu
   den erlaubten Auflo:sungen u:ber I2C/DDC zu beziehen, und weiss
   daher, welche Auflo:sungen und Frequenzen Ihr Widescreen-Monitor
   unterstu:tzt.

   Wenn diese ModeLines in den Treiberdateien nicht vorhanden sind,
   kann es sein, dass Sie Xorg beim Finden der korrekten Werte
   unterstu:tzen mu:ssen. Dazu extrahieren Sie die beno:tigten
   Informationen aus der Datei /var/log/Xorg.0.log und erzeugen
   daraus eine funktionierende ModeLine. Dazu suchen Sie in dieser
   Datei nach Zeilen a:hnlich den folgenden:

 (II) MGA(0): Supported additional Video Mode:
 (II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
 (II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
 (II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
 (II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

   Diese Informationen werden auch als EDID-Informationen bezeichnet.
   Um daraus eine funktionierende ModeLine zu erzeugen, mu:ssen Sie
   lediglich die Zahlen in die korrekte Reihenfolge bringen:

 ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

   Die korrekte ModeLine in Section "Monitor" wu:rde fu:r dieses
   Beispiel folgendermassen aussehen:

 Section "Monitor"
 Identifier      "Monitor1"
 VendorName      "Bigname"
 ModelName       "BestModel"
 ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
 Option          "DPMS"
 EndSection

   Nachdem diese A:derungen durchgefu:hrt sind, sollte X auch auf
   Ihrem neuen Widescreen-Monitor starten.

     --------------------------------------------------------------

6.5. Schriftarten in X11 benutzen

   Beigetragen von Murray Stokely.

  6.5.1. Type 1 Schriftarten

   Die Schriftarten, die mit X11 geliefert werden, eignen sich ganz
   und gar nicht fu:r Desktop-Publishing-Anwendungen. Grosse
   Schriftarten zeigen bei Pra:sentationen deutliche Treppenstufen
   und die kleinen Schriftarten in Netscape sind fast unleserlich. Es
   gibt allerdings mehrere hochwertige Type 1 Schriftarten
   (PostScript(R)), die mit X11 benutzt werden ko:nnen.
   Beispielsweise enthalten die URW-Schriftarten (x11-fonts/urwfonts)
   hochwertige Versionen ga:ngiger Type 1 Schriftarten (zum Beispiel
   Times Roman(R), Helvetica(R), Palatino(R)). Die Sammlung Freefonts
   (x11-fonts/freefonts) entha:lt noch mehr Schriftarten, doch sind
   diese fu:r den Einsatz in Grafik-Programmen wie The Gimp gedacht.
   Es fehlen auch einige Schriftarten, sodass sich die Sammlung nicht
   fu:r den allta:glichen Gebrauch eignet. Weiterhin kann X11 leicht
   so konfiguriert werden, dass es TrueType-Schriftarten verwendet.
   Mehr dazu erfahren Sie in der Hilfeseite X(7) und im Abschnitt
   TrueType Schriftarten.

   Die Type 1 Schriftarten lassen sich aus der Ports-Sammlung wie
   folgt installieren:

 # cd /usr/ports/x11-fonts/urwfonts
 # make install clean

   Analog lassen sich Freefont und andere Sammlungen installieren.
   Die neuen Schriftarten mu:ssen Sie in die Konfigurationsdatei des
   X-Servers im Verzeichnis /etc/X11 eintragen. Die
   Konfigurationsdatei von Xorg heisst xorg.conf. Fu:gen Sie die
   folgende Zeile hinzu:

 FontPath "/usr/local/lib/X11/fonts/URW/"

   Sie ko:nnen aber auch in der X-Sitzung das folgende Kommando
   absetzen:

 % xset fp+ /usr/local/lib/X11/fonts/URW
 % xset fp rehash

   Dann kennt der X-Server die neuen Schriftarten nur bis zum Ende
   der Sitzung. Wenn die A:nderung dauerhaft sein soll, mu:ssen Sie
   die Kommandos in ~/.xinitrc eintragen, wenn Sie X mit startx
   starten, oder in ~/.xsession, wenn Sie XDM benutzen. Sie ko:nnen
   die Schriftarten auch in die neue Datei
   /usr/local/etc/fonts/local.conf, die im Abschnitt Anti-aliasing
   beschrieben wird, eintragen.

     --------------------------------------------------------------

  6.5.2. TrueType(R)-Schriftarten

   Xorg kann TrueType-Schriftarten mithilfe von zwei Modulen
   darstellen. Im folgenden Beispiel wird das Freetype-Modul benutzt,
   da es besser mit anderen Werkzeugen, die TrueType-Schriftarten
   darstellen, u:bereinstimmt. Das Freetype-Modul aktivieren Sie im
   Abschnitt "Module" von /etc/X11/xorg.conf durch Einfu:gen der
   Zeile:

 Load  "freetype"

   Erstellen Sie ein Verzeichnis fu:r die TrueType-Schriftarten (z.B.
   /usr/local/lib/X11/fonts/TrueType) und kopieren Sie alle
   Schriftarten dorthin. Die Schriftarten mu:ssen im
   UNIX/MS-DOS/Windows-Format vorliegen, Schriftarten von einem
   Macintosh ko:nnen Sie nicht direkt u:bernehmen. Die Schriftarten
   mu:ssen noch im Katalog fonts.dir erfasst werden. Den Katalog
   erzeugen Sie mit dem Kommando ttmkfdir aus dem Port
   x11-fonts/ttmkfdir:

 # cd /usr/local/lib/X11/fonts/TrueType
 # ttmkfdir -o fonts.dir

   Geben Sie dem System das TrueType-Verzeichnis, wie im Abschnitt
   Type 1 Schriftarten beschrieben, bekannt:

 % xset fp+ /usr/local/lib/X11/fonts/TrueType
 % xset fp rehash

   Oder fu:gen Sie eine FontPath-Zeile in die Datei xorg.conf ein.

   Das war's. Jetzt sollten Netscape, Gimp, StarOffice(TM) und alle
   anderen X-Anwendungen die TrueType-Schriftarten benutzen. Extrem
   kleine Schriftarten (Webseiten, die mit hoher Auflo:sung
   betrachtet werden) und sehr grosse Schriftarten (in StarOffice)
   sollten jetzt viel besser aussehen.

     --------------------------------------------------------------

  6.5.3. Anti-aliasing

   Aktualisiert von Joe Marcus Clarke.

   Alle Schriftarten in X11, die in den Verzeichnissen
   /usr/local/lib/X11/fonts/ und ~/.fonts/ gefunden werden, werden
   automatisch fu:r Anti-aliasing an Anwendungen zur Verfu:gung
   gestellt, die Xft beherrschen. Die meisten aktuellen Anwendungen
   beherrschen Xft, dazu geho:ren auch KDE, GNOME und Firefox.

   In der Datei /usr/local/etc/fonts/local.conf werden die
   Schriftarten, die mit dem Anti-aliasing-Verfahren benutzt werden
   sollen und die Eigenschaften des Verfahrens festgelegt. In diesem
   Abschnitt wird nur die grundlegende Konfiguration von Xft
   beschrieben. Weitere Details entnehmen Sie bitte der Hilfeseite
   fonts-conf(5).

   Die Datei local.conf ist ein XML-Dokument. Achten Sie beim
   Editieren der Datei daher auf die richtige Gross- und
   Kleinschreibung und darauf, dass alle Tags geschlossen sind. Die
   Datei beginnt mit der u:blichen XML-Deklaration gefolgt von einer
   DOCTYPE-Definition und dem <fontconfig>-Tag:

         <?xml version="1.0"?>
         <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
         <fontconfig>
      

   Wie vorher erwa:hnt, stehen schon alle Schriftarten in
   /usr/local/lib/X11/fonts/ und ~/.fonts/ fu:r Anwendungen, die Xft
   unterstu:tzen, zur Verfu:gung. Wenn Sie ein Verzeichnis ausserhalb
   dieser beiden Ba:ume benutzen wollen, fu:gen Sie eine Zeile wie
   die nachstehende zu /usr/local/etc/fonts/local.conf hinzu:

 <dir>/path/to/my/fonts</dir>

   Wenn Sie neue Schriftarten hinzugefu:gt haben, mu:ssen Sie den
   Schriftarten-Cache neu aufbauen:

 # fc-cache -f

   Das Anti-aliasing-Verfahren zeichnet Ra:nder leicht unscharf,
   dadurch werden kleine Schriften besser lesbar und der
   Treppenstufen-Effekt bei wird grossen Schriften vermieden. Auf
   normale Schriftgro:ssen sollte das Verfahren aber nicht angewendet
   werden, da dies die Augen zu sehr anstrengt. Um kleinere
   Schriftgro:ssen als 14 Punkt von dem Verfahren auszunehmen, fu:gen
   Sie in local.conf die nachstehenden Zeilen ein:

         <match target="font">
             <test name="size" compare="less">
                 <double>14</double>
             </test>
             <edit name="antialias" mode="assign">
                 <bool>false</bool>
             </edit>
         </match>
         <match target="font">
             <test name="pixelsize" compare="less" qual="any">
                 <double>14</double>
             </test>
             <edit mode="assign" name="antialias">
                 <bool>false</bool>
             </edit>
         </match>

   Das Anti-aliasing-Verfahren kann die Absta:nde einiger
   Fixschriften falsch darstellen, dies fa:llt besonders unter KDE
   auf. Sie ko:nnen das Problem umgehen, indem Sie die Absta:nde
   dieser Schriften auf den Wert 100 festsetzen. Fu:gen Sie die
   nachstehenden Zeilen hinzu:

        <match target="pattern" name="family">
            <test qual="any" name="family">
                <string>fixed</string>
            </test>
            <edit name="family" mode="assign">
                <string>mono</string>
            </edit>
         </match>
         <match target="pattern" name="family">
             <test qual="any" name="family">
                 <string>console</string>
             </test>
             <edit name="family" mode="assign">
                 <string>mono</string>
             </edit>
         </match>

   Damit werden die Namen der gebra:uchlichen Fixschriften auf "mono"
   abgebildet. Fu:r diese Schriften setzen Sie dann den Abstand fest:

          <match target="pattern" name="family">
              <test qual="any" name="family">
                  <string>mono</string>
              </test>
              <edit name="spacing" mode="assign">
                  <int>100</int>
              </edit>
          </match>     

   Bestimmte Schriftarten, wie Helvetica, ko:nnen Probleme mit dem
   Anti-Aliasing-Verfahren verursachen. In der Regel erscheinen diese
   Schriftarten dann vertikal halbiert. Im schlimmsten Fall stu:rzen
   Anwendungen als Folge davon ab. Sie vermeiden dies, indem Sie
   betroffene Schriftarten in local.conf von dem Verfahren ausnehmen:

          <match target="pattern" name="family">
              <test qual="any" name="family">
                  <string>Helvetica</string>
              </test>
              <edit name="family" mode="assign">
                  <string>sans-serif</string>
              </edit>
          </match>       

   Wenn Sie local.conf editiert haben, stellen Sie bitte sicher, dass
   die Datei mit dem Tag </fontconfig> endet. Ist das nicht der Fall,
   werden die A:nderungen nicht beru:cksichtigt.

   Benutzer ko:nnen eigene Einstellungen in der Datei ~/.fonts.conf
   vornehmen. Achten Sie auch hier auf die richtige XML-Syntax.

   Mit einem LCD ko:nnen Sie sub-pixel sampling anstelle von
   Anti-aliasing einsetzen. Dieses Verfahren behandelt die horizontal
   getrennten Rot-, Gru:n- und Blau-Komponenten eines Pixels
   gesondert und verbessert damit (teilweise sehr wirksam) die
   horizontale Auflo:sung. Die nachstehende Zeile in local.conf
   aktiviert diese Funktion:

          <match target="font">
              <test qual="all" name="rgba">
                  <const>unknown</const>
              </test>
              <edit name="rgba" mode="assign">
                  <const>rgb</const>
              </edit>
          </match>

     Anmerkung: Abha:ngig von der Art Ihres Bildschirms mu:ssen Sie
     anstelle von rgb eines der folgenden verwenden: bgr, vrgb oder
     vbgr. Experimentieren Sie und vergleichen, was besser aussieht.

     --------------------------------------------------------------

6.6. Der X-Display-Manager

   Beigetragen von Seth Kingsley.

  6.6.1. Einfu:hrung

   Der X-Display-Manager (XDM), eine optionale Komponente des
   X-Window-Systems, verwaltet Sitzungen. Er kann mit vielen
   Komponenten, wie minimal ausgestatteten X-Terminals,
   Arbeitsplatz-Rechnern und leistungsfa:higen Netzwerkservern,
   nutzbringend eingesetzt werden. Da das X-Window-System
   netzwerktransparent ist, gibt es zahlreiche Mo:glichkeiten,
   X-Clients und X-Server auf unterschiedlichen Rechnern im Netz
   laufen zu lassen. XDM stellt eine grafische Anmeldemaske zur
   Verfu:gung, in der Sie den Rechner, auf dem eine Sitzung laufen
   soll, auswa:hlen ko:nnen und in der Sie die no:tigen
   Autorisierungs-Informationen, wie Benutzername und Passwort,
   eingeben ko:nnen.

   Die Funktion des X-Display-Managers la:sst sich mit der von
   getty(8) (siehe Abschnitt 27.3.2) vergleichen. Er meldet den
   Benutzer am ausgesuchten System an, startet ein Programm (meist
   einen Window-Manager) und wartet darauf, dass dieses Programm
   beendet wird, das heisst der Benutzer die Sitzung beendet hat.
   Nachdem die Sitzung beendet ist, zeigt XDM den grafischen
   Anmeldebildschirm fu:r den na:chsten Benutzer an.

     --------------------------------------------------------------

  6.6.2. XDM einrichten

   Um XDM verwenden zu ko:nnen, installieren Sie den Port x11/xdm
   (dieser wird standardma:ssig nicht in aktuellen Xorg-Versionen
   mitinstalliert). Der XDM-Daemon befindet sich dann in
   /usr/local/bin/xdm und kann jederzeit von root gestartet werden.
   Er verwaltet dann den X-Bildschirm des lokalen Rechners. XDM
   la:sst sich bequem mit einem Eintrag in /etc/ttys (siehe Abschnitt
   27.3.2.1) bei jedem Start des Rechners aktivieren. In /etc/ttys
   sollte schon der nachstehende Eintrag vorhanden sein:

 ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure

   In der Voreinstellung ist dieser Eintrag nicht aktiv. Um den
   Eintrag zu aktivieren, a:ndern Sie den Wert in Feld 5 von off zu
   on und starten Sie init(8) entsprechend der Anleitung in Abschnitt
   27.3.2.2 neu. Das erste Feld gibt den Namen des Terminals an, auf
   dem das Programm la:uft. Im Beispiel wird ttyv8 verwendet, das
   heisst XDM la:uft auf dem neunten virtuellen Terminal.

     --------------------------------------------------------------

  6.6.3. XDM konfigurieren

   Das Verhalten und Aussehen von XDM steuern Sie mit
   Konfigurationsdateien, die im Verzeichnis /usr/local/lib/X11/xdm
   stehen. U:blicherweise finden Sie dort die folgenden Dateien vor:

     Datei                         Beschreibung                       
   Xaccess    Regelsatz, der zur Autorisierung von Clients benutzt    
              wird.                                                   
   Xresources Vorgabewerte fu:r X-Ressourcen.                         
   Xservers   Liste mit lokalen und entfernten Bildschirmen, die      
              verwaltet werden.                                       
   Xsession   Vorgabe fu:r das Startskript der Sitzung.               
   Xsetup_*   Skript, das dazu dient, Anwendungen vor der Anmeldung   
              zu starten.                                             
   xdm-config Konfiguration fu:r alle auf der Maschine verwalteten    
              Bildschirme.                                            
   xdm-errors Fehlermeldungen des Servers.                            
   xdm-pid    Die Prozess-ID des gerade laufenden XDM-Prozesses.      

   Im Verzeichnis /usr/local/lib/X11/xdm befinden sich auch noch
   Skripten und Programme, die zum Einrichten der XDM-Oberfla:che
   dienen. Der Zweck dieser Dateien und der Umgang mit ihnen wird in
   der Hilfeseite xdm(1) erkla:rt. Wir gehen im Folgenden nur kurz
   auf ein paar der Dateien ein.

   Die vorgegebene Einstellung zeigt ein rechteckiges Anmeldefenster,
   in dem der Rechnername in grosser Schrift steht. Darunter befinden
   sich die Eingabeaufforderungen Login: und Password:. Mit dieser
   Maske ko:nnen Sie anfangen, wenn Sie das Erscheinungsbild von XDM
   vera:ndern wollen.

     --------------------------------------------------------------

    6.6.3.1. Xaccess

   Verbindungen zu XDM werden u:ber das "X Display Manager Connection
   Protocol" (XDMCP) hergestellt. XDMCP-Verbindungen von entfernten
   Maschinen werden u:ber den Regelsatz in Xaccess kontrolliert.
   Diese Datei wird allerdings ignoriert, wenn in xdm-config keine
   Verbindungen entfernter Maschinen erlaubt sind (dies ist auch die
   Voreinstellung).

     --------------------------------------------------------------

    6.6.3.2. Xresources

   In dieser Datei kann das Erscheinungsbild der Bildschirmauswahl
   und der Anmeldemasken festgelegt werden. Das Format entspricht den
   Dateien im Verzeichnis app-defaults, die in der X11-Dokumentation
   beschrieben sind.

     --------------------------------------------------------------

    6.6.3.3. Xservers

   Diese Datei entha:lt eine Liste entfernter Maschinen, die in der
   Bildschirmauswahl angeboten werden.

     --------------------------------------------------------------

    6.6.3.4. Xsession

   Dieses Skript wird vom XDM aufgerufen, nachdem sich ein Benutzer
   erfolgreich angemeldet hat. U:blicherweise besitzt jeder Benutzer
   eine angepasste Version dieses Skripts in ~/.xsession, das dann
   anstelle von Xsession ausgefu:hrt wird.

     --------------------------------------------------------------

    6.6.3.5. Xsetup_*

   Diese Skripten werden automatisch ausgefu:hrt bevor die
   Bildschirmauswahl oder die Anmeldemasken angezeigt werden. Fu:r
   jeden lokalen Bildschirm gibt es ein Skript, dessen Namen aus
   Xsetup_ gefolgt von der Bildschirmnummer gebildet wird (zum
   Beispiel Xsetup_0). Normalerweise werden damit ein oder zwei
   Programme, wie xconsole, im Hintergrund gestartet.

     --------------------------------------------------------------

    6.6.3.6. xdm-config

   Diese Datei entha:lt Einstellungen, die fu:r jeden verwalteten
   Bildschirm zutreffen. Das Format entspricht dem der Dateien aus
   app-defaults.

     --------------------------------------------------------------

    6.6.3.7. xdm-errors

   Die Ausgaben jedes X-Servers, den XDM versucht zu starten, werden
   in dieser Datei gesammelt. Wenn ein von XDM verwalteter Bildschirm
   aus unbekannten Gru:nden ha:ngen bleibt, sollten Sie in dieser
   Datei nach Fehlermeldungen suchen. Fu:r jede Sitzung werden die
   Meldungen auch in die Datei ~/.xsession-errors des Benutzers
   geschrieben.

     --------------------------------------------------------------

  6.6.4. Einrichten eines Bildschirm-Servers auf dem Netzwerk

   Damit sich Clients mit dem Bildschirm-Server verbinden ko:nnen,
   muss der Zugriffsregelsatz editiert und der Listener aktiviert
   werden. Die Vorgabewerte sind sehr restriktiv eingestellt. Damit
   XDM Verbindungen annimmt, kommentieren Sie eine Zeile in der
   xdm-config Datei aus:

 ! SECURITY: do not listen for XDMCP or Chooser requests
 ! Comment out this line if you want to manage X terminals with xdm
 DisplayManager.requestPort:     0

   Starten Sie danach XDM neu. Beachten Sie, dass Kommentare in den
   Ressourcen-Konfigurationsdateien mit einem ! anstelle des sonst
   u:blichen Zeichens # beginnen. Wenn Sie strengere
   Zugriffskontrollen einrichten wollen, sehen Sie sich die Beispiele
   in Xaccess und die Hilfeseite xdm(1) an.

     --------------------------------------------------------------

  6.6.5. XDM ersetzen

   Es gibt mehrere Anwendungen, die XDM ersetzen ko:nnen, zum
   Beispiel kdm, der Teil von KDE ist und spa:ter in diesem Kapitel
   besprochen wird. kdm ist ansprechender gestaltet und bietet neben
   einigen Schno:rkeln die Mo:glichkeit, den zu verwendenden
   Window-Manager bei der Anmeldung auszuwa:hlen.

     --------------------------------------------------------------

6.7. Grafische Oberfla:chen

   Beigetragen von Valentino Vaschetto.

   Dieser Abschnitt beschreibt verschiedene grafische Oberfla:chen,
   die es fu:r X unter FreeBSD gibt. Eine Oberfla:che (desktop
   environment) kann alles von einem einfachen Window-Manager bis hin
   zu kompletten Anwendungen wie KDE oder GNOME sein.

     --------------------------------------------------------------

  6.7.1. GNOME

    6.7.1.1. U:ber GNOME

   GNOME ist eine benutzerfreundliche Oberfla:che, mit der Rechner
   leicht benutzt und konfiguriert werden ko:nnen. GNOME besitzt eine
   Leiste, mit der Anwendungen gestartet werden und die
   Statusinformationen anzeigen kann. Programme und Daten ko:nnen auf
   der Oberfla:che abgelegt werden und Standardwerkzeuge stehen zur
   Verfu:gung. Es gibt Konventionen, die es Anwendungen leicht
   machen, zusammenzuarbeiten und ein konsistentes Erscheinungsbild
   garantieren. Benutzer anderer Betriebssysteme oder anderer
   Arbeitsumgebungen sollten mit der leistungsfa:higen grafischen
   Oberfla:che von GNOME sehr gut zurechtkommen. Auf der Webseite
   FreeBSD GNOME Project finden Sie weitere Informationen u:ber GNOME
   auf FreeBSD. Zusa:tzlich finden Sie dort umfassende FAQs zur
   Installation, Konfiguration und zum Betrieb von GNOME.

     --------------------------------------------------------------

    6.7.1.2. GNOME installieren

   Am einfachsten installieren Sie GNOME als Paket oder u:ber die
   Ports-Sammlung.

   Wenn Sie das GNOME-Paket u:ber das Netz installieren wollen,
   setzen Sie den nachstehenden Befehl ab:

 # pkg_add -r gnome2

   Wenn Sie den Quellcode von GNOME u:bersetzen wollen, benutzen Sie
   die Ports-Sammlung:

 # cd /usr/ports/x11/gnome2
 # make install clean

   Damit GNOME korrekt funktioniert, muss das /proc-Dateisystem
   eingeha:ngt sein. Fu:gen Sie daher die folgende Zeile in
   /etc/fstab ein, damit procfs(5) beim Systemstart automatisch
   eingeha:ngt wird:

 proc           /proc       procfs  rw  0   0

   Nachdem GNOME installiert ist, muss der X-Server GNOME anstelle
   eines Window-Managers starten.

   Der einfachste Weg, GNOME zu starten, ist GDM, der GNOME Display
   Manager. GDM wird zwar als Teil des GNOME-Desktops installiert,
   ist aber in der Voreinstellung deaktiviert. Um GDM zu aktivieren,
   fu:gen Sie folgende Zeile in /etc/rc.conf ein:

 gdm_enable="YES"

   Nach einem Systemneustart wird GDM ab sofort automatisch
   gestartet.

   In der Regel ist es ratsam, alle GNOME-Dienste beim Start von GDM
   zu aktivieren. Um dies zu erreichen, fu:gen Sie die folgende Zeile
   in /etc/rc.conf ein:

 gnome_enable="YES"

   GNOME kann auch von der Kommandozeile gestartet werden, wenn Sie
   eine entsprechend konfigurierte .xinitrc in Ihrem
   Heimatverzeichnis besitzen. Existiert eine solche Version,
   ersetzen Sie den Aufruf des Window-Managers durch
   /usr/local/bin/gnome-session. Wenn .xinitrc nicht gesondert
   angepasst wurde, reicht es, den nachstehenden Befehl abzusetzen:

 % echo "/usr/local/bin/gnome-session" > ~/.xinitrc

   Rufen Sie danach startx auf, um die GNOME Oberfla:che zu starten.

     Anmerkung: Wenn Sie einen a:lteren Display-Manager wie XDM
     verwenden, mu:ssen Sie anders vorgehen. Legen Sie eine
     ausfu:hrbare .xsession an, die das Kommando zum Start von GNOME
     entha:lt. Ersetzen Sie dazu den Start des Window-Managers durch
     /usr/local/bin/gnome-session:

 % echo "#!/bin/sh" > ~/.xsession
 % echo "/usr/local/bin/gnome-session" >> ~/.xsession
 % chmod +x ~/.xsession

   Sie ko:nnen den Display-Manager auch so konfigurieren, dass der
   Window-Manager beim Anmelden gewa:hlt werden kann. Im Abschnitt
   Details zu KDE wird das fu:r kdm, den Display-Manager von KDE
   erkla:rt.

     --------------------------------------------------------------

  6.7.2. KDE

    6.7.2.1. U:ber KDE

   KDE ist eine moderne, leicht zu benutzende Oberfla:che, die unter
   anderem Folgendes bietet:

     * eine scho:ne und moderne Oberfla:che,

     * eine Oberfla:che, die vo:llig netzwerktransparent ist,

     * ein integriertes Hilfesystem, das bequem und konsistent
       Hilfestellungen bezu:glich der Bedienung der KDE-Oberfla:che
       und ihrer Anwendungen gibt,

     * ein konstantes Erscheinungsbild (look and feel) aller
       KDE-Anwendungen,

     * einheitliche Menu:s, Werkzeugleisten, Tastenkombinationen und
       Farbschemata,

     * Internationalisierung: KDE ist in mehr als 40 Sprachen
       erha:ltlich,

     * durch Dialoge gesteuerte zentrale Konfiguration der
       Oberfla:che,

     * viele nu:tzliche KDE-Anwendungen.

   In KDE ist mit Konqueror auch ein Webbrowser enthalten, der sich
   durchaus mit anderen Webbrowsern auf UNIX-Systemen messen kann.
   Weitere Informationen u:ber KDE erhalten Sie auf den
   KDE-Webseiten. Auf der Webseite KDE on FreeBSD finden Sie weitere
   FreeBSD-spezifische Informationen u:ber KDE.

   Es sind zwei Versionen von KDE unter FreeBSD verfu:gbar. Version 3
   ist schon seit einiger Zeit erha:ltlich und ist sehr ausgereift.
   Version 4, die na:chste Generation, ist ebenfalls u:ber die
   Ports-Sammlung verfu:gbar. Beide Versionen ko:nnen sogar
   gleichzeitig installiert werden.

     --------------------------------------------------------------

    6.7.2.2. KDE installieren

   Am einfachsten installieren Sie KDE, wie jede andere grafische
   Oberfla:che auch, als Paket oder u:ber die Ports-Sammlung.

   Um KDE3 u:ber das Netz zu installieren, setzen Sie den
   nachstehenden Befehl ab:

 # pkg_add -r kde

   Um KDE4 u:ber das Netzwerk zu installieren, geben Sie folgendes
   ein:

 # pkg_add -r kde4

   pkg_add(1) installiert automatisch die neuste Version einer
   Anwendung.

   Benutzen Sie die Ports-Sammlung, wenn Sie den Quellcode von KDE3
   u:bersetzen wollen:

 # cd /usr/ports/x11/kde3
 # make install clean

   Um KDE4 aus dem Quellcode zu u:bersetzen, geben Sie folgendes ein:

 # cd /usr/ports/x11/kde4
 # make install clean

   Nachdem KDE installiert ist, muss der X-Server KDE anstelle eines
   Window-Managers starten. Legen Sie dazu die Datei .xinitrc an:

   Fu:r KDE3:

 % echo "exec startkde" > ~/.xinitrc

   Fu:r KDE4:

 % echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc

   Wenn das X-Window-System danach mit startx gestartet wird,
   erscheint die KDE-Oberfla:che.

   Wird ein Display-Manager wie XDM benutzt, muss .xsession angepasst
   werden. Eine Anleitung fu:r kdm folgt gleich in diesem Kapitel.

     --------------------------------------------------------------

  6.7.3. Details zu KDE

   Wenn KDE erst einmal installiert ist, erschliessen sich die
   meisten Sachen durch das Hilfesystem oder durch Ausprobieren.
   Benutzer von Windows oder Mac OS werden sich sehr schnell zurecht
   finden.

   Die beste Referenz fu:r KDE ist die Online-Dokumentation. KDE
   besitzt einen eigenen Webbrowser, sehr viele nu:tzliche
   Anwendungen und ausfu:hrliche Dokumentation. Der Rest dieses
   Abschnitts bescha:ftigt sich daher mit Dingen, die schlecht durch
   einfaches Ausprobieren erlernbar sind.

     --------------------------------------------------------------

    6.7.3.1. Der KDE-Display-Manager

   Der Administrator eines Mehrbenutzersystems will den Benutzern
   vielleicht eine grafische Anmeldung wie mit XDM ermo:glichen. KDE
   besitzt einen eigenen Display-Manager, der scho:ner aussieht und
   auch u:ber mehr Optionen verfu:gt. Insbesondere ko:nnen sich die
   Benutzer die Oberfla:che fu:r die Sitzung (beispielsweise KDE oder
   GNOME) aussuchen.

   Die Art und Weise, wie kdm aktiviert wird, ha:ngt dabei von der
   von Ihnen eingesetzten KDE-Version ab.

   Fu:r KDE3 mu:ssen die ttyv8-Zeile wie folgt anpassen:

 ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure

   Verwenden Sie hingegen KDE4, mu:ssen Sie folgende Zeilen in die
   Datei /etc/rc.conf aufnehmen:

 local_startup="${local_startup} /usr/local/kde4/etc/rc.d"
 kdm4_enable="YES"

     --------------------------------------------------------------

  6.7.4. Xfce

    6.7.4.1. U:ber Xfce

   Xfce ist eine grafische Oberfla:che, die auf den
   GTK+-Bibliotheken, die auch von GNOME benutzt werden, beruht. Die
   Oberfla:che ist allerdings weniger aufwa:ndig und fu:r diejenigen
   gedacht, die eine schlichte und effiziente Oberfla:che wollen, die
   dennoch einfach zu benutzen und zu konfigurieren ist. Die
   Oberfla:che sieht a:hnlich wie CDE aus, das in kommerziellen UNIX
   Systemen verwendet wird. Einige Merkmale von Xfce sind:

     * eine schlichte einfach zu benutzende Oberfla:che,

     * vollsta:ndig mit Mausoperationen konfigurierbar,
       Unterstu:tzung von drag and drop,

     * a:hnliche Hauptleiste wie CDE, die Menu:s entha:lt und u:ber
       die Anwendungen gestartet werden ko:nnen,

     * integrierter Window-Manager, Datei-Manager und Sound-Manager,
       GNOME-compliance-Modul,

     * mit Themes anpassbar (da GTK+ benutzt wird),

     * schnell, leicht und effizient: ideal fu:r a:ltere oder
       langsamere Maschinen oder Maschinen mit wenig Speicher.

   Weitere Information u:ber Xfce erhalten Sie auf der Xfce-Webseite.

     --------------------------------------------------------------

    6.7.4.2. Xfce installieren

   Das Xfce-Paket installieren Sie mit dem nachstehenden Kommando:

 # pkg_add -r xfce4

   Mit der Ports-Sammlung ko:nnen Sie auch den Quellcode u:bersetzen:

 # cd /usr/ports/x11-wm/xfce4
 # make install clean

   Damit beim na:chsten Start des X-Servers Xfce benutzt wird, setzen
   Sie das folgende Kommando ab:

 % echo "/usr/local/bin/startxfce4" > ~/.xinitrc

   Wenn Sie einen Display-Manager benutzen, erstellen Sie die Datei
   .xsession, wie im GNOME Abschnitt beschrieben. Verwenden Sie jetzt
   allerdings das Kommando /usr/local/bin/startxfce4. Sie ko:nnen
   auch den Display-Manager wie im kdm Abschnitt beschrieben, so
   konfigurieren, dass die Oberfla:che fu:r die Sitzung ausgewa:hlt
   werden kann.

                      II. Oft benutzte Funktionen

   Nach den Grundlagen bescha:ftigt sich das FreeBSD-Handbuch mit oft
   benutzten Funktionen von FreeBSD. Die Kapitel behandeln die
   nachstehenden Themen:

     * Zeigen Ihnen beliebte und nu:tzliche Werkzeuge wie Browser,
       Bu:roanwendungen und Programme zum Anzeigen von Dokumenten.

     * Zeigen Ihnen Multimedia-Werkzeuge fu:r FreeBSD.

     * Erkla:ren den Bau eines angepassten FreeBSD-Kernels, der die
       Systemfunktionen erweitert.

     * Beschreiben ausfu:hrlich das Drucksystem, sowohl fu:r direkt
       angeschlossene Drucker als auch fu:r Netzwerkdrucker.

     * Erla:utern, wie Sie Linux-Anwendungen auf einem FreeBSD-System
       laufen lassen.

   Damit Sie einige Kapitel verstehen, sollten Sie vorher andere
   Kapitel gelesen haben. Die U:bersicht zu jedem Kapitel za:hlt die
   Voraussetzungen fu:r das erolgreiche Durcharbeiten des Kapitels
   auf.

   Inhaltsverzeichnis

   7. Desktop-Anwendungen

   8. Multimedia

   9. Konfiguration des FreeBSD-Kernels

   10. Drucken

   11. Linux-Bina:rkompatibilita:t

     --------------------------------------------------------------

                     Kapitel 7. Desktop-Anwendungen

   Beigetragen von Christophe Juniet. U:bersetzt von Martin Heinen.

7.1. U:bersicht

   FreeBSD bietet eine reiche Auswahl an Desktop-Anwendungen, wie
   Browser und Textverarbeitungen, die als Pakete oder mit der
   Ports-Sammlung installiert werden. Gerade neue Benutzer erwarten
   Anwendungen mit einer grafischen Benutzeroberfla:che an ihrem
   Arbeitsplatz. Dieses Kapitel zeigt Ihnen, wie Sie einige der
   beliebtesten Desktop-Anwendungen mu:helos installieren.

   Wenn Sie Ports installieren, beachten Sie, dass dabei die
   Quelltexte der Programme u:bersetzt werden. Abha:ngig von dem
   Programm und der Geschwindigkeit Ihrer Maschinen kann das sehr
   lange dauern. Wenn Ihnen das U:bersetzen zu lange dauert, ko:nnen
   Sie die meisten Programme der Ports-Sammlung auch als fertige
   Pakete installieren.

   Da FreeBSD bina:r kompatibel zu Linux ist, ko:nnen Sie zahlreiche
   fu:r Linux entwickelte Desktop-Anwendungen einsetzen. Bevor Sie
   allerdings Linux-Anwendungen installieren, sollten Sie das Kapitel
   11 lesen. Wenn Sie nach einem bestimmten Port suchen, zum Beispiel
   mit whereis(1), beachten Sie, dass die Namen vieler Programme, die
   die Linux-Bina:rkompatibilita:t benutzen, mit linux- anfangen. Wir
   gehen im Folgenden davon aus, dass Sie die
   Linux-Bina:rkompatibilita:t aktiviert haben, bevor Sie
   Linux-Anwendungen installieren.

   Dieses Kapitel behandelt Anwendungen aus den Bereichen:

     * Browser (Firefox, Opera, Konqueror), Chromium)

     * Bu:roanwendungen (KOffice, AbiWord, The GIMP, OpenOffice.org,
       LibreOffice)

     * Dokumentformate(Acrobat Reader(R), gv, Xpdf, GQview)

     * Finanzsoftware ( GnuCash, Gnumeric, Abacus)

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Software Dritter installieren ko:nnen (Kapitel 5) und

     * Linux-Anwendungen installieren ko:nnen (Kapitel 11).

   Wie Sie Multimedia-Anwendungen einrichten, wird in einem
   gesonderten Kapitel erkla:rt. Wie Sie E-Mail einrichten und
   benutzen, wird in Kapitel 29 beschrieben.

     --------------------------------------------------------------

7.2. Browser

   FreeBSD besitzt keinen vorinstallierten Browser, stattdessen
   entha:lt das www-Verzeichnis der Ports-Sammlung Browser, die Sie
   installieren ko:nnen. Wenn Ihnen das U:bersetzen der Browser zu
   lange dauert, bei einigen Browsern dauert das wirklich lange,
   installieren Sie die Pakete, die es fu:r viele Browser gibt.

   KDE und GNOME enthalten schon HTML-Browser. Das Einrichten dieser
   grafischen Benutzeroberfla:chen ist in Abschnitt 6.7 beschrieben.

   Wenn Sie besonders schlanke Browser beno:tigen, suchen Sie in der
   Ports-Sammlung nach www/dillo2, www/links oder www/w3m.

   Dieser Abschnitt behandelt die nachstehenden Anwendungen:

   Anwendung Ressourcenbedarf Installationsaufwand       wichtige        
                                 aus den Ports        Abha:ngigkeiten    
   Firefox   mittel           hoch                 Gtk+                  
                                                   Es gibt eine FreeBSD- 
                                                   und eine              
                                                   Linux-Version. Die    
                                                   Linux-Version ha:ngt  
   Opera     niedrig          niedrig              von der               
                                                   Linux-Kompatibilita:t 
                                                   (Linux Binary         
                                                   Compatibility) und    
                                                   linux-openmotif ab.   
   Konqueror mittel           hoch                 KDE-Biliotheken       
   Chromium  mittel           mittel               Gtk+                  

     --------------------------------------------------------------

  7.2.1. Firefox

   Firefox ist ein moderner, freier und stabiler Open-Source Browser,
   der vollsta:ndig auf FreeBSD portiert wurde. Er bietet eine dem
   HTML-Standard konforme Anzeige, Browserfenster als Tabs,
   Blockierung von Werbefenstern, Erweiterungen, verbesserte
   Sicherheit und mehr. Firefox basiert auf der Mozilla Codebasis.

   Das Paket ko:nnen Sie mit dem nachstehenden Befehl installieren:

 # pkg_add -r firefox

   Damit installieren Sie Firefox 10.0, wenn Sie stattdessen Firefox
   3.6 einsetzen mo:chten, geben Sie folgenden Befehl ein:

 # pkg_add -r firefox36

   Alternativ ko:nnen Sie auch die Ports-Sammlung verwenden, um das
   Programm aus dem Quellcode zu installieren:

 # cd /usr/ports/www/firefox
 # make install clean

   Ersetzen Sie im vorherigen Kommando firefox durch firefox36, falls
   Sie Firefox 3.6 verwenden wollen.

     --------------------------------------------------------------

  7.2.2. Firefox und das Java(TM)-Plugin

     Anmerkung: Dieser und die beiden na:chsten Abschnitte gehen
     davon aus, dass Sie Firefox bereits installiert haben.

   Die Schritte zur Installation des Plugins ha:ngen davon, welche
   Firefox Sie installiert haben.

   Installieren Sie das OpenJDK 6 u:ber die Ports-Sammlung:

 # cd /usr/ports/java/openjdk6
 # make install clean

   Danach installieren Sie den Port java/icedtea-web:

 # cd /usr/ports/java/icedtea-web
 # make install clean

   Stellen Sie dabei sicher, dass Sie jeweils die Standardoptionen
   verwenden.

   Starten Sie nun Ihren Browser, geben Sie in der Adresszeile
   about:plugins ein und besta:tigen Sie diese Eingabe mit der
   Enter-Taste. Dadurch wird eine Seite geo:ffnet, die alle
   installierten Plugins auflistet. In dieser Liste sollte sich nun
   auch das Java(TM)-Plugin befinden.

   Wird das Plugin nicht gefunden, muss fu:r jeden Benutzer der
   folgende Befel ausgefu:hrt werden:

 % ln -s /usr/local/lib/IcedTeaPlugin.so \
   $HOME/.mozilla/plugins/

     --------------------------------------------------------------

  7.2.3. Firefox und das Adobe(R) Flash(TM)-Plugin

   Das Adobe(R) Flash(TM)-Plugin ist fu:r FreeBSD nicht verfu:gbar.
   Es existiert jedoch ein Software-Layer (ein sogenannter Wrapper),
   der es erlaubt, die Linux-Version des Plugins unter FreeBSD
   einzusetzen. Dieser Wrapper unterstu:tzt ausserdem das Adobe
   Acrobat(R)-Plugin, das RealPlayer(R)-Plugin und andere mehr.

   Je nachdem, welche Version von FreeBSD Sie verwenden, sind
   unterschiedliche Schritte notwendig:

    1. Fu:r FreeBSD 7.X

       Installieren Sie den Port www/nspluginwrapper. Dieser Port
       setzt voraus, dass Sie den Port emulators/linux_base-fc4
       bereits installiert haben, der sehr gross ist.

       Anschliessend installieren Sie den Port
       www/linux-flashplugin9. Dadurch wird Flash 9.X installiert,
       denn diese Version la:uft zuverla:ssig auf FreeBSD 7.X.

    2. Fu:r FreeBSD 8.X oder Neuere

       Installieren Sie den Port www/nspluginwrapper. Dieser Port
       beno:tigt den emulators/linux_base-f10 Port, der sehr gross
       ist.

       Als na:chstes installieren Sie Flash 11.X aus dem Port
       www/linux-f10-flashplugin11.

       Fu:r diese Version muss der folgende symbolische Link angelegt
       werden:

 # ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \
   /usr/local/lib/browser_plugins/

       Falls das Verzeichnis /usr/local/lib/browser_plugins auf Ihrem
       System nicht existiert, mu:ssen Sie es manuell anlegen.

   Sobald der richtige Flash-Port passend zu ihrer FreeBSD Version
   installiert ist, muss das Plugin von jedem Benutzer mittels
   nspluginwrapper installiert werden:

 % nspluginwrapper -v -a -i

   Das Linux Prozessdateisystem, linprocfs(5), muss unter
   /compat/linux/proc eingeha:ngt werden, wenn Sie Flash-Animationen
   abspielen mo:chten. Dies kann mittels des folgenden Kommandos
   geschehen:

 # mount -t linprocfs linproc /compat/linux/proc

   Dieser Schritt kann automatisiert zur Bootzeit ablaufen, indem Sie
   die passende Zeile in /etc/fstab eintragen:

 linproc   /compat/linux/proc  linprocfs       rw      0       0

   Rufen Sie dann Ihren Browser auf und geben in der Adresszeile
   about:plugins ein. Diese Eingabe muss mit der Enter-Taste
   besta:tigt werden. Danach wird eine Seite geladen, auf der alle
   installierten Plugins aufgelistet werden.

     --------------------------------------------------------------

  7.2.4. Firefox und das Swfdec Flash-Plugin

   Swfdec ist die Bibliothek zum Dekodieren und Rendern von Flash
   Animationen. Swfdec-Mozilla ist ein Plugin fu:r Firefox-Browser,
   welches die Swfdec-Bibliothek zum Abspielen von SWF-Dateien
   benutzt. Momentan befindet sie sich noch in der Entwicklung.

   Wenn Sie diese nicht u:bersetzen ko:nnen oder wollen, dann
   installieren Sie einfach das Paket aus dem Netz:

 # pkg_add -r swfdec-plugin

   Wenn das Paket nicht verfu:gbar ist, ko:nnen Sie es auch u:ber die
   Ports-Sammlung bauen und installieren:

 # cd /usr/ports/www/swfdec-plugin
 # make install clean

   Starten Sie anschliessend ihren Browser neu, damit dieses Plugin
   aktiviert wird.

     --------------------------------------------------------------

  7.2.5. Opera

   Opera ist ein schneller, vollwertiger und standardkonformer
   Browser, der wie Mozilla u:ber einen eingebauten E-Mail- und
   Newsreader verfu:gt. Zusa:tzlich sind ein IRC-Client, ein
   RSS/Atom-Feeds-Reader sowie weitere Programme enthalten. Dennoch
   handelt es sich bei Opera weiterhin um ein relativ kleines und
   sehr schnelles Programmpaket. Sie haben die Wahl zwei Versionen
   dieses Browsers: Der "nativen" FreeBSD-Version und der
   Linux-Version.

   Wenn Sie das Web mit der FreeBSD-Version von Opera erkunden
   wollen, installieren Sie das Paket:

 # pkg_add -r opera

   Einige FTP-Server haben nicht alle Pakete, Sie ko:nnen Opera aber
   u:ber die Ports-Sammlung installieren:

 # cd /usr/ports/www/opera
 # make install clean

   Wenn Sie die Linux-Version des Browsers verwenden wollen, ersetzen
   Sie in den Beispielen opera durch linux-opera.

   Das Adobe Flash-Plugin ist fu:r FreeBSD nicht verfu:gbar. Es gibt
   aber eine Linux-Version des Plugins, die auch unter FreeBSD
   installiert werden kann. Dazu installieren Sie zuerst den Port
   www/linux-f10-flashplugin11, danach den Port
   www/opera-linuxplugins:

 # cd /usr/ports/www/linux-f10-flashplugin11
 # make install clean
 # cd /usr/ports/www/opera-linuxplugins
 # make install clean

   Danach sollte das Plugin installiert sein. Um dies zu
   u:berpru:fen, starten Sie den Browser und geben in die Adresszeile
   opera:plugins ein und besta:tigen diese Eingabe mit der
   Return-Taste. Dadurch erhalten Sie eine Liste aller derzeit
   installierter Plugins.

   Um das Java-Plugin zu installieren, folgen Sie bitte den
   entsprechenden Anweisungen fu:r Firefox.

     --------------------------------------------------------------

  7.2.6. Konqueror

   Konqueror ist Teil von KDE, kann aber ausserhalb von KDE benutzt
   werden, wenn der Port x11/kdebase3 installiert ist. Konqueror ist
   mehr als nur ein Browser. Sie ko:nnen das Programm weiters zur
   Dateiverwaltung und zum Abspielen von Multimedia-Dateien benutzen.

   Der Port misc/konq-plugins installiert verschiedene Plugins fu:r
   Konqueror.

   Konqueror kann Flash-Seiten darstellen. Wie Sie die
   Flash-Unterstu:tzung aktiviern, ko:nnen Sie unter
   http://freebsd.kde.org/howtos/konqueror-flash.php nachlesen.

     --------------------------------------------------------------

  7.2.7. Chromium

   Chromium ist ein quelloffenes Browserprojekt mit dem Ziel ein
   sicheres, schnelleres und stabileres Surferlebnis im Web zu
   ermo:glichen. Chromium ermo:glicht surfen mit Tabs, Blockieren von
   Pop-Ups, Erweiterungen und vieles mehr. Chromium ist das Open
   Source Projekt, welches auf dem Google Chrome Webbrowser basiert.

   Chromium kann als Paket durch die Eingabe des folgenden Befehls
   installiert werden:

 # pkg_add -r chromium

   Als Alternative kann Chromium aus dem Quellcode durch die Ports
   Collection u:bersetzt werden:

 # cd /usr/ports/www/chromium
 # make install clean

     Anmerkung: Chromium wird als /usr/local/bin/chrome installiert
     und nicht als /usr/local/bin/chromium.

     --------------------------------------------------------------

  7.2.8. Chromium und das Java-Plug-In

     Anmerkung: Dieser Abschnitt setzt voraus, dass Chromium bereits
     installiert ist.

   Installieren Sie OpenJDK 6 mit Hilfe der Ports Collection durch
   Eingabe von:

 # cd /usr/ports/java/openjdk6
 # make install clean

   Als na:chstes installieren Sie java/icedtea-web aus der Ports
   Collection:

 # cd /usr/ports/java/icedtea-web
 # make install clean

   Starten Sie Chromium und geben Sie about:plugins in die
   Addresszeile ein. IcedTea-Web sollte dort als eines der
   installierten Plug-Ins aufgelistet sein.

   Falls Chromium das IcedTea-Web Plug-In nicht anzeigt, geben Sie
   das folgende Kommando ein und starten Sie den Webbrowser
   anschliessend neu:

 # mkdir -p /usr/local/share/chromium/plugins
 # ln -s /usr/local/lib/IcedTeaPlugin.so \
    /usr/local/share/chromium/plugins/

     --------------------------------------------------------------

  7.2.9. Chromium und das Adobe Flash-Plug-In

     Anmerkung: Dieser Abschnitt setzt voraus, dass Chromium bereits
     installiert ist.

   Die Konfiguration von Chromium und Adobe Flash ist a:hnlich zur
   Anleitung fu:r Firefox. Fu:r genauere Hinweise zur Installation
   von Adobe Flash auf FreeBSD, wenden Sie sich bitte an diesen
   Abschnitt. Es sollte keine weitere Konfiguration notwendig sein,
   da Chromium in der Lage ist, Plug-Ins von anderen Browsern mit zu
   benutzen.

     --------------------------------------------------------------

7.3. Bu:roanwendungen

   Neue Benutzer suchen oft ein komplettes Office-Paket oder eine
   leicht zu bedienende Textverarbeitung. Einige Benutzeroberfla:chen
   wie KDE enthalten zwar ein Office-Paket, diese werden in der
   Standardeinstellung unter FreeBSD aber nicht installiert.
   Unabha:ngig von der verwendeten Benutzeroberfla:che ko:nnen Sie
   diverse Office-Pakete aber jederzeit u:ber die Ports-Sammlung
   installlieren.

   Dieser Abschnitt behandelt die nachstehenden Anwendungen:

     Anwendung    Ressourcenbedarf Installationsaufwand    wichtige     
                                      aus den Ports     Abha:ngigkeiten 
   KOffice        niedrig          hoch                 KDE             
   AbiWord        niedrig          niedrig              Gtk+ oder GNOME 
   The Gimp       niedrig          hoch                 Gtk+            
   OpenOffice.org hoch             enorm                JDK(TM),        
                                                        Mozilla         
   LibreOffice    etwas hoch       enorm                Gtk+, KDE/      
                                                        GNOME oder JDK  

     --------------------------------------------------------------

  7.3.1. KOffice

   Die KDE-Gemeinschaft stellt ein Office-Paket bereit, das auch
   ausserhalb von KDE eingesetzt werden kann. Es besteht aus vier,
   von anderen Office-Paketen bekannten, Komponenten: KWord ist die
   Textverarbeitung, KSpread die Tabellenkalkulation, mit KPresenter
   werden Pra:sentationen erstellt und Kontour ist ein
   Zeichenprogramm.

   Stellen Sie vor der Installation des neusten KOffice sicher, dass
   Sie eine aktuelle Version von KDE besitzen.

   Mit dem folgenden Kommando installieren Sie das KOffice-Paket fu:r
   KDE4:

 # pkg_add -r koffice-kde4

   Wenn das Paket nicht zur Verfu:gung steht, benutzen Sie bitte die
   Ports-Sammlung. Wenn Sie beispielsweise KOffice fu:r KDE4
   installieren wollen, setzen Sie die nachstehendenen Befehle ab:

 # cd /usr/ports/editors/koffice-kde4
 # make install clean

     --------------------------------------------------------------

  7.3.2. AbiWord

   AbiWord ist eine freie Textverarbeitung, die a:hnlich wie
   Microsoft Word ist. Sie ko:nnen damit Artikel, Briefe, Berichte,
   Notizen usw. verfassen. Das Programm ist sehr schnell, besitzt
   viele Funktionen und ist sehr benutzerfreundlich.

   AbiWord kann viele Dateiformate, unter anderem nicht offene wie
   .doc von Microsoft, importieren und exportieren.

   Das AbiWord-Paket installieren Sie wie folgt:

 # pkg_add -r AbiWord

   Sollte das Paket nicht zur Verfu:gung stehen, ko:nnen Sie das
   Programm mit der Ports-Sammlung, die zudem aktueller als die
   Pakete ist, u:bersetzen. Gehen Sie dazu folgendermassen vor:

 # cd /usr/ports/editors/AbiWord
 # make install clean

     --------------------------------------------------------------

  7.3.3. The GIMP

   The GIMP ist ein sehr ausgereiftes Bildverarbeitungsprogramm mit
   dem Sie Bilder erstellen oder retuschieren ko:nnen. Sie ko:nnen es
   sowohl als einfaches Zeichenprogramm als auch zum retuschieren von
   Fotografien benutzen. Das Programm besitzt eine eingebaute
   Skriptsprache und es existieren sehr viele Plug-Ins. The GIMP kann
   Bilder in zahlreichen Formaten lesen und speichern und stellt
   Schnittstellen zu Scannern und grafischen Tabletts zur Verfu:gung.

   Sie installieren das Paket mit dem nachstehenden Befehl:

 # pkg_add -r gimp

   Benutzen Sie die Ports-Sammlung, wenn Ihr FTP-Server das Paket
   nicht bereitstellt. Im Verzeichnis graphics finden Sie das
   Handbuch The Gimp Manual. Sie ko:nnen alles mit den folgenden
   Befehlen installieren:

 # cd /usr/ports/graphics/gimp
 # make install clean
 # cd /usr/ports/graphics/gimp-manual-pdf
 # make install clean

     Anmerkung: Die Entwickler-Version von The GIMP finden Sie im
     Verzeichnis graphics der Ports-Sammlung. Das Handbuch ist im
     HTML-Format (graphics/gimp-manual-html) erha:ltlich.

     --------------------------------------------------------------

  7.3.4. OpenOffice.org

   OpenOffice.org entha:lt alles, was von einem Office-Paket erwartet
   wird: Textverarbeitung, Tabellenkalkulation, Pra:sentation und ein
   Zeichenprogramm. Die Bedienung gleicht anderen Office-Paketen und
   das Programm kann zahlreiche Dateiformate importieren und
   exportieren. Es gibt lokalisierte Versionen mit angepassten
   Menu:s, Rechtschreibkontrollen und Wo:rterbu:chern.

   Die Textverarbeitung von OpenOffice.org speichert Dateien im
   XML-Format. Dadurch wird die Verwendbarkeit der Dateien auf
   anderen Systemen erho:ht und die Handhabung der Daten vereinfacht.
   Die Tabellenkalkulation besitzt eine Makrosprache und eine
   Schnittstelle zu Datenbanken. OpenOffice.org la:uft auf Windows,
   Solaris(TM), Linux, FreeBSD und Mac OS X. Weitere Informationen
   u:ber OpenOffice.org finden Sie auf der OpenOffice.org Website.
   Spezifische Informationen fu:r FreeBSD finden Sie auf der Webseite
   FreeBSD OpenOffice.org Porting Team. Von dort ko:nnen Sie auch
   direkt das OpenOffice-Paket herunterladen.

   OpenOffice.org installieren Sie wie folgt:

 # pkg_add -r openoffice.org

     Anmerkung: Diese Art der Installation sollte mit einer
     -RELEASE-Version funktionieren. Verwenden Sie eine andere
     Version, sollten Sie die Internetseite des FreeBSD
     OpenOffice.org Porting Teams besuchen und das entsprechende
     Paket herunterladen und u:ber pkg_add(1) installieren, wobei Sie
     zwischen der aktuellen Version und der Entwicklerversion wa:hlen
     ko:nnen.

   Nachdem das Paket installiert ist, mu:ssen Sie lediglich folgenden
   Befehl eingeben, um OpenOffice.org zu starten:

 % openoffice.org

     Anmerkung: Nach dem ersten Start werden Ihnen einige Fragen
     gestellt. Ausserdem wird in Ihrem Heimatverzeichnis der neue
     Unterordner .openoffice.org angelegt.

   Falls die OpenOffice.org-Pakete nicht zur Verfu:gung stehen,
   ko:nnen Sie immer noch die Ports-Sammlung benutzen. Beachten Sie
   aber bitte, dass Sie sehr viel Plattenplatz und Zeit beno:tigen,
   um die Quellen zu u:bersetzen.

 # cd /usr/ports/editors/openoffice-3
 # make install clean

     Anmerkung: Wenn Sie ein lokalisierte Version bauen wollen,
     ersetzen Sie den letzten Befehl durch die folgende Zeile:

 # make LOCALIZED_LANG=Ihre_Sprache install clean

     Dabei ersetzen Sie Ihre_Sprache durch den korrekten ISO-Code.
     Eine Liste der unterstu:tzten Codes entha:lt die Datei
     files/Makefile.localized, die sich im Portsverzeichnis befindet.

   Nachdem die Installation abgeschlossen ist, ko:nnen Sie
   OpenOffice.org durch folgenden Befehl starten:

 % openoffice.org

     --------------------------------------------------------------

  7.3.5. LibreOffice

   LibreOffice ist ein als freie Software verfu:gbares Office-Paket,
   welches von The Document Foundation entwickelt wird, das mit
   anderen grossen Office-Paketen kompatibel ist und auf einer
   Vielzahl von Plattformen lauffa:hig ist. Es ist ein Fork von
   OpenOffice.org unter neuem Namen, der alle notwendigen Anwendungen
   in einem kompletten Bu:roanwendungspaket entha:lt: eine
   Textverarbeitung, eine Tabellenkalkulation, ein
   Pra:sentationsmanager, ein Zeichenprogramm, ein
   Datenbankmanagementprogramm und ein Werkzeug zum Erstellen und
   Bearbeiten von mathematischen Formeln. Es steht in einer Reihe von
   Sprachen zur Verfu:gung; die Internationalisierung wurde auf die
   Oberfla:che, Rechtschreibkorrektur und die Wo:rterbu:cher
   ausgeweitet.

   Das Textverarbeitungsprogramm von LibreOffice benutzt ein natives
   XML-Dateiformat fu:r erho:hte Portabilita:t und Flexibilita:t. Die
   Tabellenkalkulation entha:lt eine Makrosprache und kann mit
   externen Datenbanken Verbindungen herstellen. LibreOffice ist
   bereits stabil genug und la:uft nativ auf Windows, Linux, FreeBSD
   und Mac OS X. Weitere Informationen zu LibreOffice ko:nnen auf der
   LibreOffice Webseite abgerufen werden.

   Um LibreOffice als Paket zu installieren, geben Sie folgenden
   Befehl ein:

 # pkg_add -r libreoffice

     Anmerkung: Dies sollte funktionieren, wenn Sie eine
     -RELEASE-Version von FreeBSD einsetzen.

   Sobald das Paket installiert ist, geben Sie das folgende Kommando
   ein, um LibreOffice zu starten:

 % libreoffice

     Anmerkung: Wa:hrend des ersten Starts werden Sie ein paar Fragen
     gestellt bekommen und es wird ein Verzeichnis .libreoffice in
     Ihrem Heimatverzeichnis erstellt.

   Wenn die LibreOffice-Pakete nicht verfu:gbar sind, haben Sie immer
   noch die Mo:glichkeit, den Port zu verwenden. Jedoch mu:ssen Sie
   bedenken, dass dies eine Menge Speicherplatz beno:tigt und viel
   Zeit in Anspruch nimmt, bis der Port fertig gebaut ist.

 # cd /usr/ports/editors/libreoffice
 # make install clean

     Anmerkung: Wenn Sie eine Version in Ihrer Sprache bauen
     mo:chten, ersetzen Sie das vorhergehende Kommando mit dem
     folgenden:

 # make LOCALIZED_LANG=ihre_Sprache install clean

     Sie mu:ssen ihre_Sprache mit dem richtigen ISO-Code fu:r ihre
     Sprache ersetzen. Eine Liste von unterstu:tzten Sprachcodes sind
     im Makefile des Ports als pre-fetch-Target verfu:gbar.

   Sobald dies abgeschlossen ist, kann LibreOffice mit dem folgenden
   Befehl gestartet werden:

 % libreoffice

     --------------------------------------------------------------

7.4. Anzeigen von Dokumenten

   Einige neuere Dokumentformate, die sich aktuell grosser
   Beliebtheit erfreuen, ko:nnen Sie sich mit den im Basissystem
   enthaltenen Programmen und Werkzeugen nicht ansehen. Dieser
   Abschnitt behandelt Programme, mit denen Sie sich Dokumente in
   unterschiedlichsten Formaten ansehen ko:nnen.

   Die nachstehenden Anwendungen werden behandelt:

     Anwendung    Ressourcenbedarf Installationsaufwand    wichtige     
                                      aus den Ports     Abha:ngigkeiten 
   Acrobat Reader niedrig          niedrig              Linux Binary    
                                                        Compatibility   
   gv             niedrig          niedrig              Xaw3d           
   Xpdf           niedrig          niedrig              FreeType        
   GQview         niedrig          niedrig              Gtk+ oder GNOME 

     --------------------------------------------------------------

  7.4.1. Acrobat Reader(R)

   Viele Dokumente werden heute im "Portable Document Format" (PDF)
   zur Verfu:gung gestellt. PDF-Dokumente schauen Sie sich am Besten
   mit dem Programm Acrobat Reader an, das von Adobe fu:r Linux
   freigegeben wurde. Da Linux-Programme unter FreeBSD laufen, steht
   Ihnen das Programm auch hier zur Verfu:gung.

   Um Acrobat Reader 8 u:ber die Ports-Sammlung zu installieren,
   geben Sie Folgendes ein:

 # cd /usr/ports/print/acroread8
 # make install clean

   Aufgrund der Lizenzbedinungen ist eine Paketversion leider nicht
   verfu:gbar.

     --------------------------------------------------------------

  7.4.2. gv

   gv kann PostScript- und PDF-Dokumente anzeigen. Es stammt von
   ghostview ab, besitzt aber wegen der Xaw3d-Bibliothek eine
   scho:nere Benutzeroberfla:che. In gv ko:nnen Sie viele Operationen
   durchfu:hren: Sie ko:nnen die Ausrichtung und die Papiergro:sse
   eines Dokuments a:ndern, das Dokument skalieren oder die
   Kantengla:ttung (Anti-Aliasing) aktivieren. Fast jede Operation
   kann sowohl mit der Tastatur als auch mit der Maus durchgefu:hrt
   werden.

   Installieren Sie das gv-Paket wie folgt:

 # pkg_add -r gv

   Benutzen Sie die Ports-Sammlung, wenn das Paket nicht zur
   Verfu:gung steht:

 # cd /usr/ports/print/gv
 # make install clean

     --------------------------------------------------------------

  7.4.3. Xpdf

   Ein schlankes und effizientes Programm zum Betrachten von
   PDF-Dateien ist Xpdf. Es beno:tigt wenige Ressourcen und ist sehr
   stabil. Da das Programm die Standard X-Zeichensa:tze benutzt, ist
   es nicht auf Motif oder ein anderes X-Toolkit angewiesen.

   Das Xpdf-Paket ko:nnen Sie mit dem folgenden Kommando
   installieren:

 # pkg_add -r xpdf

   Wenn das Paket nicht verfu:gbar ist, oder Sie lieber die
   Ports-Sammlung benutzen mo:chten, gehen Sie wie folgt vor:

 # cd /usr/ports/graphics/xpdf
 # make install clean

   Wenn Sie nach Abschluss der Installation Xpdf starten, o:ffnen Sie
   das Menu: mit der rechten Maustaste.

     --------------------------------------------------------------

  7.4.4. GQview

   Mit GQview lassen sich Bilder verwalten. Unter anderem ko:nnen Sie
   sich Bilder (auch auf dem ganzen Bildschirm) anschauen, ein
   externes Werkzeug aufrufen und eine Vorschau (thumbnail) erzeugen.
   Weiterhin ko:nnen Sie automatisch ablaufende Pra:sentationen
   erstellen und grundlegende Dateioperationen durchfu:hren,
   Bildersammlungen verwalten und doppelte Bilder aufspu:ren. GQview
   ist internationalisiert, das heisst es beru:cksichtigt die
   Spracheinstellungen des Systems.

   Wenn Sie das GQview-Paket installieren wollen, geben Sie das
   folgende Kommando ein:

 # pkg_add -r gqview

   Ist das Paket nicht erha:ltlich, oder wenn Sie die Ports-Sammlung
   bevorzugen, setzen Sie die folgenden Kommandos ab:

 # cd /usr/ports/graphics/gqview
 # make install clean

     --------------------------------------------------------------

7.5. Finanzsoftware

   Wenn Sie, warum auch immer, Ihre Finanzen mit einem FreeBSD
   Arbeitsplatz verwalten wollen, stehen Ihnen verschiedene
   Anwendungen zur Verfu:gung. Einige von ihnen unterstu:tzen
   verbreitete Formate, darunter Dateiformate, die von Quicken(R)
   oder Excel verwendet werden.

   Dieser Abschnitt behandelt die folgenden Anwendungen:

   Anwendung Ressourcenbedarf  Installationsaufwand      wichtige     
                                   aus den Ports      Abha:ngigkeiten 
   GnuCash   niedrig          hoch                    GNOME           
   Gnumeric  niedrig          hoch                    GNOME           
   Abacus    niedrig          niedrig                 Tcl/Tk          
   KMyMoney  niedrig          hoch                    KDE             

     --------------------------------------------------------------

  7.5.1. GnuCash

   GnuCash ist Teil des GNOME-Projekts, dessen Ziel es ist, leicht zu
   bedienende und doch leistungsfa:hige Anwendungen zu erstellen. Mit
   GnuCash ko:nnen Sie Ihre Einnahmen und Ausgaben, Ihre Bankkonten
   und Wertpapiere verwalten. Das Programm ist leicht zu bedienen und
   genu:gt dennoch hohen Anspru:chen.

   GnuCash stellt ein Register, a:hnlich dem in einem Scheckheft und
   ein hierarchisches System von Konten zur Verfu:gung. Eine
   Transaktion kann in einzelne Teile aufgespaltet werden. GnuCash
   kann Quicken-Dateien (QIF) importieren und einbinden. Weiterhin
   unterstu:tzt das Programm die meisten internationalen Formate fu:r
   Zeitangaben und Wa:hrungen. Die Bedienung des Programms kann durch
   zahlreiche Tastenkombinationen und dem automatischen
   Vervollsta:ndigen von Eingaben beschleunigt werden.

   Das GnuCash-Paket installieren Sie wie folgt:

 # pkg_add -r gnucash

   Wenn das Paket nicht zur Verfu:gung steht, benutzen Sie die
   Ports-Sammlung:

 # cd /usr/ports/finance/gnucash
 # make install clean

     --------------------------------------------------------------

  7.5.2. Gnumeric

   Gnumeric ist eine Tabellenkalkulation, die Teil der GNOME
   Benutzeroberfla:che ist. Das Programm kann Eingaben anhand des
   Zellenformats oder einer Folge von Eingaben vervollsta:ndigen.
   Dateien verbreiteter Formate, wie die von Excel, Lotus 1-2-3 oder
   Quattro Pro lassen sich importieren. Grafiken erstellt Gnumeric
   mit dem Programm math/guppi. Gnumeric besitzt viele eingebaute
   Funktionen und Zellenformate (zum Beispiel die u:blich
   verwendeten, wie Zahl, Wa:hrung, Datum oder Zeit).

   Installieren Sie das Gnumeric-Paket mit dem folgenden Kommando:

 # pkg_add -r gnumeric

   Wenn das Paket nicht zur Verfu:gung steht, benutzen Sie die
   Ports-Sammlung:

 # cd /usr/ports/math/gnumeric
 # make install clean

     --------------------------------------------------------------

  7.5.3. Abacus

   Abacus ist eine kleine und leicht zu bedienende
   Tabellenkalkulation. Die vordefinierten Funktionen stammen aus
   verschiedenen Bereichen wie der Statistik, der Wirtschaft und der
   Mathematik. Das Programm kann Dateien im Excel Dateiformat
   importieren und exportieren sowie Ausgaben in PostScript erzeugen.

   Installieren Sie das Abacus-Paket mit dem folgenden Kommando:

 # pkg_add -r abacus

   Wenn das Paket nicht zur Verfu:gung steht, benutzen Sie die
   Ports-Sammlung:

 # cd /usr/ports/deskutils/abacus
 # make install clean

     --------------------------------------------------------------

  7.5.4. KMyMoney

   Bei KMyMoney handelt es sich ein Programm zur Verwaltung der
   perso:nlichen Finanzen, das unter KDE entwickelt wird. KMyMoney
   hat das Ziel, alle wichtigen Funktionen zu bieten, die auch von
   kommerziellen Programmen zur Verwaltung der perso:nlichen Finanzen
   unterstu:tzt werden. Weiters za:hlen einfache Benutzung sowie
   korrekte doppelte Buchfu:hrung zu den herausragenden Fa:higkeiten
   dieses Programms. KMyMoney unterstu:tzt den Import von
   Datendateien im Format Quicken Interchange Format (QIF), kann
   Investionen verfolgen, unterstu:tzt verschiedene Wa:hrungen und
   bietet umfangreiche Reportmo:glichkeiten. OFX-Import wird u:ber
   ein separates Plugin realisiert.

   Um KMyMoney u:ber das FreeBSD-Paketsystem zu installieren, geben
   Sie Folgendes ein:

 # pkg_add -r kmymoney2

   Sollte das Paket nicht verfu:gbar sein, ko:nnen Sie das Programm
   auch u:ber die Ports-Sammlung installieren:

 # cd /usr/ports/finance/kmymoney2
 # make install clean

     --------------------------------------------------------------

7.6. Zusammenfassung

   FreeBSD wird von Internet Service Providern wegen seiner
   Schnelligkeit und Stabilita:t eingesetzt, es ist aber auch zum
   Einrichten eines Arbeitsplatzes geeignet. Mit tausenden
   Anwendungen, die als Pakete oder Ports zur Verfu:gung stehen,
   ko:nnen Sie sich einen Arbeitsplatz nach Ihren Wu:nschen
   einrichten.

   Die folgende Aufstellung fasst die in diesem Kapitel besprochenen
   Anwendungen zusammen:

        Anwendung         Paket-Name              Port-Name           
   Opera               opera             www/opera                    
   Firefox             firefox           www/firefox                  
   Chromium            chromium          www/chromium                 
   KOffice             koffice-kde4      editors/koffice-kde4         
   AbiWord             abiword           editors/abiword              
   The GIMP            gimp              graphics/gimp                
   OpenOffice.org      openoffice        editors/openoffice.org-3     
   LibreOffice         libreoffice       editors/libreoffice          
   Acrobat Reader      acroread          print/acroread8              
   gv                  gv                print/gv                     
   Xpdf                xpdf              graphics/xpdf                
   GQview              gqview            graphics/gqview              
   GnuCash             gnucash           finance/gnucash              
   Gnumeric            gnumeric          math/gnumeric                
   Abacus              abacus            deskutils/abacus             
   KMyMoney            kmymoney2         finance/kmymoney2            

     --------------------------------------------------------------

                         Kapitel 8. Multimedia

   U:berarbeitet von Ross Lippert.

8.1. U:bersicht

   FreeBSD unterstu:tzt viele unterschiedliche Soundkarten, die Ihnen
   den Genuss von Highfidelity-Kla:ngen auf Ihrem Computer
   ermo:glichen. Dazu geho:rt unter anderem die Mo:glichkeit,
   Tonquellen in den Formaten MPEG Audio Layer 3 (MP3), WAV, Ogg
   Vorbis und vielen weiteren Formaten aufzunehmen und wiederzugeben.
   Daru:ber hinaus entha:lt die FreeBSD Ports-Sammlung Anwendungen,
   die Ihnen das Bearbeiten Ihrer aufgenommenen Tonspuren, das
   Hinzufu:gen von Klangeffekten und die Kontrolle der
   angeschlossenen MIDI-Gera:te erlauben.

   Wenn Sie etwas Zeit investieren, ko:nnen Sie mit FreeBSD auch
   Videos und DVDs abspielen. Im Vergleich zu Audio-Anwendungen gibt
   es weniger Anwendungen zum Kodieren, Konvertieren und Abspielen
   von Video-Formaten. Es gab, als dieses Kapitel geschrieben wurde,
   keine Anwendung, die einzelne Video-Formate a:hnlich wie audio/sox
   konvertieren konnte. Allerdings a:ndert sich die Software in
   diesem Umfeld sehr schnell.

   In diesem Kapitel wird das Einrichten von Soundkarten besprochen.
   Kapitel 6 beschreibt die Installation und Konfiguration von X11
   und das Einrichten von Videokarten. Hinweise zur Verbesserung der
   Wiedergabe finden sich in diesem Kapitel.

   Dieses Kapitel behandelt die folgenden Punkte:

     * Die Konfiguration des Systems damit Ihre Soundkarte erkannt
       wird.

     * Wie Sie die Funktion einer Soundkarte testen ko:nnen.

     * Wie Sie Fehler in den Einstellungen von Soundkarten finden.

     * Wie Sie MP3s und andere Audio-Formate wiedergeben und
       erzeugen.

     * Die Video-Unterstu:tzung des X-Servers.

     * Gute Anwendungen, die Videos abspielen und kodieren.

     * Die Wiedergabe von DVDs, .mpg- und .avi-Dateien.

     * Wie Sie CDs und DVDs in Dateien rippen.

     * Die Konfiguration von TV-Karten.

     * Das Einrichten von Scannern.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * Wissen, wie Sie einen neuen Kernel konfigurieren und
       installieren (Kapitel 9).

     Warnung: Der Versuch eine Audio-CD mit mount(8) einzuha:ngen
     erzeugt mindestens einen Fehler; schlimmstenfalls kann es zu
     einer Kernel-Panic kommen. Die Medien besitzen eine andere
     Kodierung als normale ISO-Dateisysteme.

     --------------------------------------------------------------

8.2. Soundkarten einrichten

   Von Moses Moore. Aktualisiert von Marc Fonvieille. U:bersetzt von
   Benedikt Ko:hler und Uwe Pierau.

  8.2.1. Den Soundtreiber einrichten

   Zuna:chst sollten Sie in Erfahrung bringen, welches
   Soundkartenmodell Sie besitzen, welchen Chip die Karte benutzt und
   ob es sich um eine PCI- oder ISA-Karte handelt. FreeBSD
   unterstu:tzt eine Reihe von PCI- als auch von ISA-Karten. Die
   Hardware-Notes za:hlen alle unterstu:tzten Karten und deren
   Treiber auf.

   Um Ihre Soundkarte benutzen zu ko:nnen, mu:ssen Sie den richtigen
   Gera:tetreiber laden. Sie haben zwei Mo:glichkeiten, den Treiber
   zu laden: Am einfachsten ist es, das Modul mit kldload(8) zu
   laden. Sie ko:nnen dazu die Kommandozeile verwenden:

 # kldload snd_emu10k1

   Alternativ ko:nnen Sie auch einen Eintrag in der Datei
   /boot/loader.conf erstellen:

 snd_emu10k1_load="YES"

   Beide Beispiele gelten fu:r eine Creative SoundBlaster(R) Live!
   Soundkarte. Weitere ladbare Soundmodule sind in der Datei
   /boot/defaults/loader.conf aufgefu:hrt. Wenn Sie nicht sicher
   sind, welchen Gera:tetreiber Sie laden mu:ssen, laden Sie den
   Treiber snd_driver:

 # kldload snd_driver

   Der Treiber snd_driver ist ein Meta-Treiber, der alle
   gebra:uchlichen Treiber la:dt und die Suche nach dem richtigen
   Treiber vereinfacht. Weiterhin ko:nnen alle Treiber u:ber
   /boot/loader.conf geladen werden.

   Wollen Sie feststellen, welcher Treiber fu:r Ihre Soundkarte vom
   Metatreiber snd_driver geladen wurde, sollten Sie sich mit cat
   /dev/sndstat den Inhalt der Datei /dev/sndstat ansehen.

   Alternativ ko:nnen Sie die Unterstu:tzung fu:r die Soundkarte
   direkt in den Kernel einkompilieren. Diese Methode im na:chsten
   Abschnitt beschrieben. Weiteres u:ber den Bau eines Kernels
   erfahren Sie im Kapitel Kernelkonfiguration.

     --------------------------------------------------------------

    8.2.1.1. Soundkarten in der Kernelkonfiguration einrichten

   Zuerst mu:ssen Sie sound(4), den Treiber fu:r das Audio-Framework
   in die Kernelkonfiguration aufnehmen. Fu:gen Sie dazu die folgende
   Zeile in die Kernelkonfigurationsdatei ein:

 device sound

   Als Na:chstes mu:ssen Sie den richtigen Treiber in die
   Kernelkonfiguration einfu:gen. Den Treiber entnehmen Sie bitte der
   Liste der unterstu:tzen Soundkarten aus den Hardware-Notes. Zum
   Beispiel wird die Creative SoundBlaster Live! Soundkarte vom
   Treiber snd_emu10k1(4) unterstu:tzt. Fu:r diese Karte verwenden
   Sie die nachstehende Zeile:

 device snd_emu10k1

   Die richtige Syntax fu:r die Zeile lesen Sie bitte in der
   Hilfeseite des entsprechenden Treibers nach. Die korrekte Syntax
   fu:r alle unterstu:tzten Treiber finden Sie ausserdem in der Datei
   /usr/src/sys/conf/NOTES.

   Nicht PnP-fa:hige ISA-Soundkarten beno:tigen (wie alle anderen
   ISA-Karten auch) weiterhin Angaben zu den Karteneinstellungen (wie
   IRQ und I/O-Port). Die Karteneinstellungen tragen Sie in die Datei
   /boot/device.hints ein. Wa:hrend des Systemstarts liest der
   loader(8) diese Datei und reicht die Einstellungen an den Kernel
   weiter. Fu:r eine alte Creative SoundBlaster 16 ISA-Karte, die
   sowohl den snd_sbc(4)- als auch den snd_sb16-Treiber beno:tigt,
   fu:gen Sie folgende Zeilen in die Kernelkonfigurationsdatei ein:

 device snd_sbc
 device snd_sb16

   In die Datei /boot/device.hints tragen Sie fu:r diese Karte
   zusa:tzlich die folgenden Einstellungen ein:

 hint.sbc.0.at="isa"
 hint.sbc.0.port="0x220"
 hint.sbc.0.irq="5"
 hint.sbc.0.drq="1"
 hint.sbc.0.flags="0x15"

   In diesem Beispiel benutzt die Karte den I/O-Port 0x220 und den
   IRQ 5.

   Die Manualpage sound(4) sowie des jeweiligen Treibers beschreiben
   die Syntax der Eintra:ge in der Datei /boot/device.hints.

   Das Beispiel verwendet die vorgegebenen Werte. Falls Ihre
   Karteneinstellungen andere Werte vorgeben, mu:ssen Sie die Werte
   in der Kernelkonfiguration anpassen. Weitere Informationen zu
   dieser Soundkarte entnehmen Sie bitte der Manualpage snd_sbc(4).

     --------------------------------------------------------------

  8.2.2. Die Soundkarte testen

   Nachdem Sie den neuen Kernel gestartet oder das erforderliche
   Modul geladen haben, sollte Ihre Soundkarte in den Systemmeldungen
   (dmesg(8)) auftauchen. Zum Beispiel:

 pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
 pcm0: [GIANT-LOCKED]
 pcm0: <Cirrus Logic CS4205 AC97 Codec>

   Den Status der Karte ko:nnen Sie u:ber die Datei /dev/sndstat
   pru:fen:

 # cat /dev/sndstat
 FreeBSD Audio Driver (newpcm)
 Installed devices:
 pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz
 16384
 kld snd_ich (1p/2r/0v channels duplex default)

   Die Ausgaben ko:nnen auf Ihrem System anders aussehen. Wenn das
   Gera:t pcm nicht erscheint, pru:fen Sie bitte Ihre Konfiguration.
   Stellen sie sicher, dass Sie den richtigen Treiber gewa:hlt haben.
   Abschnitt 8.2.2.1 beschreibt ha:ufig auftretende Probleme.

   Wenn alles glatt lief, haben Sie nun eine funktionierende
   Soundkarte. Wenn ein CD-ROM oder DVD-ROM-Laufwerk an Ihrer
   Soundkarte angeschlossen ist, ko:nnen Sie jetzt mit cdcontrol(1)
   eine CD abspielen:

 % cdcontrol -f /dev/acd0 play 1

   Es gibt viele Anwendungen, wie audio/workman, die eine bessere
   Benutzerschnittstelle besitzen. Um sich MP3-Audiodateien
   anzuho:ren, ko:nnen Sie eine Anwendung wie audio/mpg123
   installieren.

   Eine weitere schnelle Mo:glichkeit die Karte zu pru:fen, ist es,
   Daten an das Gera:t /dev/dsp zu senden:

 % cat Datei > /dev/dsp

   Fu:r Datei ko:nnen Sie eine beliebige Datei verwenden. Wenn Sie
   einige Gera:usche ho:ren, funktioniert die Soundkarte.

     Anmerkung: Die Gera:tedateien /dev/dsp* werden automatisch
     erzeugt, wenn sie das erste Mal beno:tigt werden. Werden sie
     nicht verwendet, sind sie hingegen nicht vorhanden und tauchen
     daher auch nicht in der Ausgabe von ls(1) auf.

   Die Einstellungen des Mixers ko:nnen Sie mit dem Kommando mixer(8)
   vera:ndern. Weiteres lesen Sie bitte in der Hilfeseite mixer(8)
   nach.

     --------------------------------------------------------------

    8.2.2.1. Ha:ufige Probleme

            Fehler                           Lo:sung                  
   "sb_dspwr(XX) timed out" Der I/O Port ist nicht korrekt angegeben. 
                            Der IRQ ist falsch angegeben. Stellen Sie 
   "bad irq XX"             sicher, dass der angegebene IRQ mit dem   
                            Sound IRQ u:bereinstimmt.                 
   "xxx: gus pcm not        Es ist nicht genug Speicher verfu:gbar,   
   attached, out of memory" um das Gera:t zu betreiben.               
                            U:berpru:fen Sie mit fstat | grep dsp ob  
   "xxx: can't open         eine andere Anwendung das Gera:t          
   /dev/dsp!"               geo:ffnet hat. Ha:ufige Sto:renfriede     
                            sind esound oder die Sound-Unterstu:tzung 
                            von KDE.                                  

   Ein weiterer Fall ist der, dass moderne Graphikkarten oft auch
   ihre eigenen Soundtreiber mit sich fu:hren, um HDMI oder
   a:hnliches zu verwenden. Diese Audiogera:te werden manchmal vor
   der eigentlichen, separaten Soundkarte aufgefu:hrt und dadurch
   nicht als das Standardgera:t zum Abspielen von To:nen benutzt. Um
   zu pru:fen, ob das bei Ihnen der Fall ist, fu:hren Sie dmesg aus
   und suchen Sie nach der Zeichenfolge pcm. Die Ausgabe sieht in
   etwa so aus wie folgt:

 ...
 hdac0: HDA Driver Revision: 20100226_0142
 hdac1: HDA Driver Revision: 20100226_0142
 hdac0: HDA Codec #0: NVidia (Unknown)
 hdac0: HDA Codec #1: NVidia (Unknown)
 hdac0: HDA Codec #2: NVidia (Unknown)
 hdac0: HDA Codec #3: NVidia (Unknown)
 pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 0 nid 1 on hdac0
 pcm1: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 1 nid 1 on hdac0
 pcm2: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 2 nid 1 on hdac0
 pcm3: <HDA NVidia (Unknown) PCM #0 DisplayPort> at cad 3 nid 1 on hdac0
 hdac1: HDA Codec #2: Realtek ALC889
 pcm4: <HDA Realtek ALC889 PCM #0 Analog> at cad 2 nid 1 on hdac1
 pcm5: <HDA Realtek ALC889 PCM #1 Analog> at cad 2 nid 1 on hdac1
 pcm6: <HDA Realtek ALC889 PCM #2 Digital> at cad 2 nid 1 on hdac1
 pcm7: <HDA Realtek ALC889 PCM #3 Digital> at cad 2 nid 1 on hdac1
 ...

   Hier wurde die Graphikkarte (NVidia) vor der Soundkarte (Realtek
   ALC889) aufgefu:hrt. Um die Soundkarte als Standardabspielgera:t
   einzusetzen, a:ndern Sie hw.snd.default_unit auf die Einheit,
   welche fu:r das Abspielen benutzt werden soll, wie folgt:

 # sysctl hw.snd.default_unit=n

   Hier repra:sentiert n die Nummer der Soundkarte, die verwendet
   werden soll, in diesem Beispiel also 4. Sie ko:nnen diese
   A:nderung dauerhaft machen, indem Sie die folgende Zeile zu der
   /etc/sysctl.conf Datei hinzufu:gen:

 hw.snd.default_unit=4

     --------------------------------------------------------------

  8.2.3. Mehrere Tonquellen abspielen

   Beigetragen von Munish Chopra.

   Oft sollen mehrere Tonquellen gleichzeitig abgespielt werden, auch
   wenn beispielsweise esound oder artsd das Audiogera:t nicht mit
   einer anderen Anwendung teilen ko:nnen.

   Unter FreeBSD ko:nnen mit sysctl(8) virtuelle Tonkana:le
   eingerichtet werden. Virtuelle Kana:le mischen die Tonquellen im
   Kernel (so ko:nnen mehr Kana:le als von der Hardware unterstu:tzt
   benutzt werden).

   Die Anzahl der virtuellen Kana:le ko:nnen Sie als Benutzer root
   wie folgt einstellen:

 # sysctl dev.pcm.0.play.vchans=4
 # sysctl dev.pcm.0.rec.vchans=4
 # sysctl hw.snd.maxautovchans=4

   Im Beispiel werden vier virtuelle Kana:le eingerichtet, eine im
   Normalfall ausreichende Anzahl. Sowohl dev.pcm.0.play.vchans=4 und
   dev.pcm.0.rec.vchans=4 sind die Anzahl der virtuellen Kana:le des
   Gera:ts pcm0, die fu:rs Abspielen und Aufnehmen verwendet werden
   und sie ko:nnen konfiguriert werden, sobald das Gera:t existiert.
   hw.snd.maxautovchans ist die Anzahl der virtuellen Kana:le, die
   einem Gera:t zugewiesen werden, wenn es durch kldload(8)
   eingerichtet wird. Da das Modul pcm unabha:ngig von den
   Hardware-Treibern geladen werden kann, gibt hw.snd.maxautovchans
   die Anzahl der virtuellen Kana:le an, die spa:ter eingerichtete
   Gera:te erhalten. Lesen Sie dazu pcm(4) fu:r weitere
   Informationen.

     Anmerkung: Sie ko:nnen die Anzahl der virtuellen Kana:le nur
     a:ndern, wenn das Gera:t nicht genutzt wird. Schliessen Sie
     daher zuerst alle Programme (etwa Musikabspielprogramme oder
     Sound-Daemonen), die auf dieses Gera:t zugreifen.

   Die korrekte pcm-Gera:tedatei wird automatisch zugeteilt, wenn ein
   Programm das Gera:t /dev/dsp0 anfordert.

     --------------------------------------------------------------

  8.2.4. Den Mixer einstellen

   Beigetragen von Josef El-Rayes.

   Die Voreinstellungen des Mixers sind im Treiber pcm(4) fest
   kodiert. Es gibt zwar viele Anwendungen und Dienste, die den Mixer
   einstellen ko:nnen und die eingestellten Werte bei jedem Start
   wieder setzen, am einfachsten ist es allerdings, die Standardwerte
   fu:r den Mixer direkt im Treiber einzustellen. Der Mixer kann in
   der Datei /boot/device.hints eingestellt werden:

 hint.pcm.0.vol="50"

   Die Zeile setzt die Lautsta:rke des Mixers beim Laden des Moduls
   pcm(4) auf den Wert 50.

     --------------------------------------------------------------

8.3. MP3-Audio

   Ein Beitrag von Chern Lee. U:bersetzt von Benedikt Ko:hler.

   MP3 (MPEG Layer 3 Audio) ermo:glicht eine Klangwiedergabe in
   CD-a:hnlicher Qualita:t, was Sie sich auf Ihrem FreeBSD-Rechner
   nicht entgehen lassen sollten.

     --------------------------------------------------------------

  8.3.1. MP3-Player

   XMMS (X Multimedia System) ist bei weitem der beliebteste
   MP3-Player fu:r X11. WinAmp-Skins ko:nnen auch mit XMMS genutzt
   werden, da die Benutzerschnittstelle fast identisch mit der von
   Nullsofts WinAmp ist. Daneben unterstu:tzt XMMS auch eigene
   Plugins.

   XMMS kann als multimedia/xmms Port oder Package installiert
   werden.

   Die Benutzerschnittstelle von XMMS ist leicht zu erlernen und
   entha:lt eine Playlist, einen graphischen Equalizer und vieles
   mehr. Diejenigen, die mit WinAmp vertraut sind, werden XMMS sehr
   leicht zu benutzen finden.

   Der Port audio/mpg123 ist ein alternativer,
   kommandozeilenorientierter MP3-Player.

   mpg123 kann ausgefu:hrt werden, indem man das zu benutzende Sound
   Device und die abzuspielende MP3-Datei auf der Kommandozeile
   angibt. Wenn ihr Sound Device beispielsweise /dev/dsp1.0 lautet
   und Sie die MP3-Datei Foobar-GreatestHits.mp3 ho:ren wollen, geben
   Sie Folgendes ein:

 # mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
 Version 0.59r (1999/Jun/15).  Written and copyrights by Michael Hipp.
 Uses code from various people.  See 'README' for more!
 THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!





 Playing MPEG stream from Foobar-GreatestHits.mp3 ...
 MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

     --------------------------------------------------------------

  8.3.2. CD-Audio Tracks rippen

   Bevor man eine ganze CD oder einen CD-Track in das MP3-Format
   umwandeln kann, mu:ssen die Audiodaten von der CD auf die
   Festplatte gerippt werden. Dabei werden die CDDA (CD Digital
   Audio) Rohdaten in WAV-Dateien kopiert.

   Die Anwendung cdda2wav die im sysutils/cdrtools Paket enthalten
   ist, kann zum Rippen der Audiodaten und anderen Informationen von
   CDs genutzt werden.

   Wenn die Audio CD in dem Laufwerk liegt, ko:nnen Sie mit folgendem
   Befehl (als root) eine ganze CD in einzelne WAV-Dateien (eine
   Datei fu:r jeden Track) rippen:

 # cdda2wav -D 0,1,0 -B

   cdda2wav unterstu:tzt auch ATAPI (IDE) CD-ROM-Laufwerke. Um von
   einem IDE-Laufwerk zu rippen, u:bergeben Sie auf der Kommandozeile
   statt der SCSI-IDs den Gera:tenamen. Das folgende Kommando rippt
   den 7. Track:

 # cdda2wav -D /dev/acd0 -t 7

   Der Schalter -D 0,1,0 bezieht sich auf das SCSI Device 0,1,0, das
   sich aus dem Ergebnis des Befehls cdrecord -scanbus ergibt.

   Um einzelne Tracks zu rippen, benutzen Sie den -t Schalter wie
   folgt:

 # cdda2wav -D 0,1,0 -t 7

   Dieses Beispiel rippt den siebten Track der Audio CD-ROM. Um
   mehrere Tracks zu rippen, zum Beispiel die Tracks eins bis sieben,
   ko:nnen Sie wie folgt einen Bereich angeben:

 # cdda2wav -D 0,1,0 -t 1+7

   Mit dd(1) ko:nnen Sie ebenfalls Audio-Stu:cke von ATAPI-Laufwerken
   kopieren. Dies wird in Abschnitt 19.6.5 erla:utert.

     --------------------------------------------------------------

  8.3.3. MP3-Dateien kodieren

   Gegenwa:rtig ist Lame der meistbenutzte MP3-Encoder. Lame finden
   Sie unter audio/lame im Ports-Verzeichnis.

   Benutzen Sie die WAV-Dateien, die sie von CD gerippt haben, und
   wandeln sie mit dem folgenden Befehl die Datei audio01.wav in
   audio01.mp3 um:

 # lame -h -b 128 \
 --tt "Foo Liedtitel" \
 --ta "FooBar Ku:nstler" \
 --tl "FooBar Album" \
 --ty "2001" \
 --tc "Geripped und kodiert von Foo" \
 --tg "Musikrichtung" \
 audio01.wav audio01.mp3

   128 kbits ist die gewo:hnliche MP3-Bitrate. Viele bevorzugen mit
   160 oder 192 kbits eine ho:here Qualita:t. Je ho:her die Bitrate
   ist, desto mehr Speicherplatz beno:tigt die resultierende
   MP3-Datei, allerdings wird die Qualita:t dadurch auch besser. Der
   Schalter -h verwendet den "higher quality but a little slower"
   (ho:here Qualita:t, aber etwas langsamer) Modus. Die Schalter, die
   mit --t beginnen, sind ID3-Tags, die in der Regel Informationen
   u:ber das Lied enthalten und in die MP3-Datei eingebettet sind.
   Weitere Optionen ko:nnen in der Manualpage von Lame nachgelesen
   werden.

     --------------------------------------------------------------

  8.3.4. MP3-Dateien dekodieren

   Um aus MP3-Dateien eine Audio CD zu erstellen, mu:ssen diese in
   ein nicht komprimiertes WAV-Format umgewandelt werden. Sowohl XMMS
   als auch mpg123 unterstu:tzen die Ausgabe der MP3-Dateien in
   unkomprimierte Dateiformate.

   Dekodieren mit XMMS:

    1. Starten Sie XMMS.

    2. Klicken Sie mit der rechten Maustaste, um das XMMS-Menu zu
       o:ffnen.

    3. Wa:hlen Sie Preference im Untermenu: Options.

    4. A:ndern Sie das Output-Plugin in "Disk Writer Plugin".

    5. Dru:cken Sie Configure.

    6. Geben Sie ein Verzeichnis ein (oder wa:hlen Sie browse), in
       das Sie die unkomprimierte Datei schreiben wollen.

    7. Laden Sie die MP3-Datei wie gewohnt in XMMS mit einer
       Lautsta:rke von 100% und einem abgeschalteten EQ.

    8. Dru:cken Sie Play und es wird so aussehen, als spiele XMMS die
       MP3-Datei ab, aber keine Musik ist zu ho:ren. Der Player
       u:berspielt die MP3-Datei in eine Datei.

    9. Vergessen Sie nicht, das Output-Plugin wieder in den
       Ausgangszustand zuru:ckzusetzen um wieder MP3-Dateien anho:ren
       zu ko:nnen.

   Mit mpg123 nach stdout schreiben:

    1. Geben Sie mpg123 -s audio01.mp3 > audio01.pcm ein.

   XMMS schreibt die Datei im WAV-Format aus wa:hrend mpg123 die
   MP3-Datei in rohe PCM-Audiodaten umwandelt. cdrecord kann mit
   beiden Formaten Audio-CDs erstellen, burncd(8) kann nur rohe
   PCM-Audiodaten verarbeiten. Der Dateikopf von WAV-Dateien erzeugt
   am Anfang des Stu:cks ein Knacken. Sie ko:nnen den Dateikopf mit
   dem Werkzeug SoX, das sich als Paket oder aus dem Port audio/sox
   installieren la:sst, entfernen:

 % sox -t wav -r 44100 -s -w -c 2 track.wav track.raw

   Lesen Sie Abschnitt 19.6 in diesem Handbuch, um mehr Informationen
   zur Benutzung von CD-Brennern mit FreeBSD zu erhalten.

     --------------------------------------------------------------

8.4. Videos wiedergeben

   Beigetragen von Ross Lippert.

   Die Wiedergabe von Videos ist ein neues, sich schnell
   entwickelndes, Anwendungsgebiet. Seien Sie geduldig, es wird nicht
   alles so glatt laufen, wie bei den Audio-Anwendungen.

   Bevor Sie beginnen, sollten Sie das Modell Ihrer Videokarte und
   den benutzten Chip kennen. Obwohl Xorg viele Videokarten
   unterstu:tzt, ko:nnen nur einige Karten Videos schnell genug
   wiedergeben. Eine Liste der Erweiterungen, die der X-Server fu:r
   eine Videokarte unterstu:tzt, erhalten Sie unter laufendem X11 mit
   dem Befehl xdpyinfo(1).

   Halten Sie eine kurze MPEG-Datei bereit, mit der Sie
   Wiedergabeprogramme und deren Optionen testen ko:nnen. Da einige
   DVD-Spieler in der Voreinstellung das DVD-Gera:t mit /dev/dvd
   ansprechen oder diesen Namen fest einkodiert haben, wollen Sie
   vielleicht symbolische Links auf die richtigen Gera:te anlegen:

 # ln -sf /dev/acd0 /dev/dvd
 # ln -sf /dev/acd0 /dev/rdvd

   Wegen devfs(5) gehen gesondert angelegte Links wie diese bei einem
   Neustart des Systems verloren. Damit die symbolischen Links
   automatisch beim Neustart des Systems angelegt werden, fu:gen Sie
   die folgenden Zeilen in /etc/devfs.conf ein:

 link acd0 dvd
 link acd0 rdvd

   Zum Entschlu:sseln von DVDs mu:ssen bestimmte DVD-ROM-Funktionen
   aufgerufen werden und schreibender Zugriff auf das DVD-Gera:t
   erlaubt sein.

   X11 benutzt Shared-Memory und Sie sollten die nachstehenden
   sysctl(8)-Variablen auf die gezeigten Werte erho:hen:

 kern.ipc.shmmax=67108864
 kern.ipc.shmall=32768

     --------------------------------------------------------------

  8.4.1. Video-Schnittstellen

   Es gibt einige Mo:glichkeiten, Videos unter X11 abzuspielen.
   Welche Mo:glichkeit funktioniert, ha:ngt stark von der verwendeten
   Hardware ab. Ebenso ha:ngt die erzielte Qualita:t von der Hardware
   ab. Die Videowiedergabe unter X11 ist ein aktuelles Thema, sodass
   jede neue Version von Xorg wahrscheinlich erhebliche
   Verbesserungen entha:lt.

   Gebra:uchliche Video-Schnittstellen sind:

    1. X11: normale X11-Ausgabe u:ber Shared-Memory.

    2. XVideo: Eine Erweiterung der X11-Schnittstelle, die Videos in
       jedem X11-Drawable anzeigen kann.

    3. SDL: Simple Directmedia Layer.

    4. DGA: Direct Graphics Access.

    5. SVGAlib: Eine Schnittstelle zur Grafikausgabe auf der Konsole.

     --------------------------------------------------------------

    8.4.1.1. XVideo

   Die Erweiterung XVideo (auch Xvideo, Xv oder xv) von Xorg erlaubt
   die beschleunigte Wiedergabe von Videos in jedem Drawable. Diese
   Erweiterung liefert auch auf weniger leistungsfa:higen Systemen
   (beispielsweise einem PIII 400 MHz Laptop) eine gute Wiedergabe.

   Ob die Erweiterung la:uft, entnehmen Sie der Ausgabe von xvinfo:

 % xvinfo

   XVideo wird untertsu:tzt, wenn die Ausgabe wie folgt aussieht:

 X-Video Extension version 2.2
 screen #0
   Adaptor #0: "Savage Streams Engine"
     number of ports: 1
     port base: 43
     operations supported: PutImage
     supported visuals:
       depth 16, visualID 0x22
       depth 16, visualID 0x23
     number of attributes: 5
       "XV_COLORKEY" (range 0 to 16777215)
               client settable attribute
               client gettable attribute (current value is 2110)
       "XV_BRIGHTNESS" (range -128 to 127)
               client settable attribute
               client gettable attribute (current value is 0)
       "XV_CONTRAST" (range 0 to 255)
               client settable attribute
               client gettable attribute (current value is 128)
       "XV_SATURATION" (range 0 to 255)
               client settable attribute
               client gettable attribute (current value is 128)
       "XV_HUE" (range -180 to 180)
               client settable attribute
               client gettable attribute (current value is 0)
     maximum XvImage size: 1024 x 1024
     Number of image formats: 7
       id: 0x32595559 (YUY2)
         guid: 59555932-0000-0010-8000-00aa00389b71
         bits per pixel: 16
         number of planes: 1
         type: YUV (packed)
       id: 0x32315659 (YV12)
         guid: 59563132-0000-0010-8000-00aa00389b71
         bits per pixel: 12
         number of planes: 3
         type: YUV (planar)
       id: 0x30323449 (I420)
         guid: 49343230-0000-0010-8000-00aa00389b71
         bits per pixel: 12
         number of planes: 3
         type: YUV (planar)
       id: 0x36315652 (RV16)
         guid: 52563135-0000-0000-0000-000000000000
         bits per pixel: 16
         number of planes: 1
         type: RGB (packed)
         depth: 0
         red, green, blue masks: 0x1f, 0x3e0, 0x7c00
       id: 0x35315652 (RV15)
         guid: 52563136-0000-0000-0000-000000000000
         bits per pixel: 16
         number of planes: 1
         type: RGB (packed)
         depth: 0
         red, green, blue masks: 0x1f, 0x7e0, 0xf800
       id: 0x31313259 (Y211)
         guid: 59323131-0000-0010-8000-00aa00389b71
         bits per pixel: 6
         number of planes: 3
         type: YUV (packed)
       id: 0x0
         guid: 00000000-0000-0000-0000-000000000000
         bits per pixel: 0
         number of planes: 0
         type: RGB (packed)
         depth: 1
         red, green, blue masks: 0x0, 0x0, 0x0

   Einige der aufgefu:hrten Formate (wie YUV2 oder YUV12) existieren
   in machen XVideo-Implementierungen nicht. Dies kann zu Problemen
   mit einigen Spielern fu:hren.

   XVideo wird wahrscheinlich von Ihrer Karte nicht unterstu:tzt,
   wenn die die Ausgabe wie folgt aussieht:

 X-Video Extension version 2.2
 screen #0
 no adaptors present

   Wenn die XVideo-Erweiterung auf Ihrer Karte nicht la:uft, wird es
   nur etwas schwieriger, die Anforderungen fu:r die Wiedergabe von
   Videos zu erfu:llen. Abha:ngig von Ihrer Videokarte und Ihrem
   Prozessor ko:nnen Sie dennoch zufriedenstellende Ergebnisse
   erzielen. Sie sollten vielleicht die weiterfu:hrenden Quellen in
   Abschnitt 8.4.3 zu Rate ziehen, um die Geschwindigkeit Ihres
   Systems zu steigern.

     --------------------------------------------------------------

    8.4.1.2. Simple Directmedia Layer

   Die Simple Directmedia Layer, SDL, ist eine zwischen
   Microsoft Windows, BeOS und UNIX portable Schnittstelle. Mit
   dieser Schnittstelle ko:nnen Anwendungen plattformunabha:ngig und
   effizient Ton und Grafik benutzen. SDL bietet eine hardwarenahe
   Schnittstelle, die manchmal schneller als die X11-Schnittstelle
   sein kann.

   SDL finden Sie in den Ports im Verzeichnis devel/sdl12.

     --------------------------------------------------------------

    8.4.1.3. Direct Graphics Access

   Die X11-Erweiterung Direct Graphics Access (DGA) erlaubt es
   Anwendungen, am X-Server vorbei direkt in den Framebuffer zu
   schreiben. Da die Anwendung und der X-Server auf gemeinsame
   Speicherbereiche zugreifen, mu:ssen die Anwendungen unter dem
   Benutzer root laufen.

   Die DGA-Erweiterung kann mit dga(1) getestet werden. Das Kommando
   dga wechselt, jedes Mal wenn eine Taste gedru:ckt wird, die Farben
   der Anzeige. Sie ko:nnen das Programm mit der Taste q verlassen.

     --------------------------------------------------------------

  8.4.2. Video-Anwendungen

   Dieser Abschnitt behandelt Anwendungen aus der
   FreeBSD-Ports-Sammlung, die Videos abspielen. An der
   Videowiedergabe wird derzeit aktiv gearbeitet, sodass der
   Funktionsumfang der Anwendungen von dem hier beschriebenen
   abweichen kann.

   Viele unter FreeBSD laufende Videoanwendungen wurden unter Linux
   entwickelt und befinden sich noch im Beta-Status. Der Betrieb
   dieser Anwendungen unter FreeBSD sto:sst vielleicht auf einige der
   nachstehenden Probleme:

    1. Eine Anwendung kann eine Datei einer anderen Anwendung nicht
       abspielen.

    2. Eine Anwendung kann eine selbst produzierte Datei nicht
       abspielen.

    3. Wenn dieselbe Anwendung auf unterschiedlichen Maschinen gebaut
       wird, wird ein Video unterschiedlich wiedergegeben.

    4. Ein vergleichsweise einfacher Filter, wie die Skalierung eines
       Bildes, fu:hrt zu deutlichen Artefakten in der Darstellung.

    5. Eine Anwendung stu:rzt ha:ufig ab.

    6. Die Dokumentation wird bei der Installation des Ports nicht
       installiert. Sie befindet sich entweder auf dem Internet oder
       im Verzeichnis work des Ports.

   Viele Anwendungen sind zudem sehr "Linux-lastig". Probleme
   entstehen durch die Implementierung von Standard-Bibliotheken in
   Linux-Distributionen oder dadurch, dass die Anwendung bestimmte
   Linux-Kernelfunktionen voraussetzt. Diese Probleme werden nicht
   immer vom Betreuer eines Ports bemerkt und umgangen. In der Praxis
   entstehen dadurch folgende Probleme:

    1. Eigenschaften des Prozessors werden u:ber /proc/cpuinfo
       ermittelt.

    2. Die falsche Anwendung von Threads fu:hrt dazu, dass sich ein
       Programm aufha:ngt statt sich zu beenden.

    3. Die Anwendung ha:ngt von anderen Anwendungen ab, die sich noch
       nicht in der FreeBSD-Ports-Sammlung befinden.

   Allerdings arbeiten die Anwendungsentwickler bislang mit den
   Betreuern der Ports zusammen, sodass zusa:tzlicher
   Portierungsaufwand minimiert wird.

     --------------------------------------------------------------

    8.4.2.1. MPlayer

   MPlayer ist ein ku:rzlich entstandener und sich stark
   weiterentwickelnder Video-Spieler. Das Hauptaugenmerk des
   MPlayer-Teams liegt auf Geschwindigkeit und Flexibilita:t auf
   Linux und anderen UNIX Systemen. Das Projekt entstand weil der
   Gru:nder des Teams unzufrieden mit der Geschwindigkeit bestehender
   Video-Spieler war. Kritiker behaupten, dass die
   Benutzeroberfla:che der einfachen Gestaltung zum Opfer fiel. Wenn
   Sie sich allerdings erstmal an die Kommandozeilenoptionen und die
   Tastensteuerung gewo:hnt haben, funktioniert die Anwendung sehr
   gut.

     --------------------------------------------------------------

      8.4.2.1.1. MPlayer bauen

   MPlayer finden Sie in der Ports-Sammlung unter multimedia/mplayer.
   Der Bau von MPlayer beru:cksichtigt die vorhandene Harware und
   erzeugt ein Programm, das nicht auf ein anderes System
   u:bertragbar ist. Es ist daher wichtig, dass Sie das Programm aus
   den Ports bauen und nicht das fertige Paket installieren.
   Zusa:tzlich ko:nnen Sie auf der Kommandozeile von make noch einige
   Optionen angeben, die im Makefile beschrieben sind und am die
   Anfang des Baus ausgegeben werden:

 # cd /usr/ports/multimedia/mplayer
 # make
 N - O - T - E

 Take a careful look into the Makefile in order
 to learn how to tune mplayer towards you personal preferences!
 For example,
 make WITH_GTK1
 builds MPlayer with GTK1-GUI support.
 If you want to use the GUI, you can either install
 /usr/ports/multimedia/mplayer-skins
 or download official skin collections from
 http://www.mplayerhq.hu/homepage/dload.html

   Fu:r die meisten Benutzer sind die voreingestellten Option in
   Ordnung. Wenn Sie den XviD-Codec beno:tigen, mu:ssen Sie auf der
   Kommandozeile die Option WITH_XVID angeben. Das DVD-Gera:t ko:nnen
   Sie mit der Option WITH_DVD_DEVICE angeben. Wenn Sie die Option
   nicht angeben, wird /dev/acd0 benutzt.

   Als dieser Abschnitt verfasst wurde, baute der MPlayer-Port die
   HTML-Dokumentation sowie die beiden Programme mplayer und
   mencoder. Mit mencoder ko:nnen Sie Videodateien umwandeln.

   Die HTML-Dokumentation von MPlayer ist sehr lehrreich. Wenn Sie in
   diesem Kapitel Informationen u:ber Video-Hardware oder
   Schnittstellen vermissen, ist die MPlayer-Dokumentation eine
   ausgezeichnete Quelle. Wenn Sie Informationen u:ber die
   Video-Unterstu:tzung unter UNIX beno:tigen, sollten Sie die
   MPlayer-Dokumentation auf jeden Fall lesen.

     --------------------------------------------------------------

      8.4.2.1.2. MPlayer benutzen

   Jeder Benutzer von MPlayer muss in seinem Heimatverzeichnis das
   Verzeichnis .mplayer anlegen. Dieses Verzeichnis ko:nnen Sie wie
   folgt anlegen:

 % cd /usr/ports/multimedia/mplayer
 % make install-user

   Die Kommandozeilenoptionen von mplayer sind in der Hilfeseite
   aufgefu:hrt. Eine genaue Beschreibung befindet sich in der
   HTML-Dokumentation. In diesem Abschnitt wird nur der normale
   Gebrauch von mplayer beschrieben.

   Um eine Datei, wie testfile.avi, unter verschiedenen
   Video-Schnittstellen abzuspielen, benutzen Sie die Option -vo:

 % mplayer -vo xv testfile.avi

 % mplayer -vo sdl testfile.avi

 % mplayer -vo x11 testfile.avi

 # mplayer -vo dga testfile.avi

 # mplayer -vo 'sdl:dga' testfile.avi

   Es lohnt sich, alle Option zu testen. Die erzielte Geschwindigkeit
   ha:ngt von vielen Faktoren ab und variiert betra:chtlich je nach
   eingesetzter Hardware.

   Wenn Sie eine DVD abspielen wollen, ersetzen Sie testfile.avi
   durch -dvd://N Gera:t. N ist die Nummer des Stu:cks, das Sie
   abspielen wollen und Gera:t gibt den Gera:tenamen des DVD-ROMs an.
   Das nachstehende Kommando spielt das dritte Stu:ck von /dev/dvd:

 # mplayer -vo dga -dvd://3 /dev/dvd

     Anmerkung: Das standardma:ssig verwendete DVD-Laufwerk kann beim
     Bau des MPlayer-Ports mit der Option WITH_DVD_DEVICE festgelegt
     werden. Die Voreinstellung verwendet das Gera:t /dev/acd0.
     Genaueres finden Sie im Makefile des Ports.

   Die Tastenkombinationen zum Abbrechen, Anhalten und Weiterfu:hren
   der Wiedergabe entnehmen Sie bitte der Ausgabe von mplayer -h oder
   der Hilfeseite.

   Weitere nu:tzliche Optionen fu:r die Wiedergabe sind -fs -zoom zur
   Wiedergabe im Vollbild-Modus und -framedrop zur Steigerung der
   Geschwindigkeit.

   Damit die Kommandozeile von mplayer kurz bleibt, kann ein Benutzer
   Vorgaben in der Datei .mplayer/config hinterlegen:

 vo=xv
 fs=yes
 zoom=yes

   Schliesslich kann mplayer noch DVD-Stu:cke in .vob-Dateien rippen.
   Das zweite Stu:ck einer DVD wandeln Sie wie folgt in eine Datei
   um:

 # mplayer -dumpstream -dumpfile out.vob -dvd://2 /dev/dvd

   Die Ausgabedatei out.vob wird im MPEG-Format abgespeichert und
   kann mit anderen Werkzeugen aus diesem Abschnitt bearbeitet
   werden.

     --------------------------------------------------------------

      8.4.2.1.3. mencoder

   Sie sollten die HTML-Dokumentation lesen, bevor Sie mencoder
   benutzen. Es gibt zwar eine Hilfeseite, die aber ohne die
   HTML-Dokumentation nur eingeschra:kt nu:tzlich ist. Es gibt viele
   Mo:glichkeiten die Qualita:t zu verbessern, die Bitrate zu
   verringern und Formate zu konvertieren. Einige davon haben
   erhebliche Auswirkungen auf die Geschwindigkeit der Wiedergabe.
   Zum Start finden Sie im Folgenden einige Kommandozeilen. Die erste
   kopiert einfach eine Datei:

 % mencoder input.avi -oac copy -ovc copy -o output.avi

   Falsche Kombinationen von Kommandozeilenparametern ergeben
   eventuell Dateien, die selbst mplayer nicht mehr abspielen kann.
   Wenn Sie in eine Datei rippen, sollten Sie daher auf jeden Fall
   die Option -dumpfile von mplayer verwenden.

   Die nachstehende Kommandozeile wandelt die Datei input.avi nach
   MPEG4 mit MPEG3 fu:r den Ton um (hierfu:r wird der Ports
   audio/lame beno:tigt):

 % mencoder input.avi -oac mp3lame -lameopts br=192 \
          -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi

   Die Ausgabedatei la:sst sowohl mit mplayer als auch xine
   abspielen.

   Wenn Sie input.avi durch -dvd://1 /dev/dvd ersetzen und das
   Kommando unter root laufen lassen, ko:nnen Sie ein DVD-Stu:ck
   direkt konvertieren. Da Sie wahrscheinlich beim ersten Mal
   unzufrieden mit den Ergebnissen sind, sollten Sie das Stu:ck
   zuerst in eine Datei schreiben und anschliessend die Datei
   weiterverarbeiten.

     --------------------------------------------------------------

    8.4.2.2. Der Video-Spieler xine

   Der Video-Spieler xine ist ein Projekt mit grossem Umfang. Das
   Projekt will nicht nur ein Programm fu:r alle Video-Anwendungen
   bieten, sondern auch eine wiederverwendbare Bibliothek und ein
   Programm, das durch Plugins erweiterbar ist. Das Programm steht
   als fertiges Paket oder als Port unter multimedia/xine zur
   Verfu:gung.

   Der multimedia/xine-Spieler hat noch ein paar Ecken und Kanten,
   macht aber insgesamt einen guten Eindruck. Fu:r einen
   reibungslosen Betrieb beno:tigt xine entweder eine schnelle CPU
   oder die XVideo-Erweiterung. Das GUI ist etwas schwerfa:llig.

   Zurzeit gibt es kein xine-Modul, das CSS-kodierte DVDs abspielen
   kann und sich in der FreeBSD Ports-Sammlung befindet.

   xine ist benutzerfreundlicher als MPlayer, bietet allerdings nicht
   soviele Mo:glichkeiten. Am schnellsten la:uft xine mit der
   XVideo-Erweiterung.

   In der Voreinstellung startet xine eine grafische
   Benutzeroberfla:che. U:ber Menu:s ko:nnen Sie Dateien o:ffnen:

 % xine

   Alternativ ko:nnen Sie das Programm auch ohne GUI aufrufen und
   Dateien direkt abspielen:

 % xine -g -p mymovie.avi

     --------------------------------------------------------------

    8.4.2.3. Die transcode-Werkzeuge

   transcode ist kein Spieler, sondern eine Sammlung von Werkzeugen
   zur Umwandlung von Video- und Sounddateien. transcode mischt
   Video-Dateien und kann kaputte Video-Dateien reparieren. Die
   Werkzeuge werden als Filter verwendet, das heisst die Ein- und
   Ausgaben verwenden stdin/stdout.

   Beim Bau von transcode u:ber den Port multimedia/transcode ko:nnen
   zwar zahreiche Optionen angegeben werden. Empfehlenswert ist es
   aber, den Bau mit folgendem Befehl zu starten:

 # make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
 WITH_MJPEG=yes -DWITH_XVID=yes

   Diese Einstellungen sollen fu:r die meisten Anwender ausreichend
   sein.

   Um die Fa:higkeiten von transcode zu illustrieren, wird im
   folgenden Beispiel eine DivX-Datei in eine PAL MPEG-1-Datei
   konvertiert:

 % transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
 % mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa

   Die daraus resultierende MPEG-Datei, output_vcd.mpg, kann
   beispielsweise mit MPlayer abgespielt werden. Sie ko:nnen sie
   sogar als Video-CD auf eine CD-R brennen. Wenn Sie diese Funktion
   beno:tigen, mu:ssen Sie zusa:tzlich die beiden Programme
   multimedia/vcdimager und sysutils/cdrdao installieren.

   Zwar gibt es eine Manualpage zu transcode, Sie sollen aber auf
   jeden Fall auch die Informationen und Beispiele im transcode-Wiki
   lesen.

     --------------------------------------------------------------

  8.4.3. Weiterfu:hrende Quellen

   Die Video-Software fu:r FreeBSD entwickelt sich sehr schnell. Es
   ist wahrscheinlich, dass die hier angesprochenen Probleme bald
   gelo:st sind. Bis dahin mu:ssen Anwender, die das meiste aus den
   Audio- und Video-Fa:higkeiten von FreeBSD machen wollen,
   Informationen aus mehreren FAQs und Tutorien zusammensuchen und
   verschiedene Anwendungen nebeneinander betreiben. Dieser Abschnitt
   weist auf weitere Informationsquellen hin.

   Die MPlayer-Dokumentation ist sehr aufschlussreich. Die Dokumente
   sollten wahrscheinlich von jedem gelesen werden, der hohe
   Fachkenntnisse u:ber Video auf UNIX Systemen erlangen will. Die
   MPlayer-Mailinglisten reagiert feindselig auf Personen, die es
   nicht fu:r no:tig halten, die Dokumentation zu lesen. Wenn Sie
   Fehlerberichte an die Liste schicken wollen, lesen Sie bitte
   vorher die ausgezeichnete Dokumentation (RTFM).

   Das xine HOWTO entha:lt allgemein gu:ltige Hinweise zur
   Verbesserung der Wiedergabegeschwindigkeit.

   Schliesslich gibt es noch weitere vielversprechende Anwendungen,
   die Sie vielleicht ausprobieren wollen:

     * Avifile gibt es schon als Port multimedia/avifile.

     * Ogle wurde ebenfalls schon portiert: multimedia/ogle.

     * Xtheater.

     * multimedia/dvdauthor, ist ein Open-Source-Paket, mit dem Sie
       DVDs erstellen ko:nnen.

     --------------------------------------------------------------

8.5. TV-Karten einrichten

   Beigetragen von Josef El-Rayes. U:berarbeitet von Marc Fonvieille.

     --------------------------------------------------------------

  8.5.1. Einfu:hrung

   Mit TV-Karten ko:nnen Sie mit Ihrem Rechner u:ber Kabel oder
   Antenne fernsehen. Die meisten Karten besitzen einen RCA- oder
   S-Video-Eingang. Einige Karten haben auch einen
   FM-Radio-Empfa:nger.

   Der bktr(4)-Treiber von FreeBSD unterstu:tzt PCI-TV-Karten mit
   einem Brooktree Bt848/849/878/879 oder einem Conexant
   CN-878/Fusion 878a Chip. Die Karte sollte einen der unterstu:tzten
   Empfa:nger besitzen, die in der Hilfeseite bktr(4) aufgefu:hrt
   sind.

     --------------------------------------------------------------

  8.5.2. Den Treiber einrichten

   Um Ihre Karte zu benutzen, mu:ssen Sie den bktr(4)-Treiber laden.
   Fu:gen Sie die nachstehende Zeile in die Datei /boot/loader.conf
   ein:

 bktr_load="YES"

   Sie ko:nnen den Treiber fu:r die TV-Karte auch fest in den Kernel
   compilieren. Erweitern Sie dazu Ihre Kernelkonfiguration um die
   folgenden Zeilen:

 device   bktr
 device  iicbus
 device  iicbb
 device  smbus

   Die zusa:tzlichen Treiber werden beno:tigt, da die Komponenten der
   Karte u:ber einen I2C-Bus verbunden sind. Bauen und installieren
   Sie dann den neuen Kernel.

   Anschliessend mu:ssen Sie Ihr System neu starten. Wa:hrend des
   Neustarts sollte Ihre TV-Karte erkannt werden:

 bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
 iicbb0: <I2C bit-banging driver> on bti2c0
 iicbus0: <Philips I2C bus> on iicbb0 master-only
 iicbus1: <Philips I2C bus> on iicbb0 master-only
 smbus0: <System Management Bus> on bti2c0
 bktr0: Pinnacle/Miro TV, Philips SECAM tuner.

   Abha:ngig von Ihrer Hardware ko:nnen die Meldungen natu:rlich
   anders aussehen. Sie sollten aber pru:fen, dass der Empfa:nger
   richtig erkannt wird. Die entdeckten Gera:te lassen sich mit
   sysctl(8) oder in der Kernelkonfigurationsdatei u:berschreiben.
   Wenn Sie beispielsweise einen Philips-SECAM-Empfa:nger erzwingen
   wollen, fu:gen Sie die folgende Zeile zur
   Kernelkonfigurationsdatei hinzu:

 options OVERRIDE_TUNER=6

   Alternativ ko:nnen Sie direkt sysctl(8) benutzen:

 # sysctl hw.bt848.tuner=6

   Weitere Informationen zu den verschiedenen Optionen finden Sie in
   bktr(4) sowie in der Datei /usr/src/sys/conf/NOTES.

     --------------------------------------------------------------

  8.5.3. Nu:tzliche Anwendungen

   Um die TV-Karte zu benutzen, mu:ssen Sie eine der nachstehenden
   Anwendungen installieren:

     * multimedia/fxtv la:sst das Fernsehprogramm in einem Fenster
       laufen und kann Bilder, Audio und Video aufzeichnen.

     * multimedia/xawtv eine weitere TV-Anwendung, mit den gleichen
       Funktionen wie fxtv.

     * misc/alevt dekodiert und zeigt Videotext/Teletext an.

     * Mit audio/xmradio la:sst sich der FM-Radio-Empfa:nger, der
       sich auf einigen TV-Karten befindet, benutzen.

     * audio/wmtune ein leicht zu bedienender Radio-Empfa:nger.

   Weitere Anwendungen finden Sie in der FreeBSD Ports-Sammlung.

     --------------------------------------------------------------

  8.5.4. Fehlersuche

   Wenn Sie Probleme mit Ihrer TV-Karte haben, pru:fen Sie zuerst, ob
   der Video-Capture-Chip und der Empfa:nger auch wirklich vom
   bktr(4)-Treiber unterstu:tzt werden. Pru:fen Sie dann, ob Sie die
   richtigen Optionen verwenden. Weitere Hilfe erhalten Sie auf der
   Mailingliste freebsd-multimedia und in deren Archiven.

     --------------------------------------------------------------

8.6. MythTV

   MythTV ist ein Open Source PVR-Softwareprojekt.

   Es ist in der Linux-Welt als komplexe Anwendung mit vielen
   Abha:ngigkeiten bekannt und deshalb schwierig zu installieren. Das
   FreeBSD Portssystem vereinfacht diesen Prozess sehr stark, jedoch
   mu:ssen manche Komponenten manuell eingerichtet werden. Dieser
   Abschnitt soll dazu dienen, bei der Einrichtung von MythTV zu
   helfen.

     --------------------------------------------------------------

  8.6.1. Hardware

   MythTV wurde entwickelt, um V4L zu verwenden, so dass auf
   Videoeingabegera:te wie Kodierer und Empfa:nger zugegriffen werden
   kann. Aktuell funktioniert MythTV am besten mit USB DVB-S/C/T
   Karten, die von multimedia/webcamd unterstu:tzt werden, weil
   webcamd eine V4L-Anwendung zur Verfu:gung stellt, die als
   Benutzerprogramm la:ft. Jede DVB-Karte, welche von webcamd
   unterstu:tzt wird, sollte mit MythTV funktionieren, jedoch gibt es
   eine Liste von Karten, die hier abgerufen werden kann. Es
   existieren auch Treiber fu:r Hauppauge-Karten in den folgenden
   Paketen: multimedia/pvr250 und multimedia/pvrxxx, allerdings
   liefern diese nur eine Treiberschnittstelle, die nicht dem
   Standard entspricht und die nicht mit MythTV-Versionen gro:sser
   als 0.23 funktionieren.

   HTPC entha:lt eine Liste von allen verfu:gbaren DVB-Treibern.

     --------------------------------------------------------------

  8.6.2. Abha:ngigkeiten

   Da MythTV flexibel und modular aufgebaut ist, ist der Benutzer in
   der Lage, das Frontend und Backend auf unterschiedlichen Rechnern
   laufen zu lassen.

   Fu:r das Frontend wird multimedia/mythtv-frontend, sowie ein
   X-Server beno:tigt, welcher in x11/xorg zu finden ist.
   Idealerweise besitzt der Frontend-Computer auch eine Videokarte,
   die XvMC unterstu:tzt, sowie optional eine LIRC-kompatible
   Fernbedienung.

   Fu:r das Backend wird multimedia/mythtv beno:tigt, ebenso wie eine
   MySQL(TM)-Datenbank, sowie zusa:tzlich einen Empfa:nger und
   Speicherplatz fu:r Aufzeichnungen. Das MySQL-Paket sollte
   automatisch als Abha:ngigkeit mitinstalliert werden, wenn
   multimedia/mythtv gebaut wird.

     --------------------------------------------------------------

  8.6.3. MythTV einrichten

   Um MythTV zu installieren, befolgen Sie die hier aufgefu:hrten
   Schritte. Zuerst installieren Sie MythTV aus der Ports-Sammlung:

 # cd /usr/ports/multimedia/mythtv
 # make install

   Richten Sie anschliessend die MythTV-Datenbank ein:

 # mysql -uroot -p < /usr/local/share/mythtv/database/mc.sql

   Konfigurieren Sie dann das Backend:

 # mythtv-setup

   Zum Schluss starten Sie das Backend:

 # echo 'mythbackend_enable="YES"' >> /etc/rc.conf
 # /usr/local/etc/rc.d/mythbackend start

     --------------------------------------------------------------

8.7. Scanner

   Beigetragen von Marc Fonvieille.

     --------------------------------------------------------------

  8.7.1. Einfu:hrung

   Unter FreeBSD stellt SANE (Scanner Access Now Easy) aus der
   Ports-Sammlung eine einheitliche Schnittstelle (API) fu:r den
   Zugriff auf Scanner bereit. SANE wiederum greift auf Scanner
   mithilfe einiger FreeBSD-Treiber zu.

   FreeBSD unterstu:tzt sowohl SCSI- als auch USB-Scanner. Pru:fen
   Sie vor der Konfiguration mithilfe der Liste der unterstu:tzten
   Gera:te ob Ihr Scanner von SANE unterstu:tzt wird. Bei Systemen
   vor FreeBSD 8.X za:hlt die Hilfeseite uscanner(4) ebenfalls die
   unterstu:tzten USB-Scanner auf.

     --------------------------------------------------------------

  8.7.2. Den Kernel fu:r Scanner einrichten

   Da sowohl SCSI- als auch USB-Scanner unterstu:tzt werden, werden
   abha:ngig von der Schnittstelle unterschiedliche Treiber
   beno:tigt.

     --------------------------------------------------------------

    8.7.2.1. USB-Scanner

   Im GENERIC-Kernel sind schon alle, fu:r einen USB-Scanner
   notwendigen, Treiber enthalten. Wenn Sie einen angepassten Kernel
   benutzen, pru:fen Sie, dass die Kernelkonfiguration die
   nachstehenden Zeilen entha:lt:

 device usb
 device uhci
 device ohci
 device ehci

   Bei Systemen vor FreeBSD 8.X wird ausserdem noch die folgende
   Zeile beno:tigt:

 device uscanner

   Bei diesen FreeBSD-Versionen liefert das uscanner(4)-Gera:t die
   Unterstu:tzung fu:r USB-Scanner. Seit FreeBSD 8.0 ist diese
   Unterstu:tzung direkt in der libusb(3)-Bibliothek enthalten.

   Nachdem Sie das System mit dem richtigen Kernel neu gestartet
   haben, stecken Sie den USB-Scanner ein. Danach sollte in den
   Systemmeldungen (die Sie mit dmesg(8) betrachten ko:nnen) eine
   Zeile a:hnlich der folgenden erscheinen:

 ugen0.2: <EPSON> at usbus0

   bzw. auf einem FreeBSD 7.X System:

 uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

   Diese Meldung besagt, dass der Scanner entweder die Gera:tedatei
   /dev/ugen0.2 oder /dev/uscanner0 benutzt, je nachdem, welche
   FreeBSD-Version eingesetzt wird. In diesem Beispiel wurde ein
   EPSON Perfection(R) 1650 USB-Scanner verwendet.

     --------------------------------------------------------------

    8.7.2.2. SCSI-Scanner

   Wenn Ihr Scanner eine SCSI-Schnittstelle besitzt, ist die
   Kernelkonfiguration abha:ngig vom verwendeten SCSI-Controller. Der
   GENERIC-Kernel unterstu:tzt die gebra:uchlichen SCSI-Controller.
   Den richtigen Treiber finden Sie in der Datei NOTES. Neben dem
   Treiber muss Ihre Kernelkonfiguration noch die nachstehenden
   Zeilen enthalten:

 device scbus
 device pass

   Nachdem Sie einen Kernel gebaut und installiert haben, sollte der
   Scanner beim Neustart in den Systemmeldungen erscheinen:

 pass2 at aic0 bus 0 target 2 lun 0
 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
 pass2: 3.300MB/s transfers

   Wenn der Scanner wa:hrend des Systemstarts ausgeschaltet war,
   ko:nnen Sie die Gera:teerkennung erzwingen, indem Sie den SCSI-Bus
   erneut absuchen. Verwenden Sie dazu das Kommando camcontrol(8):

 # camcontrol rescan all
 Re-scan of bus 0 was successful
 Re-scan of bus 1 was successful
 Re-scan of bus 2 was successful
 Re-scan of bus 3 was successful

   Der Scanner wird anschliessend in der SCSI-Gera:teliste angezeigt:

 # camcontrol devlist
 <IBM DDRS-34560 S97B>              at scbus0 target 5 lun 0 (pass0,da0)
 <IBM DDRS-34560 S97B>              at scbus0 target 6 lun 0 (pass1,da1)
 <AGFA SNAPSCAN 600 1.10>           at scbus1 target 2 lun 0 (pass3)
 <PHILIPS CDD3610 CD-R/RW 1.00>     at scbus2 target 0 lun 0 (pass2,cd0)

   Weiteres u:ber SCSI-Gera:te lesen Sie bitte in den Hilfeseiten
   scsi(4) und camcontrol(8) nach.

     --------------------------------------------------------------

  8.7.3. SANE konfigurieren

   SANE besteht aus zwei Teilen, den Backends
   (graphics/sane-backends) und den Frontends
   (graphics/sane-frontends). Das Backend greift auf den Scanner zu.
   Welches Backend welchen Scanner unterstu:tzt, entnehmen Sie der
   Liste der unterstu:tzten Gera:te. Der Betrieb eines Scanners ist
   nur mit dem richtigen Backend mo:glich. Die Frontends sind die
   Anwendungen, mit denen gescannt wird (xscanimage).

   Installieren Sie zuerst den Port oder das Paket
   graphics/sane-backends. Anschliessend ko:nnen Sie mit dem Befehl
   sane-find-scanner pru:fen, ob SANE Ihren Scanner erkennt:

 # sane-find-scanner -q
 found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3

   Die Ausgabe zeigt die Schnittstelle und die verwendete
   Gera:tedatei des Scanners. Der Hersteller und das Modell ko:nnen
   in der Ausgabe fehlen.

     Anmerkung: Bei einigen USB-Scannern mu:ssen Sie die Firmware
     aktualisieren, dies wird in der Hilfeseite des Backends
     erkla:rt. Lesen Sie bitte auch die Hilfeseiten
     sane-find-scanner(1) und sane(7).

   Als na:chstes mu:ssen Sie pru:fen, ob der Scanner vom Frontend
   erkannt wird. Die SANE-Backends werden mit dem
   Kommandozeilenwerkzeug scanimage(1) geliefert. Mit diesem Werkzeug
   ko:nnen Sie sich Scanner anzeigen lassen und den Scan-Prozess von
   der Kommandozeile starten. Die Option -L zeigt die Scanner an:

 # scanimage -L
 device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner

   Oder, fu:r das Beispiel mit dem USB-Scanner in Abschnitt 8.7.2.1:

 # scanimage -L
 device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner

   Diese Ausgabe stammt von einem FreeBSD 8.X System, die Zeile
   'epson2:libusb:/dev/usb:/dev/ugen0.2' nennt das Backend (epson2)
   und die Gera:tedatei (/dev/ugen0.2), die der Scanner verwendet.

     Anmerkung: Erscheint die Meldung, dass kein Scanner gefunden
     wurde oder wird gar keine Ausgabe erzeugt, konnte scanimage(1)
     keinen Scanner erkennen. In diesem Fall mu:ssen Sie in der
     Konfigurationsdatei des Backends das zu benutzende Gera:t
     eintragen. Die Konfigurationsdateien der Backends befinden sich
     im Verzeichnis /usr/local/etc/sane.d/. Erkennungsprobleme treten
     bei bestimmten USB-Scannern auf.

     Mit dem USB-Scanner aus Abschnitt 8.7.2.1 zeigt
     sane-find-scanner unter FreeBSD 8.X die folgende Ausgabe:

 # sane-find-scanner -q
 found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

     Der Scanner wurde richtig erkennt, er benutzt eine
     USB-Schnittstelle und verwendet die Gera:tedatei /dev/uscanner0.
     Ob der Scanner vom Frontend erkannt wird, zeigt das nachstehende
     Kommando:

 # scanimage -L

 No scanners were identified. If you were expecting something different,
 check that the scanner is plugged in, turned on and detected by the
 sane-find-scanner tool (if appropriate). Please read the documentation
 which came with this software (README, FAQ, manpages).

     Da der Scanner nicht erkannt wurde, muss die Datei
     /usr/local/etc/sane.d/epson2.conf editiert werden. Der
     verwendete Scanner war ein EPSON Perfection 1650, daher wird das
     epson2-Backend benutzt. Lesen Sie bitte alle Kommentare in der
     Konfigurationsdatei des Backends. Die durchzufu:hrenden
     A:nderungen sind einfach. Kommentieren Sie zuna:chst alle Zeilen
     mit der falschen Schnittstelle aus. Da der Scanner eine
     USB-Schnittstelle besitzt, wurden im Beispiel alle Zeilen, die
     mit scsi anfingen, auskommentiert. Fu:gen Sie dann die
     Schnittstelle und den Gera:tenamen am Ende der Datei ein. In
     diesem Beispiel wurde die nachstehende Zeile eingefu:gt:

 usb /dev/uscanner0

     Weitere Hinweise entnehmen Sie bitte der Hilfeseite des
     Backends. Jetzt ko:nnen Sie pru:fen, ob der Scanner richtig
     erkannt wird:

 # scanimage -L
 device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner

     Der Scanner wurde nun erkannt. Es ist nicht wichtig, ob der
     Hersteller oder das Modell Ihres Scanners korrekt angezeigt
     werden. Wichtig ist nur die Ausgabe `epson:/dev/uscanner0', die
     das richtige Backend und den richtigen Gera:tenamen anzeigt.

   Wenn scanimage -L den Scanner erkannt hat, ist der Scanner
   eingerichtet und bereit, zu scannen.

   Obwohl wir mit scanimage(1) von der Kommandozeile scannen ko:nnen,
   ist eine graphische Anwendung zum Scannen besser geeignet. SANE
   bietet ein einfaches und effizientes Werkzeug: xscanimage
   (graphics/sane-frontends).

   Xsane (graphics/xsane) ist eine weitere beliebte graphische
   Anwendung. Dieses Frontend besitzt erweiterte Funktionen wie den
   Scan-Modus (beispielsweise Photo, Fax), eine Farbkorrektur und
   Batch-Scans. Beide Anwendungen lassen sich als GIMP-Plugin
   verwenden.

     --------------------------------------------------------------

  8.7.4. Den Scanner fu:r Benutzerkonten freigeben

   Zuvor wurden alle Ta:tigkeiten mit root-Rechten ausgefu:hrt. Wenn
   andere Benutzer den Scanner benutzen sollen, mu:ssen sie Lese- und
   Schreibrechte auf die Gera:tedatei des Scanners besitzen. Im
   Beispiel wird die Datei /dev/ugen0.2 verwendet, die faktisch nur
   ein Symlink auf die echte Gera:tedatei, /dev/usb/0.2.0 genannt,
   darstellt (ein kurzer Blick auf das /dev-Verzeichnis besta:tigt
   dies). Sowohl der Symlink als auch die Gera:tedatei sind jeweils
   im Besitz der Gruppen wheel und operator. Damit der Benutzer joe
   auf den Scanner zugreifen kann, muss das Konto in die Gruppe
   operator aufgenommen werden. Allerdings sollten Sie, aus
   Sicherheitsgru:nden, genau u:berlegen, welche Benutzer Sie zu
   welcher Gruppe hinzufu:gen, besonders bei der Gruppe wheel. Eine
   bessere Lo:sung ist es, eine spezielle Gruppe fu:r den Zugriff auf
   USB-Gera:te anzulegen und den Scanner fu:r Mitglieder dieser
   Gruppe zuga:nglich zu machen.

   Beispielsweise kann man eine usb-Gruppe verwenden. Der erste
   Schritt dazu ist das erstellen der Gruppe mit Hilfe des
   pw(8)-Kommandos:

 # pw groupadd usb

   Anschliessend muss der /dev/ugen0.2-Symlink und der Gera:tename
   /dev/usb/0.2.0 fu:r die usb-Gruppe mit den richtigen
   Schreibrechten (0660 oder 0664) ausgestattet werden, denn
   standardma:ssig kann nur der Besitzer dieser Dateien (root) darauf
   schreiben. All dies kann durch das Hinzufu:gen der folgenden Zeile
   in die /etc/devfs.rules-Datei erreicht werden:

 [system=5]
 add path ugen0.2 mode 0660 group usb
 add path usb/0.2.0 mode 0660 group usb

   FreeBSD 7.X-Anwender beno:tigen unter Umsta:nden die folgenden
   Zeilen mit der korrekten Gera:tedatei /dev/uscanner0:

 [system=5]
 add path uscanner0 mode 660 group usb

   In die Datei /etc/rc.conf fu:gen Sie noch die folgende Zeile ein:

 devfs_system_ruleset="system"

   Starten Sie anschliessend Ihr System neu.

   Weitere Informationen finden Sie in devfs(8).

   Jetzt braucht man nur noch Benutzer der Gruppe usb hinzufu:gen, um
   ihnen Zugriff auf den Scanner zu erlauben:

 #pw groupmod usb -m joe

   Weitere Details ko:nnen Sie in der pw(8)-Manualpage nachlesen.

     --------------------------------------------------------------

              Kapitel 9. Konfiguration des FreeBSD-Kernels

   Erweitert und neu strukturiert von Jim Mock. Urspru:nglich
   vero:ffentlicht von Jake Hamby. U:bersetzt von Robert Altschaffel.

9.1. U:bersicht

   Der Kernel ist das Herz des FreeBSD Betriebssystems. Er ist
   verantwortlich fu:r die Speicherverwaltung, das Durchsetzen von
   Sicherheitsdirektiven, Netzwerkfa:higkeit, Festplattenzugriffen
   und vieles mehr. Obwohl FreeBSD es immer mehr ermo:glicht,
   dynamisch konfiguriert zu werden, ist es ab und an notwendig, den
   Kernel neu zu konfigurieren und zu kompilieren.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
   wissen:

     * Wieso Sie Ihren Kernel neu konfigurieren sollten.

     * Wie Sie eine Kernelkonfigurationsdatei erstellen oder
       vera:ndern.

     * Wie Sie mit der Konfigurationsdatei einen neuen Kernel
       kompilieren.

     * Wie Sie den neuen Kernel installieren.

     * Was zu tun ist, falls etwas schiefgeht.

   Alle Kommandos, aus den Beispielen dieses Kapitels, mu:ssen mit
   root-Rechten ausgefu:hrt werden.

     --------------------------------------------------------------

9.2. Wieso einen eigenen Kernel bauen?

   Traditionell besass FreeBSD einen monolithischen Kernel. Das
   bedeutet, dass der Kernel ein einziges grosses Programm war, das
   eine bestimmte Auswahl an Hardware unterstu:tzte. Also musste man
   immer, wenn man das Kernelverhalten vera:ndern wollte, zum
   Beispiel wenn man neue Hardware hinzufu:gen wollte, einen neuen
   Kernel kompilieren, installieren und das System neu starten.

   Heutzutage vertritt FreeBSD immer mehr die Idee eines modularen
   Kernels, bei dem bestimmte Funktionen, je nach Bedarf, als Module
   geladen werden ko:nnen. Ein bekanntes Beispiel dafu:r sind die
   Module fu:r die PCMCIA-Karten in Laptops, die zum Starten nicht
   zwingend beno:tigt und erst bei Bedarf geladen werden.

   Trotzdem ist es noch immer no:tig, einige statische
   Kernelkonfigurationen durchzufu:hren. In einigen Fa:llen ist die
   Funktion zu systemnah, um durch ein Modul zu realisiert werden. In
   anderen Fa:llen hat eventuell noch niemand ein ladbares
   Kernelmodul fu:r diese Funktion geschrieben.

   Das Erstellen eines angepassten Kernels ist eines der wichtigsten
   Rituale fu:r erfahrene BSD-Benutzer. Obwohl dieser Prozess recht
   viel Zeit in Anspruch nimmt, bringt er doch viele Vorteile fu:r
   Ihr FreeBSD System. Der GENERIC-Kernel muss eine Vielzahl
   unterschiedlicher Hardware unterstu:tzen, im Gegensatz dazu
   unterstu:tzt ein angepasster Kernel nur Ihre Hardware. Dies hat
   einige Vorteile:

     * Schnellerer Bootvorgang. Da der Kernel nur nach der Hardware
       des Systems sucht, kann sich die Zeit fu:r einen Systemstart
       erheblich verku:rzen.

     * Geringerer Speicherbedarf. Ein eigener Kernel beno:tigt in der
       Regel weniger Speicher als ein GENERIC-Kernel durch das
       Entfernen von Funktionen und Gera:tetreibern. Das ist
       vorteilhaft, denn der Kernel verweilt immer im RAM und
       verhindert dadurch, dass dieser Speicher von Anwendungen
       genutzt wird. Insbesondere profitieren Systeme mit wenig RAM
       davon.

     * Zusa:tzliche Hardwareunterstu:tzung. Ein angepasster Kernel
       kann Unterstu:tzung fu:r Gera:te wie Soundkarten bieten, die
       im GENERIC-Kernel nicht enthalten sind.

     --------------------------------------------------------------

9.3. Informationen u:ber die vorhandene Hardware beschaffen

   Geschrieben von Tom Rhodes.

   Bevor Sie mit der Kernelkonfiguration beginnen, sollten Sie
   wissen, u:ber welche Hardware Ihr System verfu:gt. Verwenden Sie
   derzeit noch ein anderes Betriebssystem, ist es meist sehr
   einfach, eine Liste der installierten Hardware zu erzeugen.
   Verwenden Sie beispielsweise Microsoft Windows, ko:nnen Sie dafu:r
   den Gera:temanager verwenden, den Sie in der "Systemsteuerung"
   finden.

     Anmerkung: Einige Versionen von Microsoft Windows verfu:gen
     u:ber ein System-Icon auf dem Desktop, u:ber das Sie den
     Gera:temanager direkt aufrufen ko:nnen.

   Haben Sie ausser FreeBSD kein weiteres Betriebssystem, mu:ssen Sie
   diese Informationen manuell zusammentragen. Eine Mo:glichkeit, an
   Informationen u:ber die vorhandene Hardware zu gelangen, ist der
   Einsatz von dmesg(8) in Kombination mit man(1). Die meisten
   FreeBSD-Gera:tetreiber haben eine eigene Manualpage, die
   Informationen u:ber die unterstu:tzte Hardware entha:lt. Wa:hrend
   des Systemstarts werden Informationen u:ber die vorhandene
   Hardware ausgegeben. Die folgenden Zeilen zeigen beispielsweise
   an, dass der psm-Treiber eine angeschlossene Maus gefunden hat:

 psm0: <PS/2 Mouse> irq 12 on atkbdc0
 psm0: [GIANT-LOCKED]
 psm0: [ITHREAD]
 psm0: model Generic PS/2 mouse, device ID 0

   Dieser Treiber muss in Ihrer Kernelkonfigurationsdatei vorhanden
   sein oder durch das Werkzeug loader.conf(5) geladen werden.

   

   Manchmal zeigt dmesg wa:hrend des Systemstarts nur
   Systemmeldungen, aber keine Informationen zur gefundenen Hardware
   an. In diesem Fall ko:nnen Sie diese Informationen durch das
   Studium der Datei /var/run/dmesg.boot herausfinden.

   Eine weitere Mo:glichkeit bietet das Werkzeug pciconf(8), das
   ausfu:hrliche Informationen bereitstellt. Dazu ein Beispiel:

 ath0@pci0:3:0:0:        class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
     vendor     = 'Atheros Communications Inc.'
     device     = 'AR5212 Atheros AR5212 802.11abg wireless'
     class      = network
     subclass   = ethernet

   Diese Zeilen, die Sie durch den Aufruf des Befehls pciconf -lv
   erhalten, zeigen, dass der Treiber ath eine drahtlose
   Ethernetkarte gefunden hat. Durch Eingabe des Befehls man ath
   o:ffnet sich die Manualpage ath(4).

   Rufen Sie man(1) mit der Option -k auf, ko:nnen Sie die Datenbank
   der Manualpages auch durchsuchen. Fu:r das angegebene Beispiel
   wu:rde dieser Befehl beispielsweise so aussehen:

 # man -k Atheros

   Dadurch erhalten Sie eine Liste aller Manualpages, die das
   angegebene Suchkriterium enthalten:

 ath(4)                   - Atheros IEEE 802.11 wireless network driver
 ath_hal(4)               - Atheros Hardware Access Layer (HAL)

   Mit diesen Informationen ausgestattet, sollte der Bau eines
   angepassten Kernel keine allzugrossen Probleme mehr bereiten.

     --------------------------------------------------------------

9.4. Kerneltreiber, Subsysteme und Module

   Bevor Sie einen angepassten Kernel erstellen, u:berlegen Sie sich
   bitte, warum Sie dies tun wollen. Wenn Sie lediglich eine
   bestimmte Hardwareunterstu:tzung beno:tigen, existiert diese
   vielleicht schon als Kernelmodul.

   Kernelmodule existieren im Verzeichnis /boot/kernel und ko:nnen
   dynamisch in den laufenden Kernel u:ber kldload(8) geladen werden.
   Die meisten, wenn nicht sogar alle, Kerneltreiber besitzen ein
   spezifisches Modul und eine Manualpage. Beispielsweise erwa:hnte
   der letzte Abschnitt den drahtlosen Ethernettreiber ath. Dieses
   Gera:t hat die folgende Information in seiner Manualpage:

 Alternatively, to load the driver as a module at boot time, place the
 following line in loader.conf(5):

     if_ath_load="YES"

   Wie dort angegeben, wird das Modul durch die Zeile
   if_ath_load="YES" in der Datei /boot/loader.conf dynamisch beim
   Systemstart geladen.

   Allerdings gibt es in manchen Fa:llen kein dazugeho:riges Modul.
   Das gilt insbesondere fu:r bestimmte Teilsysteme und sehr wichtige
   Treiber. Beispielsweise ist das Fast File System (FFS) eine
   notwendige Kerneloption, genauso wie die Netzwerkunterstu:tzung
   (INET). Die einzige Mo:glichkeit, herauszufinden, ob ein Treiber
   beno:tigt ist, ist die U:berpru:fung des jeweiligen Moduls.

     Warnung: Es ist erstaunlich einfach, einen defekten Kernel zu
     erhalten (beispielsweise durch das Entfernen der eingebauten
     Unterstu:tzung fu:r ein Gera:t oder einer Kerneloption). Wenn
     beispielsweise der ata(4)-Treiber aus der
     Kernelkonfigurationsdatei entfernt wird, kann ein System, das
     den ATA-Festplattentreiber beno:tigt, nicht mehr starten, ohne
     dass Sie das entsprechende Kernelmodul durch einen Eintrag in
     loader.conf aufnehmen. Wenn Sie nicht sicher sind, wie Sie
     vorgehen sollen, u:berpru:fen Sie zuerst das Modul. Im
     Zweifelsfall belassen Sie die Unterstu:tzung fu:r ein bestimmtes
     Gera:t besser im Kernel.

     --------------------------------------------------------------

9.5. Erstellen und Installation eines angepassten Kernels

     Anmerkung: Sie beno:tigen den kompletten Quellcodebaum, um den
     Kernel zu bauen.

   Zuerst erla:utern wir die Verzeichnisstruktur, in der der Kernel
   gebaut wird. Die im Folgenden genannten Verzeichnisse sind relativ
   zum Verzeichnis /usr/src/sys angegeben, das Sie auch u:ber den
   Pfad /sys erreichen ko:nnen. Es existieren mehrere
   Unterverzeichnisse, die bestimmte Teile des Kernels darstellen,
   aber die fu:r uns wichtigsten sind arch/conf, in dem Sie die
   Konfigurationsdatei fu:r den angepassten Kernel erstellen werden,
   und compile, in dem der Kernel gebaut wird. arch kann entweder
   i386, amd64, ia64, powerpc, sparc64 oder pc98 (eine in Japan
   beliebte Architektur) sein. Alles in diesen Verzeichnissen ist nur
   fu:r die jeweilige Architektur relevant. Der Rest des Codes ist
   maschinenunabha:ngig und fu:r alle Plattformen, auf die FreeBSD
   portiert werden kann, gleich. Beachten Sie die
   Verzeichnisstruktur, die jedem unterstu:tzten Gera:t, jedem
   Dateisystem und jeder Option ein eigenes Verzeichnis zuordnet.

   Die Beispiele in diesem Kapitel verwenden ein i386-System. Wenn
   Sie ein anderes System benutzen, passen Sie bitte die Pfade
   entsprechend der Architektur des Systems an.

     Anmerkung: Falls Sie kein /usr/src/-Verzeichnis vorfinden (oder
     dieses leer ist), so sind die Quellen nicht installiert. Der
     einfachste Weg, dies nachzuholen, ist sysinstall als root
     auszufu:hren. Dort wa:hlen Sie Configure, dann Distributions,
     dann src, und schliesslich All. Falls nicht vorhanden, sollten
     Sie auch noch einen symbolischen Link auf /usr/src/sys/ anlegen:

 # ln -s /usr/src/sys /sys

   Als na:chstes wechseln sie in das Verzeichnis arch/conf und
   kopieren die Konfigurationsdatei GENERIC in eine Datei, die den
   Namen Ihres Kernels tra:gt. Zum Beispiel:

 # cd /usr/src/sys/i386/conf
 # cp GENERIC MYKERNEL

   Traditionell ist der Name des Kernels immer in Grossbuchstaben.
   Wenn Sie mehrere FreeBSD mit unterschiedlicher Hardware warten,
   ist es nu:tzlich, wenn Sie Konfigurationsdatei nach dem Hostnamen
   der Maschinen benennen. Im Beispiel verwenden wir den Namen
   MYKERNEL.

     Tipp: Es ist nicht zu empfehlen die Konfigurationsdatei direkt
     unterhalb von /usr/src abzuspeichern. Wenn Sie Probleme haben,
     ko:nnten Sie der Versuchung erliegen, /usr/src einfach zu
     lo:schen und wieder von vorne anzufangen. Wenn Sie so vorgehen,
     werden Sie kurz darauf merken, dass Sie soeben Ihre
     Kernelkonfigurationsdatei gelo:scht haben.

     Editieren Sie immer eine Kopie von GENERIC. A:nderungen an
     GENERIC ko:nnen verloren gehen, wenn der Quellbaum aktualisiert
     wird.

     Sie sollten die Konfigurationsdatei an anderer Stelle aufheben
     und im Verzeichnis i386 einen Link auf die Datei erstellen.

     Beispiel:

 # cd /usr/src/sys/i386/conf
 # mkdir /root/kernels
 # cp GENERIC /root/kernels/MYKERNEL
 # ln -s /root/kernels/MYKERNEL

   Jetzt editieren Sie MYKERNEL mit einem Texteditor Ihres
   Vertrauens. Wenn Sie gerade neu anfangen, ist Ihnen vielleicht nur
   der vi Editor bekannt, der allerdings zu komplex ist, um hier
   erkla:rt zu werden. Er wird aber in vielen Bu:chern aus der
   Bibliographie gut erkla:rt. FreeBSD bietet aber auch einen
   leichter zu benutzenden Editor, den ee an, den Sie, wenn Sie
   Anfa:nger sind, benutzen sollten. Sie ko:nnen die Kommentare am
   Anfang der Konfigurationsdatei a:ndern, um die A:nderungen
   gegenu:ber GENERIC zu dokumentieren.

   Falls Sie schon einmal einen Kernel unter SunOS oder einem anderen
   BSD kompiliert haben, werden Sie diese Konfigurationsdatei bereits
   kennen. Wenn Sie mit einem anderen Betriebssystem wie DOS vertraut
   sind, ko:nnte die GENERIC Konfigurationsdatei Sie verschrecken. In
   diesen Fall sollten Sie den Beschreibungen im Abschnitt u:ber die
   Konfigurationsdatei langsam und vorsichtig folgen.

     Anmerkung: Wenn Sie die FreeBSD Quellen synchronisieren, sollten
     Sie immer, bevor Sie etwas vera:ndern, /usr/src/UPDATING
     durchlesen. Diese Datei entha:lt alle wichtigen Informationen,
     die Sie beim Aktualisieren beachten mu:ssen. Da
     /usr/src/UPDATING immer zu Ihrer Version der FreeBSD Quellen
     passt, sind die Informationen dort genauer, als in diesem
     Handbuch.

   Nun mu:ssen Sie die Kernelquellen kompilieren.

   Den Kernel bauen

     Anmerkung: Sie beno:tigen den kompletten Quellcodebaum, um den
     Kernel zu bauen.

    1. Wechseln Sie in das Verzeichnis /usr/src:

 # cd /usr/src

    2. Kompilieren Sie den neuen Kernel:

 # make buildkernel KERNCONF=MYKERNEL

    3. Installieren Sie den neuen Kernel:

 # make installkernel KERNCONF=MYKERNEL

     Tipp: In der Voreinstellung werden beim Bau eines angepassten
     Kernels stets alle Kernelmodule neu gebaut. Wollen Sie Ihren
     Kernel schneller bauen oder nur bestimmte Module bauen, sollten
     Sie /etc/make.conf anpassen, bevor Sie Ihren Kernel bauen:

 MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

     Wenn Sie diese Variable setzen, werden ausschliesslich die hier
     angegebenen Module gebaut (und keine anderen).

 WITHOUT_MODULES = linux acpi sound ntfs

     Durch das Setzen dieser Variable werden werden alle Module auf
     oberster Ebene bis auf die angegebenen gebaut. Weitere
     Variablen, die beim Bau eines Kernels von Interesse sein
     ko:nnten, finden Sie in make.conf(5).

   Der neue Kernel wird im Verzeichnis /boot/kernel, genauer unter
   /boot/kernel/kernel abgelegt, wa:hrend der alte Kernel nach
   /boot/kernel.old/kernel verschoben wird. Um den neuen Kernel zu
   benutzen, sollten Sie Ihren Rechner jetzt neu starten. Falls etwas
   schief geht, sehen Sie bitte in dem Abschnitt zur Fehlersuche am
   Ende dieses Kapitels nach. Dort sollten Sie auch unbedingt den
   Abschnitt lesen, der erkla:rt, was zu tun ist, wenn der neue
   Kernel nicht startet.

     Anmerkung: Im Verzeichnis /boot werden andere Dateien, die zum
     Systemstart beno:tigt werden, wie der Boot-Loader (loader(8))
     und dessen Konfiguration, abgelegt. Module von Fremdherstellern
     oder angepasste Module werden in /boot/kernel abgelegt. Beachten
     Sie bitte, dass diese Module immer zu dem verwendeten Kernel
     passen mu:ssen. Module, die nicht zu dem verwendeten Kernel
     passen, gefa:hrden die Stabilita:t des Systems.

     --------------------------------------------------------------

9.6. Die Kernelkonfigurationsdatei

   Aktualisiert von Joel Dahl.

   Das Format der Konfigurationsdatei ist recht einfach. Jede Zeile
   entha:lt ein Schlu:sselwort und ein oder mehrere Argumente. Eine
   Zeile, die von einen # eingeleitet wird, gilt als Kommentar und
   wird ignoriert. Die folgenden Abschnitte beschreiben jedes
   Schlu:sselwort in der Reihenfolge, in der es in GENERIC auftaucht.
   Eine ausfu:hrliche Liste aller Optionen mit detaillierten
   Erkla:rungen finden Sie in der Konfigurationsdatei NOTES, die sich
   in demselben Verzeichnis wie die Datei GENERIC befindet. Von der
   Architektur unabha:ngige Optionen sind in der Datei
   /usr/src/sys/conf/NOTES aufgefu:hrt.

   Es ist mo:glich, eine include-Anweisung in die
   Kernelkonfigurationsdatei aufzunehmen. Diese erlaubt das lokale
   Einfu:gen von anderen Konfigurationsdateien in die aktuelle, was
   es einfacher macht, kleinere A:nderungen an einer existierenden
   Datei zu vollziehen. Wenn Sie beispielsweise einen GENERIC-Kernel
   mit nur einer kleinen Anzahl von zusa:tzlichen Optionen und
   Treibern beno:tigen, brauchen Sie mit den folgenden Zeilen nur ein
   kleines Delta im Vergleich zu GENERIC anpassen:

 include GENERIC
 ident MYKERNEL

 options         IPFIREWALL
 options         DUMMYNET
 options         IPFIREWALL_DEFAULT_TO_ACCEPT
 options         IPDIVERT

   Fu:r viele Administratoren bietet dieses Modell entscheidende
   Vorteile u:ber das bisherige Erstellen von Konfigurationsdateien
   von Grund auf: die lokalen Konfigurationdateien enthalten auch nur
   die lokalen Unterschiede zu einem GENERIC-Kernel und sobald
   Aktulaisierungen durchgefu:hrt werden, ko:nnen neue Eigenschaften,
   die zu GENERIC hinzugefu:gt werden, auch dem lokalen Kernel
   angeha:ngt werden, es sei denn, es wird durch nooptions oder
   nodevice verhindert. Der u:brige Teil dieses Kapitels behandelt
   die Inhalte einer typischen Konfigurationsdatei und die Rolle, die
   unterschiedliche Optionen und Gera:te dabei spielen.

     Anmerkung: Um einen Kernel mit allen mo:glichen Optionen zu
     bauen beispielsweise fu:r Testzwecke), fu:hren Sie als root die
     folgenden Befehle aus:

 # cd /usr/src/sys/i386/conf && make LINT

   Das folgende Beispiel zeigt eine GENERIC Konfigurationsdatei, die,
   wo notwendig, zusa:tzliche Kommentare entha:lt. Sie sollte der
   Datei /usr/src/sys/i386/conf/GENERIC auf Ihrem System sehr
   a:hnlich sein.

 machine         i386

   Gibt die Architektur der Maschine an und muss entweder amd64,
   i386, ia64, pc98, powerpc oder sparc64 sein.

 cpu          I486_CPU
 cpu          I586_CPU
 cpu          I686_CPU

   Die vorigen Zeilen geben den Typ der CPU Ihres Systems an. Sie
   ko:nnen mehrere CPU Typen angeben, wenn Sie sich zum Beispiel
   nicht sicher sind, ob Sie I586_CPU oder I686_CPU benutzen sollen.
   Fu:r einen angepassten Kernel ist es aber am besten, wenn Sie nur
   die CPU angeben, die sich in der Maschine befindet. Der CPU-Typ
   wird in den Boot-Meldungen ausgegeben, die in der Datei
   /var/run/dmesg.boot gespeichert sind.

 ident          GENERIC

   Gibt den Namen Ihres Kernels an. Hier sollten Sie den Namen
   einsetzen, den Sie Ihrer Konfigurationsdatei gegeben haben. In
   unserem Beispiel ist das MYKERNEL. Der Wert, den Sie ident
   zuweisen, wird beim Booten des neuen Kernels ausgegeben. Wenn Sie
   den Kernel von Ihrem normal verwendeten Kernel unterscheiden
   wollen, weil Sie zum Beispiel einen Kernel zum Testen bauen, ist
   es nu:tzlich, hier einen anderen Namen anzugeben.

 #To statically compile in device wiring instead of /boot/device.hints
 #hints          "GENERIC.hints"         # Default places to look for devices.

   Unter FreeBSD werden Gera:te mit device.hints(5) konfiguriert. In
   der Voreinstellung u:berpru:ft loader(8) beim Systemstart die
   Datei /boot/device.hints. Die Option hints erlaubt es, die
   Gera:tekonfiguration statisch in den Kernel einzubinden, sodass
   die Datei device.hints in /boot nicht beno:tigt wird.

 makeoptions     DEBUG=-g          # Build kernel with gdb(1) debug symbols

   Der normale Bauprozess von FreeBSD erstellt nur dann einen Kernel,
   der Debugging-Informationen entha:lt, wenn Sie die Option -g von
   gcc(1) aktivieren.

 options          SCHED_ULE        # ULE scheduler

   Der voreingestellte Scheduler von FreeBSD. A:ndern Sie diesen Wert
   nicht!

 options          PREEMPTION        # Enable kernel thread preemption

   Erlaubt es Kernelthreads, vor Threads eigentlich ho:herer
   Priorita:lt ausgefu:hrt zu werden. Die Interaktivita:lt des
   Systems wird dadurch erho:lt. Interrupt-Threads werden dabei
   bevorzugt ausgefu:hrt.

 options          INET              # InterNETworking

   Netzwerkunterstu:tzung. Auch wenn Sie nicht planen, den Rechner
   mit einem Netzwerk zu verbinden, sollten Sie diese Option
   aktiviert lassen. Die meisten Programme sind mindestens auf die
   Loopback Unterstu:tzung (Verbindungen mit sich selbst) angewiesen.
   Damit ist diese Option im Endeffekt notwendig.

 options          INET6             # IPv6 communications protocols

   Aktiviert die Unterstu:tzung fu:r das IPv6 Protokoll.

 options          FFS               # Berkeley Fast Filesystem

   Das Dateisystem fu:r Festplatten. Wenn Sie von einer Festplatte
   booten wollen, lassen Sie diese Option aktiviert.

 options          SOFTUPDATES       # Enable FFS Soft Updates support

   Mit dieser Option wird die Unterstu:tzung fu:r Soft Updates, die
   Schreibzugriffe beschleunigen, in den Kernel eingebunden. Auch
   wenn die Funktion im Kernel ist, muss sie fu:r einzelne
   Dateisysteme explizit aktiviert werden. U:berpru:fen Sie mit
   mount(8), ob die Dateisysteme Soft Updates benutzen. Wenn die
   Option soft-updates nicht aktiviert ist, ko:nnen Sie die Option
   nachtra:glich mit tunefs(8) aktivieren. Fu:r neue Dateisysteme
   ko:nnen Sie Option beim Anlegen mit newfs(8) aktivieren.

 options          UFS_ACL           # Support for access control lists

   Diese Option aktiviert die Unterstu:tzung fu:r
   Zugriffskontrolllisten (ACL). Die ACLs ha:ngen von erweiterten
   Attributen und UFS2 ab, eine genaue Beschreibung finden Sie in
   Abschnitt 15.11. Die Zugriffskontrolllisten sind in der
   Voreinstellung aktiviert und sollten auch nicht deaktiviert
   werden, wenn Sie schon einmal auf einem Dateisystem verwendet
   wurden, da dies die Zugriffsrechte auf Dateien in unvorhersehbarer
   Art und Weise a:ndern kann.

 options          UFS_DIRHASH       # Improve performance on big directories

   Diese Option steigert die Geschwindigkeit von Plattenzugriffen auf
   grossen Verzeichnissen. Dadurch verbraucht das System etwas mehr
   Speicher als vorher. Fu:r stark bescha:ftigte Server oder
   Arbeitsplatzrechner sollten Sie diese Option aktiviert lassen. Auf
   kleineren Systemen, bei denen Speicher eine kostbare Ressource
   darstellt oder Systemen, auf denen die Geschwindigkeit der
   Plattenzugriffe nicht wichtig ist, wie Firewalls, ko:nnen Sie
   diese Option abstellen.

 options          MD_ROOT           # MD is a potential root device

   Diese Option aktiviert die Unterstu:ztung fu:r ein
   Root-Dateisystem auf einem speicherbasierten Laufwerk (RAM-Disk).

 options          NFSCLIENT         # Network Filesystem Client
 options          NFSSERVER         # Network Filesystem Server
 options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT

   Das Network Filesystem. Wenn Sie keine Partitionen von einem UNIX
   File-Server u:ber TCP/IP einha:ngen wollen, ko:nnen Sie diese
   Zeile auskommentieren.

 options          MSDOSFS           # MSDOS Filesystem

   Das MS-DOS Dateisystem. Sie ko:nnen diese Zeile auskommentieren,
   wenn Sie nicht vorhaben, eine DOS-Partition beim Booten
   einzuha:ngen. Das no:tige Modul wird ansonsten automatisch
   geladen, wenn Sie das erste Mal eine DOS-Partition einha:ngen.
   Ausserdem ko:nnen Sie mit den ausgezeichneten emulators/mtools aus
   der Ports-Sammlung auf DOS-Floppies zugreifen, ohne diese an- und
   abha:ngen zu mu:ssen (MSDOSFS wird in diesem Fall nicht
   beno:tigt).

 options          CD9660            # ISO 9660 Filesystem

   Das ISO 9660 Dateisystem fu:r CD-ROMs. Sie ko:nnen diese Zeile
   auskommentieren, wenn Sie kein CD-ROM-Laufwerk besitzen oder nur
   ab und an CDs einha:ngen. Das Modul wird automatisch geladen,
   sobald Sie das erste Mal eine CD einha:ngen. Fu:r Audio-CDs
   beno:tigen Sie dieses Dateisystem nicht.

 options          PROCFS            # Process filesystem (requires PSEUDOFS)

   Das Prozessdateisystem. Dies ist ein Pseudo-Dateisystem, das auf
   /proc eingehangen wird und es Programmen wie ps(1) erlaubt, mehr
   Informationen u:ber laufende Prozesse auszugeben. PROCFS sollte
   von FreeBSD nicht mehr beno:tigt werden, da die meisten Debug- und
   U:berwachungs-Werkzeuge nicht mehr darauf angewiesen sind. Daher
   wird das Prozessdateisystem auch nicht mehr automatisch in das
   System eingebunden.

 options          PSEUDOFS          # Pseudo-filesystem framework

   Kernel, die PROCFS verwenden, mu:ssen auch die Option PSEUDOFS
   verwenden.

 options          GEOM_PART_GPT          # GUID Partition Tables.

   Diese Option ermo:glicht eine grosse Anzahl Partitionen auf einem
   einzelnen Laufwerk.

 options          COMPAT_43         # Compatible with BSD 4.3 [KEEP THIS!]

   Stellt die Kompatibilita:t zu 4.3BSD sicher. Belassen Sie diese
   Option, da sich manche Programme recht sonderbar verhalten werden,
   wenn Sie diese auskommentieren.

 options          COMPAT_FREEBSD4   # Compatible with FreeBSD4

   Diese Option stellt sicher, dass Anwendungen, die auf a:lteren
   FreeBSD Versionen u:bersetzt wurden und alte Systemaufrufe
   verwenden, noch lauffa:hig sind. Wir empfehlen, diese Option auf
   allen i386-Systemen zu verwenden, auf denen vielleicht noch
   a:ltere Anwendungen laufen sollen. Auf Plattformen, die erst ab
   FreeBSD 5.0 unterstu:tzt werden (wie ia64 und SPARC(R)), wird
   diese Option nicht beno:tigt.

 options          COMPAT_FREEBSD5   # Compatible with FreeBSD5

   Diese Option wird ab FreeBSD 6.X beno:tigt, um Programme, die
   unter FreeBSD 5.X-Versionen mit FreeBSD 5.X-Systemaufrufen
   kompiliert wurden, unter FreeBSD 6.X ausfu:hren zu ko:nnen.

 options          COMPAT_FREEBSD6   # Compatible with FreeBSD6

   Diese Option wird ab FreeBSD 7.X beno:tigt, um Programme, die
   unter FreeBSD 6.X-Versionen mit FreeBSD 6.X-Systemaufrufen
   kompiliert wurden, unter FreeBSD 7.X ausfu:hren zu ko:nnen.

 options          COMPAT_FREEBSD7   # Compatible with FreeBSD7

   Diese Option wird ab FreeBSD 8.X beno:tigt, um Programme, die
   unter FreeBSD 7.X-Versionen mit FreeBSD 7.X-Systemaufrufen
   kompiliert wurden, unter FreeBSD 8.X ausfu:hren zu ko:nnen.

 options          SCSI_DELAY=5000  # Delay (in ms) before probing SCSI

   Dies weist den Kernel an, 5 Sekunden zu warten, bevor er anfa:ngt
   nach SCSI-Gera:ten auf dem System zu suchen. Wenn Sie nur
   IDE-Gera:te besitzen, ko:nnen Sie die Anweisung ignorieren. Sie
   ko:nnen versuchen, den Wert zu senken, um den Startvorgang zu
   beschleunigen. Wenn FreeBSD dann Schwierigkeiten hat, Ihre
   SCSI-Gera:te zu erkennen, sollten Sie den Wert natu:rlich wieder
   erho:hen.

 options          KTRACE            # ktrace(1) support

   Dies schaltet die Kernel-Prozessverfolgung (engl. kernel process
   tracing) ein, die sehr nu:tzlich bei der Fehlersuche ist.

 options          SYSVSHM           # SYSV-style shared memory

   Diese Option aktiviert die Unterstu:tzung fu:r System V
   Shared-Memory. Die XSHM-Erweiterung von X beno:tigt diese Option
   und viele Graphik-Programme werden die Erweiterung automatisch
   benutzen und schneller laufen. Wenn Sie X benutzen, sollten Sie
   diese Option auf jeden Fall aktivieren.

 options          SYSVMSG           # SYSV-style message queues

   Unterstu:tzung fu:r System V Messages. Diese Option vergro:ssert
   den Kernel nur um einige hundert Bytes.

 options          SYSVSEM           # SYSV-style semaphores

   Unterstu:tzung fu:r System V Semaphoren. Dies wird selten
   gebraucht, vergro:ssert aber den Kernel nur um einige hundert
   Bytes.

     Anmerkung: Die Option -p des Kommandos ipcs(1) zeigt Programme
     an, die diese System V Erweiterungen benutzen.

 options              _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions

   Echtzeit-Erweiterungen, die 1993 zu POSIX(R) hinzugefu:gt wurden.
   Bestimmte Programme wie StarOffice benutzen diese Erweiterungen.

 options          KBD_INSTALL_CDEV  # install a CDEV entry in /dev

   Diese Option erstellt fu:r die Tastatur einen Eintrag im
   Verzeichnis /dev.

 options          ADAPTIVE_GIANT    # Giant mutex is adaptive.

   Giant ist der Name einer Sperre (Mutex) die viele
   Kernel-Ressourcen schu:tzt. Heutzutage ist Giant ein unannehmbarer
   Engpass, der die Leistung eines Systems beeintra:chtigt. Daher
   wird Giant durch Sperren ersetzt, die einzelne Ressourcen
   schu:tzen. Die Option ADAPTIVE_GIANT fu:gt Giant zu den Sperren
   hinzu, auf die gewartet werden kann. Ein Thread, der die Sperre
   Giant von einem anderen Thread benutzt vorfindet, kann nun
   weiterlaufen und auf die Sperre Giant warten. Fru:her wa:re der
   Prozess in den schlafenden Zustand (sleep) gewechselt und ha:tte
   darauf warten mu:ssen, dass er wieder laufen kann. Wenn Sie sich
   nicht sicher sind, belassen Sie diese Option.

     Anmerkung: Beachten Sie, dass ab FreeBSD 8.0-RELEASE und neuer
     alle Mutexe in der Voreinstellung adaptiv sein werden, es sei
     denn, Sie werden durch das Setzen der Option NO_ADAPTIVE_MUTEXES
     explizit als nichtadaptiv deklariert. Als Folge dessen ist Giant
     nun in in der Voreinstellung ebenfalls adaptiv, daher ist in
     diesen Versionen die Kerneloption ADAPTIVE_GIANT nicht mehr in
     der Kernelkonfigurationsdatei enthalten.

 device          apic               # I/O APIC

   Das apic-Gera:lt ermo:glicht die Benutzung des I/O APIC fu:r die
   Interrupt-Auslieferung. Das apic-Gera:lt kann mit Kerneln fu:r
   Einprozessorsysteme und Mehrprozessorsysteme benutzt werden.
   Kernel fu:r Mehrprozessorsysteme beno:tigen diese Option zwingend.
   Die Unterstu:tzung fu:r Mehrprozessorsysteme aktivieren Sie mit
   der Option options SMP.

     Anmerkung: Das apic-Gera:t existiert nur unter der
     i386-Architektur, daher ist es sinnlos, diese Zeile unter einer
     anderen Architektur in Ihre Kernelkonfigurationsdatei
     aufzunehmen.

 device          eisa

   Fu:gen Sie diese Zeile ein, wenn Sie ein EISA-Motherboard
   besitzen. Dies aktiviert die Erkennung und Konfiguration von allen
   Gera:ten auf dem EISA Bus.

 device          pci

   Wenn Sie ein PCI-Motherboard besitzen, fu:gen Sie diese Zeile ein.
   Dies aktiviert die Erkennung von PCI-Karten und die PCI-ISA
   bridge.

 # Floppy drives
 device          fdc

   Der Floppy-Controller.

 # ATA and ATAPI devices
 device          ata

   Dieser Treiber unterstu:tzt alle ATA und ATAPI Gera:te. Eine
   device ata Zeile reicht aus und der Kernel wird auf modernen
   Maschinen alle PCI ATA/ATAPI Gera:te entdecken.

 device          atadisk                 # ATA disk drives

   Fu:r ATA-Plattenlaufwerke brauchen Sie diese Zeile zusammen mit
   device ata.

 device          ataraid                 # ATA RAID drives

   Fu:r ATA-RAID brauchen Sie diese Zeile zusammen mit device ata.

 device          atapicd                 # ATAPI CDROM drives

   Zusammen mit device ata wird dies fu:r ATAPI CD-ROM Laufwerke
   beno:tigt.

 device          atapifd                 # ATAPI floppy drives

   Zusammen mit device ata wird dies fu:r ATAPI Floppy Laufwerke
   beno:tigt.

 device          atapist                 # ATAPI tape drives

   Zusammen mit device ata wird dies fu:r ATAPI Bandlaufwerke
   beno:tigt.

 options         ATA_STATIC_ID           # Static device numbering

   Erzwingt eine statische Gera:tenummer fu:r den Controller; ohne
   diese Option werden die Nummern dynamisch zugeteilt.

 # SCSI Controllers
 device          ahb        # EISA AHA1742 family
 device          ahc        # AHA2940 and onboard AIC7xxx devices
 options         AHC_REG_PRETTY_PRINT     # Print register bitfields in debug
                                          # output.  Adds ~128k to driver.
 device          ahd        # AHA39320/29320 and onboard AIC79xx devices
 options         AHD_REG_PRETTY_PRINT     # Print register bitfields in debug
                                          # output.  Adds ~215k to driver.
 device          amd        # AMD 53C974 (Teckram DC-390(T))
 device          isp        # Qlogic family
 #device         ispfw      # Firmware for QLogic HBAs- normally a module
 device          mpt        # LSI-Logic MPT-Fusion
 #device         ncr        # NCR/Symbios Logic
 device          sym        # NCR/Symbios Logic (newer chipsets + those of `ncr'))
 device          trm        # Tekram DC395U/UW/F DC315U adapters

 device          adv        # Advansys SCSI adapters
 device          adw        # Advansys wide SCSI adapters
 device          aha        # Adaptec 154x SCSI adapters
 device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 device          bt         # Buslogic/Mylex MultiMaster SCSI adapters

 device          ncv        # NCR 53C500
 device          nsp        # Workbit Ninja SCSI-3
 device          stg        # TMC 18C30/18C50

   SCSI-Controller. Kommentieren Sie alle Controller aus, die sich
   nicht in Ihrem System befinden. Wenn Sie ein IDE-System besitzen,
   ko:nnen Sie alle Eintra:ge entfernen. Die Zeilen mit den
   *_REG_PRETTY_PRINT-Eintra:gen aktivieren Debugging-Optionen fu:r
   die jeweiligen Treiber.

 # SCSI peripherals
 device          scbus      # SCSI bus (required for SCSI)
 device          ch         # SCSI media changers
 device          da         # Direct Access (disks)
 device          sa         # Sequential Access (tape etc)
 device          cd         # CD
 device          pass       # Passthrough device (direct SCSI access)
 device          ses        # SCSI Environmental Services (and SAF-TE)

   SCSI Peripheriegera:te. Kommentieren Sie wieder alle Gera:te aus,
   die Sie nicht besitzen. Besitzer von IDE-Systemen ko:nnen alle
   Eintra:ge entfernen.

     Anmerkung: Der USB-umass(4)-Treiber und einige andere Treiber
     benutzen das SCSI-Subsystem obwohl sie keine SCSI-Gera:te sind.
     Belassen Sie die SCSI-Unterstu:tzung im Kernel, wenn Sie solche
     Treiber verwenden.

 # RAID controllers interfaced to the SCSI subsystem
 device          amr        # AMI MegaRAID
 device          arcmsr     # Areca SATA II RAID
 device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
 device          ciss       # Compaq Smart RAID 5*
 device          dpt        # DPT Smartcache III, IV - See NOTES for options
 device          hptmv      # Highpoint RocketRAID 182x
 device          hptrr      # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
 device          iir        # Intel Integrated RAID
 device          ips        # IBM (Adaptec) ServeRAID
 device          mly        # Mylex AcceleRAID/eXtremeRAID
 device          twa        # 3ware 9000 series PATA/SATA RAID

 # RAID controllers
 device          aac        # Adaptec FSA RAID
 device          aacp       # SCSI passthrough for aac (requires CAM)
 device          ida        # Compaq Smart RAID
 device          mfi        # LSI MegaRAID SAS
 device          mlx        # Mylex DAC960 family
 device          pst        # Promise Supertrak SX6000
 device          twe        # 3ware ATA RAID

   Unterstu:tzte RAID Controller. Wenn Sie keinen der aufgefu:hrten
   Controller besitzen, kommentieren Sie die Eintra:ge aus oder
   entfernen sie.

 # atkbdc0 controls both the keyboard and the PS/2 mouse
 device          atkbdc     # AT keyboard controller

   Der Tastatur-Controller (atkbdc) ist fu:r die Ein- und Ausgabe von
   AT-Tastaturen und PS/2 Zeigegera:ten (z.B. einer Maus)
   verantwortlich. Dieser Controller wird vom Tastaturtreiber (atkbd)
   und dem PS/2 Gera:tetreiber (psm) beno:tigt.

 device          atkbd      # AT keyboard

   Zusammen mit dem atkbdc Controller bietet der atkbd Treiber
   Zugriff auf AT-Tastaturen.

 device          psm        # PS/2 mouse

   Benutzen Sie dieses Gera:t, wenn Sie eine Maus mit PS/2 Anschluss
   besitzen.

 device          kbdmux        # keyboard multiplexer

   Basisunterstu:tzung fu:r Tastaturmultiplexer. Verwenden Sie nur
   eine einzige Tastatur, ko:nnen Sie diese Zeile aus Ihrer
   Kernelkonfigurationsdatei entfernen.

 device          vga        # VGA video card driver

   Der Grafikkartentreiber.

 device          splash     # Splash screen and screen saver support

   Zeigt einen "Splash Screen" beim Booten. Diese Zeile wird auch von
   den Bildschirmschonern beno:tigt.

 # syscons is the default console driver, resembling an SCO console
 device          sc

   sc ist in der Voreinstellung der Treiber fu:r die Konsole, die der
   SCO-Konsole a:hnelt. Da die meisten bildschirmorientierten
   Programme auf die Konsole mit Hilfe einer Datenbank wie termcap
   zugreifen, sollte es keine Rolle spielen, ob Sie diesen Treiber
   oder vt, den VT220 kompatiblen Konsolentreiber einsetzen. Wenn Sie
   Probleme mit bildschirmorientierten Anwendungen unter dieser
   Konsole haben, setzen Sie beim Anmelden die Variable TERM auf den
   Wert VT220.

 # Enable this for the pcvt (VT220 compatible) console driver
 #device          vt
 #options         XSERVER          # support for X server on a vt console
 #options         FAT_CURSOR       # start with block cursor

   Der VT220 kompatible Konsolentreiber ist kompatibel zu VT100/102.
   Auf einigen Laptops, die aufgrund der Hardware inkompatibel zum sc
   Treiber sind, funktioniert dieser Treiber gut. Beim Anmelden
   sollten Sie die Variable TERM auf den Wert vt100 setzen. Dieser
   Treiber kann sich als nu:tzlich erweisen, wenn Sie sich u:ber das
   Netzwerk auf vielen verschiedenen Maschinen anmelden, da dort oft
   Eintra:ge in termcap oder terminfo fu:r das sc Gera:t fehlen.
   Dagegen sollte vt100 auf jeder Plattform unterstu:tzt werden.

 device          agp

   Fu:gen Sie diese Zeile ein, wenn Sie eine AGP-Karte besitzen.
   Damit werden Motherboards mit AGP und AGP GART unterstu:tzt.

 # Power management support (see NOTES for more options)
 #device          apm

   Unterstu:tzung zur Energieverwaltung. Diese Option ist nu:tzlich
   fu:r Laptops, allerdings ist sie in GENERIC deaktiviert.

 # Add suspend/resume support for the i8254.
 device           pmtimer

   Zeitgeber fu:r Ereignisse der Energieverwaltung (APM und ACPI).

 # PCCARD (PCMCIA) support
 # PCMCIA and cardbus bridge support
 device          cbb               # cardbus (yenta) bridge
 device          pccard            # PC Card (16-bit) bus
 device          cardbus           # CardBus (32-bit) bus

   PCMCIA Unterstu:tzung. Wenn Sie einen Laptop benutzen, brauchen
   Sie diese Zeile.

 # Serial (COM) ports
 device          sio               # 8250, 16[45]50 based serial ports

   Die seriellen Schnittstellen, die in der MS-DOS- und Windows-Welt
   COM genannt werden.

     Anmerkung: Wenn Sie ein internes Modem, das COM4 benutzt,
     besitzen und eine serielle Schnittstelle haben, die auf COM2
     liegt, mu:ssen Sie den IRQ des Modems auf 2 setzen (wegen
     undurchsichtigen technischen Gru:nden ist IRQ2 gleich IRQ9).
     Wenn Sie eine serielle Multiport-Karte besitzen, entnehmen Sie
     bitte die Werte, die Sie in die Datei /boot/device.hints
     einfu:gen mu:ssen, der Hilfeseite sio(4). Einige Graphikkarten,
     besonders die auf S3-Chips basierten, benutzen IO-Adressen der
     Form 0x*2e8 und manche billige serielle Karten dekodieren den
     16-Bit IO-Adressraum nicht sauber. Dies fu:hrt zu Konflikten und
     blockiert dann die COM4-Schnittstelle.

     Jeder seriellen Schnittstelle muss ein eigener IRQ zugewiesen
     werden (wenn Sie eine Multiport-Karte verwenden, bei der das
     Teilen von Interrupts unterstu:tzt wird, muss das nicht der Fall
     sein), daher ko:nnen in der Voreinstellung COM3 und COM4 nicht
     benutzt werden.

 # Parallel port
 device          ppc

   Die parallele Schnittstelle auf dem ISA Bus.

 device          ppbus      # Parallel port bus (required)

   Unterstu:tzung fu:r den Bus auf der parallelen Schnittstelle.

 device          lpt        # Printer

   Unterstu:tzung fu:r Drucker u:ber die parallele Schnittstelle.

     Anmerkung: Sie brauchen jede der drei Zeilen, um die
     Unterstu:tzung fu:r einen Drucker an der parallelen
     Schnittstelle zu aktivieren.

 device          plip       # TCP/IP over parallel

   Der Treiber fu:r das Netzwerkinterface u:ber die parallele
   Schnittstelle.

 device          ppi        # Parallel port interface device

   Allgemeine I/O ("geek port") und IEEE1284 I/O Unterstu:tzung.

 #device         vpo        # Requires scbus and da

   Dies aktiviert den Treiber fu:r ein Iomega Zip Laufwerk.
   Zusa:tzlich beno:tigen Sie noch die Unterstu:tzung fu:r scbus und
   da. Die beste Performance erzielen Sie, wenn Sie die Schnittstelle
   im EPP 1.9 Modus betreiben.

 #device         puc

   Aktivieren Sie diesen Treiber, wenn Sie eine serielle oder
   parallele PCI-Karte besitzen, die vom Treiber puc(4) unterstu:tzt
   wird.

 # PCI Ethernet NICs.
 device          de         # DEC/Intel DC21x4x ("Tulip")
 device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
 device          ixgb       # Intel PRO/10GbE Ethernet Card
 device          txp        # 3Com 3cR990 ("Typhoon")
 device          vx         # 3Com 3c590, 3c595 ("Vortex")

   Verschiedene Treiber fu:r PCI-Netzwerkkarten. Gera:te, die sich
   nicht in Ihrem System befinden, ko:nnen Sie entfernen oder
   auskommentieren.

 # PCI Ethernet NICs that use the common MII bus controller code.
 # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
 device          miibus     # MII bus support

   Einige PCI 10/100 Ethernet Netzwerkkarten, besonders die, die
   MII-fa:hige Transceiver verwenden oder Transceiver-Steuerungen
   implementieren, die a:hnlich wie MII funktionieren, beno:tigen die
   Unterstu:tzung fu:r den MII-Bus. Die Zeile device miibus fu:gt dem
   Kernel die Unterstu:tzung fu:r das allgemeine miibus API und allen
   PHY-Treibern hinzu.

 device          bce        # Broadcom BCM5706/BCM5708 Gigabit Ethernet
 device          bfe        # Broadcom BCM440x 10/100 Ethernet
 device          bge        # Broadcom BCM570xx Gigabit Ethernet
 device          dc         # DEC/Intel 21143 and various workalikes
 device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
 device          lge        # Level 1 LXT1001 gigabit ethernet
 device          msk        # Marvell/SysKonnect Yukon II Gigabit Ethernet
 device          nge        # NatSemi DP83820 gigabit ethernet
 device          nve        # nVidia nForce MCP on-board Ethernet Networking
 device          pcn        # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
 device          re         # RealTek 8139C+/8169/8169S/8110S
 device          rl         # RealTek 8129/8139
 device          sf         # Adaptec AIC-6915 ("Starfire")
 device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
 device          sk         # SysKonnect SK-984x & SK-982x gigabit Ethernet
 device          ste        # Sundance ST201 (D-Link DFE-550TX)
 device          stge       # Sundance/Tamarack TC9021 gigabit Ethernet
 device          ti         # Alteon Networks Tigon I/II gigabit Ethernet
 device          tl         # Texas Instruments ThunderLAN
 device          tx         # SMC EtherPower II (83c170 "EPIC")
 device          vge        # VIA VT612x gigabit ethernet
 device          vr         # VIA Rhine, Rhine II
 device          wb         # Winbond W89C840F
 device          xl         # 3Com 3c90x ("Boomerang", "Cyclone")

   Treiber, die den MII Bus Controller Code benutzen.

 # ISA Ethernet NICs.  pccard NICs included.
 device          cs         # Crystal Semiconductor CS89x0 NIC
 # 'device ed' requires 'device miibus'
 device          ed         # NE[12]000, SMC Ultra, 3c503, DS8390 cards
 device          ex         # Intel EtherExpress Pro/10 and Pro/10+
 device          ep         # Etherlink III based cards
 device          fe         # Fujitsu MB8696x based cards
 device          ie         # EtherExpress 8/16, 3C507, StarLAN 10 etc.
 device          lnc        # NE2100, NE32-VL Lance Ethernet cards
 device          sn         # SMC's 9000 series of Ethernet chips
 device          xe         # Xircom pccard Ethernet

 # ISA devices that use the old ISA shims
 #device         le

   Treiber fu:r ISA Ethernet Karten. Schauen Sie in
   /usr/src/sys/i386/conf/NOTES nach, um zu sehen, welche Karte von
   welchem Treiber unterstu:tzt wird.

 # Wireless NIC cards
 device          wlan       # 802.11 support

   Generische 802.11-Unterstu:tzung. Diese Zeile wird unbedingt
   beno:tigt, wenn Sie WLAN nutzen wollen.

 device          wlan_wep        # 802.11 WEP support
 device          wlan_ccmp       # 802.11 CCMP support
 device          wlan_tkip       # 802.11 TKIP support

   Krypto-Unterstu:tzung fu:r 802.11-Gera:te. Sie beno:tigen diese
   Zeilen, wenn Sie Ihr drahtloses Netzwerk verschlu:sseln und die
   802.11-Sicherheitsprotokolle einsetzen wollen.

 device          an              # Aironet 4500/4800 802.11 wireless NICs
 device          ath             # Atheros pci/cardbus NIC's
 device          ath_hal         # Atheros HAL (Hardware Access Layer)
 device          ath_rate_sample # SampleRate tx rate control for ath
 device          awi        # BayStack 660 and others
 device          ral        # Ralink Technology RT2500 wireless NICs.
 device          wi         # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
 #device         wl         # Older non 802.11 Wavelan wireless NIC.

   Treiber fu:r drahtlose Netzwerkkarten (WLAN).

 # Pseudo devices
 device   loop          # Network loopback

   Das TCP/IP Loopback Device. Wenn Sie eine Telnet oder FTP
   Verbindung zu localhost (alias 127.0.0.1) aufbauen, erstellen Sie
   eine Verbindung zu sich selbst durch dieses Device. Die Angabe
   dieser Option ist verpflichtend.

 device   random        # Entropy device

   Kryptographisch sicherer Zufallszahlengenerator.

 device   ether         # Ethernet support

   ether brauchen Sie nur, wenn Sie eine Ethernet-Karte besitzen. Der
   Treiber unterstu:tzt das Ethernet-Protokoll.

 device   sl            # Kernel SLIP

   sl aktiviert die SLIP-Unterstu:tzung. SLIP ist fast vollsta:ndig
   von PPP verdra:ngt worden, da letzteres leichter zu konfigurieren,
   besser geeignet fu:r Modem zu Modem Kommunikation und ma:chtiger
   ist.

 device   ppp           # Kernel PPP

   Dies ist Kernel Unterstu:tzung fu:r PPP-Wa:hlverbindungen. Es
   existiert auch eine PPP-Version im Userland, die den tun Treiber
   benutzt. Die Userland-Version ist flexibler und bietet mehr Option
   wie die Wahl auf Anforderung.

 device   tun           # Packet tunnel.

   Dies wird vom der Userland PPP benutzt. Die Zahl hinter tun gibt
   die Anzahl der unterstu:tzten gleichzeitigen Verbindungen an.
   Weitere Informationen erhalten Sie im Abschnitt PPP dieses
   Handbuchs.

 device   pty           # Pseudo-ttys (telnet etc)

   Dies ist ein "Pseudo-Terminal" oder simulierter Login-Terminal. Er
   wird von einkommenden telnet und rlogin Verbindungen, xterm und
   anderen Anwendungen wie Emacs benutzt.

 device   md            # Memory "disks"

   Pseudo-Gera:t fu:r Speicher-Laufwerke.

 device   gif           # IPv6 and IPv4 tunneling

   Dieses Gera:t tunnelt IPv6 u:ber IPv4, IPv4 u:ber IPv6, IPv4 u:ber
   IPv4 oder IPv6 u:ber IPv6. Das Gera:t gif kann die Anzahl der
   beno:tigten Gera:te automatisch bestimmen ("auto-cloning").

 device   faith         # IPv6-to-IPv4 relaying (translation)

   Dieses Pseudo-Gera:t fa:ngt zu ihm gesendete Pakete ab und leitet
   Sie zu einem Daemon weiter, der Verkehr zwischen IPv4 und IPv6
   vermittelt.

 # The `bpf' device enables the Berkeley Packet Filter.
 # Be aware of the administrative consequences of enabling this!
 # Note that 'bpf' is required for DHCP.
 device   bpf           # Berkeley packet filter

   Das ist der Berkeley Paketfilter. Dieses Pseudo-Gera:t kann
   Netzwerkkarten in den "promiscuous" Modus setzen und erlaubt es
   damit, Pakete auf einem Broadcast Netzwerk (z.B. einem Ethernet)
   einzufangen. Die Pakete ko:nnen auf der Festplatte gespeichert und
   mit tcpdump(1) untersucht werden.

     Anmerkung: Das bpf(4)-Gera:t wird von dhclient(8) genutzt, um
     die IP-Adresse des Default-Routers zu bekommen. Wenn Sie DHCP
     benutzen, lassen Sie diese Option bitte aktiviert.

 # USB support
 device          uhci          # UHCI PCI->USB interface
 device          ohci          # OHCI PCI->USB interface
 device          ehci          # EHCI PCI->USB interface (USB 2.0)
 device          usb           # USB Bus (required)
 #device         udbp          # USB Double Bulk Pipe devices
 device          ugen          # Generic
 device          uhid          # "Human Interface Devices"
 device          ukbd          # Keyboard
 device          ulpt          # Printer
 device          umass         # Disks/Mass storage - Requires scbus and da
 device          ums           # Mouse
 device          ural          # Ralink Technology RT2500USB wireless NICs
 device          urio          # Diamond Rio 500 MP3 player
 device          uscanner      # Scanners
 # USB Ethernet, requires mii
 device          aue           # ADMtek USB Ethernet
 device          axe           # ASIX Electronics USB Ethernet
 device          cdce          # Generic USB over Ethernet
 device          cue           # CATC USB Ethernet
 device          kue           # Kawasaki LSI USB Ethernet
 device          rue           # RealTek RTL8150 USB Ethernet

   Unterstu:tzung fu:r verschiedene USB Gera:te.

 # FireWire support
 device          firewire      # FireWire bus code
 device          sbp           # SCSI over FireWire (Requires scbus and da)
 device          fwe           # Ethernet over FireWire (non-standard!)

   Verschiedene Firewire-Gera:te.

   Mehr Informationen und weitere von FreeBSD unterstu:tzte Gera:te
   entnehmen Sie bitte /usr/src/sys/i386/conf/NOTES.

     --------------------------------------------------------------

  9.6.1. Hohe Speicheranforderungen (PAE)

   Systeme mit hohen Speicheranforderungen beno:tigen mehr Speicher
   als den auf 4 Gigabyte beschra:nkten User- und Kernel-Adressraum
   (KVA). Mit dem Pentium Pro und neueren CPUs hat Intel den
   Adressraum auf 36-Bit erweitert.

   Die Physical-Address-Extension (PAE) von Intels Pentium Pro und
   neueren Prozessoren unterstu:tzt bis zu 64 Gigabyte Speicher.
   FreeBSD kann diesen Speicher mit der Option PAE in der
   Kernelkonfiguration nutzen. Die Option gibt es in allen aktuellen
   FreeBSD-Versionen. Wegen Beschra:kungen der
   Intel-Speicherarchitektur wird keine Unterscheidung zwischen
   Speicher oberhalb oder unterhalb von 4 Gigabyte getroffen.
   Speicher u:ber 4 Gigabyte wird einfach dem zur Verfu:gung
   stehenden Speicher zugeschlagen.

   Sie aktivieren PAE im Kernel, indem Sie die folgende Zeile in die
   Kernelkonfigurationsdatei einfu:gen:

 options             PAE

     Anmerkung: FreeBSD unterstu:tzt PAE nur auf IA-32 Prozessoren.
     Die PAE-Unterstu:tzung wurde zudem noch nicht hinreichend
     getestet und befindet sich im Vergleich zu anderen Komponenten
     von FreeBSD noch im Beta-Stadium.

   Die PAE-Unterstu:tzung in FreeBSD ist mit den nachstehenden
   Einschra:nkungen verbunden:

     * Ein Prozess kann nicht mehr als 4 Gigabyte virtuellen Speicher
       benutzen.

     * Gera:tetreiber, die nicht die bus_dma(9)-Schnittstelle
       benutzen, fu:hren zusammen mit einem PAE-Kernel zu
       Datenverlusten. Diese Treiber sollen nicht mit einem
       PAE-Kernel verwendet werden. Daher gibt es unter FreeBSD eine
       zusa:tzliche PAE-Kernelkonfigurationsdatei, die alle Treiber
       entha:lt, die mit einem PAE-Kernel funktionieren.

     * Einige Systemvariablen werden abha:ngig von der
       Speichergro:sse eingestellt. In einem PAE-System mit viel
       Speicher ko:nnen die Werte daher zu hoch eingestellt sein. Ein
       Beispiel ist die sysctl-Variable kern.maxvnodes, die die
       maximale Anzahl von vnodes im Kernel bestimmt. Solche
       Variablen sollten auf einen angemessenen Wert eingestellt
       werden.

     * Es kann erforderlich sein, den virtuellen Adressraum des
       Kernels (KVA) zu vergro:ssern oder, wie oben beschrieben, den
       Wert einer ha:ufig gebrauchten Kernelvariablen zu verringern.
       Dies verhindert einen U:berlauf des KVAs. Der Adressraum des
       Kernels kann mit der Kerneloption KVA_PAGES vergro:ssert
       werden.

   Hinweise zur Leistungssteigerung und Stabilita:t entnehmen Sie
   bitte der Hilfeseite tuning(7). Die PAE-Unterstu:tzung von FreeBSD
   wird in der Hilfeseite pae(4) beschrieben.

     --------------------------------------------------------------

9.7. Wenn etwas schiefgeht

   Es gibt vier Hauptfehlerquellen beim Erstellen eines angepassten
   Kernels:

   config verursacht Fehler:

           Wenn config(8) misslingt, liegen Fehler in der
           Kernelkonfigurationsdatei vor. Zum Glu:ck gibt config(8)
           die die Zeilennummer der Fehlerstelle an, sodass Sie den
           Fehler schnell finden ko:nnen. Beispielsweise ko:nnten Sie
           folgende Fehlermeldung sehen:

 config: line 17: syntax error

           Vergleichen Sie die angegebene Zeile mit GENERIC und
           stellen Sie sicher, dass das Schlu:sselwort richtig
           geschrieben ist.

   make verursacht Fehler:

           Wenn make misslingt, liegen meistens Fehler in der
           Konfigurationsdatei vor, die aber nicht schwerwiegend
           genug fu:r config(8) waren. U:berpru:fen Sie wiederum Ihre
           Konfiguration und wenn Sie keinen Fehler entdecken
           ko:nnen, schicken Sie eine E-Mail mit Ihrer
           Kernelkonfiguration an die Mailingliste 'Fragen und
           Antworten zu FreeBSD' <de-bsd-questions@de.FreeBSD.org>.
           Sie sollten dann schnell Hilfe erhalten.

   Der Kernel bootet nicht:

           Wenn der Kernel nicht booten will, ist das noch lange kein
           Grund zur Panik. Denn FreeBSD besitzt exzellente
           Mechanismen zur Wiederherstellung nach dem Einsatz
           inkompatibler Kernel. Den Kernel, mit dem Sie booten
           wollen, ko:nnen Sie sich im FreeBSD Boot-Loader aussuchen.
           Dazu wa:hlen Sie im Bootmenu: die Option "Escape to a
           loader prompt". Danach geben Sie den Befehl boot
           kernel.old oder den Namen eines anderen Kernels ein, der
           sauber bootet. Fu:r alle Fa:lle sollten Sie immer einen
           Kernel, der garantiert bootet, bereit halten.

           Nun ko:nnen Sie die Konfiguration noch einmal u:berpru:fen
           und den Kernel neu kompilieren. Dazu ist /var/log/messages
           sehr nu:tzlich, da hier sa:mtliche Kernelmeldungen von
           jedem erfolgreichen Bootvorgang gespeichert werden.
           dmesg(8) gibt Ihnen die Kernelmeldungen vom letzten
           Bootvorgang aus.

             Anmerkung: Fu:r den Fall, dass Sie Probleme bei dem
             Kernelbau bekommen, heben Sie sich immer einen GENERIC
             oder einen anderen Kernel, der garantiert bootet, auf.
             Der Name dieses Kernels sollte so gewa:hlt sein, dass er
             beim na:chsten Bau nicht u:berschrieben wird. Sie
             ko:nnen sich nicht auf kernel.old verlassen, da dieser
             Kernel durch den zuletzt installierten Kernel, der
             vielleicht schon kaputt war, wa:hrend der Installation
             ersetzt wird. Kopieren Sie den funktionierenden Kernel
             so schnell wie mo:glich in das richtige Verzeichnis
             (/boot/kernel). Ansonsten funktionieren Kommandos wie
             ps(1) nicht. Benennen Sie dazu einfach das Verzeichnis
             des funktionierenden Kernels um:

 # mv /boot/kernel /boot/kernel.bad
 # mv /boot/kernel.good /boot/kernel

   Der Kernel ist in Ordnung, aber ps geht nicht mehr:

           Wenn Sie eine andere Version des Kernels installiert haben
           als die, mit der Ihre Systemwerkzeuge gebaut wurden
           (beispielsweise einen -CURRENT-Kernel auf einem
           -RELEASE-System), werden Programme wie ps(1) und vmstat(8)
           nicht mehr funktionieren. Sie sollten nun das komplette
           System neu bauen und installieren. Achten Sie darauf, dass
           die Quellen, aus denen Sie das System bauen, zum
           installierten Kernel passen. Das ist ein Grund dafu:r,
           warum man nie einen Kernel, der nicht zur Systemversion
           passt, benutzen sollten.

     --------------------------------------------------------------

                          Kapitel 10. Drucken

   Beigetragen von Sean Kelly. Restrukturiert und aktualisiert durch
   Jim Mock. U:bersetzt von Stefan Bethke.

10.1. U:bersicht

   Mit FreeBSD ko:nnen Sie viele unterschiedliche Drucker benutzen,
   von den a:ltesten Nadeldruckern bis zu den neuesten Laserdruckern,
   und allen mo:glichen Gera:ten dazwischen. Auf diese Weise ko:nnen
   Sie hochwertige Ausdrucke mit Ihren Programmen erzeugen.

   Sie ko:nnen FreeBSD auch so konfigurieren, dass es Druckauftra:ge
   von anderen Computern u:ber Ihr lokales Netzwerk entgegennimmt,
   seien es Windows-, Mac OS- oder andere FreeBSD-Computer. FreeBSD
   stellt sicher, dass die Druckauftra:ge in der richtigen
   Reihenfolge bearbeitet werden und kann optional ein Deckblatt mit
   dem Namen des Auftraggebers eines Druckauftrags aufgeben. FreeBSD
   kann auch Statistiken u:ber die Computer und Benutzer fu:hren, die
   Ausdrucke in Auftrag geben.

   In diesem Kapitel erfahren Sie, wie Sie:

     * FreeBSD-Druckerwarteschlangen einrichten.

     * Druckfilter installieren, die Druckauftra:ge je nach Bedarf
       besonders behandeln und z.B. Dokumente automatisch in eine
       Form umwandeln, die Ihr Drucker versteht.

     * Druckauftra:ge mit einem Deckblatt versehen ko:nnen.

     * Mit einem Drucker drucken ko:nnen, der an einen anderen
       Computer angeschlossen ist.

     * Mit einem Drucker drucken ko:nnen, der direkt an das Netzwerk
       angeschlossen ist.

     * die Gro:sse von Druckauftra:gen beschra:nken ko:nnen, oder
       bestimmte Benutzer von den Benutzung des Drucksystems
       ausschliessen ko:nnen.

     * Statistiken aufzeichnen und die Benutzung des Drucksystems
       nach Benutzern und Computern aufschlu:sseln ko:nnen.

     * Probleme beim Drucken diagnostizieren und beheben ko:nnen.

   Bevor Sie dieses Kapitel lesen:

     * Machen Sie sich mit der Konfiguration und Installation eines
       neuen Kernels vertraut (Kapitel 9).

     --------------------------------------------------------------

10.2. Einfu:hrung

   Um einen Drucker mit FreeBSD zu benutzen, ko:nnen Sie das Berkeley
   Line Printer Spooling System, das auch als LPD-Drucksystem oder
   nur als LPD bekannt ist, verwenden. Dieses System zur Verwaltung
   von Druckauftra:gen ist das Standardsystem in FreeBSD. Dieses
   Kapitel fu:hrt Sie in LPD und dessen Konfiguration ein.

   Wenn Sie bereits mit LPD oder einem anderen Drucksystem vertraut
   sind, ko:nnen Sie direkt im Abschnitt Einfache
   Drucker-Konfiguration weiterlesen.

   LPD steuert alle Aspekte rund um die Drucker, die an den Computer
   angeschlossen sind. Es ist verantwortlich fu:r:

     * Die Zugriffskontrolle fu:r direkt und u:ber das Netzwerk
       angeschlossene Drucker.

     * Die Entgegennahme von Dateien, die gedruckt werden sollen;
       eine so an das Drucksystem u:bergebene Datei wird als
       Druckauftrag bezeichnet.

     * Den gleichzeitigen Zugriff von mehreren Benutzern auf einen
       Drucker. Alle Druckauftra:ge werden in einer
       Druckerwarteschlange gesammelt, und nacheinander abgearbeitet.

     * Den Druck von Deckbla:ttern (auch als Banner- oder
       Burst-Seiten bezeichnet), damit Benutzer ihre Druckauftra:ge
       schnell innerhalb eines Stapels von ausgedruckten Dokumenten
       finden ko:nnen.

     * Das Einstellen der korrekten Kommunikations-Parameter fu:r
       Drucker, die seriell angeschlossen sind.

     * Das Senden von Druckauftra:gen an ein LPD-System auf einem
       anderen Computer.

     * Das Ausfu:hren von speziellen Filtern, um Druckauftra:ge in
       die unterschiedlichen Seitenbeschreibungssprachen umzusetzen
       oder an die Fa:higkeiten eines Druckers anzupassen.

     * Das Erfassen von Verrechnungsdaten fu:r Druckauftra:ge.

   Sie ko:nnen LPD alle diese Funktionen, oder auch nur einen Teil
   davon, ausfu:hren lassen, indem Sie die Konfigurationsdatei
   (/etc/printcap) anpassen, und indem Sie spezielle Filterprogramme
   bereitstellen.

     --------------------------------------------------------------

  10.2.1. Vorteile des Drucksystems

   Wenn Sie der einzige Benutzer sind, der mit Ihrem Computer
   arbeitet, fragen Sie sich vielleicht, warum Sie die
   Konfigurationsarbeit fu:r das Drucksystem auf sich nehmen sollten,
   wenn Sie Deckbla:tter, Abrechnungsdaten oder Zugriffskontrolle
   nicht beno:tigen. Obwohl Sie direkt auf den Drucker zugreifen
   ko:nnen, bietet LPD eine Reihe von Vorteilen:

     * LPD druckt im Hintergrund; Sie mu:ssen nicht erst darauf
       warten, dass Ihr Druckauftrag an den Drucker u:bermittelt
       worden ist.

     * LPD kann Druckauftra:ge mit Kopf- oder Fusszeilen versehen,
       oder ein spezielles Dateiformat, wie DVI von TeX, automatisch
       in ein fu:r den Drucker versta:ndliches Format umwandeln; Sie
       mu:ssen diese Schritte nicht manuell ausfu:hren.

     * Viele freie und kommerzielle Programme, mit denen Sie drucken
       ko:nnen, erwarten, mithilfe des LPD-Drucksystems zu drucken.
       Wenn Sie das Drucksystem konfiguriert haben, ko:nnen Sie
       einfacher mit neuer oder auch vorhandener Software drucken.

     --------------------------------------------------------------

10.3. Grund-Konfiguration

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

   Um einen Drucker mit dem LPD-Drucksystem benutzen zu ko:nnen,
   mu:ssen Sie sowohl Ihren Drucker und die Drucker-Schnittstelle als
   auch das LPD-Drucksystem konfigurieren. Dieser Abschnitt
   beschreibt zwei Konfigurationen:

     * Abschnitt Einfache Drucker-Konfiguration beschreibt, wie Sie
       einen Drucker an Ihren Computer anschliessen und LPD so
       konfigurieren, dass Sie Textdateien zum Drucker senden
       ko:nnen.

     * Abschnitt Erweiterte Drucker-Konfiguration beschreibt, wie Sie
       mit speziellen Dateiformaten umgehen ko:nnen, wie Sie
       Deckbla:tter drucken ko:nnen, wie Sie den Zugriff auf Drucker
       einschra:nken ko:nnen, und wie Sie Verrechnungsdaten
       aufzeichnen ko:nnen.

     --------------------------------------------------------------

  10.3.1. Einfache Drucker-Konfiguration

   Dieser Abschnitt beschreibt, wie Sie die LPD-Software
   konfigurieren, um Ihren Drucker zu benutzen. Diese Grundlagen
   werden erkla:rt:

     * Abschnitt Hardware-Konfiguration erla:utert, wie Sie Ihren
       Drucker an Ihren Computer anschliessen ko:nnen.

     * Abschnitt Software-Konfiguration erkla:rt, wie Sie die
       LPD-Konfigurationsdatei (/etc/printcap) anpassen.

   Wenn Sie einen Drucker einrichten mo:chten, der u:ber das Netzwerk
   angeschlossen ist (anstatt u:ber die serielle oder parallele
   Schnittstelle), lesen Sie bitte Abschnitt Drucker mit direkter
   TCP-Schnittstelle.

   Obwohl dieser Abschnitt "Grund-Konfiguration" heisst, ist die
   Konfiguration relativ komplex. Es ist vergleichsweise schwierig,
   einen Drucker mit Ihrem Computer und dem LPD-Drucksystem zu
   verbinden. Die weiteren Optionen, wie Kopfzeilen oder
   Deckbla:tter, sind einfach zu konfigurieren, sobald die
   Grund-Konfiguration erfolgreich abgeschlossen ist.

     --------------------------------------------------------------

    10.3.1.1. Hardware-Konfiguration

   Dieser Abschnitt beschreibt, u:ber welche Schnittstellen Sie einen
   Drucker mit Ihrem Computer verbinden ko:nnen. Er behandelt sowohl
   die Schnittstellen und Kabel, als auch die Kerneloptionen, die Sie
   beno:tigen, um FreeBSD mit Ihrem Drucker kommunizieren zu lassen.

   Wenn Sie Ihren Drucker bereits erfolgreich mit einem anderen
   Betriebssystem auf Ihrem PC eingesetzt haben, ko:nnen Sie
   wahrscheinlich mit dem Abschnitt Software-Konfiguration
   fortfahren.

     --------------------------------------------------------------

      10.3.1.1.1. Schnittstellen und Kabel

   Praktisch alle Drucker unterstu:tzen mindestens eine dieser
   Schnittstellen:

     * Seriell angeschlossene Drucker werden u:ber eine serielle
       Schnittstelle (auch RS-232 oder COM-Schnittstelle genannt) mit
       Ihrem Computer verbunden. Diese Schnittstelle wird von vielen
       unterschiedlichen Systemen verwendet. Serielle Kabel sind
       leicht erha:ltlich und ko:nnen auch einfach selbst hergestellt
       werden. Einige Drucker erfordern mo:glicherweise ein
       spezielles Kabel oder besondere Kommunikationseinstellungen.
       Die meisten seriellen Schnittstellen von PCs besitzen eine
       maximale Datenu:bertragungsrate von 115200 bps; zum Ausdruck
       grosser Grafiken sind serielle Drucker daher ungeeignet.

     * Parallel angeschlossene Drucker werden u:ber eine parallele
       Schnittstelle mit Ihrem Computer verbunden. Diese
       Schnittstelle wird hauptsa:chlich von PCs und Workstations
       benutzt. Die Schnittstelle bietet eine ho:here
       Datenu:bertragungsrate als serielle Schnittstellen. Kabel sind
       leicht erha:ltlich, sind aber vergleichsweise schwer selbst
       herzustellen. U:blicherweise brauchen keine
       Kommunikationsparameter festgelegt zu werden; dies macht die
       Einrichtung sehr einfach.

       Die parallele Schnittstelle wird auch als
       "Centronics"-Schnittstelle bezeichnet, nach dem Namen des
       Steckverbinders, der hier ha:ufig zum Einsatz kommt.

     * USB-Schnittstelle (Universal Serial Bus) bieten noch ho:here
       Geschwindigkeiten als parallele Schnittstellen oder serielle
       RS-232-Schnittstellen. USB-Kabel sind einfach und billig. Zum
       Drucken ist die USB-Schnittstelle besser geeignet als serielle
       oder parallele Schnittstellen, auf vielen UNIX Systemen werden
       USB-Schnittstellen jedoch nur unzureichend unterstu:tzt. Um
       Probleme zu vermeiden, sollten Sie sich einen Drucker
       anschaffen, der sowohl eine USB-Schnittstelle als auch eine
       parallele Schnittstelle besitzt (viele Drucker besitzen heute
       beide Schnittstellen).

   Im Allgemeinen versenden parallele Schnittstellen Daten nur in
   eine Richtung (vom Computer zum Drucker), serielle Schnittstellen
   und USB-Schnittstellen versenden Daten in beide Richtungen.
   Moderne parallele Schnittstellen (EPP and ECP) u:bertragen Daten
   bi-direktional nach dem Standard IEEE 1284.

   Ein Drucker kann auf zwei Arten bi-direktional angesprochen
   werden. Die erste Methode benutzt einen Druckertreiber, der die
   herstellerspezifische Sprache des Druckers beherrscht. Diese
   Methode wird oft mit Tintenstrahl-Druckern eingesetzt und dazu
   benutzt, den Fu:llstand der Tintenpatronen und andere
   Status-Informationen auszugeben. Die zweite Methode wird benutzt,
   wenn der Drucker PostScript beherrscht.

   Da ein PostScript-Druckauftrag ein komplettes Programm ist, kann
   es auch Daten an den Computer zuru:ckliefern, ohne u:berhaupt eine
   Seite Papier zu bedrucken. Auf diesem Wege werden auch Probleme
   wie z.B. ein Papierstau vom Drucker an den Computer u:bermittelt.
   Daru:berhinaus ist dies die effektivste Methode, um die
   tatsa:chlich gedruckte Anzahl an Seiten vom Drucker abzufragen:
   ein PostScript-Programm ermittelt jeweils vor und direkt nach
   einem Druckauftrag den Seitenza:hler des Druckers, und vergleicht
   die beiden Za:hlerwerte.

     --------------------------------------------------------------

      10.3.1.1.2. Parallele Schnittstellen

   Um einen Drucker mit paralleler Schnittstelle an Ihren Computer
   anzuschliessen, verbinden Sie den Drucker mit einer parallelen
   Schnittstelle Ihres Computers. Die Dokumentation zu Ihrem Drucker
   oder Computer sollte Ihnen hier weiterhelfen.

   Notieren Sie sich, mit welcher parallelen Schnittstelle des
   Computers Sie den Drucker verbunden haben. Die meisten Computer
   haben lediglich eine parallele Schnittstelle. Der
   FreeBSD-Gera:tename der ersten Schnittstelle lautet ppc0, der der
   zweiten ppc1, und so weiter. Der Gera:tename fu:r den Drucker an
   der ersten parallelen Schnittstelle folgt dem selben Schema und
   lautet /dev/lpt0, usw.

     --------------------------------------------------------------

      10.3.1.1.3. Serielle Schnittstellen

   Um einen Drucker mit serieller Schnittstelle an Ihren Computer
   anzuschliessen, verbinden Sie den Drucker mit einer seriellen
   Schnittstelle Ihres Computers. Die Dokumentation zu Ihrem Drucker
   oder Computer sollte Ihnen hier weiterhelfen.

   Sollten Sie sich nicht sicher sein, welches das "richtige Kabel"
   ist, ko:nnen Sie eine dieser Alternativen ausprobieren:

     * Ein Modemkabel verbindet alle Anschlu:sse an einem Ende des
       Kabels eins-zu-eins mit den Anschlu:ssen am anderen Ende des
       Kabels. Ein solches Kabel wird auch als (engl.) "DTE-to-DCE-"
       oder "DEE-zu-DU:E-"Kabel bezeichnet.

     * Ein Nullmodemkabel verbindet einige Signale eins-zu-eins,
       andere u:ber Kreuz (z.B. Sende- und Empfangsleitung), und
       verbindet einige weitere direkt im Stecker miteinander. Ein
       solches Kabel wird auch als (engl.) "DTE-to-DTE-" oder
       "DEE-zu-DEE-"Kabel bezeichnet.

     * Ein Serielles Druckerkabel schliesslich, das fu:r einige
       spezielle Drucker beno:tigt wird, verbindet zusa:tzliche
       Signale miteinander, anstatt sie im Stecker zuru:ckzufu:hren.

   Sie sollten auch die Kommunikationsparameter am Drucker
   einstellen; u:blicherweise gibt es dazu DIP-Schalter, oder eine
   Option in der Menu:fu:hrung am Drucker. Wa:hlen Sie die ho:chste
   Bitrate (auch als bps Bits pro Sekunde oder Baudrate bezeichnet),
   die sowohl Ihr Drucker als auch Ihr Computer unterstu:tzen.
   Wa:hlen Sie 7 oder 8 Bits, gerade, ungerade oder keine Parita:t,
   und ein oder zwei Stoppbits. Wa:hlen Sie die Art der
   Flusssteuerung: keine, XON/XOFF (auch als "in-band-" oder
   "Software"-Flusssteuerung bezeichnet), oder Hardware. Notieren Sie
   sich diese Einstellungen, damit Sie sie spa:ter bei der
   Software-Konfiguration zur Verfu:gung haben.

     --------------------------------------------------------------

    10.3.1.2. Software-Konfiguration

   Dieser Abschnitt beschreibt die notwendigen
   Konfigurationsschritte, damit Sie mit dem FreeBSD-LPD-System
   drucken ko:nnen.

   Diese Schritte mu:ssen Sie ausfu:hren:

    1. Konfigurieren Sie Ihren Kernel, soweit notwendig, um die
       Schnittstelle benutzen zu ko:nnen, an die Ihr Drucker
       angeschlossen ist. Abschnitt Kernel-Konfiguration erkla:rt,
       welche Optionen Sie beno:tigen.

    2. Konfigurieren Sie die Kommunikationseinstellungen fu:r die
       parallele Schnittstelle, sofern Sie sie benutzen. Abschnitt
       Kommunikationseinstellungen fu:r die parallele Schnittstelle
       entha:lt die Details.

    3. Pru:fen Sie, ob Sie Daten an den Drucker senden ko:nnen.
       Abschnitt Pru:fen der Drucker-Kommunikation fu:hrt eine Reihe
       von Mo:glichkeiten auf.

    4. Konfigurieren Sie LPD fu:r Ihren Drucker, indem Sie die
       Konfigurationsdatei /etc/printcap anpassen. Details dazu
       finden Sie im Abschnitt LPD aktivieren: die
       /etc/printcap-Datei.

     --------------------------------------------------------------

      10.3.1.2.1. Kernel-Konfiguration

   Der Betriebssystem-Kernel ist fu:r eine bestimmte Kombination aus
   Gera:ten kompiliert. Dies schliesst Ihre seriellen oder parallelen
   Schnittstellen mit ein. Dementsprechend kann es notwendig sein,
   die Kernelkonfiguration um weitere Schnittstellen zu erweitern.

   So ko:nnen Sie pru:fen, ob Ihr Kernel die serielle Schnittstelle
   unterstu:tzt, an die Sie den Drucker angeschlossen haben:

 # grep sioN /var/run/dmesg.boot

   Ersetzen Sie N durch die Nummer der seriellen Schnittstelle,
   beginnend bei Null. Wenn Sie eine Ausgabe a:hnlich der folgenden
   erhalten, unterstu:tzt ihr Kernel diese Schnittstelle:

 sio2 at port 0x3e8-0x3ef irq 5 on isa
 sio2: type 16550A

   Erhalten Sie keine Ausgabe, oder eine Fehlermeldung, wird die
   Schnittstelle nicht korrekt unterstu:tzt.

   So ko:nnen Sie pru:fen, ob Ihr Kernel die parallele Schnittstelle
   unterstu:tzt, an die Sie den Drucker angeschlossen haben:

 # grep ppcN /var/run/dmesg.boot

   Ersetzen Sie N durch die Nummer der parallelen Schnittstelle,
   beginnend bei Null. Wenn Sie eine Ausgabe a:hnlich der folgenden
   erhalten, unterstu:tzt ihr Kernel diese Schnittstelle:

 ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
 ppc0: FIFO with 16/16/8 bytes threshold

   Erhalten Sie keine Ausgabe, oder eine Fehlermeldung, wird die
   Schnittstelle nicht korrekt unterstu:tzt.

   Gegebenenfalls mu:ssen Sie Ihren Kernel umkonfigurieren und neu
   kompilieren, damit die von Ihnen gewa:hlte Schnittstelle
   unterstu:tzt wird.

   Um Unterstu:tzung fu:r eine serielle Schnittstelle hinzuzufu:gen,
   lesen Sie bitte Kapitel Konfiguration des FreeBSD Kernels. Um eine
   parallele Schnittstelle hinzuzufu:gen, lesen Sie bitte ebenfalls
   jenes Kapitel als auch den folgenden Abschnitt
   Kommunikationseinstellungen fu:r die parallele Schnittstelle.

     --------------------------------------------------------------

    10.3.1.3. Kommunikationseinstellungen fu:r die parallele
    Schnittstelle

   Wenn Sie die parallele Schnittstelle zur Kommunikation mit Ihrem
   Drucker benutzen, haben Sie die Wahl zwischen
   Interrupt-gesteuerter oder Polling-Datenu:bertragung. Der
   generische Druckergera:tetreiber lpt(4) in FreeBSD benutzt das
   ppbus(4)-System, das die parallele Schnittstelle mithilfe des
   ppc(4)-Treibers steuert.

     * Die Interrupt-gesteuerte Datenu:bertragung ist die
       Voreinstellung im GENERIC-Kernel. Der Treiber benutzt eine
       IRQ-Leitung, um zu erfahren, wann der Drucker weitere Daten
       empfangen kann.

     * Bei der Polling-Methode pru:ft der Treiber in regelma:ssigen
       Absta:nden, ob weitere Daten u:bertragen werden ko:nnen.

   Die Interrupt-gesteuerte Methode ist u:berlicherweise schneller
   und verbraucht weniger Rechenzeit als die Polling-Methode, es wird
   jedoch eine eigene IRQ-Leitung fu:r die Schnittstelle beno:tigt.
   Daru:berhinaus kann es mit einigen Druckermodellen zu Problemen
   kommen, wenn die Interrupt-gesteuerte U:bertragung zum Einsatz
   kommt.

   Die ko:nnen die Kommunikationseinstellung entweder in der
   Kernel-Konfiguration wa:hlen, oder mittels des
   lptcontrol(8)-Programms zur Laufzeit einstellen.

   So legen Sie die Kommunikationseinstellung in der
   Kernel-Konfiguration fest:

    1. A:ndern Sie Ihre Kernel-Konfigurationsdatei. Finden Sie die
       Zeile, die mit device ppc0 beginnt. Wenn Sie die zweite
       parallele Schnittstelle konfigurieren mo:chten, suchen Sie
       nach device ppc1, fu:r die dritte Schnittstelle ppc2, usw.

          * Um die Interrupt-Steuerung zu aktivieren, passen Sie die
            folgende Zeile an:

 hint.ppc.0.irq="N"

            Ersetzen Sie N durch die Nummer der IRQ-Leitung, die
            dieser parallelen Schnittstelle zugewiesen ist. Stellen
            Sie sicher, dass Ihre Kernel-Konfigurationsdatei den
            ppc(4)-Treiber entha:lt:

 device ppc

          * Wenn Sie den Polling-Modus verwenden mo:chten, entfernen
            Sie die folgende Zeile aus /boot/device.hints:

 hint.ppc.0.irq="N"

            Sollte der Treiber die Schnittstelle dennoch im
            Interrupt-Modus betreiben, ko:nnte dies an der
            Aktivierung durch das acpi(4)-System in FreeBSD liegen.
            Bitte pru:fen Sie die ACPI- und die BIOS-Konfiguration.

    2. Wenn Sie Ihre Kernel-Konfigurationsdatei angepasst haben,
       kompilieren und installieren Sie nun einen neuen Kernel. Das
       Kapitel Konfiguration des FreeBSD-Kernels entha:lt weitere
       Details dazu.

   So ko:nnen Sie die Kommunikationseinstellung mitlptcontrol(8)
   a:ndern:

    1. Um die Interrupt-Steuerung fu:r die Schnittstelle N zu
       aktivieren, geben Sie ein:

 # lptcontrol -i -d /dev/lptN

    2. Um den Polling-Modus fu:r die Schnittstelle N zu aktivieren,
       geben Sie ein:

 # lptcontrol -p -d /dev/lptN

   Sie ko:nnen diesen Befehl in /etc/rc.local aufnehmen, damit er bei
   jedem Systemstart automatisch ausgefu:hrt wird. lptcontrol(8)
   entha:lt weitere Informationen.

     --------------------------------------------------------------

    10.3.1.4. Kommunikation mit den Drucker pru:fen

   Bevor Sie mit der Konfiguration des LPD-Drucksystems fortfahren,
   sollten Sie sicherstellen, das Sie erfolgreich Daten an Ihren
   Drucker senden ko:nnen. Es ist deutlich einfacher, Kommunikations-
   und Konfigurationsprobleme unabha:ngig voneinander zu lo:sen.

   Der Drucker kann mit einem Probeausdruck getestet werden. Fu:r
   alle Drucker, die normalen Text unmittelbar drucken ko:nnen,
   bietet sich das Programm lptest(1) an: es produziert alle 96
   druckbaren ASCII-Zeichen auf 96 Zeilen.

   Fu:r einen PostScript-Drucker (oder andere Drucker, die eine
   Seitenbeschreibungssprache verwenden) muss ein passendes Programm
   an den Drucker gesendet werden, z.B. dieses:

 %!PS
 100 100 moveto 300 300 lineto stroke
 310 310 moveto /Helvetica findfont 12 scalefont setfont
 (Funktioniert dieser Drucker?) show
 showpage

   Sie ko:nnen dieses ProstScript-Programm in einer Datei speichern,
   und mit den Beispielen in den folgenden Abschnitt verwenden.

     Anmerkung: Nicht alle Drucker, die eine
     Seitenbeschreibungssprache verwenden, beno:tigen ein
     Test-Programm: z.B. HPs PCL (das auch in vielen kompatiblen
     Druckern zum Einsatz zu kommt), versteht normalen Text.
     Besondere Escape-Sequenzen werden benutzt, um die erweiterten
     Mo:glichkeiten aufzurufen. PostScript-Drucker ko:nnen in der
     Regel keinen normalen Text direkt verarbeiten, weil sie ein
     PostScript-Programm erwarten, das eine Seite produziert.

     --------------------------------------------------------------

      10.3.1.4.1. Einen Paralleldrucker pru:fen

   Dieser Abschnitt fu:hrt vor, wie Sie die Kommunikation mit Ihrem
   Drucker u:ber die parallele Schnittstelle pru:fen ko:nnen.

   So testen Sie einen Drucker an einer parallelen Schnittstelle:

    1. Werden Sie root mithilfe des su(1)-Befehls.

    2. Senden Sie Testdaten an den Drucker.

          * Wenn Ihr Drucker reinen Text direkt drucken kann,
            verwenden Sie lptest(1):

 # lptest > /dev/lptN

            Ersetzen Sie N durch die Nummer der parallelen
            Schnittstelle, an die der Drucker angeschlossen ist
            (angefangen bei Null).

          * Wenn Ihr Drucker PostScript (oder eine andere
            Seitenbeschreibungssprache) versteht, senden Sie ein
            passendes Testprogramm an den Drucker. Geben Sie
            folgenden Befehl ein:

 # cat file > /dev/lptN

            Ersetzen Sie N durch die Nummer der parallelen
            Schnittstelle, an die der Drucker angeschlossen ist
            (angefangen bei Null). Geben Sie nun das Testprogramm
            ein, Zeile fu:r Zeile. Kontrollieren Sie jede Zeile,
            bevor Sie die Eingabetaste dru:cken: Sie ko:nnen die
            Zeile spa:ter nicht mehr a:ndern. Zum Schluss tippen Sie
            Ctrl+D. Wenn Sie ein anderes Zeichen nutzen, um das Ende
            der Datei anzuzeigen, mu:ssen Sie natu:rlich die
            entsprechende Tastenkombination fu:r dieses Zeichen
            beta:tigen.

            Sie ko:nnen das Testprogramm auch in einer Datei
            speichern, und dann diesen Befehl aufrufen:

 # cat Testprogramm > /dev/lptN

            Ersetzen Sie Testprogramm durch den Dateinamen, unter dem
            Sie das Testprogramm gespeichert haben.

   Der Drucker sollte einige Zeilen oder eine Seite drucken. Machen
   Sie sich keine Sorgen u:ber falsche Formatierungen: die
   Software-Konfiguration entha:lt Informationen zum Umformatieren
   von Druckauftra:gen.

     --------------------------------------------------------------

      10.3.1.4.2. Einen seriellen Drucker pru:fen

   Dieser Abschnitt fu:hrt vor, wie Sie die Kommunikation mit Ihrem
   Drucker u:ber die parallele Schnittstelle pru:fen ko:nnen.

   So testen Sie einen Drucker an einer seriellen Schnittstelle:

    1. Werden Sie root mithilfe des su(1)-Befehls.

    2. A:ndern Sie die Datei /etc/remote. Fu:gen Sie den folgenden
       Eintrag hinzu:

 printer:dv=/dev/port:br#bps-rate:pa=parity

       Ersetzen Sie Gera:t durch den Gera:tenamen der seriellen
       Schnittstelle (ttyu0 fu:r die erste, ttyu1 fu:r die zweite,
       usw.), Baudrate ist die Geschwindigkeit und Parita:t die
       Parita:t (even fu:r gerade, odd fu:r ungerade oder none fu:r
       keine), die Sie am Drucker eingestellt haben.

       Hier ein Beispieleintrag fu:r einen Drucker, der u:ber die
       dritte serielle Schnittstelle angeschlossen ist, mit
       19.200 Baud kommuniziert und keine Parita:t verwendet:

 printer:dv=/dev/ttyu2:br#19200:pa=none

    3. Verbinden Sie sich mit dem Drucker u:ber den Befehl tip(1):

 # tip printer

       Kommt es hierbei zu einer Fehlermeldung, a:ndern Sie den
       Eintrag in /dev/cuaaN und verwenden Sie /dev/cuaaN statt
       /dev/ttyuN.

    4. Senden Sie Testdaten an den Drucker.

          * Wenn Ihr Drucker reinen Text direkt drucken kann,
            verwenden Sie lptest(1):

 % $lptest

          * Wenn Ihr Drucker PostScript (oder eine andere
            Seitenbeschreibungssprache) versteht, senden Sie ein
            passendes Testprogramm an den Drucker. Geben Sie das
            Testprogramm ein, Zeile fu:r Zeile. Kontrollieren Sie
            jede Zeile, bevor Sie die Eingabetaste dru:cken: Sie
            ko:nnen die Zeile spa:ter nicht mehr a:ndern. Zum Schluss
            tippen Sie Control-D.

            Sie ko:nnen das Testprogramm auch in einer Datei
            speichern, und dann diesen Befehl aufrufen:

 % >Testprogramm

            Ersetzen Sie Testprogramm durch den Dateinamen, unter dem
            Sie das Testprogramm gespeichert haben. Nachdem tip(1)
            die Datei gesendet hat, tippen Sie Control-D.

   Der Drucker sollte einige Zeilen oder eine Seite drucken. Machen
   Sie sich keine Sorgen u:ber falsche Formatierungen: die
   Software-Konfiguration entha:lt Informationen zum Umformatieren
   von Druckauftra:gen.

     --------------------------------------------------------------

    10.3.1.5. LPD aktivieren: die /etc/printcap-Datei

   Nachdem Sie Ihren Drucker angeschlossen haben, Ihren Kernel
   richtig konfiguriert haben und erfolgreich einen Testausdruck
   produziert haben, ko:nnen Sie nun das LPD-System konfigurieren.

   Sie konfigurieren LPD, indem Sie die Datei /etc/printcap anpassen.
   Da LPD die Datei jedes Mal liest, wenn eine Aktion durchgefu:hrt
   wird, werden A:nderungen an der Konfiguration sofort aktiv.

   Die printcap(5)-Datei ist einfach aufgebaut. Sie ko:nnen
   /etc/printcap mit Ihrem bevorzugten Texteditor bearbeiten. Sie
   verwendet dasselbe Format wie auch /usr/share/misc/termcap oder
   /etc/remote. Informationen zum Format finden Sie in cgetent(3).

   Die Grund-Konfiguration des LPD-Systems beinhaltet diese Schritte:

    1. Wa:hlen Sie einen Namen (und einige praktische Abku:rzungen)
       fu:r die Druckerwarteschlage, und tragen Sie ihn in die
       /etc/printcap-Datei ein. Abschnitt Einen Namen wa:hlen
       entha:lt weitere Informationen.

    2. Schalten Sie den Druck von Deckbla:ttern aus (dies ist
       standardma:ssig eingeschaltet), indem Sie das Attribut sh
       setzen. Abschnitt Den Druck von Deckbla:ttern ausschalten
       erkla:rt, wie Sie dies tun ko:nnen.

    3. Legen Sie ein Pufferverzeichnis fu:r die Warteschlange an, und
       geben Sie den Pfad mittels des sd-Attributs an: siehe
       Abschnitt Das Pufferverzeichnis anlegen.

    4. Geben Sie den Gera:tenamen fu:r Ihren Drucker mittels des
       lp-Attributs an: siehe Abschnitt Festlegen der
       Drucker-Gera:tedatei. Ist Ihr Drucker u:ber eine serielle
       Schnittstelle angeschlossen, benutzen Sie das Attribut ms#,
       wie dies in Abschnitt Festlegen der Kommunikationsparameter
       beschrieben ist.

    5. Installieren Sie einen Filter fu:r reinen Text: siehe
       Abschnitt Den Textfilter installieren.

    6. Testen Sie die Konfiguration, indem Sie etwas mit dem
       lpr(1)-Befehl drucken. Die Abschnitte Die Konfiguration testen
       und Fehlersuche und Problembehebung enthalten weitere
       Informationen.

     Anmerkung: Drucker, die eine Seitenbeschreibungssprache wie
     PostScript verwenden, ko:nnen keinen reinen Text drucken. Es
     wird deshalb angenommen, dass Sie nur solche Dateien drucken,
     die Ihr Drucker verarbeiten kann.

   Viele Anwender erwarten, dass sie normalen Text auf allen Druckern
   drucken ko:nnen. Viele Programme, die mit LPD zusammenarbeiten,
   gehen ebenfalls von dieser Annahme aus. Wenn Sie einen
   PostScript-Drucker installieren, und Sie sowohl PostScript- als
   auch Textdateien drucken mo:chten, sollten Sie einen weiteren
   Konfigurationsschritt ausfu:hren und einen
   Text-zu-PostScript-Filter installieren. Der Abschnitt Drucken von
   reinen Textdateien auf einem PostScript-Drucker erkla:rt, wie Sie
   dies tun ko:nnen.

     --------------------------------------------------------------

      10.3.1.5.1. Einen Namen wa:hlen

   Der erste einfache Schritt ist, einen Namen fu:r Ihren Drucker zu
   wa:hlen. Sie ko:nnen diesen Namen frei wa:hlen, Sie sollten
   allerdings keine Sonderzeichen oder Umlaute verwenden. Sie ko:nnen
   mehrere Alias-Namen vergeben.

   Ein Drucker in /etc/printcap sollte den Alias lp haben. Dieser
   Name wird standardma:ssig von allen Druckbefehlen verwendet, wenn
   auf der Befehlszeile oder in der PRINTER-Umgebungsvariablen kein
   anderer Drucker angegeben ist.

   Ebenso ist es u:blich, eine ausfu:hrliche Beschreibung des
   Druckermodells als letzten Alias-Namen zu verwenden.

   Sobald Sie einen Namen und einige einfache Alias-Namen ausgewa:hlt
   haben, tragen Sie sie in die Datei /etc/printcap ein. Beginnen Sie
   die Zeile mit dem Namen des Druckers und fu:gen Sie alle
   Alias-Namen an. Trennen Sie die Namen durch den senkrechten Strich
   |. Fu:gen Sie an das Ende der Zeile einen Doppelpunkt : an.

   Das folgende Beispiel definiert zwei Drucker, einen Diablo 630
   Zeilendrucker, und einen Panasonic KX-P4455
   PostScript-Laserdrucker:

 #
 #  /etc/printcap for host rose
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:

   Der erste Drucker hat den Namen rattan, und hat die Alias-Namen
   line, diablo, lp und Diablo 630 Line Printer. Da er den
   Alias-Namen lp tra:gt, wird er standardma:ssig von den
   Druckprogrammen verwendet. Der zweite Drucker heisst bamboo, und
   hat die Alias-Namen ps, PS, S, panasonic und Panasonic KX-P4455
   PostScript v51.4.

     --------------------------------------------------------------

      10.3.1.5.2. Keine Deckbla:tter drucken

   Standardma:ssig druckt das LPD-System ein Deckblatt vor jedem
   Druckauftrag, die den Namen des Druckauftrags, den Benutzer und
   den Computer angibt. Wa:hrend der Einrichtung des Systems und beim
   Testen sto:rt das Deckblatt allerdings, weshalb Sie sie zuna:chst
   deaktivieren sollten.

   Um den Druck von Deckbla:ttern zu deaktivieren, fu:gen Sie das
   Attribut sh zur Druckerdefinition in /etc/printcap hinzu. Hier ein
   Beispiel:

 #
 #  /etc/printcap for host rose - no header pages anywhere
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:

   Beachten Sie die korrekte Formatierung: die beiden Definitionen
   beginnen auf einer Zeile; weitere Zeilen der Definition sind mit
   einem Tab-Zeichen eingeru:ckt, und alle Zeilen einer Definition,
   bis auf die letzte, enden mit dem Backslash \.

     --------------------------------------------------------------

      10.3.1.5.3. Das Pufferverzeichnis anlegen

   Der na:chste Schritt ist, das Pufferverzeichnis anzulegen. In
   diesem Verzeichnis werden Druckauftra:ge zwischengespeichert,
   wa:hrend sie gedruckt werden. Gleichzeitig werden hier auch einige
   Verwaltungsdateien des Systems abgelegt.

   Da sich die Dateien in diesem Verzeichnis ha:ufig a:ndern, ist es
   u:blich, das Verzeichnis unter /var/spool anzulegen. Es ist nicht
   notwendig, Sicherungskopien der Dateien herzustellen; das
   Verzeichnis kann no:tigenfalls leicht mit mkdir(1) wieder angelegt
   werden.

   Es ist auch u:blich, dem Verzeichnis denselben Namen wie dem
   Drucker zu geben:

 # mkdir /var/spool/printer-name

   Wenn Sie viele Drucker verwenden, ist es am besten, wenn Sie fu:r
   die Pufferverzeichnisse ein eigenes Unterverzeichnis in /var/spool
   anlegen, wie dies hier fu:r die beiden Beispieldrucker rattan und
   bamboo gezeigt wird:

 # mkdir /var/spool/lpd
 # mkdir /var/spool/lpd/rattan
 # mkdir /var/spool/lpd/bamboo

     Anmerkung: Um zu verhindern, dass alle Benutzer den Inhalt aller
     Druckauftra:ge einsehen ko:nnen, sollten Sie die Rechte auf den
     Pufferverzeichnissen einschra:nken. Die Verzeichnisse sollten
     dem Benutzer daemon und der Gruppe daemon geho:ren, und auch nur
     vom Benutzer und der Gruppe les-, schreib- und durchsuchbar
     sein. Fu:r unsere Beispieldrucker:

 # chown daemon:daemon /var/spool/lpd/rattan
 # chown daemon:daemon /var/spool/lpd/bamboo
 # chmod 770 /var/spool/lpd/rattan
 # chmod 770 /var/spool/lpd/bamboo

   Schliesslich mu:ssen Sie dem LPD-System noch mitteilen, wo Sie die
   Pufferverzeichnisse angelegt haben. Dazu geben Sie in der
   Definition das Attribut sd an:

 #
 #  /etc/printcap for host rose - added spooling directories
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:

   Beachten Sie, dass der Druckername in der ersten Spalte beginnt,
   und dass alle Folgezeilen mit einem Tab eingeru:ckt sind.

   Wenn Sie das sd-Attribut nicht angeben, verwendet das System
   /var/spool/lpd als Verzeichnis.

     --------------------------------------------------------------

      10.3.1.5.4. Festlegen der Drucker-Gera:tedatei

   Nachdem Sie die korrekte Gera:tedatei fu:r die Schnittstelle im
   Abschnitt Hardware-Konfiguration identifiziert und angelegt haben,
   mu:ssen Sie dem LPD-System mitteilen, welche Gera:tedatei im
   Verzeichnis /dev es fu:r die Datenu:bertragung zum Drucker
   verwenden soll.

   Geben Sie die Gera:tedatei durch das Attribut lp in /etc/printcap
   an.

   Wenn rattan an die erste parallele Schnittstelle angeschlossen
   ist, und bamboo an die sechste serielle, dann sieht /etc/printcap
   so aus:

 #
 #  /etc/printcap for host rose - identified what devices to use
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyu5:

   Wenn Sie lp nicht angeben, versucht LPD die Gera:tedatei /dev/lp
   zu verwenden. /dev/lp ist zurzeit in FreeBSD nicht definiert.

   Wenn Ihr Drucker u:ber eine parallele Schnittstelle angeschlossen
   ist, ko:nnen Sie mit dem Abschnitt Den Textfilter installieren
   fortfahren. Verwenden Sie eine serielle Schnittstelle, beachten
   Sie bitte den folgenden Abschnitt.

     --------------------------------------------------------------

      10.3.1.5.5. Kommunikationsparameter festlegen

   Fu:r seriell angeschlossene Drucker kann LPD die Geschwindigkeit,
   Parita:t und weitere Kommunikationsparameter einstellen. Dies hat
   folgende Vorteile:

     * Sie ko:nnen die Parameter einfach in /etc/printcap a:ndern,
       ohne das Ausgabe-Filterprogramm anpassen zu mu:ssen.

     * Dasselbe Ausgabe-Filterprogramm kann fu:r unterschiedliche
       Drucker verwendet werden, auch wenn diese unterschiedliche
       Kommunikationseinstellungen beno:tigen.

   Die folgenden Attribute legen die seriellen
   Kommunikationsparameter fest:

   br#Baudrate

           Setzt die U:bertragungsgeschwindigkeit auf Baudrate.
           Baudrate kann u:blicherweise 50, 75, 110, 134.5, 150, 300,
           600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600,
           oder 115200 Bit pro Sekunde betragen.

   ms#stty-Modi

           Setzt die Eigenschaften fu:r das Gera:t, nachdem es
           geo:ffnet wurde. Die verfu:gbaren Eigenschaften sind in
           stty(1) aufgefu:hrt.

   Wenn LPD das mit lp angegebene Gera:t o:ffnet, setzt es die mit
   ms# angegebenen Eigenschaften. Von besonderem Interesse sind hier
   die Modi parenb, parodd, cs5, cs6, cs7, cs8, cstopb, crtscts und
   ixon, die in der stty(1)-Handbuchseite erla:utert werden.

   Fu:r den u:ber die sechste serielle Schnittstelle angeschlossenen
   Laserdrucker betra:gt die Geschwindigkeit 38.400 Baud, und es
   werden diese Kommunikationseinstellungen verwendet: keine Parita:t
   (-parenb), 8-Bit-Zeichen (cs8), keine Modemsteuerung (clocal) und
   Hardware-Flusssteuerung (crtscts):

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyd5:ms#-parenb cs8 clocal crtscts:

     --------------------------------------------------------------

      10.3.1.5.6. Den Textfilter installieren

   Ein Textfilter, auch als Eingangsfilter bezeichnet, ist ein
   Programm, das von LPD aufgerufen wird, wenn ein Druckauftrag
   verarbeitet wird. Dabei wird die Standardeingabe des Programms mit
   der zu druckenden Datei verbunden, und die Standardausgabe mit dem
   im lp-Attribut angegebenen Gera:t. Das Programm sollte nun die
   Datei einlesen, alle U:bersetzungen durchfu:hren, die fu:r den
   Drucker notwendig sind, und das Ergebnis u:ber die Standardausgabe
   an den Drucker senden. Textfilter werden im Abschnitt Filter
   genauer erla:utert.

   Um einen einfachen Test durchzufu:hren, reicht ein kleines
   Filterprogramm, dass schlicht /bin/cat aufruft, um die Daten
   unvera:ndert und den Drucker zu schicken. FreeBSD verfu:gt u:ber
   das Programm lpf, das Unterstreichung und Fettdruck fu:r solche
   Drucker ermo:glicht, die ansonsten dazu nicht in der Lage wa:ren.
   Daru:berhinaus gibt es viele andere Filter, die Sie einsetzen
   ko:nnen. lpf wird im Abschnitt lpf: ein Textfilter ausfu:hrlich
   beschrieben.

   Legen Sie zuna:chst das folgende Shell-Skript als
   /usr/local/libexec/if-simple mit Ihrem bevorzugten Texteditor an:

 #!/bin/sh
 #
 # if-simple - Simple text input filter for lpd
 # Installed in /usr/local/libexec/if-simple
 #
 # Simply copies stdin to stdout.  Ignores all filter arguments.

 /bin/cat && exit 0
 exit 2

   Machen Sie die Datei ausfu:hrbar:

 # chmod 555 /usr/local/libexec/if-simple

   Konfigurieren Sie nun den Textfilter fu:r Ihren Drucker in
   /etc/printcap, indem Sie das if-Attribut hinzufu:gen. Hier die
   Konfiguration unserer beiden Beispieldrucker:

 #
 #  /etc/printcap for host rose - added text filter
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:\
         :if=/usr/local/libexec/if-simple:

     Anmerkung: Das Shell-Skript if-simple steht im Verzeichnis
     /usr/share/examples/printing.

     --------------------------------------------------------------

      10.3.1.5.7. LPD aktivieren

   lpd(8) wird von /etc/rc gestartet, wenn die rc.conf(5)-Variable
   lpd_enable auf YES gesetzt ist. Fu:gen Sie dazu diese Zeile in
   /etc/rc.conf hinzu:

 lpd_enable="YES"

   Starten Sie Ihren Computer neu, oder starten Sie lpd(8) von Hand:

 # lpd

     --------------------------------------------------------------

      10.3.1.5.8. Die Konfiguration testen

   Damit ist die einfache Konfiguration abgeschlossen. Noch muss die
   Konfiguration aber getestet werden und etwaige Probleme mu:ssen
   behoben werden. Um die Konfiguration zu testen, sollten Sie einen
   Probeausdruck mithilfe des Programms lpr(1) produzieren. lpr(1)
   u:bergibt Druckauftra:ge an das LPD-System.

   Sie ko:nnen lpr(1) mit lptest(1) kombinieren, um Testdaten zu
   drucken. lptest(1) wurde im Abschnitt Kommunikation mit den
   Drucker pru:fen vorgestellt.

   So testen Sie die einfache LPD-Konfiguration:

 # lptest 20 5 | lpr -PDruckername

   Ersetzen Sie Druckername durch den Namen des Druckers, den Sie
   testen mo:chten. Wenn Sie den Standard-Drucker testen mo:chten,
   rufen Sie lpr(1) ohne die Option -P auf. Wenn Sie einen Drucker
   testen mo:chten, der nur PostScript versteht, mu:ssen Sie ein
   PostScript-Testprogramm an lpr(1) u:bergeben. Ein Testprogramm,
   das Sie in einer Datei gespeichert haben, ko:nnen Sie mit dem
   Befehl lpr Dateiname an das LPD-System u:bergeben.

   Bei einem PostScript-Drucker ha:ngt das Ergebnis naturgema:ss vom
   Testprogramm ab. Wenn Sie lptest(1) verwenden, sollte das Ergebnis
   ungefa:hr so aussehen:

 !"#$%&'()*+,-./01234
 "#$%&'()*+,-./012345
 #$%&'()*+,-./0123456
 $%&'()*+,-./01234567
 %&'()*+,-./012345678

   Um sicherzustellen, dass alles richtig funktioniert, sollten Sie
   jetzt ein gro:sseres PostScript-Programm senden. Mit lptest(1)
   ko:nnen Sie gro:ssere Datenmengen z.B. mit dem Befehl lptest 80 60
   erzeugen: lptest(1) produziert 60 Zeilen mit je 80 Zeichen.

   Wenn Sie nicht erfolgreich drucken ko:nnen, finden Sie im
   Abschnitt Fehlersuche und Problembehebung weitere Informationen.

     --------------------------------------------------------------

10.4. Erweiterte Drucker-Konfiguration

   U:bersetzt von Johann Kois.

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

   Dieser Abschnitt beschreibt den Einsatz von Filtern fu:r das
   Drucken speziell formatierter Seiten oder von Deckbla:ttern, das
   Drucken u:ber ein Netzwerk sowie die Beschra:nkung und Verrechnung
   der Druckernutzung.

     --------------------------------------------------------------

  10.4.1. Filter

   Obwohl LPD Netzwerkprotokolle, Warteschlangen, Zugriffskontrollen
   und andere fu:r das Drucken wichtige Aspekte prinzipiell
   unterstu:tzt, passiert ein Grossteil der wirklichen Arbeit in den
   sogenannten Filtern. Dabei handelt es sich um Programme, die
   direkt mit einem Drucker kommunizieren und deren Gera:tespezifika
   und spezielle Anforderungen erfu:llen. Im einfachsten Fall
   installiert man nur einen reinen Textfilter, der mit beinahe allen
   Druckern funktionieren sollte. (Lesen Sie dazu auch den Abschnitt
   Den Text-Filter installieren.)

   Um die erweiterten Fa:higkeiten von Druckern auch einsetzen zu
   ko:nnen, sollten Sie verstehen, wie Filter arbeiten, da diese fu:r
   die Bereitstellung dieser Funktionen zusta:ndig sind. Die
   schlechte Nachricht ist, dass Sie diese Filter bereitstellen
   mu:ssen. Die gute Nachricht ist allerdings, dass diese in der
   Regel bereits vorhanden sind. Ist dies nicht der Fall, ko:nnen Sie
   einen Filter meist relativ einfach selbst erstellen.

   Der Filter /usr/libexec/lpr/lpf wird bereits mit FreeBSD
   geliefert. Er ku:mmert sich um die korrekte Behandlung von
   gelo:schten Zeichen (das sogenannte Backspacing), um im Text
   enthaltene Tabulatoren, sowie um die Verrechnung von
   Druckauftra:gen. Das ist aber auch alles, was dieser Filter kann.
   Zusa:tzliche Filter und fu:r die Funktion von Filtern no:tige
   Komponenten finden sich aber in der FreeBSD Ports-Sammlung.

   Dieser Abschnitt behandelt folgende Themen:

     * Der Abschnitt Die Funktionsweise von Filtern versucht, einen
       U:berblick u:ber die Rolle von Filtern innerhalb des
       Druckprozesses zu geben. Sie sollten diesen Abschnitt lesen,
       damit Sie verstehen, was "unter der Haube" passiert, wenn LPD
       einen Filter verwendet. Dieses Wissen wird Ihnen dabei helfen,
       Probleme, die bei Installation von Filtern fu:r verschiedene
       Drucker entstehen ko:nnen, vorauszusehen und zu beheben.

     * LPD geht davon aus, dass jeder Drucker in der Lage ist,
       normalen Text zu drucken. Fu:r PostScript- (oder andere
       sprachbasierte) Drucker stellt dies allerdings ein Problem
       dar, da diese nicht in der Lage sind, normalen Text direkt zu
       drucken. Der Abschnitt Normalen Text auf PostScript-Druckern
       drucken beschreibt, wie Sie dieses Problem lo:sen ko:nnen.
       Besitzen Sie einen PostScript-Drucker, sollten Sie diesen
       Abschnitt lesen.

     * PostScript ist ein popula:res Ausgabeformat, das von vielen
       Programmen unterstu:tzt wird. Es ist sogar mo:glich,
       PostScript-Code direkt zu schreiben. Leider sind
       PostScript-Drucker in der Regel relativ teuer. Der Abschnitt
       PostScript auf Nicht-PostScript-Druckern emulieren beschreibt,
       wie Sie einen Textfilter anpassen mu:ssen, um PostScript-Daten
       auf einem nicht-PostScript-fa:higen Drucker auszugeben. Haben
       Sie keinen PostScript-Drucker, sollten Sie insbesondere diesen
       Abschnitt lesen.

     * Der Abschnitt Konvertierungsfilter beschreibt eine
       Mo:glichkeit zur automatischen Konvertierung verschiedener
       Dateiformate in ein von Ihrem Drucker unterstu:tztes Format.
       Nachdem Sie diesen Abschnitt gelesen haben, werden Sie in der
       Lage sein, Ihren Drucker so zu konfigurieren, dass Sie durch
       die Eingabe von lpr -t troff-Daten, von lpr -d TeX-DVI-Daten,
       oder von lpr -v Rasterbilddaten drucken ko:nnen. Daher sollten
       Sie diesen Abschnitt auf jeden Fall lesen.

     * Im Abschnitt Ausgabefilter wird eine nur selten genutzte
       Eigenschaft von LPD, die sogenannten Ausgabefilter,
       beschrieben. Wenn Sie keine Deckbla:tter drucken mu:ssen,
       ko:nnen Sie diesen Abschnitt u:berspringen.

     * Der Abschnitt lpf: Ein Textfilter beschreibt lpf, einen
       kompletten, wenn auch einfachen Textfilter fu:r Zeilendrucker
       (oder auch Laserdrucker, die sich analog verhalten), der
       bereits mit FreeBSD geliefert wird. Wenn Sie nur am Ausdruck
       von reinem Text interessiert sind, oder wenn Ihr Drucker nur
       "Schrott" produziert, wenn er auf Backspace-Zeichen trifft,
       sollten Sie sich lpf na:her ansehen.

     Anmerkung: Eine Kopie der verschiedenen Skripte finden Sie im
     Verzeichnis /usr/share/examples/printing.

     --------------------------------------------------------------

    10.4.1.1. Die Funktionsweise von Filtern

   Bei einem Filter handelt es sich um ein ausfu:hrbares Programm,
   das von LPD gestartet wird, um den gera:teabha:ngigen Teil der
   Kommunikation mit einem Drucker zu u:bernehmen.

   Wenn LPD eine Datei u:ber einen Druckauftrag drucken will, startet
   es ein Filterprogramm. Danach setzt es die Standardeingabe des
   Filters auf die zu druckende Datei, die Standardausgabe auf den
   Drucker und die Standardfehlerausgabe auf /dev/console
   (Voreinstellung) oder auf die u:ber die Option lf in /etc/printcap
   festgelegte Datei.

   Welcher Filter von LPD mit welchen Argumenten geladen wird, wird
   in der Datei /etc/printcap oder durch die Argumente, die der
   Anwender lpr(1) auf der Kommandozeile u:bergibt, festgelegt. Gibt
   der Anwender beispielsweise lpr -t ein, startet LPD u:ber die
   tf-Fa:higkeit den troff-Filter fu:r den gewu:nschten Drucker.
   Wollen Sie hingegen normalen Text drucken, wird der if-Filter
   gestartet. (Fu:r Ausnahmen von diesem Vorgehen lesen Sie bitte den
   Abschnitt Ausgabefilter.)

   Es gibt drei Arten von Filtern, die Sie in /etc/printcap angeben
   ko:nnen:

     * Textfilter (die in der LPD-Dokumentation als input filter
       bezeichnet werden) sind fu:r den Druck von normalem Text
       zusta:ndig. Es handelt sich dabei um eine Art Standardfilter,
       da LPD von jedem Drucker erwartet, dass er normalen Text
       drucken kann. Aufgabe des Textfilters ist es, sicherzustellen,
       dass gelo:schte Zeichen (Backspaces), Tabulatoren und andere
       Sonderzeichen Ihren Drucker nicht verwirren. Falls Sie fu:r
       die Nutzung eines Druckers bezahlen mu:ssen, kann der
       Textfilter u:ber die Anzahl der gedruckten Zeilen auch die
       Anzahl der von Ihnen gedruckten Seiten ermitteln. Der
       Textfilter wird mit folgenden Argumenten gestartet:

       filter-name [-c] -w width -l length -i indent -n login -h host
       acct-file

       Die einzelnen Argumente haben folgende Bedeutung:

            -c

                    Notwendig, wenn lpr -l verwendet wird.

            width

                    Der Wert der in /etc/printcap festgelegten Option
                    pw (page width). In der Voreinstellung ist dieser
                    Wert auf 132 gesetzt.

            length

                    Der Wert der pl-Fa:higkeit (page length),
                    Voreinstellung 66.

            indent

                    Der durch lpr -i festgelegte Einzug,
                    Voreinstellung 0.

            login

                    Der Name des Benutzers, der die Datei druckt.

            host

                    Der Rechner, auf dem der Druckauftrag gestartet
                    wurde.

            acct-file

                    Der Name der Verrechnungsdatei, in der die
                    Ergebnisse der af-Fa:higkeit gespeichert werden.

     * Ein Konvertierungsfilter konvertiert verschiedene Dateiformate
       in ein Format, das Ihr Drucker auf Papier ausgeben kann. So
       kann etwa der ditroff-Schriftsatz nicht direkt gedruckt
       werden, daher mu:ssen Sie einen Konvertierungsfilter
       installieren, um diese Daten in ein Format zu bringen, das Ihr
       Drucker verarbeiten und drucken kann. Der Abschnitt
       Konvertierungsfilter entha:lt ausfu:hrliche Informationen zu
       diesen Filtern. Konvertierungsfilter ko:nnen auch zur
       Verrechnung verwendet werden. Sie werden mit folgenden
       Argumenten gestartet:

       filter-name -x pixel-width -y pixel-height -n login -h host
       acct-file

       pixel-width ist der Wert der px-Fa:higkeit (Voreinstellung 0),
       wa:hrend pixel-height dem Wert der py-Fa:higkeit
       (Voreinstellung ebenfalls 0) entspricht.

     * Ausgabefilter werden nur verwendet, wenn keine Textfilter
       vorhanden sind oder wenn Deckbla:tter beno:tigt werden. Der
       Abschnitt Ausgabefilter entha:lt weitere Informationen.
       Ausgabefilter unterstu:tzen nur zwei Argumente:

       filter-name -w width -l length

       Beide Argumente entsprechen den Optionen -w und -l der
       Textfilter.

   Alle Filter sollten mit folgenden Ru:ckgabewerten (Exitcodes)
   beendet werden:

   exit 0

           Der Filter hat die Datei erfolgreich gedruckt.

   exit 1

           Der Filter war nicht in der Lage, die Datei zu drucken und
           meldet diesen Exitcode an LPD, um die Datei erneut zu
           drucken. LPD startet daraufhin den Filter erneut.

   exit 2

           Der Filter war nicht in der Lage, die Datei zu drucken.
           Bei diesem Exitcode soll LPD aber nicht versuchen, die
           Datei erneut zu drucken, sondern den Druckauftrag
           verwerfen.

   /usr/libexec/lpr/lpf, der mit FreeBSD gelieferte Textfilter, nutzt
   die Argumente page width und page length, um festzulegen, wann ein
   Seitenumbruch (form feed) gesendet werden soll sowie zur
   Verrechnung von Druckauftra:gen. Dazu werden der Benutzername, der
   fu:r den Druckauftrag verwendete Rechner sowie die
   Verrechnungsdatei ausgewertet, um die entsprechenden Eintra:ge zu
   erstellen.

   Wenn Sie auf der Suche nach Filtern sind, achten Sie darauf, dass
   diese LPD-kompatibel sind. Dazu mu:ssen diese die oben
   beschriebenen Argumente unterstu:tzen. Wenn Sie planen, Ihre
   Filter selbst zu erstellen, mu:ssen diese ebenfalls die gleichen
   Argumente und Exitcodes unterstu:tzen.

     --------------------------------------------------------------

    10.4.1.2. Normalen Text auf PostScript(R)-Druckern drucken

   Sie sind der alleinige Benutzer Ihres Computers und Ihres
   PostScript-Druckers und Sie sind sich sicher, dass Sie niemals
   normalen Text an Ihren Drucker senden werden? Ausserdem werden Sie
   niemals ein Programm verwenden, um normalen Text auszudrucken? Nur
   wenn dies alles zutrifft, ko:nnen Sie diesen Abschnitt
   u:berspringen.

   Wollen Sie allerdings sowohl PostScript als auch normalen Text
   drucken, mu:ssen Sie Ihren Drucker zuvor entsprechend
   konfigurieren. Dazu muss Ihr Textfilter in der Lage sein, zu
   unterscheiden, ob es sich bei einem ankommenden Druckauftrag um
   normalen Text oder um PostScript-Daten handelt. Jeder
   PostScript-Druckauftrag muss mit den Zeichen %! beginnen (sehen
   Sie in Ihrem Druckerhandbuch nach, ob Ihr Drucker weitere Sprachen
   unterstu:tzt). Sind dies die beiden ersten Zeichen eines
   Druckauftrages, so handelt es sich um PostScript-Daten, die direkt
   gedruckt werden ko:nnen. Fehlen diese Zeichen allerdings, muss der
   Textfilter den Inhalt der Datei nach PostScript konvertieren,
   bevor die Datei gedruckt werden kann.

   Wie funktioniert diese Unterscheidung?

   Haben Sie einen seriellen Drucker, ko:nnen Sie lprps installieren.
   lprps ist ein PostScript-Druckerfilter, der eine
   Zweiwegekommunikation mit einem Drucker ermo:glicht. Er
   aktualisiert die Druckerstatusdatei mit Protokollinformationen des
   Druckers. Dadurch sind Anwender und Administratoren in der Lage,
   den genauen Zustand des Druckers zu pru:fen (durch Meldungen wie
   "toner low" oder "paper jam"). Wichtiger ist allerdings, dass
   lprps psif entha:lt, ein Programm, das feststellen kann, ob ein
   ankommender Druckauftrag normalen Text entha:lt. Ist dies der
   Fall, wird textps (das ebenfalls mit lprps geliefert wird)
   aufgerufen und die Datei nach PostScript konvertiert. Danach kann
   lprps die Datei an den Drucker senden.

   lprps ist in der FreeBSD Ports-Sammlung enthalten. Je nach der von
   Ihnen verwendeten Papiergro:sse installieren Sie dazu den Port
   print/lprps-a4 oder print/lprps-letter. Nach der Installation
   mu:ssen Sie nur noch den Pfad zum Programm psif angeben, das als
   Teil von lprps installiert wird. Haben Sie lprps u:ber die
   Ports-Sammlung installiert, fu:gen Sie folgende Zeile in den
   Eintrag Ihres PostScript-Druckers in /etc/printcap ein:

 :if=/usr/local/libexec/psif:

   Zusa:tzlich sollten Sie die rw-Fa:higkeit aktivieren, um LPD im
   Schreib- und Lesemodus zu o:ffnen.

   Haben Sie hingegen einen parallelen PostScript-Drucker, was eine
   Zweiwegekommunikation mit Ihrem Drucker (auf die lprps angewiesen
   ist) unmo:glich macht, ko:nnen Sie das folgende Shell-Skript
   verwenden:

 #!/bin/sh
 #
 #  psif - Drucke PostScript oder normalen Text auf einem PostScript-Drucker
 #  Script-Version; das ist NICHT die mit lprps gelieferte Version!
 #  Installiert unter:  /usr/local/libexec/psif
 #

 IFS="" read -r first_line
 first_two_chars=`expr "$first_line" : '\(..\)'`

 if [ "$first_two_chars" = "%!" ]; then
     #
     #  PostScript - einfach drucken.
     #
     echo "$first_line" && cat && printf "\004" && exit 0
     exit 2
 else
     #
     #  Normaler Text - zuerst konvertieren, dann drucken.
     #
     ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
     exit 2
 fi     

   Fu:r dieses Skript wurde textps als seperates Programm
   installiert, um normalen Text nach PostScript zu konvertieren. Sie
   ko:nnen aber auch jeden anderen Text-nach-PostScript-Konverter
   verwenden. Die FreeBSD Ports-Sammlung entha:lt mit a2ps ein
   umfangreiches Programm zur Konvertierung von normalem Text nach
   PostScript.

     --------------------------------------------------------------

    10.4.1.3. PostScript auf Nicht-PostScript-Druckern emulieren

   Bei PostScript handelt es sich um den de facto-Standard fu:r
   hochwertigen Schriftsatz und Druck. Leider ist PostScript aber
   auch ein teurer Standard. Glu:cklicherweise hat Aladdin
   Enterprises daher eine freie PostScript-a:hnliche Implementierung
   namens Ghostscript entwickelt, die auch unter FreeBSD lauffa:hig
   ist. Ghostscript kann fast jede PostScript-Datei lesen und auf den
   verschiedensten Gera:ten ausgeben, darunter auch auf vielen
   Nicht-PostScript-Druckern. Durch die Installation von Ghostscript
   und die Nutzung eines speziellen Textfilters erreichen Sie, dass
   sich Ihr Nicht-PostScript-Drucker wie ein echter
   PostScript-Drucker verha:lt.

   Ghostscript ist in verschiedenen Versionen in der FreeBSD
   Ports-Sammlung enhalten, die am ha:figsten verwendete Version ist
   print/ghostscript-gpl.

   Um PostScript zu emulieren, muss der Textfilter erkennen, ob er
   eine PostScript-Datei drucken soll. Ist dies nicht der Fall, wird
   die Datei direkt an den Drucker geschickt. Anderenfalls wird die
   Datei an Ghostscript u:bergeben, das die Datei in ein Format
   konvertiert, das Ihr Drucker versteht.

   Dazu ein Beispiel. Das folgende Skript ist ein Textfilter fu:r den
   Drucker DeskJet 500 von Hewlett Packard. Nutzen Sie einen anderen
   Drucker, mu:ssen Sie die Option -sDEVICE beim Aufruf von gs
   (Ghostscript) entsprechend anpassen. Eine Liste der von
   Ghostscript unterstu:tzten Gera:te erhalten Sie durch die Eingabe
   von gs -h auf der Kommandozeile.

 #!/bin/sh
 #
 #  ifhp - Ghostscript-emuliertes PostScript auf einem HP DeskJet 500 drucken
 #  Installiert unter:  /usr/local/libexec/ifhp

 #
 #  LF als CR+LF behandeln (um einen "Treppeneffekt" auf HP/PCL-Drucker
 #  zu vermeiden)
 #
 printf "\033&k2G" || exit 2

 #
 #  Lies die ersten zwei Zeichen der Datei
 #
 IFS="" read -r first_line
 first_two_chars=`expr "$first_line" : '\(..\)'`

 if [ "$first_two_chars" = "%!" ]; then
     #
     #  Oh.  Es ist PostScript; mit Ghostscript konvertieren, danach drucken.
     #
     /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
       -sOutputFile=- - && exit 0
 else
     #
     #  Normaler Text oder HP/PCL, einfach direkt drucken.  Ans Ende setzen wir
     #  einen Seitenumbruch (also ein Form Feed), damit auch die letzte Seite
     #  ausgeworfen wird.
     #
     echo "$first_line" && cat && printf "\033&l0H" &&
 exit 0
 fi

 exit 2

   Zuletzt mu:ssen Sie LPD noch durch die if-Fa:higkeit u:ber den
   neuen Filter informieren:

 :if=/usr/local/libexec/ifhp:

   Das ist alles. Ab sofort sollte sowohl ein lpr normaler.text als
   auch ein lpr wasauchimmer.ps funktionieren und beide Dateien
   sollten problemlos gedruckt werden.

     --------------------------------------------------------------

    10.4.1.4. Konvertierungsfilter

   Nachdem Sie Ihren Drucker wie unter Einfache Drucker-Konfiguration
   eingerichtet haben, wollen Sie wahrscheinlich einige
   Konvertierungsfilter installieren, damit Sie (abgesehen von
   ASCII-Text) auch Ihre Lieblings-Dateiformate drucken ko:nnen.

     --------------------------------------------------------------

      10.4.1.4.1. Warum sollte ich einen Konvertierungsfilter
      installieren?

   Konvertierungsfilter erleichtern das Drucken von verschiedenen
   Dateiformaten. Nehmen wir beispielsweise an, dass Sie sehr viel
   mit dem TeX-Satzsystem arbeiten und u:ber einen PostScript-Drucker
   verfu:gen. Eine vom TeX-System erzeugte DVI-Datei kann erst dann
   gedruckt werden, nachdem diese nach PostScript konvertiert wurde.
   Dazu geben Sie Folgendes ein:

 % dvips seaweed-analysis.dvi
 % lpr seaweed-analysis.ps

   Haben Sie einen Konvertierungsfilter fu:r DVI-Dateien installiert,
   ko:nnen Sie die manuelle Konvertierung u:berspringen, da dies nun
   LPD fu:r Sie erledigt. Wollen Sie eine DVI-Datei drucken, geben
   Sie nur noch den folgenden Befehl ein:

 % lpr -d seaweed-analysis.dvi

   Durch die Verwendung der Option -d wurde LPD angewiesen, unsere
   DVI-Datei vor dem Druck zu konvertieren. Der Abschnitt
   Formatierungs- und Konvertierungsoptionen beschreibt die dabei
   mo:glichen Optionen.

   Fu:r jede Konvertierungsoption, die Ihr Drucker unterstu:tzen
   soll, mu:ssen Sie einen eigenen Konvertierungsfilter installieren
   und dessen Pfad in der Datei /etc/printcap angeben. Ein
   Konvertierungsfilter verha:lt sich im Prinzip wie ein Textfilter
   bei einer einfachen Druckerkonfiguration (lesen Sie dazu auch den
   Abschnitt Den Textfilter installieren), allerdings konvertiert er
   die Datei in ein Format, das Ihr Drucker versteht, anstatt
   normalen Text zu drucken.

     --------------------------------------------------------------

      10.4.1.4.2. Welche Konvertierungsfilter sollte ich installieren?

   Sie sollten nur Filter installieren, die Sie auch beno:tigen. Wenn
   Sie sehr viele DVI-Dateien drucken, sollten Sie auch einen
   DVI-Konvertierungsfilter installieren. Mu:ssen Sie viele
   troff-Daten drucken, ist ein troff-Filter hilfreich.

   Die folgende Tabelle listet die von LPD unterstu:tzten Filter
   sowie die Eintra:ge in /etc/printcap auf, mit denen Sie diese
   Fa:higkeiten aktivieren. Zusa:tzlich wird angegeben, wie Sie lpr
   jeweils aufrufen mu:ssen:

       Dateityp        /etc/printcap-Fa:higkeit       lpr-Option      
   cifplot           cf                           -c                  
   DVI               df                           -d                  
   plot              gf                           -g                  
   ditroff           nf                           -n                  
   FORTRAN-Text      rf                           -f                  
   troff             tf                           -f                  
   Rasterdaten       vf                           -v                  
   Normaler Text     if                           keine, -p, or -l    

   Wollen Sie also lpr -d verwenden, muss die df-Fa:higkeit in
   /etc/printcap aktiviert sein.

   Obwohl manche Leute etwas anderes behaupten, sind Formate wie
   FORTRAN-Text und -Plot inzwischen nahezu obsolet. Wenn Sie diese
   Formate dennoch beno:tigen, installieren Sie einfach einen
   angepassten Filter. Wollen Sie beispielsweise zwar
   Printerleaf-Dateien (also Dateien des Desktop Publishing-Programms
   von Interleaf), aber keine Plotdateien drucken, so ko:nnen Sie
   einen Printerleaf-Konvertierungsfilter installieren, der es durch
   die Aktivierung der gf-Fa:higkeit erlaubt, diese Dateien direkt zu
   drucken. Nun mu:ssen Sie Ihren Mitarbeitern nur noch mitteilen,
   dass lpr -g nun fu:r "drucke Printerleaf-Dateien" steht.

     --------------------------------------------------------------

      10.4.1.4.3. Konvertierungsfilter installieren

   Da Konvertierungsfilter nicht zum Basissystem von FreeBSD
   geho:ren, sollten diese unter /usr/local installiert werden.
   Ha:ufig wird das Verzeichnis /usr/local/libexec verwendet, da es
   sich bei Konvertierungsfiltern um spezielle Programme handelt, die
   nur von LPD, aber nicht von einem normalen Benutzer gestartet
   werden.

   Um einen Konvertierungsfilter zu aktivieren, mu:ssen Sie dessen
   Pfad zusa:tzlich zur beno:tigten Fa:higkeit in der Datei
   /etc/printcap eintragen.

   In unserem Beispiel wollen wir einen DVI-Konvertierungsfilter fu:r
   den Drucker bamboo installieren. Unsere bereits bekannte
   /etc/printcap wurde allerdings um die df-Fa:higkeit fu:r den
   Drucker bamboo erweitert:

 #
 #  /etc/printcap des Rechners rose - neuer df-Filter fu:r bamboo
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:\
         :lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Beim DVI-Filter handelt es sich um ein Shell-Skript namens
   /usr/local/libexec/psdf:

 #!/bin/sh
 #
 #  psdf - DVI-nach-PostScript Druckerfilter
 #  Installiert unter:  /usr/local/libexec/psdf
 #
 #  Wird von lpd aktiviert, wenn der Nutzer lpr -d eingibt.
 #
 exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"

   Dieses Skript startet dvips im Filtermodus (durch das Argument -f
   wird der Druckauftrag u:ber die Standardeingabe entgegengenommen).
   Danach wird der PostScript-Druckerfilter lprps (lesen Sie dazu
   auch den Abschnitt Drucken von reinen Textdateien auf einem
   PostScript-Drucker) mit den von LPD u:bergebenen Argumenten
   gestartet. Das lprps-Werkzeug wiederum nutzt diese Argumente, um
   die gedruckten Seiten zu verrechnen.

     --------------------------------------------------------------

      10.4.1.4.4. Beispiele fu:r Konvertierungsfilter

   Da es keine verbindliche Prozedur zur Installation eines
   Druckerfilters gibt, folgen nun weitere Beispiele in diesem
   Abschnitt. Verwenden Sie diese, um Ihre eigenen Filter zu
   erstellen. Falls ein Filter Ihren Anforderungen bereits
   entspricht, ko:nnen Sie ihn auch direkt verwenden.

   Das erste Beispiel beschreibt einen Konvertierungsfilter fu:r
   GIF-Dateien fu:r den Drucker LaserJet III-Si von Hewlett Packard:

 #!/bin/sh
 #
 #  hpvf - Konvertiert GIF-Dateien nach HP/PCL, danach wird gedruckt.
 #  Installiert unter:  /usr/local/libexec/hpvf

 PATH=/usr/X11R6/bin:$PATH; export PATH
 giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
     && exit 0 \
     || exit 2

   Dieser Filter konvertiert eine GIF-Datei in eine portable Anymap,
   diese in ein portables Graustufenbild, dieses wiederum in eine
   portable Bitmap, die schliesslich in ein LaserJet/PCL-kompatibles
   Format umgewandelt wird.

   /etc/printcap muss fu:r einen Drucker, der diesen Filter nutzen
   will, folgenden Eintrag enthalten:

 #
 #  /etc/printcap des Rechners orchid
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/hpif:\
         :vf=/usr/local/libexec/hpvf:

   Das folgende Skript ist ein Konvertierungsfilter, der das Drucken
   von troff-Daten des groff-Textsatzsystems auf dem
   PostScript-Drucker bamboo ermo:glicht:

 #!/bin/sh
 #
 #  pstf - Konvertiert groff's troff-Daten nach PS, dann wird gedruckt.
 #  Installiert unter:  /usr/local/libexec/pstf
 #
 exec grops | /usr/local/libexec/lprps "$@"

   Dieses Skript nutzt wiederum lprps, um mit dem Drucker zu
   kommunizieren. Wa:re der Drucker an einem parallelen Port
   angeschlossen, wu:rde das Skript so aussehen:

 #!/bin/sh
 #
 #  pstf - Konvertiert groff's troff-Daten nach PS, danach wird gedruckt.
 #  Installiert unter:  /usr/local/libexec/pstf
 #
 exec grops

   Das ist alles. Um den Filter verwenden zu ko:nnen, mu:ssen Sie ihn
   allerdings noch in /etc/printcap aktivieren:

 :tf=/usr/local/libexec/pstf:

   Das na:chste Skript ist ein FORTRAN-Textfilter fu:r jeden Drucker,
   der normalen Text direkt drucken kann und der hier fu:r den
   Drucker teak installiert wird:

 #!/bin/sh
 #
 # hprf - FORTRAN-Textfilter fu:r den Drucker LaserJet 3si:
 # Installiert unter:  /usr/local/libexec/hprf
 #

 printf "\033&k2G" && fpr && printf "\033&l0H" &&
  exit 0
 exit 2   

   Zusa:tzlich beno:tigen wir wiederum einen Eintrag in
   /etc/printcap, um diesen Filter fu:r den Drucker teak zu
   aktivieren:

 :rf=/usr/local/libexec/hprf:

   Das letzte Beispiel ist etwas komplexer. Es soll ein DVI-Filter
   fu:r den bereits erwa:hnten LaserJet-Drucker teak installiert
   werden. Der erste Teil ist einfach: Sie mu:ssen den Pfad des
   DVI-Filters in /etc/printcap eintragen:

 :df=/usr/local/libexec/hpdf:

   Nun kommt der schwierige Teil: Sie mu:ssen den Filter
   funktionsfa:hig machen. Dazu beno:tigen Sie einen
   DVI-nach-LaserJet/PCL-Konverter. Glu:cklicherweise entha:lt die
   FreeBSD Ports-Sammlung mit print/dvi2xx ein solches Programm. Nach
   der Installation des Pakets verfu:gen wir u:ber das Programm
   dvilj2p, das zur Konvertierung von DVI-Daten in zu den Druckern
   LaserJet IIp, LaserJet III, sowie LaserJet 2000 kompatible Codes
   beno:tigt wird.

   Durch den Einsatz von dvilj2p wird der Filter hpdf relativ
   komplex, da dvilj2p nicht von der Standardeingabe lesen kann,
   sondern als Eingabe einen Dateinamen erwartet. Zusa:tzlich muss
   der Dateiname auf .dvi enden, daher ist die Verwendung von
   /dev/fd/0 als Standardeingabe problematisch. Wir ko:nnen diese
   Problem aber umgehen, indem wir einen tempora:ren Dateinamen
   symbolisch nach /dev/fd/0 linken. Dadurch wird dvilj2p gezwungen,
   dennoch von der Standardeingabe zu lesen.

   Das letzte Problem, das wir noch lo:sen mu:ssen, ist, dass wir
   /tmp nicht als tempora:ren Link verwenden ko:nnen. Symbolische
   Links geho:ren dem User sowie der Gruppe bin. Der Filter la:uft
   aber als User daemon. Ausserdem ist /tmp durch ein Sticky-Bit
   gesichert. Daher kann der Filter den Link zwar erzeugen, ein
   Aufra:umen ist aber nicht mehr mo:glich, weil sich die Eigentu:mer
   des Filters und des tempora:ren Verzeichnisses unterscheiden.

   Daher legt der Filter den symbolischen Link im Arbeitsverzeichnis
   an, das gleichzeitig als Spooling-Verzeichnis dient (festgelegt
   durch die Aktivierung der sd-Fa:higkeit in /etc/printcap). Das
   Arbeitsverzeichnis ist ein idealer Ort fu:r den Filter,
   insbesondere da dieses (manchmal) sogar u:ber mehr freien
   Speicherplatz als /tmp verfu:gt.

   Mit diesen Informationen sind wir nun in der Lage, den Filter zu
   entwickeln:

 #!/bin/sh
 #
 #  hpdf - DVI-Daten auf einen HP/PCL-Drucker drucken
 #  Installiert unter:  /usr/local/libexec/hpdf

 PATH=/usr/local/bin:$PATH; export PATH

 #
 #  Eine Funktion zum Aufra:umen unserer tempora:ren Dateien.
 #  Diese finden sich im Arbeitsverzeichnis, das wir auch als
 #  Spooling-Verzeichnis fu:r unseren Drucker verwenden werden.
 #
 cleanup() {
    rm -f hpdf$$.dvi
 }

 #
 #  Eine Funktion, um fatale Fehler zu behandeln.  Dazu die Meldung
 #  ausgeben, danach ein exit 2.  Dadurch weiss LPD, dass es
 #  den Auftrag nicht noch einmal drucken soll.
 #
 fatal() {
     echo "$@" 1>&2
     cleanup
     exit 2
 }

 #
 #  Wenn ein Anwender den Auftrag entfernt, sendet LPD ein SIGINT, daher
 #  wollen wir SIGINT und einige andere Signale abfangen (trappen), um
 #  nach der Konvertierung aufra:umen zu ko:nnen.
 #
 trap cleanup 1 2 15

 #
 #  Bevor wir anfangen, ra:umen wir noch auf.  Sicher ist sicher.
 #
 cleanup

 #
 #  Die DVI-Eingabedatei auf die Standardeingabe linken (die zu druckende
 #  Datei).
 #
 ln -s /dev/fd/0 hpdf$$.dvi || fatal "Konnte Symlink nicht anlegen!"

 #
 #  Umwandeln: LF = CR+LF
 #
 printf "\033&k2G" || fatal "Konnte Drucker nicht initialisieren!"

 #
 #  Konvertieren und drucken.  Da der Ru:ckgabewert von dvilj2p
 #  unzuverla:ssig ist, ignorieren wir ihn einfach.
 #
 dvilj2p -M1 -q -e- dfhp$$.dvi

 #
 #  Aufra:umen und beenden.
 #
 cleanup
 exit 0   

     --------------------------------------------------------------

      10.4.1.4.5. Automatische Konvertierung: Eine Alternative zu
      Konvertierungsfiltern

   Alle in diesem Abschnitt besprochenen Konvertierungsfilter sind
   zwar sehr hilfreich, allerdings mu:ssen Sie nach wie vor bei jedem
   Aufruf von lpr(1) angeben, welchen Filter sie verwenden wollen,
   was mit der Zeit sicher nervend wird. Schlimmer ist allerdings,
   dass die Auswahl eines unpassenden Filters dazu fu:hren kann, dass
   Sie Hunderte Seiten Papier ausdrucken.

   Statt also Konvertierungsfilter zu installieren, ko:nnten Sie den
   Textfilter (der ohnehin der Standardfilter ist) verwenden, um den
   zu druckenden Dateityp zu erkennen und anschliessend den korrekten
   Konvertierungsfilter auszuwa:hlen. Um den Dateityp zu bestimmen,
   ko:nnen Sie beispielsweise file verwenden. Leider ist es bei
   einigen Dateitypen problematisch, diese zu unterscheiden. Daher
   ko:nnten Sie fu:r diese Dateitypen dennoch einen
   Konvertierungsfilter installieren.

   Die FreeBSD Ports-Sammlung entha:lt mit apsfilter
   (print/apsfilter) einen Textfilter, der diese automatische
   Konvertierung durchfu:hren kann. Er ist in der Lage, normalen
   Text, PostScript, DVI und beinahe jede Art von Datei zu erkennen,
   diese zu konvertieren und auf Ihren Drucker auszugeben.

     --------------------------------------------------------------

    10.4.1.5. Ausgabefilter

   LPD unterstu:tzt noch eine weitere Filterart, die sogenannten
   Ausgabefilter. Diese sind - analog zu einem Textfilter -  fu:r den
   Druck von normalem Text ausgelegt, allerdings verfu:gen sie im
   Vergleich zu diesen nur u:ber sehr eingeschra:nkte Fa:higkeiten.
   Wenn Sie einen Ausgabefilter (aber keinen Textfilter) verwenden,
   dann

     * startet LPD nur einen Ausgabefilter fu:r den kompletten
       Druckauftrag, statt fu:r jede Datei des Auftrags einen eigenen
       Filter zu starten.

     * ku:mmert sich LPD nicht darum, den Beginn oder das Ende einer
       Datei innerhalb des Druckauftrages zu finden.

     * u:bergibt LPD weder den Benutzer- noch den Rechnernamen
       desjenigen, der den Druckauftrag erteilt hat, an den
       Ausgabefilter, was eine Verrechnung von Druckauftra:gen
       unmo:glich macht. Ausgabefilter unterstu:tzen insgesamt nur
       zwei Argumente:

       filter-name -w width -l length

       width basiert auf der pw-Fa:higkeit, length hingegen auf der
       pl-Fa:higkeit des gewa:hlten Druckers.

   Lassen Sie sich von dieser angeblichen Einfachheit eines
   Ausgabefilters nicht ta:uschen. Ausgabefilter sind beispielsweise
   nicht dazu in der Lage, jede Datei eines Druckauftrages auf einer
   neuen Seite zu drucken. Dazu beno:tigen Sie einen Textfilter (die
   im Abschnitt Den Textfilter installieren beschrieben werden).
   Ausserdem sind Ausgabefilter in Wirklichkeit komplexer, da sie den
   gesendeten Bytestrom nicht nur auf Sonderzeichen hin untersuchen
   mu:ssen, sondern auch die U:bertragung von Signalen fu:r LPD
   u:bernehmen mu:ssen.

   Sie beno:tigen Ausgabefilter aber dann, wenn Sie Deckbla:tter
   drucken wollen, da dazu Escape-Sequenzen und
   Initialisierungsstrings erforderlich sind. (Es ist allerdings
   nicht mo:glich, den Druck dieser Deckbla:tter zu verrechnen, da
   LPD keine Benutzer- oder Rechnerinformationen an den Ausgabefilter
   u:bergibt.)

   LPD kann fu:r den gleichen Drucker sowohl Ausgabefilter als auch
   Textfilter verwenden. In solchen Fa:llen verwendet LPD den
   Ausgabefilter nur fu:r den Druck von Deckbla:ttern (die im
   Abschnitt Deckbla:tter na:her beschrieben werden). Nach dem Druck
   des Deckblattes erwartet LPD, dass sich der Ausgabefilter selbst
   beendet. Dazu werden zwei Bytes an den Ausgabefilter gesendet:
   ASCII 031, gefolgt von ASCII 001. Wenn ein Ausgabefilter diese
   zwei Bytes (031, 001) empfa:ngt, sendet er das Signal SIGSTOP an
   sich selbst. Nachdem LPD den Rest des Druckauftrages erledigt hat,
   wird der Ausgabefilter erneut gestartet, indem ein SIGCONT an den
   Ausgabefilter gesendet wird.

   Haben Sie nur einen Ausgabefilter, aber keinen Textfilter
   installiert, dann verwendet LPD den Ausgabefilter auch fu:r den
   Druck von normalem Text. Wie bereits erwa:hnt, werden dabei
   allerdings alle Dateien des Druckauftrags unmittelbar
   hintereinander gedruckt, Seitenumbru:che oder ein zusa:tzlicher
   Papiervorschub sind also nicht mo:glich. Da dieses Verhalten von
   Ihnen wahrscheinlich nicht gewu:nscht wird, werden Sie in fast
   allen Fa:llen einen zusa:tzlichen Textfilter beno:tigen.

   Der weiter oben beschriebene Textfilter lpf kann auch als
   Ausgabefilter verwendet werden. Wenn Sie nur einen
   funktionierenden Ausgabefilter beno:tigen, aber nicht den dafu:r
   beno:tigten Code (zur Zeichenerkennung und zum Senden von
   Signalen) schreiben wollen, sollten Sie sich lpf na:her ansehen.
   Sie ko:nnen lpf auch in ein Shell-Skript einbinden, um von Ihrem
   Drucker beno:tigte Initialisierungscodes zu verarbeiten.

     --------------------------------------------------------------

    10.4.1.6. lpf: Ein Textfilter

   Der Textfilter (Eingabefilter) /usr/libexec/lpr/lpf wird bereits
   mit FreeBSD geliefert. Er erlaubt das Einru:cken der Ausgabe
   (u:ber lpr -i), die U:bergabe von Zeichen-Literalen (u:ber lpr
   -l), das Anpassen der Druckposition bei gelo:schten Zeichen
   (Backspaces) oder Tabulatoren, sowie die Verrechnung gedruckter
   Seiten. Zusa:tzlich kann dieser Textfilter auch als Ausgabefilter
   arbeiten.

   lpf ist fu:r viele verschiedene Druckumgebungen geeignet. Zwar ist
   dieser Textfilter nicht in der Lage, Initialisierungssequenzen an
   einen Drucker zu senden, dieses Problem kann allerdings durch das
   Schreiben und Ausfu:hren eines Shell-Skripts (das diese Funktion
   u:bernimmt) und das anschliessende Aufrufen von lpf gelo:st
   werden.

   Damit Sie lpf fu:r die Verrechnung von Druckauftra:gen einsetzen
   ko:nnen, mu:ssen Sie die korrekten Werte fu:r die pw- und
   pl-Fa:higkeiten in /etc/printcap eintragen. lpf verwendet diese
   Werte, um festzustellen, wieviel Text auf eine Seite passt und
   wieviele Seiten im Druckauftrag enthalten sind. Weitere
   Informationen zur Verrechnung der Druckernutzung entha:lt der
   Abschnitt Die Druckernutzung verrechnen.

     --------------------------------------------------------------

  10.4.2. Deckbla:tter

   Wenn Sie viele Benutzer mit verschiedenen Druckern verwalten
   mu:ssen, sollten Sie Deckbla:tter als notwendiges U:bel
   akzeptieren.

   Deckbla:tter (manchmal auch als Bannerseiten oder burst pages
   bezeichnet) geben an, wem die Ausgabe eines Druckauftrags geho:rt.
   Sie werden normalerweise in grossen fetten Buchstaben gedruckt,
   manchmal sogar mit zusa:tzlicher Umrandung, damit man sie leichter
   von den tatsa:chlichen Seiten eines Druckauftrages unterscheiden
   kann. Der Nachteil von Deckbla:ttern ist allerdings, dass es sich
   dabei um eine zusa:tzliche zu druckende Seite handelt, die in der
   Regel bereits nach wenigen Minuten wieder im Papierkorb landet. Da
   aber fu:r jeden Druckauftrag nur ein einziges Deckblatt gedruckt
   wird, ist der Papierverbrauch in den meisten Fa:llen tolerierbar.

   Das LPD-System kann Deckbla:tter automatisch erzeugen, wenn Ihr
   Drucker normalen Text direkt drucken kann. Haben Sie hingegen
   einen PostScript-Drucker, beno:tigen Sie ein externes Programm, um
   die Deckbla:tter zu generieren (Lesen Sie dazu auch den Abschnitt
   Deckbla:tter auf PostScript-Druckern erzeugen.).

     --------------------------------------------------------------

    10.4.2.1. Deckbla:tter aktivieren

   Im Abschnitt Einfache Drucker-Konfiguration haben wir die Ausgabe
   von Deckbla:ttern durch die die Angabe der Option sh (suppress
   header) in /etc/printcap deaktiviert. Um die Ausgabe von
   Deckbla:ttern wieder zu aktivieren, mu:ssen Sie daher die
   sh-Fa:higkeit wieder entfernen.

   Das klingt zu einfach? Wo ist der Haken?

   Sie haben recht. Es ist mo:glich, dass Sie einen Ausgabefilter
   verwenden mu:ssen, um die no:tigen Initialisierungsstrings an den
   Drucker zu senden. Das folgende Beispiel beschreibt einen
   Ausgabefilter fu:r PCL-kompatible Drucker von Hewlett Packard:

 #!/bin/sh
 #
 #  hpof - Ausgabefilter fu:r PCL-kompatible Drucker von Hewlett Packard
 #  Installiert unter:  /usr/local/libexec/hpof

 printf "\033&k2G" || exit 2
 exec /usr/libexec/lpr/lpf

   Geben Sie den Pfad des Ausgabefilters u:ber die of-Fa:higkeit an.
   Weitere Informationen finden Sie im Abschnitt Ausgabefilter.

   Das na:chste Beispiel beschreibt die Datei /etc/printcap des
   bereits erwa:hnten Druckers teak. Allerdings sind nun die Ausgabe
   von Deckbla:ttern sowie der vorhin beschriebene Ausgabefilter
   enthalten:

 #
 #  /etc/printcap fu:r den Rechner orchid
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/hpif:\
         :vf=/usr/local/libexec/hpvf:\
         :of=/usr/local/libexec/hpof:

   Wenn ein Anwender nun einen Druckauftrag an den Drucker teak
   schickt, wird fu:r jeden Druckauftrag ein Deckblatt erstellt.
   Beno:tigt ein Anwender keine Deckbla:tter, kann er die Ausgabe
   dieser Seiten durch die Verwendung von lpr -h unterdru:cken.
   Weitere, fu:r die Ausgabe von Deckbla:ttern interessante
   lpr(1)-Optionen finden Sie im Abschnitt Deckblattoptionen.

     Anmerkung: LPD verwendet ein Form Feed, um das Deckblatt
     abzuschliessen. Wenn Ihr Drucker ein anderes Zeichen verwendet,
     um eine Seite auszuwerfen, geben Sie dieses u:ber die
     ff-Fa:higkeit in /etc/printcap an.

     --------------------------------------------------------------

    10.4.2.2. Deckbla:tter kontrollieren

   Haben Sie die Ausgabe von Deckbla:ttern aktiviert, gibt LPD eine
   ganze Seite in grossen Buchstaben aus, die den Anwender, den
   verwendeten Rechner sowie den Druckauftrag beschreiben. Das
   folgende Beispiel ist ein Deckblatt fu:r den Druckauftrag
   "outline", der von kelly auf dem Rechner rose erstellt wurde:

       k                   ll       ll
       k                    l        l
       k                    l        l
       k   k     eeee       l        l     y    y
       k  k     e    e      l        l     y    y
       k k      eeeeee      l        l     y    y
       kk k     e           l        l     y    y
       k   k    e    e      l        l     y   yy
       k    k    eeee      lll      lll     yyy y
                                                y
                                           y    y
                                            yyyy


                                    ll
                           t         l        i
                           t         l
        oooo    u    u   ttttt       l       ii     n nnn     eeee
       o    o   u    u     t         l        i     nn   n   e    e
       o    o   u    u     t         l        i     n    n   eeeeee
       o    o   u    u     t         l        i     n    n   e
       o    o   u   uu     t  t      l        i     n    n   e    e
        oooo     uuu u      tt      lll      iii    n    n    eeee









       r rrr     oooo     ssss     eeee
       rr   r   o    o   s    s   e    e
       r        o    o    ss      eeeeee
       r        o    o      ss    e
       r        o    o   s    s   e    e
       r         oooo     ssss     eeee







                                               Job:  outline
                                               Date: Sun Sep 17 11:04:58 1995

   LPD fu:gt ein Form Feed an diesen Text an, damit der eigentliche
   Druckauftrag auf einer neuen Seite gestartet wird (es sei denn,
   Sie haben die sf-Fa:higkeit (suppress form feeds) des jeweiligen
   Druckers in /etc/printcap aktiviert).

   Wenn Sie dies wu:schen, kann LPD auch nur ein kurzes Deckblatt
   ausgeben. Dazu verwenden Sie die Option sb (short banner) in
   /etc/printcap. Dadurch erhalten Sie ein Deckblatt a:hnlich dem
   folgenden:

 rose:kelly  Job: outline  Date: Sun Sep 17 11:07:51 1995

   In der Voreinstellung druckt LPD zuerst das Deckblatt und danach
   den eigentlichen Druckauftrag. Um diese Reihenfolge umzukehren,
   geben Sie die Option hl (header last) in /etc/printcap ans.

     --------------------------------------------------------------

    10.4.2.3. Deckbla:tter verrechnen

   Wenn Sie die in LPD eingebaute Funktion zur Erstellung von
   Deckbla:ttern verwenden, werden Sie auf folgendes Paradigma
   stossen: Deckbla:tter mu:ssen kostenlos sein.

   Warum ist das so?

   Weil der Ausgabefilter das einzige externe Programm ist, das zum
   Zeitpunkt der Erstellung des Deckblatts eine Verrechnung
   durchfu:hren ko:nnte. Da Ausgabefilter aber weder u:ber Benutzer-
   noch u:ber Rechnerinformationen verfu:gen, ist es nicht mo:glich,
   einen Druckauftrag einem bestimmten Benutzer zuzuordnen. Da ein
   Benutzer die Ausgabe von Deckbla:ttern u:ber lpr -h unterdru:cken
   kann, ist es auch nicht mo:glich, die Vorgabe "verrechne eine
   zusa:tzliche Seite" in den Text- oder Konvertierungsfilter (die
   u:ber die zur Verrechnung no:tigen Benutzer- und
   Rechnerinformationen verfu:gen) aufzunehmen, weil Benutzer sonst
   fu:r Deckbla:tter bezahlen mu:ssten, die sie nicht gedruckt haben.

   Es ist ebenfalls nicht ausreichend, jeden Filter eigene
   Deckbla:tter erzeugen zu lassen (und sie dadurch verrechnen zu
   ko:nnen). Wollte ein Benutzer durch ein lpr -h die Ausgabe eines
   Deckblattes unterdru:cken, wu:rde dieses nun trotzdem verrechnet
   werden, da LPD keine Informationen u:ber die Verwendung der Option
   -h an einen Filter weitergibt.

   Welche Mo:glichkeiten habe ich nun?

   Sie ko:nnen:

     * Das Paradigma von LPD einfach akzeptieren und die Deckbla:tter
       gratis abgeben.

     * Eine alternatives Drucksystem wie LPRng installieren. Der
       Abschnitt Alternativen zum Standard-Drucksystem beschreibt
       verschiedene Drucksysteme, die LPD ersetzen ko:nnen.

     * Schreiben Sie einen intelligenten Ausgabefilter. Normalerweise
       ku:mmert sich ein Ausgabefilter nur um die Initialisierung des
       Druckers oder um eine einfache Zeichenkonvertierung. Ausserdem
       eignet er sich fu:r die Ausgabe von Deckbla:ttern und normalem
       Text, wenn Sie keinen Text- oder Eingabefilter installiert
       haben. Haben Sie allerdings einen Textfilter installiert,
       verwendet LPD Ausgabefilter nur fu:r die Ausgabe von
       Deckbla:ttern. Ein Ausgabefilter kann den Text des von LPD
       erzeugten Deckblattes untersuchen, um festzustellen, welcher
       Benutzer und welcher Rechner den Druckauftrag gestartet hat.
       Leider weiss der Ausgabefilter auch mit dieser Methode nicht,
       welche Datei er zur Verrechnung verwenden soll (da der Name
       dieser Datei durch die af-Fa:higkeit u:bergeben wird). Wenn
       Sie eine Standard-Verrechnungsdatei verwenden, ko:nnen Sie
       diese in den Ausgabefilter einbauen. Um den Text des
       Deckblattes zu untersuchen, verwenden Sie die sh-Fa:higkeit
       (short header) in /etc/printcap. Falls Ihnen das zuviel
       Aufwand ist, freuen sich Ihre Benutzer sicher daru:ber, wenn
       Sie ihnen den kostenlosen Druck von Deckbla:ttern erlauben.

     --------------------------------------------------------------

    10.4.2.4. Deckbla:tter auf PostScript-Druckern ausgeben

   In der Regel erzeugt LPD ein Deckblatt mit normalem Text, das fu:r
   viele verschiedene Drucker geeignet ist. Da PostScript-Drucker
   normalen Text aber nicht drucken ko:nnen, ist die LPD-Funktion zur
   Erstellung von Deckbla:ttern auf diesen Drucker relativ sinnlos.

   Es sei denn, jeder Text- und Konvertierungsfilter erzeugt u:ber
   den Benutzer- und Rechnernamen sein eigenes, fu:r den jeweiligen
   Drucker geeignetes Deckblatt. Das Problem dieser Methode ist
   allerdings, dass ein Anwender auch dann ein Deckblatt erha:lt,
   wenn er dies u:ber lpr -h verhindern wollte.

   Das folgende Skript beno:tigt drei Argumente (den Loginnamen des
   Benutzers, den Rechnernamen und den Namen des Druckauftrages), um
   daraus ein einfaches PostScript-Deckblatt zu erzeugen:

 #!/bin/sh
 #
 #  make-ps-header - ein PostScript-Deckblatt auf stdout ausgeben
 #  Installiert unter:  /sr/local/libexec/make-ps-header
 #

 #
 #  Die folgenden Werte sind PostScript-Einheiten (72 pro Zoll).
 #  Passen Sie diese Werte fu:r A4 oder die von Ihnen verwendete
 #  Papiergro:sse an:
 #
 page_width=612
 page_height=792
 border=72

 #
 #  Argumente pru:fen
 #
 if [ $# -ne 3 ]; then
     echo "Usage: `basename $0` <user> <host> <job>" 1>&2
     exit 1
 fi

 #
 #  Diese Werte in Variablen speichern, damit der PostScript-Code
 #  u:bersichtlicher wird.
 #
 user=$1
 host=$2
 job=$3
 date=`date`

 #
 #  Sende den PostScript-Code an stdout.
 #
 exec cat <<EOF
 %!PS

 %
 %  Sicherstellen, dass es keine unerwu:nschten Wechselwirkungen mit
 %  dem folgenden Druckauftrag gibt.
 %
 save

 %
 %  Ziehe eine fette Umrandung.
 %
 $border $border moveto
 $page_width $border 2 mul sub 0 rlineto
 0 $page_height $border 2 mul sub rlineto
 currentscreen 3 -1 roll pop 100 3 1 roll setscreen
 $border 2 mul $page_width sub 0 rlineto closepath
 0.8 setgray 10 setlinewidth stroke 0 setgray

 %
 %  Zeige den Benutzernamen gross und fett an.
 %
 /Helvetica-Bold findfont 64 scalefont setfont
 $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
 ($user) show

 %
 %  Und nun zeige noch die Einzelheiten an.
 %
 /Helvetica findfont 14 scalefont setfont
 /y 200 def
 [ (Job:) (Host:) (Date:) ] {
 200 y moveto show /y y 18 sub def }
 forall

 /Helvetica-Bold findfont 14 scalefont setfont
 /y 200 def
 [ ($job) ($host) ($date) ] {
         270 y moveto show /y y 18 sub def
 } forall

 %
 % Das wars.
 %
 restore
 showpage
 EOF    

   Nun kann jeder Konvertierungs- oder Textfilter dieses Skript
   aufrufen, um zuerst das Deckblatt zu erzeugen und danach den
   Druckauftrag zu drucken. Das na:chste Beispiel entha:lt den
   bereits beschriebenen DVI-Konvertierungsfilter, der hier um die
   Funktion zur Erzeugung eines Deckblatts erweitert wurde:

 #!/bin/sh
 #
 #  psdf - DVI-nach-PostScript - Druckerfilter
 #  Installiert unter:  /usr/local/libexec/psdf
 #
 #  Wird von lpd aufgerufen, wenn der Benutzer lpr -d verwendet.
 #

 orig_args="$@"

 fail() {
     echo "$@" 1>&2
     exit 2
 }

 while getopts "x:y:n:h:" option; do
     case $option in
         x|y)  ;; # Ignore
         n)    login=$OPTARG ;;
         h)    host=$OPTARG ;;
         *)    echo "LPD started `basename $0` wrong." 1>&2
               exit 2
               ;;
     esac
 done

 [ "$login" ] || fail "No login name"
 [ "$host" ] || fail "No host name"

 ( /usr/local/libexec/make-ps-header $login $host "DVI File"
   /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args

   Beachten Sie, dass der Filter die Liste der Argumente u:berpru:ft,
   um den Benutzer- und den Rechnernamen zu ermitteln. Dieser Vorgang
   ist prinzipiell fu:r alle Filter identisch. Der Textfilter
   beno:tigt allerdings etwas andere Argumente, die im Abschnitt Die
   Funktionsweise von Filtern beschrieben werden.

   Wie bereits erwa:hnt, deaktiviert diese Methode leider die
   "suppress header page"-Option (also die Option -h) von lpr.
   Benutzer ko:nnen danach den Ausdruck eines Deckblattes nicht mehr
   verhindern, da der angepasste Filter zu jedem Druckauftrag
   automatisch ein Deckblatt erstellt.

   Damit ein Benutzer bei Bedarf den Ausdruck eines Deckblatts
   dennoch unterbinden kann, mu:ssen Sie auch hier den im Abschnitt
   Deckbla:tter verrechnen beschriebenen Trick einsetzen: Schreiben
   Sie einen Ausgabefilter, der das von LPD erzeugte Deckblatt
   untersucht und daraus eine PostScript-Version erzeugt. Wenn der
   Benutzer den Druckauftrag mit lpr -h verschickt, erzeugt LPD kein
   Deckblatt, was in weiterer Folge auch fu:r Ihren Ausgabefilter
   gilt. Soll hingegen ein Deckblatt erzeugt werden, liest der
   Ausgabefilter den von LPD u:bergebenen Text und erzeugt daraus ein
   fu:r Ihren PostScript-Drucker geeignetes Deckblatt.

   Haben Sie Ihren PostScript-Drucker u:ber eine serielle Verbindung
   angeschlossen, ko:nnen Sie auch lprps verwenden. In diesem Paket
   ist mit psof auch ein Ausgabefilter enthalten, der die eben
   beschriebenen Funktionen u:bernehmen kann. Beachten Sie aber, dass
   Sie mit psof keine Deckbla:tter verrechnen ko:nnen.

     --------------------------------------------------------------

  10.4.3. Drucken u:ber ein Netzwerk

   FreeBSD unterstu:tzt das Drucken u:ber ein Netzwerk, also den
   Versand von Druckauftra:gen an einen entfernten Drucker. Man
   unterscheidet dabei zwei Mo:glichkeiten:

     * Den Zugriff auf einen an einem entfernten Rechner
       angeschlossenen Drucker. Sie konfigurieren dabei auf Ihrem
       System einen Drucker, der u:ber eine konventionelle serielle
       oder parallele Verbindung an einem anderen Rechner
       angeschlossen ist. Danach richten Sie LPD auf dem entfernten
       System so ein, dass andere Drucker u:ber das Netzwerk auf
       diesen Drucker zugreifen ko:nnen. Der Abschnitt Auf entfernten
       Rechnern installierte Drucker beschreibt, wie Sie dazu
       vorgehen mu:ssen.

     * Den Zugriff auf einen direkt an ein Netzwerk angeschlossenen
       Drucker. Ein solcher Drucker verfu:gt anstelle (oder
       zusa:tzlich zu) einer parallelen oder seriellen Schnittstelle
       u:ber eine Netzwerkschnittstelle. Ein solcher Drucker kann
       sich auf zwei Arten verhalten:

          * Er kann das LPD-Protokoll direkt unterstu:tzen und sogar
            Druckjobs von entfernten Rechner verwalten. In diesem
            Fall verha:lt sich der Drucker wie ein normaler Rechner,
            auf dem LPD la:uft. Lesen Sie den Abschnitt Auf
            entfernten Rechnern installierte Drucker, um einen
            solchen Drucker einzurichten.

          * Er ko:nnte Verbindungen u:ber ein Netzwerk unterstu:tzen.
            In diesem Fall "verbinden" Sie den Drucker mit einem
            Rechner Ihres Netzwerks, der danach fu:r die Verwaltung
            von Druckauftra:gen sowie den tatsa:chlichen Druck
            verantwortlich ist. Der Abschnitt Drucker mit direkter
            TCP-Schnittstelle entha:lt Hinweise zur Installation
            derartiger Drucker.

     --------------------------------------------------------------

    10.4.3.1. Auf entfernten Rechnern installierte Drucker

   Das LPD-Drucksystem unterstu:tzt den Versand von Druckauftra:gen
   an andere Rechner, auf denen entweder LPD la:uft oder die zu LPD
   kompatibel sind. Dadurch ko:nnen Sie einen Drucker auf einem
   Rechner installieren und von anderen Rechnern des Netzwerks darauf
   zugreifen. Ausserdem werden Drucker mit direkter TCP-Schnittstelle
   unterstu:tzt, wenn diese das LPD-Protokoll unterstu:tzen.

   Um diese Art des Druckens u:ber ein Netzwerk zu aktivieren,
   installieren Sie zuerst Ihren Drucker auf einem Rechner Ihres
   Netzwerks, dem sogenannten printer host. Die dazu no:tigen
   Schritte werden im Abschnitt Einfache Drucker-Konfiguration
   beschrieben. Falls Sie eine erweiterte Druckerkonfiguration
   beno:tigen, sollten Sie auch den Abschnitt Erweiterte
   Drucker-Konfiguration lesen. Danach testen Sie, ob der Drucker
   alle von Ihnen aktivierten LPD-Fa:higkeiten unterstu:tzt. Stellen
   Sie auch sicher, dass Ihr lokales System berechtigt ist, den
   LPD-Dienst auf dem entfernten System zu nutzen (lesen Sie dazu den
   Abschnitt Druckauftra:ge auf entfernten Druckern beschra:nken).

   Wenn Sie einen Drucker mit einer zu LPD kompatiblen
   Netzwerkschnittstelle verwenden, handelt es sich beim printer host
   um den Drucker selbst, und der Druckername ist der von Ihnen fu:r
   diesen Drucker vorgegebene Name. Lesen Sie die Dokumentation Ihres
   Druckers und/oder der Netzwerkschnittstelle Ihres Druckers, um
   dies zu kla:ren.

     Tipp: Wenn Sie einen Hewlett Packard Laserjet-Drucker verwenden,
     sorgt der Druckername text fu:r eine automatische
     LF-zu-CRLF-Konvertierung. In diesem Fall wird das hpif-Skript
     nicht beno:tigt.

   Danach mu:ssen Sie auf jedem Rechner, der auf diesen Drucker
   zugreifen soll, einen entsprechenden Eintrag in deren
   /etc/printcap aufnehmen. Dazu werden folgende Informationen
   beno:tigt:

    1. Der Name des Eintrags. Entspricht in der Regel dem Eintrag auf
       dem printer host.

    2. Lassen Sie den Eintrag fu:r die lp-Fa:higkeit leer, schreiben
       Sie also :lp=:.

    3. Erzeugen Sie ein Spooling-Verzeichnis und geben Sie dessen
       Pfad u:ber die sd-Fa:higkeit an. LPD speichert Ihre
       Druckauftra:ge in diesem Verzeichnis, bevor sie an den Drucker
       geschickt werden.

    4. Geben Sie den Namen des printer hosts u:ber die rm-Fa:higkeit
       an.

    5. Geben Sie den Namen des Druckers (auf dem printer host) u:ber
       die rp-Fa:higkeit an.

   Das ist alles. Sie beno:tigen weder Konvertierungsfilter, noch
   Seitengro:ssen oder sonstige Angaben in Ihrer lokalen
   /etc/printcap.

   Dazu ein Beispiel. Der Rechner rose verfu:gt u:ber zwei Drucker,
   bamboo und rattan. Wir wollen nun allen Benutzern des Rechners
   orchid erlauben, diese Drucker zu verwenden. Es folgt nun wieder
   die bereits aus dem Abschnitt Deckbla:tter verwenden bekannte
   /etc/printcap fu:r den Rechner orchid. Diese enthielt bereits
   einen Eintrag fu:r den Drucker teak. Zusa:tzlich tragen wir nun
   die zwei Drucker des Rechners rose ein:

 #
 #  /etc/printcap fu:r den Rechner orchid - mit zusa:tzlichen
 #  Eintra:gen fu:r die (entfernten) Drucker auf dem Rechner rose
 #

 #
 #  teak ist ein lokaler Drucker und direkt mit orchid verbunden:
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/ifhp:\
         :vf=/usr/local/libexec/vfhp:\
         :of=/usr/local/libexec/ofhp:

 #
 #  rattan ist mit rose verbunden, Druckauftra:ge fu:r rattan gehen daher
 #  an den Rechner rose:
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:

 #
 #  bamboo ist ebenfalls mit rose verbunden:
 #
 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:

   Nun mu:ssen wir nur noch die Spooling-Verzeichnisse auf dem
   Rechner orchid erzeugen:

 # mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo
 # chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo
 # chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo

   Damit ko:nnen Benutzer des Rechners orchid die Drucker rattan und
   bamboo verwenden. Ein Benutzer gibt auf orchid beispielsweise ein:

 % lpr -P bamboo -d sushi-review.dvi

   Die Anwendung LPD auf dem Rechner orchid kopiert daraufhin den
   Druckauftrag in das Spooling-Verzeichnis /var/spool/lpd/bamboo und
   stellt fest, dass es sich um einen DVI-Auftrag handelt. Sobald
   rose u:ber genug freien Platz im bamboo-Spooling-Verzeichnis
   verfu:gt, wu:rden die beiden LPD die Datei auf den Rechner rose
   transferieren. Diese Datei verbleibt danach in der
   Druckerwarteschlange des Rechners rose, bis der Ausdruck der Datei
   abgeschlossen ist. Vor dem Ausdruck wu:rde die Datei noch von DVI
   nach PostScript konvertiert werden, da es sich bei bamboo um einen
   an den Rechner rose angeschlossenen PostScript-Drucker handelt.

     --------------------------------------------------------------

    10.4.3.2. Drucker mit direkter TCP-Schnittstelle

   Wenn Sie eine Netzwerkkarte fu:r Ihren Drucker kaufen, ko:nnen Sie
   zwei verschiedene Versionen wa:hlen: Eine Version, die ein
   Drucksystem emuliert (die teure Version), oder eine Version, die
   sich verha:lt, als wa:re der Drucker an eine serielle oder
   parallele Schnittstelle angeschlossen (die billige Version).
   Dieser Abschnitt beschreibt die billige Variante. Bevorzugen Sie
   die teure Variante, sollten Sie den Abschnitt Auf entfernten
   Rechnern installierte Drucker nochmals lesen.

   Das Format der Datei /etc/printcap erlaubt es Ihnen, anzugeben,
   welche serielle oder parallele Schnittstelle verwendet werden soll
   und (falls Sie eine serielle Schnittstelle verwenden) welche
   Parameter (Baudrate, Flusskontrolle, Behandlung von Tabulatoren,
   Konvertierung von neuen Zeilen und andere mehr) Sie verwenden
   wollen. Es gibt allerdings keine Mo:glichkeit, eine Verbindung zu
   einem Drucker zu definieren, der einen TCP/IP- oder einem anderem
   Netzwerkport auf Druckauftra:ge hin abfragt.

   Um Daten an einen Netzwerkdrucker zu schicken, mu:ssen Sie daher
   ein Kommunikationsprogramm entwickeln, das von Text- und
   Konvertierungsfiltern aufgerufen werden kann. Dazu ein Beispiel.
   Das Skript netprint u:bernimmt alle Daten von der Standardeingabe
   und schickt sie an einen Netzwerkdrucker. netprint erwartet zwei
   Argumente: Als erstes Argument wird der Hostname des Druckers und
   als zweites Argument der Port, u:ber den die Verbindung erfolgen
   soll, u:bergeben. Dabei handelt sich allerdings um eine
   Ein-Wege-Kommunikation (von FreeBSD zum Drucker). Viele
   Netzwerkdrucker unterstu:tzen aber auch eine
   Zwei-Wege-Kommunikation, deren Vorteile (Abfrage des
   Druckerstatus, die Verrechnung von Druckauftra:gen und andere
   mehr) Sie vielleicht nutzen wollen.

 #!/usr/bin/perl
 #
 #  netprint - Textfilter fu:r einen Netzwerkdrucker
 #  Installiert unter:  /usr/local/libexec/netprint
 #
 $#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";

 $printer_host = $ARGV[0];
 $printer_port = $ARGV[1];

 require 'sys/socket.ph';

 ($ignore, $ignore, $protocol) = getprotobyname('tcp');
 ($ignore, $ignore, $ignore, $ignore, $address)
     = gethostbyname($printer_host);

 $sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);

 socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
     || die "Can't create TCP/IP stream socket: $!";
 connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
 while (<STDIN>) { print PRINTER; }
 exit 0;

   Dieses Skript kann fu:r verschiedene Filter eingesetzt werden. Das
   folgende Beispiel verwendet den an ein Netzwerk angeschlossenen
   Zeilendrucker Diablo 750-N. Dieser Drucker empfa:ngt zu druckende
   Daten auf dem Port 5100. Der Hostname des Druckers lautet
   scrivener. Daher sieht der Textfilter fu:r diesen Drucker wie
   folgt aus:

 #!/bin/sh
 #
 #  diablo-if-net - Textfilter fu:r den Diablo-Drucker `scrivener'.
 #  Drucker lauscht auf Port 5100.
 #  Installiert unter:  /usr/local/libexec/diablo-if-net
 #
 exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100

     --------------------------------------------------------------

  10.4.4. Den Druckerzugriff beschra:nken

   Dieser Abschnitt beschreibt, wie Sie den Druckerzugriff
   beschra:nken ko:nnen. Das LPD-Drucksystem erlaubt Ihnen die
   Kontrolle daru:ber, wer lokal oder u:ber ein Netzwerk auf einen
   Drucker zugreifen darf, ob mehrere Kopien erstellt werden du:rfen
   und wie gross Druckauftra:ge und Druckerwarteschlangen werden
   du:rfen.

     --------------------------------------------------------------

    10.4.4.1. Den Ausdruck von mehreren Kopien verhindern

   Das LPD-System macht es dem einzelnen Benutzer einfach, mehrere
   Kopien einer Datei zu drucken. So werden mit lpr -#5
   beispielsweise fu:nf Kopien jeder Datei des Druckauftrags
   erstellt. Ob dies gut oder schlecht ist, mu:ssen Sie selbst
   entscheiden.

   Wenn Sie der Meinung sind, dass multiple Kopien eine unno:tige
   Beanspruchung Ihres Druckers darstellen, sollten Sie die -#-Opion
   von lpr(1) deaktivieren, indem Sie die sc-Fa:higkeit in Ihre
   /etc/printcap aufnehmen. Verwendet ein Benutzer dennoch die Option
   -#, erha:lt er daraufhin folgende Meldung:

 lpr: multiple copies are not allowed

   Wenn Sie den Zugriff auf einen entfernten Drucker (wie in
   Abschnitt Auf entfernten Rechnern installierte Drucker
   beschrieben) konfiguriert haben, mu:ssen Sie die sc-Fa:higkeit
   auch auf den entfernten Rechnern, die auf Ihren Drucker zugreifen
   du:rfen, in /etc/printcap eintragen, damit Benutzer diese Vorgabe
   nicht durch den Wechsel auf einen anderen Rechner umgehen ko:nnen.

   Dazu ein Beispiel. Es handelt sich dabei um die Datei
   /etc/printcap auf dem Rechner rose. Der Drucker rattan soll
   multiple Kopien zulassen, auf dem Laserdrucker bamboo sollen
   multiple Kopien hingegen nicht erlaubt sein, daher mu:ssen wir
   fu:r diesen Drucker die sc-Fa:higkeit aktivieren:

 #
 #  /etc/printcap fu:r den Rechner rose - multiple Kopien auf bamboo verbieten
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:\
         :lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Ausserdem mu:ssen wir noch die sc-Fa:higkeit in der Datei
   /etc/printcap des Rechners orchid aktivieren. Parallel dazu
   untersagen wir das Erstellen von multiplen Kopien auf dem Drucker
   teak:

 #
 #  /etc/printcap fu:r den Rechner orchid - lokal machen wir keine multiplen Kopien
 #  Lokaler Drucker teak oder entfernter Drucker bamboo:
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
         :if=/usr/local/libexec/ifhp:\
         :vf=/usr/local/libexec/vfhp:\
         :of=/usr/local/libexec/ofhp:

 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:

   Durch die Verwendung der sc-Fa:higkeit ist zwar die Verwendung von
   lpr -# nicht mehr mo:glich, ein Benutzer kann aber weiterhin
   lpr(1) mehrmals hintereinander aufrufen oder eine Datei mehrfach
   in den gleichen Druckauftrag aufnehmen:

 % lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign

   Auch dieser Missbrauch Ihres Druckers kann verhindert werden,
   falls Sie dies wu:nschen. Diese Massnahmen werden in diesem
   Abschnitt allerdings nicht behandelt.

     --------------------------------------------------------------

    10.4.4.2. Den Zugriff auf bestimmte Drucker beschra:nken

   Sie ko:nnen angeben, wer auf welchem Drucker drucken darf, wenn
   Sie den Gruppenmechanismus von UNIX in Kombination mit der
   rg-Fa:higkeit von /etc/printcap einsetzen. Weisen Sie dazu alle
   Benutzer, die auf einen Drucker zugreifen du:rfen, einer
   gemeinsamen Gruppe zu und geben Sie diese Gruppe u:ber die
   rg-Fa:higkeit an.

   Wenn Benutzer, die dieser Gruppe nicht angeho:ren (dies gilt auch
   fu:r root), werden diese durch die Meldung begru:sst, wenn Sie
   diesen Drucker verwenden wollen.

 lpr: Not a member of the restricted group

   Analog zur sc-Fa:higkeit (suppress multiple copies) mu:ssen Sie
   die rg-Fa:higkeit auch auf allen entfernten Rechnern aktivieren,
   die auf Ihren Drucker zugreifen du:rfen (lesen Sie dazu auch den
   Abschnitt Auf entfernten Rechnern installierte Drucker).

   Wollen wir beispielsweise allen Benutzern die Verwendung des
   Druckers rattan, aber nur Mitgliedern der Gruppe artists die
   Verwendung des Druckers bamboo erlauben, passen wir die bereits
   bekannte /etc/printcap des Rechners rose entsprechend an:

 #
 #  /etc/printcap des Rechners rose - Zugriffsbeschra:nkung fu:r bamboo
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\
         :lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Die Datei /etc/printcap des Rechners orchid wird dadurch nicht
   beeinflusst. Jeder Benutzer des Rechners orchid kann also
   weiterhin den Drucker bamboo verwenden.

     Anmerkung: Fu:r jeden Drucker kann nur eine einzige
     priviligierte Gruppe erstellt werden.

     --------------------------------------------------------------

    10.4.4.3. Die Gro:sse von Druckauftra:gen kontrollieren

   Wenn Sie viele Benutzer haben, die Ihre Drucker verwenden du:rfen,
   werden Sie wahrscheinlich eine Obergrenze fu:r Dateien angeben
   wollen, die Benutzer an Ihren Drucker senden du:rfen. Dies ist
   sinnvoll, weil Speicherplatz fu:r Spooling-Verzeichnisse nur
   begrenzt verfu:gbar ist und Sie stets sicherstellen mu:ssen, dass
   auch die Druckauftra:ge anderer Benutzer verarbeitet werden
   ko:nnen.

   LPD verwendet die mx-Fa:higkeit, um die maximal erlaubte Gro:sse
   von Dateien eines Druckauftrags anzugeben. Dieser Wert wird in
   1.024 Bytes grossen BUFSIZ-Blo:cken angegeben. Setzen Sie diesen
   Wert auf Null, gibt es keine Gro:ssenbeschra:nkung. Existiert die
   mx-Fa:higkeit hingegen u:berhaupt nicht, so gilt ein Limit von
   1.000 Blo:cken.

     Anmerkung: Diese Limits gelten nur fu:r die Gro:sse von Dateien
     innerhalb eines Druckauftrages, nicht aber fu:r die
     Gesamtgro:sse des Druckauftrags.

   LPD lehnt eine Datei auch dann nicht ab, wenn sie das Limit des
   Druckers u:berschreitet. Vielmehr wird die Datei bis zum Erreichen
   des Limits in die Warteschlange geladen, danach wird der Druck
   gestartet. Der das Limit u:berschreitende Rest wird hingegen
   verworfen und nicht gedruckt!

   Mit diesem Wissen ko:nnen wir nun Limits fu:r die Drucker rattan
   und bamboo definieren. Da PostScript-Dateien der Gruppe artists in
   der Regel sehr gross sind, setzen wir ein Limit von fu:nf
   Megabytes. Fu:r den Druck von normalen Text (auf dem Drucker
   rattan) setzen wir hingegen kein Limit:

 #
 #  /etc/printcap fu:r den Rechner rose
 #

 #
 #  Kein Gro:ssenlimit:
 #
 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:mx#0:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:

 #
 #  Ein Limit von 5 Megabyte:
 #
 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
         :lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

   Auch diese Limits gelten nur fu:r lokale Benutzer. Wenn Sie den
   Zugriff auf Ihren Drucker auch u:ber ein Netzwerk erlauben wollen,
   unterliegen die Benutzer dieser Rechner diesen Limits nicht. Daher
   mu:ssen Sie diese Limits u:ber die mx-Fa:higkeit auch in der
   /etc/printcap jedes Rechners definieren, der Ihren Drucker
   verwenden darf. Der Abschnitt Auf entfernten Rechnern installierte
   Drucker entha:lt weitere Informationen zum Drucken u:ber ein
   Netzwerk.

   Es gibt eine weitere Mo:glichkeit, um die Gro:sse von
   Druckauftra:gen von entfernten Rechnern zu beschra:nken. Lesen Sie
   dazu den Abschnitt Druckauftra:ge von entfernten Rechnern
   beschra:nken.

     --------------------------------------------------------------

    10.4.4.4. Druckauftra:ge von entfernten Rechnern beschra:nken

   Das LPD-System bietet mehrere Mo:glichkeiten, um Druckauftra:ge zu
   beschra:nken, die auf entfernten Rechnern gestartet wurden:

   Rechner beschra:nken

           Sie ko:nnen festlegen, von welchen entfernten Rechnern ein
           lokaler LPD Druckauftra:ge annimmt, indem Sie die Dateien
           /etc/hosts.equiv sowie /etc/hosts.lpd entsprechend
           anpassen. LPD u:berpru:ft diese Dateien, um festzustellen,
           ob ein Druckauftrag von einem Rechner stammt, der in einer
           dieser Dateien aufgefu:hrt ist. Ist dies nicht der Fall,
           lehnt LPD den Druckauftrag ab.

           Der Aufbau dieser Datei ist sehr einfach: Jede Zeile
           entha:lt einen einzigen Rechnernamen. Beachten Sie aber,
           dass /etc/hosts.equiv auch vom ruserok(3)-Protokoll
           beno:tigt wird und A:nderungen dieser Datei auch Programme
           wie rsh(1) und rcp(1) beeinflussen ko:nnen.

           Das folgende Beispiel beschreibt die Datei /etc/hosts.lpd
           auf dem Rechner rose:

 orchid
 violet
 madrigal.fishbaum.de

           Durch diese Vorgaben akzeptiert rose nur noch
           Druckauftra:ge von den Rechnern orchid, violet, und
           madrigal.fishbaum.de. Versucht ein anderer Rechner, auf
           den LPD von rose zuzugreifen, wird dieser Druckauftrag
           abgelehnt werden.

   Gro:ssenbeschra:nkungen

           Sie ko:nnen festlegen, wieviel Speicherplatz auf dem
           Dateisystem, in dem das Spooling-Verzeichnis liegt,
           mindestens frei sein muss. Dazu erzeugen Sie im
           Spooling-Verzeichnis Ihres lokalen Druckers die Datei
           minfree. In dieser Datei geben Sie an, wieviele 512 Byte
           grosse Blo:cke auf Ihrer Platte frei sein mu:ssen, damit
           ein Druckauftrag von einem entfernten Rechner akzeptiert
           wird.

           Durch diese Vorgabe ko:nnen Sie sicherstellen, dass
           Benutzer von entfernten Rechnern Ihr Dateisystem nicht
           "zumu:llen". Ausserdem ko:nnen Sie damit lokale Benutzer
           bevorzugen, da diese auch dann noch Druckauftra:ge
           erteilen du:rfen, wenn der verfu:gbare Plattenplatz unter
           das in der Datei minfree definierte Limit gefallen ist.

           Legen wir nun die Datei minfree fu:r den Drucker bamboo
           an. Zuerst untersuchen wir /etc/printcap, um das
           Spooling-Verzeichnis fu:r diesen Drucker zu finden. Das
           folgende Beispiel zeigt den Eintrag fu:r den Drucker
           bamboo:

 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
         :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
         :lp=/dev/ttyu5:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
         :if=/usr/local/libexec/psif:\
         :df=/usr/local/libexec/psdf:

           Das Spooling-Verzeichnis wird u:ber die sd-Fa:higkeit
           festgelegt. Wir wollen, dass mindestens drei Megabyte
           (also 6144 Blo:cke) freier Plattenplatz vorhanden sein
           mu:ssen, damit LPD einen Druckauftrag von einem entfernten
           Rechner akzeptiert:

 # echo 6144 > /var/spool/lpd/bamboo/minfree

   Benutzer beschra:nken

           Sie ko:nnen auch festlegen, welche entfernten Benutzer
           Ihren lokalen Drucker verwenden du:rfen, indem Sie die
           rs-Fa:higkeit in /etc/printcap definieren. Wenn fu:r den
           Eintrag eines lokalen Druckers die rs-Fa:higkeit definiert
           ist, akzeptiert LPD Druckauftra:ge von entfernten Rechnern
           nur dann, wenn der Benutzer, der den Druckauftrag gesendet
           hat, auch u:ber ein gleichnamiges Benutzerkonto auf dem
           lokalen Rechner verfu:gt. Ist dies nicht der Fall, lehnt
           LPD den Druckauftrag ab.

           Diese Fa:higkeit ist besonders in Umgebungen nu:tzlich, in
           denen beispielsweise verschiedene Abteilungen ein
           gemeinsames Netzwerk teilen, wobei einige Benutzer zu
           mehreren Abteilungen geho:ren. Haben diese Benutzer auch
           ein Benutzerkonto auf Ihrem System, so ko:nnen sie Ihren
           Drucker auch von ihrer eigenen Abteilung aus nutzen.
           Wollen Sie zwar den Zugriff auf Ihren Drucker, nicht aber
           den Zugriff auf Ihre u:brigen Ressourcen erlauben, ko:nnen
           Sie fu:r diese Benutzer einen sogenannten "Token-Account"
           ohne Heimatverzeichnis und mit einer nutzlosen Shell wie
           /usr/bin/false erstellen.

     --------------------------------------------------------------

  10.4.5. Die Druckernutzung verrechnen

   Sie wollen die Nutzung Ihrer Drucker kostenpflichtig machen? Warum
   auch nicht? Papier und Tinte kosten Geld. Auch eine regelma:ssige
   Wartung muss bezahlt werden. Nachdem Sie einen Preis festgelegt
   haben, den Sie fu:r jede gedruckte Seite verrechnen wollen, stellt
   sich die Frage, wie Sie die Verrechnung der Druckkosten technisch
   umsetzen ko:nnen.

   Die schlechte Nachricht ist, dass das LPD-System dabei wenig
   hilfreich ist. Die Verrechnung von Druckauftra:gen ha:ngt stark
   vom verwendeten Drucker, den zu druckenden Dateiformaten und Ihren
   Anforderungen an die Verrechnung der Druckernutzung ab.

   Um die Verrechnung der Druckernutzung zu implementieren, mu:ssen
   Sie sowohl Ihre Textfilter (um den Druck von normalem Text
   abzurechnen) als auch Ihre Konvertierungsfilter (um den Druck
   sonstiger Formate abzurechnen) entsprechend anpassen, damit diese
   die Zahl der gedruckten Seiten ermitteln ko:nnen. Leider ko:nnen
   Sie dazu nicht einen einfachen Ausgabefilter verwenden, da diese
   die Verrechnung von Druckauftra:gen nicht unterstu:tzen. Weitere
   Informationen zu den verschiedenen Filterarten finden Sie im
   Abschnitt Filter.

   Prinzipiell gibt es zwei Mo:glichkeiten, wie Sie diese Verrechnung
   umsetzen ko:nnen:

     * Die periodische Verrechnung wird ha:ufiger verwendet, da sie
       einfacher zu implementieren ist. Wenn ein Druckauftrag
       ausgefu:hrt wird, schreibt der Filter den Benutzer, den
       verwendeten Rechner sowie die Anzahl der gedruckten Seiten in
       eine Verrechnungsdatei. Nach einem zu definierenden Zeitraum
       werden diese Dateien ausgewertet, die Gesamtzahl der von einem
       Benutzer gedruckten Seiten bestimmt und dem jeweiligen
       Benutzer verrechnet. Danach werden alle Protokolldateien
       zuru:ckgesetzt, und die Protokollierung beginnt von Neuem.

     * Die unmittelbare Verrechnung wird nur selten eingesetzt, das
       sie schwieriger zu implementieren ist. Bei dieser Methode wird
       der Druckauftrag verrechnet, sobald der Drucker verwendet
       wird. Dadurch ko:nnen Sie beispielsweise verhindern, dass ein
       Benutzer seine erlaubte "Druckquote" u:berschreitet.
       Zusa:tzlich ko:nnen Sie es Ihren Benutzern erlauben, deren
       Druckquote abzufragen oder anzupassen. Allerdings beno:tigen
       Sie eine Datenbank, um Benutzer und deren Quoten verwalten zu
       ko:nnen.

   Das LPD-Drucksystem unterstu:tzt beide Methoden. Allerdings
   mu:ssen Sie die beno:tigen Filter sowie den zur Verrechnung
   no:tigen Code selbst bereitstellen. Der Vorteil dabei ist
   allerdings, dass Sie in der Wahl Ihrer Verrechnungsmethode
   a:usserst flexibel sind. So ko:nnen Sie sich etwa fu:r die
   periodische oder die unmittelbare Verrechnung entscheiden. Sie
   ko:nnen festlegen, welche Informationen Sie erfassen wollen:
   Benutzernamen, Rechnernamen, die Art der Druckauftra:ge, die
   Anzahl der gedruckten Seiten, den Papierverbrauch, den Zeitaufwand
   fu:r die Bearbeitung eines Druckauftrages und viele andere mehr.
   Dazu mu:ssen Sie Ihre Filter entsprechend anpassen, damit diese
   Informationen erfassst und gespeichert werden.

     --------------------------------------------------------------

    10.4.5.1. Kurzanleitung fu:r die Implementierung der
    Druckerverrechnung

   FreeBSD bietet Ihnen zwei Programme, um eine periodische
   Verrechnung rasch zu implementieren. Dabei handelt es sich um den
   im Abschnitt lpf: Ein Textfilter behandelten Textfilter sowie um
   pac(8), ein Programm, mit dem Sie Eintra:ge aus
   Verrechnungsdateien auslesen und aufsummieren ko:nnen.

   Wie bereits im Abschnitt Filter erwa:hnt, startet LPD den Text-
   oder Konvertierungsfilter mit dem Namen der Verrechnungsdatei als
   Argument. Dadurch weiss der Filter, in welche Datei er einen
   Verrechnungseintrag schreiben soll. Der Name dieser Datei wird
   u:ber die af-Fa:higkeit in /etc/printcap festgelegt. Falls die
   Datei nicht u:ber einen absoluten Pfad angegeben wird, handelt es
   sich um einen Pfad relativ zum Spooling-Verzeichnis.

   LPD startet lpf mit den Argumenten page width und page length, die
   u:ber die pw- und pl-Fa:higkeit definiert werden. Das Kommando lpf
   verwendet diese Argumente danach, um den Papierverbrauch zu
   bestimmen. Nachdem die Datei an den Drucker geschickt wurde, wird
   ein Verrechnungseintrag in die Verrechnungsdatei geschrieben. Ein
   solcher Eintrag sieht dabei a:hnlich den folgenden aus:

 2.00 rose:andy
 3.00 rose:kelly
 3.00 orchid:mary
 5.00 orchid:mary
 2.00 orchid:zhang

   Sie sollten fu:r jeden Drucker eine eigene Verrechnungsdatei
   verwenden, da lpf die Verrechnungsdatei nicht sperren kann. Sind
   also gleichzeitig zwei lpf-Instanzen aktiv, kann es dazu kommen,
   dass Ihre Verrechnungsdatei zersto:rt wird, wenn beide Instanzen
   gleichzeitig in die gleiche Datei schreiben. Damit fu:r jeden
   Drucker eine eigene Verrechnungsdatei angelegt wird, fu:gen Sie
   den Eintrag af=acct in /etc/printcap ein. Dadurch wird fu:r jeden
   Drucker eine separate Verrechnungsdatei mit dem Namen acct im
   Spooling-Verzeichnis des jeweiligen Druckers erzeugt.

   Wenn Sie Ihre Daten erfasst haben und die entstandenen Kosten
   Ihren Benutzern verrechnen wollen, starten Sie pac(8). Dazu
   wechseln Sie in das Spooling-Verzeichnis des auszuwertenden
   Druckers und geben pac ein. Dadurch erhalten Sie eine Ausgabe
   a:hnlich der folgenden:

   Login               pages/feet   runs    price
 orchid:kelly                5.00    1   $  0.10
 orchid:mary                31.00    3   $  0.62
 orchid:zhang                9.00    1   $  0.18
 rose:andy                   2.00    1   $  0.04
 rose:kelly                177.00  104   $  3.54
 rose:mary                  87.00   32   $  1.74
 rose:root                  26.00   12   $  0.52

 total                     337.00  154   $  6.74

   Folgende Argumente ko:nnen an pac(8) u:bergeben werden:

   -PDrucker

           Gibt an, welcher Drucker ausgewertet werden soll. Diese
           Option setzt voraus, dass fu:r die af-Fa:higkeit in
           /etc/printcap ein absoluter Pfad angegeben wurde.

   -c

           Sortiert die Ausgabe nach den verursachten Kosten anstelle
           einer alphabetischen Sortierung der Benutzernamen.

   -m

           Ignoriert den Rechnernamen in Verrechnungsdateien. Ist
           diese Option gesetzt, ist der Benutzer smith auf dem
           Rechner alpha mit dem Benutzer smith auf dem Rechner gamma
           identisch. Ist diese Option nicht gesetzt, handelt es sich
           um unterschiedliche Benutzer.

   -pPreis

           Berechnet die entstandenen Kosten aus dem Preis in Dollar
           pro Seite statt aus dem u:ber die pc-Fa:higkeit in
           /etc/printcap definierten Preis. In der Voreinstellung
           sind dies zwei Cent pro Seite. Sie ko:nnen aber auch einen
           eigenen Preis in Form einer Gleitkommazahl angeben.

   -r

           Die Sortierreihenfolge umkehren.

   -s

           Die Verrechnungsdatei in einer neuen Datei aufsummieren
           und die originale Verrechnungsdatei zuru:cksetzen.

   name ...

           Verrechnungsinformationen nur fu:r die angegebenen
           Benutzernamen ausgeben.

   In der Voreinstellung gibt pac(8) aus, wieviele Seiten von welchem
   Benutzer auf welchem Rechner gedruckt wurden. Wenn Rechnernamen
   fu:r Sie uninteressant sind (weil sich Benutzer beispielsweise auf
   jedem Rechner anmelden ko:nnen), sollten Sie pac -m verwenden, um
   die folgende Ausgabe zu erhalten:

   Login               pages/feet   runs    price
 andy                        2.00    1   $  0.04
 kelly                     182.00  105   $  3.64
 mary                      118.00   35   $  2.36
 root                       26.00   12   $  0.52
 zhang                       9.00    1   $  0.18

 total                     337.00  154   $  6.74

   Um den zu verrechnenden Betrag zu ermitteln, verwendet pac(8) die
   pc-Fa:higkeit von /etc/printcap (Voreinstellung 200, dieser Wert
   entspricht 2 Cents). Geben Sie hier (als Hundertfaches des
   tatsa:chlichen Wertes) den Preis pro Seite an, den Sie verrechnen
   wollen. Sie ko:nnen diesen Wert u:berschreiben, wenn Sie pac(8)
   mit der Option -p ausfu:hren. Beachten Sie dabei aber, dass Sie in
   diesem Fall die Einheiten in Dollar angeben, und nicht als
   Hundertfaches des tatsa:chlichen Cent-Betrages. So steht

 # pac -p1.50

   beispielsweise fu:r einen Preis von einem Dollar und fu:nfzig Cent
   pro Seite.

   Der Aufruf von pac -s fu:hrt schliesslich dazu, dass die
   aufsummierten Informationen in einer eigenen Auswertedatei
   gespeichert werden. Diese hat den gleichen Namen wie die
   Verrechnungsdatei, es wird lediglich ein _sum an den Dateinamen
   angeha:ngt. Danach wird die Verrechnungsdatei zuru:ckgesetzt. Wenn
   Sie pac(8) erneut aufrufen, wird die Auswertedatei eingelesen, um
   die Startbetra:ge zu erhalten, alle weiteren Informationen stammen
   danach aus der normalen Verrechnungsdatei.

     --------------------------------------------------------------

    10.4.5.2. Wie kann man die Anzahl der gedruckten Seiten ermitteln?

   Um die Druckernutzung auch nur anna:hernd genau verrechnen zu
   ko:nnen, mu:ssen Sie ermitteln, wieviel Papier ein Druckauftrag
   verbraucht. Die Bestimmung dieses Wertes ist das zentrale Problem,
   das Sie lo:sen mu:ssen, wenn Sie Druckauftra:ge kostenpflichtig
   machen wollen.

   Normaler Text stellt in der Regel kein Problem dar: Sie za:hlen
   dazu nur die Zeilen des Druckauftrages und dividieren diesen Wert
   durch die Anzahl der Zeilen pro Seite, die Ihr Drucker bietet.
   Allerdings du:rfen Sie dabei nicht vergessen, dass gelo:schte
   Zeichen (Backspaces) Zeilen u:berschreiben. Ausserdem ko:nnen sich
   lange logische Zeilen (im Druckauftrag) u:ber mehrere
   physikalische Zeilen (am Ausdruck) erstrecken.

   Der im Abschnitt lpf: Ein Textfilter vorgestellte Textfilter lpf
   beru:cksichtigt diese Besonderheiten. Wenn Sie einen eigenen
   Textfilter fu:r die Verrechnung der Druckernutzung schreiben
   wollen, sollten Sie sich daher den Quellcode von lpf na:her
   ansehen.

   Aber was ist mit anderen Dateiformaten?

   Fu:r die DVI-nach-LaserJet- oder fu:r die
   DVI-nach-PostScript-Konvertierung ko:nnen Sie die Protokolldateien
   von dvilj oder dvips auslesen, um festzustellen, wieviele Seiten
   konvertiert wurden. Die gleiche Methode ko:nnte auch mit anderen
   Dateitypen funktionieren.

   Alle diese Methoden haben aber das Problem, dass ein Drucker
   mo:glicherweise nicht alle Seiten des Druckauftrages drucken kann.
   So ko:nnte es etwa zu einem Papierstau kommen, der Toner ko:nnte
   zu Ende gehen oder es ko:nnte ein Druckerdefekt
   auftreten - trotzdem wu:rden alle Seiten des Druckauftrages
   verrechnet werden.

   Was kann man dagegen tun?

   Es gibt nur eine einzige sichere Methode, um die Druckernutzung
   exakt zu bestimmen. Besorgen Sie sich einen Drucker, der das
   verbrauchte Papier protokolliert und verbinden Sie ihn u:ber eine
   serielle oder eine Netzwerkverbindung. Nahezu alle
   PostScript-Drucker, aber auch viele andere Modelle und
   Druckertypen (beispielsweise Laserdrucker von Imagen) sind dazu in
   der Lage. Passen Sie die Filter fu:r diese Drucker entsprechend
   an, damit diese nach jedem Druckauftrag die Anzahl der gedruckten
   Seiten ermitteln und verrechnen Sie Druckauftra:ge ausschliesslich
   u:ber diesen Wert. Danach mu:ssen Sie sich um die Anzahl der
   gedruckten Zeilen oder um mo:gliche Druckerprobleme nie mehr
   ku:mmern.

   Sie ko:nnen aber auch grosszu:gig sein und alle Ausdrucke
   kostenlos abgeben.

     --------------------------------------------------------------

10.5. Drucker verwenden

   U:bersetzt von Johann Kois.

   Dieser Abschnitt beschreibt, wie Sie einen unter FreeBSD
   konfigurierten Drucker verwenden ko:nnen. Die folgende Liste
   bietet einen U:berblick u:ber wichtige Anwenderbefehle:

   lpr(1)

           Einen Druckauftrag drucken

   lpq(1)

           Eine Druckerwarteschlange pru:fen

   lprm(1)

           Einen Druckauftrag aus einer Warteschlange entfernen
           (stornieren)

   Zusa:tzlich existiert mit lpc(8) ein Befehl zur zur Steuerung von
   Druckern und Druckerwarteschlangen, der im Abschnitt Drucker
   verwalten na:her beschrieben wird.

   Jeder der drei Befehle lpr(1), lprm(1), sowie lpq(1) akzeptiert
   die Option -P printer-name, mit der Sie den zu verwendenden
   Drucker (der dazu in /etc/printcap definiert sein muss) festlegen.
   Dadurch sind Sie in der Lage, Druckauftra:ge zu erstellen, zu
   stornieren, oder den Status Ihrer Druckauftra:ge zu u:berpru:fen.
   Verwenden Sie die Option -P nicht, wird der in der
   Umgebungsvariable PRINTER definierte Drucker verwendet. Existiert
   diese Variable nicht, greifen diese Befehle auf den Drucker lp
   zuru:ck.

   Im Folgenden steht der Begriff Standarddrucker daher fu:r den
   u:ber die Umgebungsvariable PRINTER definierten Drucker, oder,
   falls diese Variable nicht existiert, fu:r den Drucker lp.

     --------------------------------------------------------------

  10.5.1. Druckauftra:ge erstellen

   Um eine Datei zu drucken, geben Sie folgenden Befehl ein:

 % lpr filename ...

   Dadurch wird jede angegebene Datei an den Standarddrucker
   geschickt. Wenn Sie keine Datei angeben, liest lpr(1) die zu
   druckenden Daten von der Standardeingabe. Um beispielsweise einige
   wichtige Systemdateien zu drucken, geben Sie folgenden Befehl ein:

 % lpr /etc/host.conf /etc/hosts.equiv

   Um einen bestimmten Drucker auszuwa:hlen, verwenden Sie:

 % lpr -P printer-name filename ...

   Das folgende Beispiel gibt eine ausfu:hrliche Liste aller im
   Arbeitsverzeichnis enthaltenen Dateien auf den Drucker rattan aus:

 % ls -l | lpr -P rattan

   Da keine Dateien an lpr(1) u:bergeben werden, liest lpr die zu
   druckenden Daten von der Standardeingabe, in unserem Fall also die
   Ausgabe des Befehls ls -l.

   lpr(1) akzeptiert auch verschiedene Optionen zur Formatierung und
   Konvertierung von Dateien, zur Erzeugung von multiplen Ausdrucken
   und so weiter. Lesen Sie dazu den Abschnitt Druckoptionen.

     --------------------------------------------------------------

  10.5.2. Druckauftra:ge verwalten

   Wenn Sie lpr(1) verwenden, werden alle zu druckenden Daten in ein
   Paket, den sogenannten "Druckauftrag", gepackt und an LPD
   geschickt. Jeder Drucker verfu:gt u:ber eine Druckerwarteschlange,
   in der Ihre Druckauftra:ge gemeinsam mit denen anderer Benutzer
   verbleiben, bis sie gedruckt werden ko:nnen. Zuerst eintreffende
   Druckauftra:ge werden dabei auch zuerst gedruckt.

   Um die Druckerwarteschlange des Standarddruckers anzuzeigen,
   verwenden Sie lpq(1). Wollen Sie einen anderen Drucker abfragen,
   mu:ssen Sie die Option -P verwenden. Der Befehl

 % lpq -P bamboo

   zeigt so die Druckerwarteschlange des Druckers bamboo an. Dieser
   Befehl liefert eine Ausgabe a:hnlich der folgenden:

 bamboo is ready and printing
 Rank   Owner    Job  Files                              Total Size
 active kelly    9    /etc/host.conf, /etc/hosts.equiv   88 bytes
 2nd    kelly    10   (standard input)                   1635 bytes
 3rd    mary     11   ...                                78519 bytes

   Derzeit entha:lt die Warteschlange von bamboo drei Druckauftra:ge.
   Dem ersten Auftrag, der vom Benutzer kelly erstellt wurde, wurde
   die "Auftragsnummer (job number)" 9 zugewiesen. Analog erha:lt
   jeder Druckerauftrag eine eindeutige Nummer zugewiesen. Diese
   Nummern sind nur dann von Bedeutung, wenn Sie einen Druckauftrag
   stornieren wollen. Der Abschnitt Druckauftra:ge stornieren
   beschreibt, wie Sie dazu vorgehen.

   Der Auftrag mit der Nummer 9 besteht aus zwei Dateien, mehrere an
   lpr(1) u:bergebene Dateien werden also als Teil eines
   (gemeinsamen) Druckauftrags betrachtet. Dieser Druckauftrag ist
   derzeit aktiv (beachten Sie den Status active in der Spalte
   "Rank"), wird also gerade gedruckt. Der zweite Auftrag besteht aus
   Daten, die von der Standardeingabe an lpr(1) u:bergeben wurden.
   Der dritte Auftrag wurde vom Benutzer mary erstellt. Er ist sehr
   viel gro:sser als die anderen Auftra:ge. Da der Pfad der zu
   druckenden Datei aufgrund seiner La:nge nicht in der Spalte
   "Files" Platz hat, werden von lpq(1) nur drei Punkte angezeigt.

   Die erste Zeile der Ausgabe von lpq(1) ist ebenfalls sehr
   nu:tzlich: Sie beschreibt den momentanen Druckerstatus (oder
   zumindest, was LPD denkt, dass der Drucker gerade macht).

   lpq(1) unterstu:tzt auch die Option -l zur Erstellung einer
   ausfu:hrlicheren Ausgabe. Die Eingabe von lpq -l erzeugt fu:r
   unser obiges Beispiel die folgende Ausgabe:

 waiting for bamboo to become ready (offline ?)
 kelly: 1st                               [job 009rose]
        /etc/host.conf                    73 bytes
        /etc/hosts.equiv                  15 bytes

 kelly: 2nd                               [job 010rose]
        (standard input)                  1635 bytes

 mary: 3rd                                [job 011rose]
       /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes

     --------------------------------------------------------------

  10.5.3. Druckauftra:ge stornieren

   Mit lprm(1) ko:nnen Sie einen Druckauftrag stornieren. Ha:ufig ist
   lprm(1) auch noch in der Lage, einen bereits aktiven Auftrag
   abzubrechen, allerdings wird dabei in der Regel trotzdem ein Teil
   des Auftrages oder der gesamte Auftrag gedruckt.

   Um einen Druckauftrag auf dem Standarddrucker zu stornieren,
   mu:ssen Sie zuerst die Auftragsnummer u:ber lpq(1) ermitteln.
   Danach geben Sie Folgendes ein:

 % lprm Job-Nummer

   Um einen Druckauftrag eines anderen Druckers zu stornieren,
   beno:tigen Sie wiederum die Option -P. Der folgende Befehl
   entfernt den Druckauftrag mit der Nummer 10 aus der Warteschlange
   des Druckers bamboo:

 % lprm -P bamboo 10

   lprm(1) unterstu:tzt verschiedene Kurzbefehle:

   lprm -

           Entfernt alle Druckauftra:ge (des Standarddruckers), die
           von Ihnen erstellt wurden.

   lprm user

           Entfernt alle Druckauftra:ge (des Standarddruckers), die
           vom Benutzer user erstellt wurden. Der Superuser kann im
           Gegensatz zu einem normalen Benutzer auch Auftra:ge
           anderer Benutzer entfernen.

   lprm

           Wenn Sie weder eine Auftragsnummer, einen Benutzernamen,
           noch die Option - angeben, entfernt lprm(1) den aktiven
           Druckauftrag auf dem Standarddrucker, falls dieser Auftrag
           von Ihnen erstellt wurde. Der Superuser kann hingegen
           jeden aktiven Druckauftrag abbrechen.

   Verwenden Sie zusa:tzlich die Option -P zu den eben beschriebenen
   Kurzbefehlen, wenn Sie diese auf einen anderen Drucker als den
   Standarddrucker anwenden wollen. So entfernt der folgende Befehl
   beispielsweise alle Druckauftra:ge des aktuellen Benutzers aus der
   Druckerwarteschlange des Druckers rattan:

 % lprm -P rattan -

     Anmerkung: Wenn Sie in einer Netzwerkumgebung arbeiten, erlaubt
     es lprm(1) Ihnen nur, Druckauftra:ge auf dem Rechner zu
     stornieren, auf dem sie erstellt wurden. Dies gilt selbst dann,
     wenn der gleiche Drucker auch auf anderen Rechnern des Netzwerks
     verfu:gbar ist. Die folgende Befehlsfolge veranschaulicht diesen
     Umstand:

 % lpr -P rattan myfile
 % rlogin orchid
 % lpq -P rattan
 Rank   Owner      Job  Files                          Total Size
 active seeyan     12    ...                           49123 bytes
 2nd    kelly      13   myfile                         12 bytes
 % lprm -P rattan 13
 rose: Permission denied
 % logout
 % lprm -P rattan 13
 dfA013rose dequeued
 cfA013rose dequeued
        

     --------------------------------------------------------------

  10.5.4. Abseits von normalem Text: Druckoptionen

   lpr(1) unterstu:tzt verschiedene Optionen zur Formatierung von
   Text, zur Konvertierung von Grafik- und anderen Dateiformaten, zur
   Erzeugung von multiplen Kopien, zur Verwaltung von Druckauftra:gen
   und andere mehr. Dieser Abschnitt beschreibt einige dieser
   Optionen.

     --------------------------------------------------------------

    10.5.4.1. Formatierungs- und Konvertierungsoptionen

   Die folgenden lpr(1)-Optionen kontrollieren die Formatierung von
   in einem Druckauftrag enthaltenen Dateien. Verwenden Sie diese
   Optionen, wenn Ihr Druckauftrag keinen normalen Text entha:lt,
   oder wenn Sie normalen Text mit pr(1) formatieren wollen.

   Der folgende Befehl druckt so beispielsweise eine DVI-Datei (des
   TeX-Satzsystems) namens fish-report.dvi auf dem Drucker bamboo:

 % lpr -P bamboo -d fish-report.dvi

   Diese Optionen gelten fu:r jede Datei des Druckauftrags, daher ist
   es nicht mo:glich beispielsweise DVI- und ditroff-Dateien u:ber
   den gleichen Druckauftrag zu drucken. Sie mu:ssen diese Dateien
   vielmehr u:ber getrennte Druckauftra:ge drucken, wobei Sie jeweils
   geeignete Konvertierungsoptionen verwenden.

     Anmerkung: Alle Optionen mit Ausnahme von -p und -T setzen einen
     installierten und fu:r den jeweiligen Drucker konfigurierten
     Konvertierungsfilter voraus. So beno:tigt die Option -d den
     DVI-Konvertierungsfilter. Diese Filter werden im Abschnitt
     Konvertierungsfilter ausfu:hrlich beschrieben.

   -c

           Druckt cifplot-Dateien.

   -d

           Druckt DVI-Dateien.

   -f

           Druckt FORTRAN-Textdateien.

   -g

           Druckt Plot-Daten.

   -i anzahl

           Ru:ckt die Ausgabe um anzahl Spalten ein, lassen Sie
           anzahl weg, wird der Text um 8 Spalten eingeru:ckt.
           Beachten Sie aber, dass diese Option nicht mit allen
           Konvertierungsfiltern funktioniert.

             Anmerkung: Zwischen der Option -i und der der Zahl darf
             dabei kein Leerzeichen stehen.

   -l

           Druckt Text inklusive vorhandener Steuerzeichen.

   -n

           Druckt ditroff-Dateien (gera:teunabha:ngiges troff).

   -p

           Formatiert normalen Text mit pr(1), bevor der Ausdruck
           erfolgt.

   -T titel

           Verwende titel auf dem pr(1)-Deckblatt anstelle des
           Dateinamens. Diese Option ist nur wirksam, wenn sie
           gemeinsam mit der Option -p verwendet.

   -t

           Druckt troff-Daten.

   -v

           Druckt Rasterdaten.

   Dazu ein Beispiel. Der folgende Befehl druckt eine formatierte
   Version der Manualpage zu ls(1) auf den Standarddrucker:

 % zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t

   zcat(1) dekomprimiert den Quellcode der Manualpage ls(1) und
   reicht ihn an troff(1) weiter, das ihn formatiert und daraus GNU
   troff-Daten erzeugt. Diese werden wiederum an lpr(1)
   weitergereicht, das den Druckauftrag schliesslich an LPD
   u:bergibt. Da die Option -t von lpr(1) verwendet wurde,
   konvertiert das Drucksystem die GNU troff-Daten zuvor in ein
   Format, das der Standarddrucker verstehen und ausgeben kann.

     --------------------------------------------------------------

    10.5.4.2. Druckauftra:ge verwalten

   Die folgenden Optionen von lpr(1) weisen LPD an, den Druckauftrag
   auf verschiedene Art und Weise zu behandeln:

   -# anzahl

           Erzeugt anzahl Ausdrucke jeder im Druckauftrag enthaltenen
           Datei anstelle eines einzigen Exemplars. Diese Option kann
           von einem Administrator deaktiviert werden, um die
           Beanspruchung des Druckers zu verringern. Lesen Sie den
           Abschnitt Den Ausdruck von mehreren Kopien verhindern,
           wenn Sie diese Funktion beno:tigen.

           Das folgende Beispiel druckt drei Kopien der Datei
           parser.c, gefolgt von drei Kopien von parser.h auf den
           Standarddrucker:

 % lpr -#3 parser.c parser.h

   -m

           Verschickt eine E-Mail, nachdem der Druckauftrag beendet
           wurde. Verwenden Sie diese Option, sendet LPD Ihnen eine
           E-Mail, wenn es die Bearbeitung Ihres Druckauftrages
           abgeschlossen hat. Diese Nachricht entha:lt Informationen
           daru:ber, ob Ihr Auftrag erfolgreich erledigt wurde oder
           ob ein Fehler auftrat. Ist dies der Fall, wird meist noch
           angegeben, welcher Fehler auftrat.

   -s

           Kopiert die Dateien nicht in das Spooling-Verzeichnis,
           sondern verlinkt stattdessen symbolisch auf diese Dateien.

           Wenn Sie einen umfangreichen Druckauftrag erstellen,
           werden Sie diese Option wahrscheinlich verwenden wollen.
           Einerseits sparen Sie dadurch Speicherplatz im
           Spooling-Verzeichnis (im schlimmsten Fall ko:nnte Ihr
           Druckauftrag ansonsten das Dateisystem des
           Spooling-Verzeichnis zum U:berlaufen bringen),
           andererseits sparen Sie dadurch auch Zeit, weil LPD die in
           Ihrem Druckauftrag enthaltenen Dateien nicht in das
           Spooling-Verzeichnis kopieren muss.

           Da LPD in diesem Fall die Originaldateien verwendet, muss
           sichergestellt sein, dass diese nicht vera:ndert werden,
           bevor der Ausdruck abgeschlossen ist.

             Anmerkung: Wenn Sie auf einen entfernten Drucker
             drucken, muss LPD die Dateien dennoch vom lokalen auf
             den entfernten Rechner kopieren. In diesem Fall spart
             die Option -s Speicherplatz lediglich im lokalen
             Spooling-Verzeichnis, nicht aber im entfernten. Dennoch
             ist diese Option auch in diesem Fall nu:tzlich.

   -r

           Lo:scht die im Druckauftrag enthaltenen Dateien, nachdem
           sie in das Spooling-Verzeichnis kopiert oder unter
           Verwendung der Option -s gedruckt werden. Verwenden Sie
           diese Option daher nur mit a:usserster Vorsicht!

     --------------------------------------------------------------

    10.5.4.3. Deckblatt-Optionen

   Die folgenden lpr(1)-Optionen passen den Text an, der auf einem
   Deckblatt eines Druckauftrages ausgegeben wird. Wird die Ausgabe
   von Deckbla:ttern auf dem Zieldrucker unterdru:ckt, bleiben diese
   Optionen wirkungslos. Lesen Sie den Abschnitt Deckbla:tter, wenn
   Sie diese Funktion beno:tigen.

   -C text

           Ersetzt den Rechnernamen auf dem Deckblatt durch text. Der
           Rechnername ist dabei in der Regel der Name des Rechners,
           auf dem der Druckauftrag erstellt wurde.

   -J text

           Ersetzt den Namen des Druckauftrages auf dem Deckblatt
           durch text. Der Name des Druckauftrages entspricht in der
           Regel dem Namen der ersten Datei des Druckauftrages oder
           stdin, wenn Sie die Standardeingabe an den Drucker
           weiterleiten.

   -h

           Verhindert den Ausdruck von Deckbla:ttern.

             Anmerkung: Ob diese Option funktioniert, ha:ngt von der
             Art und Weise ab, wie Deckbla:tter auf Ihrem System
             erzeugt werden. Lesen Sie den Abschnitt Deckbla:tter
             fu:r weitere Informationen.

     --------------------------------------------------------------

  10.5.5. Drucker verwalten

   Als Administrator Ihres Systems ist es Ihre Aufgabe, Drucker zu
   installieren, zu konfigurieren und zu testen. Um mit Ihrem Drucker
   zu kommunizieren, ko:nnen Sie lpc(8) verwenden. Dadurch sind Sie
   in der Lage,

     * Ihre Drucker zu starten und zu beenden.

     * Die Warteschlangen Ihrer Drucker zu aktivieren und zu
       deaktivieren.

     * Die Reihenfolge der Druckauftra:ge zu a:ndern.

   Am Anfang dieses Abschnitts steht die Erkla:rung einiger Begriffe.
   Wenn ein Drucker beendet ist, wird der Inhalt seiner Warteschlange
   nicht gedruckt. Druckauftra:ge ko:nnen zwar weiterhin erstellt
   werden, diese verbleiben aber solange in der Warteschlange, bis
   der Drucker wieder gestartet oder die Warteschlange gelo:scht
   wird.

   Ist eine Warteschlange deaktiviert, kann (mit Ausnahme von root)
   kein Benutzer mehr einen Druckauftrag erteilen. Ist die
   Warteschlange hingegen aktiviert, ko:nnen Druckauftra:ge erteilt
   werden. Ist ein Drucker zwar gestartet, die Warteschlange hingegen
   deaktiviert, werden dennoch alle noch in der Warteschlange
   vorhandenen Druckauftra:ge gedruckt.

   Im Allgemeinen beno:tigen Sie root-Rechte, um lpc(8) einsetzen zu
   ko:nnen. Als normaler Benutzer erlaubt es Ihnen lpc(8) lediglich,
   den Druckstatus abzufragen und einen ha:ngenden Drucker neu zu
   starten.

   Es folgt nun eine Zusammenfassung der Befehle von lpc(8). Die
   meisten dieser Befehle beno:tigen das Argument printer-name, mit
   dem Sie angeben, auf welchen Drucker der Befehl angewendet werden
   soll. Wenn Sie fu:r printer-name all angeben, wird der Befehl auf
   alle in /etc/printcap definierten Drucker angewendet.

   abort printer-name

           Bricht den aktuellen Druckauftrag ab und beendet den
           Drucker. Solange die Warteschlange aktiviert ist, ko:nnen
           allerdings weiterhin Druckauftra:ge erteilt werden.

   clean printer-name

           Entfernt veraltete Dateien aus dem Spooling-Verzeichnis
           des Druckers, da diese manchmal nicht vollsta:ndig von LPD
           entfernt werden ko:nnen. Dies ist insbesondere dann der
           Fall, wenn wa:hrend der Bearbeitung des Druckauftrages
           Fehler auftraten. Dieser Befehl sucht dabei nach Dateien,
           die nicht in das Spooling-Verzeichnis geho:ren und
           entfernt diese.

   disable printer-name

           Deaktiviert die Annahme neuer Druckauftra:ge. Solange der
           Drucker nicht beendet wird, werden weiterhin alle in der
           Warteschlange enthaltenen Auftrage bearbeitet und
           gedruckt. root kann jederzeit Druckauftra:ge erstellen,
           selbst dann, wenn die Druckerwarteschlange deaktiviert
           ist.

           Dieser Befehl ist besonders nu:tzlich, wenn Sie einen
           neuen Drucker testen mu:ssen oder einen neuen Filter
           installiert haben. Dazu deaktivieren Sie die Warteschlange
           des Druckers und erstellen Ihre Druckauftra:ge als root.
           Andere Benutzer ko:nnen erst dann einen Druckauftrag
           erstellen, wenn Sie Ihre Tests abgeschlossen haben und die
           Druckerwarteschlange mit enable wieder reaktivieren.

   down printer-name nachricht

           Beendet einen Drucker. A:quivalent zu disable, gefolgt von
           stop. Die von Ihnen definierte nachricht wird als
           Druckerstatus angezeigt, wenn ein Benutzer die
           Warteschlange des Druckers mit lpq(1) oder mit lpc status
           abfragt.

   enable printer-name

           Aktiviert die Warteschlange eines Druckers. Erteilte
           Druckauftra:ge ko:nnen zwar erteilt werden, diese werden
           aber nur dann gedruckt, wenn der Drucker auch gestartet
           ist.

   help command-name

           Ausgaben von hilfreichen Informationen zu command-name.
           Wird kein command-name angegeben, wird die Liste der
           verfu:gbaren Befehle ausgegeben.

   restart printer-name

           Startet den Drucker. Normale Benutzer ko:nnen diesen
           Befehl verwenden, um einen ha:ngenden LPD zu reaktivieren,
           sie sind allerdings nicht berechtigt, einen Drucker zu
           starten, der mit stop oder down beendet wurde. Dieser
           Befehl ist a:quivalent zu abort, gefolgt von start.

   start printer-name

           Startet den Drucker, um die in der Warteschlange
           enthaltenen Auftra:ge zu drucken.

   stop printer-name

           Beendet den Drucker. Der Drucker beendet den aktiven
           Druckauftrag noch, danach wird kein weiterer in der
           Warteschlange enthaltener Auftrag gedruckt. Obwohl der
           Drucker beendet wurde, ko:nnen weiterhin Druckauftra:ge
           erteilt werden, solange die Warteschlange nicht
           deaktiviert wurde.

   topq printer-name job-or-username

           Sortiert die Druckerwarteschlange des Druckers
           printer-name um, wobei der Auftrag mit der angegebenen
           Auftragsnummer, oder Druckauftra:ge, die von username
           erstellt wurden, an den Beginn der Warteschlange gesetzt
           werden. Fu:r diesen Befehl kann die Option all nicht als
           printer-name verwendet werden.

   up printer-name

           Startet einen Drucker. Das Gegenstu:ck zu down.
           A:quivalent zu start, gefolgt von enable.

   lpc(8) akzeptiert diese Befehle direkt auf der Kommandozeile.
   Geben Sie keinen Befehl ein, wird lpc(8) im interaktiven Modus
   gestartet. In diesem Modus ko:nnen Sie solange Befehle eingeben,
   bis Sie exit oder quit eingeben.

     --------------------------------------------------------------

10.6. Alternativen zum LPD-Drucksystem

   Wenn Sie dieses Kapitel bis hierher gelesen haben, wissen Sie so
   gut wie alles u:ber LPD, das Standarddrucksystem von FreeBSD.
   Wahrscheinlich sind Ihnen bereits einige Unzula:nglichkeiten
   dieses Systems aufgefallen, und Sie fragen sich nun, welche
   anderen Drucksysteme es fu:r FreeBSD gibt.

   LPRng

           LPRng steht fu:r "LPR: the Next Generation". Dabei handelt
           es sich um eine von Grund auf neu geschriebene Version von
           PLP. LPRng wurde von Patrick Powell und Justin Mason, dem
           Hauptmaintainer von PLP, entwickelt. Die offizielle
           Webseite von LPRng ist unter http://www.lprng.org/ zu
           finden.

   CUPS

           CUPS, das Common UNIX Printing System, stellt eine
           portable Abstraktionsschicht dar, die das Drucken auf
           allen UNIX-artigen Betriebsystemen ermo:glicht. CUPS wurde
           von Easy Software entwickelt, um UNIX-Herstellern und
           -Benutzern eine einheitliche Standardlo:sung fu:r den
           Druck von Dokumenten zu bieten.

           CUPS verwendet das Internet Printing Protocol (IPP), um
           Druckauftra:ge und -warteschlangen zu verwalten.
           Zusa:tzlich werden die Protokolle Line Printer Daemon
           (LPD), Server Message Block (SMB), und
           AppSocket/JetDirect), unterstu:tzt, wenn auch nur mit
           eingeschra:nkter Funktionalita:t. Ausserdem ermo:glicht
           CUPS das Auffinden von Netzwerkdruckern sowie die
           Verwendung auf PostScript Printer Description (PPD)
           basierender Druckoptionen.

           Die offizielle Webseite von CUPS ist http://www.cups.org/.

   HPLIP

           HPLIP, das HP Linux Imaging and Printing System, ist eine
           von HP entwickelte Sammlung von Programmen, die
           Unterstu:tzung fu:r das drucken, scannen und faxen bei
           HP-Gera:ten bieten. Diese Programm-Sammlung verwendet CUPS
           als Grundlage fu:r einige seiner Druck-Eigenschaften.

           Die Hauptseite fu:r HPLIP ist
           http://hplipopensource.com/hplip-web/index.html.

     --------------------------------------------------------------

10.7. Problembehandlung

   Wenn Sie eine einfache Testseite mit lptest(1) gedruckt haben,
   ko:nnte eines der folgenden Probleme aufgetreten sein:

   Der Druck hat erst mit einer gewissen Verzo:gerung geklappt oder
   das bedruckte Blatt verblieb im Drucker, so als wa:re der
   Druckvorgang noch nicht abgeschlossen.

           Die Testseite wurde zwar gedruckt, danach tat sich
           allerdings nichts mehr. Vielleicht mussten Sie sogar eine
           Taste Ihres Druckers, etwa PRINT REMAINING oder FORM FEED
           dru:cken, damit der Druckvorgang fortgesetzt wurde.

           Wenn das der Fall ist, hat der Drucker vermutlich vor dem
           eigentlichen Drucken gewartet, ob noch weitere Daten fu:r
           Ihren Druckauftrag gesendet werden. Um dieses Problem zu
           beheben, ko:nnen Sie den Textfilter anweisen, ein Form
           Feed -Zeichen (oder ein anderes entsprechendes Zeichen) an
           den Drucker zu senden. Dies reicht fu:r gewo:hnlich aus,
           um den Drucker zum Druck des noch im internen Puffer
           verbliebenen Textes zu bewegen. Dadurch kann auch
           sichergestellt werden, dass jeder neue Druckauftrag auf
           einer neuen Seite beginnt.

           Der folgende Ersatz fu:r das Shell-Skript
           /usr/local/libexec/if-simple gibt ein "Form Feed" aus,
           nachdem der Auftrag an den Drucker geschickt wurde:

 #!/bin/sh
 #
 # if-simple - Einfacher Eingabefilter fu:r lpd
 # Installiert unter /usr/local/libexec/if-simple
 #
 # Kopiert stdin einfach nach stdout. Ignoriert alle Filter-Argumente.
 # Schreibt ein Form-Feed-Zeichen (\f) nach dem Ende des Druckauftrages.

 /bin/cat && printf "\f" && exit 0
 exit 2

   Der Drucker erzeugte einen "Treppeneffekt" (staircase effect).

           Sie haben einen Ausdruck a:hnlich dem folgenden erhalten:

 !"#$%&'()*+,-./01234
                 "#$%&'()*+,-./012345
                                  #$%&'()*+,-./0123456

           Sie sind zu einem weiteren Opfer des Treppeneffekts
           geworden. Verursacht wird dieser Effekt durch
           unterschiedliche Ansichten daru:ber, welche Zeichen den
           Beginn einer neuen Zeile anzeigen sollen. UNIX-a:hnliche
           Betriebssysteme verwenden dafu:r ein einzelnes Zeichen:
           ASCII-Code 10, auch als Line Feed (LF) bekannt. MS-DOS,
           OS/2(R) und andere Betriebssysteme verwenden stattdessen
           ein Zeichenpaar: ASCII-Code 10 und ASCII-Code 13, Carriage
           Return (CR). Viele Drucker verwenden in der Voreinstellung
           die Konvention von MS-DOS, um Zeilenumbru:che
           darzustellen.

           Wenn Sie unter FreeBSD drucken, wird nur das Zeichen Line
           Feed verwendet. Der Drucker erkennt dieses Zeichen und
           erweitert den Druckbereich um eine Zeile, verbleibt zum
           Druck des na:chsten Zeichens aber in derselben
           horizontalen Position. Das ist der Grund fu:r die
           Verwendung des Carriage Return: Es setzt die Position fu:r
           das folgende Zeichen auf den linken Rand der Seite.

           FreeBSD erwartet von einem Drucker das folgende Verhalten:

           Drucker empfa:ngt CR      Drucker druckt CR          
           Drucker empfa:ngt LF      Drucker druckt CR + LF     

           Es gibt mehrere Mo:glichkeiten, dieses Verhalten zu
           erreichen:

              * Vera:ndern Sie die Konfiguration Ihres Druckers, um
                die Interpretation dieser Zeichen zu vera:ndern.
                Lesen Sie Ihr Druckerhandbuch, wenn Sie nicht wissen,
                was Sie dazu tun mu:ssen.

                  Anmerkung: Wenn Sie auf Ihrem Rechner neben FreeBSD
                  noch andere Betriebssysteme verwenden, mu:ssen Sie
                  Ihren Drucker mo:glicherweise anschliessend erneut
                  konfigurieren, damit die Zeichen CR und LF unter
                  diesen Systemen korrekt interpretiert werden. Ist
                  dies bei Ihnen der Fall, werden Sie wohl eine der
                  folgenden Lo:sungen bevorzugen.

              * Lassen Sie LF durch den Treiber der seriellen
                Schnittstelle automatisch in CR+LF konvertieren.
                Selbstversta:ndlich funktioniert dies nur mit
                Druckern, die an einer seriellen Schnittstelle
                angeschlossen sind. Um diese Mo:glichkeit zu nutzen,
                mu:ssen Sie die ms#-Fa:higkeit verwenden und in
                /etc/printcap den onlcr-Modus fu:r den Drucker
                aktivieren.

              * Senden Sie eine Escape-Sequenz an den Drucker, damit
                das Zeichen LF zeitweilig anders behandelt wird.
                Suchen Sie im Handbuch Ihres Druckers nach den von
                Ihrem Drucker unterstu:tzten Escape-Sequenzen. Wenn
                Sie eine entsprechenden Escape-Sequenz finden,
                mu:ssen Sie den Textfilter so anpassen, dass zuerst
                die Escape-Sequenz und anschliessend der Druckauftrag
                gesendet wird.

                Es folgt nun ein Bespieltextfilter fu:r einen
                Drucker, der die Hewlett Packard PCL Escape-Sequenzen
                versteht. Dieser Filter veranlasst den Drucker,
                LF-Zeichen als Folgen von LF+CR aufzufassen.
                Anschliessend wird der Druckauftrag gesendet. Als
                Abschluss wird ein Form Feed gesendet, um die letzte
                Seite des Druckauftrags auszuwerfen. Dieses Beispiel
                sollte mit nahezu allen Druckern von Hewlett Packard
                funktionieren.

 #!/bin/sh
 #
 # hpif - Einfacher Text-Eingabefilter fu:r lpd fu:r auf HP-PCL basierende Drucker
 # Installiert unter /usr/local/libexec/hpif
 #
 # Kopiert stdin einfach nach stdout.  Ignoriert alle Filterargumente.
 # Weist den Drucker an LF als CR+LF zu interpretieren.
 # Wirft die Seite nach dem Drucken aus.

 printf "\033&k2G" && cat && printf "\033&l0H" && exit 0
 exit 2

                Das na:chste Beispiel aus /etc/printcap beschreibt
                den Rechner orchid, an dessen Parallelport ein
                Drucker angeschlossen ist. Es handelt sich dabei um
                einen Hewlett Packard LaserJet 3Si, der den Namen
                teak verwendet. Als Textfilter wird das Skript aus
                dem letzten Beispiel verwendet:

 #
 #  /etc/printcap fu:r den Rechner orchid
 #
 teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
         :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
         :if=/usr/local/libexec/hpif:

   Alle Zeilen wurden in die gleiche Zeile gedruckt.

           Der Drucker hat niemals eine neue Zeile begonnen. Alle
           Zeilen des Textes wurden in eine einzige Zeile gedruckt.

           Dieses Problem ist das "Gegenteil" des oben beschriebenen
           Treppeneffekts und kommt wesentlich seltener vor. Die von
           FreeBSD zum Abschluss einer Zeile benutzten LF-Zeichen
           werden als CR-Zeichen interpretiert. Dadurch wird die
           Druckposition zwar auf den linken Rand der Seite, aber
           nicht um eine Zeile nach unten gesetzt.

           Konfigurieren Sie Ihren Drucker, um die folgende
           Interpretation der Zeichen LF und CR zu erzwingen:

                Drucker empfa:ngt           Drucker druckt      
           CR                          CR                       
           LF                          CR + LF                  

   Manche Zeichen wurden nicht gedruckt.

           Der Drucker hat in jeder Zeile einige Zeichen nicht
           gedruckt. Vielleicht ist das Problem auch wa:hrend des
           Druckens schlimmer geworden, und der Drucker hat immer
           mehr Zeichen nicht gedruckt.

           Dieses Problem entsteht, weil der Drucker mit der
           Geschwindigkeit, mit der die Daten u:ber die serielle
           Schnittstelle (an einer parallelen Schnittstelle sollte
           das Problem nicht auftreten) eintreffen, nicht mithalten
           kann. Es gibt zwei Mo:glichkeiten, dieses Problem zu
           lo:sen:

              * Wenn der Drucker die Flusskontrolle mit XON/XOFF
                unterstu:tzt, ko:nnen Sie in der ms#-Fa:higkeit den
                ixon-Modus aktivieren.

              * Unterstu:tzt der Drucker die Anfrage zum
                Senden/Lo:schen des Sende-Hardware-Handshakes
                (allgemein bekannt als RTS/CTS, dann sollten Sie den
                crtscts-Modus in der ms#-Fa:higkeit aktivieren.
                Stellen Sie aber sicher, dass das verwendete
                Druckerkabel auch fu:r die Hardware-Flusskontrolle
                geeignet ist.

   Es wurden nur wirre Zeichen gedruckt.

           Anstelle des gewu:nschten Textes wurden nur zufa:llige
           Zeichen gedruckt.

           Dieses Problem wird ebenfalls durch falsche
           Konfigurationsparameter im Zusammenhang mit einem
           seriellen Drucker verursacht. Kontrollieren Sie die
           bps-Rate in der br-Fa:higkeit und die Parita:tseinstellung
           (Parity) in der ms#-Fa:higkeit. U:berpru:fen Sie
           ausserdem, ob der Drucker auch tatsa:chlich die gleichen
           Einstellungen verwendet, die in /etc/printcap definiert
           wurden.

   Der Drucker hat u:berhaupt nicht reagiert.

           Wenn gar nichts passiert ist, dann liegt das vermutlich an
           FreeBSD und nicht am Drucker. Aktivieren Sie die
           Protokollierung (lf-Fa:higkeit) fu:r den entsprechenden
           Drucker in der Datei /etc/printcap. Es folgt nun ein
           Beispieleintrag fu:r den Drucker rattan, bei dem die
           lf-Fa:higkeit aktiviert wurde.

 rattan|line|diablo|lp|Diablo 630 Line Printer:\
         :sh:sd=/var/spool/lpd/rattan:\
         :lp=/dev/lpt0:\
         :if=/usr/local/libexec/if-simple:\
         :lf=/var/log/rattan.log

           Versuchen Sie jetzt noch einmal zu drucken. U:berpru:fen
           Sie die Protokolldatei (in unserem Beispiel
           /var/log/rattan.log) auf etwaige Fehlermeldungen.
           Versuchen Sie aufgrund dieser Meldungen, das Problem zu
           beheben.

           Wenn Sie keine Protokolldatei festlegen, verwendet LPD in
           der Voreinstellung /dev/console fu:r die Ausgabe der
           Fehlermeldungen.

     --------------------------------------------------------------

                Kapitel 11. Linux-Bina:rkompatibilita:t

   Restrukturiert und teilweise aktualisiert von Jim Mock.
   Beigetragen von Brian N. Handy und Rich Murphey. U:bersetzt von
   Johann Kois.

11.1. U:bersicht

   FreeBSD bietet Bina:rkompatibilita:t zu verschiedenen anderen UNIX
   Betriebssystemen, darunter auch Linux. Nun ko:nnten Sie sich
   fragen, warum FreeBSD in der Lage sein muss, Linux-Bina:rprogramme
   auszufu:hren? Die Antwort auf diese Frage ist sehr einfach. Viele
   Unternehmen und Entwickler programmieren bzw. entwickeln nur fu:r
   Linux, da es "das Neueste und Beste" in der Computerwelt ist. Fu:r
   uns FreeBSD-Anwender heisst dies, genau diese Unternehmen und
   Entwickler zu bitten, FreeBSD-Versionen ihrer Programme
   herauszubringen. Das Problem dabei ist nur, dass die meisten
   dieser Firmen trotzdem nicht erkennen, wie viele zusa:tzliche
   Anwender ihre Produkte benutzen wu:rden, wenn es auch
   FreeBSD-Versionen ga:be, und daher weiterhin ausschliesslich fu:r
   Linux entwickeln. Was also kann ein FreeBSD-Anwender tun? Genau an
   diesem Punkt kommt die Linux- Bina:rkompatibilita:t ins Spiel.

   Um es auf den Punkt zu bringen, genau diese Kompatibilita:t
   erlaubt es FreeBSD-Anwendern, etwa 90 % aller Linux-Anwendungen
   ohne Code-A:nderungen zu verwenden. Dies schliesst solche
   Anwendungen wie StarOffice, Open Office, die Linux-Versionen von
   Netscape, Adobe Acrobat, RealPlayer, Oracle, WordPerfect(R), Doom,
   Quake und viele andere ein. Es wird sogar berichtet, dass diese
   Linux-Anwendungen in manchen Fa:llen unter FreeBSD eine bessere
   Leistung als unter Linux aufweisen.

   Allerdings gibt es nach wie vor einige Linux-spezifische
   Betriebssystem-Eigenschaften, die unter FreeBSD nicht unterstu:tzt
   werden. Linux-Anwendungen, die i386-spezifische Aufrufe (wie die
   Aktivierung des virtuellen 8086-Modus) verwenden, funktionieren
   unter FreeBSD leider nicht.

   Nach dem Lesen dieses Kapitels werden Sie

     * wissen, wie Sie die Linux-Bina:rkompatibilita:t installieren
       bzw. aktivieren.

     * Wissen, wie man zusa:tzliche Linux-Systembibliotheken unter
       FreeBSD installiert.

     * Linux-Anwendungen unter FreeBSD installieren ko:nnen.

     * Wissen, wie die Linux-Bina:rkompatibilita:t unter FreeBSD
       verwirklicht wurde.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * wissen, wie man Software Dritter installiert (Kapitel 5).

     --------------------------------------------------------------

11.2. Installation

   Die Linux-Bina:rkompatibilita:t ist per Voreinstellung nicht
   aktiviert. Der einfachste Weg, dies zu tun, ist das Linux KLD
   ("Kernel LoaDable object") zu laden. Dies erreichen Sie durch die
   Eingabe des folgenden Befehls:

 # kldload linux

   Wollen Sie die Linux-Bina:rkompatibilita:t dauerhaft aktivieren,
   sollten Sie die folgende Zeile in /etc/rc.conf einfu:gen:

 linux_enable="YES"

   Der kldstat(8)-Befehl kann benutzt werden, um festzustellen, ob
   KLD geladen wurde:

 % kldstat
 Id Refs Address    Size     Name
  1    2 0xc0100000 16bdb8   kernel
  7    1 0xc24db000 d000     linux.ko

   Wenn Sie das KLD nicht laden ko:nnen oder wollen, besteht auch die
   Mo:glichkeit, die Linux-Bina:rkompatibilta:t statisch in den
   Kernel einzubinden. Dazu fu:gen Sie Ihrer
   Kernelkonfigurationsdatei den Eintrag options COMPAT_LINUX hinzu.
   Anschliessend installieren Sie Ihren neuen Kernel wie in Kapitel 9
   beschrieben.

     --------------------------------------------------------------

  11.2.1. Linux-Laufzeitbibliotheken installieren

   Dies kann auf zwei Arten geschehen, entweder u:ber den
   linux_base-Port oder durch manuelle Installation der Bibliotheken.

     --------------------------------------------------------------

    11.2.1.1. Installation unter Verwendung des linux_base-Ports

   Dies ist die einfachste Methode, um die Laufzeitbibliotheken zu
   installieren. Sie funktioniert genauso wie die Installation eines
   beliebigen anderen Ports aus der Ports-Sammlung. Dazu machen Sie
   einfach folgendes:

 # cd /usr/ports/emulators/linux_base-f10
 # make install distclean

     Anmerkung: Bei FreeBSD-Systemen vor FreeBSD 8.0 mu:ssen Sie den
     Port emulators/linux_base-fc4 anstatt emulators/linux_base-f10
     installieren.

   Sie sollten nun u:ber eine funktionierende
   Linux-Bina:rkompatibilita:t verfu:gen. Einige Programme ko:nnten
   sich zwar u:ber falsche Unterversionsnummern der
   Systembibliotheken beschweren, dies ist im Allgemeinen aber kein
   Problem.

     Anmerkung: Unter Umsta:nden gibt es mehrere Versionen des Ports
     emulators/linux_base. Die Ports entsprechen unterschiedlichen
     Versionen verschiedener Linux-Distributionen Sie sollten den
     Port installieren, der am besten die Anforderungen der
     Linux-Anwendung erfu:llt.

     --------------------------------------------------------------

    11.2.1.2. Manuelle Installation der Bibliotheken

   Wenn Sie die "Ports"-Sammlung nicht installiert haben, ko:nnen Sie
   die Bibliotheken auch manuell installieren. Dazu brauchen Sie die
   jeweiligen Linux-Systembibliotheken, die das zu installierende
   Programm verwendet sowie den Laufzeit-Linker. Zusa:tzlich mu:ssen
   Sie auf Ihrem FreeBSD-System einen "virtuellen" Verzeichnisbaum
   fu:r die Linux-Bibliotheken einrichten. Alle unter FreeBSD
   gestarteten Linux-Programme suchen zuerst in diesem
   Verzeichnisbaum nach Systembibliotheken. Wenn also ein
   Linuxprogramm beispielsweise /lib/libc.so la:dt, versucht FreeBSD
   zuerst, /compat/linux/lib/libc.so laden. Ist diese Datei nicht
   vorhanden, wird /lib/libc.so geladen. Systembibliotheken sollten
   daher besser in den "virtuellen" Verzeichnisbaum /compat/linux/lib
   als in den vom Linux-ld.so vorgeschlagenen installiert werden.

   Im Allgemeinen mu:ssen Sie nur zu Beginn nach den
   Systembibliotheken suchen, die von Linuxprogrammen beno:tigt
   werden. Nach den ersten Installationen von Linuxprogrammen auf
   Ihrem FreeBSD-System verfu:gen Sie u:ber eine Sammlung von
   Linux-Systembibliotheken, die es Ihnen ermo:glichen wird, neue
   Linuxprogramme ohne Zusatzarbeit zu installieren.

     --------------------------------------------------------------

    11.2.1.3. Installation zusa:tzlicher Systembibliotheken

   Was passiert, wenn Sie den linux_base-Port installieren, und Ihr
   Programm beschwert sich trotzdem u:ber fehlende
   Systembibliotheken? Woher wissen Sie, welche Systembibliotheken
   von Linux-Bina:rprogrammen beno:tigt werden, und wo Sie diese
   finden? Grundsa:tzlich gibt es dafu:r zwei Mo:glichkeiten (um
   dieser Anleitung zu folgen, mu:ssen Sie unter FreeBSD als Benutzer
   root angemeldet sein):

   Wenn Sie Zugriff auf ein Linux-System haben, ko:nnen Sie dort
   nachsehen, welche Systembibliotheken eine Anwendung beno:tigt, und
   diese auf Ihr FreeBSD-System kopieren. Dazu folgendes Beispiel:

   Nehmen wir an, Sie haben FTP verwendet, um die Linux-Bina:rversion
   von Doom zu bekommen und haben sie auf Ihrem Linux-System
   installiert. Nun ko:nnen Sie u:berpru:fen, welche
   Systembibliotheken das Programm beno:tigt, indem Sie ldd linuxdoom
   eingeben. Das Resultat sieht dann so aus:

 % ldd linuxdoom
 libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
 libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
 libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29

   Sie mu:ssten nun alle Dateien aus der letzten Spalte kopieren und
   sie unter /compat/linux speichern, wobei die Namen der ersten
   Spalte als symbolische Links auf diese Dateien zeigen. Damit haben
   Sie schliesslich folgende Dateien auf Ihrem FreeBSD-System:

 /compat/linux/usr/X11/lib/libXt.so.3.1.0
 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
 /compat/linux/usr/X11/lib/libX11.so.3.1.0
 /compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
 /compat/linux/lib/libc.so.4.6.29
 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29

       Anmerkung: Beachten Sie, dass wenn Sie bereits eine
       Linux-Systembibliothek einer zur ersten Spalte passenden
       Hauptversionsnummer (laut ldd-Ausgabe) besitzen, Sie die Datei
       aus der zweiten Spalte nicht mehr kopieren mu:ssen, da die
       bereits vorhandene Version funktionieren sollte. Hat die
       Systembibliothek jedoch eine neuere Versionsnummer, sollten
       Sie sie dennoch kopieren. Sie ko:nnen die alte Version
       lo:schen, solange Sie einen symbolischen Link auf die neue
       Version anlegen. Wenn Sie also folgende Bibliotheken auf Ihrem
       System installiert haben:

 /compat/linux/lib/libc.so.4.6.27
 /compat/linux/lib/libc.so.4 -> libc.so.4.6.27

       und Sie haben eine neue Bina:rdatei, die laut ldd eine neuere
       Bibliothek beno:tigt:

 libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29

       Wenn diese sich nur um ein oder zwei Stellen in der
       Unterversionsnummer unterscheiden, mu:ssen Sie
       /lib/libc.so.4.6.29 nicht auf Ihr System kopieren, da das
       Programm auch mit der etwas a:lteren Version ohne Probleme
       funktionieren sollte. Wenn Sie wollen, ko:nnen Sie libc.so
       aber dennoch ersetzen (das heisst aktualisieren), was dann zu
       folgender Ausgabe fu:hrt:

 /compat/linux/lib/libc.so.4.6.29
 /compat/linux/lib/libc.so.4 -> libc.so.4.6.29

       Anmerkung: Der Mechanismus der symbolischen Links wird nur
       fu:r Linux-Bina:rdateien beno:tigt. Der FreeBSD-Laufzeitlinker
       sucht sich die passenden Hauptversionsnummern selbst, das
       heisst Sie mu:ssen sich nicht darum ku:mmern.

     --------------------------------------------------------------

  11.2.2. Linux ELF-Bina:rdateien installieren

   ELF-Bina:rdateien beno:tigen manchmal eine zusa:tzliche
   "Kennzeichnung". Wenn Sie versuchen, eine nicht gekennzeichnete
   ELF-Bina:rdatei auszufu:hren, werden Sie eine Fehlermeldung
   a:hnlich der folgenden erhalten:

 % ./my-linux-elf-binary
 ELF binary type not known
 Abort

   Damit der FreeBSD-Kernel eine Linux-ELF-Datei von einer
   FreeBSD-ELF-Datei unterscheiden kann, gibt es das Werkzeug
   brandelf(1).

 % brandelf -t Linux my-linux-elf-binary

   Die GNU Werkzeuge schreiben nun automatisch die passende
   Kennzeichnungsinformation in die ELF-Bina:rdateien, so dass Sie
   diesen Schritt in Zukunft nur noch selten beno:tigen werden.

     --------------------------------------------------------------

  11.2.3. Installieren einer beliebigen RPM-basierten Linuxanwendung

   FreeBSD besitzt seine eigene Paketdatenbank und diese wird dazu
   verwendet, um alle Ports (auch Linux-Ports) zu verfolgen. Deshalb
   wird die Linux RPM-Datenbank nicht benutzt (fehlende
   Unterstu:tzung).

   Falls Sie jedoch eine beliebige RPM-basierte Linux-Anwendung
   installieren wollen, erreichen Sie das mittels:

 # cd /compat/linux
 # rpm2cpio -q < /path/to/linux.archive.rpm | cpio -id

   Benutzen Sie dann brandelf auf die installierten ELF-Bina:rdateien
   (nicht die Bibliotheken!). Sie werden keine saubere Deinstallation
   hinbekommen, aber evtl. helfen ein paar Tests weiter.

     --------------------------------------------------------------

  11.2.4. Namensauflo:sung konfigurieren

   Wenn DNS nicht funktioniert, oder Sie folgende Fehlermeldung
   erhalten:

 resolv+: "bind" is an invalid keyword resolv+:
 "hosts" is an invalid keyword

   mu:ssen sie /compat/linux/etc/host.conf wie folgt anlegen:

 order hosts, bind
 multi on

   Diese Reihenfolge legt fest, dass zuerst /etc/hosts und
   anschliessend DNS durchsucht werden. Wenn
   /compat/linux/etc/host.conf nicht vorhanden ist, finden
   Linux-Anwendungen FreeBSD's /etc/host.conf und beschweren sich
   u:ber die inkompatible FreeBSD-Syntax. Wenn Sie keinen Nameserver
   (in /etc/resolv.conf) konfiguriert haben, sollten Sie den Eintrag
   bind entfernen.

     --------------------------------------------------------------

11.3. Mathematica(R) installieren

   Fu:r Mathematica 5.x aktualisiert von Boris Hollas.

   Dieses Dokument beschreibt die Installation der Linux-Version von
   Mathematica 5.x auf einem FreeBSD-System.

   Die Linux-Version von Mathematica oder Mathematica fu:r Studenten
   kann direkt von Wolfram unter http://www.wolfram.com/ bestellt
   werden.

     --------------------------------------------------------------

  11.3.1. Den Mathematica-Installer starten

   Zuerst mu:ssen Sie FreeBSD mitteilen, dass die Linux-Bina:rversion
   von Mathematica die Linux-ABI verwendet. Dies erreichen Sie am
   einfachsten, indem Sie die Standard-ELF-Kennzeichnung fu:r alle
   ungekennzeichneten Bina:rdateien auf Linux festlegen:

 # sysctl kern.fallback_elf_brand=3

   Danach wird FreeBSD annehmen, dass alle ungekennzeichneten
   ELF-Bina:rdateien die Linux-ABI verwenden und es wa:re nun
   mo:glich, das Installationsprogramm direkt von der CD-ROM zu
   starten.

   Unter FreeBSD mu:ssen allerdings die Datei MathInstaller in ein
   lokales Verzeichnis Ihrer Festplatte kopieren:

 # mount /cdrom
 # cp /cdrom/Unix/Installers/Linux/MathInstaller /LokalesVerzeichnis/

   In dieser Datei ersetzen Sie in der ersten Zeile den Wert /bin/sh
   durch /compat/linux/bin/sh. Dadurch wird sichergestellt, dass der
   Installer von der Linux-Version von sh(1) aufgerufen wird. Danach
   ersetzen Sie durch das im na:chsten Abschnitt zu findende Skript
   oder u:ber einen Texteditor alle Vorkommen von Linux) durch
   FreeBSD). Dadurch ist es dem Mathematica-Installer mo:glich, durch
   den Einsatz von uname -s das Betriebssystem zu bestimmen. FreeBSD
   wird dabei als Linux-artiges Betriebssystem behandelt. Durch den
   Aufruf von MathInstaller kann Mathematica anschliessend
   installiert werden.

     --------------------------------------------------------------

  11.3.2. Die Mathematica-Programmdateien anpassen

   Das von Mathematica wa:hrend der Installation erzeugte
   Shell-Skript muss angepasst werden, bevor Sie es einsetzen
   ko:nnen. Wenn Sie die Mathematica-Programmdateien unter
   /usr/local/bin installieren, finden Sie in diesem Verzeichnis die
   symbolische Links math, mathematica, Mathematica, sowie
   MathKernel. In jeder dieser Dateien mu:ssen Sie jedes Vorkommen
   von Linux) durch FreeBSD) ersetzen (entweder u:ber einen
   Texteditor oder durch das folgende Shellskript):

 #!/bin/sh
 cd /usr/local/bin
 for i in math mathematica Mathematica MathKernel
   do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp
   sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i
   rm $i.tmp
   chmod a+x $i
 done

     --------------------------------------------------------------

  11.3.3. Ihr Mathematica-Passwort anfordern

   Wenn Sie Mathematica das erste Mal starten, werden Sie nach einem
   Passwort gefragt. Haben Sie noch kein Passwort von Wolfram
   erhalten, mu:ssen Sie zuerst im Installationsverzeichnis mathinfo
   aufrufen, um Ihre "Rechner-ID" zu bestimmen. Diese Rechner-ID
   basiert ausschliesslich auf der MAC-Adresse Ihrer ersten
   Netzwerkkarte. Daher ist es nicht mo:glich, Ihre Mathematica-Kopie
   auf verschiedenen Rechnern zu installieren.

   Wenn Sie sich bei Wolfram registrieren (durch E-Mail, Telefon oder
   Fax), teilen Sie Ihre "Rechner-ID" mit und erhalten dafu:r ein aus
   Zahlengruppen bestehendes Passwort.

     --------------------------------------------------------------

  11.3.4. Das Mathematica-Frontend u:ber ein Netzwerk ausfu:hren

   Mathematica verwendet einige spezielle Schriftarten, um Zeichen
   anzuzeigen, die in den Standardzeichensa:tzen nicht vorhanden sind
   (z.B. Integrale, Summen, griechische Buchstaben). Das X-Protokoll
   verlangt allerdings, dass diese Schriftarten lokal installiert
   sind. Das bedeutet, dass Sie diese Schriftarten von der CD-ROM
   oder von einem Rechner, auf dem Mathematica installiert ist, auf
   Ihren Rechner kopieren mu:ssen. Diese Schriftarten befinden sich
   normalerweise in /cdrom/Unix/Files/SystemFiles/Fonts
   (Mathematica-CD) oder in /usr/local/mathematica/SystemFiles/Fonts
   (Festplatte). Die aktuellen Schriftarten befinden sich dabei in
   den Unterverzeichnissen Type1 und X. Um diese Schriftarten zu
   verwenden, gibt es mehrere Mo:glichkeiten, die nun beschrieben
   werden:

   Die erste Mo:glichkeit besteht darin, die Schriftarten in eins der
   bereits existierenden Schriftartenverzeichnisse unter
   /usr/X11R6/lib/X11/fonts zu kopieren. Dies bedeutet, dass Sie
   fonts.dir editieren mu:ssen, indem Sie die Schriftnamen
   hinzufu:gen und die Anzahl der Schriftarten in der ersten Zeile
   a:ndern. Alternativ ist es auch mo:glich, im Verzeichnis, in das
   Sie die Schriftarten kopiert haben, das Kommando mkfontdir(1)
   auszufu:hren.

   Die zweite Mo:glichkeit, besteht darin, die Verzeichnisse nach
   /usr/X11R6/lib/X11/fonts zu kopieren:

 # cd /usr/X11R6/lib/X11/fonts
 # mkdir X
 # mkdir MathType1
 # cd /cdrom/Unix/Files/SystemFiles/Fonts
 # cp X/* /usr/X11R6/lib/X11/fonts/X
 # cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
 # cd /usr/X11R6/lib/X11/fonts/X
 # mkfontdir
 # cd ../MathType1
 # mkfontdir

   Nun fu:gen Sie die neuen Schriftartenverzeichnisse in Ihren Pfad
   ein:

 # xset fp+ /usr/X11R6/lib/X11/fonts/X
 # xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
 # xset fp rehash

   Wenn Sie den Xorg-Server verwenden, ko:nnen Sie die
   Schriftarten-Verzeichnisse automatisch laden lassen, wenn Sie sie
   in Ihrer xorg.conf angeben.

   Wenn Sie noch kein /usr/X11R6/lib/X11/fonts/Type1-Verzeichnis
   haben, ko:nnen Sie das MathType1-Verzeichnis im vorherigen
   Beispiel in Type1 umbenennen.

     --------------------------------------------------------------

11.4. Maple(TM) installieren

   Beigetragen von Aaron Kaplan. Mit Unterstu:tzung durch Robert
   Getschmann.

   Maple(TM) ist ein mit Mathematica vergleichbares kommerzielles
   Mathematikprogramm. Sie ko:nnen dieses Programm unter
   http://www.maplesoft.com/ kaufen und sich anschliessend
   registrieren, um eine Lizenz zu erhalten. Um dieses Programm unter
   FreeBSD zu installieren, gehen Sie wie folgt vor:

    1. Fu:hren Sie das INSTALL-Shell-Skript der Softwaredistribution
       aus. Wa:hlen Sie die "RedHat"-Option aus, wenn Sie das
       Installationsprogramm danach fragt. Ein typisches
       Installationsverzeichnis wa:re z.B. /usr/local/maple.

    2. Wenn Sie dies noch nicht gemacht haben, besorgen Sie sich nun
       eine Maple-Lizenz von Maple Waterloo Software
       (http://register.maplesoft.com) und kopieren Sie diese nach
       /usr/local/maple/license/license.dat.

    3. Installieren Sie den FLEXlm-Lizenz-Manager, indem Sie das
       INSTALL_LIC-Installations-Shellskript ausfu:hren, das mit
       Maple ausgeliefert wird. Geben Sie Ihren prima:ren
       Rechnernamen fu:r den Lizenz-Server an.

    4. Vera:ndern Sie /usr/local/maple/bin/maple.system.type wie
       folgt:

    ----- snip ------------------
 *** maple.system.type.orig      Sun Jul  8 16:35:33 2001
 --- maple.system.type   Sun Jul  8 16:35:51 2001
 ***************
 *** 72,77 ****
 --- 72,78 ----
           # the IBM RS/6000 AIX case
           MAPLE_BIN="bin.IBM_RISC_UNIX"
           ;;
 +     "FreeBSD"|\
       "Linux")
           # the Linux/x86 case
         # We have two Linux implementations, one for Red Hat and
    ----- snip end of patch -----

       Bitte beachten Sie, dass nach "FreeBSD"|\ kein anderes Zeichen
       eingefu:gt werden darf.

       Dieser Patch weist Maple an, FreeBSD als "eine Art von
       Linux-System" zu erkennen. Das Shell-Skript bin/maple ruft das
       Shell-Skript bin/maple.system.type auf, welches wiederum uname
       -a verwendet, um den Namen des Betriebssystems herauszufinden.
       Abha:ngig vom Betriebssystem weiss das System nun, welche
       Bina:rdateien verwendet werden sollen.

    5. Starten Sie den Lizenz-Server.

       Das folgende, als /usr/local/etc/rc.d/lmgrd.sh installierte
       Shell-Skript ist ein komfortabler Weg, um lmgrd zu starten:

    ----- snip ------------

 #! /bin/sh
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
 PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
 export PATH

 LICENSE_FILE=/usr/local/maple/license/license.dat
 LOG=/var/log/lmgrd.log

 case "$1" in
 start)
         lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
         echo -n " lmgrd"
         ;;
 stop)
         lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
         ;;
 *)
         echo "Usage: `basename $0` {start|stop}" 1>&2
         exit 64
         ;;
 esac

 exit 0
    ----- snip ------------

    6. Versuchen Sie, Maple zu starten:

 % cd /usr/local/maple/bin
 % ./xmaple

       Nun sollte das Programm laufen und alles funktionieren. Falls
       ja, vergessen Sie nicht, an Maplesoft zu schreiben und sie
       wissen zu lassen, dass Sie gerne eine native FreeBSD-Version
       ha:tten.

     --------------------------------------------------------------

  11.4.1. Ha:ufige Fehlerquellen

     * Der FLEXlm-Lizenzmanager kann schwierig zu bedienen sein.
       Zusa:tzliche Dokumentation zu diesem Thema finden Sie unter
       http://www.globetrotter.com/.

     * Es ist bekannt, dass lmgrd sehr pingelig ist, wenn es um die
       Lizenzdatei geht. Gibt es Probleme, fu:hrt dies zu einem
       Speicherauszug (core dump). Ein korrekte Lizenzdatei sollte
       a:hnlich der folgenden aussehen:

 # =======================================================
 # License File for UNIX Installations ("Pointer File")
 # =======================================================
 SERVER chillig ANY
 #USE_SERVER
 VENDOR maplelmg

 FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
          PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
          ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
          SN=XXXXXXXXX

         Anmerkung: Seriennummer und Schlu:ssel wurden durch mehrere
         X unkenntlich gemacht. chillig ist ein Rechnername.

       Vera:nderungen an der Lizenzdatei sind mo:glich, solange Sie
       die FEATURE-Zeile nicht vera:ndern (diese ist durch den
       Lizenzschlu:ssel geschu:tzt).

     --------------------------------------------------------------

11.5. MATLAB(R) installieren

   Beigesteuert von Dan Pelleg.

   Im Folgenden wird die Installation der Linux-Anwendung MATLAB(R)
   Version 6.5 auf FreeBSD beschrieben. Mit Ausnahme der Java Virtual
   Machine(TM) (siehe Abschnitt 11.5.3) la:uft die Anwendung auch
   ganz gut.

   Die Linux-Version von MATLAB ko:nnen Sie direkt bei The MathWorks
   bestellen. Vergewissern Sie sich, dass Sie die Lizenz-Datei oder
   eine Anleitung zum Erstellen der Lizenz-Datei erhalten haben. Wenn
   Sie mit MathWorks in Kontakt stehen, weisen Sie bitte auf die
   fehlende FreeBSD-Version der Software hin.

     --------------------------------------------------------------

  11.5.1. Das MATLAB-Installationsskript

   Um MATLAB zu installieren, gehen Sie wie folgt vor:

    1. Ha:ngen Sie die Installations-CD ein und wechseln Sie zu root,
       wie im Installations-Skript gefordert. Starten Sie die
       Installation mit dem folgenden Kommando:

 # /compat/linux/bin/sh /cdrom/install

         Tipp: Die Installation erfordert eine graphische
         Benutzeroberfla:che. Wenn Sie die Fehlermeldung erhalten,
         dass das Display nicht geo:ffnet werden konnte, fu:hren Sie
         das folgende Kommando aus:

 # setenv HOME ~USER

         Fu:r USER setzen Sie den Benutzer ein, von dem aus Sie root
         geworden sind.

    2. Beantworten Sie die Frage nach dem MATLAB-Root-Verzeichnis
       mit: /compat/linux/usr/local/matlab.

         Tipp: Den langen Pfad werden Sie noch o:fter brauchen. Die
         Tipparbeit ko:nnen Sie sich mit dem folgenden Befehl
         erleichtern:

 # set MATLAB=/compat/linux/usr/local/matlab

    3. Editieren Sie die Lizenz-Datei entsprechend der Anweisung, die
       Sie beim Erwerb der Lizenz erhalten haben.

         Tipp: Sie ko:nnen die Datei schon vorher mit Ihrem
         Lieblingseditor bearbeiten. Kopieren Sie die Lizenz-Datei
         nach $MATLAB/license.dat bevor das Installationsprogramm Sie
         auffordert, die Datei zu editieren.

    4. Schliessen Sie die Installation ab.

   Die MATLAB-Installation ist jetzt abgeschlossen. Die folgenden
   Schritte passen MATLAB an FreeBSD an.

     --------------------------------------------------------------

  11.5.2. Den Lizenzmanager starten

    1. Erstellen Sie symbolische Links zu den Startskripten des
       Lizenzmanagers:

 # ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
 # ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW

    2. Erstellen Sie das Startskript /usr/local/etc/rc.d/flexlm.sh.
       Das folgende Beispiel ist eine gea:nderte Version des
       mitgelieferten Skripts $MATLAB/etc/rc.lm.glnx86. Angepasst
       wurden die Pfade zu den Dateien und der Start des
       Lizenzmanagers unter der Linux-Emulation.

 #!/bin/sh
 case "$1" in
   start)
         if [ -f /usr/local/etc/lmboot_TMW ]; then
               /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd'
         fi
         ;;
   stop)
         if [ -f /usr/local/etc/lmdown_TMW ]; then
             /compat/linux/bin/sh /usr/local/etc/lmdown_TMW  > /dev/null 2>&1
         fi
         ;;
   *)
         echo "Usage: $0 {start|stop}"
         exit 1
         ;;
 esac

 exit 0

         Wichtig: Machen Sie Datei ausfu:hrbar:

 # chmod +x /usr/local/etc/rc.d/flexlm.sh

         Ersetzen Sie im Skript username durch einen existierenden
         Benutzer Ihres Systems (bitte keinesfalls root).

    3. Starten Sie den Lizenzmanager:

 # /usr/local/etc/rc.d/flexlm.sh start

     --------------------------------------------------------------

  11.5.3. Einrichten der Java-Laufzeitumgebung

   Erstellen Sie einen symbolischen Link auf eine unter FreeBSD
   laufende Java-Laufzeitumgebung (JRE):

 # cd $MATLAB/sys/java/jre/glnx86/
 # unlink jre; ln -s ./jre1.1.8 ./jre

     --------------------------------------------------------------

  11.5.4. Ein MATLAB-Startskript erstellen

    1. Kopieren Sie das folgende Skript nach /usr/local/bin/matlab:

 #!/bin/sh
 /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"

    2. Machen Sie das Skript ausfu:hrbar:

 # chmod +x /usr/local/bin/matlab

     Tipp: Abha:ngig von der Version des Ports emulators/linux_base
     kann das Skript auf Fehler laufen. Die Fehler ko:nnen Sie
     vermeiden, indem Sie die Datei
     /compat/linux/usr/local/matlab/bin/matlab editieren. A:ndern Sie
     die nachstehende Zeile

 if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then

     (mit Version 13.0.1 in der Zeile 410) in die folgende um:

 if test -L $newbase; then

     --------------------------------------------------------------

  11.5.5. Stopp-Skript fu:r MATLAB erstellen

   Das nachstehende Skript beendet MATLAB ordnungsgema:ss.

    1. Erstellen Sie die Datei $MATLAB/toolbox/local/finish.m mit dem
       nachstehenden Inhalt:

 ! $MATLAB/bin/finish.sh

         Anmerkung: U:bernehmen Sie die Zeichenkette $MATLAB
         unvera:ndert.

         Tipp: Im selben Verzeichnis befinden sich die Dateien
         finishsav.m und finishdlg.m. Die Dateien sichern die
         Einstellungen der Arbeitsfla:che bevor MATLAB beendet wird.
         Wenn Sie eine der beiden Dateien benutzen, fu:gen Sie die
         obige Zeile unmittelbar nach dem save-Kommando ein.

    2. Erstellen Sie die Datei $MATLAB/bin/finish.sh mit
       nachstehendem Inhalt:

 #!/compat/linux/bin/sh
 (sleep 5; killall -1 matlab_helper) &
 exit 0

    3. Machen Sie die Datei ausfu:hrbar:

 # chmod +x $MATLAB/bin/finish.sh

     --------------------------------------------------------------

  11.5.6. MATLAB benutzen

   Jetzt ko:nnen Sie MATLAB mit dem matlab starten.

     --------------------------------------------------------------

11.6. Oracle(R) installieren

   Beigetragen von Marcel Moolenaar.

     --------------------------------------------------------------

  11.6.1. U:bersicht

   Dieses Dokument beschreibt die Installation von Oracle 8.0.5 und
   Oracle 8.0.5.1 Enterprise Edition fu:r Linux auf einem
   FreeBSD-Rechner.

     --------------------------------------------------------------

  11.6.2. Installation der Linux-Umgebung

   Stellen Sie sicher, dass Sie sowohl emulators/linux_base und
   devel/linux_devtools aus der Ports-Sammlung installiert haben.
   Wenn Sie mit diesen Ports Schwierigkeiten haben, mu:ssen Sie
   vielleicht a:ltere Versionen der Linux-Umgebung aus der
   Ports-Sammlung installieren.

   Wenn Sie den Intelligent-Agent verwenden wollen, mu:ssen Sie
   zusa:tzlich das RedHat Tcl-Paket installieren:
   tcl-8.0.3-20.i386.rpm. Zur Installation von RPM-Paketen wir der
   Port archivers/rpm beno:tigt. Ist der Port installiert, lassen
   sich RPM-Pakete anschliessend mit dem nachstehenden Befehl
   installieren:

 # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package

   Die Installation der RPM-Pakete sollte ohne Fehlermeldung
   ablaufen.

     --------------------------------------------------------------

  11.6.3. Die Oracle-Umgebung erzeugen

   Bevor Sie Oracle installieren ko:nnen, mu:ssen Sie eine
   entsprechende Umgebung erzeugen. Dieses Dokument beschreibt nur,
   was Sie im Speziellen tun mu:ssen, um die Linux-Version von Oracle
   unter FreeBSD zu installieren, nicht aber, was bereits in der
   Installationsanleitung von Oracle beschrieben wird.

     --------------------------------------------------------------

    11.6.3.1. Kernel-Tuning

   Wie in der Installationsanleitung von Oracle beschrieben, mu:ssen
   Sie die maximale Shared-Memory Gro:sse festlegen. Verwenden Sie
   SHMMAX nicht unter FreeBSD. SHMMAX wird lediglich aus SHMMAXPGS
   und PGSIZE berechnet. Definieren Sie stattdessen SHMMAXPGS. Alle
   anderen Optionen ko:nnen wie in der Anleitung beschrieben
   verwendet werden. Zum Beispiel:

 options SHMMAXPGS=10000
 options SHMMNI=100
 options SHMSEG=10
 options SEMMNS=200
 options SEMMNI=70
 options SEMMSL=61

   Passen Sie diese Optionen entsprechend dem von Ihnen gewu:nschten
   Einsatzzweck von Oracle an.

   Stellen Sie ausserdem sicher, dass Sie folgende Optionen in Ihren
   Kernel kompilieren:

 options SYSVSHM #SysV shared memory
 options SYSVSEM #SysV semaphores
 options SYSVMSG #SysV interprocess communication

     --------------------------------------------------------------

    11.6.3.2. Oracle-Benutzer anlegen

   Legen Sie den Account oracle an. Der Account unterschiedet sich
   von normalen Accounts dadurch, dass er eine Linux-Shell zugeordnet
   bekommen muss. Fu:gen Sie /compat/linux/bin/bash in die Datei
   /etc/shells ein und setzen Sie die Shell fu:r den oracle-Account
   auf /compat/linux/bin/bash.

     --------------------------------------------------------------

    11.6.3.3. Umgebung

   Neben den normalen Oracle-Variablen, wie z.B. ORACLE_HOME und
   ORACLE_SID mu:ssen Sie die folgenden Variablen setzen:

      Variable                            Wert                        
   LD_LIBRARY_PATH $ORACLE_HOME/lib                                   
   CLASSPATH       $ORACLE_HOME/jdbc/lib/classes111.zip               
                   /compat/linux/bin /compat/linux/sbin               
   PATH            /compat/linux/usr/bin /compat/linux/usr/sbin /bin  
                   /sbin /usr/bin /usr/sbin /usr/local/bin            
                   $ORACLE_HOME/bin                                   

   Es ist empfehlenswert, alle Variablen in der Datei .profile zu
   setzen. Ein komplettes Beispiel sieht folgendermassen aus:

 ORACLE_BASE=/oracle; export ORACLE_BASE
 ORACLE_HOME=/oracle; export ORACLE_HOME
 LD_LIBRARY_PATH=$ORACLE_HOME/lib
 export LD_LIBRARY_PATH
 ORACLE_SID=ORCL; export ORACLE_SID
 ORACLE_TERM=386x; export ORACLE_TERM
 CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
 export CLASSPATH
 PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
 PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
 PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
 export PATH

     --------------------------------------------------------------

  11.6.4. Oracle installieren

   Auf Grund einer kleinen Unregelma:ssigkeit im Linux-Emulator
   mu:ssen Sie das Verzeichnis .oracle unter /var/tmp erzeugen, bevor
   Sie das Installationsprogramm starten. Das Verzeichnis muss dem
   Account oracle geho:ren. Sie sollten Oracle nun ohne Probleme
   installieren ko:nnen. Treten dennoch Probleme auf, u:berpru:fen
   Sie zuerst Ihre Oracle-Distribution und Ihre Konfiguration.
   Nachdem Sie Oracle erfolgreich installiert haben, installieren Sie
   die Patches wie in den zwei folgenden Abschnitten beschrieben:

   Ein ha:ufiges Problem ist, dass der TCP Protokoll-Adapter nicht
   korrekt installiert wird. Daraus folgt, dass Sie keine
   TCP-Listener starten ko:nnen. Dieses Problem kann durch folgende
   Schritte behoben werden:

 # cd $ORACLE_HOME/network/lib
 # make -f ins_network.mk ntcontab.o
 # cd $ORACLE_HOME/lib
 # ar r libnetwork.a ntcontab.o
 # cd $ORACLE_HOME/network/lib
 # make -f ins_network.mk install

   Vergessen Sie nicht, root.sh nochmals auszufu:hren!

     --------------------------------------------------------------

    11.6.4.1. root.sh patchen

   Wa:hrend der Oracle-Installation werden einige Aktionen, die als
   root ausgefu:hrt werden mu:ssen, in ein Shell-Skript mit dem Namen
   root.sh gespeichert. Dieses Skript befindet sich im Verzeichnis
   orainst. Verwenden Sie folgenden Patch fu:r root.sh, damit es das
   richtige chown Kommando verwendet, oder lassen Sie das Skript
   alternativ unter einer Linux-Shell ablaufen:

 *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
 --- orainst/root.sh Mon Dec 28 15:58:53 1998
 ***************
 *** 31,37 ****
 # This is the default value for CHOWN
 # It will redefined later in this script for those ports
 # which have it conditionally defined in ss_install.h
 ! CHOWN=/bin/chown
 #
 # Define variables to be used in this script
 --- 31,37 ----
 # This is the default value for CHOWN
 # It will redefined later in this script for those ports
 # which have it conditionally defined in ss_install.h
 ! CHOWN=/usr/sbin/chown
 #
 # Define variables to be used in this script

   Wenn Sie Oracle nicht von CD-ROM installieren, ko:nnen Sie
   Quelldatei fu:r root.sh vera:ndern. Sie heisst rthd.sh und
   befindet sich im orainst-Verzeichnis des Quellcodebaums.

     --------------------------------------------------------------

    11.6.4.2. genclntsh patchen

   Das Skript genclntsh wird verwendet, um eine Shared-Library fu:r
   Clients zu erzeugen. Diese wird bei der Erzeugung der Demos
   verwendet. Verwenden Sie folgenden Patch, um die Definition von
   PATH auszukommentieren:

 *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
 --- bin/genclntsh Tue Dec 22 15:36:49 1998
 ***************
 *** 32,38 ****
 #
 # Explicit path to ensure that we're using the correct commands
 #PATH=/usr/bin:/usr/ccs/bin export PATH
 ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
 #
 # each product MUST provide a $PRODUCT/admin/shrept.lst
 --- 32,38 ----
 #
 # Explicit path to ensure that we're using the correct commands
 #PATH=/usr/bin:/usr/ccs/bin export PATH
 ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
 #
 # each product MUST provide a $PRODUCT/admin/shrept.lst

     --------------------------------------------------------------

  11.6.5. Oracle starten

   Wenn Sie den Anweisungen gefolgt sind, sollten Sie nun in der Lage
   sein, Oracle zu starten, genau so, wie Sie dies auch unter Linux
   tun wu:rden.

     --------------------------------------------------------------

11.7. Weiterfu:hrende Themen

   Wenn Sie sich fragen, wie die Linux-Bina:rkompatibilita:t unter
   FreeBSD realisiert wurde, sollten Sie diesen Abschnitt lesen. Der
   Grossteil der folgenden Informationen stammt aus einer E-Mail, die
   von Terry Lambert (<tlambert@primenet.com>) an die
   FreeBSD-Chat-Mailingliste (<freebsd-chat@FreeBSD.org>) geschrieben
   wurde (Message ID: <199906020108.SAA07001@usr09.primenet.com>).

     --------------------------------------------------------------

  11.7.1. Wie funktioniert es?

   FreeBSD verfu:gt u:ber eine "execution class loader" genannte
   Abstraktion. Dabei handelt es sich um einen Eingriff in den
   execve(2) Systemaufruf.

   FreeBSD verfu:gt u:ber eine Liste von Ladern, anstelle eines
   einzigen, auf #! zuru:ckgreifenden Laders, um Shell-Interpreter
   oder Shell-Skripte auszufu:hren.

   Historisch gesehen untersuchte der einzige, auf UNIX-Plattformen
   vorhandene Lader die "magische Zahl" (in der Regel die ersten 4
   oder 8 Bytes der Datei), um festzustellen, ob der Bina:rtyp dem
   System bekannt war. War dies der Fall, wurde der Bina:rlader
   aufgerufen.

   Wenn es sich nicht um den zum System geho:rigen Bina:rtyp
   handelte, gab execve(2) einen Fehler zuru:ck, und die Shell
   versuchte stattdessen, die Datei als Shell-Befehl auszufu:hren.

   Dabei wurde als Standardeinstellung "was auch immer die aktuelle
   Shell ist" festgelegt.

   Spa:ter wurde ein Hack in sh(1) eingefu:gt, der die zwei ersten
   Zeichen untersuchte. Wenn diese :\n entsprachen, wurde stattdessen
   die csh(1)-Shell aufgerufen (wir glauben, dass dies zuerst von SCO
   umgesetzt wurde).

   FreeBSD versucht heute eine Liste von Ladern, unter denen sich ein
   allgemeiner Lader fu:r Interpreter befindet. Der auszufu:hrende
   Interpreter wird im ersten, durch Leerzeichen getrennten Feld, der
   #!-Zeile angegeben. La:sst sich der Interpreter nicht ermitteln,
   wird auf /bin/sh zuru:ckgegriffen.

   Fu:r die Linux ABI-Unterstu:tzung erkennt FreeBSD die magische
   Zahl als ELF-Bina:rdatei (Zu diesem Zeitpunkt wird nicht zwischen
   FreeBSD, Solaris, Linux oder anderen Systemen unterschieden, die
   u:ber ELF-Bina:rdateien verfu:gen.).

   Der ELF-Lader sucht nach einer speziellen Kennzeichnung, die aus
   einem Kommentarabschnitt in der ELF-Datei besteht, und die in
   SVR4/Solaris ELF Bina:rdateien nicht vorhanden ist.

   Damit Linux-Bina:rdateien (unter FreeBSD) funktionieren, mu:ssen
   sie als Linux gekennzeichnet werden, und zwar durch brandelf(1):

 # brandelf -t Linux file

   Nachdem dies geschehen ist, erkennt der ELF-Lader die
   Linux-Kennzeichnung der Datei.

   Wenn der ELF-Lader die Linux-Kennzeichnung sieht, wird ein Zeiger
   in der proc-Struktur ersetzt. Alle Systemaufrufe werden durch
   diesen Zeiger indiziert (in einem traditionellen UNIX System wa:re
   das ein sysent[]-Strukturfeld, das die Systemaufrufe entha:lt).
   Der Prozess wird weiterhin speziell gekennzeichnet, so dass der
   Trap-vector im Signal-trampoline-code eine spezielle Behandlung
   erfa:hrt und das Linux-Kernelmodul verschiedene kleinere
   Korrekturen vornehmen kann.

   Der Linux-Systemaufrufvektor entha:lt neben anderen Dingen eine
   Liste der sysent[]-Eintra:ge, deren Adressen sich im Kernelmodul
   befinden.

   Wenn ein Linux-Programm einen Systemaufruf ausfu:hrt,
   dereferenziert die Trap-Behandlungsroutine den Zeiger auf die
   Eintrittspunkte fu:r die Systemaufrufe und erha:lt damit die
   Linux-Eintrittspunkte und nicht die FreeBSD-Eintrittspunkte.

   Zusa:tzlich vera:ndert der Linuxmodus die Systempfade dynamisch;
   genauso, wie dies die Option union beim Einbinden von
   Dateisystemen macht (Achtung: nicht das Dateisystem unionfs!).
   Zuerst wird die Datei im Verzeichnis /compat/linux/Originalpfad
   gesucht, danach, wenn sie dort nicht gefunden wurde, wird sie im
   FreeBSD-Verzeichnis /Originalpfad gesucht. Dadurch wird
   sichergestellt, dass Bina:rdateien, die zur Ausfu:hrung andere
   Bina:rdateien beno:tigen, ausgefu:hrt werden ko:nnen (so dass alle
   Linux-Werkzeuge unter der ABI laufen). Dies bedeutet auch, dass
   Linux-Bina:rdateien FreeBSD-Bina:rdateien laden und ausfu:hren
   ko:nnen, wenn keine passenden Linux-Bina:rdateien vorhanden sind.
   Ein in /compat/linux plaziertes uname(1) kann damit
   Linux-Programmen vorgaukeln, dass sie auf einem Linux-System
   laufen.

   Im Endeffekt gibt es einen Linux-Kernel innerhalb des
   FreeBSD-Kernels. Die Sprungtabellen fu:r Linux- beziehungsweise
   FreeBSD-Systemaufrufe verweisen allerdings auf dieselben
   Funktionen, die Kerneldienste wie Dateisystemoperationen,
   Operationen fu:r den virtuellen Speicher, Signalu:bermittlung und
   System V IPC bereitstellen, Der einzige Unterschied ist, dass
   Bina:rdateien unter FreeBSD FreeBSD-glue-Funktionen verwenden.
   Linux-Bina:rdateien hingegen verwenden die Linux-glue-Funktionen.
   Die meisten a:lteren Betriebssysteme hatten ihre eigenen
   glue-Funktionen: Funktionsadressen in einem globalen, statischen
   sysent[] Strukturfeld an Stelle von Funktionsadressen, die durch
   einen dynamisch initialisierten Zeiger aus der proc Struktur, die
   den Aufruf gemacht hatte, dereferenziert wurden.

   Welche ist die echte FreeBSD-ABI? Das spielt keine Rolle.
   Grundsa:tzlich ist der einzige Unterschied (zurzeit ist das so;
   dies ko:nnte sich in zuku:nftigen Versionen leicht a:ndern und
   wird sich wahrscheinlich auch a:ndern), dass die
   FreeBSD-glue-Funktionen statisch in den Kernel gelinkt sind, und
   dass die Linux-glue-Funktionen statisch gelinkt oder u:ber ein
   Modul eingebunden werden ko:nnen.

   Ja, aber ist das wirkliche eine Emulation? Nein. Es ist eine
   Implementierung eines ABIs, keine Emulation. Es ist kein Emulator
   (oder Simulator, um der na:chsten Frage zuvorzukommen) beteiligt.

   Warum wird es manchmal "Linux-Emulation" genannt? Um es schwerer
   zu machen, FreeBSD zu verkaufen. Wirklich, das kommt daher, weil
   dies zu einer Zeit implemtiert wurde, in der es kein anderes Wort
   (als Emulation) gab, das beschrieb, was vor sich ging. Wenn der
   Kernel nicht entsprechend konfiguriert wurde oder das Modul
   geladen wurde, war es falsch zu behaupten, FreeBSD wu:rde
   Linux-Bina:rprogramme ausfu:hren. Man beno:tigte ein Wort, das
   beschrieb, was da geladen wurde - daher "Der Linux-Emulator".

                       III. Systemadministration

   Die restlichen Kapitel behandeln alle Aspekte der FreeBSD
   Systemadministration. Am Anfang jedes Kapitels finden Sie eine
   Zusammenfassung, die beschreibt, was Sie nach dem Durcharbeiten
   des Kapitels gelernt haben. Weiterhin werden die Voraussetzungen
   beschrieben, die fu:r das Durcharbeiten des Kapitels erforderlich
   sind.

   Diese Kapitel sollten Sie lesen, wenn Sie die Informationen darin
   beno:tigen. Sie brauchen Sie nicht in einer bestimmten Reihenfolge
   zu lesen, noch mu:ssen Sie die Kapitel lesen, bevor Sie anfangen,
   FreeBSD zu benutzen.

   Inhaltsverzeichnis

   12. Konfiguration und Tuning

   13. FreeBSDs Bootvorgang

   14. Benutzer und grundlegende Account-Verwaltung

   15. Sicherheit

   16. Jails

   17. Verbindliche Zugriffskontrolle

   18. Security Event Auditing

   19. Speichermedien

   20. GEOM: Modulares Framework zur Plattentransformation

   21. Dateisystemunterstu:tzung

   22. Der Vinum Volume Manager

   23. Virtualisierung

   24. Lokalisierung - I18N/L10N einrichten und benutzen

   25. FreeBSD aktualisieren

   26. DTrace

     --------------------------------------------------------------

                  Kapitel 12. Konfiguration und Tuning

   Geschrieben von Chern Lee. Nach einem Tutorium von Mike Smith.
   Basiert ebenfalls auf tuning(7) von Matt Dillon. U:bersetzt von
   Martin Heinen.

12.1. U:bersicht

   Ein korrekt konfiguriertes System kann die Arbeit, die bei der
   zuku:nftigen Pflege und bei Migrationen des Systems entsteht,
   erheblich reduzieren. Dieses Kapitel beschreibt die Konfiguration
   von FreeBSD sowie Massnahmen zur Leistungssteigerung von
   FreeBSD-Systemen.

   Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
   Folgendes wissen:

     * Wie Sie effizient Dateisysteme und Swap-Partitionen auf Ihrer
       Festplatte einrichten.

     * Die Grundlagen der Konfiguration mit rc.conf und des Systems
       zum Starten von Anwendungen in /usr/local/etc/rc.d.

     * Wie Sie Netzwerkkarten konfigurieren und testen.

     * Wie Sie virtuelle Hosts und Netzwerkgera:te konfigurieren.

     * Wie Sie die verschiedenen Konfigurationsdateien in /etc
       benutzen.

     * Wie Sie mit sysctl-Variablen FreeBSD einstellen ko:nnen.

     * Wie Sie die Platten-Performance einstellen und
       Kernel-Parameter modifizieren ko:nnen.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * die Grundlagen von UNIX und FreeBSD (Kapitel 4) verstehen.

     * Damit vertraut sein, wie Sie einen Kernel konfigurieren und
       kompilieren (Kapitel 9).

     --------------------------------------------------------------

12.2. Vorbereitende Konfiguration

  12.2.1. Layout von Partitionen

     --------------------------------------------------------------

    12.2.1.1. Partitionen

   Wenn Sie Dateisysteme mit bsdlabel(8) oder sysinstall(8) anlegen,
   sollten Sie beachten, dass Festplatten auf Daten in den a:usseren
   Spuren schneller zugreifen ko:nnen als auf Daten in den inneren
   Spuren. Daher sollten die kleineren oft benutzten Dateisysteme,
   wie das Root-Dateisystem oder die Swap-Partition, an den a:usseren
   Rand der Platte gelegt werden. Die gro:sseren Partitionen wie /usr
   sollten in die inneren Bereiche gelegt werden. Es empfiehlt sich,
   die Partitionen in einer a:hnlichen Reihenfolge wie
   Root-Partition, Swap, /var und /usr anzulegen.

   Die Gro:sse der /var-Partition ist abha:ngig vom Zweck der
   Maschine. Das /var-Dateisystem entha:lt hauptsa:chlich
   Postfa:cher, den Spoolbereich zum Drucken und Logdateien.
   Abha:ngig von der Anzahl der Systembenutzer und der
   Aufbewahrungszeit fu:r Logdateien, ko:nnen gerade die Postfa:cher
   und Logdateien zu ungeahnten Gro:ssen wachsen. Die meisten
   Benutzer werden selten mehr als etwa ein Gigabyte in /var
   beno:tigen.

     Anmerkung: Ein paar Mal wird es vorkommen, dass viel
     Festplattenspeicher in /var/tmp gebraucht wird. Wenn neue
     Software mit pkg_add(1) installiert wird, extrahieren die
     Paketwerkzeuge eine voru:bergehende Kopie der Pakete unter
     /var/tmp. Die Installation grosser Softwarepakete wie Firefox,
     Openoffice oder LibreOffice kann sich wegen zu wenig
     Speicherplatz in /var/tmp als trickreich herausstellen.

   Die /usr-Partition entha:lt viele der Hauptbestandteile des
   Systems, dazu geho:hren die ports(7)-Sammlung (empfohlen) und die
   Quellen (optional). Sowohl die Ports als auch die Quellen des
   Basissystems sind zum Zeitpunkt der Installation optional,
   trotzdem sollten Sie mindestens zwei Gigabyte fu:r diese Partition
   vorsehen.

   Wenn Sie die Gro:sse der Partitionen festlegen, beachten Sie bitte
   das Wachstum Ihres Systems. Wenn Sie den Platz auf einer Partition
   vollsta:ndig aufgebraucht haben, eine andere Partition aber kaum
   benutzen, kann die Handhabung des Systems schwierig werden.

     Anmerkung: Die automatische Partitionierung von sysinstall(8)
     mit Auto-defaults legt manchmal zu kleine / und /var-Partition
     an. Partitionieren Sie weise und grosszu:gig.

     --------------------------------------------------------------

    12.2.1.2. Swap Partition

   Als Daumenregel sollten Sie doppelt soviel Speicher fu:r die
   Swap-Partition vorsehen, als Sie Hauptspeicher haben. Verfu:gt die
   Maschine beispielsweise u:ber 128 Megabyte Hauptspeicher, sollten
   Sie 256 Megabyte fu:r den Swap-Bereich vorsehen. Systeme mit
   weniger Speicher werden wahrscheinlich mit viel mehr Swap mehr
   leisten. Es wird nicht empfohlen, weniger als 256 Megabyte Swap
   einzurichten. Ausserdem sollten Sie ku:nftige
   Speichererweiterungen beachten, wenn Sie die Swap-Partition
   einrichten. Die VM-Paging-Algorithmen im Kernel sind so
   eingestellt, dass Sie am besten laufen, wenn die Swap-Partition
   mindestens doppelt so gross wie der Hauptspeicher ist. Zu wenig
   Swap kann zu einer Leistungsverminderung im VM page scanning Code
   fu:hren, sowie Probleme verursachen, wenn Sie spa:ter mehr
   Speicher in Ihre Maschine bauen.

   Auf gro:sseren Systemen mit mehreren SCSI-Laufwerken (oder
   mehreren IDE-Laufwerken an unterschiedlichen Controllern)
   empfehlen wir Ihnen, Swap-Bereiche auf bis zu vier Laufwerken
   einzurichten. Diese Swap-Partitionen sollten ungefa:hr dieselbe
   Gro:sse haben. Der Kernel kann zwar mit beliebigen Gro:ssen
   umgehen, aber die internen Datenstrukturen skalieren bis zur
   vierfachen Gro:sse der gro:ssten Partition. Ungefa:hr gleich
   grosse Swap-Partitionen erlauben es dem Kernel, den Swap-Bereich
   optimal u:ber die Laufwerke zu verteilen. Grosse Swap-Bereiche,
   auch wenn sie nicht oft gebraucht werden, sind nu:tzlich, da sich
   ein speicherfressendes Programm unter Umsta:nden auch ohne einen
   Neustart des Systems beenden la:sst.

     --------------------------------------------------------------

    12.2.1.3. Warum partitionieren?

   Gegen eine einzelne Partition sprechen mehrere Gru:nde. Jede
   Partition hat im Betrieb unterschiedliche Eigenschaften und die
   Trennung der Partitionen erlaubt es, die Dateisysteme an diese
   Eigenschaften anzupassen. Die Root- und /usr-Partitionen weisen
   meist nur lesende Zugriffe auf, wa:hrend /var und /var/tmp
   hauptsa:chlich beschrieben werden.

   Indem Sie ein System richtig partitionieren, verhindern Sie, dass
   eine Fragmentierung in den ha:ufig beschriebenen Partitionen auf
   die meist nur gelesenen Partitionen u:bergreift. Wenn Sie die
   ha:ufig beschriebenen Partitionen an den Rand der Platte, legen,
   dann wird die I/O-Leistung diesen Partitionen steigen. Die
   I/O-Leistung ist natu:rlich auch fu:r grosse Partitionen wichtig,
   doch erzielen Sie eine gro:ssere Leistungssteigerung, wenn Sie
   /var an den Rand der Platte legen. Schliesslich sollten Sie noch
   die Stabilita:t des Systems beachten. Eine kleine Root-Partition,
   auf die meist nur lesend zugegriffen wird, u:berlebt einen
   schlimmen Absturz wahrscheinlich eher als eine grosse Partition.

     --------------------------------------------------------------

12.3. Basiskonfiguration

   Informationen zur Systemkonfiguration sind hauptsa:chlich in
   /etc/rc.conf, die meist beim Start des Systems verwendet wird,
   abgelegt. Der Name der Datei zeigt ihren Zweck an: Sie entha:lt
   die Konfigurationen fu:r die rc* Dateien.

   In rc.conf werden die Vorgabewerte aus /etc/defaults/rc.conf
   u:berschrieben. Die Vorgabedatei sollte nicht nach /etc kopiert
   werden, da sie die Vorgabewerte und keine Beispiele entha:lt. Jede
   systemspezifische A:nderung wird in rc.conf vorgenommen.

   Um den administrativen Aufwand gering zu halten, existieren in
   geclusterten Anwendungen mehrere Strategien, globale
   Konfigurationen von systemspezifischen Konfigurationen zu trennen.
   Der empfohlene Weg ha:lt die globale Konfiguration in einer
   separaten Datei z.B. /etc/rc.conf.local. Zum Beispiel so:

     * /etc/rc.conf:

 sshd_enable="YES"
 keyrate="fast"
 defaultrouter="10.1.1.254"

     * /etc/rc.conf.local:

 hostname="node1.example.org"
 ifconfig_fxp0="inet 10.1.1.1/8"

   Die rc.conf Datei kann dann auf jedes System mit rsync oder einem
   a:hnlichen Programm verteilt werden, wa:hrend die rc.conf.local
   Datei dabei systemspezifisch bleibt.

   Bei einem Upgrade des Systems mit sysinstall(8) oder make world
   wird rc.conf nicht u:berschrieben, so dass die Systemkonfiguration
   erhalten bleibt.

     Tipp: Die Konfigurationsdatei /etc/rc.conf wird von sh(1)
     gelesen. Dies erlaubt es dem Systemadministrator, eine bestimmte
     Menge an Logik dieser Datei hinzuzufu:gen, was dabei helfen
     kann, komplexe Konfigurationsszenarien zu erstellen. Lesen Sie
     dazu rc.conf(5), um weitere Informationen zu diesem Thema zu
     erhalten.

     --------------------------------------------------------------

12.4. Konfiguration von Anwendungen

   Installierte Anwendungen haben typischerweise eigene
   Konfigurationsdateien, die eine eigene Syntax verwenden. Damit
   diese Dateien leicht von der Paketverwaltung gefunden und
   verwaltet werden ko:nnen, ist es wichtig, sie vom Basissystem zu
   trennen.

   Fu:r gewo:hnlich werden diese Dateien in /usr/local/etc
   installiert. Besitzt eine Anwendung viele Konfigurationsdateien,
   werden diese in einem separaten Unterverzeichnis abgelegt.

   Wenn ein Port oder ein Paket installiert wird, werden
   normalerweise auch Beispiele fu:r die Konfigurationsdateien
   installiert. Diese erkennt man gewo:hnlich an dem Suffix .default.
   Wenn keine Konfigurationsdateien fu:r eine Anwendung existieren,
   werden sie durch Kopieren der .default Dateien erstellt.

   Als Beispiel sei /usr/local/etc/apache gezeigt:

 -rw-r--r--  1 root  wheel   2184 May 20  1998 access.conf
 -rw-r--r--  1 root  wheel   2184 May 20  1998 access.conf.default
 -rw-r--r--  1 root  wheel   9555 May 20  1998 httpd.conf
 -rw-r--r--  1 root  wheel   9555 May 20  1998 httpd.conf.default
 -rw-r--r--  1 root  wheel  12205 May 20  1998 magic
 -rw-r--r--  1 root  wheel  12205 May 20  1998 magic.default
 -rw-r--r--  1 root  wheel   2700 May 20  1998 mime.types
 -rw-r--r--  1 root  wheel   2700 May 20  1998 mime.types.default
 -rw-r--r--  1 root  wheel   7980 May 20  1998 srm.conf
 -rw-r--r--  1 root  wheel   7933 May 20  1998 srm.conf.default

   Anhand der Dateigro:sse erkennen Sie, dass sich nur srm.conf
   gea:ndert hat. Eine spa:tere Aktualisierung des Apache-Ports
   u:berschreibt diese Datei nicht.

     --------------------------------------------------------------

12.5. Start von Diensten

   Beigetragen von Tom Rhodes.

   Viele Benutzer installieren Software Dritter auf FreeBSD mithilfe
   der Ports-Sammlung. Ha:ufig soll die Software bei einem
   Systemstart mitgestartet werden. Beispielsweise sollen die Dienste
   mail/postfix oder www/apache13 nach einem Systemstart laufen.
   Dieser Abschnitt stellt die Startprozeduren fu:r Software Dritter
   vor.

   Unter FreeBSD werden die meisten der im System enthaltenen Dienste
   wie cron(8) mithilfe von Systemskripten gestartet. Diese Skripten
   sind abha:ngig von der FreeBSD- oder Hersteller-Version.
   Allerdings kann ein Dienst mit einfachen Skripten gestartet
   werden.

     --------------------------------------------------------------

  12.5.1. Dienste u:ber das rc.d-System starten

   Mit rc.d la:sst sich der Start von Anwendungen besser steuern als
   mit den vorher besprochenen Startskripten. Mit den im Abschnitt
   rc.d besprochenen Schlu:sselwo:rtern ko:nnen Anwendungen in einer
   bestimmten Reihenfolge (zum Beispiel nach DNS) gestartet werden
   und Optionen ko:nnen in rc.conf statt fest im Startskript der
   Anwendung festgelegt werden. Ein einfaches Startskript sieht wie
   folgt aus:

 #!/bin/sh
 #
 # PROVIDE: utility
 # REQUIRE: DAEMON
 # KEYWORD: shutdown

 . /etc/rc.subr

 name=utility
 rcvar=utility_enable

 command="/usr/local/sbin/utility"

 load_rc_config $name

 #
 # DO NOT CHANGE THESE DEFAULT VALUES HERE
 # SET THEM IN THE /etc/rc.conf FILE
 #
 utility_enable=${utility_enable-"NO"}
 pidfile=${utility_pidfile-"/var/run/utility.pid"}

 run_rc_command "$1"

   Dieses Skript stellt sicher, dass utility nach den
   DAEMON-Pseudodiensten gestartet wird. Es stellt auch eine Methode
   bereit, die Prozess-ID (PID) der Anwendung in einer Datei zu
   speichern.

   In /etc/rc.conf ko:nnte fu:r diese Anwendung die folgende Zeile
   stehen:

 utility_enable="YES"

   Die Methode erleichtert den Umgang mit Kommandozeilenargumenten,
   bindet Funktionen aus /etc/rc.subr ein, ist kompatibel zum
   Werkzeug rcorder(8) und la:sst sich u:ber rc.conf leichter
   konfigurieren.

     --------------------------------------------------------------

  12.5.2. Andere Arten, um Dienste zu starten

   Dienste wie POP3 oder IMAP ko:nnen u:ber inetd(8) gestartet
   werden. Nach der Installation der Anwendung aus der Ports-Sammlung
   muss eine Konfigurationszeile in der Datei /etc/inetd.conf
   hinzugefu:gt oder in der aktuellen Konfiguration durch Entfernen
   der Kommentare aktiviert werden. Der Abschnitt Abschnitt 30.2
   beschreibt den inetd und dessen Konfiguration.

   Systemdienste ko:nnen auch mit cron(8) gestartet werden. Dieser
   Ansatz hat einige Vorteile; nicht zuletzt, weil cron(8) die
   Prozesse unter dem Eigentu:mer der crontab startet, ist es
   mo:glich, dass Dienste von nicht-root Benutzern gestartet und
   gepflegt werden ko:nnen.

   Dies nutzt eine Eigenschaft von cron(8): Fu:r die Zeitangabe kann
   @reboot eingesetzt werden. Damit wird das Kommando gestartet, wenn
   cron(8) kurz nach dem Systemboot gestartet wird.

     --------------------------------------------------------------

12.6. Programme mit cron starten

   Beigetragen von Tom Rhodes.

   Ein sehr nu:tzliches Werkzeug von FreeBSD ist cron(8). cron la:uft
   im Hintergrund und u:berpru:ft fortlaufend die Datei /etc/crontab.
   Beim Start sucht cron neue crontab-Dateien im Verzeichnis
   /var/cron/tabs. In den crontab-Dateien wird festgelegt, welche
   Programme zu welchem Zeitpunkt laufen sollen.

   Das Werkzeug cron verwendet zwei verschiedene
   Konfigurationsdateien: Die System-crontab und die
   Benutzer-crontab. Der einzige Unterschied zwischen beiden Formaten
   ist das sechste Feld. In der System-crontab gibt das sechste Feld
   das Konto an, unter dem ein Kommando la:uft. Aus der
   System-crontab ko:nnen daher Kommandos unter beliebigen Konten
   gestartet werden. In der Benutzer-crontab gibt das sechste Feld
   das auszufu:hrende Kommando an. Alle Kommandos laufen unter dem
   Konto, unter dem die crontab erstellt wurde (ein wichtiges
   Sicherheitsmerkmal).

     Anmerkung: Benutzer ko:nnen mit Benutzer-crontabs ohne
     root-Rechte Befehle terminieren. Die Kommandos in
     Benutzer-crontabs laufen unter dem Benutzer, der die crontab
     erstellt hat.

     Der Benutzer root kann, wie jeder andere Benutzer, eine
     Benutzer-crontab besitzen. Die Benutzer-crontab von root ist
     nicht mit der Datei /etc/crontab, der System-crontab, zu
     verwechseln. Normalerweise besitzt root, wegen der Existenz der
     System-crontab, keine eigene Benutzer-crontab.

   Der folgende Auszug aus der System-crontab /etc/crontab zeigt den
   Aufbau einer crontab-Datei:

 # /etc/crontab - root's crontab for FreeBSD
 #
 # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
 # (1)
 #
 SHELL=/bin/sh
 PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin (2)
 HOME=/var/log
 #
 #
 #minute hour    mday    month   wday    who     command (3)
 #
 #
 */5     *       *       *       *       root    /usr/libexec/atrun (4)

   (1)
           Das Zeichen # leitet, wie in den meisten
           Konfigurationsdateien, einen Kommentar ein. Benutzen Sie
           Kommentare, um die Funktion eines Eintrags zu erla:utern.
           Kommentare mu:ssen in einer extra Zeile stehen. Sie
           ko:nnen nicht in derselben Zeile wie ein Kommando stehen,
           da sie sonst Teil des Kommandos wa:ren. Leerzeilen in
           dieser Datei werden ignoriert.
   (2)
           Umgebungsvariablen werden mit dem Gleichheits-Zeichen (=)
           festgelegt. Im Beispiel werden die Variablen SHELL, PATH
           und HOME definiert. Wenn die Variable SHELL nicht
           definiert wird, benutzt cron die Shell sh. Wird die
           Variable PATH nicht gesetzt, mu:ssen alle Pfadangaben
           absolut sein, da es keinen Vorgabewert fu:r PATH gibt. Der
           Vorgabewert fu:r HOME ist das Heimatverzeichnis des
           Accounts, dem die crontab geho:rt.
   (3)
           In dieser Zeile werden sieben Felder beschrieben: minute,
           hour, mday, month, wday, who und command. Die ersten
           Felder legen den Zeitpunkt fest, an dem ein Kommando
           laufen soll. Das Feld minute legt die Minute fest, das
           Feld hour die Stunde, das Feld mday den Tag des Monats. Im
           Feld month wird der Monat und im Feld wday der Wochentag
           festgelegt. Alle Felder mu:ssen numerische Werte enthalten
           und die Zeitangaben sind im 24-Stunden-Format. Das Feld
           who gibt es nur in der Datei /etc/crontab und gibt den
           Account an, unter dem das Kommando laufen soll. In den
           crontab-Dateien einzelner Accounts existiert dieses Feld
           nicht. Im letzten Feld wird schliesslich das
           auszufu:hrende Kommando angegeben.
   (4)
           Diese Zeile definiert die Zeitpunkte an denen das Kommando
           atrun laufen soll. Beachten Sie die Zeichenfolge */5
           gefolgt von mehreren *-Zeichen. Das Zeichen * ist ein
           Platzhalter und steht fu:r jede mo:gliche Zeit. Diese
           Zeile fu:hrt das Kommando atrun unter dem root-Account
           alle fu:nf Minuten aus. Mehr u:ber das Kommando atrun
           erfahren Sie in der Hilfeseite atrun(8).

           Bei den Kommandos ko:nnen beliebige Optionen angegeben
           werden. Wenn das Kommando zu lang ist und auf der
           na:chsten Zeile fortgesetzt werden soll, muss am Ende der
           Zeile das Fortsetzungszeichen (\) angegeben werden.

   Bis auf das sechste Feld, das den Account angibt, sieht jede
   crontab-Datei so wie das Beispiel aus. Das sechste Feld existiert
   nur in der Systemdatei /etc/crontab. In den restlichen
   crontab-Dateien fehlt dieses Feld.

     --------------------------------------------------------------

  12.6.1. crontab installieren

     Wichtig: Die nachstehende Prozedur gilt nur fu:r
     Benutzer-crontabs. Die System-crontab ko:nnen Sie einfach mit
     Ihrem Lieblingseditor editieren. Das Werkzeug cron bemerkt, dass
     sich die Datei gea:ndert hat und wird die neue Version benutzen.
     Lesen Sie bitte auch die FAQ zur Meldung root: not found.

   Eine Benutzer-crontab, beispielsweise die Datei crontab, ko:nnen
   Sie mit jedem Editor erstellen. Die Benutzer-crontab installieren
   Sie mit dem nachstehenden Befehl:

 # crontab crontab

   Das Argument zum Befehl crontab ist die vorher erstellte Datei
   crontab.

   Der Befehl crontab -l zeigt die installierte crontab-Datei an.

   Benutzer, die eine eigene crontab-Datei ohne Vorlage erstellen
   wollen, ko:nnen den Befehl crontab -e verwenden. Dieser Befehl
   ruft einen Editor auf und installiert beim Verlassen des Editors
   die crontab-Datei.

   Wollen Sie die installierte Benutzer-crontab entfernen, rufen Sie
   den Befehl crontab mit der Option -r auf.

     --------------------------------------------------------------

12.7. Das rc-System fu:r Systemdienste

   Beigetragen von Tom Rhodes.

   2002 wurde das rc.d-System von NetBSD zum Start von Systemdiensten
   in FreeBSD integriert. Die zu diesem System geho:renden Dateien
   sind im Verzeichnis /etc/rc.d abgelegt. Die Skripten in diesem
   Verzeichnis akzeptieren die Optionen start, stop und restart.
   Beispielsweise kann sshd(8) mit dem nachstehenden Kommando neu
   gestartet werden:

 # /etc/rc.d/sshd restart

   Analog ko:nnen Sie andere Dienste starten und stoppen.
   Normalerweise werden die Dienste beim Systemstart u:ber Eintra:ge
   in der Datei rc.conf(5) automatisch gestartet. Der Network Address
   Translation Daemon wird zum Beispiel mit dem folgenden Eintrag in
   /etc/rc.conf aktiviert:

 natd_enable="YES"

   Wenn dort bereits die Zeile natd_enable="NO" existiert, a:ndern
   Sie einfach NO in YES. Die rc-Skripten starten, wie unten
   beschrieben, auch abha:ngige Dienste.

   Da das rcNG-System prima:r zum automatischen Starten und Stoppen
   von Systemdiensten dient, funktionieren die Optionen start, stop
   und restart nur, wenn die entsprechenden Variablen in /etc/rc.conf
   gesetzt sind. Beispielsweise funktioniert das Kommando sshd
   restart nur dann, wenn in /etc/rc.conf die Variable sshd_enable
   auf YES gesetzt wurde. Wenn Sie die Optionen start, stop oder
   restart unabha:ngig von den Einstellungen in /etc/rc.conf benutzen
   wollen, mu:ssen Sie den Optionen mit dem Pra:fix "one" verwenden.
   Um beispielsweise sshd unabha:ngig von den Einstellungen in
   /etc/rc.conf neu zu starten, benutzen Sie das nachstehende
   Kommando:

 # /etc/rc.d/sshd onerestart

   Ob ein Dienst in /etc/rc.conf aktiviert ist, ko:nnen Sie leicht
   herausfinden, indem Sie das entsprechende rc.d-Skript mit der
   Option rcvar aufrufen. Ein Administrator kann beispielsweise wie
   folgt pru:fen, ob der sshd-Dienst in /etc/rc.conf aktiviert ist:

 # /etc/rc.d/sshd rcvar
 # sshd
 $sshd_enable=YES

     Anmerkung: Die zweite Zeile (# sshd) wird vom Kommando sshd
     ausgegeben; sie kennzeichnet nicht die Eingabeaufforderung von
     root.

   Ob ein Dienst la:uft, kann mit der Option status abgefragt werden.
   Das folgende Kommando u:berpru:ft, ob der sshd auch wirklich
   gestartet wurde:

 # /etc/rc.d/sshd status
 sshd is running as pid 433.

   Einige Dienste ko:nnen u:ber die Option reload neu initialisiert
   werden. Dazu wird dem Dienst u:ber ein Signal mitgeteilt, dass er
   seine Konfigurationsdateien neu einlesen soll. Oft wird dazu das
   Signal SIGHUP verwendet. Beachten Sie aber, dass nicht alle
   Dienste diese Option unterstu:tzen.

   Die meisten Systemdienste werden beim Systemstart vom rc.d-System
   gestartet. Zum Beispiel aktiviert das Skript bgfsck die Pru:fung
   von Dateisystemen im Hintergrund. Das Skript gibt die folgende
   Meldung aus, wenn es gestartet wird:

 Starting background file system checks in 60 seconds.

   Viele Systemdienste ha:ngen von anderen Diensten ab. NIS und
   andere RPC-basierende Systeme ha:ngen beispielsweise von dem
   rpcbind-Dienst (portmapper) ab. Im Kopf der Startskripten befinden
   sich die Informationen u:ber Abha:ngigkeiten von anderen Diensten
   und weitere Metadaten.Mithilfe dieser Daten bestimmt das Programm
   rcorder(8) beim Systemstart die Startreihenfolge der Dienste.

   Folgende Schlu:sselwo:rter mu:ssen im Kopf aller Startskripten
   verwendet werden (da sie von rc.subr(8) zum "Aktivieren" des
   Startskripts beno:tigt werden:

     * PROVIDE: Gibt die Namen der Dienste an, die mit dieser Datei
       zur Verfu:gung gestellt werden.

   Die folgenden Schlu:sselwo:rter ko:nnen im Kopf des Startskripts
   angegeben werden. Sie sind zwar nicht unbedingt notwendig, sind
   aber hilfreich beim Umgang mit rcorder(8):

     * REQUIRE: Gibt die Namen der Dienste an, von denen dieser
       Dienst abha:ngt. Diese Datei wird nach den angegebenen
       Diensten ausgefu:hrt.

     * BEFORE: Za:hlt Dienste auf, die auf diesen Dienst angewiesen
       sind. Diese Datei wird vor den angegebenen Diensten
       ausgefu:hrt.

   Durch das Verwenden dieser Schlu:sselwo:rter kann ein
   Administrator die Startreihenfolge von Systemdiensten
   feingranuliert steuern, ohne mit den Schwierigkeiten des
   "runlevel"-Systems anderer UNIX Systeme ka:mpfen zu mu:ssen.

   Weitere Informationen u:ber das rc.d-System finden sich in den
   Manualpages zu rc(8) sowie rc.subr(8). Wenn Sie Ihre eigenen
   rc.d-Skripte schreiben wollen, sollten Sie den Artikel Practical
   rc.d scripting in BSD lesen.

     --------------------------------------------------------------

12.8. Einrichten von Netzwerkkarten

   Beigetragen von Marc Fonvieille.

   Ein Rechner ohne Netzanschluss ist heute nicht mehr vorstellbar.
   Die Konfiguration einer Netzwerkkarte geho:rt zu den allta:glichen
   Aufgaben eines FreeBSD Administrators.

     --------------------------------------------------------------

  12.8.1. Bestimmen des richtigen Treibers

   Bevor Sie anfangen, sollten Sie das Modell Ihrer Karte kennen,
   wissen welchen Chip die Karte benutzt und bestimmen, ob es sich um
   eine PCI- oder ISA-Karte handelt. Eine Aufza:hlung der
   unterstu:tzten PCI- und ISA-Karten finden Sie in der Liste der
   unterstu:tzen Gera:te. Schauen Sie nach, ob Ihre Karte dort
   aufgefu:hrt ist.

   Wenn Sie wissen, dass Ihre Karte unterstu:tzt wird, mu:ssen Sie
   den Treiber fu:r Ihre Karte bestimmen. /usr/src/sys/conf/NOTES und
   /usr/src/sys/arch/conf/NOTES enthalten eine Liste der verfu:gbaren
   Treiber mit Informationen zu den unterstu:tzten Chipsa:tzen und
   Karten. Wenn Sie sich nicht sicher sind, ob Sie den richtigen
   Treiber ausgewa:hlt haben, lesen Sie die Hilfeseite des Treibers.
   Die Hilfeseite entha:lt weitere Informationen u:ber die
   unterstu:tzten Gera:te und macht auch auf mo:gliche Probleme
   aufmerksam.

   Wenn Sie eine gebra:uchliche Karte besitzen, brauchen Sie meistens
   nicht lange nach dem passenden Treiber zu suchen. Die Treiber zu
   diesen Karten sind schon im GENERIC-Kernel enthalten und die Karte
   sollte wa:hrend des Systemstarts erkannt werden:

 dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
 000ff irq 15 at device 11.0 on pci0
 miibus0: <MII bus> on dc0
 bmtphy0: <BCM5201 10/100baseTX PHY> PHY 1 on miibus0
 bmtphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc0: Ethernet address: 00:a0:cc:da:da:da
 dc0: [ITHREAD]
 dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
 000ff irq 11 at device 12.0 on pci0
 miibus1: <MII bus> on dc1
 bmtphy1: <BCM5201 10/100baseTX PHY> PHY 1 on miibus1
 bmtphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
 dc1: Ethernet address: 00:a0:cc:da:da:db
 dc1: [ITHREAD]

   Im Beispiel erkennt das System zwei Karten, die den dc(4) Treiber
   benutzen.

   Ist der Treiber fu:r Ihre Netzwerkkarte nicht in GENERIC
   enthalten, mu:ssen Sie den Treiber laden, um die Karte zu
   benutzen. Sie ko:nnen den Treiber auf zwei Arten laden:

     * Am einfachsten ist es, das Kernelmodul fu:r Ihre Karte mit
       kldload(8) zu laden. Allerdings gibt es nicht fu:r alle Karten
       Kernelmodule; zum Beispiel gibt es keine Kernelmodule fu:r
       ISA-Karten.

     * Alternativ ko:nnen Sie den Treiber fu:r die Karte fest in den
       Kernel einbinden. Schauen Sie sich dazu
       /usr/src/sys/conf/NOTES, /usr/src/sys/arch/conf/NOTES und die
       Hilfeseite des Treibers, den Sie in den Kernel einbinden
       mo:chten, an. Die U:bersetzung des Kernels wird in Kapitel 9
       beschrieben. Wenn Ihre Karte wa:hrend des Systemstarts vom
       Kernel (GENERIC) erkannt wurde, mu:ssen Sie den Kernel nicht
       neu u:bersetzen.

     --------------------------------------------------------------

    12.8.1.1. Windows-NDIS-Treiber einsetzen

   Leider stellen nach wie vor viele Unternehmen die Spezifikationen
   ihrer Treiber der Open Source Gemeinde nicht zur Verfu:gung, weil
   sie diese Informationen als Gescha:ftsgeheimnisse betrachten.
   Daher haben die Entwickler von FreeBSD und anderen
   Betriebssystemen nur zwei Mo:glichkeiten. Entweder versuchen sie
   in einem aufwa:ndigen Prozess den Treiber durch Reverse
   Engineering nachzubauen, oder sie versuchen, die vorhandenen
   Bina:rtreiber der Microsoft Windows-Plattform zu verwenden. Die
   meisten Entwickler, darunter auch die an FreeBSD beteiligten,
   haben sich fu:r den zweiten Ansatz entschieden.

   Bill Paul (wpaul) ist es zu verdanken, dass es seit eine "native"
   Unterstu:tzung der Network Driver Interface Specification (NDIS)
   gibt. Der FreeBSD NDISulator (auch als Project Evil bekannt) nutzt
   den bina:ren Windows-Treiber, indem er diesem vorgibt, unter
   Windows zu laufen. Da der ndis(4)-Treiber eine Windows-Bina:rdatei
   nutzt, kann er nur auf i386- und amd64-Systemen verwendet werden.

     Anmerkung: Der ndis(4)-Treiber unterstu:tzt prima:r PCI-,
     CardBus- sowie PCMCIA-Gera:te, USB-Gera:te werden hingegen noch
     nicht unterstu:tzt.

   Um den NDISulator zu verwenden, beno:tigen Sie drei Dinge:

    1. Die Kernelquellen

    2. Den Windows XP-Bina:rtreiber (mit der Erweiterung .SYS)

    3. Die Konfigurationsdatei des Windows XP-Treibers (mit der
       Erweiterung .INF)

   Suchen Sie die Dateien fu:r Ihre Karte. Diese befinden sich
   meistens auf einer beigelegten CD-ROM, oder ko:nnen von der
   Internetseite des Herstellers heruntergeladen werden. In den
   folgenden Beispielen werden die Dateien W32DRIVER.SYS und
   W32DRIVER.INF verwendet.

     Anmerkung: Sie ko:nnen einen Windows/i386-Treiber nicht unter
     FreeBSD/amd64 einsetzen, vielmehr beno:tigen Sie dafu:r einen
     Windows/amd64-Treiber.

   Als Na:chstes kompilieren Sie den bina:ren Treiber, um ein
   Kernelmodul zu erzeugen. Dazu rufen Sie als root ndisgen(8) auf:

 # ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS

   ndisgen(8) arbeitet interaktiv, beno:tigt es weitere
   Informationen, so fragt es Sie danach. Als Ergebnis erhalten Sie
   ein Kernelmodul im Arbeitsverzeichnis, das Sie wie folgt laden
   ko:nnen:

 # kldload ./W32DRIVER.ko

   Neben dem vorhin erzeugten Kernelmodul mu:ssen Sie auch die
   Kernelmodule ndis.ko und if_ndis.ko laden. Diese Module sollten
   automatisch geladen werden, wenn Sie ein von ndis(4) abha:ngiges
   Modul laden. Wollen Sie die Module hingegen manuell laden, geben
   Sie die folgenden Befehle ein:

 # kldload ndis
 # kldload if_ndis

   Der erste Befehl la:dt dabei den NDIS-Miniport-Treiber, der zweite
   das tatsa:chliche Netzwerkgera:t.

   U:berpru:fen Sie nun die Ausgabe von dmesg(8) auf eventuelle
   Fehler wa:hrend des Ladevorgangs. Gab es dabei keine Probleme,
   sollten Sie eine Ausgabe a:hnlich der folgenden erhalten:

 ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
 ndis0: NDIS API version: 5.0
 ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
 ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
 ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps

   Ab jetzt ko:nnen Sie mit dem Gera:t ndis0 wie mit jeder anderen
   Gera:tedatei (etwa dc0) arbeiten.

   Wie jedes Kernelmodul ko:nnen auch die NDIS-Module beim
   Systemstart automatisch geladen werden. Dazu kopieren Sie das
   erzeugte Modul (W32DRIVER_SYS.ko) in das Verzeichnis
   /boot/modules. Danach fu:gen Sie die folgende Zeile in
   /boot/loader.conf ein:

 W32DRIVER_SYS_load="YES"

     --------------------------------------------------------------

  12.8.2. Konfiguration von Netzwerkkarten

   Nachdem der richtige Treiber fu:r die Karte geladen ist, muss die
   Karte konfiguriert werden. Unter Umsta:nden ist die Karte schon
   wa:hrend der Installation mit sysinstall konfiguriert worden.

   Das nachstehende Kommando zeigt die Konfiguration der Karten eines
   Systems an:

 % ifconfig
 dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=80008<VLAN_MTU,LINKSTATE>
         ether 00:a0:cc:da:da:da
         inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
         media: Ethernet autoselect (100baseTX <full-duplex>)
         status: active
 dc1: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=80008<VLAN_MTU,LINKSTATE>
         ether 00:a0:cc:da:da:db
         inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
         media: Ethernet 10baseT/UTP
         status: no carrier
 plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
         options=3<RXCSUM,TXCSUM>
         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
         inet6 ::1 prefixlen 128
         inet 127.0.0.1 netmask 0xff000000
         nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

   Im Beispiel werden Informationen zu den folgenden Gera:ten
   angezeigt:

     * dc0: Der erste Ethernet-Adapter

     * dc1: Der zweite Ethernet-Adapter

     * plip0: Die parallele Schnittstelle (falls Ihr System u:ber
       eine derartige Schnittstelle verfu:gt)

     * lo0: Das Loopback-Gera:t

   Der Name der Netzwerkkarte wird aus dem Namen des Treibers und
   einer Zahl zusammengesetzt. Die Zahl gibt die Reihenfolge an, in
   der die Gera:te beim Systemstart erkannt wurden. Die dritte Karte,
   die den sis(4) Treiber benutzt, wu:rde beispielsweise sis2
   heissen.

   Der Adapter dc0 aus dem Beispiel ist aktiv. Sie erkennen das an
   den folgenden Hinweisen:

    1. UP bedeutet, dass die Karte konfiguriert und aktiv ist.

    2. Der Karte wurde die Internet-Adresse (inet) 192.168.1.3
       zugewiesen.

    3. Die Subnetzmaske ist richtig (0xffffff00 entspricht
       255.255.255.0).

    4. Die Broadcast-Adresse 192.168.1.255 ist richtig.

    5. Die MAC-Adresse der Karte (ether) lautet 00:a0:cc:da:da:da.

    6. Die automatische Medienerkennung ist aktiviert (media:
       Ethernet autoselect (100baseTX <full-duplex>)). Der Adapter
       dc1 benutzt das Medium 10baseT/UTP. Weitere Informationen
       u:ber die einstellbaren Medien entnehmen Sie bitte der
       Hilfeseite des Treibers.

    7. Der Verbindungsstatus (status) ist active, das heisst es wurde
       ein Tra:gersignal entdeckt. Fu:r dc1 wird status: no carrier
       angezeigt. Das ist normal, wenn kein Kabel an der Karte
       angeschlossen ist.

   Wa:re die Karte nicht konfiguriert, wu:rde die Ausgabe von
   ifconfig(8) so aussehen:

 dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=80008<VLAN_MTU,LINKSTATE>
         ether 00:a0:cc:da:da:da
         media: Ethernet autoselect (100baseTX <full-duplex>)
         status: active

   Sie brauchen die Berechtigungen von root, um Ihre Karte zu
   konfigurieren. Die Konfiguration kann auf der Kommandozeile mit
   ifconfig(8) erfolgen, allerdings mu:sste sie dann nach jedem
   Neustart wiederholt werden. Dauerhaft wird die Karte in
   /etc/rc.conf konfiguriert.

   O:ffnen Sie /etc/rc.conf mit Ihrem Lieblingseditor und fu:gen Sie
   fu:r jede Karte Ihres Systems eine Zeile hinzu. In dem hier
   diskutierten Fall wurden die nachstehenden Zeilen eingefu:gt:

 ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
 ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"

   Ersetzen Sie dc0, dc1 usw. durch die Gera:tenamen Ihrer Karten und
   setzen Sie die richtigen IP-Adressen ein. Die Hilfeseiten des
   Treibers und ifconfig(8) enthalten weitere Einzelheiten u:ber
   verfu:gbare Optionen. Die Syntax von /etc/rc.conf wird in
   rc.conf(5) erkla:rt.

   Wenn Sie das Netz wa:hrend der Installation konfiguriert haben,
   existieren vielleicht schon Eintra:ge fu:r Ihre Karten.
   U:berpru:fen Sie /etc/rc.conf bevor Sie weitere Zeilen
   hinzufu:gen.

   In /etc/hosts ko:nnen Sie die Namen und IP-Adressen der Rechner
   Ihres LANs eintragen. Weitere Informationen entnehmen Sie bitte
   hosts(5) und /usr/share/examples/etc/hosts.

     Anmerkung: Soll Ihr System sich auch mit dem Internet verbinden
     ko:nnen, mu:ssen Sie Default-Gateway und Nameserver manuell
     konfigurieren:

 # echo 'defaultrouter="Ihr_Default_Gateway"' >> /etc/rc.conf
 # echo 'nameserver Ihr_DNS_Server' >> /etc/resolv.conf

     --------------------------------------------------------------

  12.8.3. Test und Fehlersuche

   Nachdem Sie die notwendigen A:nderungen in /etc/rc.conf
   vorgenommen haben, fu:hren Sie einen Neustart Ihres Systems durch.
   Dadurch werden die Adapter konfiguriert und Sie stellen sicher,
   dass der Start ohne Konfigurationsfehler erfolgt. Alternativ
   ko:nnen Sie auch lediglich die Netzwerkeinstellungen neu
   initialisieren:

 # /etc/rc.d/netif restart

     Anmerkung: Haben Sie ein Default-Gateway definiert (in der Datei
     /etc/rc.conf), mu:ssen Sie auch den folgenden Befehl ausfu:hren:

 # /etc/rc.d/routing restart

   Wenn das System gestartet ist, sollten Sie die Netzwerkkarten
   testen.

     --------------------------------------------------------------

    12.8.3.1. Test der Ethernet-Karte

   Mit zwei Tests ko:nnen Sie pru:fen, ob die Ethernet-Karte richtig
   konfiguriert ist. Testen Sie zuerst mit ping den Adapter selbst
   und sprechen Sie dann eine andere Maschine im LAN an.

   Zuerst, der Test des Adapters:

 % ping -c5 192.168.1.3
 PING 192.168.1.3 (192.168.1.3): 56 data bytes
 64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms

 --- 192.168.1.3 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

   Jetzt versuchen wir, eine andere Maschine im LAN zu erreichen:

 % ping -c5 192.168.1.2
 PING 192.168.1.2 (192.168.1.2): 56 data bytes
 64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms

 --- 192.168.1.2 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

   Sie ko:nnen auch den Namen der Maschine anstelle von 192.168.1.2
   benutzen, wenn Sie /etc/hosts entsprechend eingerichtet haben.

     --------------------------------------------------------------

    12.8.3.2. Fehlersuche

   Fehler zu beheben, ist immer sehr mu:hsam. Indem Sie die einfachen
   Sachen zuerst pru:fen, erleichtern Sie sich die Aufgabe. Steckt
   das Netwerkkabel? Sind die Netzwerkdienste richtig konfiguriert?
   Funktioniert die Firewall? Wird die Netwerkkarte von FreeBSD
   unterstu:tzt? Lesen Sie immer die Hardware-Informationen des
   Releases, bevor Sie einen Fehlerbericht einsenden. Aktualisieren
   Sie Ihre FreeBSD-Version auf -STABLE. Suchen Sie in den Archiven
   der Mailinglisten oder auf dem Internet nach bekannten Lo:sungen.

   Wenn die Karte funktioniert, die Verbindungen aber zu langsam
   sind, lesen Sie bitte die Hilfeseite tuning(7). Pru:fen Sie auch
   die Netzwerkkonfiguration, da falsche Einstellungen die Ursache
   fu:r langsame Verbindungen sein ko:nnen.

   Wenn Sie viele "device timeout" Meldungen in den Systemprotokollen
   finden, pru:fen Sie, dass es keinen Konflikt zwischen der
   Netzwerkkarte und anderen Gera:ten Ihres Systems gibt.
   U:berpru:fen Sie nochmals die Verkabelung. Unter Umsta:nden
   beno:tigen Sie eine neue Netzwerkkarte.

   Wenn Sie in den Systemprotokollen "watchdog timeout"
   Fehlermeldungen finden, kontrollieren Sie zuerst die Verkabelung.
   U:berpru:fen Sie dann, ob der PCI-Steckplatz der Karte Bus
   Mastering unterstu:tzt. Auf einigen a:lteren Motherboards ist das
   nur fu:r einen Steckplatz (meistens Steckplatz 0) der Fall. Lesen
   Sie in der Dokumentation Ihrer Karte und Ihres Motherboards nach,
   ob das vielleicht die Ursache des Problems sein ko:nnte.

   Die Meldung "No route to host" erscheint, wenn Ihr System ein
   Paket nicht zustellen kann. Das kann vorkommen weil beispielsweise
   keine Default-Route gesetzt wurde oder das Netzwerkkabel nicht
   richtig steckt. Schauen Sie in der Ausgabe von netstat -rn nach,
   ob eine Route zu dem Zielsystem existiert. Wenn nicht, lesen Sie
   bitte das Kapitel 32.

   Die Meldung "ping: sendto: Permission denied" wird oft von einer
   falsch konfigurierten Firewall verursacht. Wenn keine Regeln
   definiert wurden, blockiert eine aktivierte Firewall alle Pakete,
   selbst einfache ping-Pakete. Weitere Informationen erhalten Sie in
   Kapitel 31.

   Falls die Leistung der Karte schlecht ist, setzen Sie die
   Medienerkennung von autoselect (automatisch) auf das richtige
   Medium. In vielen Fa:llen lo:st diese Massnahme Leistungsprobleme.
   Wenn nicht, pru:fen Sie nochmal die Netzwerkeinstellungen und
   lesen Sie die Hilfeseite tuning(7).

     --------------------------------------------------------------

12.9. Virtual Hosts

   Ein gebra:uchlicher Zweck von FreeBSD ist das virtuelle Hosting,
   bei dem ein Server im Netzwerk wie mehrere Server aussieht. Dies
   wird dadurch erreicht, dass einem Netzwerkinterface mehrere
   Netzwerk-Adressen zugewiesen werden.

   Ein Netzwerkinterface hat eine "echte" Adresse und kann beliebig
   viele "alias" Adressen haben. Die Aliase werden durch
   entsprechende alias Eintra:ge in /etc/rc.conf festgelegt.

   Ein alias Eintrag fu:r das Interface fxp0 sieht wie folgt aus:

 ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"

   Beachten Sie, dass die Alias-Eintra:ge mit alias0 anfangen mu:ssen
   und weiter hochgeza:hlt werden, das heisst _alias1, _alias2, und
   so weiter. Die Konfiguration der Aliase ho:rt bei der ersten
   fehlenden Zahl auf.

   Die Berechnung der Alias-Netzwerkmasken ist wichtig, doch zum
   Glu:ck einfach. Fu:r jedes Interface muss es eine Adresse geben,
   die die Netzwerkmaske des Netzwerkes richtig beschreibt. Alle
   anderen Adressen in diesem Netzwerk haben dann eine Netzwerkmaske,
   die mit 1 gefu:llt ist (also 255.255.255.255 oder hexadezimal
   0xffffffff).

   Als Beispiel betrachten wir den Fall, in dem fxp0 mit zwei
   Netzwerken verbunden ist: dem Netzwerk 10.1.1.0 mit der
   Netzwerkmaske 255.255.255.0 und dem Netzwerk 202.0.75.16 mit der
   Netzwerkmaske 255.255.255.240. Das System soll die Adressen
   10.1.1.1 bis 10.1.1.5 und 202.0.75.17 bis 202.0.75.20 belegen. Wie
   eben beschrieben, hat nur die erste Adresse in einem Netzwerk
   (hier 10.0.1.1 und 202.0.75.17) die richtige Netzwerkmaske. Alle
   anderen Adressen (10.1.1.2 bis 10.1.1.5 und 202.0.75.18 bis
   202.0.75.20) erhalten die Maske 255.255.255.255.

   Die folgenden Eintra:ge in /etc/rc.conf konfigurieren den Adapter
   entsprechend dem Beispiel:

 ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
 ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
 ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
 ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
 ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
 ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
 ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
 ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
 ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"

     --------------------------------------------------------------

12.10. Konfigurationsdateien

  12.10.1. /etc Layout

   Konfigurationsdateien finden sich in einigen Verzeichnissen unter
   anderem in:

                       Entha:lt generelle                             
   /etc                Konfigurationsinformationen, die Daten hier    
                       sind systemspezifisch.                         
   /etc/defaults       Default Versionen der Konfigurationsdateien.   
   /etc/mail           Entha:lt die sendmail(8) Konfiguration und     
                       weitere MTA Konfigurationsdateien.             
   /etc/ppp            Hier findet sich die Konfiguration fu:r die    
                       User- und Kernel-ppp Programme.                
                       Das Vorgabeverzeichnis, in dem Daten von       
   /etc/namedb         named(8) gehalten werden. Normalerweise werden 
                       hier named.conf und Zonendaten abgelegt.       
                       Installierte Anwendungen legen hier ihre       
   /usr/local/etc      Konfigurationsdateien ab. Dieses Verzeichnis   
                       kann Unterverzeichnisse fu:r bestimmte         
                       Anwendungen enthalten.                         
   /usr/local/etc/rc.d Ort fu:r Start- und Stopskripten installierter 
                       Anwendungen.                                   
                       Automatisch generierte systemspezifische       
   /var/db             Datenbanken, wie die Paket-Datenbank oder die  
                       locate-Datenbank.                              

     --------------------------------------------------------------

  12.10.2. Hostnamen

     --------------------------------------------------------------

    12.10.2.1. /etc/resolv.conf

   Wie der FreeBSD-Resolver auf das Internet Domain Name System (DNS)
   zugreift, wird in /etc/resolv.conf festgelegt.

   Die gebra:uchlichsten Eintra:ge in /etc/resolv.conf sind:

              Die IP-Adresse eines Nameservers, den der Resolver      
   nameserver abfragen soll. Bis zu drei Server werden in der         
              Reihenfolge, in der sie aufgeza:hlt sind, abgefragt.    
              Suchliste mit Domain-Namen zum Auflo:sen von Hostnamen. 
   search     Die Liste wird normalerweise durch den Domain-Teil des  
              lokalen Hostnamens festgelegt.                          
   domain     Der lokale Domain-Name.                                 

   Beispiel fu:r eine typische resolv.conf:

 search example.com
 nameserver 147.11.1.11
 nameserver 147.11.100.30

     Anmerkung: Nur eine der Anweisungen search oder domain sollte
     benutzt werden.

   Wenn Sie DHCP benutzen, u:berschreibt dhclient(8) fu:r gewo:hnlich
   resolv.conf mit den Informationen vom DHCP-Server.

     --------------------------------------------------------------

    12.10.2.2. /etc/hosts

   /etc/hosts ist eine einfache textbasierte Datenbank, die aus alten
   Internetzeiten stammt. Zusammen mit DNS und NIS stellt sie eine
   Abbildung zwischen Namen und IP-Adressen zur Verfu:gung. Anstatt
   named(8) zu konfigurieren, ko:nnen hier lokale Rechner, die u:ber
   ein LAN verbunden sind, eingetragen werden. Lokale Eintra:ge fu:r
   gebra:uchliche Internet-Adressen in /etc/hosts verhindern die
   Abfrage eines externen Servers und beschleunigen die
   Namensauflo:sung.

 # $FreeBSD$
 #
 #
 # Host Database
 #
 # This file should contain the addresses and aliases for local hosts that
 # share this file.  Replace 'my.domain' below with the domainname of your
 # machine.
 #
 # In the presence of the domain name service or NIS, this file may
 # not be consulted at all; see /etc/nsswitch.conf for the resolution order.
 #
 #
 ::1         localhost localhost.my.domain
 127.0.0.1       localhost localhost.my.domain
 #
 # Imaginary network.
 #10.0.0.2       myname.my.domain myname
 #10.0.0.3       myfriend.my.domain myfriend
 #
 # According to RFC 1918, you can use the following IP networks for
 # private nets which will never be connected to the Internet:
 #
 #   10.0.0.0    -   10.255.255.255
 #   172.16.0.0  -   172.31.255.255
 #   192.168.0.0 -   192.168.255.255
 #
 # In case you want to be able to connect to the Internet, you need
 # real official assigned numbers.  Do not try to invent your own network
 # numbers but instead get one from your network provider (if any) or
 # from your regional registry (ARIN, APNIC, LACNIC, RIPE NCC, or AfriNIC.)
 #

   /etc/hosts hat ein einfaches Format:

 [Internet Adresse] [Offizieller Hostname] [Alias1] [Alias2] ...

   Zum Beispiel:

 10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2

   Weitere Informationen entnehmen Sie bitte hosts(5).

     --------------------------------------------------------------

  12.10.3. Konfiguration von Logdateien

     --------------------------------------------------------------

    12.10.3.1. syslog.conf

   syslog.conf ist die Konfigurationsdatei von syslogd(8). Sie legt
   fest, welche syslog Meldungen in welche Logdateien geschrieben
   werden.

 # $FreeBSD$
 #
 #       Spaces ARE valid field separators in this file. However,
 #       other *nix-like systems still insist on using tabs as field
 #       separators. If you are sharing this file between systems, you
 #       may want to use only tabs as field separators here.
 #       Consult the syslog.conf(5) manpage.
 *.err;kern.debug;auth.notice;mail.crit          /dev/console
 *.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
 security.*                                      /var/log/security
 mail.info                                       /var/log/maillog
 lpr.info                                        /var/log/lpd-errs
 cron.*                                          /var/log/cron
 *.err                                           root
 *.notice;news.err                               root
 *.alert                                         root
 *.emerg                                         *
 # uncomment this to log all writes to /dev/console to /var/log/console.log
 #console.info                                   /var/log/console.log
 # uncomment this to enable logging of all log messages to /var/log/all.log
 #*.*                                            /var/log/all.log
 # uncomment this to enable logging to a remote log host named loghost
 #*.*                                            @loghost
 # uncomment these if you're running inn
 # news.crit                                     /var/log/news/news.crit
 # news.err                                      /var/log/news/news.err
 # news.notice                                   /var/log/news/news.notice
 !startslip
 *.*                                             /var/log/slip.log
 !ppp
 *.*                                             /var/log/ppp.log

   Weitere Informationen entha:lt syslog.conf(5).

     --------------------------------------------------------------

    12.10.3.2. newsyslog.conf

   Die Konfigurationsdatei fu:r newsyslog(8), das normalerweise von
   cron(8) aufgerufen wird, ist newsyslog.conf. newsyslog(8) stellt
   fest, ob Logdateien archiviert oder verschoben werden mu:ssen. So
   wird logfile nach logfile.0 geschoben und logfile.0 nach logfile.1
   usw. Zudem ko:nnen Logdateien mit gzip(1) komprimiert werden. Die
   Namen der Logdateien sind dann logfile.0.gz, logfile.1.gz usw.

   newsyslog.conf legt fest, welche Logdateien wann bearbeitet und
   wie viele Dateien behalten werden. Logdateien ko:nnen auf Basis
   ihrer Gro:sse oder zu einem gewissen Zeitpunkt archiviert bzw.
   umbenannt werden.

 # configuration file for newsyslog
 # $FreeBSD$
 #
 # filename          [owner:group]    mode count size when [ZB] [/pid_file] [sig_num]
 /var/log/cron                           600  3     100  *     Z
 /var/log/amd.log                        644  7     100  *     Z
 /var/log/kerberos.log                   644  7     100  *     Z
 /var/log/lpd-errs                       644  7     100  *     Z
 /var/log/maillog                        644  7     *    @T00  Z
 /var/log/sendmail.st                    644  10    *    168   B
 /var/log/messages                       644  5     100  *     Z
 /var/log/all.log                        600  7     *    @T00  Z
 /var/log/slip.log                       600  3     100  *     Z
 /var/log/ppp.log                        600  3     100  *     Z
 /var/log/security                       600  10    100  *     Z
 /var/log/wtmp                           644  3     *    @01T05 B
 /var/log/daily.log                      640  7     *    @T00  Z
 /var/log/weekly.log                     640  5     1    $W6D0 Z
 /var/log/monthly.log                    640  12    *    $M1D0 Z
 /var/log/console.log                    640  5     100  *     Z

   Um mehr zu erfahren, lesen Sie bitte newsyslog(8).

     --------------------------------------------------------------

  12.10.4. sysctl.conf

   sysctl.conf sieht a:hnlich wie rc.conf aus. Werte werden in der
   Form Variable=Wert gesetzt. Die angegebenen Werte werden gesetzt,
   nachdem sich das System bereits im Mehrbenutzermodus befindet.
   Allerdings lassen sich im Mehrbenutzermodus nicht alle Werte
   setzen.

   Um das Protokollieren von fatalen Signalen abzustellen und
   Benutzer daran zu hindern, von anderen Benutzern gestartete
   Prozesse zu sehen, ko:nnen Sie in der Datei sysctl.conf die
   folgenden Variablen setzen:

 # Do not log fatal signal exits (e.g. sig 11)
 kern.logsigexit=0

 # Prevent users from seeing information about processes that
 # are being run under another UID.
 security.bsd.see_other_uids=0

     --------------------------------------------------------------

12.11. Einstellungen mit sysctl

   Mit sysctl(8) ko:nnen Sie A:nderungen an einem laufenden
   FreeBSD-System vornehmen. Unter anderem ko:nnen Optionen des
   TCP/IP-Stacks oder des virtuellen Speichermanagements vera:ndert
   werden. Unter der Hand eines erfahrenen Systemadministrators kann
   dies die Systemperformance erheblich verbessern. U:ber 500
   Variablen ko:nnen mit sysctl(8) gelesen und gesetzt werden.

   Der Hauptzweck von sysctl(8) besteht darin, Systemeinstellungen zu
   lesen und zu vera:ndern.

   Alle auslesbaren Variablen werden wie folgt angezeigt:

 % sysctl -a

   Sie ko:nnen auch eine spezielle Variable, z.B. kern.maxproc lesen:

 % sysctl kern.maxproc
 kern.maxproc: 1044

   Um eine Variable zu setzen, benutzen Sie die Syntax Variable=
   Wert:

 # sysctl kern.maxfiles=5000
 kern.maxfiles: 2088 -> 5000

   Mit sysctl ko:nnen Sie Strings, Zahlen oder Boolean-Werte setzen.
   Bei Boolean-Werten setzen sie 1 fu:r wahr und 0 fu:r falsch.

   Wenn Sie Variablen automatisch wa:hrend des Systemstarts setzen
   wollen, fu:gen Sie die Variablen in die Datei /etc/sysctl.conf
   ein. Weiteres entnehmen Sie bitte der Hilfeseite sysctl.conf(5)
   und dem Abschnitt 12.10.4.

     --------------------------------------------------------------

  12.11.1. Schreibgeschu:tzte Variablen

   Contributed by Tom Rhodes.

   Schreibgeschu:tzte sysctl-Variablen ko:nnen nur wa:hrend des
   Systemstarts vera:ndert werden.

   Beispielsweise hat cardbus(4) auf einigen Laptops Schwierigkeiten,
   Speicherbereiche zu erkennen. Es treten dann Fehlermeldungen wie
   die folgende auf:

 cbb0: Could not map register memory
 device_probe_and_attach: cbb0 attach returned 12

   Um dieses Problem zu lo:sen, muss eine schreibgeschu:tzte
   sysctl-Variable vera:ndert werden. Eine OID kann in der Datei
   /boot/loader.conf u:berschrieben werden. Die Datei
   /boot/defaults/loader.conf entha:lt Vorgabewwerte fu:r
   sysctl-Variablen.

   Das oben erwa:hnte Problem wird durch die Angabe von
   hw.pci.allow_unsupported_io_range=1 in /boot/loader.conf gelo:st.
   Danach sollte cardbus(4) fehlerfrei funktionieren.

     --------------------------------------------------------------

12.12. Tuning von Laufwerken

  12.12.1. Sysctl Variablen

    12.12.1.1. vfs.vmiodirenable

   Die Variable vfs.vmiodirenable besitzt in der Voreinstellung den
   Wert 1. Die Variable kann auf den Wert 0 (ausgeschaltet) oder 1
   (angeschaltet) gesetzt werden. Sie steuert, wie Verzeichnisse vom
   System zwischengespeichert werden. Die meisten Verzeichnisse sind
   klein und benutzen nur ein einzelnes Fragment, typischerweise
   1 kB, im Dateisystem. Im Buffer-Cache verbrauchen sie mit
   512 Bytes noch weniger Platz. Ist die Variable ausgeschaltet (auf
   0) wird der Buffer-Cache nur eine limitierte Anzahl Verzeichnisse
   zwischenspeichern, auch wenn das System u:ber sehr viel Speicher
   verfu:gt. Ist die Variable aktiviert (auf 1), kann der
   Buffer-Cache den VM-Page-Cache benutzen, um Verzeichnisse
   zwischenzuspeichern. Der ganze Speicher steht damit zum
   Zwischenspeichern von Verzeichnissen zur Verfu:gung. Der Nachteil
   bei dieser Vorgehensweise ist, dass zum Zwischenspeichern eines
   Verzeichnisses mindestens eine physikalische Seite im Speicher,
   die normalerweise 4 kB gross ist, anstelle von 512 Bytes gebraucht
   wird. Wir empfehlen, diese Option aktiviert zu lassen, wenn Sie
   Dienste zur Verfu:gung stellen, die viele Dateien manipulieren.
   Beispiele fu:r solche Dienste sind Web-Caches, grosse Mail-Systeme
   oder Netnews. Die aktivierte Variable vermindert, trotz des
   verschwendeten Speichers, in aller Regel nicht die Leistung des
   Systems, obwohl Sie das nachpru:fen sollten.

     --------------------------------------------------------------

    12.12.1.2. vfs.write_behind

   In der Voreinstellung besitzt die Variable vfs.write_behind den
   Wert 1 (aktiviert). Mit dieser Einstellung schreibt das
   Dateisystem anfallende vollsta:ndige Cluster, die besonders beim
   sequentiellen Schreiben grosser Dateien auftreten, direkt auf das
   Medium aus. Dies verhindert, dass sich im Buffer-Cache vera:nderte
   Puffer (dirty buffers) ansammeln, die die I/O-Verarbeitung nicht
   mehr beschleunigen wu:rden. Unter bestimmten Umsta:nden blockiert
   diese Funktion allerdings Prozesse. Setzen Sie in diesem Fall die
   Variable vfs.write_behind auf den Wert 0.

     --------------------------------------------------------------

    12.12.1.3. vfs.hirunningspace

   Die Variable vfs.hirunningspace bestimmt systemweit die Menge
   ausstehender Schreiboperationen, die dem Platten-Controller zu
   jedem beliebigen Zeitpunkt u:bergeben werden ko:nnen.
   Normalerweise ko:nnen Sie den Vorgabewert verwenden. Auf Systemen
   mit vielen Platten kann der Wert aber auf 4 bis 5 Megabyte erho:ht
   werden. Beachten Sie, dass ein zu hoher Wert (gro:sser als der
   Schreib-Schwellwert des Buffer-Caches) zu Leistungverlusten
   fu:hren kann. Setzen Sie den Wert daher nicht zu hoch! Hohe Werte
   ko:nnen auch Leseoperationen verzo:gern, die gleichzeitig mit
   Schreiboperationen ausgefu:hrt werden.

   Es gibt weitere Variablen, mit denen Sie den Buffer-Cache und den
   VM-Page-Cache beeinflussen ko:nnen. Wir raten Ihnen allerdings
   davon ab, diese Variablen zu vera:ndern, da das VM-System den
   virtuellen Speicher selbst sehr gut verwaltet.

     --------------------------------------------------------------

    12.12.1.4. vm.swap_idle_enabled

   Die Variable vm.swap_idle_enabled ist fu:r grosse
   Mehrbenutzer-Systeme gedacht, auf denen sich viele Benutzer an-
   und abmelden und auf denen es viele Prozesse im Leerlauf (idle)
   gibt. Solche Systeme fragen kontinuierlich freien Speicher an.
   Wenn Sie die Variable vm.swap_idle_enabled aktivieren, ko:nnen Sie
   die Auslagerungs-Hysterese von Seiten mit den Variablen
   vm.swap_idle_threshold1 und vm.swap_idle_threshold2 einstellen.
   Die Schwellwerte beider Variablen geben die Zeit in Sekunden an,
   in denen sich ein Prozess im Leerlauf befinden muss. Wenn die
   Werte so eingestellt sind, dass Seiten fru:her als nach dem
   normalen Algorithmus ausgelagert werden, verschafft das dem
   Auslagerungs-Prozess mehr Luft. Aktivieren Sie diese Funktion nur,
   wenn Sie sie wirklich beno:tigen: Die Speicherseiten werden eher
   fru:her als spa:ter ausgelagert. Der Platz im Swap-Bereich wird
   dadurch schneller verbraucht und die Plattenaktivita:ten steigen
   an. Auf kleine Systeme hat diese Funktion spu:rbare Auswirkungen.
   Auf grossen Systemen, die sowieso schon Seiten auslagern mu:ssen,
   ko:nnen ganze Prozesse leichter in den Speicher geladen oder
   ausgelagert werden.

     --------------------------------------------------------------

    12.12.1.5. hw.ata.wc

   In FreeBSD 4.3 wurde versucht, den IDE-Schreib-Zwischenspeicher
   abzustellen. Obwohl dies die Bandbreite zum Schreiben auf
   IDE-Platten verringerte, wurde es aus Gru:nden der Datenkonsistenz
   als notwenig angesehen. Der Kern des Problems ist, dass
   IDE-Platten keine zuverla:ssige Aussage u:ber das Ende eines
   Schreibvorgangs treffen. Wenn der Schreib-Zwischenspeicher
   aktiviert ist, werden die Daten nicht in der Reihenfolge ihres
   Eintreffens geschrieben. Es kann sogar passieren, dass das
   Schreiben mancher Blo:cke im Fall von starker Plattenaktivita:t
   auf unbefristete Zeit verzo:gert wird. Ein Absturz oder
   Stromausfall zu dieser Zeit kann die Dateisysteme erheblich
   bescha:digen. Wir entschieden uns daher fu:r die sichere Variante
   und stellten den Schreib-Zwischenspeicher ab. Leider war damit
   auch ein grosser Leistungsverlust verbunden, so dass wir die
   Variable nach dem Release wieder aktiviert haben. Sie sollten den
   Wert der Variable hw.ata.wc auf Ihrem System u:berpru:fen. Wenn
   der Schreib-Zwischenspeicher abgestellt ist, ko:nnen Sie ihn
   aktivieren, indem Sie die Variable auf den Wert 1 setzen. Dies
   muss zum Zeitpunkt des Systemstarts im Boot-Loader geschehen. Eine
   A:nderung der Variable, nachdem der Kernel gestartet ist, hat
   keine Auswirkungen.

   Weitere Informationen finden Sie in ata(4).

     --------------------------------------------------------------

    12.12.1.6. SCSI_DELAY (kern.cam.scsi_delay)

   Mit der Kerneloption SCSI_DELAY kann die Dauer des Systemstarts
   verringert werden. Der Vorgabewert ist recht hoch und er
   verzo:gert den Systemstart um 15 oder mehr Sekunden. Normalerweise
   kann dieser Wert, insbesondere mit modernen Laufwerken, auf
   5 Sekunden heruntergesetzt werden (durch Setzen der
   sysctl-Variable kern.cam.scsi_delay). Die Variable sowie die
   Kerneloption verwenden fu:r die Zeitangabe Millisekunden und nicht
   Sekunden.

     --------------------------------------------------------------

  12.12.2. Soft Updates

   Mit tunefs(8) lassen sich Feineinstellungen an Dateisystemen
   vornehmen. Das Programm hat verschiedene Optionen, von denen hier
   nur Soft Updates betrachtet werden. Soft Updates werden wie folgt
   ein- und ausgeschaltet:

 # tunefs -n enable /filesystem
 # tunefs -n disable /filesystem

   Ein eingeha:ngtes Dateisystem kann nicht mit tunefs(8) modifiziert
   werden. Soft Updates werden am besten im Single-User Modus
   aktiviert, bevor Partitionen eingehangen sind.

   Durch Einsatz eines Zwischenspeichers wird die Performance im
   Bereich der Metadaten, vorwiegend beim Anlegen und Lo:schen von
   Dateien, gesteigert. Wir empfehlen, Soft Updates auf allen
   Dateisystemen zu aktivieren. Allerdings sollten Sie sich u:ber die
   zwei Nachteile von Soft Updates bewusst sein: Erstens garantieren
   Soft Updates zwar die Konsistenz der Daten im Fall eines
   Absturzes, aber es kann leicht passieren, dass das Dateisystem
   u:ber mehrere Sekunden oder gar eine Minute nicht synchronisiert
   wurde. Im Fall eines Absturzes verlieren Sie mit Soft Updates
   unter Umsta:nden mehr Daten als ohne. Zweitens verzo:gern Soft
   Updates die Freigabe von Datenblo:cken. Eine gro:ssere
   Aktualisierung eines fast vollen Dateisystems, wie dem
   Root-Dateisystem, z.B. wa:hrend eines make installworld, kann das
   Dateisystem vollaufen lassen. Dadurch wu:rde die Aktualisierung
   fehlschlagen.

     --------------------------------------------------------------

    12.12.2.1. Details u:ber Soft Updates

   Es gibt zwei klassische Herangehensweisen, wie man die Metadaten
   des Dateisystems (also Daten u:ber Dateien, wie inode Bereiche
   oder Verzeichniseintra:ge) aktualisiert auf die Platte
   zuru:ckschreibt:

   Das historisch u:bliche Verfahren waren synchrone Updates der
   Metadaten, d. h. wenn eine A:nderung an einem Verzeichnis no:tig
   war, wurde anschliessend gewartet, bis diese A:nderung
   tatsa:chlich auf die Platte zuru:ckgeschrieben worden war. Der
   Inhalt der Dateien wurde im "Buffer Cache" zwischengespeichert und
   asynchron irgendwann spa:ter auf die Platte geschrieben. Der
   Vorteil dieser Implementierung ist, dass sie sicher funktioniert.
   Wenn wa:hrend eines Updates ein Ausfall erfolgt, haben die
   Metadaten immer einen konsistenten Zustand. Eine Datei ist
   entweder komplett angelegt oder gar nicht. Wenn die Datenblo:cke
   einer Datei im Fall eines Absturzes noch nicht den Weg aus dem
   "Buffer Cache" auf die Platte gefunden haben, kann fsck(8) das
   Dateisystem reparieren, indem es die Dateila:nge einfach auf 0
   setzt. Ausserdem ist die Implementierung einfach und
   u:berschaubar. Der Nachteil ist, dass A:nderungen der Metadaten
   sehr langsam vor sich gehen. Ein rm -r beispielsweise fasst alle
   Dateien eines Verzeichnisses der Reihe nach an, aber jede dieser
   A:nderungen am Verzeichnis (Lo:schen einer Datei) wird einzeln
   synchron auf die Platte geschrieben. Gleiches beim Auspacken
   grosser Hierarchien (tar -x).

   Der zweite Fall sind asynchrone Metadaten-Updates. Das ist z. B.
   der Standard bei Linux/ext2fs oder die Variante mount -o async
   fu:r *BSD UFS. Man schickt die Updates der Metadaten einfach auch
   noch u:ber den "Buffer Cache", sie werden also zwischen die
   Updates der normalen Daten eingeschoben. Vorteil ist, dass man nun
   nicht mehr auf jeden Update warten muss, Operationen, die
   zahlreiche Metadaten a:ndern, werden also viel schneller. Auch
   hier ist die Implementierung sehr einfach und wenig anfa:llig fu:r
   Fehler. Nachteil ist, dass keinerlei Konsistenz des Dateisystems
   mehr gesichert ist. Wenn mitten in einer Operation, die viele
   Metadaten a:ndert, ein Ausfall erfolgt (Stromausfall, dru:cken des
   Reset-Tasters), dann ist das Dateisystem anschliessend in einem
   unbestimmten Zustand. Niemand kann genau sagen, was noch
   geschrieben worden ist und was nicht mehr; die Datenblo:cke einer
   Datei ko:nnen schon auf der Platte stehen, wa:hrend die inode
   Tabelle oder das zugeho:rige Verzeichnis nicht mehr aktualisiert
   worden ist. Man kann praktisch kein fsck mehr implementieren, das
   diesen Zustand wieder reparieren kann, da die dazu no:tigen
   Informationen einfach auf der Platte fehlen. Wenn ein Dateisystem
   derart bescha:digt worden ist, kann man es nur neu erzeugen
   (newfs(8)) und die Daten vom Backup zuru:ckspielen.

   Der historische Ausweg aus diesem Dilemma war ein dirty region
   logging (auch als Journalling bezeichnet, wenngleich dieser
   Begriff nicht immer gleich benutzt und manchmal auch fu:r andere
   Formen von Transaktionsprotokollen gebraucht wird). Man schreibt
   die Metadaten-Updates zwar synchron, aber nur in einen kleinen
   Plattenbereich, die logging area. Von da aus werden sie dann
   asynchron auf ihre eigentlichen Bereiche verteilt. Da die logging
   area ein kleines zusammenha:ngendes Stu:ckchen ist, haben die
   Schreibko:pfe der Platte bei massiven Operationen auf Metadaten
   keine allzu grossen Wege zuru:ckzulegen, so dass alles ein ganzes
   Stu:ck schneller geht als bei klassischen synchronen Updates. Die
   Komplexita:t der Implementierung ha:lt sich ebenfalls in Grenzen,
   somit auch die Anfa:lligkeit fu:r Fehler. Als Nachteil ergibt
   sich, dass Metadaten zweimal auf die Platte geschrieben werden
   mu:ssen (einmal in die logging area, einmal an die richtige
   Stelle), so dass das im Falle regula:rer Arbeit (also keine
   geha:uften Metadatenoperationen) eine "Pessimisierung" des Falls
   der synchronen Updates eintritt, es wird alles langsamer. Dafu:r
   hat man als Vorteil, dass im Falle eines Crashes der konsistente
   Zustand dadurch erzielbar ist, dass die angefangenen Operationen
   aus dem dirty region log entweder zu Ende ausgefu:hrt oder
   komplett verworfen werden, wodurch das Dateisystem schnell wieder
   zur Verfu:gung steht.

   Die Lo:sung von Kirk McKusick, dem Scho:pfer von Berkeley FFS,
   waren Soft Updates: die notwendigen Updates der Metadaten werden
   im Speicher gehalten und dann sortiert auf die Platte geschrieben
   ("ordered metadata updates"). Dadurch hat man den Effekt, dass im
   Falle massiver Metadaten-A:nderungen spa:tere Operationen die
   vorhergehenden, noch nicht auf die Platte geschriebenen Updates
   desselben Elements im Speicher "einholen". Alle Operationen, auf
   ein Verzeichnis beispielsweise, werden also in der Regel noch im
   Speicher abgewickelt, bevor der Update u:berhaupt auf die Platte
   geschrieben wird (die dazugeho:rigen Datenblo:cke werden
   natu:rlich auch so sortiert, dass sie nicht vor ihren Metadaten
   auf der Platte sind). Im Fall eines Absturzes hat man ein
   implizites "log rewind": alle Operationen, die noch nicht den Weg
   auf die Platte gefunden haben, sehen danach so aus, als ha:tten
   sie nie stattgefunden. Man hat so also den konsistenten Zustand
   von ca. 30 bis 60 Sekunden fru:her sichergestellt. Der verwendete
   Algorithmus garantiert dabei, dass alle tatsa:chlich benutzten
   Ressourcen auch in den entsprechenden Bitmaps (Block- und inode
   Tabellen) als belegt markiert sind. Der einzige Fehler, der
   auftreten kann, ist, dass Ressourcen noch als "belegt" markiert
   sind, die tatsa:chlich "frei" sind. fsck(8) erkennt dies und
   korrigiert diese nicht mehr belegten Ressourcen. Die Notwendigkeit
   eines Dateisystem-Checks darf aus diesem Grunde auch ignoriert und
   das Dateisystem mittels mount -f zwangsweise eingebunden werden.
   Um noch allozierte Ressourcen freizugeben muss spa:ter ein fsck(8)
   nachgeholt werden. Das ist dann auch die Idee des background fsck:
   beim Starten des Systems wird lediglich ein Schnappschuss des
   Filesystems gemacht, mit dem fsck(8) dann spa:ter arbeiten kann.
   Alle Dateisysteme du:rfen "unsauber" eingebunden werden und das
   System kann sofort in den Multiuser-Modus gehen. Danach wird ein
   Hintergrund-fsck fu:r die Dateisysteme gestartet, die dies
   beno:tigen, um mo:glicherweise irrtu:mlich belegte Ressourcen
   freizugeben. (Dateisysteme ohne Soft Updates beno:tigen natu:rlich
   immer noch den u:blichen (Vordergrund-)fsck, bevor sie eingebunden
   werden ko:nnen.)

   Der Vorteil ist, dass die Metadaten-Operationen beinahe so schnell
   ablaufen wie im asynchronen Fall (also durchaus auch schneller als
   beim "logging", das ja die Metadaten immer zweimal schreiben
   muss). Als Nachteil stehen dem die Komplexita:t des Codes (mit
   einer erho:hten Fehlerwahrscheinlichkeit in einem bezu:glich
   Datenverlust hoch sensiblen Bereich) und ein erho:hter
   Speicherverbrauch entgegen. Ausserdem muss man sich an einige
   Eigenheiten gewo:hnen: Nach einem Absturz ist ein etwas a:lterer
   Stand auf der Platte - statt einer leeren, aber bereits angelegten
   Datei (wie nach einem herko:mmlichen fsck Lauf) ist auf einem
   Dateisystem mit Soft Updates keine Spur der entsprechenden Datei
   mehr zu sehen, da weder die Metadaten noch der Dateiinhalt je auf
   die Platte geschrieben wurden. Weiterhin kann der Platz nach einem
   rm -r nicht sofort wieder als verfu:gbar markiert werden, sondern
   erst dann, wenn der Update auch auf die Platte vermittelt worden
   ist. Dies kann besonders dann Probleme bereiten, wenn grosse
   Datenmengen in einem Dateisystem ersetzt werden, das nicht
   genu:gend Platz hat, um alle Dateien zweimal unterzubringen.

     --------------------------------------------------------------

12.13. Einstellungen von Kernel Limits

     --------------------------------------------------------------

  12.13.1. Datei und Prozess Limits

    12.13.1.1. kern.maxfiles

   Abha:ngig von den Anforderungen Ihres Systems kann kern.maxfiles
   erho:ht oder erniedrigt werden. Die Variable legt die maximale
   Anzahl von Dateideskriptoren auf Ihrem System fest. Wenn die
   Dateideskriptoren aufgebraucht sind, werden Sie die Meldung "file:
   table is full" wiederholt im Puffer fu:r Systemmeldungen sehen.
   Den Inhalt des Puffers ko:nnen Sie sich mit dmesg anzeigen lassen.

   Jede offene Datei, jedes Socket und jede FIFO verbraucht einen
   Dateideskriptor. Auf "dicken" Produktionsservern ko:nnen leicht
   Tausende Dateideskriptoren beno:tigt werden, abha:ngig von der Art
   und Anzahl der gleichzeitig laufenden Dienste.

   In a:lteren FreeBSD-Versionen wurde die Voreinstellung von
   kern.maxfile aus der Kernelkonfigurationsoption maxusers bestimmt.
   kern.maxfiles wa:chst proportional mit dem Wert von maxusers. Wenn
   Sie einen angepassten Kernel kompilieren, empfiehlt es sich diese
   Option entsprechend der maximalen Benutzerzahl Ihres Systems
   einzustellen. Obwohl auf einer Produktionsmaschine vielleicht
   nicht 256 Benutzer gleichzeitig angemeldet sind, ko:nnen die
   beno:tigten Ressourcen a:hnlich denen eines grossen Webservers
   sein.

   Die Variable kern.maxusers wird beim Systemstart automatisch aus
   dem zur Verfu:gung stehenden Hauptspeicher bestimmt. Im laufenden
   Betrieb kann dieser Wert aus der (nur lesbaren) sysctl-Variable
   kern.maxusers ermittelt werden. Falls ein System fu:r diese
   Variable einen anderen Wert beno:tigt, kann der Wert u:ber den
   Loader angepasst werden. Ha:ufig verwendete Werte sind dabei 64,
   128, sowie 256. Es ist empfehlenswert, die Anzahl der
   Dateideskriptoren nicht auf einen Wert gro:sser 256 zu setzen, es
   sei denn, Sie beno:tigen wirklich eine riesige Anzahl von ihnen.
   Viele der von kern.maxusers auf einen Standardwert gesetzten
   Parameter ko:nnen beim Systemstart oder im laufenden Betrieb in
   der Datei /boot/loader.conf (sehen Sie sich dazu auch
   loader.conf(5) sowie die Datei /boot/defaults/loader.conf an) an
   Ihre Bedu:rfnisse angepasst werden, so wie es bereits an anderer
   Stelle dieses Dokuments beschrieben ist.

   A:ltere FreeBSD-Versionen setzen diesen Wert selbst, wenn Sie in
   der Konfigurationsdatei den Wert 0 [5] angeben. Wenn Sie den Wert
   selbst bestimmen wollen, sollten Sie maxusers mindestens auf 4
   setzen. Dies gilt insbesondere dann, wenn Sie beabsichtigen, das
   X Window-System zu benutzen oder Software zu kompilieren. Der
   Grund dafu:r ist, dass der wichtigste Wert, der durch maxusers
   bestimmt wird, die maximale Anzahl an Prozessen ist, die auf 20 +
   16 * maxusers gesetzt wird. Wenn Sie also maxusers auf 1 setzen,
   ko:nnen gleichzeitig nur 36 Prozesse laufen, von denen ungefa:hr
   18 schon beim Booten des Systems gestartet werden. Dazu kommen
   nochmals etwa 15 Prozesse beim Start des X Window-Systems. Selbst
   eine einfache Aufgabe wie das Lesen einer Manualpage beno:tigt
   neun Prozesse zum Filtern, Dekomprimieren und Betrachten der
   Datei. Fu:r die meisten Benutzer sollte es ausreichen, maxusers
   auf 64 zu setzen, womit 1044 gleichzeitige Prozesse zur Verfu:gung
   stehen. Wenn Sie allerdings den gefu:rchteten Fehler proc table
   full beim Start eines Programms oder auf einem Server mit einer
   grossen Benutzerzahl (wie ftp.FreeBSD.org) sehen, dann sollten Sie
   den Wert nochmals erho:hen und den Kernel neu bauen.

     Anmerkung: Die Anzahl der Benutzer, die sich auf einem Rechner
     anmelden kann, wird durch maxusers nicht begrenzt. Der Wert
     dieser Variablen legt neben der mo:glichen Anzahl der Prozesse
     eines Benutzers weitere sinnvolle Gro:ssen fu:r bestimmte
     Systemtabellen fest.

     --------------------------------------------------------------

    12.13.1.2. kern.ipc.somaxconn

   Die Variable kern.ipc.somaxconn beschra:nkt die Gro:sse der
   Warteschlange (Listen-Queue) fu:r neue TCP-Verbindungen. Der
   Vorgabewert von 128 ist normalerweise zu klein, um neue
   Verbindungen auf einem stark ausgelasteten Webserver zuverla:ssig
   zu handhaben. Auf solchen Servern sollte der Wert auf 1024 oder
   ho:her gesetzt werden. Ein Dienst (z.B. sendmail(8), oder Apache)
   kann die Gro:sse der Queue selbst einschra:nken. Oft gibt es die
   Mo:glichkeit, die Gro:sse der Listen-Queue in einer
   Konfigurationsdatei einzustellen. Eine grosse Listen-Queue
   u:bersteht vielleicht auch einen Denial of Service Angriff (DoS).

     --------------------------------------------------------------

  12.13.2. Netzwerk Limits

   Die Kerneloption NMBCLUSTERS schreibt die Anzahl der
   Netzwerkpuffer (Mbufs) fest, die das System besitzt. Eine zu
   geringe Anzahl Mbufs auf einem Server mit viel Netzwerkverkehr
   verringert die Leistung von FreeBSD. Jeder Mbuf-Cluster nimmt
   ungefa:hr 2 kB Speicher in Anspruch, so dass ein Wert von 1024
   insgesamt 2 Megabyte Speicher fu:r Netzwerkpuffer im System
   reserviert. Wie viele Cluster beno:tigt werden, la:sst sich durch
   eine einfache Berechnung herausfinden. Wenn Sie einen Webserver
   besitzen, der maximal 1000 gleichzeitige Verbindungen servieren
   soll und jede der Verbindungen je einen 16 kB grossen Puffer zum
   Senden und Empfangen braucht, brauchen Sie ungefa:hr 32 MB
   Speicher fu:r Netzwerkpuffer. Als Daumenregel verdoppeln Sie diese
   Zahl, so dass sich fu:r NMBCLUSTERS der Wert 2x32 MB / 2 kB =
   32768 ergibt. Fu:r Maschinen mit viel Speicher sollten Werte
   zwischen 4096 und 32768 genommen werden. Sie ko:nnen diesen Wert
   nicht willku:rlich erho:hen, da dies bereits zu einem Absturz beim
   Systemstart fu:hren kann. Mit der Option -m von netstat(1) ko:nnen
   Sie den Gebrauch der Netzwerkpuffer kontrollieren.

   Die Netzwerkpuffer ko:nnen beim Systemstart mit der
   Loader-Variablen kern.ipc.nmbclusters eingestellt werden. Nur auf
   a:lteren FreeBSD-Systemen mu:ssen Sie die Kerneloption NMBCLUSTERS
   verwenden.

   Die Anzahl der sendfile(2) Puffer muss auf ausgelasteten Servern,
   die den Systemaufruf sendfile(2) oft verwenden, vielleicht erho:ht
   werden. Dazu ko:nnen Sie die Kerneloption NSFBUFS verwenden oder
   die Anzahl der Puffer in /boot/loader.conf (siehe loader(8))
   setzen. Die Puffer sollten erho:ht werden, wenn Sie Prozesse im
   Zustand sfbufa sehen. Die schreibgeschu:tzte sysctl-Variable
   kern.ipc.nsfbufs zeigt die Anzahl eingerichteten Puffer im Kernel.
   Der Wert dieser Variablen wird normalerweise von kern.maxusers
   bestimmt. Manchmal muss die Pufferanzahl jedoch manuell
   eingestellt werden.

     Wichtig: Auch wenn ein Socket nicht blockierend angelegt wurde,
     kann der Aufruf von sendfile(2) blockieren, um auf freie struct
     sf_buf Puffer zu warten.

     --------------------------------------------------------------

    12.13.2.1. net.inet.ip.portrange.*

   Die sysctl-Variable net.inet.ip.portrange.* legt die Portnummern
   fu:r TCP- und UDP-Sockets fest. Es gibt drei Bereiche: den
   niedrigen Bereich, den normalen Bereich und den hohen Bereich. Die
   meisten Netzprogramme benutzen den normalen Bereich. Dieser
   Bereich umfasst in der Voreinstellung die Portnummern 500 bis 5000
   und wird durch die Variablen net.inet.ip.portrange.first und
   net.inet.ip.portrange.last festgelegt. Die festgelegten Bereiche
   fu:r Portnummern werden von ausgehenden Verbindungen benutzt.
   Unter bestimmten Umsta:nden, beispielsweise auf stark
   ausgelasteten Proxy-Servern, sind alle Portnummern fu:r ausgehende
   Verbindungen belegt. Bereiche fu:r Portnummern spielen auf Servern
   keine Rolle, die hauptsa:chlich eingehende Verbindungen
   verarbeiten (wie ein normaler Webserver) oder nur eine begrenzte
   Anzahl ausgehender Verbindungen o:ffnen (beispielsweise ein
   Mail-Relay). Wenn Sie keine freien Portnummern mehr haben, sollten
   Sie die Variable net.inet.ip.portrange.last langsam erho:hen. Ein
   Wert von 10000, 20000 oder 30000 ist angemessen. Beachten Sie auch
   eine vorhandene Firewall, wenn Sie die Bereiche fu:r Portnummern
   a:ndern. Einige Firewalls sperren grosse Bereiche (normalerweise
   aus den kleinen Portnummern) und erwarten, dass hohe Portnummern
   fu:r ausgehende Verbindungen verwendet werden. Daher kann es
   erforderlich sein, den Wert von net.inet.ip.portrange.first zu
   erho:hen.

     --------------------------------------------------------------

    12.13.2.2. TCP Bandwidth Delay Product Begrenzung

   Die TCP Bandwidth Delay Product Begrenzung gleicht TCP/Vegas von
   NetBSD. Die Begrenzung wird aktiviert, indem Sie die
   sysctl-Variable net.inet.tcp.inflight.enable auf den Wert 1
   setzen. Das System wird dann versuchen, fu:r jede Verbindung, das
   Produkt aus der U:bertragungsrate und der Verzo:gerungszeit zu
   bestimmen. Dieses Produkt begrenzt die Datenmenge, die fu:r einen
   optimales Durchsatz zwischengespeichert werden muss.

   Diese Begrenzung ist nu:tzlich, wenn Sie Daten u:ber Verbindungen
   mit einem hohen Produkt aus U:bertragungsrate und
   Verzo:gerungszeit wie Modems, Gigabit-Ethernet oder schnellen
   WANs, zur Verfu:gung stellen. Insbesondere wirkt sich die
   Begrenzung aus, wenn die Verbindung die TCP-Option Window-scaling
   verwendet oder grosse Sende-Fenster (send window) benutzt.
   Schalten Sie die Debug-Meldungen aus, wenn Sie die Begrenzung
   aktiviert haben. Dazu setzen Sie die Variable
   net.inet.tcp.inflight.debug auf 0. Auf Produktions-Systemen
   sollten Sie zudem die Variable net.inet.tcp.inflight.min
   mindestens auf den Wert 6144 setzen. Allerdings kann ein zu hoher
   Wert, abha:ngig von der Verbindung, die Begrenzungsfunktion
   unwirksam machen. Die Begrenzung reduziert die Datenmenge in den
   Queues von Routern und Switches, sowie die Datenmenge in der Queue
   der lokalen Netzwerkkarte. Die Verzo:gerungszeit (Round Trip Time)
   fu:r interaktive Anwendungen sinkt, da weniger Pakete
   zwischengespeichert werden. Dies gilt besonders fu:r Verbindungen
   u:ber langsame Modems. Die Begrenzung wirkt sich allerdings nur
   auf das Versenden von Daten aus (Uploads, Server). Auf den Empfang
   von Daten (Downloads) hat die Begrenzung keine Auswirkungen.

   Die Variable net.inet.tcp.inflight.stab sollte nicht angepasst
   werden. Der Vorgabewert der Variablen betra:gt 20, das heisst es
   werden maximal zwei Pakete zu dem Produkt aus U:bertragungsrate
   und Verzo:gerungszeit addiert. Dies stabilisiert den Algorithmus
   und verbessert die Reaktionszeit auf Vera:nderungen. Bei langsamen
   Verbindungen ko:nnen sich aber die Laufzeiten der Pakete erho:hen
   (ohne diesen Algorithmus wa:ren sie allerdings noch ho:her). In
   solchen Fa:llen ko:nnen Sie versuchen, den Wert der Variablen auf
   15, 10 oder 5 zu erniedrigen. Gleichzeitig mu:ssen Sie vielleicht
   auch net.inet.tcp.inflight.min auf einen kleineren Wert
   (beispielsweise 3500) setzen. A:ndern Sie diese Variablen nur ab,
   wenn Sie keine anderen Mo:glichkeiten mehr haben.

     --------------------------------------------------------------

  12.13.3. Virtueller Speicher (Virtual Memory)

    12.13.3.1. kern.maxvnodes

   Ein vnode ist die interne Darstellung einer Datei oder eines
   Verzeichnisses. Die Erho:hung der Anzahl der fu:r das
   Betriebssystem verfu:gbaren vnodes verringert also die Schreib-
   und Lesezugriffe auf Ihre Festplatte. vnodes werden im Normalfall
   vom Betriebssystem automatisch vergeben und mu:ssen nicht von
   Ihnen angepasst werden. In einigen Fa:llen stellt der Zugriff auf
   eine Platte allerdings einen Flaschenhals dar, daher sollten Sie
   in diesem Fall die Anzahl der mo:glichen vnodes erho:hen, um
   dieses Problem zu beheben. Beachten Sie dabei aber die Gro:sse des
   inaktiven und freien Hauptspeichers.

   Um die Anzahl der derzeit verwendeten vnodes zu sehen, geben Sie
   Folgendes ein:

 # sysctl vfs.numvnodes
 vfs.numvnodes: 91349

   Die maximal mo:gliche Anzahl der vnodes erhalten Sie durch die
   Eingabe von:

 # sysctl kern.maxvnodes
 kern.maxvnodes: 100000

   Wenn sich die Anzahl der genutzten vnodes dem maximal mo:glichen
   Wert na:hert, sollten Sie den Wert kern.maxvnodes zuerst um etwa
   1.000 erho:hen. Beobachten Sie danach die Anzahl der vom System
   genutzten vfs.numvnodes. Na:hert sich der Wert wiederum dem
   definierten Maximum, mu:ssen Sie kern.maxvnodes nochmals erho:hen.
   Sie sollten nun eine A:nderung Ihres Speicherverbrauches (etwa
   u:ber top(1)) registrieren ko:nnen und u:ber mehr aktiven Speicher
   verfu:gen.

     --------------------------------------------------------------

12.14. Hinzufu:gen von Swap-Bereichen

   Egal wie vorausschauend Sie planen, manchmal entspricht ein System
   einfach nicht Ihren Erwartungen. Es ist leicht, mehr Swap-Bereiche
   hinzuzufu:gen. Dazu stehen Ihnen drei Wege offen: Sie ko:nnen eine
   neue Platte einbauen, den Swap-Bereich u:ber NFS ansprechen oder
   eine Swap-Datei auf einer existierenden Partition einrichten.

   Fu:r Informationen zur Verschlu:sselung von Swap-Partitionen, zu
   den dabei mo:glichen Optionen sowie zu den Gru:nden fu:r eine
   Verschlu:sselung des Auslagerungsspeichers lesen Sie bitte
   Abschnitt 19.17 des Handbuchs.

     --------------------------------------------------------------

  12.14.1. Swap auf einer neuen Festplatte

   Der einfachste Weg, zusa:tzlich einen Swap-Bereich einzurichten,
   ist der Einbau einer neuen Platte, die Sie sowieso gebrauchen
   ko:nnen. Die Anordnung von Swap-Bereichen wird in Abschnitt 12.2
   des Handbuchs besprochen.

     --------------------------------------------------------------

  12.14.2. Swap-Bereiche u:ber NFS

   Swap-Bereiche u:ber NFS sollten Sie nur dann einsetzen, wenn Sie
   u:ber keine lokale Platte verfu:gen, da es durch die zur
   Verfu:gung stehende Bandbreite limitiert wird und ausserdem den
   NFS-Server zusa:tzlich belastet.

     --------------------------------------------------------------

  12.14.3. Swap-Dateien

   Sie ko:nnen eine Datei festgelegter Gro:sse als Swap-Bereich
   nutzen. Im folgenden Beispiel werden wir eine 64 MB grosse Datei
   mit Namen /usr/swap0 benutzen, Sie ko:nnen natu:rlich einen
   beliebigen Namen fu:r den Swap-Bereich benutzen.

   Beispiel 12-1. Erstellen einer Swap-Datei

    1. Der GENERIC-Kernel unterstu:tzt bereits RAM-Disks (md(4)),
       welche fu:r diese Aktion beno:tigt werden. Wenn Sie einen
       eigenen Kernel erstellen, vergewissern Sie sicher, dass die
       folgende Zeile in ihrer Kernel-Konfigurationsdatei enthalten
       ist:

 device   md

       Informationen, wie man einen eigenen Kernel erstellen kann,
       erhalten Sie in Kapitel 9.

    2. Legen Sie die Swap-Datei /usr/swap0 an:

 # dd if=/dev/zero of=/usr/swap0 bs=1024k count=64

    3. Setzen Sie die richtigen Berechtigungen fu:r /usr/swap0:

 # chmod 0600 /usr/swap0

    4. Aktivieren Sie die Swap-Datei /etc/rc.conf:

 swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired.

    5. Um die Swap-Datei zu aktivieren, fu:hren Sie entweder einen
       Neustart durch oder geben das folgende Kommando ein:

 # mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0

     --------------------------------------------------------------

12.15. Energie- und Ressourcenverwaltung

   Verfasst von Hiten Pandya und Tom Rhodes.

   Es ist wichtig, Hardware effizient einzusetzen. Vor der
   Einfu:hrung des Advanced Configuration and Power Interface (ACPI)
   konnten Stromverbrauch und Wa:rmeabgabe eines Systems nur schlecht
   von Betriebssystemen gesteuert werden. Die Hardware wurde vom BIOS
   gesteuert, was die Kontrolle der Energieverwaltung fu:r den
   Anwender erschwerte. Das Advanced Power Management (APM) erlaubte
   es lediglich, einige wenige Funktionen zu steuern, obwohl die
   U:berwachung von Energie- und Ressourcenverbrauch zu den
   wichtigsten Aufgaben eines Betriebssystems geho:rt, um auf
   verschiedene Ereignisse, beispielsweise einen unerwarteten
   Temperaturanstieg, reagieren ko:nnen.

   Dieser Abschnitt erkla:rt das Advanced Configuration and Power
   Interface (ACPI).

     --------------------------------------------------------------

  12.15.1. Was ist ACPI?

   Advanced Configuration and Power Interface (ACPI) ist ein Standard
   verschiedener Hersteller, der die Verwaltung von Hardware und
   Energiesparfunktionen festlegt. Die ACPI-Funktionen ko:nnen von
   einem Betriebssystem gesteuert werden. Der Vorga:nger des ACPI,
   "Advanced Power Management" (APM), erwies sich in modernen
   Systemen als unzureichend.

     --------------------------------------------------------------

  12.15.2. Ma:ngel des Advanced Power Managements (APM)

   Das Advanced Power Management (APM) steuert den Energieverbrauch
   eines Systems auf Basis der Systemaktivita:t. Das APM-BIOS wird
   von dem Hersteller des Systems zur Verfu:gung gestellt und ist auf
   die spezielle Hardware angepasst. Der APM-Treiber des
   Betriebssystems greift auf das APM Software Interface zu, das den
   Energieverbrauch regelt. APM findet sich in der Regel nur noch in
   Systemen, die vor 2001 produziert wurden.

   Das APM hat hauptsa:chlich vier Probleme. Erstens la:uft die
   Energieverwaltung unabha:ngig vom Betriebssystem in einem
   (herstellerspezifischen) BIOS. Beispielsweise kann das APM-BIOS
   die Festplatten nach einer konfigurierbaren Zeit ohne die
   Zustimmung des Betriebssystems herunterfahren. Zweitens befindet
   sich die ganze APM-Logik im BIOS; das Betriebssystem hat gar keine
   APM-Komponenten. Bei Problemen mit dem APM-BIOS muss das Flash-ROM
   aktualisiert werden. Diese Prozedur ist gefa:hrlich, da sie im
   Fehlerfall das System unbrauchbar machen kann. Zum Dritten ist APM
   eine Technik, die herstellerspezifisch ist und nicht koordiniert
   wird. Fehler im BIOS eines Herstellers werden nicht unbedingt im
   BIOS anderer Hersteller korrigiert. Das letzte Problem ist, dass
   im APM-BIOS nicht genu:gend Platz vorhanden ist, um eine
   durchdachte oder eine auf den Zweck der Maschine zugeschnittene
   Energieverwaltung zu implementieren.

   Das Plug and Play BIOS (PNPBIOS) war ebenfalls unzureichend. Das
   PNPBIOS verwendet eine 16-Bit-Technik. Damit das Betriebssystem
   das PNPBIOS ansprechen kann, muss es in einer 16-Bit-Emulation
   laufen.

   Der APM-Treiber von FreeBSD ist in der Hilfeseite apm(4)
   beschrieben.

     --------------------------------------------------------------

  12.15.3. Konfiguration des ACPI

   Das Modul acpi.ko wird standardma:ssig beim Systemstart vom
   loader(8) geladen und sollte daher nicht fest in den Kernel
   eingebunden werden. Dadurch kann acpi.ko ohne einen Neubau des
   Kernels ersetzt werden und das Modul ist leichter zu testen. Wenn
   Sie in der Ausgabe von dmesg(8) das Wort ACPI sehen, ist das Modul
   geladen worden. Das ACPI-Modul im laufenden Betrieb zu laden,
   fu:hrt oft nicht zum gewu:nschten Ergebnis. Treten bei Ihrem
   System Probleme auf, ko:nnen Sie ACPI auch komplett deaktivieren.
   Dazu definieren Sie die Variable hint.acpi.0.disabled="1" in der
   Datei /boot/loader.conf. Alternativ ko:nnen Sie die Variable auch
   am loader(8)-Prompt eingeben. Das Modul kann im laufenden Betrieb
   nicht entfernt werden, da es zur Kommunikation mit der Hardware
   verwendet wird.

     Anmerkung: ACPI und APM ko:nnen nicht zusammen verwendet werden.
     Das zuletzt geladene Modul beendet sich, sobald es bemerkt, dass
     das andere Modul geladen ist.

   Mit acpiconf(8) ko:nnen Sie das System in einen Ruhemodus (sleep
   mode) versetzen. Es gibt verschiedene Modi (von 1 bis 5), die Sie
   auf der Kommandozeile mit -s angeben ko:nnen. Fu:r die meisten
   Anwender sind die Modi 1 und 3 vo:llig ausreichend. Der Modus 5
   schaltet das System aus (Soft-off) und entspricht dem folgenden
   Befehl:

 # halt -p

   Verschiedene Optionen ko:nnen als sysctl(8)-Variablen gesetzt
   werden. Lesen Sie dazu die Manualpages zu acpi(4) sowie
   acpiconf(8).

     --------------------------------------------------------------

12.16. ACPI-Fehlersuche

   Verfasst von Nate Lawson. Mit Beitra:gen von Peter Schultz und Tom
   Rhodes.

   ACPI ist ein ga:nzlich neuer Weg, um Gera:te aufzufinden und deren
   Stromverbrauch zu regulieren. Weiterhin bietet ACPI einen
   einheitlichen Zugriff auf Gera:te, die vorher vom BIOS verwaltet
   wurden. Es werden zwar Fortschritte gemacht, dass ACPI auf allen
   Systemen la:uft, doch tauchen immer wieder Fehler auf:
   fehlerhafter Bytecode der ACPI-Machine-Language (AML) einiger
   Systemplatinen, ein unvollsta:ndiges FreeBSD-Kernel-Subsystem oder
   Fehler im ACPI-CA-Interpreter von Intel.

   Dieser Abschnitt hilft Ihnen, zusammen mit den Betreuern des
   FreeBSD-ACPI-Subsystems, Fehlerquellen zu finden und Fehler zu
   beseitigen. Danke, dass Sie diesen Abschnitt lesen; hoffentlich
   hilft er, Ihre Systemprobleme zu lo:sen.

     --------------------------------------------------------------

  12.16.1. Fehlerberichte einreichen

     Anmerkung: Bevor Sie einen Fehlerbericht einreichen, stellen Sie
     bitte sicher, dass Ihr BIOS und die Firmware Ihres Controllers
     aktuell sind.

   Wenn Sie sofort einen Fehlerbericht einsenden wollen, schicken Sie
   bitte die folgenden Informationen an die Mailingliste
   freebsd-acpi:

     * Beschreiben Sie den Fehler und alle Umsta:nde, unter denen der
       Fehler auftritt. Geben Sie ebenfalls den Typ und das Modell
       Ihres Systems an. Wenn Sie einen neuen Fehler entdeckt haben,
       versuchen Sie mo:glichst genau zu beschreiben, wann der Fehler
       das erste Mal aufgetreten ist.

     * Die Ausgabe von dmesg(8) nach der Eingabe von boot -v. Geben
       Sie auch alle Fehlermeldungen an, die erscheinen, wenn Sie den
       Fehler provozieren.

     * Die Ausgabe von dmesg(8) nach der Eingabe von boot -v und mit
       deaktiviertem ACPI, wenn das Problem ohne ACPI nicht auftritt.

     * Die Ausgabe von sysctl hw.acpi. Dieses Kommando zeigt die vom
       System unterstu:tzten ACPI-Funktionen an.

     * Die URL, unter der die ACPI-Source-Language (ASL) liegt.
       Schicken Sie bitte nicht die ASL an die Mailingliste, da die
       ASL sehr gross sein kann. Eine Kopie der ASL erstellen Sie mit
       dem nachstehenden Befehl:

 # acpidump -td > name-system.asl

       Setzen Sie bitte fu:r name den Namen Ihres Kontos und fu:r
       system den Hersteller und das Modell Ihres Systems ein. Zum
       Beispiel: njl-FooCo6000.asl.

   Obwohl die meisten Entwickler die Mailingliste freebsd-current
   lesen, sollten Sie Fehlerberichte an die Liste freebsd-acpi
   schicken. Seien Sie bitte geduldig; wir haben alle Arbeit
   ausserhalb des Projekts. Wenn der Fehler nicht offensichtlich ist,
   bitten wir Sie vielleicht, einen offiziellen Fehlerbericht (PR)
   mit send-pr(1) einzusenden. Geben Sie im Fehlerbericht bitte
   dieselben Informationen wie oben an. Mithilfe der PRs verfolgen
   und lo:sen wir Probleme. Senden Sie bitte keinen PR ein, ohne
   vorher den Fehlerbericht an die Liste freebsd-acpi zu senden. Wir
   benutzen die PRs als Erinnerung an bestehende Probleme und nicht
   zum Sammeln aller Probleme. Es kann sein, dass der Fehler schon
   von jemand anderem gemeldet wurde.

     --------------------------------------------------------------

  12.16.2. ACPI-Grundlagen

   ACPI gibt es in allen modernen Rechnern der ia32- (x86), ia64-
   (Itanium) und amd64- (AMD) Architektur. Der vollsta:ndige Standard
   bietet Funktionen zur Steuerung und Verwaltung der CPU-Leistung,
   der Stromversorgung, von Wa:rmebereichen, Batterien, eingebetteten
   Controllern und Bussen. Auf den meisten Systemen wird nicht der
   vollsta:ndige Standard implementiert. Arbeitsplatzrechner besitzen
   meist nur Funktionen zur Verwaltung der Busse, wa:hrend Notebooks
   Funktionen zur Temperaturkontrolle und Ruhezusta:nde besitzen.

   Ein ACPI konformes System besitzt verschiedene Komponenten. Die
   BIOS- und Chipsatz-Hersteller stellen mehrere statische Tabellen
   bereit (zum Beispiel die Fixed-ACPI-Description-Table, FADT). Die
   Tabellen enthalten beispielsweise die mit SMP-Systemen benutzte
   APIC-Map, Konfigurationsregister und einfache Konfigurationen.
   Zusa:tzlich gibt es die Differentiated-System-Description-Table
   (DSDT), die Bytecode entha:lt. Die Tabelle ordnet Gera:te und
   Methoden in einem baumartigen Namensraum an.

   Ein ACPI-Treiber muss die statischen Tabellen einlesen, einen
   Interpreter fu:r den Bytecode bereitstellen und die Gera:tetreiber
   im Kernel so modifizieren, dass sie mit dem ACPI-Subsystem
   kommunizieren. Fu:r FreeBSD, Linux und NetBSD hat Intel den
   Interpreter ACPI-CA, zur Verfu:gung gestellt. Der Quelltext zu
   ACPI-CA befindet sich im Verzeichnis src/sys/contrib/dev/acpica.
   Die Schnittstelle von ACPI-CA zu FreeBSD befindet sich unter
   src/sys/dev/acpica/Osd. Treiber, die verschiedene ACPI-Gera:te
   implementieren, befinden sich im Verzeichnis src/sys/dev/acpica.

     --------------------------------------------------------------

  12.16.3. Ha:ufige Probleme

   Damit ACPI richtig funktioniert, mu:ssen alle Teile funktionieren.
   Im Folgenden finden Sie eine Liste mit Problemen und mo:glichen
   Umgehungen oder Fehlerbehebungen. Die Liste ist nach der
   Ha:ufigkeit, mit der die Probleme auftreten, sortiert.

     --------------------------------------------------------------

    12.16.3.1. Mausprobleme

   Es kann vorkommen, dass die Maus nicht mehr funktioniert, wenn Sie
   nach einem Suspend weiterarbeiten wollen. Ist dies bei Ihnen der
   Fall, reicht es meistens aus, den Eintrag
   hint.psm.0.flags="0x3000" in Ihre /boot/loader.conf aufzunehmen.
   Besteht das Problem weiterhin, sollten Sie einen Fehlerbericht an
   das FreeBSD Project senden.

     --------------------------------------------------------------

    12.16.3.2. Suspend/Resume

   ACPI kennt drei Suspend-to-RAM-Zusta:nde (STR): S1-S3. Es gibt
   einen Suspend-to-Disk-Zustand: S4. Der Zustand S5 wird Soft-Off
   genannt. In diesem Zustand befindet sich ein Rechner, wenn die
   Stromversorgung angeschlossen ist, der Rechner aber nicht
   hochgefahren ist. Der Zustand S4 kann auf zwei Arten implementiert
   werden: S4BIOS und S4OS. Im ersten Fall wird der
   Suspend-to-Disk-Zustand durch das BIOS hergestellt im zweiten Fall
   alleine durch das Betriebssystem.

     Anmerkung: Die Suspend-Zusta:nde sind Ruhezusta:nde, in denen
     der Rechner weniger Energie als im Normalbetrieb beno:tigt.
     Resume bezeichnet die Ru:ckkehr zum Normalbetrieb.

   Die Suspend-Zusta:nde ko:nnen Sie mit dem Kommando sysctl hw.acpi
   ermitteln. Das Folgende ko:nnte beispielsweise ausgegeben werden:

 hw.acpi.supported_sleep_state: S3 S4 S5
 hw.acpi.s4bios: 0

   Diese Ausgabe besagt, dass mit dem Befehl acpiconf -s die
   Zusta:nde S3, S4OS und S5 eingestellt werden ko:nnen. Ha:tte
   s4bios den Wert 1, ga:be es den Zustand S4BIOS anstelle von S4OS.

   Wenn Sie die Suspend- und Resume-Funktionen testen, fangen Sie mit
   dem S1-Zustand an, wenn er angeboten wird. Dieser Zustand wird am
   ehesten funktionieren, da der Zustand wenig Treiber-Unterstu:tzung
   beno:tigt. Der Zustand S2 ist a:hnlich wie S1, allerdings hat ihn
   noch niemand implementiert. Als na:chstes sollten Sie den Zustand
   S3 ausprobieren. Dies ist der tiefste STR-Schlafzustand. Dieser
   Zustand ist auf massive Treiber-Unterstu:tzung angewiesen, um die
   Gera:te wieder richtig zu initialisieren. Wenn Sie Probleme mit
   diesem Zustand haben, ko:nnen Sie die Mailingliste freebsd-acpi
   anschreiben. Erwarten Sie allerdings nicht zu viel: Es gibt viele
   Treiber und Gera:te, an denen noch gearbeitet und getestet wird.

   Ein ha:ufiges Problem mit Suspend/Resume ist, dass viele
   Gera:tetreiber ihre Firmware, Register und Gera:tespeicher nicht
   korrekt speichern, wiederherstellen und/oder reinitialisieren. Um
   dieses Problem zu lo:sen, sollten Sie zuerst die folgenden Befehle
   ausfu:hren:

 # sysctl debug.bootverbose=1
 # sysctl debug.acpi.suspend_bounce=1
 # acpiconf -s 3

   Dieser Test emuliert einen Suspend/Resume-Zyklus fu:r alle Gera:te
   (ohne dass diese dabei wirklich in den Status S3 wechseln). In
   vielen Fa:llen reicht dies bereits aus, um Probleme
   (beispielsweise verlorener Firmware-Status, Timeouts, ha:ngende
   Gera:te) zu entdecken. Beachten Sie dabei, dass das Gera:t bei
   diesem Test nicht wirklich in den Status S3 wechseln. Es kann also
   vorkommen, dass manche Gera:te weiterhin mit Strom versorgt werden
   (dies wa:re bei einem wirklichen Wechsel in den Status S3 NICHT
   mo:glich. Andere Gera:te werden normal weiterarbeiten, weil sie
   u:ber keine Suspend/Resume-Funktionen verfu:gen.

   Schwierigere Fa:lle ko:nnen den Einsatz zusa:tzlicher Hardware
   (beispielsweise serielle Ports/Kabel fu:r die Verbindung u:ber
   eine serielle Konsole oder Firewire-Ports/Kabel fu:r dcons(4))
   sowie Kenntnisse im Bereich Kerneldebugging erforderlich machen.

   Um das Problem einzugrenzen, entfernen Sie soviele Treiber wie
   mo:glich aus dem Kernel. Sie ko:nnen das Problem isolieren, indem
   Sie einen Treiber nach dem anderen laden, bis der Fehler wieder
   auftritt. Typischerweise verursachen bina:re Treiber wie
   nvidia.ko, X11-Grafiktreiber und USB-Treiber die meisten Fehler,
   hingegen laufen Ethernet-Treiber fu:r gewo:hnlich sehr
   zuverla:ssig. Wenn ein Treiber zuverla:ssig geladen und entfernt
   werden kann, ko:nnen Sie den Vorgang automatisieren, indem Sie die
   entsprechenden Kommandos in die Dateien /etc/rc.suspend und
   /etc/rc.resume einfu:gen. In den Dateien finden Sie ein
   deaktiviertes Beispiel, das einen Treiber la:dt und wieder
   entfernt. Ist die Bildschirmanzeige bei der Wiederaufnahme des
   Betriebs gesto:rt, setzen Sie bitte die Variable
   hw.acpi.reset_video auf 0. Versuchen Sie auch, die Variable
   hw.acpi.sleep_delay auf ku:rzere Zeitspannen zu setzen.

   Die Suspend- und Resume-Funktionen ko:nnen Sie auch auf einer
   neuen Linux-Distribution mit ACPI testen. Wenn es mit Linux
   funktioniert, liegt das Problem wahrscheinlich bei einem
   FreeBSD-Treiber. Es hilft uns, das Problem zu lo:sen, wenn Sie
   feststellen ko:nnen, welcher Treiber das Problem verursacht.
   Beachten Sie bitte, dass die ACPI-Entwickler normalerweise keine
   anderen Treiber pflegen (beispielsweise Sound- oder ATA-Treiber).
   Es ist wohl das beste, die Ergebnisse der Fehlersuche an die
   Mailingliste freebsd-current und den Entwickler des Treibers zu
   schicken. Wenn Ihnen danach ist, versuchen Sie, den Fehler in der
   Resume-Funktion zu finden, indem Sie einige printf(3)-Anweisungen
   in den Code des fehlerhaften Treibers einfu:gen.

   Schliesslich ko:nnen Sie ACPI noch abschalten und stattdessen APM
   verwenden. Wenn die Suspend- und Resume-Funktionen mit APM
   funktionieren, sollten Sie vielleicht besser APM verwenden
   (insbesondere mit alter Hardware von vor dem Jahr 2000). Die
   Hersteller beno:tigten einige Zeit, um ACPI korrekt zu
   implementieren, daher gibt es mit a:lterer Hardware oft
   ACPI-Probleme.

     --------------------------------------------------------------

    12.16.3.3. Tempora:re oder permanente Systemha:nger

   Die meisten Systemha:nger entstehen durch verlorene Interrupts
   oder einen Interrupt-Sturm. Probleme werden verursacht durch die
   Art, in der das BIOS Interrupts vor dem Systemstart konfiguriert,
   durch eine fehlerhafte APIC-Tabelle und durch die Zustellung des
   System-Control-Interrupts (SCI).

   Anhand der Ausgabe des Befehls vmstat -i ko:nnen Sie verlorene
   Interrupts von einem Interrupt-Sturm unterscheiden. Untersuchen
   Sie die Ausgabezeile, die acpi0 entha:lt. Ein Interrupt-Sturm
   liegt vor, wenn der Za:hler o:fter als ein paar Mal pro Sekunde
   hochgeza:hlt wird. Wenn sich das System aufgehangen hat, versuchen
   Sie mit der Tastenkombination Ctrl+Alt+Esc in den Debugger DDB zu
   gelangen. Geben Sie dort den Befehl show interrupts ein.

   Wenn Sie Interrupt-Probleme haben, ist es vorerst wohl am besten,
   APIC zu deaktivieren. Tragen Sie dazu die Zeile
   hint.apic.0.disabled="1" in loader.conf ein.

     --------------------------------------------------------------

    12.16.3.4. Abstu:rze (Panics)

   Panics werden so schnell wie mo:glich behoben; mit ACPI kommt es
   aber selten dazu. Zuerst sollten Sie die Panic reproduzieren und
   dann versuchen einen backtrace (eine Ru:ckverfolgung der
   Funktionsaufrufe) zu erstellen. Richten Sie dazu den DDB u:ber die
   serielle Schnittstelle (siehe Abschnitt 27.6.5.3) oder eine
   gesonderte dump(8)-Partition ein. In DDB ko:nnen Sie den backtrace
   mit dem Kommando tr erstellen. Falls Sie den backtrace vom
   Bildschirm abschreiben mu:ssen, schreiben Sie bitte mindestens die
   fu:nf ersten und die fu:nf letzten Zeile der Ausgabe auf.

   Versuchen Sie anschliessend, das Problem durch einen Neustart ohne
   ACPI zu beseitigen. Wenn das funktioniert hat, ko:nnen Sie
   versuchen, das verantwortliche ACPI-Subsystem durch Setzen der
   Variablen debug.acpi.disable herauszufinden. Die Hilfeseite
   acpi(4) entha:lt dazu einige Beispiele.

     --------------------------------------------------------------

    12.16.3.5. Nach einem Suspend oder einem Stopp startet das System
    wieder

   Setzen Sie zuerst in loader.conf(5) die Variable
   hw.acpi.disable_on_poweroff auf 0. Damit wird verhindert, dass
   ACPI wa:hrend des Systemabschlusses die Bearbeitung verschiedener
   Ereignisse deaktiviert. Auf manchen Systemen muss die Variable den
   Wert 1 besitzen (die Voreinstellung). Normalerweise wird der
   unerwu:nschte Neustart des Systems durch Setzen dieser Variablen
   behoben.

     --------------------------------------------------------------

    12.16.3.6. Andere Probleme

   Wenn Sie weitere Probleme mit ACPI haben (Umgang mit einer
   Docking-Station, nicht erkannte Gera:te), schicken Sie bitte eine
   Beschreibung an die Mailingliste. Allerdings kann es sein, dass
   einige Probleme von noch unvollsta:ndigen Teilen des
   ACPI-Subsystems abha:ngen und es etwas dauern kann bis diese Teile
   fertig sind. Seien Sie geduldig und rechnen Sie damit, dass wir
   Ihnen Fehlerbehebungen zum Testen senden.

     --------------------------------------------------------------

  12.16.4. ASL, acpidump und IASL

   Ein ha:ufiges Problem ist fehlerhafter Bytecode des
   BIOS-Herstellers. Dies erkennen Sie an Kernelmeldungen auf der
   Konsole wie die folgende:

 ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
 (Node 0xc3f6d160), AE_NOT_FOUND

   Oft ko:nnen Sie das Problem dadurch lo:sen, dass Sie eine aktuelle
   BIOS-Version einspielen. Die meisten Meldungen auf der Konsole
   sind harmlos, wenn aber beispielsweise der Batteriestatus falsch
   angezeigt wird, ko:nnen Sie in den Meldungen nach Problemen mit
   der AML-Machine-Language (AML) suchen. Der Bytecode der AML wird
   aus der ACPI-Source-Language (ASL) u:bersetzt und in einer
   Tabelle, der DSDT, abgelegt. Eine Kopie der ASL ko:nnen Sie mit
   dem Befehl acpidump(8) erstellen. Verwenden Sie mit diesem Befehl
   sowohl die Option -t (die Inhalte der statischen Tabellen
   anzeigen) als auch die Option -d (die AML in ASL
   zuru:cku:bersetzen). Ein Beispiel fu:r die Syntax finden Sie im
   Abschnitt Fehlerberichte einreichen.

   Sie ko:nnen einfach pru:fen, ob sich die ASL u:bersetzen la:sst.
   Fu:r gewo:hnlich ko:nnen Sie Warnungen wa:hrend des U:bersetzens
   ignorieren. Fehlermeldungen fu:hren normal dazu, dass ACPI
   fehlerhaft arbeitet. Ihre ASL u:bersetzen Sie mit dem
   nachstehenden Kommando:

 # iasl ihre.asl

     --------------------------------------------------------------

  12.16.5. Die ASL reparieren

   Auf lange Sicht ist es unser Ziel, dass ACPI ohne Eingriffe des
   Benutzers la:uft. Zurzeit entwickeln wir allerdings noch
   Umgehungen fu:r Fehler der BIOS-Hersteller. Der
   Microsoft-Interpreter (acpi.sys und acpiec.sys) pru:ft die ASL
   nicht streng gegen den Standard. Daher reparieren BIOS-Hersteller,
   die ACPI nur unter Windows testen, ihre ASL nicht. Wir hoffen,
   dass wir das vom Standard abweichende Verhalten des
   Microsoft-Interpreters dokumentieren und in FreeBSD replizieren
   ko:nnen. Dadurch mu:ssen Benutzer ihre ASL nicht selbst
   reparieren. Sie ko:nnen Ihre ASL selbst reparieren, wenn Sie ein
   Problem umgehen und uns helfen mo:chten. Senden Sie uns bitte die
   mit diff(1) erstellte Differenz zwischen alter und neuer ASL. Wir
   werden versuchen, den Interpreter ACPI-CA zu korrigieren, damit
   die Fehlerbehebung nicht mehr erforderlich ist.

   Die nachfolgende Liste entha:lt ha:ufige Fehlermeldungen, deren
   Ursache und eine Beschreibung, wie die Fehler korrigiert werden:

     --------------------------------------------------------------

    12.16.5.1. Abha:ngigkeiten vom Betriebssystem

   Einige AMLs gehen davon aus, dass die Welt ausschliesslich aus
   verschiedenen Windows-Versionen besteht. FreeBSD kann vorgeben,
   irgendein Betriebssystem zu sein. Versuchen Sie das
   Betriebssystem, das Sie in der ASL finden, in der Datei
   /boot/loader.conf anzugeben: hw.acpi.osname="Windows 2001".

     --------------------------------------------------------------

    12.16.5.2. Fehlende Return-Anweisungen

   Einige Methoden verzichten auf die vom Standard vorgeschriebene
   Ru:ckgabe eines Wertes. Obwohl der Interpreter ACPI-CA dies nicht
   beheben kann, besitzt FreeBSD die Mo:glichkeit, den Ru:ckgabewert
   implizit zu setzen. Wenn Sie wissen, welcher Wert zuru:ckgegeben
   werden muss, ko:nnen Sie die fehlenden Return-Anweisungen selbst
   einsetzen. Die Option -f zwingt iasl, die ASL zu u:bersetzen.

     --------------------------------------------------------------

    12.16.5.3. U:berschreiben der vorgegebenen AML

   Nachdem Sie Ihre ASL in der Datei ihre.asl angepasst haben,
   u:bersetzen Sie die ASL wie folgt:

 # iasl ihre.asl

   Mit der Option -f erzwingen Sie das Erstellen der AML auch wenn
   wa:hrend der U:bersetzung Fehler auftreten. Beachten Sie, dass
   einige Fehler, wie fehlende Return-Anweisungen, automatisch vom
   Interpreter umgangen werden.

   In der Voreinstellung erstellt der Befehl iasl die Ausgabedatei
   DSDT.aml. Wenn Sie diese Datei anstelle der fehlerhaften Kopie des
   BIOS laden wollen, editieren Sie /boot/loader.conf wie folgt:

 acpi_dsdt_load="YES"
 acpi_dsdt_name="/boot/DSDT.aml"

   Stellen Sie bitte sicher, dass sich die Datei DSDT.aml im
   Verzeichnis /boot befindet.

     --------------------------------------------------------------

  12.16.6. ACPI-Meldungen zur Fehlersuche erzeugen

   Der ACPI-Treiber besitzt flexible Mo:glichkeiten zur Fehlersuche.
   Sie ko:nnen sowohl die zu untersuchenden Subsysteme als auch die
   zu erzeugenden Ausgaben festlegen. Die zu untersuchenden
   Subsysteme werden als so genannte "layers" angegeben. Die
   Subsysteme sind in ACPI-CA-Komponenten (ACPI_ALL_COMPONENTS) und
   ACPI-Hardware (ACPI_ALL_DRIVERS) aufgeteilt. Welche Meldungen
   ausgegeben werden, wird u:ber "level" gesteuert. "level" reicht
   von ACPI_LV_ERROR (es werden nur Fehler ausgegeben) bis zu
   ACPI_LV_VERBOSE (alles wird ausgegeben). "level" ist eine
   Bitmaske, sodass verschiedene Stufen auf einmal (durch Leerzeichen
   getrennt) angegeben werden ko:nnen. Die erzeugte Ausgabemenge
   passt vielleicht nicht in den Konsolenpuffer. In diesem Fall
   sollten Sie die Ausgaben mithilfe einer seriellen Konsole sichern.
   Die mo:glichen Werte fu:r "layers" und "level" werden in der
   Hilfeseite acpi(4) beschrieben.

   Die Ausgaben zur Fehlersuche sind in der Voreinstellung nicht
   aktiviert. Wenn ACPI im Kernel enthalten ist, fu:gen Sie options
   ACPI_DEBUG zur Kernelkonfigurationsdatei hinzu. Sie ko:nnen die
   Ausgaben zur Fehlersuche global aktivieren, indem Sie in der Datei
   /etc/make.conf die Zeile ACPI_DEBUG=1 einfu:gen. Das Modul acpi.ko
   ko:nnen Sie wie folgt neu u:bersetzen:

 # cd /sys/modules/acpi/acpi
 && make clean &&
 make ACPI_DEBUG=1

   Installieren Sie anschliessend acpi.ko im Verzeichnis
   /boot/kernel. In der Datei loader.conf stellen Sie "level" und
   "layer" ein. Das folgende Beispiel aktiviert die Ausgabe von
   Fehlern fu:r alle ACPI-CA-Komponenten und alle
   ACPI-Hardwaretreiber (wie CPU, LID):

 debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
 debug.acpi.level="ACPI_LV_ERROR"

   Wenn ein Problem durch ein bestimmtes Ereignis, beispielsweise den
   Start nach einem Ruhezustand, hervorgerufen wird, ko:nnen Sie die
   Einstellungen fu:r "level" und "layer" auch mit dem Kommando
   sysctl vornehmen. In diesem Fall mu:ssen Sie die Datei loader.conf
   nicht editieren. Auf der sysctl-Kommandozeile geben Sie dieselben
   Variablennamen wie in loader.conf an.

     --------------------------------------------------------------

  12.16.7. ACPI-Informationsquellen

   Weitere Informationen zu ACPI erhalten Sie an den folgenden
   Stellen:

     * die FreeBSD ACPI Mailingliste,

     * die Archive der ACPI-Mailingliste:
       http://lists.FreeBSD.org/pipermail/freebsd-acpi/,

     * die alten Archive der ACPI-Mailingliste:
       http://home.jp.FreeBSD.org/mail-list/acpi-jp/,

     * die ACPI-Spezifikation (Version 2.0):
       http://acpi.info/spec.htm,

     * in den nachstehenden FreeBSD-Hilfeseiten: acpi(4),
       acpi_thermal(4), acpidump(8), iasl(8) und acpidb(8),

     * DSDT debugging resource (als Beispiel wird Compaq erla:utert,
       die Ressource ist aber dennoch nu:tzlich).

     --------------------------------------------------------------

                    Kapitel 13. FreeBSDs Bootvorgang

   U:bersetzt von Hans-Christian Ebke.

13.1. U:bersicht

   Das Starten des Computers und das Laden des Betriebssystems wird
   im Allgemeinen als "Bootstrap-Vorgang" bezeichnet, oder einfach
   als "Booten". FreeBSDs Bootvorgang ermo:glicht grosse
   Flexibilita:t, was das Anpassen dessen anbelangt, was passiert,
   wenn das System gestartet wird. Es kann zwischen verschiedenen
   Betriebssystemen, die auf demselben Computer installiert sind oder
   verschiedenen Versionen desselben Betriebssystems oder
   installierten Kernels gewa:hlt werden.

   Dieses Kapitel zeigt die zur Verfu:gung stehenden
   Konfigurationsmo:glichkeiten und wie man den Bootvorgang anpasst.
   Dies schliesst alles ein, bis der Kernel gestartet worden ist, der
   dann alle Gera:te gefunden hat und init(8) gestartet hat. Falls
   Sie sich nicht ganz sicher sind, wann dies passiert: Es passiert,
   wenn die Farbe des Textes wa:hrend des Bootvorgangs von weiss zu
   Hellgrau wechselt.

   Dieses Kapitel informiert u:ber folgende Punkte:

     * Die Komponenten des FreeBSD-Bootvorgangs und deren
       Interaktion.

     * Die Optionen, mit denen Sie den FreeBSD-Bootvorgang steuern
       ko:nnen.

     * Wie Gera:te mit device.hints(5) konfiguriert werden.

     nur x86: Dieses Kapitel erkla:rt den Bootvorgang von FreeBSD auf
     Intel X86 Plattformen.

     --------------------------------------------------------------

13.2. Das Problem des Bootens

   Wenn der Computer eingeschaltet wird und das Betriebssystem
   gestartet werden soll, entsteht ein interessantes Dilemma, denn
   der Computer weiss per Definition nicht, wie er irgendetwas tut,
   bis das Betriebssystem gestartet wurde. Das schliesst das Starten
   von Programmen, die sich auf der Festplatte befinden, ein. Wenn
   nun der Computer kein Programm von der Festplatte starten kann,
   sich das Betriebssystem aber dummerweise genau dort befindet, wie
   wird es dann gestartet?

   Dieses Problem a:hnelt einer Geschichte des Barons von
   Mu:nchhausen. Dort war eine Person in einen Sumpf gefallen und hat
   sich selbst an den Riemen seiner Stiefel (engl. bootstrap)
   herausgezogen. In den jungen Jahren des Computerzeitalters wurde
   mit dem Begriff Bootstrap dann die Technik das Betriebssystem zu
   laden bezeichnet und wurde hinterher mit booten abgeku:rzt.

   Auf x86-Plattformen ist das BIOS (Basic Input/Output System)
   dafu:r verantwortlich, das Betriebssystem zu laden. Dazu liest das
   BIOS den Master Bootsektor (MBR; Master Boot Record) aus, der sich
   an einer bestimmten Stelle auf der Festplatte/Diskette befinden
   muss. Das BIOS kann den MBR selbststa:ndig laden und ausfu:hren
   und geht davon aus, dass dieser die restlichen Dinge, die fu:r das
   Laden des Betriebssystems notwendig sind, selbst oder mit Hilfe
   des BIOS erledigen kann.

   Der Code innerhalb des MBRs wird fu:r gewo:hnlich als Boot-Manager
   bezeichnet, insbesondere, wenn eine Interaktion mit dem Anwender
   stattfindet. Ist dies der Fall, verwaltet der Boot-Manager
   zusa:tzlichen Code im ersten Track der Platte oder in
   Dateisystemen anderer Betriebssysteme. (Boot-Manager werden
   manchmal auch als Boot Loader bezeichnet, unter FreeBSD wird
   dieser Begriff aber fu:r eine spa:tere Phase des Systemstarts
   verwendet.) Zu den bekanntesten Boot-Managern geho:ren boot0 (der
   auch als Boot Easy bekannte Standard-Boot-Manager von FreeBSD),
   Grub, GAG, sowie LILO. (Von diesen Boot-Managern hat nur boot0
   innerhalb des MBRs Platz.)

   Falls nur ein Betriebssystem installiert ist, ist der Standard MBR
   ausreichend. Dieser MBR sucht nach dem ersten bootbaren Slice (das
   dabei als active gekennzeichnet ist) auf dem Laufwerk und fu:hrt
   den dort vorhandenen Code aus, um das restliche Betriebssystem zu
   laden. Der von fdisk(8) in der Voreinstellung installierte MBR ist
   ein solcher MBR und basiert auf /boot/mbr.

   Falls mehrere Betriebssysteme installiert sind, sollte man einen
   anderen Boot-Manager installieren, der eine Liste der verfu:gbaren
   Betriebssysteme anzeigt und einen wa:hlen la:sst, welches man
   booten mo:chte. Der na:chste Abschnitt beschreibt zwei
   Boot-Manager mit diesen Fa:higkeiten.

   Das restliche FreeBSD-Bootstrap-System ist in drei Phasen
   unterteilt. Die erste Phase wird vom MBR durchgefu:hrt, der gerade
   genug Funktionalita:t besitzt um den Computer in einen bestimmten
   Status zu verhelfen und die zweite Phase zu starten. Die zweite
   Phase fu:hrt ein wenig mehr Operationen durch und startet
   schliesslich die dritte Phase, die das Laden des Betriebssystems
   abschliesst. Der ganze Prozess wird in drei Phasen durchgefu:hrt,
   weil der PC Standard die Gro:sse der Programme, die in Phase eins
   und zwei ausgefu:hrt werden, limitiert. Durch das Verketten der
   durchzufu:hrenden Aufgaben wird es FreeBSD mo:glich, ein sehr
   flexibles Ladeprogramm zu besitzen.

   Als na:chstes wird der Kernel gestartet, der zuna:chst nach
   Gera:ten sucht und sie fu:r den Gebrauch initialisiert. Nach dem
   Booten des Kernels u:bergibt dieser die Kontrolle an den Benutzer
   Prozess init(8), der erst sicherstellt, dass alle Laufwerke
   benutzbar sind und die Ressourcen Konfiguration auf Benutzer Ebene
   startet. Diese wiederum mountet Dateisysteme, macht die
   Netzwerkkarten fu:r die Kommunikation mit dem Netzwerk bereit und
   startet generell alle Prozesse, die auf einem FreeBSD-System
   normalerweise beim Hochfahren gestartet werden.

     --------------------------------------------------------------

13.3. Boot-Manager und Boot-Phasen

     --------------------------------------------------------------

  13.3.1. Der Boot-Manager

   Der Code im MBR oder im Boot-Manager wird manchmal auch als stage
   zero des Boot-Prozesses bezeichnet. Dieser Abschnitt beschreibt
   zwei der weiter oben erwa:hnten Boot-Manager: boot0 sowie LILO.

   Der boot0 Boot-Manager: Der vom FreeBSD-Installationsprogramm oder
   boot0cfg(8) in der Voreinstelung installierte Master Boot Record
   (MBR) basiert auf /boot/boot0. Bei boot0 handelt es sich um ein
   sehr einfaches Programm, da im MBR lediglich 446 Bytes verfu:gbar
   sind, weil der restliche Platz fu:r die Partitionstabelle sowie
   den 0x55AA-Identifier am Ende des MBRs beno:tigt wird. Falls Sie
   boot0 verwenden und mehrere Betriebssysteme auf Ihrer Festplatte
   installiert haben, werden Sie beim Starten des Computers eine
   Anzeige a:hnlich der folgenden sehen:

   Beispiel 13-1. boot0-Screenshot

 F1 DOS
 F2 FreeBSD
 F3 Linux
 F4 ??
 F5 Drive 1

 Default: F2

   Diverse Betriebssysteme, insbesondere Windows, u:berschreiben den
   MBR ungefragt mit ihrem eigenen. Falls einem dies passiert sein
   sollte, kann man mit folgendem Kommando den momentanen MBR durch
   den FreeBSD-MBR ersetzen:

 # fdisk -B -b /boot/boot0 Gera:t

   Bei Gera:t handelt es sich um das Gera:t, von dem gebootet wird,
   also beispielsweise ad0 fu:r die erste IDE-Festplatte, ad2 fu:r
   die erste IDE-Festplatte am zweiten IDE-Controller, da0 fu:r die
   erste SCSI-Festplatte, usw. Diese Einstellungen ko:nnen aber u:ber
   boot0cfg(8) angepasst werden.

   Der LILO-Boot-Manager: Damit dieser Boot-Manager auch FreeBSD
   booten kann, starten Sie zuerst Linux und fu:gen danach folgende
   Zeilen in die Konfigurationsdatei /etc/lilo.conf ein:

 other=/dev/hdXY
 table=/dev/hdX
 loader=/boot/chain.b
 label=FreeBSD

   Dabei mu:ssen Sie die prima:re Partition von FreeBSD sowie dessen
   Platte im Linux-Format angeben. Dazu ersetzen Sie X durch die
   Linux-Bezeichnung der Platte und Y durch die von Linux verwendete
   Partitionsnummer. Wenn Sie ein SCSI-Laufwerk verwenden, mu:ssen
   Sie /dev/sd anstelle von /dev/hd verwenden. Die Zeile
   loader=/boot/chain.b kann weggelassen werden, wenn beide
   Betriebssysteme auf der gleichen Platte installiert sind. Geben
   Sie danach /sbin/lilo -v ein, um Ihre A:nderungen zu u:bernehmen.
   Achtung Sie dabei besonders auf etwaige Fehlermeldungen.

     --------------------------------------------------------------

  13.3.2. Phase Eins, /boot/boot1 und Phase Zwei, /boot/boot2

   Im Prinzip sind die erste und die zweite Phase Teile desselben
   Programms, im selben Bereich auf der Festplatte. Aufgrund von
   Speicherplatz-Beschra:nkungen wurden sie aufgeteilt, aber man
   installiert sie eigentlich generell zusammen. Beide werden
   entweder vom Installer oder von bsdlabel aus der kombinierten
   Datei /boot/boot kopiert.

   Beide Phasen befinden sich ausserhalb des Dateisystems im
   Bootsektor des Boot-Slices, wo boot0 oder ein anderer Boot-Manager
   ein Programm erwarten, das den weiteren Bootvorgang durchfu:hren
   kann. Die Anzahl der dabei verwendeten Sektoren wird durch die
   Gro:sse von /boot/boot bestimmt.

   boot1 ist ein sehr einfaches Programm, da es nur 512 Bytes gross
   sein darf, und es besitzt gerade genug Funktionalita:t, um
   FreeBSDs bsdlabel, das Informationen u:ber den Slice entha:lt,
   auszulesen, und um boot2 zu finden und auszufu:hren.

   boot2 ist schon ein wenig umfangreicher und besitzt genu:gend
   Funktionalita:t, um Dateien in FreeBSDs Dateisystem zu finden.
   Ausserdem hat es eine einfache Schnittstelle, die es ermo:glicht,
   den zu ladenden Kernel oder Loader auszuwa:hlen.

   Da der Loader einen weitaus gro:sseren Funktionsumfang hat und
   eine scho:ne und einfach zu bedienende
   Boot-Konfigurations-Schnittstelle zur Verfu:gung stellt, wird er
   gewo:hnlich von boot2 anstatt des Kernels gestartet. Fru:her war
   es jedoch dazu da den Kernel direkt zu starten.

   Beispiel 13-2. boot2-Screenshot

 >> FreeBSD/i386 BOOT
 Default: 0:ad(0,a)/boot/loader
 boot:

   Um das installierte boot1 und boot2 zu ersetzen, benutzt man
   bsdlabel(8):

 # bsdlabel -B diskslice

   Wobei Slice das Laufwerk und die Slice darstellt, von dem gebootet
   wird, beispielsweise ad0s1 fu:r die erste Slice auf der ersten
   IDE-Festplatte.

     Dangerously Dedicated Mode: Wenn man nur den Festplatten-Namen,
     also z.B. ad0, in bsdlabel(8) benutzt wird eine "dangerously
     dedicated disk" erstellt, ohne Slices. Das ist ein Zustand, den
     man meistens nicht hervorrufen mo:chte. Aus diesem Grund sollte
     man ein bsdlabel(8)-Kommando noch einmal pru:fen, bevor man
     Return beta:tigt.

     --------------------------------------------------------------

  13.3.3. Phase drei, /boot/loader

   Der boot-loader ist der letzte von drei Schritten im
   Bootstrap-Prozess und kann im Dateisystem normalerweise unter
   /boot/loader gefunden werden.

   Der Loader soll eine benutzerfreundliche
   Konfigurations-Schnittstelle sein mit einem einfach zu bedienenden
   eingebauten Befehlssatz, erga:nzt durch einen umfangreichen
   Interpreter mit einem komplexeren Befehlssatz.

     --------------------------------------------------------------

    13.3.3.1. Loader Ablauf

   Der Loader sucht wa:hrend seiner Initialisierung nach Konsolen und
   Laufwerken, findet heraus, von welchem Laufwerk er gerade bootet,
   und setzt dementsprechend bestimmte Variablen. Dann wird ein
   Interpreter gestartet, der Befehle interaktiv oder von einem
   Skript empfangen kann.

   Danach liest der Loader die Datei /boot/loader.rc aus, welche ihn
   standardma:ssig anweist /boot/defaults/loader.conf zu lesen, wo
   sinnvolle Standardeinstellungen fu:r diverse Variablen festgelegt
   werden und wiederum /boot/loader.conf fu:r lokale A:nderungen an
   diesen Variablen ausgelesen wird. Anschliessend arbeitet dann
   loader.rc entsprechend dieser Variablen und la:dt die
   ausgewa:hlten Module und den gewu:nschten Kernel.

   In der Voreinstellung wartet der Loader 10 Sekunden lang auf eine
   Tastatureingabe und bootet den Kernel, falls keine Taste beta:tigt
   wurde. Falls doch eine Taste beta:tigt wurde wird dem Benutzer
   eine Eingabeaufforderung angezeigt. Sie nimmt einen einfach zu
   bedienenden Befehlssatz entgegen, der es dem Benutzer erlaubt,
   A:nderungen an Variablen vorzunehmen, Module zu laden, alle Module
   zu entladen oder schliesslich zu booten bzw. neu zu booten.

     --------------------------------------------------------------

    13.3.3.2. Die eingebauten Befehle des Loaders

   Hier werden nur die gebra:uchlichsten Befehle bearbeitet. Fu:r
   eine erscho:pfende Diskussion aller verfu:gbaren Befehle
   konsultieren Sie bitte loader(8).

   autoboot Sekunden

           Es wird mit dem Booten des Kernels fortgefahren, falls
           keine Taste in der gegebenen Zeitspanne beta:tigt wurde.
           In der gegebenen Zeitspanne, Vorgabe sind 10 Sekunden,
           wird ein Countdown angezeigt.

   boot [-options] [Kernelname]

           Bewirkt das sofortige Booten des Kernels mit den gegebenen
           Optionen, falls welche angegeben wurden, und mit den
           angegebenen Kernel, falls denn einer angegeben wurde. Das
           u:bergeben eines Kernelnamens ist nur nach einem
           unload-Befehl anwendbar, andernfalls wird der zuvor
           verwendete Kernel benutzt.

   boot-conf

           Bewirkt die automatische Konfiguration der Module,
           abha:ngig von den entsprechenden Variablen. Dieser Vorgang
           ist identisch zu dem Vorgang, den der Bootloader ausfu:hrt
           und daher nur sinnvoll, wenn zuvor unload benutzt wurde
           und Variablen (gewo:hnlich kernel) vera:ndert wurden.

   help [Thema]

           Zeigt die Hilfe an, die zuvor aus der Datei
           /boot/loader.help gelesen wird. Falls index als Thema
           angegeben wird, wird die Liste der zur Verfu:gung
           stehenden Hilfe-Themen angezeigt.

   include Dateiname ...

           Verarbeitet die angegebene Datei. Das Einlesen und
           Interpretieren geschieht Zeile fu:r Zeile und wird im
           Falle eines Fehlers umgehend unterbrochen.

   load [-t Typ] Dateiname

           La:dt den Kernel, das Kernel-Modul, oder die Datei des
           angegebenen Typs. Optionen, die auf den Dateinamen folgen,
           werden der Datei u:bergeben.

   ls [-l] [Pfad]

           Listet die Dateien im angegebenen Pfad auf, oder das
           root-Verzeichnis(/), falls kein Pfad angegeben wurde. Die
           Option -l bewirkt, dass die Dateigro:ssen ebenfalls
           angezeigt werden.

   lsdev [-v]

           Listet alle Gera:te auf, fu:r die Module geladen werden
           ko:nnen. Die Option -v bewirkt eine detailreichere
           Ausgabe.

   lsmod [-v]

           Listet alle geladenen Module auf. Die Option -v bewirkt
           eine detailreichere Ausgabe.

   more Dateiname

           Zeigt den Dateinhalt der angegebenen Datei an, wobei eine
           Pause alle LINES Zeilen gemacht wird.

   reboot

           Bewirkt einen umgehenden Neustart des Systems.

   set Variable, set Variable=Wert

           Setzt die Umgebungsvariablen des Loaders.

   unload

           Entla:dt sa:mtliche geladenen Module.

     --------------------------------------------------------------

    13.3.3.3. Beispiele fu:r die Loader Bedienung

   Hier ein paar praktische Beispiele fu:r die Bedienung des Loaders.

     * Um den gewo:hnlichen Kernel im Single-User Modus zu starten:

 boot -s

     * Um alle gewo:hnlichen Kernelmodule zu entladen und dann nur
       den alten (oder jeden beliebigen anderen) Kernel zu laden:

 unload
 load kernel.old

       Es kann kernel.GENERIC verwendet werden, um den allgemeinen
       Kernel zu bezeichnen, der vorinstalliert wird. kernel.old
       bezeichnet den Kernel, der vor dem aktuellen installiert war
       (falls man einen neuen Kernel kompiliert und installiert hat
       zum Beispiel).

         Anmerkung: Der folgende Befehl la:dt die gewo:hnlichen
         Module mit einem anderen Kernel:

 unload
 set kernel="kernel.old"
 boot-conf

     * Folgendes la:dt ein Kernelkonfigurations-Skript (ein
       automatisiertes Skript, dass dasselbe tut, was der Benutzer
       normalerweise von Hand an der Eingabeaufforderung durchfu:hren
       wu:rde):

 load -t userconfig_script /boot/kernel.conf

     --------------------------------------------------------------

    13.3.3.4. Willkommmensbildschirme wa:hrend des Bootvorgangs

   Contributed by Joseph J. Barbish. U:bersetzt von Benedict
   Reuschling.

   Die Willkommmensbildschirme erzeugen einen visuell viel
   ansprechenderen Bootvorgang im Vergleich zu den herko:mmlichen
   Bootmeldungen. Diese Bildschirme werden entweder bis zu einem
   Konsolen-Login-Prompt oder dem eines X-Display Managers angezeigt.

   Es existieren zwei grundlegende Umgebungen in FreeBSD. Die erste
   ist die altbekannte, auf virtuellen Konsolen basierte
   Kommandozeile. Nachdem das System den Bootvorgang abgeschlossen
   hat, wird ein Anmeldebildschirm auf der Konsole anzeigt. Die
   zweite Umgebung ist die graphische X11-Desktop Umgebung. Nachdem
   X11 und eine der Graphischen Oberfla:chen, wie GNOME, KDE, oder
   XFce installiert wurden, kann der X11-Desktop u:ber das Kommando
   startx gestartet werden.

   Manche Benutzer ziehen den graphischen Anmeldebildschirm von X11
   dem traditionellen, textbasierten Anmeldeprompt vor.
   Display-Manager wie XDM fu:r Xorg, gdm fu:r GNOME und kdm fu:r KDE
   (und viele weitere aus der Ports-Sammlung) bieten einen
   graphischen statt dem konsolenbasierten Anmeldebildschirm. Nach
   einer erfolgreichen Anmeldung kann der Benutzer die graphische
   Oberfla:che verwenden.

   In der Kommandozeilen-Umgebung wu:rde der Willkommensbildschirm
   alle Erkennungsmeldungen des Bootvorgangs und die Startmeldungen
   von Diensten verstecken, bevor der Anmeldebildschirm erscheint. In
   der X11-Umgebung erhalten die Anwender einen klareren visuellen
   Eindruck des Startvorgangs, a:hnlich zu dem, den Microsoft Windows
   (oder ein nicht-Unix-artiger Systemtyp) zur Verfu:gung stellt.

     --------------------------------------------------------------

      13.3.3.4.1. Willkommensbildschirm-Funktionalita:t

   Die Willkommensbildschirm-Funktionalita:t unterstu:tzt nur
   256-Farben Bitmaps (.bmp), ZSoft PCX (.pcx) oder TheDraw (.bin)
   Dateien. Zusa:tzlich muss die Willkommensbildschirm-Datei eine
   Auflo:sung von 320 mal 200 Pixeln oder weniger besitzen, damit
   Standard-VGA Gera:te damit arbeiten ko:nnen.

   Um gro:ssere Bilder bis zu einer maximalen Auflo:sung von 1024 mal
   768 Pixeln zu verwenden, muss Unterstu:tzung fu:r VESA in FreeBSD
   enthalten sein. Dies kann durch das Laden des VESA-Moduls wa:hrend
   des Systemstarts geschehen, oder durch Hinzufu:gen der
   VESA-Kernelkonfigurationsoption und anschliessendem Bau des
   Kernels (Lesen Sie dazu Kapitel 9). Die VESA-Unterstu:tzung
   ermo:glicht es den Benutzern, Willkommensbildschirme als Vollbild
   anzuzeigen, die den gesamten Bildschirm ausfu:llen.

   Wenn der Willkommensbildschirm beim Bootvorgang angezeigt wird,
   kann dieser jederzeit mit einem beliebigen Tastendruck
   ausgeschaltet werden.

   Der Willkommensbildschirm ist standardma:ssig so eingestellt, dass
   er als Bildschirmschoner ausserhalb von X11 verwendet wird. Nach
   einer bestimmten Zeit der Unta:tigkeit wird der
   Willkommensbildschirm angezeigt und wechselt durch verschiedene
   Stufen der Intensita:t von hell zu einem sehr dunklen Bild und
   wieder zuru:ck. Dieses Verhalten des
   Standard-Willkommensbildschirms (Screen-Saver) kann durch
   hinzufu:gen einer saver=-Zeile in /etc/rc.conf gea:ndert werden.
   Die Option saver= besitzt mehrere eingebaute Screen-Saver, aus
   denen man wa:hlen kann, und deren komplette Liste in der
   splash(4)-Manualpage enthalten ist. Der Standard-Screen-Saver ist
   "warp". Beachten Sie, dass sich die saver=-Option in /etc/rc.conf
   nur auf virtuelle Konsolen bezieht. Sie hat keinen Effekt auf
   X11-Display-Manager.

   Ein paar Nachrichten des Bootloaders und ganz besonders das Menu:
   mit den Bootoptionen und dem Warte-Countdown werden zur Bootzeit
   angezeigt, selbst wenn der Willkommensbildschirm aktiviert ist.

   Dateien mit Beispiel-Willkommensbildschirmen ko:nnen von der
   Galerie auf http://artwork.freebsdgr.orgb heruntergeladen werden.
   Durch die Installation des Ports sysutils/bsd-splash-changer
   ko:nnen Willkommensbildschirme von einer zufa:llig ausgewa:hlten
   Sammlung von Bildern bei jedem Neustart angezeigt werden.

     --------------------------------------------------------------

      13.3.3.4.2. Aktivieren der Willkommensbildschirm-Funktionalita:t

   Die Willkommensbildschirm-Datei (.bmp, .pcx oder .bin) muss im
   Wurzelverzeichnis, z.B. /boot abgelegt werden.

   Fu:r die Standard-Auflo:sung (256-Farben, 320 mal 200 Pixel oder
   weniger) beim Booten bearbeiten Sie die Datei /boot/loader.conf,
   so dass diese die folgenden Zeilen entha:lt:

 splash_bmp_load="YES"
 bitmap_load="YES"
 bitmap_name="/boot/splash.bmp"

   Fu:r gro:ssere Video-Auflo:sungen bis zum Maximum von 1024 mal 768
   Pixeln a:ndern Sie die Datei /boot/loader.conf, damit diese die
   folgenden Zeilen entha:lt:

 vesa_load="YES"
 splash_bmp_load="YES"
 bitmap_load="YES"
 bitmap_name="/boot/splash.bmp"

   Das Beispiel oben nimmt an, dass /boot/splash.bmp als
   Willkommensbildschirm verwendet wird. Wenn eine PCX-Datei
   verwendet werden soll, benutzen Sie die folgenden Zeilen,
   inklusive der vesa_load="YES"-Zeile, abha:ngig von der Auflo:sung.

 splash_pcx_load="YES"
 bitmap_load="YES"
 bitmap_name="/boot/splash.pcx"

   In der Version 8.3 kann als weitere Option ascii-Kunst im TheDraw
   Format verwendet werden.

 splash_txt="YES"
 bitmap_load="YES"
 bitmap_name="/boot/splash.bin"

   Wie das Beispiel oben demonstriert, ist der Dateiname nicht auf
   "splash" beschra:nkt. Es ist beliebig, so lange es den Dateityp
   BMP oder PCX besitzt, z.B. splash_640x400.bmp oder blue_wave.pcx.

   Weitere interessante Optionen fu:r loader.conf sind:

   beastie_disable="YES"

           Diese Option verhindert die Anzeige des Menu:s mit den
           Bootoptionen, aber der Countdown ist immer noch aktiv.
           Selbst wenn das Bootmenu: deaktiviert ist, kann wa:hrend
           des Countdowns eine der korrespondierenden Optionen
           ausgewa:hlt werden.

   loader_logo="beastie"

           Dies ersetzt die Standardanzeige des Wortes "FreeBSD".
           Stattdessen wird wie in der Vergangenheit auf der rechten
           Seite des Bootmenu:s das bunte Beastie-Logo angezeigt.

   Fu:r weitere Informationen lesen Sie die Manualpages splash(4),
   loader.conf(5) und vga(4).

     --------------------------------------------------------------

13.4. Kernel Interaktion wa:hrend des Bootprozesses

   Wenn der Kernel einmal geladen ist, entweder durch den Loader (die
   Standardmethode) oder durch boot2 (den Loader umgehend), verha:lt
   sich gema:ss seiner Boot-Flags, falls es welche gibt.

     --------------------------------------------------------------

  13.4.1. Kernel Boot-Flags

   Es folgt eine Auflistung der gebra:uchlichsten Boot-Flags:

   -a

           Bewirkt, dass der Benutzer wa:hrend der
           Kernel-Initialisierung gefragt wird, welches Gera:t als
           Root-Dateisystem gemounted werden soll.

   -C

           Es wird von CD-ROM gebootet.

   -c

           UserConfig, das Boot-Zeit Konfigurationsprogramm, wird
           gestartet.

   -s

           Bewirkt den Start des Single-User Modus.

   -v

           Zeigt mehr Informationen wa:hrend des Starten des Kernels
           an.

     Anmerkung: Andere Boot-Flags sind in der Hilfeseite boot(8)
     erla:utert.

     --------------------------------------------------------------

13.5. Konfiguration von Gera:ten

   Beigetragen von Tom Rhodes.

   Der Boot-Loader liest wa:hrend des Systemstarts die Datei
   device.hints(5), die Variablen, auch "device hints" genannt, zur
   Konfiguration von Gera:ten entha:lt.

   Die Variablen ko:nnen auch mit Kommandos in der Phase 3 des
   Boot-Loaders bearbeitet werden. Neue Variablen werden mit set
   gesetzt, unset lo:scht schon definierte Variablen und show zeigt
   Variablen an. Variablen aus /boot/device.hints ko:nnen zu diesem
   Zeitpunkt u:berschrieben werden. Die hier durchgefu:hrten
   A:nderungen sind nicht permanent und beim na:chsten Systemstart
   nicht mehr gu:ltig.

   Nach dem Systemstart ko:nnen alle Variablen mit kenv(1) angezeigt
   werden.

   Pro Zeile entha:lt /boot/device.hints eine Variable. Kommentare
   werden, wie u:blich, durch # eingeleitet. Die verwendete Syntax
   lautet:

 hint.driver.unit.keyword="value"

   Der Boot-Loader verwendet die nachstehende Syntax:

 set hint.driver.unit.keyword=value

   Der Gera:tetreiber wird mit driver, die Nummer des Gera:ts mit
   unit angegeben. keyword ist eine Option aus der folgenden Liste:

     * at: Gibt den Bus, auf dem sich das Gera:t befindet, an.

     * port: Die Startadresse des I/O-Bereichs.

     * irq: Gibt die zu verwendende Unterbrechungsanforderung (IRQ)
       an.

     * drq: Die Nummer des DMA Kanals.

     * maddr: Die physikalische Speicheradresse des Gera:ts.

     * flags: Setzt verschiedene gera:tespezifische Optionen.

     * disabled: Deaktiviert das Gera:t, wenn der Wert auf 1 gesetzt
       wird.

   Ein Gera:tetreiber kann mehr Optionen, als die hier beschriebenen,
   besitzen oder beno:tigen. Schlagen Sie die Optionen bitte in der
   Online-Hilfe des Treibers nach. Weitere Informationen erhalten Sie
   in device.hints(5), kenv(1), loader.conf(5) und loader(8).

     --------------------------------------------------------------

13.6. Init: Initialisierung der Prozess-Kontrolle

   Nachdem der Kernel den Bootprozess abgeschlossen hat, u:bergibt er
   die Kontrolle an den Benutzer-Prozess init(8). Dieses Programm
   befindet sich in /sbin/init, oder dem Pfad, der durch die Variable
   init_path im Loader spezifiziert wird.

     --------------------------------------------------------------

  13.6.1. Der automatische Reboot-Vorgang

   Der automatische Reboot-Vorgang stellt sicher, dass alle
   Dateisysteme des Systems konsistent sind. Falls dies nicht der
   Fall ist und die Inkonsistenz nicht durch fsck(8) behebbar ist,
   schaltet init(8) das System in den Single-User Modus, damit der
   Systemadministrator sich des Problems annehmen kann.

     --------------------------------------------------------------

  13.6.2. Der Single-User Modus

   Das Schalten in diesen Modus kann erreicht werden durch den
   automatischen Reboot-Vorgang, durch das Booten mit der Option -s
   oder das Setzen der boot_single Variable in Loader.

   Weiterhin kann der Single-User Modus aus dem Mehrbenutzermodus
   heraus durch den Befehl shutdown(8) ohne die reboot (-r) oder halt
   (-h) Option erreicht werden.

   Falls die System-Konsole (console) in /etc/ttys auf insecure (dt.:
   unsicher) gesetzt ist, fordert das System allerdings zur Eingabe
   des Passworts von root auf, bevor es den Single-User Modus
   aktiviert.

   Beispiel 13-3. Auf insecure gesetzte Konsole in /etc/ttys

 # name  getty                           type    status          comments
 #
 # If console is marked "insecure", then init will ask for the root password
 # when going to single-user mode.
 console none                            unknown off insecure

     Anmerkung: Eine Konsole sollte auf insecure gesetzt sein, wenn
     die physikalische Sicherheit der Konsole nicht gegeben ist und
     sichergestellt werden soll, dass nur Personen, die das Passwort
     von root kennen, den Single-User Modus benutzen ko:nnen. Es
     bedeutet nicht, dass die Konsole "unsicher" laufen wird. Daher
     sollte man insecure wa:hlen, wenn man auf Sicherheit bedacht
     ist, nicht secure.

     --------------------------------------------------------------

  13.6.3. Mehrbenutzermodus

   Stellt init(8) fest, dass das Dateisystem in Ordnung ist, oder der
   Benutzer den Single-User Modus beendet, schaltet das System in den
   Mehrbenutzermodus, in dem dann die Ressourcen Konfiguration des
   Systems gestartet wird.

     --------------------------------------------------------------

    13.6.3.1. Ressourcen Konfiguration, rc-Dateien

   Das Ressourcen Konfigurationssystem (engl. resource configuration,
   rc) liest seine Standardkonfiguration von /etc/defaults/rc.conf
   und System-spezifische Details von /etc/rc.conf. Dann mountet es
   die Dateisysteme gema:ss /etc/fstab, startet die Netzwerkdienste,
   diverse System Daemons und fu:hrt schliesslich die Start-Skripten
   der lokal installierten Anwendungen aus.

   Die rc(8) Handbuch Seite ist eine gute Quelle fu:r Informationen
   u:ber das Ressourcen Konfigurationssystem und ebenso u:ber die
   Skripte an sich.

     --------------------------------------------------------------

13.7. Der Shutdown-Vorgang

   Im Falle eines regula:ren Herunterfahrens durch shutdown(8) fu:hrt
   init(8) /etc/rc.shutdown aus, sendet dann sa:mtlichen Prozessen
   ein TERM Signal und schliesslich ein KILL Signal an alle Prozesse,
   die sich nicht schnell genug beendet haben.

   FreeBSD-Systeme, die Energieverwaltungsfunktionen unterstu:tzen,
   ko:nnen Sie mit dem Kommando shutdown -p now ausschalten. Zum
   Neustart des Systems benutzen Sie shutdown -r now. Das Kommando
   shutdown(8) kann nur von root oder Mitgliedern der Gruppe operator
   benutzt werden. Sie ko:nnen auch die Kommandos halt(8) und
   reboot(8) verwenden. Weitere Informationen finden Sie in den
   Hilfeseiten der drei Kommandos.

     Anmerkung: Unter FreeBSD mu:ssen Sie die acpi(4)-Unterstu:tzung
     im Kernel aktivieren oder das Modul geladen haben, damit Sie die
     Energieverwaltungsfunktionen benutzen ko:nnen.

     --------------------------------------------------------------

        Kapitel 14. Benutzer und grundlegende Account-Verwaltung

   Beigetragen von Neil Blakey-Milner. U:bersetzt von Robert Drehmel.

14.1. U:bersicht

   Einen FreeBSD-Computer ko:nnen mehrere Benutzer zur selben Zeit
   benutzen, allerdings kann immer nur einer vor der Konsole sitzen
   [6], u:ber das Netzwerk ko:nnen beliebig viele Benutzer angemeldet
   sein. Jeder Benutzer muss einen Account haben, um das System
   benutzen zu ko:nnen.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie

     * die verschiedenen Account-Typen von FreeBSD kennen,

     * wissen, wie Accounts angelegt werden,

     * wissen, wie Sie Accounts lo:schen,

     * wie Sie Attribute eines Accounts, wie den Loginnamen oder die
       Login-Shell a:ndern,

     * wissen, wie Sie Limits fu:r einen Account setzen, um
       beispielsweise Ressourcen, wie Speicher oder CPU-Zeit,
       einzuschra:nken,

     * wie Sie mit Gruppen die Verwaltung der Accounts vereinfachen.

   Vor dem Lesen dieses Kapitels sollten Sie

     * die Grundlagen von UNIX und FreeBSD (Kapitel 4) verstanden
       haben.

     --------------------------------------------------------------

14.2. Einfu:hrung

   Jeder Zugriff auf das System geschieht u:ber Accounts und alle
   Prozesse werden von Benutzern gestartet, also sind Benutzer- und
   Account-Verwaltung von wesentlicher Bedeutung in FreeBSD-Systemen.

   Mit jedem Account eines FreeBSD-Systems sind bestimmte
   Informationen verknu:pft, die diesen Account identifizieren.

   Loginnamen

           Den Loginnamen geben Sie bei der Anmeldung ein, wenn Sie
           dazu mit login: aufgefordert werden. Loginnamen mu:ssen
           auf dem System eindeutig sein, das heisst auf einem System
           kann es nicht zwei Accounts mit demselben Loginnamen
           geben. In passwd(5) wird beschrieben, wie ein gu:ltiger
           Loginname gebildet wird. Normalerweise sollten Sie Namen
           verwenden, die aus Kleinbuchstaben bestehen und bis zu
           acht Zeichen lang sind.

   Passwort

           Mit jedem Account ist ein Passwort verknu:pft. Wenn das
           Passwort leer ist, wird es bei der Anmeldung nicht
           abgefragt. Das ist allerdings nicht zu empfehlen, daher
           sollte jeder Account ein Passwort besitzen.

   User ID (UID)

           Die UID ist u:blicherweise eine Zahl zwischen 0 und
           65535[7], die einen Account eindeutig identifiziert.
           Intern verwendet FreeBSD nur die UID, Loginnamen werden
           zuerst in eine UID umgewandelt, mit der das System dann
           weiter arbeitet. Das bedeutet, dass Sie Accounts mit
           unterschiedlichen Loginnamen aber gleicher UID einrichten
           ko:nnen. Vom Standpunkt des Systems handelt es sich dabei
           um denselben Account. In der Praxis werden Sie diese
           Eigenschaft des Systems wahrscheinlich nicht benutzen.

   Group ID (GID)

           Die GID ist u:blicherweise eine Zahl zwischen 0 und
           65536[7], die eine Gruppe eindeutig identifiziert. Mit
           Gruppen kann der Zugriff auf Ressourcen u:ber die GID
           anstelle der UID geregelt werden. Einige
           Konfigurationsdateien werden durch diesen Mechanismus
           deutlich kleiner. Ein Account kann mehreren Gruppen
           zugeho:ren.

   Login-Klasse

           Login-Klassen erweitern das Gruppenkonzept. Sie erho:hen
           die Flexibilita:t des Systems in der Handhabung der
           verschiedenen Accounts.

   Gu:ltigkeit von Passwo:rtern

           Ein regelma:ssiges A:ndern des Passworts wird in der
           Voreinstellung von FreeBSD nicht erzwungen. Sie ko:nnen
           allerdings einen Passwortwechsel nach einer gewissen Zeit
           auf Basis einzelner Accounts erzwingen.

   Verfallszeit eines Accounts

           In der Voreinstellung verfallen unter FreeBSD keine
           Accounts. Wenn Sie Accounts einrichten, die nur fu:r eine
           bestimmte Zeit gu:ltig sein sollen, beispielsweise
           Accounts fu:r Teilnehmer eines Praktikums, ko:nnen Sie
           angeben, wie lange der Account gu:ltig sein soll. Nachdem
           die angegebene Zeitspanne verstrichen ist, kann dieser
           Account nicht mehr zum Anmelden verwendet werden, obwohl
           alle Verzeichnisse und Dateien, die diesem Account
           geho:ren, noch vorhanden sind.

   vollsta:ndiger Benutzername

           FreeBSD identifiziert einen Account eindeutig u:ber den
           Loginnamen, der aber keine A:hnlichkeit mit dem richtigen
           Namen des Benutzers haben muss. Der vollsta:ndige
           Benutzername kann daher beim Einrichten eines Accounts
           angegeben werden.

   Heimatverzeichnis

           Das Heimatverzeichnis gibt den vollsta:ndigen Pfad zu dem
           Verzeichnis an, in dem sich der Benutzer nach
           erfolgreicher Anmeldung befindet. Es ist u:blich, alle
           Heimatverzeichnisse unter /home/Loginname oder
           /usr/home/Loginname anzulegen. Im Heimatverzeichnis oder
           in dort angelegten Verzeichnissen werden die Dateien eines
           Benutzers gespeichert.

   Login-Shell

           Grundsa:tzlich ist die Schnittstelle zum System eine
           Shell, von denen es viele unterschiedliche gibt. Die
           bevorzugte Shell eines Benutzers kann seinem Account
           zugeordnet werden.

   Es gibt drei Haupttypen von Accounts: Der Superuser,
   Systembenutzer und Benutzer-Accounts. Der Superuser-Account,
   normalerweise root genannt, wird benutzt, um das System ohne
   Beschra:nkungen auf Privilegien zu verwalten. Systembenutzer
   starten Dienste. Abschliessend werden Benutzer-Accounts von echten
   Menschen genutzt, die sich einloggen, Mails lesen und so weiter.

     --------------------------------------------------------------

14.3. Der Superuser-Account

   Der Superuser-Account, normalerweise root genannt, ist
   vorkonfiguriert und erleichtert die Systemverwaltung, sollte aber
   nicht fu:r allta:gliche Aufgaben wie das Verschicken und Empfangen
   von Mails, Entdecken des Systems oder Programmierung benutzt
   werden.

   Das ist so, da der Superuser im Gegensatz zu normalen
   Benutzer-Accounts ohne Beschra:nkungen operiert und falsche
   Anwendung des Superuser-Accounts in spektakula:ren Katastrophen
   resultieren kann. Benutzer-Accounts sind nicht in der Lage, das
   System versehentlich zu zersto:ren, deswegen ist es generell am
   besten normale Benutzer-Accounts zu verwenden, solange man nicht
   hauptsa:chlich die extra Privilegien beno:tigt.

   Kommandos, die Sie als Superuser eingeben, sollten Sie immer
   doppelt und dreifach u:berpru:fen, da ein zusa:tzliches
   Leerzeichen oder ein fehlender Buchstabe irreparablen Datenverlust
   bedeuten kann.

   Das erste, das Sie tun sollten, nachdem Sie dieses Kapitel gelesen
   haben, ist einen unprivilegierten Benutzer fu:r Ihre eigene
   normale Benutzung zu erstellen, wenn Sie das nicht bereits getan
   haben. Das trifft immer zu, egal ob Sie ein Mehrbenutzersystem
   oder ein System laufen haben, welches Sie alleine benutzen.
   Spa:ter in diesem Kapitel besprechen wir, wie man zusa:tzliche
   Accounts erstellt und wie man zwischen dem normalen Benutzer und
   dem Superuser wechselt.

     --------------------------------------------------------------

14.4. System-Accounts

   Systembenutzer starten Dienste wie DNS, Mail-Server, Web-Server
   und so weiter. Der Grund dafu:r ist die Sicherheit; wenn die
   Programme von dem Superuser gestartet werden, ko:nnen Sie ohne
   Einschra:nkungen handeln.

   Beispiele von Systembenutzern sind daemon, operator, bind (fu:r
   den Domain Name Service) und news und www.

   nobody ist der generische unprivilegierte Systembenutzer. Bedenken
   Sie aber, dass je mehr Dienste nobody benutzen, desto mehr Dateien
   und Prozesse diesem Benutzer geho:ren und dieser Benutzer damit
   umso privilegierter wird.

     --------------------------------------------------------------

14.5. Benutzer-Accounts

   Benutzer-Accounts sind das prima:re Mittel des Zugriffs fu:r
   Menschen auf das System und isolieren Benutzer und Umgebung,
   schu:tzen die Benutzer davor, das System oder Daten anderer
   Benutzer zu bescha:digen und erlauben Benutzern ihre Umgebung
   selbst einzurichten, ohne das sich dies auf andere auswirkt.

   Jede Person, die auf Ihr System zugreift, sollte ihren eigenen
   Account besitzen. Das erlaubt Ihnen herauszufinden, wer was macht
   und ha:lt Leute davon ab, die Einstellungen der anderen zu
   vera:ndern oder Mails zu lesen, die nicht fu:r sie bestimmt waren.

   Jeder Benutzer kann sich eine eigene Umgebung mit alternativen
   Shells, Editoren, Tastaturbelegungen und Sprachen einrichten.

     --------------------------------------------------------------

14.6. Accounts vera:ndern

   Unter UNIX gibt es verschiedene Kommandos, um Accounts zu
   vera:ndern. Die gebra:uchlichsten Kommandos sind unten, gefolgt
   von einer detaillierten Beschreibung, zusammengefasst.

    Kommando                      Zusammenfassung                     
   adduser(8) Das empfohlene Werkzeug, um neue Accounts zu erstellen. 
   rmuser(8)  Das empfohlene Werkzeug, um Accounts zu lo:schen.       
   chpass(1)  Ein flexibles Werkzeug, um Informationen in der         
              Account-Datenbank zu vera:ndern.                        
   passwd(1)  Ein einfaches Werkzeug, um Passwo:rter von Accounts zu  
              a:ndern.                                                
   pw(8)      Ein ma:chtiges und flexibles Werkzeug um alle           
              Informationen u:ber Accounts zu a:ndern.                

     --------------------------------------------------------------

  14.6.1. adduser

   adduser(8) ist ein einfaches Programm um neue Benutzer
   hinzuzufu:gen. Es erstellt passwd und group Eintra:ge fu:r den
   Benutzer, genauso wie ein home Verzeichnis, kopiert ein paar
   vorgegebene Dotfiles aus /usr/share/skel und kann optional dem
   Benutzer eine ,,Willkommen``-Nachricht zuschicken.

   Beispiel 14-1. Einen Benutzer unter FreeBSD anlegen

 # adduser
 Username: jru
 Full name: J. Random User
 Uid (Leave empty for default):
 Login group [jru]:
 Login group is jru. Invite jru into other groups? []: wheel
 Login class [default]:
 Shell (sh csh tcsh zsh nologin) [sh]: zsh
 Home directory [/home/jru]:
 Home directory permissions (Leave empty for default):
 Use password-based authentication? [yes]:
 Use an empty password? (yes/no) [no]:
 Use a random password? (yes/no) [no]:
 Enter password:
 Enter password again:
 Lock out the account after creation? [no]:
 Username   : jru
 Password   : ****
 Full Name  : J. Random User
 Uid        : 1001
 Class      :
 Groups     : jru wheel
 Home       : /home/jru
 Shell      : /usr/local/bin/zsh
 Locked     : no
 OK? (yes/no): yes
 adduser: INFO: Successfully added (jru) to the user database.
 Add another user? (yes/no): no
 Goodbye!
 #

     Anmerkung: Wenn Sie das Passwort eingeben, werden weder Passwort
     noch Sternchen angezeigt. Passen Sie auf, dass Sie das Passwort
     korrekt eingeben.

     --------------------------------------------------------------

  14.6.2. rmuser

   Benutzen Sie rmuser(8), um einen Account vollsta:ndig aus dem
   System zu entfernen. rmuser(8) fu:hrt die folgenden Schritte
   durch:

    1. Entfernt den crontab(1) Eintrag des Benutzers (wenn dieser
       existiert).

    2. Entfernt alle at(1) jobs, die dem Benutzer geho:ren.

    3. Schliesst alle Prozesse des Benutzers.

    4. Entfernt den Benutzer aus der lokalen Passwort-Datei des
       Systems.

    5. Entfernt das Heimatverzeichnis des Benutzers (falls es dem
       Benutzer geho:rt).

    6. Entfernt eingegange E-Mails des Benutzers aus /var/mail.

    7. Entfernt alle Dateien des Benutzers aus tempora:ren
       Dateispeicherbereichen wie /tmp.

    8. Entfernt den Loginnamen von allen Gruppen, zu denen er
       geho:rt, aus /etc/group.

         Anmerkung: Wenn eine Gruppe leer wird und der Gruppenname
         mit dem Loginnamen identisch ist, wird die Gruppe entfernt;
         das erga:nzt sich mit den einzelnen Benutzer-Gruppen, die
         von adduser(8) fu:r jeden neuen Benutzer erstellt werden.

   Der Superuser-Account kann nicht mit rmuser(8) entfernt werden, da
   dies in den meisten Fa:llen das System unbrauchbar macht.

   Als Vorgabe wird ein interaktiver Modus benutzt, der
   sicherzustellen versucht, dass Sie wissen, was Sie tun.

   Beispiel 14-2. Interaktives Lo:schen von Account mit rmuser

 # rmuser jru
 Matching password entry:
 jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
 Is this the entry you wish to remove? y
 Remove user's home directory (/home/jru)? y
 Updating password file, updating databases, done.
 Updating group file: trusted (removing group jru -- personal group is empty) done.
 Removing user's incoming mail file /var/mail/jru: done.
 Removing files belonging to jru from /tmp: done.
 Removing files belonging to jru from /var/tmp: done.
 Removing files belonging to jru from /var/tmp/vi.recover: done.
 #

     --------------------------------------------------------------

  14.6.3. chpass

   chpass(1) a:ndert Informationen der Benutzerdatenbank wie
   Passwo:rter, Shells und perso:nliche Informationen.

   Nur Systemadministratoren, mit Superuser-Rechten, ko:nnen die
   Informationen und Passwo:rter der anderen Benutzer mit chpass(1)
   vera:ndern.

   Werden keine Optionen neben dem optionalen Loginnamen angegeben,
   zeigt chpass(1) einen Editor mit Account-Informationen an und
   aktualisiert die Account-Datenbank, wenn dieser verlassen wird.

     Anmerkung: Unter FreeBSD wird nach dem Verlassen des Editors
     nach dem Passwort gefragt, es sei denn, man ist als Superuser
     angemeldet.

   Beispiel 14-3. Interaktives chpass des Superusers

 #Changing user database information for jru.
 Login: jru
 Password: *
 Uid [#]: 1001
 Gid [# or name]: 1001
 Change [month day year]:
 Expire [month day year]:
 Class:
 Home directory: /home/jru
 Shell: /usr/local/bin/zsh
 Full Name: J. Random User
 Office Location:
 Office Phone:
 Home Phone:
 Other information:

   Der normale Benutzer kann nur einen kleinen Teil dieser
   Informationen vera:ndern und natu:rlich nur die Daten des eigenen
   Accounts.

   Beispiel 14-4. Interaktives chpass eines normalen Benutzers

 #Changing user database information for jru.
 Shell: /usr/local/bin/tcsh
 Full Name: J. Random User
 Office Location:
 Office Phone:
 Home Phone:
 Other information:

     Anmerkung: chfn(1) und chsh(1) sind nur Verweise auf chpass(1)
     genauso wie ypchpass(1), ypchfn(1) und ypchsh(1). NIS wird
     automatisch unterstu:tzt, deswegen ist es nicht notwendig das yp
     vor dem Kommando einzugeben. NIS wird spa:ter in Kapitel 30
     besprochen.

     --------------------------------------------------------------

  14.6.4. passwd

   passwd(1) ist der u:bliche Weg, Ihr eigenes Passwort als Benutzer
   zu a:ndern oder das Passwort eines anderen Benutzers als
   Superuser.

     Anmerkung: Um unberechtigte A:nderungen zu verhindern, muss bei
     einem Passwortwechsel zuerst das urspru:ngliche Passwort
     eingegeben werden.

   Beispiel 14-5. Wechseln des Passworts

 % passwd
 Changing local password for jru.
 Old password:
 New password:
 Retype new password:
 passwd: updating the database...
 passwd: done

 # passwd jru
 Changing local password for jru.
 New password:
 Retype new password:
 passwd: updating the database...
 passwd: done

   Beispiel 14-6. Als Superuser das Passwort eines anderen Accounts
   vera:ndern

 # passwd jru
 Changing local password for jru.
 New password:
 Retype new password:
 passwd: updating the database...
 passwd: done

     Anmerkung: Wie bei chpass(1) ist yppasswd(1) nur ein Verweis auf
     passwd(1). NIS wird von jedem dieser Kommandos unterstu:tzt.

     --------------------------------------------------------------

  14.6.5. pw

   pw(8) ist ein Kommandozeilenprogramm, mit dem man Accounts und
   Gruppen erstellen, entfernen, vera:ndern und anzeigen kann. Dieses
   Kommando dient als Schnittstelle zu den Benutzer- und
   Gruppendateien des Systems. pw(8) besitzt eine Reihe ma:chtiger
   Kommandozeilenschalter, die es fu:r die Benutzung in
   Shell-Skripten geeignet machen, doch finden neue Benutzer die
   Bedienung des Kommandos komplizierter, als die der anderen hier
   vorgestellten Kommandos.

     --------------------------------------------------------------

14.7. Benutzer einschra:nken

   Wenn ein System von mehreren Benutzern verwendet wird, ist es
   vielleicht notwendig, den Gebrauch des Systems zu beschra:nken.
   FreeBSD bietet dem Systemadministrator mehrere Mo:glichkeiten die
   System-Ressourcen, die ein einzelner Benutzer verwenden kann,
   einzuschra:nken. Diese Limitierungen sind in zwei Kategorien
   eingeteilt: Festplattenkontingente und andere
   Ressourcenbeschra:nkungen.

   Festplatten-Kontingente schra:nken den Plattenplatz, der einem
   Benutzer zur Verfu:gung steht, ein. Sie bieten zudem, ohne
   aufwa:ndige Berechnung, einen schnellen U:berblick u:ber den
   verbrauchten Plattenplatz. Kontingente werden in Abschnitt 19.15
   diskutiert.

   Die Login-Klassen werden in /etc/login.conf definiert. Auf die
   pra:zisen Semantiken gehen wir hier nicht weiter ein, sie ko:nnen
   jedoch in login.conf(5) nachgelesen werden. Es ist ausreichend zu
   sagen, dass jeder Benutzer einer Login-Klasse zugewiesen wird
   (standardma:ssig default) und dass jede Login-Klasse mit einem
   Satz von Login-Fa:higkeiten verbunden ist. Eine Login-Fa:higkeit
   ist ein Name=Wert Paar, in dem Name die Fa:higkeit bezeichnet und
   Wert ein willku:rlicher Text ist, der je nach Name entsprechend
   verarbeitet wird. Login-Klassen und -Fa:higkeiten zu definieren,
   ist fast schon selbsterkla:rend und wird auch in login.conf(5)
   beschrieben.

     Anmerkung: Das System verwendet die Datei /etc/login.conf
     normalerweise nicht direkt, sondern nur u:ber die Datenbank
     /etc/login.conf.db, da diese eine schnellere Abfrage erlaubt.
     Der nachstehende Befehl erzeugt die Datenbank /etc/login.conf.db
     aus der Datei /etc/login.conf:

 # cap_mkdb /etc/login.conf

   Ressourcenbeschra:nkungen unterscheiden sich von normalen
   Login-Fa:higkeiten zweifach. Erstens gibt es fu:r jede
   Beschra:nkung ein aktuelles und ein maximales Limit. Das aktuelle
   Limit kann vom Benutzer oder einer Anwendung beliebig bis zum
   maximalen Limit vera:ndert werden. Letzteres kann der Benutzer nur
   heruntersetzen. Zweitens gelten die meisten
   Ressourcenbeschra:nkungen fu:r jeden vom Benutzer gestarteten
   Prozess, nicht fu:r den Benutzer selbst. Beachten Sie jedoch, dass
   diese Unterschiede durch das spezifische Einlesen der Limits und
   nicht durch das System der Login-Fa:higkeiten entstehen (das
   heisst, Ressourcenbeschra:nkungen sind keine Login-Fa:higkeiten).

   Hier befinden sich die am ha:ufigsten benutzten
   Ressourcenbeschra:nkungen (der Rest kann zusammen mit den anderen
   Login-Fa:higkeiten in login.conf(5) gefunden werden):

   coredumpsize

           Das Limit der Gro:sse einer core-Datei, die von einem
           Programm generiert wird, unterliegt aus offensichtlichen
           Gru:nden anderen Limits der Festplattenbenutzung (zum
           Beispiel filesize oder Festplattenkontingenten). Es wird
           aber trotzdem oft als weniger harte Methode zur Kontrolle
           des Festplattenplatz-Verbrauchs verwendet: Da Benutzer die
           core-Dateien nicht selbst erstellen, und sie oft nicht
           lo:schen, kann sie diese Option davor retten, dass ihnen
           kein Festplattenspeicher mehr zur Verfu:gung steht, sollte
           ein grosses Programm, wie emacs, abstu:rzen.

   cputime

           Die maximale Rechenzeit, die ein Prozess eines Benutzers
           verbrauchen darf. U:berschreitet der Prozess diesen Wert,
           wird er vom Kernel beendet.

             Anmerkung: Die Rechenzeit wird limitiert, nicht die
             prozentuale Prozessorenbenutzung, wie es in einigen
             Feldern in top(1) und ps(1) dargestellt wird. Letzteres
             war zu der Zeit, als dies hier geschrieben wurde nicht
             mo:glich und wu:rde eher nutzlos sein: Ein Compiler -
             ein wahrscheinlich legitimer Vorgang - kann leicht fast
             100% des Prozessors in Anspruch nehmen.

   filesize

           Hiermit la:sst sich die maximale Gro:sse einer Datei
           bestimmen, die der Benutzer besitzen darf. Im Gegensatz zu
           Festplattenkontingenten ist diese Beschra:nkung nur fu:r
           jede einzelne Datei gu:ltig und nicht fu:r den Platz, den
           alle Dateien eines Benutzers verwenden.

   maxproc

           Das ist die maximale Anzahl von Prozessen, die ein
           Benutzer starten darf, und beinhaltet sowohl Vordergrund-
           als auch Hintergrundprozesse. Natu:rlich darf dieser Wert
           nicht ho:her sein als das System-Limit, das in
           kern.maxproc angegeben ist. Vergessen Sie auch nicht, dass
           ein zu kleiner Wert den Benutzer in seiner Produktivita:t
           einschra:nken ko:nnte; es ist oft nu:tzlich, mehrfach
           eingeloggt zu sein, oder Pipelines [8] zu verwenden. Ein
           paar Aufgaben, wie die Kompilierung eines grossen
           Programms, starten mehrere Prozesse (zum Beispiel make(1),
           cc(1) und andere).

   memorylocked

           Dieses Limit gibt an, wie viel virtueller Speicher von
           einem Prozess maximal im Arbeitsspeicher festgesetzt
           werden kann. (siehe auch mlock(2)). Ein paar
           systemkritische Programme, wie amd(8), verhindern damit
           einen Systemzusammenbruch, der auftreten ko:nnte, wenn sie
           aus dem Speicher genommen werden.

   memoryuse

           Bezeichnet den maximalen Speicher, den ein Prozess
           benutzen darf und beinhaltet sowohl Arbeitsspeicher-, als
           auch Swap- Benutzung. Es ist kein allu:bergreifendes Limit
           fu:r den Speicherverbrauch, aber ein guter Anfang.

   openfiles

           Mit diesem Limit la:sst sich die maximale Anzahl der von
           einem Prozess des Benutzers geo:ffneten Dateien festlegen.
           In FreeBSD werden Dateien auch verwendet, um Sockets und
           IPC-Kana:le [9] darzustellen. Setzen Sie es deshalb nicht
           zu niedrig. Das System-Limit ist im kern.maxfiles
           sysctl(8) definiert.

   sbsize

           Dieses Limit beschra:nkt den Netzwerk-Speicher, und damit
           die mbufs, die ein Benutzer verbrauchen darf. Es stammt
           aus einer Antwort auf einen DoS-Angriff, bei dem viele
           Netzwerk-Sockets geo:ffnet wurden, kann aber generell dazu
           benutzt werden Netzwerk-Verbindungen zu beschra:nken.

   stacksize

           Das ist die maximale Gro:sse, auf die der Stack eines
           Prozesses heranwachsen darf. Das allein ist natu:rlich
           nicht genug, um den Speicher zu beschra:nken, den ein
           Programm verwenden darf. Es sollte deshalb in Verbindung
           mit anderen Limits gesetzt werden.

   Beim Setzen von Ressourcenbeschra:nkungen sind noch andere Dinge
   zu beachten. Nachfolgend ein paar generelle Tipps, Empfehlungen
   und verschiedene Kommentare.

     * Von /etc/rc beim Hochfahren des Systems gestartete Prozesse
       werden der daemon Login-Klasse zugewiesen.

     * Obwohl das mitgelieferte /etc/login.conf eine Quelle von
       vernu:nftigen Limits darstellt, ko:nnen nur Sie, der
       Administrator, wissen, was fu:r Ihr System angebracht ist. Ein
       Limit zu hoch anzusetzen ko:nnte Ihr System fu:r Missbrauch
       o:ffnen, und ein zu niedriges Limit der Produktivita:t einen
       Riegel vorschieben.

     * Benutzer des X-Window Systems (X11) sollten wahrscheinlich
       mehr Ressourcen zugeteilt bekommen als andere Benutzer. X11
       beansprucht selbst schon eine Menge Ressourcen, verleitet die
       Benutzer aber auch, mehrere Programme gleichzeitig laufen zu
       lassen.

     * Bedenken Sie, dass viele Limits fu:r einzelne Prozesse gelten
       und nicht fu:r den Benutzer selbst. Setzt man zum Beispiel
       openfiles auf 50, kann jeder Prozess des Benutzers bis zu 50
       Dateien o:ffnen. Dadurch ist die maximale Anzahl von Dateien,
       die von einem Benutzer geo:ffnet werden ko:nnen, openfiles mal
       maxproc. Das gilt auch fu:r den Speicherverbrauch.

   Weitere Informationen u:ber Ressourcenbeschra:nkungen,
   Login-Klassen und -Fa:higkeiten enthalten die Hilfeseiten
   cap_mkdb(1), getrlimit(2) und login.conf(5).

     --------------------------------------------------------------

14.8. Gruppen

   Eine Gruppe ist einfach eine Zusammenfassung von Accounts. Gruppen
   werden durch den Gruppennamen und die GID (group ID)
   identifiziert. Der Kernel von FreeBSD (und den meisten anderen
   UNIX Systemen) entscheidet anhand der UID und der
   Gruppenmitgliedschaft eines Prozesses, ob er dem Prozess etwas
   erlaubt oder nicht. Im Unterschied zur UID kann ein Prozess zu
   einer Reihe von Gruppen geho:ren. Wenn jemand von der GID eines
   Benutzers oder Prozesses spricht, meint er damit meistens die
   erste Gruppe der Gruppenliste.

   Die Zuordnung von Gruppennamen zur GID steht in /etc/group, einer
   Textdatei mit vier durch Doppelpunkte getrennten Feldern. Im
   ersten Feld steht der Gruppenname, das zweite entha:lt ein
   verschlu:sseltes Passwort, das dritte gibt die GID an und das
   vierte besteht aus einer Komma separierten Liste der Mitglieder
   der Gruppe. Diese Datei kann einfach editiert werden (natu:rlich
   nur, wenn Sie dabei keine Syntaxfehler machen). Eine ausfu:hrliche
   Beschreibung der Syntax dieser Datei finden Sie in group(5).

   Wenn Sie /etc/group nicht ha:ndisch editieren mo:chten, ko:nnen
   Sie pw(8) zum Editieren benutzen. Das folgende Beispiel zeigt das
   Hinzufu:gen einer Gruppe mit dem Namen teamtwo:

   Beispiel 14-7. Setzen der Mitgliederliste einer Gruppe mit pw(8)

 # pw groupadd teamtwo
 # pw groupshow teamtwo
 teamtwo:*:1100:

   Die Zahl 1100 ist die GID der Gruppe teamtwo. Momentan hat teamtwo
   noch keine Mitglieder und ist daher ziemlich nutzlos. Um das zu
   a:ndern, nehmen wir nun jru in teamtwo auf.

   Beispiel 14-8. Ein Gruppenmitglied mit pw hinzufu:gen

 # pw groupmod teamtwo -M jru
 # pw groupshow teamtwo
 teamtwo:*:1100:jru

   Als Argument von -M geben Sie eine Komma separierte Liste von
   Mitgliedern an, die in die Gruppe aufgenommen werden sollen. Aus
   den vorherigen Abschnitten ist bekannt, dass die Passwort-Datei
   ebenfalls eine Gruppe fu:r jeden Benutzer entha:lt. Das System
   teilt dem Benutzer automatisch eine Gruppe zu, die aber vom
   groupshow Kommando von pw(8) nicht angezeigt wird. Diese
   Information wird allerdings von id(1) und a:hnlichen Werkzeugen
   angezeigt. Das heisst, dass pw(8) nur /etc/group manipuliert, es
   wird nicht versuchen, zusa:tzliche Informationen aus /etc/passwd
   zu lesen.

   Beispiel 14-9. Hinzufu:gen eines neuen Gruppenmitglieds mittels
   pw(8)

 # pw groupmod teamtwo -m db
 # pw groupshow teamtwo
 teamtwo:*:1100:jru,db

   Die Argumente zur Option -m ist eine durch Komma getrennte Liste
   von Benutzern, die der Gruppe hinzugefu:gt werden sollen. Anders
   als im vorherigen Beispiel werden diese Benutzer in die Gruppe
   aufgenommen und ersetzen nicht die Liste der bereits bestehenden
   Benutzer in der Gruppe.

   Beispiel 14-10. Mit id die Gruppenzugeho:rigkeit bestimmen

 % id jru
 uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

   Wie Sie sehen, ist jru Mitglied von jru und teamtwo.

   Weitere Informationen entnehmen Sie bitte pw(8).

     --------------------------------------------------------------

                         Kapitel 15. Sicherheit

   Viel von diesem Kapitel stammt aus der security(7) Manualpage von
   Matthew Dillon. U:bersetzt von Martin Heinen.

     --------------------------------------------------------------

15.1. U:bersicht

   Dieses Kapitel bietet eine Einfu:hrung in die Konzepte der
   Systemsicherheit. Neben einigen Daumenregeln werden
   weiterfu:hrende Themen wie S/Key, OpenSSL und Kerberos diskutiert.
   Die meisten der hier besprochenen Punkte treffen sowohl auf die
   Systemsicherheit sowie die Internetsicherheit zu. Das Internet hat
   aufgeho:rt ein "friedlicher" Ort zu sein, an dem Sie nur nette
   Leute finden werden. Es ist unumga:nglich, dass Sie Ihre Daten,
   Ihr geistiges Eigentum, Ihre Zeit und vieles mehr vor dem Zugriff
   von Hackern schu:tzen.

   FreeBSD besitzt eine Reihe von Werkzeugen und Mechanismen, um die
   Integrita:t und die Sicherheit Ihrer Systeme und Netzwerke zu
   gewa:hrleisten.

   Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie:

     * Grundlegende auf FreeBSD bezogene Sicherheitsaspekte kennen.

     * Die verschiedenen Verschlu:sselungsmechanismen von FreeBSD,
       wie DES oder MD5, kennen.

     * Wissen, wie Sie ein Einmalpasswo:rter zur Authentifizierung
       verwenden.

     * TCP-Wrapper fu:r inetd einrichten ko:nnen.

     * Wissen, wie Sie Kerberos5 unter FreeBSD einrichten.

     * Firewalls mit IPFW erstellen ko:nnen.

     * Wissen, wie Sie IPsec konfigurieren und ein VPN zwischen
       FreeBSD/Windows Systemen einrichten,

     * OpenSSH, FreeBSDs Implementierung von SSH, konfigurieren und
       benutzen ko:nnen.

     * Portaudit anwenden ko:nnen, um Softwarepakete Dritter, die Sie
       u:ber die Ports-Sammlung installieren, auf bekannte
       Sicherheitslu:cken hin zu u:berpru:fen.

     * Mit FreeBSD-Sicherheitshinweisen umgehen ko:nnen.

     * Eine Vorstellung davon haben, was Prozessu:berwachung (Process
       Accounting) ist und wie Sie diese Funktion unter FreeBSD
       aktivieren ko:nnen.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Grundlegende Konzepte von FreeBSD und dem Internet verstehen.

   Dieses Buch behandelt weitere Sicherheitsthemen. Beispielsweise
   werden vorgeschriebene Zugriffskontrollen in Kapitel 17 und
   Firewalls in Kapitel 31 besprochen.

     --------------------------------------------------------------

15.2. Einfu:hrung

   Sicherheit ist ein Konzept, das beim Systemadministrator anfa:ngt
   und aufho:rt. Obwohl alle BSD UNIX Mehrbenutzersysteme u:ber
   Sicherheitsfunktionen verfu:gen, ist es wohl eine der gro:ssten
   Aufgaben eines Systemadministrators zusa:tzliche
   Sicherheitsmechanismen zu erstellen und zu pflegen. Maschinen sind
   nur so sicher wie sie gemacht werden und Sicherheitsanforderungen
   stehen oft der Benutzerfreundlichkeit entgegen. Auf UNIX Systemen
   ko:nnen sehr viele Prozesse gleichzeitig laufen und viele dieser
   Prozesse sind Server, das heisst von aussen kann auf sie
   zugegriffen werden. In einer Zeit, in der die Minicomputer und
   Mainframes von gestern die Desktops von heute sind und Rechner
   immer mehr vernetzt werden, kommt der Sicherheit eine grosse
   Bedeutung zu.

   Zur Systemsicherheit geho:rt auch die Bescha:ftigung mit
   verschiedenen Arten von Angriffen, auch solchen, die versuchen,
   ein System still zu legen, oder sonst unbrauchbar zu machen ohne
   root zu kompromittieren. Sicherheitsaspekte lassen sich in mehrere
   Kategorien unterteilen:

    1. Denial-of-Service Angriffe.

    2. Kompromittierte Accounts.

    3. Kompromittierter root-Account durch zugreifbare Server.

    4. Kompromittierter root-Account durch kompromittierte Accounts.

    5. Einrichten von Hintertu:ren.

   Ein Denial-of-Service (Verhinderung von Diensten, DoS) Angriff
   entzieht einer Maschine Ressourcen, die sie zur Bereitstellung von
   Diensten beno:tigt. Meist versuchen Denial-of-Service Angriffe die
   Dienste oder den Netzwerkstack einer Maschine zu u:berlasten, um
   so die Maschine auszuschalten oder nicht nutzbar zu machen. Einige
   Angriffe versuchen, Fehler im Netzwerkstack auszunutzen, und die
   Maschine mit einem einzigen Paket auszuschalten. Diese Art des
   Angriffs kann nur verhindert werden, indem der entsprechende
   Fehler im Kernel behoben wird. Oft ko:nnen Angriffe auf Dienste
   durch die Angabe von Optionen verhindert werden, die die Last, die
   ein Dienst auf das System unter widrigen Umsta:nden ausu:ben kann,
   begrenzt. Angriffen auf das Netzwerk ist schwerer zu begegnen.
   Ausser durch Trennen der Internetverbindung ist zum Beispiel einem
   Angriff mit gefa:lschten Paketen nicht zu begegnen. Diese Art von
   Angriff wird Ihr System zwar nicht unbrauchbar machen, kann aber
   die Internetverbindung sa:ttigen.

   Kompromittierte Accounts kommen noch ha:ufiger als DoS Angriffe
   vor. Viele Systemadministratoren lassen auf ihren Maschinen noch
   die Dienste telnetd, rlogind, rshd und ftpd laufen. Verbindungen
   zu diesen Servern werden nicht verschlu:sselt. Wenn Sie eine
   gro:ssere Benutzerzahl auf Ihrem System haben, die sich von einem
   entfernten System anmelden, ist die Folge davon, dass das Passwort
   eines oder mehrerer Benutzer ausgespa:ht wurde. Ein aufmerksamer
   Systemadministrator wird die Logs u:ber Anmeldungen von entfernten
   Systemen auf verda:chtige Quelladressen, auch fu:r erfolgreiche
   Anmeldungen, untersuchen.

   Es ist immer davon auszugehen, dass ein Angreifer, der Zugriff auf
   einen Account hat, Zugang zum root-Account erlangt. Allerdings
   gibt der Zugriff auf einen Account auf einem gut gesicherten und
   gepflegten System nicht notwendig Zugriff auf den root-Account.
   Diese Unterscheidung ist wichtig, da ein Angreifer, der keinen
   Zugang zu root besitzt, seine Spuren nicht verwischen kann. Er
   kann ho:chstens die Dateien des betreffenden Benutzers vera:ndern
   oder die Maschine stilllegen. Kompromittierte Accounts sind sehr
   ha:ufig, da Benutzer meist nicht dieselben Vorsichtsmassnahmen wie
   Administratoren treffen.

   Es gibt viele Wege, Zugang zum root-Account eines Systems zu
   bekommen: Ein Angreifer kann das Passwort von root kennen, er kann
   einen Fehler in einem Server entdecken, der unter root la:uft und
   dann u:ber eine Netzwerkverbindung zu diesem Server einbrechen.
   Oder er kennt einen Fehler in einem SUID-root Programm, der es ihm
   erlaubt, root zu werden, wenn er einmal einen Account
   kompromittiert hat. Wenn ein Angreifer einen Weg gefunden hat,
   root zu werden, braucht er vielleicht keine Hintertu:r auf dem
   System installieren. Viele der heute bekannten und geschlossenen
   Sicherheitslo:cher, die zu einem root Zugriff fu:hren, verlangen
   vom Angreifer einen erheblichen Aufwand, um seine Spuren zu
   verwischen. Aus diesem Grund wird er sich wahrscheinlich
   entschliessen, eine Hintertu:r (engl. Backdoor) zu installieren.
   Eine Hintertu:r erlaubt es dem Angreifer leicht auf den
   root-Account zuzugreifen. Einem klugen Systemadministrator erlaubt
   sie allerdings auch, den Einbruch zu entdecken. Wenn Sie es einem
   Angreifer verwehren, Hintertu:ren zu installieren, kann das
   scha:dlich fu:r Ihre Sicherheit sein, da es vielleicht verhindert,
   dass die Lu:cke, die der Angreifer fu:r den Einbruch ausgenutzt
   hat, entdeckt wird.

   Sicherheitsmassnahmen sollten immer in mehreren Schichten angelegt
   werden. Die Schichten ko:nnen wie folgt eingeteilt werden:

    1. Absichern von root und Accounts.

    2. Absichern von unter root laufenden Servern und SUID/SGID
       Programmen.

    3. Absichern von Accounts.

    4. Absichern der Passwort-Datei.

    5. Absichern des Kernels, der Gera:te und von Dateisystemen.

    6. Schnelles Aufdecken von unbefugten Vera:nderungen des Systems.

    7. Paranoia.

   Die einzelnen Punkte der obigen Liste werden im na:chsten
   Abschnitt genauer behandelt.

     --------------------------------------------------------------

15.3. Absichern von FreeBSD

     Kommandos und Protokolle: In diesem Abschnitt werden Anwendungen
     fett gekennzeichnet, spezifische Kommandos werden in einer
     Fixschrift dargestellt und Protokolle verwenden die normale
     Schriftart. Diese typographische Konvention hilft, Begriffe wie
     ssh zu unterscheiden, die sowohl Protokoll als auch Kommando
     sein ko:nnen.

   Die folgenden Abschnitte behandeln die im letzten Abschnitt
   erwa:hnten Methoden Ihr FreeBSD-System zu sichern.

     --------------------------------------------------------------

  15.3.1. Absichern von root und Accounts

   Zuallererst, ku:mmern Sie sich nicht um die Absicherung von
   Accounts, wenn Sie root noch nicht abgesichert haben. Auf den
   meisten Systemen ist root ein Passwort zugewiesen. Sie sollten
   immer davon ausgehen, dass dieses Passwort kompromittiert ist. Das
   heisst nicht, dass Sie das Passwort entfernen sollten, da es meist
   fu:r den Konsolenzugriff notwendig ist. Vielmehr heisst es, dass
   Sie das Passwort nicht ausserhalb der Konsole, auch nicht zusammen
   mit su(1), verwenden sollten. Stellen Sie sicher, dass Ihre PTYs
   in ttys als unsicher markiert sind und damit Anmeldungen von root
   mit telnet oder rlogin verboten sind. Wenn Sie andere Anwendungen
   wie SSH zum Anmelden benutzen, vergewissern Sie sich, dass dort
   ebenfalls Anmeldungen als root verboten sind. Fu:r SSH editieren
   Sie /etc/ssh/sshd_config und u:berpru:fen, dass PermitRootLogin
   auf no gesetzt ist. Beachten Sie jede Zugriffsmethode - Dienste
   wie FTP werden oft vergessen. Nur an der Systemkonsole sollte ein
   direktes Anmelden als root mo:glich sein.

   Natu:rlich mu:ssen Sie als Systemadministrator root-Zugriff
   erlangen ko:nnen. Dieser sollte aber durch zusa:tzliche
   Passwo:rter geschu:tzt sein. Ein Weg, Zugang zu root zu
   ermo:glichen, ist es, berechtigte Mitarbeiter in /etc/group in die
   Gruppe wheel aufzunehmen. Die Personen, die Mitglieder in der
   Gruppe wheel sind, ko:nnen mit su zu root wechseln. Ihre
   Mitarbeiter sollten niemals die Gruppe wheel als prima:re Gruppe
   in /etc/passwd besitzen. Mitarbeiter sollten der Gruppe staff
   angeho:ren und u:ber /etc/group in wheel aufgenommen werden. Es
   sollten auch nur die Mitarbeiter, die wirklich root Zugriff
   beno:tigen in wheel aufgenommen werden. Mit anderen
   Authentifizierungsmethoden mu:ssen Sie niemanden in wheel
   aufnehmen. Wenn Sie z.B. Kerberos benutzen, wechseln Sie mit
   ksu(1) zu root und der Zugriff wird mit der Datei .k5login
   geregelt. Dies ist vielleicht eine bessere Lo:sung, da es der
   wheel-Mechanismus einem Angreifer immer noch mo:glich macht, den
   root-Account zu knacken, nachdem er einen Mitarbeiter-Account
   geknackt hat. Obwohl der wheel-Mechanismus besser als gar nichts
   ist, ist er nicht unbedingt die sicherste Lo:sung.

   Um ein Konto komplett zu sperren, verwenden Sie den Befehl pw(8):

 #pw lock staff

   Danach ist es diesem Benutzer nicht mehr mo:glich (auch nicht mit
   ssh(1)), sich anzumelden.

   Eine weitere Mo:glichkeit, bestimmte Benutzer zu sperren, ist es,
   das verschlu:sselte Passwort durch das Zeichen "*" zu ersetzen. Da
   ein verschlu:sseltes Passwort niemals diesem Zeichen entsprechen
   kann, kann sich der betroffene Benutzer ebenfalls nicht mehr
   anmelden. Beispielsweise mu:sste dazu das Konto

 foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh

   wie folgt abgea:ndert werden:

 foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh

   Durch diese A:nderung wird der Benutzer foobar daran gehindert,
   sich auf konventionellem Wege am System anzumelden. Diese
   Massnahmen greifen allerdings nicht, wenn das betroffene System
   auch eine Anmeldung u:ber Kerberos oder ssh(1) erlaubt.

   Diese Sicherheitsmechanismen setzen voraus, dass Sie sich von
   einer restriktiven Maschine auf einer weniger restriktiven
   Maschine anmelden. Wenn zum Beispiel auf Ihrem Hauptrechner alle
   mo:glichen Arten von Servern laufen, so sollten auf Ihrer
   Workstation keine Server laufen. Um Ihre Workstation vernu:nftig
   abzusichern, sollten auf Ihr so wenig Server wie mo:glich bis hin
   zu keinem Server laufen. Sie sollten zudem u:ber einen
   Bildschirmschoner verfu:gen, der mit einem Passwort gesichert ist.
   Natu:rlich kann ein Angreifer, der physikalischen Zugang zu einer
   Maschine hat, jede Art von Sicherheitsmechanismen umgehen. Dieses
   Problem sollten Sie daher auch in Ihren U:berlegungen
   beru:cksichtigen. Beachten Sie dabei aber, dass der Grossteil der
   Einbru:che u:ber das Netzwerk erfolgt und die Einbrecher keinen
   Zugang zu der Maschine besitzen.

   Mit Kerberos ko:nnen Sie das Passwort eines Mitarbeiters an einer
   Stelle a:ndern und alle Maschinen, auf denen der Mitarbeiter einen
   Account hat, beachten die A:nderung sofort. Wird der Account eines
   Mitarbeiters einmal kompromittiert, so sollte die Fa:higkeit, das
   Passwort mit einem Schlag auf allen Maschinen zu a:ndern, nicht
   unterscha:tzt werden. Mit einzelnen Passwo:rtern wird es
   schwierig, das Passwort auf N Maschinen zu a:ndern. Mit Kerberos
   ko:nnen Sie auch Beschra:nkungen fu:r Passwo:rter festlegen: Nicht
   nur das Ticket kann nach einiger Zeit ungu:ltig werden, Sie
   ko:nnen auch festlegen, dass ein Benutzer nach einer bestimmten
   Zeit, z.B. nach einem Monat, das Passwort wechseln muss.

     --------------------------------------------------------------

  15.3.2. Absichern von unter root laufenden Servern und SUID/SGID
  Programmen

   Ein kluger Systemadministrator la:sst nur die Dienste, die er
   wirklich braucht, laufen; nicht mehr und auch nicht weniger.
   Beachten Sie, dass Server von Dritten die fehleranfa:lligsten
   sind. Wenn Sie z.B. eine alte Version von imapd oder popper laufen
   lassen, ist das so, als wu:rden Sie der ganzen Welt freien Zugang
   zu root geben. Lassen Sie keine Server laufen, die Sie vorher
   nicht genau u:berpru:ft haben. Viele Server mu:ssen nicht unter
   root laufen, zum Beispiel ko:nnen ntalk, comsat und finger in
   speziellen Sandka:sten unter einem Benutzer laufen. Ein Sandkasten
   ist keine perfekte Lo:sung, wenn Sie nicht eine Menge Arbeit in
   die Konfiguration investieren, doch bewa:hrt sich hier das
   Prinzip, die Sicherheit in Schichten aufzubauen. Wenn es einem
   Angreifer gelingt, in einen Server, der in einem Sandkasten
   la:uft, einzubrechen, dann muss er immer noch aus dem Sandkasten
   selber ausbrechen. Je mehr Schichten der Angreifer zu durchbrechen
   hat, desto kleiner sind seine Aussichten auf Erfolg. In der
   Vergangenheit wurden praktisch in jedem Server, der unter root
   la:uft, Lu:cken gefunden, die zu einem root Zugriff fu:hrten. Dies
   betrifft selbst die grundlegenden Systemdienste. Wenn Sie eine
   Maschine betreiben, auf der man sich nur mit SSH anmelden kann,
   dann stellen Sie die Dienste telnetd, rshd oder rlogind ab!

   In der Voreinstellung laufen unter FreeBSD ntalkd, comsat und
   finger nun in einem Sandkasten. Ein weiteres Programm, das in
   einem Sandkasten laufen sollte, ist named(8). In
   /etc/defaults/rc.conf sind die notwendigen Argumente, um named in
   einem Sandkasten laufen zu lassen, in kommentierter Form schon
   enthalten. Abha:ngig davon, ob Sie ein neues System installieren
   oder ein altes System aktualisieren, sind die hierfu:r beno:tigten
   Benutzer noch nicht installiert. Ein kluger Systemadministrator
   sollte immer nach Mo:glichkeiten suchen, Server in einem
   Sandkasten laufen zu lassen.

   Einige Server wie sendmail, popper, imapd und ftpd werden
   normalerweise nicht in Sandka:sten betrieben. Zu einigen Servern
   gibt es Alternativen, aber diese wollen Sie vielleicht wegen der
   zusa:tzlich no:tigen Arbeit nicht installieren (ein weiteres
   Beispiel fu:r den Widerspruch zwischen Sicherheit und
   Benutzerfreundlichkeit). In diesem Fall mu:ssen Sie die Server
   unter root laufen lassen und auf die eingebauten Mechanismen
   vertrauen, Einbru:che zu entdecken.

   Weitere potentielle Lo:cher, die zu einem root-Zugriff fu:hren
   ko:nnen, sind die auf dem System installierten SUID- und
   SGID-Programme. Die meisten dieser Programme wie rlogin stehen in
   /bin, /sbin, /usr/bin, oder /usr/sbin. Obwohl nichts 100% sicher
   ist, ko:nnen Sie davon ausgehen, dass die SUID- und SGID-Programme
   des Basissystems ausreichend sicher sind. Allerdings werden ab und
   an in diesen Programmen Lo:cher gefunden. 1998 wurde in Xlib ein
   Loch gefunden, das xterm, der normal mit SUID installiert wird,
   verwundbar machte. Es ist besser auf der sicheren Seite zu sein,
   als sich spa:ter zu beklagen, darum wird ein kluger
   Systemadministrator den Zugriff auf SUID-Programme mit einer
   Gruppe, auf die nur Mitarbeiter zugreifen ko:nnen, beschra:nken.
   SUID-Programme, die niemand benutzt, sollten mit chmod 000
   deaktiviert werden. Zum Beispiel braucht ein Server ohne
   Bildschirm kein xterm Programm. SGID-Programme sind vergleichbar
   gefa:hrlich. Wenn ein Einbrecher Zugriff auf SGID-kmem Programm
   erha:lt, kann er vielleicht /dev/kmem und damit die
   verschlu:sselte Passwortdatei lesen. Dies kompromittiert unter
   Umsta:nden jeden Account, der mit einem Passwort geschu:tzt ist.
   Alternativ kann ein Einbrecher, der in die Gruppe kmem
   eingebrochen ist, die Tastendru:cke auf PTYs verfolgen. Dies
   schliesst auch PTYs mit ein, auf denen sich ein Benutzer mit
   sicheren Methoden anmeldet. Ein Einbrecher, der Zugriff auf die
   tty Gruppe hat, kann auf fast jeden Terminal anderer Benutzer
   schreiben. Wenn der Benutzer einen Terminal-Emulator benutzt, der
   u:ber eine Tastatur-Simulation verfu:gt, ko:nnte der Angreifer
   Daten generieren, die den Terminal veranlassen, ein Kommando unter
   diesem Benutzer laufen zu lassen.

     --------------------------------------------------------------

  15.3.3. Absichern von Accounts

   Accounts sind fu:r gewo:hnlich sehr schwierig abzusichern.
   Wa:hrend Sie drakonische Beschra:nkungen fu:r Ihre Mitarbeiter
   einrichten und deren Passwo:rter als ungu:ltig markieren ko:nnen,
   werden Sie das vielleicht bei den normalen Accounts nicht
   durchsetzen. Wenn Sie u:ber ausreichend Macht verfu:gen, gelingt
   es Ihnen vielleicht doch, ansonsten mu:ssen Sie diese Accounts
   aufmerksam u:berwachen. Wegen der zusa:tzlichen
   Administrationsarbeit und der no:tigen technischen Unterstu:tzung
   ist die Verwendung von SSH und Kerberos mit normalen Accounts
   erschwert, obwohl das natu:rlich sicherer als die Verwendung von
   verschlu:sselten Passwo:rtern ist.

     --------------------------------------------------------------

  15.3.4. Absichern der Passwort-Datei

   Der einzig sichere Weg ist, so viele Accounts wie mo:glich als
   ungu:ltig zu markieren und SSH oder Kerberos zu benutzen, um auf
   sie zuzugreifen. Obwohl die Datei /etc/spwd.db, die die
   verschlu:sselten Passwo:rter entha:lt, nur von root gelesen werden
   kann, mag ein Angreifer lesenden Zugriff auf diese Datei erlangen,
   ohne die Fa:higkeit sie auch zu beschreiben.

   Ihre U:berwachungsskripten sollten A:nderungen an der
   Passwort-Datei melden (siehe U:berpru:fen der Integrita:t von
   Dateien weiter unten).

     --------------------------------------------------------------

  15.3.5. Absichern des Kernels, der Gera:te und von Dateisystemen

   Wenn ein Angreifer root-Zugriff erlangt, kann er so ziemlich alles
   mit Ihrem System anstellen, doch sollten Sie es ihm nicht zu
   leicht machen. Die meisten modernen Kernel haben zum Beispiel
   einen Gera:tetreiber, der es erlaubt, Pakete abzuho:ren. Unter
   FreeBSD wird das Gera:t bpf genannt. Fu:r gewo:hnlich wird ein
   Angreifer versuchen, dieses Gera:t zu nutzen, um Pakete
   abzuho:ren. Sie sollten ihm diese Gelegenheit nicht geben und auf
   den meisten Systemen ist das Gera:t bpf nicht no:tig.

   Auch wenn Sie bpf nicht verwenden, mu:ssen Sie sich immer noch um
   /dev/mem und /dev/kmem sorgen. Ausserdem kann der Angreifer immer
   noch auf die rohen Gera:te (raw devices) schreiben. Weiterhin gibt
   es ein Programm zum Nachladen von Modulen in den Kernel:
   kldload(8). Ein unternehmungslustiger Angreifer kann dies
   benutzen, um sein eigenes bpf oder ein anderes zum Abho:ren
   geeignetes Gera:t in den laufenden Kernel einzubringen. Um dieses
   Problem zu vermeiden, mu:ssen Sie den Kernel auf einem ho:heren
   Sicherheitslevel laufen lassen, mindestens auf securelevel 1.

   Das Securelevel des Kernels kann auf verschiedene Wege gesetzt
   werden. Der einfachste Weg ist das erho:hen des Securelevel des
   laufenden Kernels durch ein sysctl der kern.securelevel Kernel
   Variablen:

 # sysctl kern.securelevel=1

   Standardma:ssig bootet der FreeBSD Kernel mit einem Securelevel
   von -1. Der Securelevel wird solange bei -1 bleiben, bis er
   entweder durch den Administrator oder von init(8) durch einen
   Eintrag im Startup Script vera:ndert wird. Der Securelevel kann
   wa:hrend des Systemstarts durch das Setzen der Variable
   kern_securelevel_enable auf YES und der Wert der Variable
   kern_securelevel auf den gewu:nschten Securelevel in der
   /etc/rc.conf erho:ht werden.

   Der Standard Securelevel von einem FreeBSD-System direkt nach dem
   Start ist -1. Dies wird "insecure mode" genannt, da zum Beispiel
   unvera:ndeliche Dateiflags abgeschaltet werden ko:nnten, von allen
   Gera:ten gelesen und auf alle geschrieben werden kann.

   Sobald der Securelevel auf den Wert 1 oder ho:her gesetzt ist,
   werden die append-only und die unvera:nderlichen Dateien
   geschu:tzt, die Flags ko:nnen nicht abgeschaltet werden und der
   Zugriff auf raw Devices ist verboten. Ho:here Levels verbieten
   mehr Aktionen. Fu:r einen vollsta:ndige Liste aller Securelevels,
   lesen Sie bitte die security(7) Manual Seite (oder die Manual
   Seite von init(8) fu:r a:ltere Releases als FreeBSD 7.0).

     Anmerkung: Das Erho:hen des Securelevels auf 1 oder ho:her kann
     einige Probleme mit X11 verursachen (Zugriff auf /dev/io wird
     geblockt), ebenso die Installation von FreeBSD aus den Quellen
     (der installworld Teil muss zeitweilig die append-only und die
     unvera:nderlichen Flags einiger Dateien zuru:cksetzen), und auch
     noch in einigen anderen Fa:llen. Manchmal kann es, wie bei X11,
     durch das sehr fru:he Starten von xdm(1) im Boot Prozess
     mo:glich sein, dies zu umgehen, wenn der Securelevel noch
     niedrig genug ist. Workarounds wie dieser sind nicht f"r alle
     Securelevels und fu:r alle Einschra:nkungen, die sie schaffen,
     mo:glich. Ein bisschen Vorausplanung ist eine gute Idee. Das
     Versta:ndnis fu:r die Beschra:nkungen, die durch jedes
     Securelevel verursacht werden, ist wichtig, da sie die einfache
     Benutzung des Systems verschlechtern. Es vereinfacht auch die
     Wahl einer Standardeinstellung und schu:tzt vor U:berraschungen.

   Wenn das Securelevel des Kernel auf einen Wert von 1 oder ho:her
   gesetzt ist, kann es sinnvoll sein das schg Flag auf kritische
   Startdateien, Verzeichnisse und Scripte (z.B. alles was la:uft bis
   zu dem Punkt auf dem das Securelevel gesetzt ist) zu setzen. Dies
   ko:nnte etwas u:,bertrieben sein, und auch das Upgrade des Systems
   ist sehr viel schwerer, wenn es auf einem hohen Securelevel
   la:uft. Ein strengerer Kompromiss ist es, das System auf einem
   ho:heren Securelevel laufen zu lassen, aber keine schg Flags fu:r
   alle Systemdateien und Verzeichnisse zu setzen. Eine andere
   Mo:glichkeit ist es, einfach die Verzeichnisse / und /usr
   read-only zu mounten. Es sei darauf hingewiesen, dass Sie nicht
   vor lauter U:berlegen das Wichtigste, na:mlich die Entdeckung
   eines Eindringens, vergessen.

     --------------------------------------------------------------

  15.3.6. U:berpru:fen der Integrita:t von Dateien

   Sie ko:nnen die Systemkonfiguration und die Dateien nur so weit
   schu:tzen, wie es die Benutzbarkeit des Systems nicht
   einschra:nkt. Wenn Sie zum Beispiel mit chflags die Option schg
   auf die meisten Dateien in / und /usr setzen, kann das Ihre Arbeit
   mehr behindern als nu:tzen. Die Massnahme schu:tzt zwar die
   Dateien, schliesst aber auch eine Mo:glichkeit, Vera:nderungen zu
   entdecken, aus. Die letzte Schicht des Sicherheitsmodells - das
   Aufdecken von Einbru:chen - ist sicherlich die wichtigste. Alle
   Sicherheitsmassnahmen sind nichts wert, oder wiegen Sie in
   falscher Sicherheit, wenn Sie nicht in der Lage sind, einen
   mo:glichen Einbruch zu entdecken. Die Ha:lfte der
   Sicherheitsmassnahmen hat die Aufgabe, einen Einbruch zu
   verlangsamen, um es zu ermo:glichen, den Einbrecher auf frischer
   Tat zu ertappen.

   Der beste Weg, einen Einbruch zu entdecken, ist es, nach
   vera:nderten, fehlenden oder unerwarteten Dateien zu suchen. Der
   wiederum beste Weg, nach vera:nderten Dateien zu suchen, ist es,
   die Suche von einem anderen (oft zentralen) besonders geschu:tzten
   System durchzufu:hren. Es ist wichtig, dass Ihre
   Sicherheitsu:berpru:fungen vor einem Angreifer verborgen bleiben
   und daher sind sie auf einem besonders geschu:tzten System gut
   aufgehoben. Um dies optimal auszunutzen, mu:ssen Sie dem besonders
   geschu:tzten System Zugriffsrechte auf die zu schu:tzenden Systeme
   geben. Sie ko:nnen die Dateisysteme der zu schu:tzenden Systeme
   schreibgeschu:tzt fu:r das besonders geschu:tzte System
   exportieren, oder Sie ko:nnen der besonders geschu:tzten Maschine
   SSH auf die anderen Maschinen erlauben, indem Sie
   SSH-Schlu:sselpaare installieren. Mit Ausnahme des verursachten
   Netzwerkverkehrs ist die NFS-Methode die am wenigsten sichtbare.
   Sie erlaubt es Ihnen, nahezu unentdeckt die Dateisysteme der
   Clients zu beobachten. Wenn Ihr besonders geschu:tztes System mit
   den Clients u:ber einen Switch verbunden ist, ist die NFS-Methode
   oft das Mittel der Wahl. Wenn das besonders geschu:tzte System
   allerdings mit einem Hub verbunden ist, oder der Zugriff u:ber
   mehrere Router geschieht, ist die NFS-Methode aus der
   Netzwerksicht zu unsicher. In einem solchen Fall ist SSH besser
   geeignet, auch wenn es deutliche Spuren hinterla:sst.

   Wenn das besonders geschu:tzte System lesenden Zugriff auf die
   Clients hat, mu:ssen Sie Skripten schreiben, die die U:berwachung
   durchfu:hren. Wenn Sie die NFS-Methode verwenden, ko:nnen Sie dazu
   einfache Systemwerkzeuge wie find(1) und md5(1) benutzen. Am
   besten berechnen Sie einmal am Tag MD5-Pru:fsummen der Dateien,
   Konfigurationsdateien in /etc und /usr/local/etc sollten o:fter
   u:berpru:ft werden. Wenn Unstimmigkeiten zwischen den auf der
   besonders geschu:tzten Maschine gehaltenen MD5-Pru:fsummen und den
   ermittelten Pru:fsummen festgestellt werden, sollte Ihr System
   einen Systemadministrator benachrichtigen, der den Unstimmigkeiten
   dann nachgehen sollte. Ein gutes Skript u:berpru:ft das System
   auch auf verda:chtige SUID-Programme sowie gelo:schte oder neue
   Dateien in / und /usr.

   Wenn Sie SSH anstelle von NFS benutzen, wird das Erstellen der
   Skripten schwieriger. Sie mu:ssen die Skripten und die Programme
   wie find mit scp auf den Client kopieren. Damit machen Sie die
   U:berpru:fung fu:r einen Angreifer sichtbar. Ausserdem kann der
   SSH-Client auf dem Zielsystem schon kompromittiert sein.
   Zusammenfassend kann der Einsatz von SSH no:tig sein, wenn Sie
   u:ber ungesicherte Verbindungen arbeiten, aber der Umgang mit
   dieser Methode ist auch sehr viel schwieriger.

   Ein gutes Sicherheitsskript wird auch Dateien von Benutzern, die
   den Zugriff auf ein System ermo:glichen, wie .rhosts, .shosts,
   .ssh/authorized_keys usw., auf Vera:nderungen untersuchen, die
   u:ber die Mo:glichkeiten einer U:berpru:fung mit MD5 (die ja nur
   Vera:nderungen erkennen kann) hinausgehen.

   Wenn Sie u:ber grosse Partitionen verfu:gen, kann es zu lange
   dauern, jede Datei zu u:berpru:fen. In diesem Fall sollten Sie
   beim Einha:ngen des Dateisystems Optionen setzen, die das
   Ausfu:hren von SUID-Programmen verbieten. mount(8) stellt dazu
   nosuid zur Verfu:gung. Sie sollten diese Dateien aber trotzdem
   mindestens einmal die Woche u:berpru:fen, da das Ziel dieser
   Schicht das Aufdecken eines Einbruchs, auch wenn er nicht
   erfolgreich war, ist.

   Die Prozessu:berwachung (siehe accton(8)) des Betriebssystems
   steht ein gu:nstiges Werkzeug zur Verfu:gung, dass sich bei der
   Analyse eines Einbruchs als nu:tzlich erweisen kann. Insbesondere
   ko:nnen Sie damit herausfinden, wie der Einbrecher in das System
   eingedrungen ist, vorausgesetzt die Dateien der
   Prozessu:berwachung sind noch alle intakt.

   Schliesslich sollten die Sicherheitsskripten die Logdateien
   analysieren. Dies sollte so sicher wie mo:glich durchgefu:hrt
   werden, nu:tzlich ist das Schreiben von Logdateien auf entfernte
   Systeme mit syslog. Ein Einbrecher wird versuchen, seine Spuren zu
   verwischen. Die Logdateien sind wichtig fu:r den
   Systemadministrator, da er aus ihnen den Zeitpunkt und die Art des
   Einbruchs bestimmen kann. Eine Mo:glichkeit, die Logdateien
   unvera:ndert aufzuheben, ist es, die Systemkonsole auf einen
   seriellen Port zu legen und die Informationen dort von einer
   gesicherten Maschine auszulesen.

     --------------------------------------------------------------

  15.3.7. Paranoia

   Es schadet nicht, ein bisschen paranoid zu sein. Grundsa:tzlich
   darf ein Systemadministrator jede Sicherheitsmassnahme treffen,
   die die Bedienbarkeit des Systems nicht einschra:nkt. Er kann auch
   Massnahmen treffen, die die Bedienbarkeit einschra:nken, wenn er
   diese vorher genau durchdacht hat. Was noch wichtiger ist: Halten
   Sie sich nicht sklavisch an dieses Dokument, sondern fu:hren Sie
   eigene Massnahmen ein, um nicht einem ku:nftigen Angreifer, der
   auch Zugriff auf dieses Dokument hat, alle Ihre Methoden zu
   verraten.

     --------------------------------------------------------------

  15.3.8. Denial-of-Service Angriffe

   Dieser Abschnitt behandelt Denial-of-Service Angriffe (DoS). Ein
   DoS-Angriff findet typischerweise auf der Paketebene statt.
   Wa:hrend Sie nicht viel gegen moderne Angriffe mit falschen
   Paketen, die das Netzwerk sa:ttigen, ausrichten ko:nnen, ko:nnen
   Sie sehr wohl den Schaden begrenzen, den solche Angriffe
   verursachen ko:nnen und insbesondere einen kompletten
   Serverausfall verhindern, indem Sie beispielsweise folgende
   Vorkehrungen treffen:

    1. Begrenzen von fork() Aufrufen.

    2. Begrenzen von Sprungbrett-Angriffen (ICMP response Angriffen,
       ping zu Broadcast-Adressen usw.).

    3. Kernel-Cache fu:r Routen.

   Ein ha:ufiger DoS-Angriff gegen forkende Server versucht den
   Server dazu zu bringen, solange neue Prozesse zu starten, bis das
   System den ganzen Speicher und alle Dateideskriptoren verbraucht
   hat, was dann zu einem Ausfall des Servers fu:hrt. inetd(8)
   besitzt einige Optionen, um diese Art von Angriffen zu begrenzen.
   Beachten Sie bitte, dass es mo:glich ist, einen Ausfall einer
   Maschine zu verhindern, doch ist es generell nicht mo:glich, den
   Ausfall eines Dienstes bei dieser Art von Angriffen zu verhindern.
   Lesen Sie sich bitte die Manualpages von inetd gut durch und
   achten Sie speziell auf die Optionen -c, -C und -R. Angriffe mit
   gefa:lschten IP-Adressen umgehen -C, so dass normalerweise eine
   Kombination der Optionen benutzt werden muss. Manche Server, die
   nicht von inetd gestartet werden, besitzen Optionen, um den Start
   u:ber fork() einzuschra:nken.

   Sendmail besitzt die Option -OMaxDaemonChildren, die besser als
   die eingebauten Optionen zur Begrenzung der Systemauslastung
   funktioniert. Sie sollten beim Start von sendmail
   MaxDaemonChildren so hoch setzen, dass Sie die erwartete
   Auslastung gut abfangen ko:nnen. Allerdings sollten Sie den Wert
   nicht so hoch setzen, dass der Rechner u:ber seine eigenen Fu:sse
   fa:llt. Es ist auch klug, Sendmail im Queue-Modus
   (-ODeliveryMode=queued) laufen zu lassen. Der Daemon (sendmail
   -bd) sollte getrennt von den Queue-La:ufen (sendmail -q15m)
   laufen. Wenn Sie trotzdem eine sofortige Auslieferung der Post
   wu:nschen, ko:nnen Sie die Queue in einem geringeren Intervall,
   etwa -q1m, abarbeiten. Geben Sie fu:r dieses Sendmail aber einen
   vernu:nftigen Wert fu:r MaxDaemonChildren an, um Fehler zu
   verhindern.

   Syslogd kann direkt angegriffen werden. Daher empfehlen wir Ihnen
   unbedingt die Option -s zu benutzen. Sollte das nicht mo:glich
   sein, benutzen Sie bitte -a.

   Vorsicht ist auch mit Diensten geboten, die automatisch eine
   Ru:ckverbindung ero:ffnen, wie der reverse-identd der TCP-Wrapper.
   Diese Funktion der TCP-Wrapper sollten Sie normalerweise nicht
   benutzen.

   Es empfiehlt sich sehr, interne Dienste vor externen Zugriffen
   durch eine Firewall an der Grenze Ihres Netzwerks zu schu:tzen.
   Dahinter steckt mehr die Idee, das Netzwerk vor U:berlastung durch
   Angriffe von aussen zu schu:tzen, als interne Dienste vor einem
   root-Zugriff aus dem Netz zu schu:tzen. Konfigurieren Sie immer
   eine Firewall, die alle Zugriffe blockiert, das heisst blockieren
   Sie alles ausser den Ports A, B, C, D und M-Z. Damit ko:nnen Sie
   Zugriffe auf alle niedrigen Ports blockieren und Zugriffe auf
   spezielle Dienste wie named, wenn Sie den prima:ren Namensdienst
   fu:r eine Zone anbieten, ntalkd oder sendmail erlauben. Wenn Sie
   die Firewall so konfigurieren, das sie in der Voreinstellung alle
   Zugriffe erlaubt, ist es sehr wahrscheinlich, dass Sie vergessen,
   eine Reihe von Diensten zu blockieren bzw. einen internen Dienst
   einfu:hren und dann vergessen die Firewall zu aktualisieren. Sie
   ko:nnen immer die ho:heren Portnummern o:ffnen, ohne die niedrigen
   Portnummern, die nur von root benutzt werden du:rfen, zu
   kompromittieren. Beachten Sie bitte auch, dass es FreeBSD erlaubt,
   die Portnummern, die fu:r dynamische Verbindungen zur Verfu:gung
   stehen, zu konfigurieren. Mit sysctl lassen sich verschiedene
   Bereiche der net.inet.ip.portrange Variablen setzen (eine Liste
   erhalten Sie mit sysctl -a | fgrep portrange). So ko:nnen Sie zum
   Beispiel die Portnummern 4000 bis 5000 fu:r den normalen Bereich
   und die Nummern 49152 bis 65535 fu:r den hohen Bereich vorsehen.
   Dies erleichtert Ihnen die Konfiguration der Firewall, da Sie nun
   Zugriffe auf Ports unterhalb von 4000, mit Ausnahme der Dienste,
   die von aussen erreichbar sein sollen, blockieren ko:nnen.

   Eine andere Form eines DoS-Angriffs nutzt einen Server als
   Sprungbrett, der Server wird dabei so angegriffen, dass seine
   Antworten ihn selber, das lokale Netzwerk oder einen anderen
   Server u:berlasten. Der am ha:ufigsten verwendete Angriff dieser
   Art ist der ICMP ping broadcast Angriff. Der Angreifer fa:lscht
   dazu ping-Pakete, die zu der Broadcast-Adresse Ihres LANs gesendet
   werden, indem er darin als Quelladresse die Adresse des Opfers
   einsetzt. Wenn die Router an der Grenze Ihres Netzwerks
   ping-Pakete auf Broadcast-Adressen nicht abwehren, wird Ihr LAN
   genu:gend Netzwerkverkehr generieren, um das Ziel des Angriffs zu
   u:berlasten. Dies kann besonders effektiv sein, wenn der Angreifer
   diese Methode mit mehreren Dutzend Broadcast-Adressen u:ber
   mehrere Netzwerke einsetzt. Es wurden schon Broadcast-Angriffe mit
   u:ber 120 Megabit pro Sekunde gemessen. Ein zweiter
   Sprungbrett-Angriff wird gegen das Fehlerbehandlungssystem von
   ICMP eingesetzt. Indem ein Angreifer Pakete konstruiert, die eine
   ICMP-Fehlermeldung hervorrufen, kann er das einkommende Netzwerk
   des Servers sa:ttigen und diesen wiederum veranlassen sein
   ausgehendes Netzwerk mit ICMP-Antworten zu sa:ttigen. Diese Art
   des Angriffs kann den kompletten Speicher des Servers aufbrauchen
   und damit den Server stilllegen, insbesondere wenn der Server
   nicht in der Lage ist, die generierten ICMP-Antworten schnell
   genug abzufu:hren. Verwenden Sie die sysctl-Variable
   net.inet.icmp.icmplim, um die Auswirkungen solcher Angriffe zu
   begrenzen. Die letzte weit verbreitete Form von
   Sprungbrett-Angriffen verwendet interne inetd-Dienste wie den UDP
   echo-Dienst. Der Angreifer fa:lscht dazu einfach ein UDP-Paket,
   indem er als Quellport den echo-Port von Server A und als Zielport
   den echo-Port von Server B angibt, wobei beide Server in Ihrem LAN
   stehen. Die beiden Server werden nun dieses Paket zwischen sich
   hin und her schicken. Der Angreifer kann die beiden Server und das
   LAN einfach damit u:berlasten, dass er mehrere Pakete dieser Art
   generiert. A:hnliche Probleme gibt es mit dem internen
   chargen-Port, daher sollten Sie die internen inetd-Testdienste
   abstellen.

   Gefa:lschte IP-Pakete ko:nnen dazu benutzt werden, den
   Kernel-Cache fu:r Routen zu u:berlasten. Schauen Sie sich bitte
   die sysctl-Parameter net.inet.ip.rtexpire, rtminexpire und
   rtmaxcache an. Ein Angriff der gefa:lschte Pakete mit zufa:lligen
   Quelladressen einsetzt, bewirkt, dass der Kernel eine Route im
   Route-Cache anlegt, die Sie sich mit netstat -rna | fgrep W3
   ansehen ko:nnen. Diese Routen verfallen fu:r gewo:hnlich nach 1600
   Sekunden. Wenn der Kernel feststellt, dass die Routingtabelle im
   Cache zu gross geworden ist, wird er dynamisch den Wert von
   rtexpire verringern. Dieser Wert wird aber nie kleiner werden als
   rtminexpire. Daraus ergeben sich zwei Probleme:

    1. Der Kernel reagiert nicht schnell genug, wenn ein Server mit
       einer niedrigen Grundlast plo:tzlich angegriffen wird.

    2. rtminexpire ist nicht klein genug, um einen anhaltenden
       Angriff zu u:berstehen.

   Wenn Ihre Server u:ber eine T3 oder eine noch schnellere Leitung
   mit dem Internet verbunden sind, ist es klug, mit sysctl(8) die
   Werte fu:r rtexpire und rtminexpire ha:ndisch zu setzen. Setzen
   Sie bitte keinen der Werte auf Null, ausser Sie wollen die
   Maschine zum Erliegen bringen. Ein Wert von 2 Sekunden fu:r beide
   Parameter sollte ausreichen, um die Routingtabelle vor einem
   Angriff zu schu:tzen.

     --------------------------------------------------------------

  15.3.9. Anmerkungen zum Zugriff mit Kerberos und SSH

   Es gibt ein paar Punkte, die Sie beachten sollten, wenn Sie
   Kerberos oder SSH einsetzen wollen. Kerberos 5 ist ein
   ausgezeichnetes Authentifizierungsprotokoll. Leider gibt es Fehler
   in den fu:r Kerberos angepassten Versionen von telnet und rlogin,
   die sie ungeeignet fu:r den Umgang mit bina:ren Datenstro:men
   machen. Weiterhin verschlu:sselt Kerberos Ihre Sitzung nicht, wenn
   Sie nicht die -x Option verwenden, mit SSH wird dagegen alles
   verschlu:sselt.

   Ein Problem mit SSH sind Weiterleitungen von Verbindungen. Wenn
   Sie von einer sicheren Maschine, auf der sich Ihre Schlu:ssel
   befinden, eine Verbindung zu einer ungesicherten Maschine
   aufmachen, wird fu:r die Dauer der Sitzung ein Port fu:r
   Weiterleitungen geo:ffnet. Ein Angreifer, der auf der unsicheren
   Maschine Zugang zu root hat, kann diesen Port benutzen, um Zugriff
   auf andere Maschinen zu erlangen, die mit Ihren Schlu:sseln
   zuga:nglich sind.

   Wir empfehlen Ihnen, fu:r die Logins Ihrer Mitarbeiter immer SSH
   zusammen mit Kerberos einzusetzen. Damit reduzieren Sie die
   Abha:ngigkeit von potentiell gefa:hrdeten Schlu:sseln und
   schu:tzen gleichzeitig die Passwo:rter mit Kerberos.
   SSH-Schlu:sselpaare sollten nur fu:r automatisierte Aufgaben von
   einem besonders gesicherten Server eingesetzt werden (Kerberos
   kann fu:r diese Art von Aufgaben nicht eingesetzt werden).
   Weiterhin empfehlen wir Ihnen, das Weiterreichen von Schlu:sseln
   in der SSH-Konfiguration abzustellen bzw. die from=IP/DOMAIN
   Option in authorized_keys zu verwenden, die den Schlu:ssel nur von
   bestimmten Maschinen aus nutzbar macht.

     --------------------------------------------------------------

15.4. DES, Blowfish, MD5, und Crypt

   Teile umgeschrieben und aktualisiert von Bill Swingle.

   Jedem Benutzer eines UNIX Systems ist ein Passwort zugeordnet. Es
   scheint offensichtlich, dass das Passwort nur dem Benutzer und dem
   System bekannt sein muss. Um die Passwo:rter geheim zu halten,
   werden sie mit einer nicht umkehrbaren Hash-Funktion
   verschlu:sselt, das heisst sie ko:nnen leicht verschlu:sselt aber
   nicht entschlu:sselt werden. Was wir gerade als offensichtlich
   dargestellt haben, ist also nicht wahr: Das Betriebssystem kennt
   das Passwort wirklich nicht, es kennt nur das verschlu:sselte
   Passwort. Die einzige Mo:glichkeit, das originale Passwort
   herauszufinden, besteht darin, alle mo:glichen Passwo:rter
   auszuprobieren (brute force Suche).

   Zu der Zeit als UNIX entstanden ist, war die einzig sichere
   Mo:glichkeit Passwo:rter zu verschlu:sseln, leider DES (Data
   Encryption Standard). Fu:r die Einwohner der USA stellte das kein
   Problem dar, aber da der Quellcode von DES nicht aus den USA
   exportiert werden durfte, musste ein Weg gefunden werden, der die
   Gesetze der USA nicht verletzte und gleichzeitig die
   Kompatibilita:t mit anderen UNIX Systemen, die immer noch DES
   benutzten, wahrte.

   Die Lo:sung bestand darin, die Verschlu:sselungsbibliotheken
   aufzuspalten. Benutzer in den USA konnten die DES-Bibliotheken
   installieren und nutzen. In der Grundeinstellung benutzt FreeBSD
   MD5 als Verschlu:sselungsmethode, das exportiert werden durfte und
   damit von jedem genutzt werden konnte. Es wird davon ausgegangen,
   dass MD5 sicherer als DES ist, so dass DES nur aus
   Kompatibilita:tsgru:nden installiert werden sollte.

     --------------------------------------------------------------

  15.4.1. Erkennen der Verschlu:sselungsmethode

   Derzeit werden DES-, MD5- und Blowfish-Hash-Funktionen
   unterstu:tzt. In der Voreinstellung benutzt FreeBSD die
   MD5-Hash-Funktion.

   Sie ko:nnen leicht herausfinden, welche Verschlu:sselungsmethode
   von FreeBSD verwendet wird. Ein Weg besteht darin, die
   verschlu:sselten Passwo:rter in /etc/master.passwd zu untersuchen.
   Passwo:rter, die mit MD5 verschlu:sselt wurden, sind la:nger als
   die mit DES verschlu:sselten und beginnen mit den Zeichen $1$.
   Passwo:rter, die mit $2a$ anfangen, wurden mit der
   Blowfish-Funktion verschlu:sselt. DES Passwo:rter besitzen keine
   offensichtlichen Merkmale, an denen sie identifiziert werden
   ko:nnten. Sie sind aber ku:rzer als MD5-Passwo:rter und sind in
   einem 64 Zeichen umfassenden Alphabet kodiert, das das $-Zeichen
   nicht entha:lt. Ein relativ kurzes Passwort, das nicht mit einem
   $-Zeichen anfa:ngt, ist wahrscheinlich ein DES-Passwort.

   Die Verschlu:sselungsmethode fu:r neue Passwo:rter wird durch
   passwd_format in /etc/login.conf bestimmt. Der Wert dieser
   Variablen kann entweder des, md5 oder blf sein. Na:heres schlagen
   Sie bitte in login.conf(5) nach.

     --------------------------------------------------------------

15.5. Einmalpasswo:rter

   In der Voreinstellung unterstu:tzt FreeBSD OPIE (One-time
   Passwords in Everything), das in der Regel MD5-Hash-Funktionen
   einsetzt.

   Im Folgenden werden drei verschiedene Passwo:rter verwendet. Das
   erste ist Ihr normales System- oder Kerberos-Passwort und wird im
   Folgenden "System-Passwort" genannt. Das zweite ist das
   Einmalpasswort, das bei OPIE von opiekey generiert und von
   opiepasswd und dem Login-Programm akzeptiert wird. Im Folgenden
   wird es "Einmalpasswort" genannt. Das dritte Passwort ist das
   geheime Passwort, das Sie mit opiekey (manchmal auch mit
   opiepasswd) zum Erstellen der Einmalpasswo:rter verwenden. Dieses
   Passwort werden wir im Folgenden "geheimes Passwort" oder schlicht
   "Passwort" nennen.

   Das geheime Passwort steht in keiner Beziehung zu Ihrem
   System-Passwort, beide ko:nnen gleich sein, obwohl das nicht
   empfohlen wird. Die geheimen Passwo:rter von OPIE sind nicht auf
   eine La:nge von 8 Zeichen, wie alte UNIX Passwo:rter[10],
   beschra:nkt. Sie ko:nnen so lang sein, wie Sie wollen.
   Gebra:uchlich sind Passwo:rter, die sich aus sechs bis sieben
   Wo:rtern zusammensetzen. Das OPIE-System arbeitet gro:sstenteils
   unabha:ngig von den auf UNIX-Systemen verwendeten
   Passwort-Mechanismen.

   Neben dem Passwort gibt es noch zwei Werte, die fu:r OPIE wichtig
   sind. Der erste ist der "Initialwert" (engl. seed oder key), der
   aus zwei Buchstaben und fu:nf Ziffern besteht. Der zweite Wert ist
   der "Iterationsza:hler", eine Zahl zwischen 1 und 100. OPIE
   generiert das Einmalpasswort, indem es den Initialwert und das
   geheime Passwort aneinander ha:ngt und dann die MD5-Hash-Funktion
   so oft, wie durch den Iterationsza:hler gegeben, anwendet. Das
   Ergebnis wird in sechs englische Wo:rter umgewandelt, die Ihr
   Einmalpasswort sind. Das Authentifizierungssystem (meistens PAM)
   merkt sich das zuletzt benutzte Einmalpasswort und Sie sind
   authentisiert, wenn die Hash-Funktion des Passworts dem vorigen
   Passwort entspricht. Da nicht umkehrbare Hash-Funktionen benutzt
   werden, ist es unmo:glich, aus einem bekannten Passwort weitere
   gu:ltige Einmalpasswo:rter zu berechnen. Der Iterationsza:hler
   wird nach jeder erfolgreichen Anmeldung um eins verringert und
   stellt so die Synchronisation zwischen Benutzer und Login-Programm
   sicher. Wenn der Iterationsza:hler den Wert 1 erreicht, muss OPIE
   neu initialisiert werden.

   In jedem System werden mehrere Programme verwendet, die weiter
   unten beschrieben werden. opiekey verlangt einen
   Iterationsza:hler, einen Initialwert und ein geheimes Passwort.
   Daraus generiert es ein Einmalpasswort oder eine Liste von
   Einmalpasswo:rtern. opiepasswd wird dazu benutzt, um OPIE zu
   initialisieren. Mit diesem Programm ko:nnen Passwo:rter,
   Iterationsza:hler oder Initialwerte gea:ndert werden. Als
   Parameter verlangt es entweder ein geheimes Passwort oder einen
   Iterationsza:hler oder einen Initialwert und ein Einmalpasswort.
   opieinfo hingegen gibt den momentanen Iterationsza:hler und
   Initialwert eines Benutzers aus. Diese werden aus der Datei
   /etc/opiekeys ermittelt.

   Im Folgenden werden vier verschiedene Ta:tigkeiten beschrieben.
   Zuerst wird erla:utert, wie opiepasswd u:ber eine gesicherte
   Verbindung eingesetzt werden, um Einmalpasswo:rter das erste Mal
   zu konfigurieren oder das Passwort oder den Initialwert zu
   a:ndern. Als na:chstes wird erkla:rt, wie opiepasswd u:ber eine
   nicht gesicherte Verbindung, oder zusammen mit opiekey u:ber eine
   gesicherte Verbindung eingesetzt werden, um dasselbe zu erreichen.
   Als drittes wird beschrieben, wie opiekey genutzt wird, um sich
   u:ber eine nicht gesicherte Verbindung anzumelden. Die vierte
   Ta:tigkeit beschreibt, wie mit opiekey eine Reihe von Schlu:sseln
   generiert wird, die Sie sich aufschreiben oder ausdrucken ko:nnen,
   um sich von Orten anzumelden, die u:ber keine gesicherten
   Verbindungen verfu:gen.

     --------------------------------------------------------------

  15.5.1. Einrichten u:ber eine gesicherte Verbindung

   Um OPIE erstmals zu initalisieren, rufen Sie opiepasswd auf:

 % opiepasswd -c
 [grimreaper] ~ $ opiepasswd -f -c
 Adding unfurl:
 Only use this method from the console; NEVER from remote. If you are using
 telnet, xterm, or a dial-in, type ^C now or exit with no password.
 Then run opiepasswd without the -c parameter.
 Using MD5 to compute responses.
 Enter new secret pass phrase:
 Again new secret pass phrase:

 ID unfurl OTP key is 499 to4268
 MOS MALL GOAT ARM AVID COED
      

   Nach der Aufforderung Enter new secret pass phrase: oder Enter
   secret password: geben Sie bitte Ihr Passwort ein. Dies ist nicht
   das Passwort, mit dem Sie sich anmelden, sondern es wird genutzt,
   um das Einmalpasswort zu generieren. Die Zeile, die mit "ID"
   anfa:ngt, entha:lt Ihren Login-Namen, den Iterationsza:hler und
   den Initialwert. Diese Werte mu:ssen Sie sich nicht behalten, da
   das System sie zeigen wird, wenn Sie sich anmelden. In der letzten
   Zeile steht das Einmalpasswort, das aus diesen Parametern und
   Ihrem geheimen Passwort ermittelt wurde. Wenn sie sich jetzt
   wieder anmelden wollten, dann mu:ssten Sie dieses Passwort
   benutzen.

     --------------------------------------------------------------

  15.5.2. Einrichten u:ber eine nicht gesicherte Verbindung

   Um Einmalpasswo:rter u:ber eine nicht gesicherte Verbindung
   einzurichten, oder das geheime Passwort zu a:ndern, mu:ssen Sie
   u:ber eine gesicherte Verbindung zu einer Stelle verfu:gen, an der
   Sie opiekey ausfu:hren. Dies kann etwa die Eingabeaufforderung auf
   einer Maschine, der Sie vertrauen, sein. Zudem mu:ssen Sie einen
   Iterationsza:hler vorgeben (100 ist ein guter Wert) und einen
   Initialwert wa:hlen, wobei Sie auch einen zufa:llig generierten
   benutzen ko:nnen. Benutzen Sie opiepasswd u:ber die ungesicherte
   Verbindung zu der Maschine, die Sie einrichten wollen:

 % opiepasswd

 Updating unfurl:
 You need the response from an OTP generator.
 Old secret pass phrase:
         otp-md5 498 to4268 ext
         Response: GAME GAG WELT OUT DOWN CHAT
 New secret pass phrase:
         otp-md5 499 to4269
         Response: LINE PAP MILK NELL BUOY TROY

 ID mark OTP key is 499 gr4269
 LINE PAP MILK NELL BUOY TROY

   Dru:cken Sie Return, um die Vorgabe fu:r den Initialwert zu
   akzeptieren. Bevor Sie nun das Zugriffspasswort (engl. access
   password) eingeben, rufen Sie u:ber die gesicherte Verbindung
   opikey mit denselben Parametern auf:

 % opiekey 498 to4268
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase:
 GAME GAG WELT OUT DOWN CHAT

   Gehen Sie nun zuru:ck zu der nicht gesicherten Verbindung und
   geben dort das eben generierte Einmalpasswort ein.

     --------------------------------------------------------------

  15.5.3. Erzeugen eines einzelnen Einmalpasswortes

   Nachdem Sie OPIE eingerichtet haben, werden Sie beim na:chsten
   Anmelden wie folgt begru:sst:

 % telnet example.com
 Trying 10.0.0.1...
 Connected to example.com
 Escape character is '^]'.

 FreeBSD/i386 (example.com) (ttypa)

 login: <username>
 otp-md5 498 gr4269 ext
 Password:

   Anmerkung: OPIE besitzt eine nu:tzliche Eigenschaft, die hier
   nicht gezeigt ist. Wenn Sie an der Eingabeaufforderung Return
   eingeben, wird die echo-Funktion eingeschaltet, das heisst Sie
   sehen, was Sie tippen. Dies ist besonders nu:tzlich, wenn Sie ein
   generiertes Passwort von einem Ausdruck abtippen mu:ssen.

   Jetzt mu:ssen Sie Ihr Einmalpasswort generieren, um der
   Anmeldeaufforderung nachzukommen. Dies muss auf einem gesicherten
   System geschehen, auf dem Sie oder opiekey ausfu:hren ko:nnen.
   Dieses Programm gibt es u:brigens auch fu:r DOS, Windows und
   Mac OS. Es beno:tigt den Iterationsza:hler sowie den Initialwert
   als Parameter, die Sie mittels "cut-and-paste" direkt von der
   Login-Aufforderung nehmen ko:nnen.

   Auf dem sicheren System:

 % opiekey 498 to4268
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase:
 GAME GAG WELT OUT DOWN CHAT

   Mit dem jetzt generierten Einmalpasswort ko:nnen Sie die
   Anmeldeprozedur fortsetzen.

     --------------------------------------------------------------

  15.5.4. Erzeugen von mehreren Einmalpasswo:rtern

   Manchmal mu:ssen Sie sich an Orte begeben, an denen Sie keinen
   Zugriff auf eine sichere Maschine oder eine sichere Verbindung
   haben. In diesem Fall ko:nnen Sie vorher mit opiekey einige
   Einmalpasswo:rter generieren, die Sie sich ausdrucken und
   mitnehmen ko:nnen. Zum Beispiel:

 % opiekey -n 5 30 zz99999
 Using the MD5 algorithm to compute response.
 Reminder: Don't use opiekey from telnet or dial-in sessions.
 Enter secret pass phrase: <secret password>
 26: JOAN BORE FOSS DES NAY QUIT
 27: LATE BIAS SLAY FOLK MUCH TRIG
 28: SALT TIN ANTI LOON NEAL USE
 29: RIO ODIN GO BYE FURY TIC
 30: GREW JIVE SAN GIRD BOIL PHI

   Mit -n 5 fordern Sie fu:nf Passwo:rter der Reihe nach an. Der
   letzte Iterationsza:hler wird durch 30 gegeben. Beachten Sie
   bitte, dass die Passwo:rter in der umgekehrten Reihenfolge, in der
   sie zu benutzen sind, ausgeben werden. Wenn Sie wirklich paranoid
   sind, schreiben Sie sich jetzt die Passwo:rter auf, ansonsten
   drucken Sie sie mit lpr aus. Beachten Sie, dass jede Zeile den
   Iterationsza:hler und das Einmalpasswort zeigt, trotzdem finden
   Sie es vielleicht hilfreich, eine Zeile nach Gebrauch
   durchzustreichen.

     --------------------------------------------------------------

  15.5.5. Einschra:nken der Benutzung von System-Passwo:rtern

   OPIE kann die Verwendung von System-Passwo:rtern abha:ngig von der
   Quell-IP-Adresse einschra:nken. Die dazu no:tigen Einstellungen
   werden in der Datei /etc/opieaccess vorgenommen, die bei der
   Installation des Systems automatisch erzeugt wird. Weitere
   Informationen u:ber diese Datei und Sicherheitshinweise zu ihrer
   Verwendung entnehmen Sie bitte der Hilfeseite opieaccess(5).

   Die Datei opieaccess ko:nnte beispielsweise die folgende Zeile
   enthalten:

 permit 192.168.0.0 255.255.0.0

   Diese Zeile erlaubt es Benutzern, die sich von einer der
   angegebenen Quell-IP-Adressen anmelden, ihr System-Passwort zu
   verwenden. Beachten Sie bitte, dass eine Quell-IP-Adresse leicht
   gefa:lscht werden kann.

   Findet sich in opieaccess kein passender Eintrag, muss die
   Anmeldung mit OPIE erfolgen.

     --------------------------------------------------------------

15.6. TCP-Wrapper

   Beigetragen von Tom Rhodes.

   Wahrscheinlich hat jeder, der inetd(8) kennt, schon mal von den
   TCP-Wrappern geho:rt. Die wenigsten erkennen den vollen Nutzen der
   TCP-Wrapper in einer Netzumgebung. Es scheint, dass die meisten
   Leute Netzverbindungen mit einer Firewall absichern wollen. Auch
   wenn eine Firewall ein ma:chtiges Instrument ist, gibt es Sachen,
   die eine Firewall nicht kann. Eine Firewall kann beispielsweise
   keine Nachricht an den Verbindungsursprung senden. Genau das und
   mehr ko:nnen aber die TCP-Wrapper. Im Folgenden werden die
   Funktionen der TCP-Wrapper und Beispiele fu:r deren Konfiguration
   vorgestellt.

   Die TCP-Wrapper erweitern die Steuerungsmo:glichkeiten, die inetd
   u:ber die Dienste unter seiner Kontrolle hat. Beispielsweise
   ko:nnen Verbindungen protokolliert, Nachrichten zuru:ckgesandt
   oder nur interne Verbindungen angenommen werden. Die TCP-Wrapper
   bieten nicht nur eine weitere Sicherheitsschicht, die teilweise
   auch von Firewalls geboten wird, sie bieten daru:ber hinaus
   Funktionen zur Steuerung von Verbindungen, die eine Firewall nicht
   bietet.

   Die erweiterten Funktionen der TCP-Wrapper sind kein
   Firewall-Ersatz. Sie sollten zusammen mit einer Firewall und
   anderen Sicherheitsvorkehrungen eingesetzt werden. Die TCP-Wrapper
   sind eine weitere Sicherheitsschicht zum Schutz eines Systems.

   Da die Wrapper die Funktion von inetd erweitern, wird im Folgenden
   vorausgesetzt, dass Sie den Abschnitt u:ber die
   inetd-Konfiguration schon gelesen haben.

     Anmerkung: Streng genommen handelt es sich bei den von inetd(8)
     gestarteten Programmen nicht um "Daemonen". Da sich diese
     Bezeichnung aber eingebu:rgert hat, wird sie auch in diesem
     Abschnitt verwendet.

     --------------------------------------------------------------

  15.6.1. TCP-Wrapper einrichten

   Um die TCP-Wrapper unter FreeBSD zu benutzen, muss nur der inetd
   aus rc.conf mit den voreingestellten Optionen -Ww gestartet
   werden. Die Konfigurationsdatei /etc/hosts.allow darf keine Fehler
   enthalten; falls doch, werden die Fehler mit syslogd(8)
   protokolliert.

     Anmerkung: Im Gegensatz zu anderen Implementationen der
     TCP-Wrapper wird vom Gebrauch der Datei hosts.deny abgeraten.
     Die Konfiguration sollte sich vollsta:ndig in der Datei
     /etc/hosts.allow befinden.

   In der einfachsten Konfiguration werden Dienste abha:ngig vom
   Inhalt der Datei /etc/hosts.allow erlaubt oder gesperrt. Unter
   FreeBSD wird in der Voreinstellung jeder von inetd gestartete
   Dienst erlaubt. Sehen wir uns zuna:chst die Grundkonfiguration an.

   Eine Konfigurationszeile ist wie folgt aufgebaut: Dienst : Adresse
   : Aktion. Dienst ist der von inetd gestartete Dienst (auch Daemon
   genannt). Die Adresse kann ein gu:ltiger Rechnername, eine
   IP-Adresse oder eine IPv6-Adresse in Klammern ([ ]) sein. Der Wert
   allow im Feld Aktion erlaubt Zugriffe, der Wert deny verbietet
   Zugriffe. Die Zeilen in hosts.allow werden fu:r jede Verbindung
   der Reihe nach abgearbeitet. Trifft eine Zeile auf eine Verbindung
   zu, wird die entsprechende Aktion ausgefu:hrt und die Abarbeitung
   ist beendet.

   Es gibt noch weitere Konfigurationsoptionen, die gleich erla:utert
   werden. Das bisher Gesagte reicht, um eine einfache Regel
   aufzustellen. Wenn Sie einkommende POP3-Verbindungen fu:r den
   Dienst mail/qpopper erlauben wollen, erweitern Sie hosts.allow um
   die nachstehende Zeile:

 # This line is required for POP3 connections:
 qpopper : ALL : allow

   Nachdem Sie die Zeile hinzugefu:gt haben, muss der inetd neu
   gestartet werden. Sie ko:nnen dazu das Kommando kill(1) verwenden
   oder /etc/rc.d/inetd restart ausfu:hren.

     --------------------------------------------------------------

  15.6.2. Erweiterte Konfiguration der TCP-Wrapper

   Die TCP-Wrapper besitzen weitere Optionen, die bestimmen, wie
   Verbindungen behandelt werden. In einigen Fa:llen ist es gut, wenn
   bestimmten Rechnern oder Diensten eine Nachricht geschickt wird.
   In anderen Fa:llen soll vielleicht der Verbindungsaufbau
   protokolliert oder eine E-Mail an einen Administrator versandt
   werden. Oder ein Dienst soll nur fu:r das lokale Netz
   bereitstehen. Dies alles ist mit so genannten Wildcards,
   Metazeichen und der Ausfu:hrung externer Programme mo:glich und
   wird in den na:chsten zwei Abschnitten erla:utert.

     --------------------------------------------------------------

    15.6.2.1. Externe Kommandos ausfu:hren

   Stellen Sie sich vor, eine Verbindung soll verhindert werden und
   gleichzeitig soll demjenigen, der die Verbindung aufgebaut hat,
   eine Nachricht geschickt werden. Auf welche Art mu:ssen die
   TCP-Wrapper konfiguriert werden? Die Option twist fu:hrt beim
   Verbindungsaufbau ein Kommando aus. In der Datei hosts.allow ist
   ein Beispiel fu:r diese Option enthalten:

 # Alle anderen Dienste sind geschu:tzt
 ALL : ALL \
         : severity auth.info \
         : twist /bin/echo "You are not welcome to use %d from %h."

   Fu:r jeden Dienst, der nicht vorher in der Datei hosts.allow
   konfiguriert wurde, wird die Meldung "You are not allowed to use
   daemon from hostname." zuru:ckgegegeben. Dies ist besonders
   nu:tzlich, wenn Sie die Gegenstelle sofort benachrichtigen wollen,
   nachdem die Verbindung getrennt wurde. Beachten Sie, dass der Text
   der Meldung in Anfu:hrungszeichen (") stehen muss, es gibt keine
   Ausnahmen zu dieser Regel.

     Warnung: Ein so konfigurierter Server ist anfa:llig fu:r
     Denial-of-Service-Angriffe. Ein Angreifer kann die gesperrten
     Dienste mit Verbindungsanfragen u:berfluten.

   Um einem Denial-of-Service-Angriff zu entgehen, benutzen Sie die
   Option spawn. Wie die Option twist verbietet die Option spawn die
   Verbindung und fu:hrt externe Kommandos aus. Allerdings sendet die
   Option spawn der Gegenstelle keine Ru:ckmeldung. Sehen Sie sich
   die nachstehende Konfigurationsdatei an:

 # Verbindungen von example.com sind gesperrt:
 ALL : .example.com \
         : spawn (/bin/echo %a from %h attempted to access %d >> \
           /var/log/connections.log) \
         : deny

   Damit sind Verbindungen von der Domain *.example.com gesperrt.
   Jeder Verbindungsaufbau wird zudem in der Datei
   /var/log/connections.log protokolliert. Das Protokoll entha:lt den
   Rechnernamen, die IP-Adresse und den Dienst, der angesprochen
   wurde.

   In der Konfigurationsdatei wurde beispielsweise das Metazeichen %a
   verwendet. Es gibt weitere Metazeichen, die in der Hilfeseite
   hosts_access(5) beschrieben werden.

     --------------------------------------------------------------

    15.6.2.2. Wildcards

   Bisher verwendeten die Beispiele immer die Wildcard ALL. Es gibt
   andere Wildcards, welche die Funktionalita:t ein bisschen
   erweitern. Die Wildcard ALL passt beispielsweise auf jeden Dienst,
   jede Domain oder jede IP-Adresse. Eine andere Wildcard ist
   PARANOID. Sie passt auf jeden Rechner, dessen IP-Adresse
   mo:glicherweise gefa:lscht ist. Dies ist dann der Fall, wenn der
   Verbindungsaufbau von einer IP-Adresse erfolgt, die nicht zu dem
   u:bermittelten Rechnernamen passt. Das folgende Beispiel sollte
   das ganze etwas klarer werden lassen:

 # Block possibly spoofed requests to sendmail:
 sendmail : PARANOID : deny

   In diesem Beispiel werden alle Verbindungen zu sendmail verboten,
   die von einer IP-Adresse ausgehen, die nicht zum Rechnernamen
   passt.

     Achtung: Die Wildcard PARANOID kann einen Dienst unbrauchbar
     machen, wenn der Client oder der Server eine fehlerhafte
     DNS-Konfiguration besitzt. Seien Sie daher besonders vorsichtig,
     wenn Sie diese Wildcard in Ihre Konfiguration aufnehmen wollen.

   Weiteres u:ber Wildcards und deren Funktion lesen Sie bitte in der
   Hilfeseite hosts_access(5) nach.

   Damit die gezeigten Beispiele funktionieren, mu:ssen Sie die erste
   Konfigurationszeile in der Datei hosts.allow auskommentieren.

     --------------------------------------------------------------

15.7. Kerberos5

   Beigetragen von Tillman Hodgson. Beruht auf einem Beitrag von Mark
   Murray.

   Kerberos ist ein Netzwerk-Protokoll, das Benutzer mithilfe eines
   sicheren Servers authentifiziert. Mit Risiken behaftete Dienste,
   wie das Anmelden an entfernten Systemen oder das Kopieren von
   Daten auf entfernte Systeme, werden durch Kerberos erheblich
   sicherer und lassen sich leichter steuern.

   Kerberos hat eine Aufgabe: Die sichere Pru:fung der Identita:t
   eines Benutzers (Authentifizierung) u:ber das Netzwerk. Das System
   u:berpru:ft weder die Berechtigungen der Benutzer (Autorisierung),
   noch verfolgt es die durchgefu:hrten Aktionen (Audit). Daher
   sollte Kerberos zusammen mit anderen Sicherheits-Systemen
   eingesetzt werden, die diese Funktionen bereitstellen. Die Daten
   einer Kommunikation ko:nnen verschlu:sselt werden, nachdem die
   Kommunikationspartner mit Kerberos ihre Identita:t gepru:ft haben.

   Die folgenden Anweisungen beschreiben, wie Sie das mit FreeBSD
   gelieferte Kerberos einrichten. Eine vollsta:ndige Beschreibung
   des Systems entnehmen Sie bitte den entsprechenden Hilfeseiten.

   Die Beschreibung der Kerberos-Installation benutzt folgende
   Namensra:ume:

     * Die DNS-Domain (Zone) heisst example.org.

     * Das Kerberos-Realm heisst EXAMPLE.ORG.

     Anmerkung: Benutzen Sie echte Domain-Namen, wenn Sie Kerberos
     einrichten. Damit vermeiden Sie DNS-Probleme und stellen die
     Zusammenarbeit mit anderen Kerberos-Realms sicher.

     --------------------------------------------------------------

  15.7.1. Geschichte

   Das MIT entwickelte Kerberos, um Sicherheitsprobleme auf dem
   Netzwerk zu lo:sen. Das Kerberos-Protokoll verwendet starke
   Kryptographie, sodass ein Server die Identita:t eines Clients (der
   umgekehrte Vorgang ist auch mo:glich) u:ber ein unsicheres
   Netzwerk feststellen kann.

   Der Begriff Kerberos wird sowohl fu:r das Protokoll als auch fu:r
   Programme verwendet, die Kerberos benutzen (wie Kerberos-Telnet).
   Die aktuelle Protokollversion ist 5 und wird in RFC 1510
   beschrieben.

   Mehrere Implementierungen des Protokolls stehen frei zur
   Verfu:gung und decken viele Betriebssysteme ab. Das Massachusetts
   Institute of Technology (MIT), an dem Kerberos urspru:nglich
   entwickelt wurde, entwickelt seine Kerberos-Version weiter. In den
   USA wird diese Version ha:ufig eingesetzt, unterlag aber
   Export-Beschra:nkungen, da sie in den USA entwickelt wurde. Die
   MIT-Version von Kerberos befindet sich im Port security/krb5.
   Heimdal ist eine weitere Implementierung der Protokollversion 5.
   Sie wurde ausserhalb der USA entwickelt und unterliegt daher
   keinen Export-Beschra:nkungen. Heimdal-Kerberos befindet sich im
   Port security/heimdal und das Basissystem von FreeBSD entha:lt
   eine minimale Installation von Heimdal.

   Um mo:glichst viele Benutzer anzusprechen, verwenden die folgenden
   Beispiele die in FreeBSD enthaltene Heimdal-Distribution.

     --------------------------------------------------------------

  15.7.2. Das Heimdal KDC einrichten

   Kerberos authentifiziert Benutzer an einer zentralen Stelle: dem
   Key Distribution Center (KDC). Das KDC verteilt Tickets, mit denen
   ein Dienst die Identita:t eines Benutzers feststellen kann. Alle
   Mitglieder eines Kerberos-Realms vertrauen dem KDC, daher gelten
   fu:r das KDC erho:hte Sicherheitsanforderungen.

   Obwohl das KDC wenig Ressourcen eines Rechners beno:tigt, sollte
   es wegen der Sicherheitsanforderungen auf einem separaten Rechner
   installiert werden.

   Das KDC wird in /etc/rc.conf wie folgt aktiviert:

 kerberos5_server_enable="YES"
 kadmind5_server_enable="YES"

   Danach wird die Konfigurationsdatei von Kerberos, /etc/krb5.conf,
   erstellt:

 [libdefaults]
     default_realm = EXAMPLE.ORG
 [realms]
     EXAMPLE.ORG = {
         kdc = kerberos.example.org
         admin_server = kerberos.example.org
     }
 [domain_realm]
     .example.org = EXAMPLE.ORG

   Diese Einstellungen setzen voraus, dass der voll qualifizierte
   Name des KDCs kerberos.example.org ist. Wenn Ihr KDC einen anderen
   Namen hat, mu:ssen Sie in der DNS-Zone einen Alias-Eintrag
   (CNAME-Record) fu:r das KDC hinzufu:gen.

     Anmerkung: Auf grossen Netzwerken mit einem ordentlich
     konfigurierten BIND DNS-Server kann die Datei verku:rzt werden:

 [libdefaults]
       default_realm = EXAMPLE.ORG

     Die Zonendatei von example.org muss dann die folgenden Zeilen
     enthalten:

 _kerberos._udp      IN  SRV     01 00 88 kerberos.example.org.
 _kerberos._tcp      IN  SRV     01 00 88 kerberos.example.org.
 _kpasswd._udp       IN  SRV     01 00 464 kerberos.example.org.
 _kerberos-adm._tcp  IN  SRV     01 00 749 kerberos.example.org.
 _kerberos           IN  TXT     EXAMPLE.ORG

     Anmerkung: Damit Klienten die Kerberos-Dienste benutzen ko:nnen,
     muss die Datei /etc/krb5.conf entweder die vollsta:ndige
     Konfiguration enthalten oder eine minimale Konfiguration
     enthalten und zusa:tzlich ein DNS-Server richtig eingerichtet
     sein.

   Im na:chsten Schritt wird die Kerberos-Datenbank eingerichtet. Die
   Datenbank entha:lt die Schlu:ssel aller Prinzipale und ist mit
   einem Passwort geschu:tzt. Dieses Passwort brauchen Sie nicht zu
   behalten, da ein davon abgeleiteter Schlu:ssel in der Datei
   /var/heimdal/m-key gespeichert wird. Den Schlu:ssel erstellen Sie,
   indem Sie das Programm kstash aufrufen und ein Passwort eingeben.

   Nachdem Sie den Schlu:ssel in /var/heimdal/m-key erstellt haben,
   ko:nnen Sie die Datenbank mit dem Kommando kadmin initialisieren.
   Verwenden Sie hierbei die Option -l (lokal). Mit dieser Option
   wird die Datenbank lokal modifiziert. Normal wu:rde der
   kadmind-Dienst benutzt, der aber zu diesem Zeitpunkt noch nicht
   la:uft. An der Eingabeaufforderung von kadmin ko:nnen Sie mit dem
   Kommando init die Datenbank des Realms einrichten.

   Zuletzt erstellen Sie mit dem Kommando add Ihren ersten Prinzipal.
   Benutzen Sie die voreingestellten Optionen; Sie ko:nnen die
   Einstellungen spa:ter mit dem Kommando modify a:ndern. An der
   Eingabeaufforderung zeigt das Kommando ? Hilfetexte an.

   Zusammengefasst wird die Datenbank wie folgt eingerichtet:

 # kstash
 Master key: xxxxxxxx
 Verifying password - Master key: xxxxxxxx

 # kadmin -l
 kadmin> init EXAMPLE.ORG
 Realm max ticket life [unlimited]:
 kadmin> add tillman
 Max ticket life [unlimited]:
 Max renewable life [unlimited]:
 Attributes []:
 Password: xxxxxxxx
 Verifying password - Password: xxxxxxxx

   Jetzt kann das KDC gestartet werden. Fu:hren Sie zum Start der
   Dienste die Kommandos /etc/rc.d/kerberos start und
   /etc/rc.d/kadmind start aus. Obwohl zu diesem Zeitpunkt noch keine
   kerberisierten Dienste laufen, ko:nnen Sie die Funktion des KDCs
   schon u:berpru:fen. Fu:r den eben angelegten Benutzer ko:nnen Sie
   sich vom KDC Tickets holen und diese Tickets anzeigen:

 % kinit tillman
 tillman@EXAMPLE.ORG's Password:

 % klist
 Credentials cache: FILE: /tmp/krb5cc_500
         Principal: tillman@EXAMPLE.ORG

   Issued           Expires          Principal
 Aug 27 15:37:58  Aug 28 01:37:58  krbtgt/EXAMPLE.ORG@EXAMPLE.ORG

   Dieses Ticket kann, nachdem Sie Ihre Arbeit beendet haben,
   zuru:ckgezogen werden:

 % kdestroy

     --------------------------------------------------------------

  15.7.3. Kerberos-Dienste einrichten

   Alle Rechner, die kerberisierte Dienste anbieten, mu:ssen eine
   Kopie der Kerberos-Konfigurationsdatei /etc/krb5.conf besitzen.
   Sie ko:nnen die Datei einfach vom KDC kopieren.

   Anschliessend mu:ssen Sie die Datei /etc/krb5.keytab erzeugen. Im
   Gegensatz zu normalen Workstations beno:tigt jeder Server eine
   keytab. Diese Datei entha:lt den Schlu:ssel des Servers, mit dem
   sich der Server und das KDC gegenseitig authentifizieren ko:nnen.
   Die Datei muss sicher auf den Server transportiert werden
   (beispielsweise mit scp(1) oder einer Diskette). Unter keinen
   Umsta:nden darf die Datei im Klartext, zum Beispiel mit FTP,
   u:bertragen werden, da sonst die Sicherheit des Servers gefa:hrdet
   ist.

   Sie ko:nnen die keytab auch mit dem Programm kadmin u:bertragen.
   Da Sie mit kadmin sowieso einen Host-Prinzipal fu:r den Server
   einrichten mu:ssen, ist das ganz praktisch.

   Sie mu:ssen allerdings schon ein Ticket besitzen und berechtigt
   sein, kadmin auszufu:hren. Die Berechtigung erhalten Sie durch
   einen Eintrag in der Zugriffskontrollliste kadmind.acl. Weitere
   Informationen u:ber Zugriffskontrolllisten erhalten Sie in den
   Heimdal-Info-Seiten (info heimdal) im Abschnitt "Remote
   administration". Wenn der Zugriff auf kadmin von entfernten
   Maschinen verboten ist, mu:ssen Sie sich sicher auf dem KDC
   anmelden (lokale Konsole, ssh(1) oder kerberisiertes Telnet) und
   die keytab lokal mit kadmin -l erzeugen.

   Nachdem Sie die Datei /etc/krb5.conf installiert haben, ko:nnen
   Sie das Kommando kadmin benutzen. An der Eingabeaufforderung von
   kadmin erstellt das Kommando add --random-key den Host-Prinzipal
   und das Kommando ext extrahiert den Schlu:ssel des Prinzipals in
   eine Datei:

 # kadmin
 kadmin> add --random-key host/myserver.example.org
 Max ticket life [unlimited]:
 Max renewable life [unlimited]:
 Attributes []:
 kadmin> ext host/myserver.example.org
 kadmin> exit

   Das Kommando ext (von extract) speichert den extrahierten
   Schlu:ssel in der Datei /etc/krb5.keytab.

   Wenn auf dem KDC, vielleicht aus Sicherheitsgru:nden, kadmind
   nicht la:uft, ko:nnen Sie das Kommando kadmin von entfernten
   Rechnern nicht benutzen. In diesem Fall legen Sie den
   Host-Prinzipal host/myserver.EXAMPLE.ORG direkt auf dem KDC an.
   Den Schlu:ssel extrahieren Sie in eine tempora:re Datei (damit die
   Datei /etc/krb5.keytab nicht u:berschrieben wird):

 # kadmin
 kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
 kadmin> exit

   Anschliessend mu:ssen Sie die erzeugte example.keytab sicher auf
   den Server kopieren (mit scp oder mithilfe einer Diskette). Geben
   Sie auf jeden Fall einen anderen Namen fu:r die keytab an, weil
   sonst die keytab des KDCs u:berschrieben wu:rde.

   Wegen der Datei krb5.conf kann der Server nun mit dem KDC
   kommunizieren und seine Identita:t mithilfe der Datei krb5.keytab
   nachweisen. Jetzt ko:nnen wir kerberisierte Dienste aktivieren.
   Fu:r telnet muss die folgende Zeile in /etc/inetd.conf eingefu:gt
   werden:

 telnet    stream  tcp     nowait  root    /usr/libexec/telnetd  telnetd -a user

   Ausschlaggebend ist, dass die Authentifizierungs-Methode mit -a
   auf user gesetzt wird. Weitere Details entnehmen Sie bitte der
   Hilfeseite telnetd(8).

   Nachdem sie die Zeile in /etc/inetd.conf eingefu:gt haben, starten
   Sie inetd(8) mit dem Kommando /etc/rc.d/inetd restart durch.

     --------------------------------------------------------------

  15.7.4. Kerberos-Clients einrichten

   Ein Client la:sst sich leicht einrichten. Sie beno:tigen nur die
   Kerberos-Konfigurationsdatei /etc/krb5.conf. Kopieren Sie die
   Konfigurationsdatei einfach vom KDC auf den Client.

   Sie ko:nnen jetzt mit kinit Tickets anfordern, mit klist Tickets
   anzeigen und mit kdestroy Tickets lo:schen. Sie ko:nnen mit
   Kerberos-Anwendungen kerberisierte Server ansprechen. Wenn das
   nicht funktioniert, Sie aber Tickets anfordern ko:nnen, hat
   wahrscheinlich der kerberisierte Server ein Problem und nicht der
   Client oder das KDC.

   Wenn Sie eine Anwendung wie telnet testen, ko:nnen Sie mit einem
   Paket-Sniffer (beispielsweise tcpdump(1)) u:berpru:fen, dass
   Passwo:rter verschlu:sselt u:bertragen werden. Probieren Sie auch
   die Option -x von telnet, die den gesamten Datenverkehr
   verschlu:sselt (analog zu ssh).

   Zu Heimdal geho:ren noch weitere Anwendungen. Allerdings entha:lt
   das FreeBSD-Basissystem nur eine minimale Heimdal-Installation mit
   nur einer kerberisierten Anwendung: telnet.

   Der Heimdal-Port entha:lt noch mehr kerberisierte Anwendungen wie
   ftp, rsh, rcp und rlogin. Der MIT-Port entha:lt ebenfalls weitere
   kerberisierte Anwendungen.

     --------------------------------------------------------------

  15.7.5. .k5login und .k5users

   Normalerweise wird ein Kerberos-Prinzipal wie tillman@EXAMPLE.ORG
   auf ein lokales Benutzerkonto, beispielsweise tillman, abgebildet.
   Daher beno:tigen Client-Anwendungen (zum Beispiel telnet) keinen
   Benutzernamen.

   Manchmal wird aber Zugriff auf ein lokales Benutzerkonto
   beno:tigt, zu dem es keinen passenden Kerberos-Prinzipal gibt. Der
   Prinzipal tillman@EXAMPLE.ORG bra:uchte beispielsweise Zugriff auf
   das Konto webdevelopers. Ebenso ko:nnten andere Prinzipale auf
   dieses Konto zugreifen wollen.

   Die Dateien .k5login und .k5users im Heimatverzeichnis eines
   Benutzerkontos gewa:hren Zugriffe a:hnlich wie die Dateien .hosts
   und .rhosts. Um den Prinzipalen tillman@example.org und
   jdoe@example.org auf das Konto webdevelopers zu geben, wird im
   Heimatverzeichnis von webdevelopers die Datei .k5login mit
   folgendem Inhalt angelegt:

 tillman@example.org
 jdoe@example.org

   Die angegebenen Prinzipale haben nun ohne ein gemeinsames Passwort
   Zugriff auf das Konto.

   Einzelheiten entnehmen Sie bitte den Hilfeseiten zu diesen
   Dateien. Die Datei .k5users wird in der Hilfeseite des Kommandos
   ksu beschrieben.

     --------------------------------------------------------------

  15.7.6. Tipps und Fehlersuche

     * Wenn Sie den Heimdal-Port oder den MIT-Port benutzen, muss in
       der Umgebungsvariable PATH der Pfad zu den Programmen des
       Ports vor dem Pfad zu den Kerberos-Programmen des Systems
       stehen.

     * Sind die Uhrzeiten der Systeme synchronisiert? Wenn nicht,
       schla:gt vielleicht die Authentifizierung fehl. Abschnitt
       30.10 beschreibt, wie Sie mithilfe von NTP die Uhrzeiten
       synchronisieren.

     * Die MIT- und Heimdal-Systeme arbeiten bis auf kadmin gut
       zusammen. Fu:r kadmin wurde das Protokoll nicht normiert.

     * Wenn Sie den Namen eines Rechners a:ndern, mu:ssen Sie auch
       den host/-Prinzipal a:ndern und die Datei keytab
       aktualisieren. Dies betrifft auch spezielle Eintra:ge wie den
       Prinzipal fu:r Apaches www/mod_auth_kerb.

     * Die Rechnernamen mu:ssen vor- und ru:ckwa:rts aufgelo:st
       werden (im DNS oder in /etc/hosts). CNAME-Eintra:ge im DNS
       funktionieren, aber die entsprechenden A- und PTR-Eintra:ge
       mu:ssen vorhanden und richtig sein. Wenn sich Namen nicht
       auflo:sen lassen, ist die Fehlermeldung nicht gerade
       selbstsprechend: "Kerberos5 refuses authentication because
       Read req failed: Key table entry not found".

     * Einige Betriebssysteme installieren ksu mit falschen
       Zugriffsrechten; es fehlt das Set-UID-Bit fu:r root. Das mag
       aus Sicherheitsgru:nden richtig sein, doch funktioniert ksu
       dann nicht. Dies ist kein Fehler des KDCs.

     * Wenn Sie fu:r einen Prinzipal unter MIT-Kerberos Tickets mit
       einer la:ngeren Gu:ltigkeit als der vorgegebenen zehn Stunden
       einrichten wollen, mu:ssen Sie zwei Sachen a:ndern. Benutzen
       Sie das modify_principal von kadmin, um die maximale
       Gu:ltigkeitsdauer fu:r den Prinzipal selbst und den Prinzipal
       krbtgt zu erho:hen.

     * Mit einem Packet-Sniffer ko:nnen Sie feststellen, dass Sie
       sofort nach dem Aufruf von kinit eine Antwort vom KDC bekommen
       - noch bevor Sie u:berhaupt ein Passwort eingegeben haben! Das
       ist in Ordnung: Das KDC ha:ndigt ein Ticket-Granting-Ticket
       (TGT) auf Anfrage aus, da es durch einen vom Passwort des
       Benutzers abgeleiteten Schlu:ssel geschu:tzt ist. Wenn das
       Passwort eingegeben wird, wird es nicht zum KDC gesendet,
       sondern zum Entschlu:sseln der Antwort des KDCs benutzt, die
       kinit schon erhalten hat. Wird die Antwort erfolgreich
       entschlu:sselt, erha:lt der Benutzer einen Sitzungs-Schlu:ssel
       fu:r die ku:nftige verschlu:sselte Kommunikation mit dem KDC
       und das Ticket-Granting-Ticket. Das Ticket-Granting-Ticket
       wiederum ist mit dem Schlu:ssel des KDCs verschlu:sselt. Diese
       Verschlu:sselung ist fu:r den Benutzer vo:llig transparent und
       erlaubt dem KDC, die Echtheit jedes einzelnen TGT zu pru:fen.

     * Wenn Sie OpenSSH verwenden und Tickets mir einer langen
       Gu:ltigkeit (beispielsweise einer Woche) benutzen, setzen Sie
       die Option TicketCleanup in der Datei sshd_config auf no.
       Ansonsten werden Ihre Tickets gelo:scht, wenn Sie sich
       abmelden.

     * Host-Prinzipale ko:nnen ebenfalls Tickets mit la:ngerer
       Gu:ltigkeit besitzen. Wenn der Prinzipal eines Benutzers u:ber
       ein Ticket verfu:gt, das eine Woche gu:ltig ist, das Ticket
       des Host-Prinzipals aber nur neun Stunden gu:ltig ist,
       funktioniert der Ticket-Cache nicht wie erwartet. Im Cache
       befindet sich dann ein abgelaufenes Ticket des
       Host-Prinzipals.

     * Wenn Sie mit krb5.dict die Verwendung schlechter Passwo:rter
       verhindern wollen, geht das nur mit Prinzipalen, denen eine
       Passwort-Policy zugewiesen wurde. Die Hilfeseite von kadmind
       beschreibt kurz, wie krb5.dict verwendet wird. Das Format von
       krb5.dict ist einfach: Die Datei entha:lt pro Zeile ein Wort.
       Sie ko:nnen daher einen symbolischen Link auf
       /usr/share/dict/words erstellen.

     --------------------------------------------------------------

  15.7.7. Unterschiede zum MIT-Port

   Der Hauptunterschied zwischen MIT-Kerberos und Heimdal-Kerberos
   ist das Kommando kadmin. Die Befehlssa:tze des Kommandos (obwohl
   funktional gleichwertig) und das verwendete Protokoll
   unterscheiden sich in beiden Varianten. Das KDC la:sst sich nur
   mit dem kadmin Kommando der passenden Kerberos-Variante verwalten.

   Fu:r dieselbe Funktion ko:nnen auch die Client-Anwendungen leicht
   gea:nderte Kommandozeilenoptionen besitzen. Folgen Sie bitte der
   Anleitung auf der Kerberos-Seite
   (http://web.mit.edu/Kerberos/www/) des MITs. Achten Sie besonders
   auf den Suchpfad fu:r Anwendungen. Der MIT-Port wird
   standardma:ssig in /usr/local/ installiert. Wenn die
   Umgebungsvariable PATH zuerst die Systemverzeichnisse entha:lt,
   werden die Systemprogramme anstelle der MIT-Programme ausgefu:hrt.

     Anmerkung: Wenn Sie den MIT-Port security/krb5 verwenden,
     erscheint bei der Anmeldung mit telnetd und klogind die
     Fehlermeldung "incorrect permissions on cache file". Lesen Sie
     dazu bitte die im Port enthaltene Datei
     /usr/local/share/doc/krb5/README.FreeBSD. Wichtig ist, dass zur
     Authentifizierung die Bina:rdatei login.krb5 verwendet wird, die
     fu:r durchgereichte Berechtigungen die Eigentu:mer korrekt
     a:ndert.

   In der Datei rc.conf mu:ssen folgende Zeilen aufgenommen werden:

 kerberos5_server="/usr/local/sbin/krb5kdc"
 kadmind5_server="/usr/local/sbin/kadmind"
 kerberos5_server_enable="YES"
 kadmind5_server_enable="YES"

   Diese Zeilen sind notwendig, weil die Anwendungen von MIT-Kerberos
   Bina:rdateien unterhalb von /usr/local installieren.

     --------------------------------------------------------------

  15.7.8. Beschra:nkungen von Kerberos

     --------------------------------------------------------------

    15.7.8.1. Kerberos muss ganzheitlich verwendet werden

   Jeder u:ber das Netzwerk angebotetene Dienst muss mit Kerberos
   zusammenarbeiten oder auf anderen Wegen gegen Angriffe aus dem
   Netzwerk geschu:tzt sein. Andernfalls ko:nnen Berechtigungen
   gestohlen und wiederverwendet werden. Es ist beispielsweise nicht
   sinnvoll, fu:r Anmeldungen mit rsh und telnet Kerberos zu
   benutzen, dagegen aber POP3-Zugriff auf einen Mail-Server zu
   erlauben, da POP3 Passwo:rter im Klartext versendet.

     --------------------------------------------------------------

    15.7.8.2. Kerberos ist fu:r Einbenutzer-Systeme gedacht

   In Mehrbenutzer-Umgebungen ist Kerberos unsicherer als in
   Einbenutzer-Umgebungen, da die Tickets im fu:r alle lesbaren
   Verzeichnis /tmp gespeichert werden. Wenn ein Rechner von mehreren
   Benutzern verwendet wird, ist es mo:glich, dass Tickets gestohlen
   werden.

   Dieses Problem ko:nnen Sie lo:sen, indem Sie mit der
   Kommandozeilenoption -c oder besser mit der Umgebungsvariablen
   KRB5CCNAME einen Ort fu:r die Tickets vorgeben. Diese
   Vorgehensweise wird leider selten benutzt. Es reicht, die Tickets
   im Heimatverzeichnis eines Benutzers zu speichern und mit
   Zugriffsrechten zu schu:tzen.

     --------------------------------------------------------------

    15.7.8.3. Das KDC ist verwundbar

   Das KDC muss genauso abgesichert werden wie die auf ihm
   befindliche Passwort-Datenbank. Auf dem KDC du:rfen keine anderen
   Dienste laufen und der Rechner sollte physikalisch gesichert sein.
   Die Gefahr ist gross, da Kerberos alle Passwo:rter mit einem
   Schlu:ssel, dem Haupt-Schlu:ssel, verschlu:sselt. Der
   Haupt-Schlu:ssel wiederum wird in einer Datei auf dem KDC
   gespeichert.

   Ein kompromittierter Haupt-Schlu:ssel ist nicht ganz so schlimm
   wie allgemein angenommen. Der Haupt-Schlu:ssel wird nur zum
   Verschlu:sseln der Passwort-Datenbank und zum Initialisieren des
   Zufallsgenerators verwendet. Solange der Zugriff auf das KDC
   abgesichert ist, kann ein Angreifer wenig mit dem Haupt-Schlu:ssel
   anfangen.

   Wenn das KDC nicht zur Verfu:gung steht, vielleicht wegen eines
   Denial-of-Service Angriffs oder wegen eines Netzwerkproblems, ist
   eine Authentifizierung unmo:glich. Damit ko:nnen die
   Netzwerk-Dienste nicht benutzt werden; das KDC ist also ein
   optimales Ziel fu:r einen Denial-of-Service Angriff. Sie ko:nnen
   diesem Angriff ausweichen, indem Sie mehrere KDCs (einen Master
   und einen oder mehrere Slaves) verwenden. Der Ru:ckfall auf ein
   sekunda:res KDC oder eine andere Authentifizierungs-Methode (dazu
   ist PAM bestens geeignet) muss sorgfa:ltig eingerichtet werden.

     --------------------------------------------------------------

    15.7.8.4. Ma:ngel von Kerberos

   Mit Kerberos ko:nnen sich Benutzer, Rechner und Dienste
   gegenseitig authentifizieren. Allerdings existiert kein
   Mechanismus, der das KDC gegenu:ber Benutzern, Rechnern oder
   Diensten authentifiziert. Ein vera:ndertes kinit ko:nnte
   beispielsweise alle Benutzernamen und Passwo:rter abfangen. Die
   von vera:nderten Programmen ausgehende Gefahr ko:nnen Sie lindern,
   indem Sie die Integrita:t von Dateien mit Werkzeugen wie
   security/tripwire pru:fen.

     --------------------------------------------------------------

  15.7.9. Weiterfu:hrende Dokumentation

     * The Kerberos FAQ

     * Designing an Authentication System: a Dialogue in Four Scenes

     * RFC 1510, The Kerberos Network Authentication Service (V5)

     * MIT Kerberos-Seite

     * Heimdal Kerberos-Seite

     --------------------------------------------------------------

15.8. OpenSSL

   Beigetragen von Tom Rhodes.

   Es wird oft u:bersehen, dass OpenSSL Teil des FreeBSD-Basissystems
   ist. OpenSSL bietet eine verschlu:sselte Transportschicht oberhalb
   der normalen Kommunikationsschicht und kann daher zusammen mit
   vielen Netzdiensten benutzt werden.

   Anwendungsbeispiele fu:r OpenSSL sind die verschlu:sselte
   Authentifizierung von E-Mail-Clients oder Web-Transaktionen wie
   das Bezahlen mit einer Kreditkarte. OpenSSL kann wa:hrend des Baus
   in viele Ports, wie www/apache22 und mail/claws-mail, integriert
   werden.

     Anmerkung: Ist beim Aufruf von make die Variable
     WITH_OPENSSL_BASE nicht explizit auf yes gesetzt, baut die
     Ports-Sammlung meist den Port security/openssl.

   Das OpenSSL von FreeBSD stellt die Protokolle Secure Sockets Layer
   v2/v3 (SSLv2/SSLv3) und Transport Layer Security v1 (TLSv1) zur
   Verfu:gung. Die OpenSSL-Bibliotheken stellen kryptographische
   Funktionen bereit.

     Anmerkung: Mit OpenSSL kann der IDEA-Algorithmus verwendet
     werden, wegen Patenten in den USA ist der Algorithmus in der
     Voreinstellung allerdings deaktiviert. Wenn Sie die IDEA-Lizenz
     akzeptieren, ko:nnen Sie den IDEA-Algorithmus aktivieren, indem
     Sie die Variable MAKE_IDEA in make.conf setzen.

   Meist wird OpenSSL eingesetzt, um Zertifikate fu:r Anwendungen
   bereitzustellen. Die Zertifikate stellen die Identita:t einer
   Firma oder eines Einzelnen sicher. Wenn ein Zertifikat nicht von
   einer Zertifizierungsstelle (Certificate Authority, CA)
   gegengezeichnet wurde, erhalten Sie normalerweise eine Warnung.
   Eine Zertifizierungsstelle ist eine Firma wie VeriSign, die
   Zertifikate von Personen oder Firmen gegenzeichnet und damit die
   Korrektheit der Zertifikate besta:tigt. Diese Prozedur kostet
   Geld, ist aber keine Voraussetzung fu:r den Einsatz von
   Zertifikaten, beruhigt aber sicherheitsbewusste Benutzer.

     --------------------------------------------------------------

  15.8.1. Zertifikate erzeugen

   Ein Zertifikat erzeugen Sie mit dem nachstehenden Kommando:

 # openssl req -new -nodes -out req.pem -keyout cert.pem
 Generating a 1024 bit RSA private key
 ................++++++
 .......................................++++++
 writing new private key to 'cert.pem'
 -----
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:US
 State or Province Name (full name) [Some-State]:PA
 Locality Name (eg, city) []:Pittsburgh
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
 Organizational Unit Name (eg, section) []:Systems Administrator
 Common Name (eg, YOUR name) []:localhost.example.org
 Email Address []:trhodes@FreeBSD.org

 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:SOME PASSWORD
 An optional company name []:Another Name

   Beachten Sie bitte, dass die Eingabe bei "Common Name" ein
   gu:ltiger Domain-Name sein muss. Eine andere Eingabe erzeugt ein
   unbrauchbares Zertifikat. Das Zertifikat kann mit einer
   Gu:ltigkeitsdauer und anderen Verschlu:sselungsalgorithmen erzeugt
   werden. Die Hilfeseite openssl(1) beschreibt die zur Verfu:gung
   stehenden Optionen.

   Das Verzeichnis, in dem Sie den letzten Befehl ausgefu:hrt haben,
   entha:lt nun zwei Dateien: Die Anforderung fu:r ein neues
   Zertifikat wurde in req.pem gespeichert. Diese Datei ko:nnen Sie
   an eine Zertifizierungsstelle senden, wo Ihre Angaben gepru:ft
   werden. Nach erfolgreicher Pru:fung wird das Zertifikat an Sie
   zuru:ckgesandt. Die zweite Datei, cert.pem, entha:lt den privaten
   Schlu:ssel fu:r Ihr Zertifikat und darf auch keine Fall in fremde
   Ha:nde geraten, da ein Angreifer sonst in der Lage ist, anderen
   Personen oder Rechnern vorzugaukeln, dass es sich bei ihm um Sie
   handelt.

   Wenn Sie keine Signatur einer Zertifizierungsstelle beno:tigen,
   ko:nnen Sie ein selbst-signiertes Zertifikat erstellen. Erzeugen
   Sie dazu zuerst einen RSA-Schlu:ssel:

 # openssl dsaparam -rand -genkey -out myRSA.key 1024

   Erzeugen Sie dann den CA-Schlu:ssel:

 # openssl gendsa -des3 -out myca.key myRSA.key

   Erstellen Sie mit diesem Schlu:ssel das Zertifikat:

 # openssl req -new -x509 -days 365 -key myca.key -out new.crt

   Zwei neue Dateien befinden sich nun im Verzeichnis: Der Schlu:ssel
   der Zertifizierungsstelle myca.key und das Zertifikat selbst,
   new.crt. Sie sollten in einem Verzeichnis, vorzugsweise unterhalb
   von /etc abgelegt werden, das nur von root lesbar ist. Setzen Sie
   die Zugriffsrechte der Dateien mit chmod auf 0700.

     --------------------------------------------------------------

  15.8.2. Beispiel fu:r Zertifikate

   Was fangen Sie mit einem Zertifikat an? Sie ko:nnten damit
   beispielsweise die Verbindungen zu Sendmail verschlu:sseln. Dies
   wu:rde die Klartext-Authentifizierung fu:r Benutzer des lokalen
   MTA u:berflu:ssig machen.

     Anmerkung: Das ist nicht unbedingt die beste Lo:sung, da einige
     MUAs Warnungen ausgeben, wenn ein Zertifikat nicht lokal
     installiert ist. Die Installation von Zertifikaten wird in der
     Dokumentation der MUAs beschrieben.

   Erga:nzen Sie die Konfigurationsdatei von sendmail (.mc) um die
   nachstehenden Zeilen:

 dnl SSL Options
 define(`confCACERT_PATH',`/etc/certs')dnl
 define(`confCACERT',`/etc/certs/new.crt')dnl
 define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
 define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
 define(`confTLS_SRV_OPTIONS', `V')dnl

   Im Verzeichnis /etc/certs befindet sich der Schlu:ssel und das
   Zertifikat. Bauen Sie danach im Verzeichnis /etc/mail mit dem
   Kommando make install die .cf-Datei und starten Sie anschliessend
   sendmail mit make restart neu.

   Wenn alles gut ging, erscheinen keine Fehlermeldungen in der Datei
   /var/log/maillog und Sie sehen sendmail in der Prozessliste.

   Testen Sie nun den Mailserver mit dem Kommando telnet(1):

 # telnet example.com 25
 Trying 192.0.34.166...
 Connected to example.com.
 Escape character is '^]'.
 220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
 ehlo example.com
 250-example.com Hello example.com [192.0.34.166], pleased to meet you
 250-ENHANCEDSTATUSCODES
 250-PIPELINING
 250-8BITMIME
 250-SIZE
 250-DSN
 250-ETRN
 250-AUTH LOGIN PLAIN
 250-STARTTLS
 250-DELIVERBY
 250 HELP
 quit
 221 2.0.0 example.com closing connection
 Connection closed by foreign host.

   Wenn in einer Zeile STARTTLS erscheint, hat alles funktioniert.

     --------------------------------------------------------------

15.9. VPNs mit IPsec

   Geschrieben von Nik Clayton.

   Dieser Abschnitt beschreibt, wie Sie mit FreeBSD-Gateways ein
   Virtual-Private-Network (VPN) einrichten. Als Beispiel wird ein
   VPN zwischen zwei Netzen verwendet, die u:ber das Internet
   miteinander verbunden sind.

     --------------------------------------------------------------

  15.9.1. IPsec Grundlagen

   Geschrieben von Hiten M. Pandya.

   Dieser Abschnitt zeigt Ihnen, wie Sie IPsec einrichten. Um IPsec
   einzurichten, sollten Sie einen neuen Kernel bauen ko:nnen (siehe
   Kapitel 9).

   IPsec ist ein Protokoll, das auf dem Internet-Protokoll (IP)
   aufbaut. Mit IPsec ko:nnen mehrere Systeme geschu:tzt miteinander
   kommunizieren. Das in FreeBSD realisierte IPsec-Protokoll baut auf
   der KAME-Implementierung auf und unterstu:tzt sowohl IPv4 als auch
   IPv6.

   IPsec besteht wiederum aus zwei Protokollen:

     * Encapsulated Security Payload (ESP) verschlu:sselt IP-Pakete
       mit einem symmetrischen Verfahren (beispielsweise Blowfish
       oder 3DES). Damit werden die Pakete vor Manipulationen Dritter
       geschu:tzt.

     * Der Authentication Header (AH) entha:t eine kryptographische
       Pru:fsumme, die sicher stellt, dass ein IP-Paket nicht
       vera:ndert wurde. Der Authentication-Header folgt nach dem
       normalen IP-Header und erlaubt dem Empfa:nger eines
       IP-Paketes, dessen Integrita:t zu pru:fen.

   ESP und AH ko:nnen, je nach Situation, zusammen oder einzeln
   verwendet werden.

   IPsec kann in zwei Modi betrieben werden: Der Transport-Modus
   verschlu:sselt die Daten zwischen zwei Systemen. Der Tunnel-Modus
   verbindet zwei Subnetze miteinander. Durch einen Tunnel ko:nnen
   dann beispielsweise verschlu:sselte Daten u:bertragen werden. Ein
   Tunnel wird auch als Virtual-Private-Network (VPN) bezeichnet.
   Detaillierte Informationen u:ber das IPsec-Subsystem von FreeBSD
   entha:lt die Hilfeseite ipsec(4).

   Die folgenden Optionen in der Kernelkonfiguration aktivieren
   IPsec:

 options   IPSEC        #IP security
 device    crypto

   Wenn Sie zur Fehlersuche im IPsec-Subsystem Unterstu:tzung
   wu:nschen, sollten Sie die folgende Option ebenfalls aktivieren:

 options   IPSEC_DEBUG  #debug for IP security

     --------------------------------------------------------------

  15.9.2. Was ist ein VPN?

   Es gibt keinen Standard, der festlegt, was ein
   Virtual-Private-Network ist. VPNs ko:nnen mit verschiedenen
   Techniken, die jeweils eigene Vor- und Nachteile besitzen,
   implementiert werden. Dieser Abschnitt stellt eine Mo:glichkeit
   vor, ein VPN aufzubauen.

     --------------------------------------------------------------

  15.9.3. Das Szenario: Zwei Netzwerke, ein Heim- und ein
  Firmennetzwerk. Beide sind mit dem Internet verbunden und verhalten
  sich dank VPN wie ein Netzwerk.

   Dieses Szenario hat die folgenden Vorausetzungen:

     * Es mu:ssen zwei Netzwerke vorhanden sein.

     * Beide Netzwerke mu:ssen intern IP benutzen.

     * Beide Netzwerke sind u:ber ein FreeBSD-Gateway mit dem
       Internet verbunden.

     * Der Gateway jedes Netzwerks besitzt mindestens eine
       o:ffentliche IP-Adresse.

     * Die intern verwendeten IP-Adressen ko:nnen private oder
       o:ffentliche Adressen sein. Sie du:rfen sich nicht
       u:berlappen; zum Beispiel: nicht beide sollten 192.168.1.x
       benutzen.

     --------------------------------------------------------------

  15.9.4. Konfiguration von IPsec in FreeBSD

   Geschrieben von Tom Rhodes.

   Als erstes muss security/ipsec-tools aus der Ports-Sammlung
   installiert werden. Dieses Softwarepaket Dritter entha:lt einige
   Anwendungen, die ihnen bei der Konfiguration von IPsec helfen.

   Als na:chstes mu:ssen zwei gif(4)-Pseudogera:te angelegt werden,
   um die Pakete zu tunneln und dafu:r zu sorgen, dass beide
   Netzwerke richtig miteinander kommunizieren ko:nnen. Geben Sie als
   Benutzer root die folgenden Befehle ein: Austausch der internen
   und externen Werte durch die realen internen und externen
   Gateways:

 # ifconfig gif0 create

 # ifconfig gif0 internal1 internal2

 # ifconfig gif0 tunnel external1 external2

   Beispiel: Die o:ffentliche IP-Adresse des Firmennetzwerkes (LAN)
   ist: 172.16.5.4 mit einer internen IP-Adresse von 10.246.38.1. Das
   Heimnetzwerk (LAN) hat die o:ffentliche IP-Adresse 192.168.1.12
   mit der internen privaten IP-Adresse 10.0.0.5.

   Dies mag verwirrend erscheinen, schauen Sie sich deshalb das
   folgende Beispiel aus dem ifconfig(8)-Befehl an:

 Gateway 1:

 gif0: flags=8051 mtu 1280
 tunnel inet 172.16.5.4 --> 192.168.1.12
 inet6 fe80::2e0:81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6
 inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00

 Gateway 2:

 gif0: flags=8051 mtu 1280
 tunnel inet 192.168.1.12 --> 172.16.5.4
 inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00
 inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4

   Wenn Sie fertig sind, sollten beide privaten IPs mit dem ping(8)
   Befehl, wie die folgende Darstellung zeigt, erreichbar sein:

 priv-net# ping 10.0.0.5
 PING 10.0.0.5 (10.0.0.5): 56 data bytes
 64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms
 64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms
 64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms
 64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms
 --- 10.0.0.5 ping statistics ---
 4 packets transmitted, 4 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms

 corp-net# ping 10.246.38.1
 PING 10.246.38.1 (10.246.38.1): 56 data bytes
 64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms
 64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms
 64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms
 64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms
 64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms
 --- 10.246.38.1 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms

   Wie erwartet, ko:nnen nun beiden Seiten ICMP-Pakete von ihren
   privaten Adressen senden und empfangen. Als na:chstes mu:ssen
   beide Gateways so konfiguriert werden, dass sie die Pakete des
   anderen Netzwerkes richtig routen. Mit dem folgenden Befehl
   erreicht man das Ziel:

 # corp-net# route add 10.0.0.0 10.0.0.5 255.255.255.0

 # corp-net# route add net 10.0.0.0: gateway 10.0.0.5

 # priv-net# route add 10.246.38.0 10.246.38.1 255.255.255.0

 # priv-net# route add host 10.246.38.0: gateway 10.246.38.1

   Ab jetzt sollten die Rechner von den Gateways sowie von den
   Rechnern hinter den Gateways erreichbar sein. Dies wird an dem
   folgendem Beispiel deutlich:

 corp-net# ping 10.0.0.8
 PING 10.0.0.8 (10.0.0.8): 56 data bytes
 64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms
 64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms
 64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms
 64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms
 64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms
 --- 10.0.0.8 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms

 priv-net# ping 10.246.38.107
 PING 10.246.38.1 (10.246.38.107): 56 data bytes
 64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms
 64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms
 64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms
 64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms
 64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms
 --- 10.246.38.107 ping statistics ---
 5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms

   Das Konfigurieren der Tunnel ist der einfache Teil. Die
   Konfiguration einer sicheren Verbindung geht sehr viel mehr in die
   Tiefe. Die folgende Konfiguration benutzt pre-shared (PSK)
   RSA-Schlu:ssel. Abgesehen von den IP-Adressen, sind beide
   /usr/local/etc/racoon/racoon.conf identisch und sehen a:hnlich aus
   wie:

 path    pre_shared_key  "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file
 log     debug;  #log verbosity setting: set to 'notify' when testing and debugging is complete

 padding # options are not to be changed
 {
         maximum_length  20;
         randomize       off;
         strict_check    off;
         exclusive_tail  off;
 }

 timer   # timing options. change as needed
 {
         counter         5;
         interval        20 sec;
         persend         1;
 #       natt_keepalive  15 sec;
         phase1          30 sec;
         phase2          15 sec;
 }

 listen  # address [port] that racoon will listening on
 {
         isakmp          172.16.5.4 [500];
         isakmp_natt     172.16.5.4 [4500];
 }

 remote  192.168.1.12 [500]
 {
         exchange_mode   main,aggressive;
         doi             ipsec_doi;
         situation       identity_only;
         my_identifier   address 172.16.5.4;
         peers_identifier        address 192.168.1.12;
         lifetime        time 8 hour;
         passive         off;
         proposal_check  obey;
 #       nat_traversal   off;
         generate_policy off;

                         proposal {
                                 encryption_algorithm    blowfish;
                                 hash_algorithm          md5;
                                 authentication_method   pre_shared_key;
                                 lifetime time           30 sec;
                                 dh_group                1;
                         }
 }

 sainfo  (address 10.246.38.0/24 any address 10.0.0.0/24 any)    # address $network/$netmask $type address $network/$netmask $type ( $type being any or esp)
 {                                                               # $network must be the two internal networks you are joining.
         pfs_group       1;
         lifetime        time    36000 sec;
         encryption_algorithm    blowfish,3des,des;
         authentication_algorithm        hmac_md5,hmac_sha1;
         compression_algorithm   deflate;
 }

   Die Erkla:rung einer jeden verfu:gbaren Option wu:rde den Rahmen
   dieses Textes sprengen. Es gibt sehr viele relevante Informationen
   in der racoon-Konfigurationsanleitung.

   Die SPD-Methoden mu:ssn noch konfiguriert werden so dass, FreeBSD
   und racoon in der Lage sind den Netzwerkverkehr zwischen den Hosts
   zu ver- und entschlu:sseln.

   Dies wird durch ein einfaches Shellscript a:hnlich wie das
   folgende, das auf dem Firmennetzwerk-Gateway liegt, ausgefu:hrt.
   Diese Datei wird wa:hrend der Systeminitialisierung ausgefu:hrt
   und sollte unter /usr/local/etc/racoon/setkey.conf abgespeichert
   werden.

 flush;
 spdflush;

 # To the home network
 spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use;
 spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use;

   Einmal abgespeichert, kann racoon durch das folgende Kommando auf
   beiden Gateways gestartet werden:

 # /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log

   Die Ausgabe sollte so a:hnlich aussehen:

 corp-net# /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf
 Foreground mode.
 2006-01-30 01:35:47: INFO: begin Identity Protection mode.
 2006-01-30 01:35:48: INFO: received Vendor ID: KAME/racoon
 2006-01-30 01:35:55: INFO: received Vendor ID: KAME/racoon
 2006-01-30 01:36:04: INFO: ISAKMP-SA established 172.16.5.4[500]-192.168.1.12[500] spi:623b9b3bd2492452:7deab82d54ff704a
 2006-01-30 01:36:05: INFO: initiate new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
 2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=28496098(0x1b2d0e2)
 2006-01-30 01:36:09: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=47784998(0x2d92426)
 2006-01-30 01:36:13: INFO: respond new phase 2 negotiation: 172.16.5.4[0]192.168.1.12[0]
 2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 192.168.1.12[0]->172.16.5.4[0] spi=124397467(0x76a279b)
 2006-01-30 01:36:18: INFO: IPsec-SA established: ESP/Tunnel 172.16.5.4[0]->192.168.1.12[0] spi=175852902(0xa7b4d66)

   Um sicherzustellen, dass der Tunnel richtig funktioniert, wechseln
   Sie auf eine andere Konsole und benutzen Sie tcpdump(1) mit dem
   folgenden Befehl, um sich den Netzwerkverkehr anzusehen. Tauschen
   Sie em0 durch die richtige Netzwerkkarte aus.

 # tcpdump -i em0 host 172.16.5.4 and dst 192.168.1.12

   Die Ausgabe der Konsole sollte dem hier a:hneln. Wenn nicht, gibt
   es ein Problem und ein Debuggen der ausgegebenen Daten ist
   notwendig.

 01:47:32.021683 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xa)
 01:47:33.022442 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xb)
 01:47:34.024218 IP corporatenetwork.com > 192.168.1.12.privatenetwork.com: ESP(spi=0x02acbf9f,seq=0xc)

   An diesem Punkt sollten beide Netzwerke verfu:gbar sein und den
   Anschein haben, dass sie zum selben Netzwerk geho:ren. Meistens
   sind beide Netzwerke durch eine Firewall geschu:tzt. Um den
   Netzwerkverkehr zwischen den beiden Netzwerken zu erlauben, ist es
   notwendig Regeln zu erstellen. Fu:r die ipfw(8) Firewall fu:gen
   Sie folgende Zeilen in ihre Firewall-Konfigurationsdatei ein:

 ipfw add 00201 allow log esp from any to any
 ipfw add 00202 allow log ah from any to any
 ipfw add 00203 allow log ipencap from any to any
 ipfw add 00204 allow log udp from any 500 to any

     Anmerkung: Die Regelnummern mu:ssen eventuell, je nach ihrer
     Hostkonfiguration, angepasst werden.

   Fu:r Benutzer der pf(4)- oder ipf(8)-Firewall sollte folgendes
   funktionieren:

 pass in quick proto esp from any to any
 pass in quick proto ah from any to any
 pass in quick proto ipencap from any to any
 pass in quick proto udp from any port = 500 to any port = 500
 pass in quick on gif0 from any to any
 pass out quick proto esp from any to any
 pass out quick proto ah from any to any
 pass out quick proto ipencap from any to any
 pass out quick proto udp from any port = 500 to any port = 500
 pass out quick on gif0 from any to any

   Zum Ende, um dem Computer den Start vom VPN wa:hrend der
   Systeminitialisierung zu erlauben, fu:gen Sie folgende Zeilen in
   ihre /etc/rc.conf: ein

 ipsec_enable="YES"
 ipsec_program="/usr/local/sbin/setkey"
 ipsec_file="/usr/local/etc/racoon/setkey.conf" # allows setting up spd policies on boot
 racoon_enable="yes"

     --------------------------------------------------------------

15.10. OpenSSH

   Beigetragen von Chern Lee.

   OpenSSH stellt Werkzeuge bereit, um sicher auf entfernte Maschinen
   zuzugreifen. Die Kommandos rlogin, rsh, rcp und telnet ko:nnen
   durch OpenSSH ersetzt werden. Zusa:tzlich ko:nnen
   TCP/IP-Verbindungen sicher durch SSH weitergeleitet (getunnelt)
   werden. Mit SSH werden alle Verbindungen verschlu:sselt, dadurch
   wird verhindert, dass die Verbindung zum Beispiel abgeho:rt oder
   u:bernommen (Hijacking) werden kann.

   OpenSSH wird vom OpenBSD-Projekt gepflegt und basiert auf
   SSH v1.2.12 mit allen aktuellen Fixen und Aktualisierungen.
   OpenSSH ist mit den SSH-Protokollen der Versionen 1 und 2
   kompatibel.

     --------------------------------------------------------------

  15.10.1. Vorteile von OpenSSH

   Mit telnet(1) oder rlogin(1) werden Daten in einer
   unverschlu:sselten Form u:ber das Netzwerk gesendet. Daher besteht
   die Gefahr, das Benutzer/Passwort Kombinationen oder alle Daten an
   beliebiger Stelle zwischen dem Client und dem Server abgeho:rt
   werden. Mit OpenSSH stehen eine Reihe von Authentifizierungs- und
   Verschlu:sselungsmethoden zur Verfu:gung, um das zu verhindern.

     --------------------------------------------------------------

  15.10.2. Aktivieren von sshd

   Unter FreeBSD entscheidet der Anwender bei einer
   Standard-Installation, ob der sshd-Daemon aktiviert werden soll.
   Um zu u:berpru:fen, ob sshd auf Ihrem System aktiviert ist, suchen
   Sie in rc.conf nach der folgenden Zeile:

 sshd_enable="YES"

   Ist diese Zeile vorhanden, wird sshd(8), der OpenSSH-Daemon, beim
   Systemstart automatisch aktiviert. Alternativ ko:nnen Sie OpenSSH
   auch u:ber das rc(8)-Skript /etc/rc.d/sshd starten:

 # /etc/rc.d/sshd start

     --------------------------------------------------------------

  15.10.3. SSH Client

   ssh(1) arbeitet a:hnlich wie rlogin(1):

 # ssh user@example.com
 Host key not found from the list of known hosts.
 Are you sure you want to continue connecting (yes/no)? yes
 Host 'example.com' added to the list of known hosts.
 user@example.com's password: *******

   Der Anmeldevorgang wird danach, wie von rlogin oder telnet
   gewohnt, weiterlaufen. SSH speichert einen Fingerabdruck des
   Serverschlu:ssels. Die Aufforderung, yes einzugeben, erscheint nur
   bei der ersten Verbindung zu einem Server. Weitere Verbindungen zu
   dem Server werden gegen den gespeicherten Fingerabdruck des
   Schlu:ssels gepru:ft und der Client gibt eine Warnung aus, wenn
   sich der empfangene Fingerabdruck von dem gespeicherten
   unterscheidet. Die Fingerabdru:cke der Version 1 werden in
   ~/.ssh/known_hosts, die der Version 2 in ~/.ssh/known_hosts2
   gespeichert.

   In der Voreinstellung akzeptieren aktuelle OpenSSH-Server nur
   SSH v2 Verbindungen. Wenn mo:glich, wird Version 2 verwendet, ist
   dies nicht mo:glich, fa:llt der Server auf Version 1 zuru:ck. Der
   Client kann gezwungen werden, nur eine der beiden Versionen zu
   verwenden, indem die Option -1 (fu:r die Version 1) oder -2 (fu:r
   die Version 2) u:bergeben wird. Die Unterstu:tzung fu:r Version 1
   ist nur noch aus Kompatibilita:tsgru:nden zu a:lteren Versionen
   enthalten.

     --------------------------------------------------------------

  15.10.4. Secure Copy

   Mit scp(1) lassen sich Dateien analog wie mit rcp(1) auf entfernte
   Maschinen kopieren. Mit scp werden die Dateien allerdings in einer
   sicheren Weise u:bertragen.

 #  scp user@example.com:/COPYRIGHT COPYRIGHT
 user@example.com's password:
 COPYRIGHT            100% |*****************************|  4735
 00:00
 #

   Da der Fingerabdruck schon im vorigen Beispiel abgespeichert
   wurde, wird er bei der Verwendung von scp in diesem Beispiel
   u:berpru:ft. Da die Fingerabdru:cke u:bereinstimmen, wird keine
   Warnung ausgegeben.

   Die Argumente, die scp u:bergeben werden, gleichen denen von cp in
   der Beziehung, dass die ersten Argumente die zu kopierenden
   Dateien sind und das letzte Argument den Bestimmungsort angibt. Da
   die Dateien u:ber das Netzwerk kopiert werden, ko:nnen ein oder
   mehrere Argumente die Form user@host:<path_to_remote_file>
   besitzen.

     --------------------------------------------------------------

  15.10.5. Konfiguration

   Die fu:r das ganze System gu:ltigen Konfigurationsdateien des
   OpenSSH-Daemons und des Clients finden sich in dem Verzeichnis
   /etc/ssh.

   Die Client-Konfiguration befindet sich in ssh_config, die des
   Servers befindet sich in sshd_config.

   Das SSH-System la:sst sich weiterhin u:ber die Anweisungen
   sshd_program (Vorgabe ist /usr/sbin/sshd) und sshd_flags in
   /etc/rc.conf konfigurieren.

     --------------------------------------------------------------

  15.10.6. ssh-keygen

   Mit ssh-keygen(1) ko:nnen DSA- oder RSA-Schlu:ssel fu:r einen
   Benutzer erzeugt werden, die anstelle von Passwo:rtern verwendet
   werden ko:nnen:

 % ssh-keygen -t dsa
 Generating public/private dsa key pair.
 Enter file in which to save the key (/home/user/.ssh/id_dsa):
 Created directory '/home/user/.ssh'.
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /home/user/.ssh/id_dsa.
 Your public key has been saved in /home/user/.ssh/id_dsa.pub.
 The key fingerprint is:
 bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com

   ssh-keygen(1) erzeugt einen o:ffentlichen und einen privaten
   Schlu:ssel fu:r die Authentifizierung. Der private Schlu:ssel wird
   in ~/.ssh/id_dsa oder ~/.ssh/id_rsa gespeichert, wa:hrend sich der
   o:ffentliche Schlu:ssel in ~/.ssh/id_dsa.pub oder
   ~/.ssh/id_rsa.pub befindet, je nachdem, ob es sich um einen DSA-
   oder einen RSA-Schlu:ssel handelt. Der o:ffentliche Schlu:ssel
   muss sowohl fu:r RSA- als auch fu:r DSA-Schlu:ssel in die Datei
   ~/.ssh/authorized_keys auf dem entfernten Rechner aufgenommen
   werden, damit der Schlu:ssel funktioniert.

   Damit werden Verbindungen zu der entfernten Maschine u:ber
   SSH-Schlu:sseln anstelle von Passwo:rtern authentifiziert.

   Wenn bei der Erstellung der Schlu:ssel mit ssh-keygen(1) ein
   Passwort angegeben wurde, wird der Benutzer bei jeder Anmeldung
   zur Eingabe des Passworts aufgefordert. Um den Umgang mit
   SSH-Schlu:sseln zu erleichtern, kann ssh-agent(1) die Verwaltung
   dieser Schlu:ssel fu:r Sie u:bernehmen. Lesen Sie dazu den
   Abschnitt 15.10.7 weiter unten.

     Warnung: Die Kommandozeilenoptionen und Dateinamen sind
     abha:ngig von der OpenSSH-Version. Die fu:r Ihr System gu:ltigen
     Optionen finden Sie in der Hilfeseite ssh-keygen(1).

     --------------------------------------------------------------

  15.10.7. ssh-agent und ssh-add

   Mit ssh-agent(1) und ssh-add(1) ist es mo:glich, SSH-Schlu:ssel in
   den Speicher zu laden, damit die Passphrase nicht jedesmal
   eingegeben werden muss.

   ssh-agent(1) u:bernimmt die Authentifizierung von ihm geladener
   privater Schlu:ssel. ssh-agent(1) sollte nur dazu verwendet
   werden, ein anderes Programm zu starten, beispielsweise eine Shell
   oder einen Window-Manager.

   Um ssh-agent(1) in einer Shell zu verwenden, muss es mit einer
   Shell als Argument aufgerufen werden. Zusa:tzlich mu:ssen die zu
   verwaltende Identita:t (durch ssh-add(1)) sowie deren Passphrase
   fu:r den privaten Schlu:ssel u:bergeben werden. Nachdem dies
   erledigt ist, kann sich ein Benutzer u:ber ssh(1) auf jedem
   Rechner anmelden, der einen entsprechenden o:ffentlichen
   Schlu:ssel besitzt. Dazu ein Beispiel:

 % ssh-agent csh
 % ssh-add
 Enter passphrase for /home/user/.ssh/id_dsa:
 Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
 %

   Um ssh-agent(1) unter X11 zu verwenden, mu:ssen Sie ssh-agent(1)
   in Ihre ~/.xinitrc aufnehmen. Dadurch ko:nnen alle unter X11
   gestarteten Programme die Dienste von ssh-agent(1) nutzen. Ihre
   ~/.xinitrc ko:nnte dazu etwas so aussehen:

 exec ssh-agent startxfce4

   Dadurch wird bei jedem Start von X11 zuerst ssh-agent(1)
   aufgerufen, das wiederum XFCE startet. Nachdem Sie diese A:nderung
   durchgefu:hrt haben, mu:ssen Sie X11 neu starten. Danach ko:nnen
   Sie mit ssh-add(1) Ihre SSH-Schlu:ssel laden.

     --------------------------------------------------------------

  15.10.8. SSH-Tunnel

   Mit OpenSSH ist es mo:glich, einen Tunnel zu erstellen, in dem ein
   anderes Protokoll verschlu:sselt u:bertragen wird.

   Das folgende Kommando erzeugt einen Tunnel fu:r telnet:

 % ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
 %

   Dabei wurden die folgenden Optionen von ssh verwendet:

   -2

           Erzwingt die Version 2 des Protokolls (Benutzen Sie die
           Option nicht mit langsamen SSH-Servern).

   -N

           Zeigt an, dass ein Tunnel erstellt werden soll. Ohne diese
           Option wu:rde ssh eine normale Sitzung o:ffnen.

   -f

           Zwingt ssh im Hintergrund zu laufen.

   -L

           Ein lokaler Tunnel wird in der Form
           localport:remotehost:remoteport angegeben. Die Verbindung
           wird dabei von dem lokalen Port localport auf einen
           entfernten Rechner weitergeleitet.

   user@foo.example.com

           Gibt den entfernten SSH-Server an.

   Ein SSH-Tunnel erzeugt ein Socket auf localhost und dem
   angegebenen Port. Jede Verbindung, die auf dem angegebenen Socket
   aufgemacht wird, wird dann auf den spezifizierten entfernten
   Rechner und Port weitergeleitet.

   Im Beispiel wird der Port 5023 auf die entfernte Maschine und dort
   auf localhost Port 23 weitergeleitet. Da der Port 23 fu:r Telnet
   reserviert ist, erzeugt das eine sichere Telnet-Verbindung durch
   einen SSH-Tunnel.

   Diese Vorgehensweise kann genutzt werden, um jedes unsichere
   TCP-Protokoll wie SMTP, POP3, FTP, usw. weiterzuleiten.

   Beispiel 15-1. Mit SSH einen sicheren Tunnel fu:r SMTP erstellen

 % ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
 user@mailserver.example.com's password: *****
 % telnet localhost 5025
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 220 mailserver.example.com ESMTP

   Zusammen mit ssh-keygen(1) und zusa:tzlichen Benutzer-Accounts
   ko:nnen Sie leicht benutzbare SSH-Tunnel aufbauen. Anstelle von
   Passwo:rtern ko:nnen Sie Schlu:ssel benutzen und jeder Tunnel kann
   unter einem eigenen Benutzer laufen.

     --------------------------------------------------------------

    15.10.8.1. Beispiel fu:r SSH-Tunnel

      15.10.8.1.1. Sicherer Zugriff auf einen POP3-Server

   Nehmen wir an, an Ihrer Arbeitsstelle gibt es einen SSH-Server,
   der Verbindungen von aussen akzeptiert. Auf dem Netzwerk Ihrer
   Arbeitsstelle soll sich zudem noch ein Mail-Server befinden, der
   POP3 spricht. Das Netzwerk oder die Verbindung von Ihrem Haus zu
   Ihrer Arbeitsstelle ist unsicher und daher mu:ssen Sie Ihre E-Mail
   u:ber eine gesicherte Verbindung abholen ko:nnen. Die Lo:sung zu
   diesem Problem besteht darin, eine SSH-Verbindung von Ihrem Haus
   zu dem SSH-Server an Ihrer Arbeitsstelle aufzubauen, und von dort
   weiter zum Mail-Server zu tunneln.

 % ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
 user@ssh-server.example.com's password: ******

   Wenn Sie den Tunnel eingerichtet haben, konfigurieren Sie Ihren
   Mail-Client so, dass er POP3 Anfragen zu localhost Port 2110
   sendet. Die Verbindung wird dann sicher zu mail.example.com
   weitergeleitet.

     --------------------------------------------------------------

      15.10.8.1.2. Umgehen einer strengen Firewall

   Einige Netzwerkadministratoren stellen sehr drakonische
   Firewall-Regeln auf, die nicht nur einkommende Verbindungen
   filtern, sondern auch ausgehende. Es kann sein, dass Sie externe
   Maschinen nur u:ber die Ports 22 und 80 (SSH und Web) erreichen.

   Sie wollen auf einen Dienst, der vielleicht nichts mit Ihrer
   Arbeit zu tun hat, wie einen Ogg Vorbis Musik-Server, zugreifen.
   Wenn der Ogg Vorbis Server nicht auf den Ports 22 oder 80 la:uft,
   ko:nnen Sie aber nicht auf ihn zugreifen.

   Die Lo:sung hier ist es, eine SSH-Verbindung zu einer Maschine
   ausserhalb der Firewall aufzumachen und durch diese zum Ogg Vorbis
   Server zu tunneln.

 % ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
 user@unfirewalled-system.example.org's password: *******

   Konfigurieren Sie Ihren Client so, dass er localhost und Port 8888
   benutzt. Die Verbindung wird dann zu music.example.com Port 8000
   weitergeleitet und Sie haben die Firewall erfolgreich umgangen.

     --------------------------------------------------------------

  15.10.9. Die Option AllowUsers

   Es ist in der Regel ein gute Idee, festzulegen, welche Benutzer
   sich von welchem Rechner aus anmelden ko:nnen. Dies la:sst sich
   beispielsweise u:ber die Option AllowUsers festlegen. Soll sich
   etwa nur root vom Rechner mit der IP-Adresse 192.168.1.32 aus
   einwa:hlen du:rfen, wu:rden Sie folgenden Eintrag in
   /etc/ssh/sshd_config aufnehmen:

 AllowUsers root@192.168.1.32

   Damit sich admin von jedem Rechner aus anmelden kann, geben Sie
   nur den Benutzernamen an:

 AllowUsers admin

   Sie ko:nnen auch mehrere Benutzer in einer Zeile auffu:hren:

 AllowUsers root@192.168.1.32 admin

     Anmerkung: Nur ein Benutzer, der in dieser Liste aufgefu:hrt
     ist, darf sich auf diesem Rechner anmelden.

   Nachdem Sie /etc/ssh/sshd_config angepasst haben, muss sshd(8)
   seine Konfigurationsdateien neu einlesen. Dazu geben Sie Folgendes
   ein:

 # /etc/rc.d/sshd reload

     --------------------------------------------------------------

  15.10.10. Weiterfu:hrende Informationen

   OpenSSH

   ssh(1) scp(1) ssh-keygen(1) ssh-agent(1) ssh-add(1) ssh_config(5)

   sshd(8) sftp-server(8) sshd_config(5)

     --------------------------------------------------------------

15.11. Zugriffskontrolllisten fu:r Dateisysteme

   Beigetragen von Tom Rhodes.

   Zusammen mit anderen Verbesserungen des Dateisystems wie
   Schnappschu:sse bietet FreeBSD auch Zugriffskontrolllisten (access
   control list, ACL).

   Zugriffskontrolllisten erweitern die normalen Zugriffsrechte von
   UNIX Systemen auf eine kompatible (POSIX.1e) Weise und bieten
   feiner granulierte Sicherheitsmechanismen.

   Zugriffskontrolllisten fu:r Dateisysteme werden mit der
   nachstehenden Zeile in der Kernelkonfiguration aktiviert:

 options UFS_ACL

   Diese Option ist in der GENERIC-Konfiguration aktiviert. Das
   System gibt eine Warnung aus, wenn ein Dateisystem mit ACLs
   eingehangen werden soll und die Unterstu:tzung fu:r ACLs nicht im
   Kernel aktiviert ist. Das Dateisystem muss weiterhin erweiterte
   Attribute zur Verfu:gung stellen, damit ACLs verwendet werden
   ko:nnen. Das neue UNIX-Dateisystem UFS2 stellt diese Attribute
   standardma:ssig zur Verfu:gung.

     Anmerkung: Die Konfiguration erweiterter Attribute auf UFS1 ist
     mit einem ho:heren Aufwand als die Konfiguration erweiterter
     Attribute auf UFS2 verbunden. Zudem ist UFS2 mit erweiterten
     Attributen leistungsfa:higer als UFS1. Zugriffskontrolllisten
     sollten daher mit UFS2 verwendet werden.

   Die Angabe der Option acl in /etc/fstab aktiviert
   Zugriffskontrolllisten fu:r ein Dateisystem. Die bevorzugte
   Mo:glichkeit ist die Verwendung von Zugriffskontrolllisten mit
   tunefs(8) (Option -a), im Superblock des Dateisystems
   festzuschreiben. Diese Mo:glichkeit hat mehrere Vorteile:

     * Nochmaliges Einha:ngen eines Dateisystems (Option -u von
       mount(8)) vera:ndert den Status der Zugriffskontrolllisten
       nicht. Die Verwendung von Zugriffskontrolllisten kann nur
       durch Abha:ngen und erneutes Einha:ngen eines Dateisystems
       vera:ndert werden. Das heisst auch, dass
       Zugriffskontrolllisten nicht nachtra:glich auf dem
       Root-Dateisystem aktiviert werden ko:nnen.

     * Die Zugriffskontrolllisten auf den Dateisystemen sind,
       unabha:ngig von den Option in /etc/fstab oder
       Namensa:nderungen der Gera:te, immer aktiv. Dies verhindert
       auch, dass Zugriffskontrolllisten aus Versehen auf Dateisystem
       ohne Zugriffskontrolllisten aktiviert werden und durch falsche
       Zugriffsrechte Sicherheitsprobleme entstehen.

     Anmerkung: Es kann sein, dass sich der Status von
     Zugriffskontrolllisten spa:ter durch nochmaliges Einha:ngen des
     Dateisystems (Option -u von mount(8)) a:ndern la:sst. Die
     momentane Variante ist aber sicherer, da der Status der
     Zugriffskontrolllisten nicht versehentlich gea:ndert werden
     kann. Allgemein sollten Zugriffskontrolllisten auf einem
     Dateisystem, auf dem sie einmal verwendet wurden, nicht
     deaktiviert werden, da danach die Zugriffsrechte falsch sein
     ko:nnen. Werden Zugriffskontrolllisten auf einem solchen
     Dateisystem wieder aktiviert, werden die Zugriffsrechte von
     Dateien, die sich zwischenzeitlich gea:ndert haben,
     u:berschrieben, was zu erneuten Problemen fu:hrt.

   Die Zugriffsrechte einer Datei werden durch ein + (Plus)
   gekennzeichnet, wenn die Datei durch Zugriffskontrolllisten
   geschu:tzt ist:

 drwx------  2 robert  robert  512 Dec 27 11:54 private
 drwxrwx---+ 2 robert  robert  512 Dec 23 10:57 directory1
 drwxrwx---+ 2 robert  robert  512 Dec 22 10:20 directory2
 drwxrwx---+ 2 robert  robert  512 Dec 27 11:57 directory3
 drwxr-xr-x  2 robert  robert  512 Nov 10 11:54 public_html

   Die Verzeichnisse directory1, directory2 und directory3 sind durch
   Zugriffskontrolllisten geschu:tzt, das Verzeichnis public_html
   nicht.

     --------------------------------------------------------------

  15.11.1. Zugriffskontrolllisten benutzen

   Das Werkzeug getfacl(1) zeigt Zugriffskontrolllisten an. Das
   folgende Kommando zeigt die ACLs auf der Datei test:

 % getfacl test
         #file:test
         #owner:1001
         #group:1001
         user::rw-
         group::r--
         other::r--

   Das Werkzeug setfacl(1) a:ndert oder entfernt ACLs auf Dateien.
   Zum Beispiel:

 % setfacl -k test

   Die Option -k entfernt alle ACLs einer Datei oder eines
   Dateisystems. Besser wa:re es, die Option -b zu verwenden, da sie
   die erforderlichen Felder beibeha:lt.

 % setfacl -m u:trhodes:rwx,g:web:r--,o::--- test

   Mit dem vorstehenden Kommando werden die eben entfernten
   Zugriffskontrolllisten wiederhergestellt. Der Befehl gibt die
   Fehlermeldung "Invalid argument" aus, wenn Sie nicht existierende
   Benutzer oder Gruppen als Parameter angeben.

     --------------------------------------------------------------

15.12. Sicherheitsprobleme in Software Dritter u:berwachen

   Beigetragen von Tom Rhodes.

   In den letzten Jahren wurden zahlreiche Verbesserungen in der
   Einscha:tzung und dem Umgang mit Sicherheitsproblemen erzielt. Die
   Gefahr von Einbru:chen in ein System wird aber immer gro:sser, da
   Softwarepakete von Dritten auf nahezu jedem Betriebssystem
   installiert und konfiguriert werden.

   Die Einscha:tzung der Verletzlichkeit eines Systems ist ein
   Schlu:sselfaktor fu:r dessen Sicherheit. FreeBSD vero:ffentlicht
   zwar Sicherheitshinweise (security advisories) fu:r das
   Basissystem, das Projekt ist allerdings nicht dazu in der Lage,
   dies auch fu:r die zahlreichen Softwarepakete von Dritten zu tun.
   Dennoch gibt es einen Weg, auch diese Programmpakete zu
   u:berwachen. Das in der Ports-Sammlung enthaltene Programm
   Portaudit wurde gezielt dafu:r entwickelt.

   Der Port ports-mgmt/portaudit fragt dazu eine Datenbank, die vom
   FreeBSD Security Team sowie den Ports-Entwicklern aktualisiert und
   gewartet wird, auf bekannte Sicherheitsprobleme ab.

   Bevor Sie Portaudit verwenden ko:nnen, mu:ssen Sie es u:ber die
   Ports-Sammlung installieren:

 # cd /usr/ports/security/portaudit && make install clean

   Wa:hrend der Installation werden die Konfigurationsdateien fu:r
   periodic(8) aktualisiert, was es Portaudit erlaubt, seine Ausgabe
   in den ta:glichen Sicherheitsbericht einzufu:gen. Stellen Sie auf
   jeden Fall sicher, dass diese (an das E-Mail-Konto von root
   gesendeten) Sicherheitsberichte auch gelesen werden. An dieser
   Stelle ist keine weitere Konfiguration no:tig.

   Nach der Installation kann ein Administrator die unter
   /var/db/portaudit lokal gespeicherte Datenbank aktualisieren und
   sich danach durch folgenden Befehl u:ber mo:gliche
   Sicherheitslu:cken der von ihm installierten Softwarepakete
   informieren:

 # portaudit -Fda

     Anmerkung: Die Datenbank wird automatisch aktualisiert, wenn
     periodic(8) ausgefu:hrt wird. Der eben genannte Befehl ist daher
     optional, er wird aber fu:r das folgende Beispiel beno:tigt.

   Nach erfolgter Installation der Datenbank kann ein Administrator
   u:ber die Ports-Sammlung installierte Softwarepakete Dritter
   jederzeit u:berpru:fen. Dazu muss er lediglich folgenden Befehl
   eingeben:

 # portaudit -a

   Existiert in Ihren installierten Softwarepaketen eine
   Sicherheitslu:cke, wird Portaudit eine Ausgabe a:hnlich der
   folgenden produzieren:

 Affected package: cups-base-1.1.22.0_1
 Type of problem: cups-base -- HPGL buffer overflow vulnerability.
 Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html>

 1 problem(s) in your installed packages found.

 You are advised to update or deinstall the affected package(s) immediately.

   Wenn Sie die angegebene URL u:ber einen Internetbrowser aufrufen,
   erhalten Sie weitere Informationen u:ber die bestehende
   Sicherheitslu:cke, wie die betroffenen Versionen, die Version des
   FreeBSD-Ports sowie Hinweise auf weitere Seiten, die ebenfalls
   Sicherheitshinweise zu diesem Problem bieten.

   Portaudit ist ein ma:chtiges Werkzeug und insbesondere in
   Zusammenarbeit mit dem Port Portupgrade a:usserst hilfreich.

     --------------------------------------------------------------

15.13. FreeBSD Sicherheitshinweise

   Beigesteuert von Tom Rhodes.

   Wie fu:r andere hochwertige Betriebssysteme auch werden fu:r
   FreeBSD Sicherheitshinweise herausgegeben. Die Hinweise werden
   gewo:hnlich auf den Sicherheits-Mailinglisten und in den Errata
   vero:ffentlicht, nachdem das Sicherheitsproblem behoben ist.
   Dieser Abschnitt beschreibt den Umgang mit den
   Sicherheitshinweisen.

     --------------------------------------------------------------

  15.13.1. Wie sieht ein Sicherheitshinweis aus?

   Der nachstehende Sicherheitshinweis stammt von der Mailingliste
   freebsd-security-notifications:

 =============================================================================
 FreeBSD-SA-XX:XX.UTIL                                     Security Advisory
                                                           The FreeBSD Project

 Topic:          denial of service due to some problem(1)

 Category:       core(2)
 Module:         sys(3)
 Announced:      2003-09-23(4)
 Credits:        Person(5)
 Affects:        All releases of FreeBSD(6)
                 FreeBSD 4-STABLE prior to the correction date
 Corrected:      2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
                 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
                 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
                 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
                 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
                 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
                 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
                 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
                 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)(7)
 CVE Name:       CVE-XXXX-XXXX(8)

 For general information regarding FreeBSD Security Advisories,
 including descriptions of the fields above, security branches, and the
 following sections, please visit
 http://www.FreeBSD.org/security/.

 I.   Background(9)


 II.  Problem Description(10)


 III. Impact(11)


 IV.  Workaround(12)


 V.   Solution(13)


 VI.  Correction details(14)


 VII. References(15)

   (1)
           Das Feld Topic entha:lt eine Beschreibung des
           Sicherheitsproblems und benennt das betroffene Programm.
   (2)
           Das Feld Category beschreibt den betroffenen Systemteil.
           Mo:gliche Werte fu:r dieses Feld sind core, contrib oder
           ports. Die Kategorie core gilt fu:r Kernkomponenten des
           FreeBSD-Betriebssystems, die Kategorie contrib beschreibt
           zum Basissystem geho:rende Software Dritter beispielsweise
           sendmail. Die Kategorie ports beschreibt Software, die
           Teil der Ports-Sammlung ist.
   (3)
           Das Feld Module beschreibt die betroffene Komponente. Im
           Beispiel ist sys angegeben, das heisst dieses Problem
           betrifft eine Komponente, die vom Kernel benutzt wird.
   (4)
           Das Feld Announced gibt den Zeitpunkt der Bekanntgabe des
           Sicherheitshinweises an. Damit existiert das
           Sicherheitsproblem, ist vom Sicherheits-Team besta:tigt
           worden und eine entsprechende Korrektur wurde in das
           Quellcode-Repository von FreeBSD gestellt.
   (5)
           Das Feld Credits gibt die Person oder Organisation an, die
           das Sicherheitsproblem bemerkte und gemeldet hat.
   (6)
           Welche FreeBSD-Releases betroffen sind, ist im Feld
           Affects angegeben. Die Version einer Datei, die zum Kernel
           geho:rt, ko:nnen Sie schnell mit ident ermitteln. Bei
           Ports ist die Versionsnummer angegeben, die Sie im
           Verzeichnis /var/db/pkg finden. Wenn Sie Ihr System nicht
           ta:glich aktualisieren, ist Ihr System wahrscheinlich
           betroffen.
   (7)
           Wann das Problem in welchem Release behoben wurde, steht
           im Feld Corrected.
   (8)
           Reserviert fu:r Informationen, u:ber die in der Common
           Vulnerabilities Database nach Sicherheitslu:cken gesucht
           werden kann.
   (9)
           Im Feld Background wird das betroffene Werkzeug
           beschrieben. Meist finden Sie hier warum das Werkzeug
           Bestandteil von FreeBSD ist, wofu:r es benutzt wird und
           eine kurze Darstellung der Herkunft des Werkzeugs.
   (10)
           Im Feld Problem Description befindet sich eine genaue
           Darstellung des Sicherheitsproblems. Hier wird
           fehlerhafter Code beschrieben oder geschildert, wie ein
           Werkzeug ausgenutzt wird.
   (11)
           Das Feld Impact beschreibt die Auswirkungen des
           Sicherheitsproblems auf ein System, beispielsweise
           erweiterte Rechte oder gar Superuser-Rechte fu:r normale
           Benutzer.
   (12)
           Im Feld Workaround wird eine Umgehung des
           Sicherheitsproblems beschrieben. Die Umgehung ist fu:r
           Administratoren gedacht, die ihr System aus Zeitnot,
           Netzwerk-technischen oder anderen Gru:nden nicht
           aktualisieren ko:nnen. Nehmen Sie Sicherheitsprobleme
           ernst: Auf einem betroffenen System sollte das Problem
           entweder behoben oder, wie hier beschrieben, umgangen
           werden.
   (13)
           Im Feld Solution entha:lt eine getestete
           Schritt-fu:r-Schritt Anleitung, die das Sicherheitsproblem
           behebt.
   (14)
           Das Feld Correction Details entha:lt die CVS-Tags der
           betroffenen Dateien zusammen mit zugeho:rigen
           Revisionsnummern.
   (15)
           Im Feld References finden sich Verweise auf weitere
           Informationsquellen. Dies ko:nnen URLs zu Webseiten,
           Bu:cher, Mailinglisten und Newsgroups sein.

     --------------------------------------------------------------

15.14. Prozess-U:berwachung

   Beigetragen von Tom Rhodes.

   Prozess-U:berwachung (Process accounting) ist ein
   Sicherheitsverfahren, bei dem ein Administrator verfolgt, welche
   Systemressourcen verwendet werden und wie sich diese auf die
   einzelnen Anwender verteilen. Dadurch kann das System u:berwacht
   werden und es ist sogar mo:glich, zu kontrollieren, welche Befehle
   ein Anwender eingibt.

   Diese Fa:higkeiten haben sowohl Vor- als auch Nachteile. Positiv
   ist, dass man einen Einbruchsversuch bis an den Anfang
   zuru:ckverfolgen kann. Von Nachteil ist allerdings, dass durch
   diesen Prozess Unmengen an Protokolldateien erzeugt werden, die
   auch dementsprechenden Plattenplatz beno:tigen. Dieser Abschnitt
   beschreibt die Grundlagen der Prozess-U:berwachung.

     --------------------------------------------------------------

  15.14.1. Die Prozess-U:berwachung aktivieren und konfigurieren

   Bevor Sie die Prozess-U:berwachung verwenden ko:nnen, mu:ssen Sie
   diese aktivieren. Dazu fu:hren Sie als root die folgenden Befehle
   aus:

 # touch /var/account/acct
 # accton /var/account/acct
 # echo 'accounting_enable="YES"' >> /etc/rc.conf

   Einmal aktiviert, wird sofort mit der U:berwachung von
   CPU-Statistiken, Befehlen und anderen Vorga:ngen begonnen.
   Protokolldateien werden in einem nur von Maschinen lesbaren Format
   gespeichert, daher mu:ssen Sie diese u:ber sa(8) aufrufen. Geben
   Sie keine Optionen an, gibt sa Informationen wie die Anzahl der
   Aufrufe pro Anwender, die abgelaufene Zeit in Minuten, die gesamte
   CPU- und Anwenderzeit in Minuten, die durchschnittliche Anzahl der
   Ein- und Ausgabeoperationen und viel andere mehr aus.

   Um Informationen u:ber ausgefu:hrte Befehle zu erhalten, verwenden
   Sie lastcomm(1). So ko:nnen Sie etwa ermittlen, welche Befehle von
   wem auf welchem ttys(5) ausgefu:hrt wurden:

 # lastcomm ls
         trhodes ttyp1

   Das Ergebnis sind alle bekannten Einsa:tze von ls durch trhodes
   auf dem Terminal ttyp1.

   Zahlreiche weitere nu:tzliche Optionen finden Sie in den
   Manualpages zu lastcomm(1), acct(5) sowie sa(8).

     --------------------------------------------------------------

                           Kapitel 16. Jails

   Beigetragen von Matteo Riondato. U:bersetzt von Oliver Peter, Dirk
   Arlt und Johann Kois.

     --------------------------------------------------------------

16.1. U:bersicht

   Dieses Kapitel erkla:rt, was FreeBSD-Jails sind und wie man sie
   einsetzt. Jails, manchmal als Ersatz fu:r chroot-Umgebungen
   bezeichnet, sind ein sehr ma:chtiges Werkzeug fu:r
   Systemadministratoren, jedoch kann deren grundlegende Verwendung
   auch fu:r fortgeschrittene Anwender nu:tzlich sein.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie

     * Wissen, was eine Jail ist und welche Verwendungszwecke es
       dafu:r unter FreeBSD gibt.

     * Wissen, wie man eine Jail erstellt, startet und und anha:lt.

     * Die Grundlagen der Jail-Administration (sowohl innerhalb als
       auch ausserhalb des Jails) kennen.

   Weitere nu:tzliche Informationen u:ber Jails sind beispielsweise
   in folgenden Quellen zu finden:

     * Der jail(8) Manualpage. Diese umfassende Referenz beschreibt,
       wie man unter FreeBSD eine Jail startet, anha:lt und
       kontrolliert.

     * Den Mailinglisten und deren Archive. Die Archive der
       Mailingliste FreeBSD general questions und anderen
       Mailinglisten, welche vom FreeBSD list server bereitgestellt
       werden, beinhalten bereits umfangreiche Informationen zu
       Jails. Daher ist es sinnvoll, bei Problemen mit Jails zuerst
       die Archive der Mailinglisten zu durchsuchen, bevor Sie eine
       neue Anfrage auf der Mailingliste freebsd-questions stellen.

     --------------------------------------------------------------

16.2. Jails - Definitionen

   Um die fu:r den Einsatz von Jails beno:tigten FreeBSD-Funktionen,
   deren Interna sowie die Art und Weise, mit der diese mit anderen
   Teilen des Betriebssystems interagieren, zu erla:utern, werden in
   diesem Kapitel folgende Definitionen verwendet:

   chroot(8) (-Befehl)

           Ein Werkzeug, das den FreeBSD-Systemaufruf chroot(2)
           verwendet, um das Wurzelverzeichnis eines Prozesses und
           all seiner Nachko:mmlinge zu a:ndern.

   chroot(2) (-Umgebung)

           Die Umgebung eines Prozesses, der in einem "chroot"
           la:uft. Diese beinhaltet Ressourcen, wie zum Beispiel
           sichtbare Abschnitte des Dateisystems, verfu:gbare
           Benutzer- und Gruppenkennungen, Netzwerkschnittstellen und
           weitere IPC-Mechanismen und so weiter.

   jail(8) (-Befehl)

           Das Systemadministrationswerkzeug, welches es erlaubt,
           Prozesse innerhalb der Jail-Umgebung zu starten.

   Host (-Benutzer, -Prozess, -System)

           Das verwaltende System einer Jail-Umgebung. Das
           Host-System hat Zugriff auf alle verfu:gbaren
           Hardwareressourcen und kann sowohl innerhalb als auch
           ausserhalb der Jail-Umgebung Prozesse steuern. Einer der
           wichtigsten Unterschiede des Host-System einer Jails ist,
           dass die Einschra:nkungen, welche fu:r die
           Superuser-Prozesse innerhalb eines Jails gelten, nicht
           fu:r die Prozesse des Host-Systems gelten.

   Gast (-Benutzer, -Prozess, -System)

           Ein Prozess, ein Benutzer oder eine andere Instanz, deren
           Zugriff durch eine FreeBSD-Jail eingeschra:nkt ist.

     --------------------------------------------------------------

16.3. Einfu:hrung

   Da die Systemadministration oft eine schwierige Aufgabe ist,
   wurden viele ma:chtige Werkzeuge entwickelt, die Administratoren
   bei Installation, Konfiguration und Wartung ihrer Systeme
   unterstu:tzen sollen. Eine wichtige Aufgabe eines Administrators
   ist es, Systeme so abzusichern, dass es im regula:ren Betrieb zu
   keinen Sicherheitsversto:ssen kommt.

   Eines der Werkzeuge, mit dem die Sicherheit eines FreeBSD-Systems
   verbessert werden kann, sind Jails. Jails wurden schon in
   FreeBSD 4.X von Poul-Henning Kamp <phk@FreeBSD.org> eingefu:hrt,
   wurden jedoch mit FreeBSD 5.X stark verbessert, sodass sie
   inzwischen zu einem ma:chtigen und flexiblen Subsystem
   herangereift sind. Trotzdem geht die Entwicklung nach wie vor
   weiter. Wichtige Ziele sind derzeit: Bessere Zweckma:ssigkeit,
   Leistung, Ausfallsicherheit und allgemeine Sicherheit.

     --------------------------------------------------------------

  16.3.1. Was ist eine Jail?

   BSD-a:hnliche Betriebssysteme besitzen seit den Zeiten von 4.2BSD
   chroot(2). Das Werkzeug chroot(2) kann dazu benutzt werden, das
   root-Verzeichnis einer Reihe von Prozessen zu a:ndern, um so eine
   seperate sichere Umgebung (abgeschnitten vom Rest des Systems) zu
   schaffen. Prozesse, die in einer chroot-Umgebung erstellt wurden,
   ko:nnen nicht auf Dateien oder Ressourcen zugreifen, die sich
   ausserhalb der Umgebung befinden. Dadurch ist es einem
   kompromittierten Dienst nicht mo:glich, das gesamte System zu
   kompromittieren. chroot(8) eignet sich fu:r einfache Aufgaben, die
   keine flexiblen, komplexen oder fortgeschrittenen Funktionen
   beno:tigen. Obwohl seit der Entwicklung des chroot-Konzepts
   zahlreiche Sicherheitslo:cher geschlossen wurden, die es einem
   Prozess erlauben konnten, aus einer Jail auszubrechen, war seit
   langer Zeit klar, dass chroot(2) nicht die ideale Lo:sung ist,
   einen Dienst sicher zu machen.

   Dies ist einer der Hauptgru:nde, warum Jails entwickelt wurden.

   Jails setzen auf dem traditionellen chroot(2)-Konzept auf und
   verbessern es auf unterschiedlichste Art und Weise. In einer
   traditionellen chroot(2)-Umgebung sind Prozesse auf den Bereich
   des Dateisystems beschra:nkt, auf den sie zugreifen ko:nnen. Der
   Rest der Systemressourcen (wie zum Beispiel eine Reihe von
   Systembenutzern, die laufenden Prozesse oder das
   Netzwerk-Subsystem) teilen sich die chroot-Prozesse mit dem
   Host-System. Jails dehnen dieses Modell nicht nur auf die
   Virtualisierung des Zugriffs auf das Dateisystem, sondern auch auf
   eine Reihe von Benutzern, das Netzwerk-Subsystem des
   FreeBSD-Kernels und weitere Bereiche aus. Eine ausfu:hrlichere
   U:bersicht der ausgefeilten Bedienelemente zur Konfiguration einer
   Jail-Umgebung finden Sie im Abschnitt Abschnitt 16.5 des
   Handbuchs.

   Eine Jail zeichnet sich durch folgende Merkmale aus:

     * Einen Unterverzeichnisbaum, der die Jail entha:lt. Einem
       Prozess, der innerhalb der Jail la:uft, ist es nicht mehr
       mo:glich, aus diesem auszubrechen. Von der traditionellen
       chroot(2)-Umgebung bekannte Sicherheitsprobleme existieren bei
       FreeBSD-Jails nicht mehr.

     * Einen Hostname, der innerhalb der Jail verwendet wird. Jails
       werden vor allem dazu verwendet, Netzwerkdienste anzubieten,
       daher ist es fu:r Systemadministratoren von grossem Nutzen,
       dass jede Jail einen beschreibenden Hostname haben kann.

     * Eine IP Adresse, die der Jail zugewiesen wird und nicht
       vera:ndert werden kann, solange das Jail la:uft. Die
       IP-Adresse einer Jails ist u:blicherweise ein Adress-Alias auf
       eine existierende Netzwerkschnittstelle. Dies ist jedoch nicht
       zwingend erforderlich.

     * Einen Befehl (genauer den Pfad einer ausfu:hrbaren Datei) der
       innerhalb der Jail ausgefu:hrt werden soll. Dieser Pfad wird
       relativ zum root-Verzeichnis einer Jail-Umgebung angegeben und
       kann sehr unterschiedlich aussehen (je nachdem, wie die
       Jail-Umgebung konfiguriert wurde).

   Unabha:ngig davon ko:nnen Jails eine Reihe eigener Benutzer und
   einen eigenen Benutzer root haben. Selbstversta:ndlich sind die
   Rechte des Benutzers root nur auf die Jail-Umgebung beschra:nkt.
   Aus der Sicht des Host-Systems ist der Benutzer root der
   Jail-Umgebung kein allma:chtiger Benutzer, da der Benutzer root
   der Jail-Umgebung nicht dazu berechtigt ist, kritische Operationen
   am System ausserhalb der angebundenen jail(8)-Umgebung
   durchzufu:hren. Weitere Informationen u:ber die
   Einsatzmo:glichkeiten und Beschra:nkungen des Benutzers root
   werden im Abschnitt Abschnitt 16.5 des Handbuchs besprochen.

     --------------------------------------------------------------

16.4. Einrichtung und Verwaltung von Jails

   Einige Administratoren unterscheiden zwei verschiedene Jail-Arten:
   "Komplette" Jails, die ein echtes FreeBSD darstellen und Jails
   fu:r einen bestimmten "Dienst", die nur einer bestimmten Anwendung
   oder einem Dienst (der mo:glicherweise mit besonderen Privilegien
   laufen soll) gewidmet sind. Dies ist aber nur eine konzeptuelle
   Unterscheidung, die Einrichtung einer Jail bleibt davon ga:nzlich
   unberu:hrt.

 # setenv D /hier/ist/die/jail
 # mkdir -p $D (1)
 # cd /usr/src
 # make buildworld (2)
 # make installworld DESTDIR=$D (3)
 # make distribution DESTDIR=$D (4)
 # mount -t devfs devfs $D/dev (5)

   (1)
           Das Festlegen des Installationsorts fu:r das Jail eignet
           sich am besten als Startpunkt. Hier wird sich die Jail
           innerhalb des Host-Dateisystems befinden. Eine gute
           Mo:glichkeit wa:re etwa /usr/jail/name_der_jail, wobei
           name_der_jail den Hostname darstellt, u:ber den die Jail
           identifiziert werden soll. Das Dateisystem unterhalb von
           /usr/ stellt normalerweise aussreichend Platz fu:r eine
           Jail zur Verfu:gung (bedenken Sie, dass eine "komplette"
           Jail ein Replikat einer jeden Datei der
           Standardinstallation des FreeBSD-Basissystems entha:lt.
   (2)
           Wenn Sie bereits ihre Systemanwendungen mittels make world
           oder make buildworld neu erstellt haben, ko:nnen Sie
           diesen Schritt u:berspringen und die Systemanwendungen in
           die neue Jail installieren.
   (3)
           Dieser Befehl wird den Verzeichnisbaum mit allen
           notwendigen Bina:rdateien, Bibliotheken, Manualpages usw.
           erstellen.
   (4)
           Der distribution-Befehl la:sst make alle beno:tigten
           Konfigurationsdateien installieren, es werden also alle
           installierbaren Dateien aus /usr/src/etc/ in das
           Verzeichnis /etc der Jail installiert (also nach $D/etc/).
   (5)
           Das Einha:ngen des devfs(8)-Dateisystems innerhalb der
           Jail ist nicht unbedingt notwendig. Allerdings beno:tigt
           fast jede Anwendung Zugriff auf wenigstens ein Gera:t. Es
           ist daher sehr wichtig, den Zugriff auf Devices aus der
           Jail heraus zu kontrollieren, da unsaubere Einstellungen
           es einem Angreifer erlauben ko:nnten, in das System
           einzudringen. Die Kontrolle u:ber devfs(8) erfolgt durch
           die in den Manualpages devfs(8) und devfs.conf(5)
           beschriebenen Regeln.

   Ist eine Jail einmal erst erstellt, kann sie durch jail(8)
   gestartet werden. jail(8) beno:tigt zwingend mindestens vier
   Argumente, die im Abschnitt Abschnitt 16.3.1 des Handbuchs
   beschrieben sind. Weitere Argumente sind mo:glich, um
   beispielsweise die Jail mit den Berechtigungen eines bestimmten
   Benutzers laufen zu lassen. Das Argument command ha:ngt vom Typ
   der Jail ab; fu:r ein virtuelles System ist /etc/rc eine gute
   Wahl, da dies dem Startvorgang eines echten FreeBSD-Systems
   entspricht. Bei einer Service-Jail ha:ngt dieses von der Art des
   Dienstes ab, der in der Jail laufen soll.

   Jails werden ha:ufig mit dem Betriebssystem gestartet, da der
   rc-Mechanismus von FreeBSD dafu:r eine einfach zu realisierende
   Mo:glichkeit bietet.

    1. Eine Liste der Jails, die mit dem Betriebssystem gestartet
       werden sollen, wird in die Datei rc.conf(5) geschrieben:

 jail_enable="YES"   # Set to NO to disable starting of any jails
 jail_list="www"     # Space separated list of names of jails

         Anmerkung: Die Namen der Jails in der jail_list sollten nur
         alphanumerische Zeichen enthalten.

    2. Fu:r jede Jail in der jail_list sollten in rc.conf(5) einige
       Einstellungen vorgenommen werden:

 jail_www_rootdir="/usr/jail/www"     # jail's root directory
 jail_www_hostname="www.example.org"  # jail's hostname
 jail_www_ip="192.168.0.10"           # jail's IP address
 jail_www_devfs_enable="YES"          # mount devfs in the jail
 jail_www_devfs_ruleset="www_ruleset" # devfs ruleset to apply to jail

       Beim Start einer in rc.conf(5) konfigurierten Jail wird das
       /etc/rc-Skript der Jail (das "annimmt", dass es sich in einem
       kompletten System befindet) aufgerufen. Fu:r Service-Jails
       sollten die Startskripte der Jail durch das Setzen der Option
       jail_jailname_exec_start entsprechend angepasst werden.

         Anmerkung: Eine vollsta:ndige Liste der Optionen findet sich
         in der Manualpage zu rc.conf(5).

   Das /etc/rc.d/jail-Skript kann zum manuellen Starten und Stoppen
   der Jail genutzt werden, wenn ein Eintrag in rc.conf angelegt
   wurde:

 # /etc/rc.d/jail start www
 # /etc/rc.d/jail stop www

   Es gibt momentan keinen sauberen Weg, eine jail(8) zu stoppen.
   Dies liegt daran, dass die Kommandos zum sauberen Herunterfahren
   eines Systems innerhalb einer Jail nicht ausgefu:hrt werden
   ko:nnen. Der beste Weg eine Jail zu beenden ist es daher,
   innerhalb der Jail den folgenden Befehl auszufu:hren (alternativ
   ko:nnen Sie auch jexec(8) von ausserhalb der Jail aufrufen):

 # sh /etc/rc.shutdown

   Weitere Informationen zu diesem Thema finden Sie in der Manualpage
   jail(8).

     --------------------------------------------------------------

16.5. Feinabstimmung und Administration

   Es gibt verschiedene Optionen, die fu:r jede Jail gesetzt werden
   ko:nnen und verschiedene Wege, ein FreeBSD-Host-System mit Jails
   zu kombinieren. Dieser Abschnitt zeigt Ihnen:

     * Einige zur Verfu:gung stehende Optionen zur Abstimmung des
       Verhaltens und der Sicherheitseinstellungen, die mit einer
       Jail-Installation ausgefu:hrt werden ko:nnen.

     * Einige der Anwendungsprogramme fu:r das Jail-Management, die
       u:ber die FreeBSD Ports-Sammlung verfu:gbar sind und genutzt
       werden ko:nnen, um Jail-basierte Lo:sungen allumfassend
       umzusetzen.

     --------------------------------------------------------------

  16.5.1. Systemwerkzeuge zur Feinabstimmung von Jails in FreeBSD

   Die Feinabstimmung einer Jail-Konfiguration erfolgt zum Grossteil
   durch das Setzen von sysctl(8)-Variablen. Es gibt einen speziellen
   sysctl-Zweig, der als Basis fu:r die Organisation aller relevanten
   Optionen dient: Die security.jail.*-Hierarchie der
   FreeBSD-Kerneloptionen. Die folgende Liste entha:lt alle
   jail-bezogenen sysctls (inklusiver ihrer Voreinstellungen). Die
   Namen sollten selbsterkla:rend sein, fu:r weitergehende
   Informationen lesen Sie bitte die Manualpages jail(8) und
   sysctl(8).

     * security.jail.set_hostname_allowed: 1

     * security.jail.socket_unixiproute_only: 1

     * security.jail.sysvipc_allowed: 0

     * security.jail.enforce_statfs: 2

     * security.jail.allow_raw_sockets: 0

     * security.jail.chflags_allowed: 0

     * security.jail.jailed: 0

   Diese Variablen ko:nnen vom Administrator des Host-Systems genutzt
   werden, um Beschra:nkungen hinzuzufu:gen oder aufzuheben, die dem
   Benutzer root als Vorgabe auferlegt sind. Beachten Sie, dass es
   einige Beschra:nkungen gibt, die nicht vera:ndert werden ko:nnen.
   Der Benutzer root darf innheralb der jail(8) keine Dateisysteme
   mounten und unmounten. Ebenso ist es ihm untersagt, das
   devfs(8)-Regelwerk zu laden oder zu entladen. Er darf weder
   Firewallregeln setzen, noch administrative Aufgaben erledigen, die
   Modifikationen am Kernel selbst erfordern (wie bespielsweise das
   Setzen des Securelevels des Kernel.

   Das FreeBSD-Basissystem entha:lt einen Basissatz an Werkzeugen, um
   Informationen u:ber aktive Jails zu erlangen und einer Jail
   administrative Befehle zuzuordnen. Die Befehle jls(8) und jexec(8)
   sind Teil des FreeBSD-Basissystems und ko:nnen fu:r folgende
   Aufgaben verwendet werden:

     * Das Anzeigen einer Liste der aktiven Jails und ihrer
       zugeho:rigen Jail Identifier (JID), ihrer IP-Addresse, ihres
       Hostnames und ihres Pfades.

     * Das Herstellen einer Verbindung mit einer laufenden Jail, das
       Starten eines Befehls aus dem gastgebenen System heraus oder
       das Ausfu:hren einer administrativen Aufgabe innerhalb der
       Jail selbst. Dies ist insbesondere dann nu:tzlich, wenn der
       Benutzer root die Jail sauber herunterfahren mo:chte. jexec(8)
       kann auch zum Starten einer Shell innerhalb der Jail genutzt
       werden, um adminstrative Aufgaben durchzufu:hren:

 # jexec 1 tcsh

     --------------------------------------------------------------

  16.5.2. High-Level-Werkzeuge zur Jail-Administration in der FreeBSD
  Ports-Sammlung

   Unter den zahlreichen Fremdwerkzeugen fu:r die Administration von
   Jails sind die sysutils/jailutils die vollsta:ndigsten und
   brauchbarsten. Dabei handelt es sich um eine Sammlung kleiner
   Anwendungen, die das jail(8)-Management vereinfachen. Weitere
   Informationen zu diesen Werkzeugen finden Sie auf den
   entsprechenden Internetseiten.

     --------------------------------------------------------------

16.6. Anwendung von Jails

  16.6.1. Service-Jails

   Beigetragen von Daniel Gerzo.

   Dieser Abschnitt basiert auf einer von Simon L. Nielsen
   <simon@FreeBSD.org> auf http://simon.nitro.dk/service-jails.html
   pra:sentierten Idee und einem aktualisierten Artikel von Ken Tom
   (<locals@gmail.com>). Er beschreibt, wie ein FreeBSD-System durch
   Benutzung der jail(8)-Funktion mit zusa:tzlichen Sicherheitsebenen
   ausgestattet werden kann. Es wird dabei angenommen, dass auf Ihrem
   FreeBSD-System RELENG_6_0 oder neuer installiert ist und dass Sie
   die Informationen aus den vorangehenden Abschnitten gelesen und
   verstanden haben.

     --------------------------------------------------------------

    16.6.1.1. Design

   Eines der Hauptprobleme bei Jails ist das Management ihres
   Upgrade-Prozesses. Dieser neigt dazu, problematisch zu sein, da
   jede Jail bei jedem Upgrade komplett neu gebaut werden muss. Das
   stellt normalerweise kein Problem dar, wenn es sich um eine
   einzelne Jail handelt, da der Upgrade-Prozess recht einfach ist.
   Verwenden Sie aber eine gro:ssere Anzahl von Jails, kann dieser
   Prozess sehr zeitaufwendig werden.

     Warnung: Diese Konfiguration erfordert fortgeschrittene
     Kenntnisse im Umgang mit FreeBSD sowie der Benutzung seiner
     Funktionen. Sollten die unten vorgestellten Schritte zu
     kompliziert wirken, wird empfohlen, sich einfachere Verfahren
     wie sysutils/ezjail anzusehen, da diese einfachere Methoden zur
     Administration von Jails verwenden und daher nicht so
     anspruchsvoll sind wie der hier beschriebene Aufbau.

   Diese Konfiguration basiert darauf, Jails so weit als mo:glich
   gemeinsam zu verwalten. Dies passiert auf sichere Art und Weise
   durch den Einsatz von mount_nullfs(8)-Mounts (read-only). Dadurch
   werden Aktualisierungen erleichtert und das Verteilen von
   verschiedenen Diensten auf verschiedene Jails wird attraktiver.
   Ausserdem bietet dieses Verfahren einen einfachen Weg, Jails
   hinzuzufu:gen, zu entfernen und zu aktualisieren.

     Anmerkung: Beispiele fu:r Dienste sind in diesem Zusammenhang:
     Ein HTTP-Server, ein DNS-Server, ein SMTP-Server und so weiter.

   Die Ziele des in diesem Abschnitt beschriebenen Aufbaus sind:

     * Das Erstellen einer einfachen und gut versta:ndlichen Struktur
       von Jails. Dies beinhaltet, nicht fu:r jede Jail ein
       vollsta:ndiges installworld laufen lassen zu mu:ssen.

     * Es einfach zu machen, neue Jails zu erstellen oder alte zu
       entfernen.

     * Es einfach zu machen, bestehende Jails zu aktualisieren.

     * Es einfach zu machen, einen angepassten FreeBSD-Zweig zu
       nutzen.

     * Paranoid bezu:glich Sicherheit zu sein und
       Angriffsmo:glickeiten weitgehend zu reduzieren.

     * Soviel Platz und Inodes wie mo:glich einzusparen.

   Wie bereits erwa:hnt, ist dieses Design stark darauf angewiesen,
   dass eine read-only-Hauptvorlage in jede Jail hinein gemountet
   wird (bekannt als nullfs), und dass jede Jail u:ber wenigstens ein
   beschreibbares Gera:t verfu:gt. Das Gera:t kann hierbei eine
   separate physikalische Platte oder ein vnode unterstu:tztes
   md(4)-Gera:t sein. Im folgenden Beispiel wird ein nullfs-Mount
   genutzt, auf den nur Lesezugriff erlaubt ist.

   Das Layout des Dateisystems wird in der folgenden Liste
   beschrieben:

     * Jede Jail wird unterhalb des /home/j-Verzeichnisses gemountet.

     * /home/j/mroot ist die Vorlage fu:r jede Jail und die nur
       lesbare Partition fu:r alle Jails.

     * Unterhalb von /home/j wird fu:r jede Jail ein leeres
       Verzeichnis angelegt.

     * Jede Jail bekommt ein /s-Verzeichnis, das zum
       read/write-Teilbereich des Systems verlinkt wird.

     * Jede Jail bekommt ihr eigenes read/write-System, das auf
       /home/j/skel basiert.

     * Jeder Jailbereich (genauer der read/write-Teilbereich jeder
       Jail) wird in /home/js erstellt.

     Anmerkung: Es wird angenommen, dass die Jails sich unterhalb des
     /home Verzeichnisses befinden. Dieser Ort kann von Ihnen
     natu:rlich gea:ndert werden. Allerdings mu:ssen die Pfade in den
     folgenden Beispielen dann entsprechend angepasst werden.

     --------------------------------------------------------------

    16.6.1.2. Erstellen der Vorlage

   Dieser Abschnitt beschreibt die Schritte, die zum Erstellen der
   Hauptvorlage (die den nur lesbaren Bereich fu:r alle weiteren
   Jails darstellt) notwendig sind.

   

   Es ist immer eine gute Idee, FreeBSD auf den aktuellen
   -RELEASE-Zweig zu aktualisieren. Lesen Sie das entsprechende
   Kapitel des Handbuchs fu:r Informationen zu diesem Thema. Selbst
   wenn Sie auf eine Aktualisierung des Betriebssystems verzichten,
   mu:ssen Sie dennoch ein buildworld durchfu:hren, um fortfahren zu
   ko:nnen. Ausserdem mu:ssen Sie das Paket sysutils/cpdup
   installiert sein. In diesem Beispiel wird portsnap(8) verwendet,
   um die aktuelle FreeBSD Ports-Sammlung herunterzuladen. Der
   Abschnitt Portsnap des Handbuchs beschreibt, wie Sie dieses
   Werkzeug effektiv einsetzen.

    1. Zuerst erstellen wir eine Verzeichnissstruktur fu:r das
       read-only-Dateisystem, das die FreeBSD-Bina:rdateien fu:r
       unsere Jails enthalten wird. Anschliessend wechseln wir in den
       FreeBSD-Quellcodebaum und installieren das
       read-only-Dateisystem in die (Vorlage-)Jail.

 # mkdir /home/j /home/j/mroot
 # cd /usr/src
 # make installworld DESTDIR=/home/j/mroot

    2. Als na:chstes bereiten wir die Ports-Sammlung fu: die Jails
       vor und kopieren den FreeBSD Quellcodebaum in die Jail, da
       dieser fu:r mergemaster beno:tigt wird:

 # cd /home/j/mroot
 # mkdir usr/ports
 # portsnap -p /home/j/mroot/usr/ports fetch extract
 # cpdup /usr/src /home/j/mroot/usr/src

    3. Danach wird die Struktur fu:r den read/write-Bereich des
       Systems erstellt:

 # mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles
 # mv etc /home/j/skel
 # mv usr/local /home/j/skel/usr-local
 # mv tmp /home/j/skel
 # mv var /home/j/skel
 # mv root /home/j/skel

    4. Nutzen Sie mergemaster, um fehlende Konfigurationsdateien zu
       installieren. Anschliessend werden die von mergemaster
       erstellten Extra-Verzeichnisse entfernt:

 # mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i
 # cd /home/j/skel
 # rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev

    5. Nun wird das read/write-Dateisystem mit dem
       read-only-Dateisystem verlinkt. Bitte vergewissern Sie sich,
       dass die symbolischen Links an den korrekten s/ Positionen
       erstellt werden. Echte Verzeichnisse oder an falschen
       Positionen erstellte Verzeichnisse lassen die Installation
       fehlschlagen.

 # cd /home/j/mroot
 # mkdir s
 # ln -s s/etc etc
 # ln -s s/home home
 # ln -s s/root root
 # ln -s ../s/usr-local usr/local
 # ln -s ../s/usr-X11R6 usr/X11R6
 # ln -s ../../s/distfiles usr/ports/distfiles
 # ln -s s/tmp tmp
 # ln -s s/var var

    6. Zuletzt erstellen Sie eine allgemeine
       /home/j/skel/etc/make.conf mit folgendem Inhalt:

 WRKDIRPREFIX?=  /s/portbuild

       Ein gesetztes WRKDIRPREFIX erlaubt es, die FreeBSD-Ports
       innerhalb jeder Jail zu kompilieren. Das Ports-Verzeichnis ist
       Teil des read-only System. Der angepasste Pfad des
       WRKDIRPREFIX macht es mo:glich, innerhalb des
       read/write-Bereichs der Jail Ports zu bauen.

     --------------------------------------------------------------

    16.6.1.3. Jails erstellen

   Da nun eine komplette FreeBSD-Jailvorlage vorliegt, sind wir nun
   in der Lage, Jails einrichten und in /etc/rc.conf zu
   konfigurieren. Dieses Beispiel zeigt das Erstellen von drei Jails:
   "NS", "MAIL" und "WWW".

   

    1. Fu:gen Sie die folgenden Zeilen in /etc/fstab ein, damit die
       read-only-Vorlage und der read/write-Bereich fu:r alle Jails
       verfu:gbar sind:

 /home/j/mroot   /home/j/ns     nullfs  ro  0   0
 /home/j/mroot   /home/j/mail   nullfs  ro  0   0
 /home/j/mroot   /home/j/www    nullfs  ro  0   0
 /home/js/ns     /home/j/ns/s   nullfs  rw  0   0
 /home/js/mail   /home/j/mail/s nullfs  rw  0   0
 /home/js/www    /home/j/www/s  nullfs  rw  0   0

         Anmerkung: Mit der Pass-Nummer 0 markierte Partitionen
         werden beim Booten des Systems nicht von fsck(8) gepru:ft,
         mit 0 als Dump-Nummer markierte Partitonen werden von
         dump(8) nicht gesichert. Wir wollen nicht, dass fsck unsere
         nullfs-Mounts pru:ft oder dass dump die nur lesbaren
         nullfs-Mounts unserer Jails sichert. Deshalb werden diese
         Bereiche in den letzten beiden Spalten der obenstehenden
         fstab mit "0 0" markiert.

    2. Konfigurieren Sie die Jails in /etc/rc.conf:

 jail_enable="YES"
 jail_set_hostname_allow="NO"
 jail_list="ns mail www"
 jail_ns_hostname="ns.example.org"
 jail_ns_ip="192.168.3.17"
 jail_ns_rootdir="/usr/home/j/ns"
 jail_ns_devfs_enable="YES"
 jail_mail_hostname="mail.example.org"
 jail_mail_ip="192.168.3.18"
 jail_mail_rootdir="/usr/home/j/mail"
 jail_mail_devfs_enable="YES"
 jail_www_hostname="www.example.org"
 jail_www_ip="62.123.43.14"
 jail_www_rootdir="/usr/home/j/www"
 jail_www_devfs_enable="YES"

         Warnung: Der Grund dafu:r, dass die Variablen
         jail_name_rootdir nach /usr/home statt nach /home zeigen,
         liegt darin, dass der physikalische Pfad des
         /home-Verzeichnisses unter FreeBSD /usr/home lautet. Die
         Variable jail_name_rootdir darf im Pfad aber keinen
         symbolischen Link enthalten, weil das Jail ansonsten nicht
         gestartet werden kann. Verwenden Sie realpath(1), um den
         korrekten Wert fu:r diese Variable zu bestimmen. Weitere
         Informationen finden Sie im Security Advisory
         FreeBSD-SA-07:01.jail.

    3. Erstellen Sie die notwendigen Mountpunkte fu:r die nur
       lesbaren Bereiche jeder Jail:

 # mkdir /home/j/ns /home/j/mail /home/j/www

    4. Installieren Sie die read/write-Vorlage in jede Jail. Benutzen
       Sie hierfu:r sysutils/cpdup, welches es erleichtert, eine
       korrekte Kopie jedes Verzeichnisses zu erstellen:

 # mkdir /home/js
 # cpdup /home/j/skel /home/js/ns
 # cpdup /home/j/skel /home/js/mail
 # cpdup /home/j/skel /home/js/www

    5. An dieser Stelle werden die Jails erstellt und fu: den Betrieb
       vorbereitet. Zuerst mounten Sie die notwendigen Dateisysteme
       fu:r jede Jail und starten diese dann mit dem Skript
       /etc/rc.d/jail:

 # mount -a
 # /etc/rc.d/jail start

   Die Jails sollten nun laufen. Um zu pru:fen, ob sie korrekt
   gestartet wurden, verwenden Sie jls(8). Nach dem Aufruf dieses
   Befehls sollten Sie eine Ausgabe a:hnlich der folgenden erhalten:

 # jls
    JID  IP Address      Hostname                      Path
      3  192.168.3.17    ns.example.org                /home/j/ns
      2  192.168.3.18    mail.example.org              /home/j/mail
      1  62.123.43.14    www.example.org               /home/j/www

   An diesem Punkt sollte es mo:glich sein, sich an jeder Jail
   anzumelden, Benutzer anzulegen und Dienste zu konfigurieren. Die
   Spalte JID gibt die Jail-Identifikationsnummer jeder laufenden
   Jail an. Nutzen Sie den folgenden Befehl, um administrative
   Aufgaben in der Jail mit der JID 3 durchzufu:hren:

 # jexec 3 tcsh

     --------------------------------------------------------------

    16.6.1.4. Jails aktualisieren

   Mit der Zeit wird es notwendig sein, das System auf eine neuere
   Version von FreeBSD zu aktualisieren. Zum einen aus
   Sicherheitsgru:nden, zum anderen, um neu eingefu:hrte Funktionen
   nutzen zu ko:nnen, die fu:r die bestehenden Jails sinnvoll sind.
   Das Design dieses Aufbaus bietet einen einfachen Weg, bestehende
   Jails zu aktualisieren. Zudem reduziert es die Downtime, da die
   Jails erst im allerletzten Schritt gestoppt werden mu:ssen.
   Ausserdem bietet es die Mo:glichkeit, zu a:lteren Versionen
   zuru:ckzukehren, falls irgendwelche Probleme auftreten.

    1. Im ersten Schritt wird das Host-System aktualisiert.
       Anschliessend wird eine tempora:re neue read-only Vorlage
       /home/j/mroot2 erstellt.

 # mkdir /home/j/mroot2
 # cd /usr/src
 # make installworld DESTDIR=/home/j/mroot2
 # cd /home/j/mroot2
 # cpdup /usr/src usr/src
 # mkdir s

       Der installworld-Durchlauf erzeugt einige unno:tige
       Verzeichnisse, die nun entfernt werden sollten:

 # chflags -R 0 var
 # rm -R etc var root usr/local tmp

    2. Erzeugen Sie neue symbolische Links fu:r das Hauptdateisystem:

 # ln -s s/etc etc
 # ln -s s/root root
 # ln -s s/home home
 # ln -s ../s/usr-local usr/local
 # ln -s ../s/usr-X11R6 usr/X11R6
 # ln -s s/tmp tmp
 # ln -s s/var var

    3. Nun ist es an der Zeit, die Jails zu stoppen:

 # /etc/rc.d/jail stop

    4. Unmounten des originalen Dateisystems:

 # umount /home/j/ns/s
 # umount /home/j/ns
 # umount /home/j/mail/s
 # umount /home/j/mail
 # umount /home/j/www/s
 # umount /home/j/www

         Anmerkung: Die read/write-Systeme sind an das read-only
         System angeha:ngt (/s), das daher zuerst ausgeha:ngt werden
         muss.

    5. Verschieben Sie das alte read-only-Dateisystem und ersetzen
       Sie es durch das neue Dateisystem. Das alte Dateisystem kann
       so als Backup dienen, falls etwas schief geht. Die
       Namensgebung entspricht hier derjenigen bei der Erstellung
       eines neuen read-only-Dateisystems. Verschieben Sie die
       originale FreeBSD Ports-Sammlung in das neue Dateisystem, um
       Platz und Inodes zu sparen:

 # cd /home/j
 # mv mroot mroot.20060601
 # mv mroot2 mroot
 # mv mroot.20060601/usr/ports mroot/usr

    6. Nun ist die neue read-only-Vorlage fertig. Sie mu:ssen daher
       nur noch die Dateisysteme erneut mounten und die Jails
       starten:

 # mount -a
 # /etc/rc.d/jail start

   Nutzen Sie jls(8) um zu pru:fen, ob die Jails korrekt gestartet
   wurden. Vergessen Sie nicht, innerhalb jeder Jail mergemaster
   laufen zu lassen. Die Konfigurationsdateien mu:ssen (ebenso wie
   die rc.d-Skripten) aktualisiert werden.

     --------------------------------------------------------------

               Kapitel 17. Verbindliche Zugriffskontrolle

   Written by Tom Rhodes. U:bersetzt von Benjamin Lukas.

17.1. U:bersicht

   In FreeBSD 5.X wurden neue Sicherheits-Erweiterungen verfu:gbar,
   die aus dem TrustedBSD-Projekt u:bernommen wurden und auf dem
   Entwurf POSIX.1e basieren. Die beiden bedeutendsten neuen
   Sicherheits-Mechanismen sind Berechtigungslisten (Access Control
   Lists, ACL) und die verbindliche Zugriffskontrolle (Mandatory
   Access Control, MAC). Durch die MAC ko:nnen Module geladen werden,
   die neue Sicherheitsrichtlinien bereitstellen. Mit Hilfe einiger
   Module kann beispielsweise ein eng umgrenzter Bereich des
   Betriebssystems gesichert werden, indem die Sicherheitsfunktionen
   spezieller Dienste unterstu:tzt bzw. versta:rkt werden. Andere
   Module wiederum betreffen in ihrer Funktion das gesamte System -
   alle vorhandenen Subjekte und Objekte. Das "Verbindliche" in der
   Namensgebung erwa:chst aus dem Fakt, dass die Kontrolle allein
   Administratoren und dem System obliegt und nicht dem Ermessen der
   Nutzer, wie es mit Hilfe der benutzerbestimmbaren
   Zugriffskontrolle (Discrectionary Access Control / DAC), dem
   Zugriffstandard fu:r Dateien, gar der System V IPC in FreeBSD,
   normalerweise umgesetzt wird.

   Dieses Kapitel wird sich auf die Grundstruktur der Verbindlichen
   Zugriffskontrolle und eine Auswahl der Module, die verschiedenste
   Sicherheitsfunktionen zur Verfu:gung stellen, konzentrieren.

   Beim Durcharbeiten dieses Kapitels erfahren Sie:

     * Welche MAC Module fu:r Sicherheitsrichtlinien derzeit in
       FreeBSD eingebettet sind und wie die entsprechenden
       Mechanismen funktionieren.

     * Was die einzelnen MAC Module an Funktionen realisieren und
       auch, was der Unterschied zwischen einer Richtlinie, die mit
       Labels arbeitet, und einer, die ohne Labels arbeitet, ist.

     * Wie Sie die MAC in ein System einbetten und effizient
       einrichten.

     * Wie die verschiedenen Richtlinienmodule einer MAC konfiguriert
       werden.

     * Wie mit einer MAC und den gezeigten Beispielen eine sicherere
       Umgebung erstellt werden kann.

     * Wie die Konfiguration einer MAC auf korrekte Einrichtung
       getestet wird.

   Vor dem Lesen dieses Kapitels sollten Sie bereits:

     * Grundzu:ge von UNIX und FreeBSD verstanden haben. (Kapitel 4).

     * Mit den Grundzu:gen der Kernelkonfiguration und -kompilierung
       vertraut sein (Kapitel 9).

     * Einige Vorkenntnisse u:ber Sicherheitskonzepte im Allgemeinen
       und deren Umsetzung in FreeBSD im Besonderen mitbringen
       (Kapitel 15).

     Warnung: Der unsachgema:sse Gebrauch der in diesem Kapitel
     enthaltenen Informationen kann den Verlust des Systemzugriffs,
     A:rger mit Nutzern oder die Unfa:higkeit, grundlegende
     Funktionen des X-Windows-Systems zu nutzen, verursachen.
     Wichtiger noch ist, dass man sich nicht allein auf die MAC
     verlassen sollte, um ein System zu sichern. Die MAC verbessert
     und erga:nzt lediglich die schon existierenden
     Sicherheits-Richtlinien - ohne eine gru:ndliche und fundierte
     Sicherheitspraxis und regelma:ssige Sicherheitspru:fungen wird
     Ihr System nie vollsta:ndig sicher sein.

     Ausserdem sollte angemerkt werden, dass die Beispiele in diesem
     Kapitel auch genau dasselbe sein sollen, na:mlich Beispiele. Es
     wird nicht empfohlen, diese bestimmten Beispiele auf einem
     Arbeitssystem umzusetzen. Das Einarbeiten der verschiedenen
     Sicherheitsmodule erfordert eine Menge Denkarbeit und viele
     Tests. Jemand, der nicht versteht, wie diese Module
     funktionieren, kann sich schnell darin wiederfinden, dass er
     (oder sie) das ganze System durchforsten und viele Dateien und
     Verzeichnisse neu konfigurieren muss.

     --------------------------------------------------------------

  17.1.1. Was in diesem Kapitel nicht behandelt wird

   Dieses Kapitel behandelt einen grossen Teil sicherheitsrelevanter
   Themen, bezogen auf die Verbindliche Zugriffskontrolle (MAC). Die
   gegenwa:rtige Entwicklung neuer MAC Module ist nicht abgedeckt.
   Einige weitere Module, die im MAC Framework enthalten sind, haben
   besondere Charakteristika, die zum Testen und Entwickeln neuer
   Module gedacht sind. Dies sind unter anderem mac_test(4),
   mac_stub(4) und mac_none(4). Fu:r weitere Informationen zu diesen
   Modulen und den entsprechend angebotenen Funktionen lesen Sie
   bitte die Manpages.

     --------------------------------------------------------------

17.2. Schlu:sselbegriffe

   Bevor Sie weiterlesen, mu:ssen noch einige Schlu:sselbegriffe
   gekla:rt werden. Dadurch soll jegliche auftretende Verwirrung von
   vornherein beseitigt und die plo:tzliche Einfu:hrung neuer
   Begriffe und Informationen vermieden werden.

     * Verbund: Ein Verbund ist ist ein Satz von Programmen und
       Daten, die speziell und zusammen abgeschottet wurden, um
       Nutzern Zugriff auf diese ausgewiesenen Systembereiche zu
       gewa:hren. Man kann sagen, ein solcher Verbund ist eine
       Gruppierung, a:hnlich einer Arbeitsgruppe, einer Abteilung,
       einem Projekt oder einem Thema. Durch die Nutzung von
       Verbu:nden (compartments) kann man Sicherheitsrichtlinien
       erstellen, die alles notwendige Wissen und alle Werkzeuge
       zusammenfassen.

     * Hochwassermarkierung: Eine solche Richtlinie erlaubt die
       Erho:hung der Sicherheitsstufe in Abha:ngigkeit der
       Klassifikation der gesuchten bzw. bereitzustellenden
       Information. Normalerweise wird nach Abschluss des Prozesses
       die urspru:ngliche Sicherheitsstufe wieder hergestellt.
       Derzeit entha:lt die MAC Grundstruktur keine Mo:glichkeit,
       eine solche Richtlinie umzusetzen, der Vollsta:ndigkeit halber
       ist die Definition hier jedoch aufgefu:hrt.

     * Integrita:t: Das Schlu:sselkonzept zur Klassifizierung der
       Vertraulichkeit von Daten nennt man Integrita:t. Je weiter die
       Integrita:t erho:ht wird, umso mehr kann man den
       entsprechenden Daten vertrauen.

     * Label: Ein Label ist ein Sicherheitsmerkmal, welches mit
       Dateien, Verzeichnissen oder anderen Elementen im System
       verbunden wird. Man sollte es wie einen
       Vertraulichkeitsstempel auffassen, der Dateien angeho:rt wie
       beispielsweise die Zugriffszeit, das Erstellungsdatum oder
       auch der Name; sobald Dateien derart gekennzeichnet werden,
       bezeichnen diese Label die sicherheitsrelevanten
       Eigenschaften. Zugriff ist nur noch dann mo:glich, wenn das
       zugreifende Subjekt eine korrespondierende Kennzeichnung
       tra:gt. Die Bedeutung und Verarbeitung der Label-Werte ist von
       der Einrichtung der Richtlinie abha:ngig: Wa:hrend einige
       Richtlinien das Label zum Kennzeichnen der Vertraulichkeit
       oder Geheimhaltungsstufe eines Objekts nutzen, ko:nnen andere
       Richtlinien an derselben Stelle Zugriffsregeln festschreiben.

     * Level: Eine erho:hte oder verminderte Einstellung eines
       Sicherheitsmerkmals. Wenn das Level erho:ht wird, wird auch
       die ensprechende Sicherheitsstufe angehoben.

     * Niedrigwassermarkierung: Eine solche Richtlinie erlaubt das
       Herabstufen des Sicherheitslevels, um weniger sensible Daten
       verfu:gbar zu machen. In die meisten Fa:llen wird das
       urspru:ngliche Sicherheitslevel des Nutzers wiederhergestellt,
       sobald der Vorgang abgeschlossen ist. Das einzige Modul in
       FreeBSD, welches von dieser Richtlinie Gebrauch macht, ist
       mac_lomac(4).

     * Multilabel: Die Eigenschaft multilabel ist eine
       Dateisystemoption, die entweder im Einzelbenutzermodus mit
       Hilfe des Werkzeugs tunefs(8), wa:hrend des Bootvorgangs in
       der Datei fstab(5) oder aber beim Erstellen einen neues
       Dateisystems aktiviert werden kann. Diese Option erlaubt einem
       Administrator, verschiedenen Objekten unterschiedliche Labels
       zuzuordnen - kann jedoch nur zusammen mit Modulen angewendet
       werden, die auch tatsa:chlich mit Labels arbeiten.

     * Objekt: Ein Objekt oder auch Systemobjekt ist theoretisch eine
       Einheit, durch welche Information fliesst, und zwar unter der
       Lenkung eines Subjektes. Praktisch schliesst diese Definition
       Verzeichnisse, Dateien, Felder, Bildschirme, Tastaturen,
       Speicher, Bandlaufwerke, Drucker und jegliche anderen
       Datenspeicher- oder -verarbeitungsgera:te ein. Im Prinzip ist
       ein Objekt ein Datenkontainer oder eine Systemressource -
       Zugriff auf ein Objekt bedeutet, auf Daten zuzugreifen.

     * Richtlinie: Eine Sammlung von Regeln, die definiert, wie
       Zielvorgaben umgesetzt werden, nennt man Richtlinie. Eine
       Richtlinie dokumentiert normalerweise, wie mit bestimmten
       Elementen umgegangen wird. Dieses Kapitel fasst den Begriff in
       diesem Kontext als Sicherheitsrichtlinie auf; als eine
       Sammlung von Regeln, die den Fluss von Daten und Informationen
       kontrolliert und die gleichzeitig definiert, wer auf diese
       Daten und Informationen zugreifen darf.

     * Anfa:lligkeit: Dieser Begriff wird normalerweise verwendet,
       wenn man u:ber MLS (Multi Level Security) spricht. Das
       Anfa:lligkeits-Level beschreibt, wie wichtig oder geheim die
       Daten sein sollen. Um so ho:her das Anfa:lligkeits-Level, um
       so wichtiger die Geheimhaltung bzw. Vertraulichkeit der Daten.

     * Einzel-Label: Von einem Einzel-Label spricht man, wenn fu:r
       ein ganzes Dateisystem lediglich ein einziges Label verwendet
       wird, um Zugriffskontrolle u:ber den gesamten Datenfluss zu
       erzwingen. Sobald diese Option verwendet wird - und das ist zu
       jeder Zeit, wenn die Option multilabel nicht explizit gesetzt
       wurde - sind alle Dateien und Verzeichnisse mit dem gleichen
       Label gekennzeichnet.

     * Subjekt: Ein Subjekt ist jedwede Einheit, die Information in
       Fluss zwischen Objekten bringt: Zum Beispiel ein Nutzer, ein
       Nutzerprozessor, ein Systemprozess usw. In FreeBSD handelt es
       sich meistens um einen Thread, der als Prozess im Namen eines
       Nutzers arbeitet.

     --------------------------------------------------------------

17.3. Erla:uterung

   Mit all diesen neuen Begriffen im Kopf ko:nnen wir nun u:berlegen,
   wie die Mo:glichkeiten der verbindlichen Zugriffskontrolle (MAC)
   die Sicherheit eines Betriebssystems als Ganzes erweitern. Die
   verschiedenen Module, die durch die MAC bereitgestellt werden,
   ko:nnen verwendet werden, um das Netzwerk oder Dateisysteme zu
   schu:tzen, Nutzern den Zugang zu bestimmten Ports oder Sockets zu
   verbieten und vieles mehr. Die vielleicht beste Weise, die Module
   zu verwenden, ist, sie miteinander zu kombinieren, indem mehrere
   Sicherheitsrichtlinienmodule gleichzeitig eine mehrschichtige
   Sicherheitsumgebung schaffen. Das ist etwas anderes als singula:re
   Richtlinien wie zum Beispiel die Firewall, die typischerweise
   Elemente eines Systems stabilisiert, das nur fu:r einen speziellen
   Zweck verwendet wird. Der Verwaltungsmehraufwand ist jedoch von
   Nachteil, zum Beispiel durch die Verwendung von mehreren Labels
   oder dem eigenha:ndigen Erlauben von Netzwerkzugriffen fu:r jeden
   einzelnen Nutzer.

   Solche Nachteile sind allerdings gering im Vergleich zum
   bleibenden Effekt der erstellten Struktur. Die Mo:glichkeit zum
   Beispiel, fu:r konkrete Anwendungen genau die passenden
   Richtlinien auszuwa:hlen und einzurichten, senkt gleichzeitig die
   Arbeitskosten. Wenn man unno:tige Richtlinien aussortiert, kann
   man die Gesamtleistung des Systems genauso steigern wie auch eine
   ho:here Anpassungsfa:higkeit gewa:hrleisten. Eine gute Umsetzung
   der MAC beinhaltet eine Pru:fung der gesamten
   Sicherheitsanforderungen und einen wirksamen Einsatz der
   verschiedenen Module.

   Ein System, auf dem eine MAC verwendet wird, muss zumindest
   garantieren, dass einem Nutzer nicht gestattet wird,
   Sicherheitsmerkmale nach eigenem Ermessen zu vera:ndern; dass
   Arbeitswerkzeuge, Programme und Skripte, innerhalb der
   Beschra:nkungen arbeiten ko:nnen, welche die Zugriffsregeln der
   ausgewa:hlten Module dem System auferlegen; und dass die volle
   Kontrolle u:ber die Regeln der MAC beim Administrator ist und
   bleibt.

   Es ist die einsame Pflicht des zusta:ndigen Administrators, die
   richtigen Module sorgfa:ltig auszuwa:hlen. Einige Umgebungen
   ko:nnten eine Beschra:nkung der Zugriffe u:ber die
   Netzwerkschnittstellen beno:tigen - hier wa:ren die Module
   mac_portacl(4), mac_ifoff(4) und sogar mac_biba(4) ein guter
   Anfang. In anderen Fa:llen muss man sehr strenge Vertraulichkeit
   von Dateisystemobjekten gewa:hrleisten - dafu:r ko:nnte man
   mac_bsdextended(4) oder mac_mls(4) einsetzen.

   Die Entscheidung, welche Richtlinien angewandt werden, kann auch
   anhand der Netzwerk-Konfiguration getroffen werden. Nur bestimmten
   Benutzern soll erlaubt werden, via ssh(1) auf das Netzwerk oder
   Internet zuzugreifen - mac_portacl(4) wa:re eine gute Wahl. Aber
   fu:r was entscheidet man sich im Falle eines Dateisystems? Soll
   der Zugriff auf bestimmte Verzeichnisse von spezifischen Nutzern
   oder Nutzergruppen separiert werden? Oder wollen wir den Zugriff
   durch Nutzer oder Programme auf spezielle Dateien einschra:nken,
   indem wir gewisse Objekte als geheim einstufen?

   Der Zugriff auf Objekte kann einigen vertraulichen Nutzern
   gestattet werden, anderen wiederum verwehrt. Als Beispiel sei
   hierzu ein grosses Entwicklerteam angefu:hrt, das in kleine
   Gruppen von Mitarbeitern aufgeteilt wurde. Die Entwickler von
   Projekt A du:rfen nicht auf Objekte zugreifen, die von den
   Entwicklern von Projekt B geschrieben wurden. Sie mu:ssen aber
   trotzdem auf Objekte zugreifen ko:nnen, die von einem dritten
   Entwicklerteam geschaffen wurden - alles in allem eine verzwickte
   Situation. Wenn man die verschiedenen Module der MAC richtig
   verwendet, ko:nnen Anwender in solche Gruppen getrennt und ihnen
   der Zugriff zu den gewu:nschten Systemobjekten gestattet werden -
   ohne Angst haben zu mu:ssen, dass Informationen in die falschen
   Ha:nde geraten.

   So hat jedes Modul, das eine Sicherheitsrichtlinie verfu:gbar
   macht, einen eigenen Weg, die Sicherheit des Systems zu
   versta:rken. Die Auswahl der Module sollte auf einem gut
   durchdachten Sicherheitskonzept gru:nden. In vielen Fa:llen muss
   das gesamte Konzept eines Systems u:berarbeitet und neu
   eingepflegt werden. Ein guter U:berblick u:ber die Mo:glichkeiten
   der verschiedenen von der MAC angebotenen Module hilft einem
   Administrator, die besten Richtlinien fu:r seine spezielle
   Situation auszuwa:hlen.

   Im FreeBSD-Standardkernel ist die Option zur Verwendung der MAC
   nicht enthalten. Daher muss die Zeile

 options      MAC

   der Kernelkonfiguration hinzugefu:gt und der Kernel neu u:bersetzt
   und installiert werden.

     Achtung: Verschiedenen Anleitungen fu:r die MAC empfehlen, die
     einzelnen Module direkt in den Kernel einzuarbeiten. Dabei ist
     es jedoch mo:glich, das System aus dem Netzwerk auszusperren
     oder gar schlimmeres. Die Arbeit mit der MAC ist a:hnlich der
     Arbeit mit einer Firewall - man muss, wenn man sich nicht selbst
     aus dem System aussperren will, genau aufpassen. Man sollte sich
     eine Mo:glichkeit zurechtlegen, wie man eine Implementation
     einer MAC ru:ckga:ngig machen kann - genauso wie eine
     Ferninstallation u:ber das Netzwerk nur mit a:usserster Vorsicht
     vorgenommen werden sollte. Es wird daher empfohlen, die Module
     nicht in den Kernel einzubinden, sondern sie beim Systemstart
     via /boot/loader.conf zu laden.

     --------------------------------------------------------------

17.4. MAC Labels verstehen

   MAC Label sind Sicherheitsmerkmale, die, wenn sie zum Einsatz
   kommen, allen Subjekten und Objekten im System zugeordnet werden.

   Wenn ein Administrator ein solches Merkmal bzw. Attribut setzen
   will, muss er/sie verstehen ko:nnen, was da genau passiert. Die
   Attribute, die im speziellen Fall zu vergeben sind, ha:ngen vom
   geladenen Modul und den darin jeweils implementierten Richtlinien
   ab. Jedes dieser Richtlinienmodule setzt die Arbeit mit seinen
   entsprechenden Attributen in individueller Weise um. Falls der
   Nutzer nicht versteht, was er da konfiguriert, oder auch, was
   seine Konfiguration fu:r Begleiterscheinungen mit sich bringt,
   ergibt sich meist als Resultat ein unerwartetes, ja sogar
   unerwu:nschtes Verhalten des gesamten Systems.

   Ein Label, einem Objekt verliehen, wird verwendet, um anhand einer
   Richtlinie eine sicherheitsrelevante Entscheidung u:ber
   Zugriffsrechte zu fa:llen. In einigen Richtlinien entha:lt bereits
   das Label selbst alle dafu:r no:tigen Informationen. Andere
   Richtlinien verwenden diese Informationen, um zuna:chst ein
   komplexes Regelwerk abzuarbeiten.

   Wenn man zum Beispiel einer Datei das Attribut biba/low zuordnet,
   wird dieses durch das Biba Sicherheitsrichtlinienmodul, und zwar
   mit dem Wert "low", verarbeitet.

   Einige der Richtlinienmodule, die die Mo:glichkeit zum Vergeben
   von Labels unter FreeBSD unterstu:tzen, bieten drei vordefinierte
   Labels an. Dieses nennen sich "high", "low" und "equal". Obwohl
   die verschiedenen Module die Zugriffskontrolle auf verschiedene
   Weisen regeln, kann man sich sicher sein, das das "low"-Label der
   untersten, unsichersten Einstellung entspricht, das "equal"-Label
   die Verwendung des Moduls fu:r das jeweilige Objekt oder Subjekt
   deaktiviert - und das "high"-Label die ho:chstmo:gliche
   Einstellung erzwingt. Im Speziellen gilt diese Aussage fu:r die
   Richtlinien(-module) MLS und Biba.

   In den meisten Umgebungen, sogenannten Single Label Environments,
   wird Objekten nur ein einzelnes Label zugewiesen. Dadurch wird nur
   ein Regelsatz fu:r die Zugriffskontrolle auf das gesamte System
   verwendet - und das ist meistens auch tatsa:chlich ausreichend. Es
   gibt wenige Fa:lle, in denen mehrere Labels auf Dateisystemobjekte
   oder -subjekte verwendet werden. In einem solchen Fall muss das
   Dateisystem mit der tunefs(8)-Option multilabel angepasst werden,
   da single label die Standardeinstellung ist.

   Bei der Verwendung von Biba oder MLS kann man numerische Labels
   vergeben, die genau das Level angeben, an welcher Stelle in der
   Hierarchie das Subjekt oder Objekt einzuordnen ist. Dieses
   numerische Level wird verwendet, um Informationen in verschiedene
   Gruppen aufzuteilen oder zu sortieren - damit zum Beispiel nur
   Subjekte, die zu einer gewissen Vertraulichkeitsstufe geho:ren,
   Zugang zu einer Gruppe von Objekten erhalten.

   In den meisten Fa:llen wird ein Administrator nur ein einzelnes
   Label fu:r das gesamte Dateisystem verwenden.

   Moment mal, dass ist doch dasselbe wie DAC! Ich dachte, MAC wu:rde
   die Kontrolle strengstens an den Administrator binden! Diese
   Aussage ha:lt immer noch stand  - root ist derjenige, der die
   Kontrolle ausu:bt und die Richtlinie konfiguriert, so dass Nutzer
   in die entsprechenden, angemessenen Kategorien / Zugriffsklassen
   eingeordnet werden. Nunja, einige Module schra:nken root selbst
   ein. Die Kontrolle u:ber Objekte wird dann einer Gruppe
   zugewiesen, jedoch hat root die Mo:glichkeit, die Einstellungen
   jederzeit zu widerrufen oder zu a:ndern. Dies ist das
   Hierarchie/Freigabe-Modell, das durch Richtlinien wie MLS oder
   Biba bereitgestellt wird.

     --------------------------------------------------------------

  17.4.1. Konfigurieren der Labels

   Gewissermassen alle Aspekte der Labelkonfiguration werden durch
   Werkzeuge das Basissystems umgesetzt. Die entsprechenden Kommandos
   bieten eine einfache Schnittstelle zum Konfigurieren, Manipulieren
   und auch Verifizieren der gekennzeichneten Objekte.

   Mit den beiden Kommandos setfmac(8) und setpmac(8) kann man
   eigentlich schon alles machen. Das Kommando setfmac wird
   verwendet, um ein MAC-Label auf einem Systemobjekt zu setzen,
   setpmac hingegen zum Setzen von Labels auf Systemsubjekte. Als
   Beispiel soll hier dienen:

 # setfmac biba/high test

   Wenn bei der Ausfu:hrung dieses Kommandos keine Fehler aufgetreten
   sind, gelangt man zur Eingabeaufforderung zuru:ck. Nur wenn ein
   Fehler auftritt, verhalten sich diese Kommandos nicht still, ganz
   wie auch die Kommandos chmod(1) und chown(8). In einigen Fa:llen
   wird dieser Fehler "Permission denied" lauten und gewo:hnlich dann
   auftreten, wenn ein Label an einem Objekt angebracht oder
   vera:ndert werden soll, das bereits (Zugriffs-)Beschra:nkungen
   unterliegt.[11] Der Systemadministrator kann so eine Situation mit
   Hilfe der folgenden Kommandos u:berwinden:

 # setfmac biba/high test               
 "Permission denied"
 # setpmac biba/low setfmac biba/high test
 # getfmac test
 test: biba/high

   Wie wir hier sehen, kann setpmac verwendet werden, um die
   vorhandene Einstellungen zu umgehen, indem dem gestarteten Prozess
   ein anderes, valides Label zugeordnet wird. Das Werkzeug getpmac
   wird normalerweise auf gerade laufende Prozesse angewendet.
   A:hnlich sendmail: Als Argument wird statt eines Kommandos eine
   eine Prozess-ID u:bergeben, es verbirgt sich doch dieselbe Logik
   dahinter. Wenn ein Nutzer versucht, eine Datei zu vera:ndern, auf
   die er keinen Zugriff hat, entsprechend der Regeln eines geladenen
   Richtlinienmoduls, wird der Fehler "Operation not permitted" durch
   die Funktion mac_set_link angezeigt.

     --------------------------------------------------------------

    17.4.1.1. U:bliche Typen von Labeln

   Wenn man die Module mac_biba(4), mac_mls(4) und mac_lomac(4)
   verwendet, hat man die Mo:glichkeit, einfache Label zu vergeben.
   Diese nennen sich high, low und equal. Es folgt eine kurze
   Beschreibung, was diese Labels bedeuten:

     * Das Label low ist definitionsgema:ss das niedrigeste Label,
       das einem Objekt oder Subjekt verliehen werden kann. Wird es
       gesetzt, kann die entsprechende Entita:t nicht mehr auf
       Entita:ten zugreifen, die das Label high tragen.

     * Das Label equal wird Entita:ten verliehen, die von der
       Richtlinie ausgenommen sein sollen.

     * Das Label high verleiht einer Entita:t die ho:chstmo:gliche
       Einstellung.

   Unter Beachtung jedes einzelnen Richtlinienmoduls moduliert und
   beschra:nkt jede dieser Einstellungen den Informationsfluss
   unterschiedlich. Genaue Erkla:rungen zu den Charakteristika der
   einfachen Labels in den verschiedenen Modulen finden sich im
   entsprechenden Unterabschnitt dieses Kapitels oder in den
   Manpages.

     --------------------------------------------------------------

      17.4.1.1.1. Fortgeschrittene Label-Konfiguration

   Numerische klassifizierte Labels werden verwendet in der Form
   Klasse:Verbund+Verbund. Demnach ist das Label

 biba/10:2+3+6(5:2+3-15:2+3+4+5+6)

   folgendermassen zu lesen:

   "Biba Policy Label"/"effektive Klasse 10" :"Verbund 2,3 und 6":
   ("Low-Klasse 5:..."- "High-Klasse 15:...")

   In diesem Beispiel ist die erstgenannte Klasse als "effektive
   Klasse" zu bezeichnen. Ihr werden die "effektiven Verbu:nde"
   zugeordnet. Die zweite Klasse ist die "Low"-Klasse und die letzte
   die "high"-Klasse. Die allermeisten Konfigurationen kommen ohne
   die Verwendungen von solchen Klassen aus, nichtsdestotrotz kann
   man sie fu:r erweiterte Konfigurationen verwenden.

   Sobald sie auf Systemsubjekte angewendet werden, haben diese eine
   gegenwa:rtige Klasse/Verbund- Konfiguration und diese muss im
   definierten Rahmen gegebenenfalls angepasst (erho:ht oder gesenkt)
   werden. Im Gegensatz dazu haben Systemobjekte alle eingestellten
   (effektive, High- und Low-Klasse) gleichzeitig. Dies ist
   notwendig, damit auf Sie von den Systemsubjekten in den
   verschiedenen Klassen gleichzeitig zugegriffen werden kann.

   Die Klasse und und die Verbu:nde in einem Subjekt-Objekt-Paar
   werden zum Erstellen einer sogenannten Dominanz-Relation
   verwendet, in welcher entweder das Subjekt das Objekt, das Objekt
   das Subjekt, keines das andere dominiert oder sich beide
   gegenseitig dominieren. Der Fall, dass sich beide dominieren,
   tritt dann ein, wenn die beiden Labels gleich sind. Wegen der
   Natur des Informationsflusses in Biba kann man einem Nutzer Rechte
   fu:r einen Reihe von Abteilungen zuordnen, die zum Beispiel mit
   entsprechenden Projekten korrespondieren. Genauso ko:nnen aber
   auch Objekten mehrere Abteilungen zugeordnet sein. Die Nutzer
   mu:ssen eventuell ihre gegenwa:rtigen Rechte mithilfe von su or
   setpmac anpassen um auf Objekte in einer Abteilung zuzugreifen, zu
   der sie laut ihrer effektiven Klasse nicht berechtigt sind.

     --------------------------------------------------------------

    17.4.1.2. Nutzer- und Label-Einstellungen

   Nutzer selbst brauchen Labels damit ihre Dateien und Prozesse
   korrekt mit der Sicherheitsrichtlinie zusammenarbeitet, die fu:r
   das System definiert wurde. Diese werden in der Datei login.conf
   durch die Verwendung von Login- Klassen zugeordnet. Jedes
   Richtlinienmodul, das Label verwendet, arbeitet mit diesen
   Login-Klassen.

   Beispielhaft wird der folgende Eintrag, der fu:r jede Richtlinie
   eine Einstellung entha:lt, gezeigt:

 default:\
 :copyright=/etc/COPYRIGHT:\
 :welcome=/etc/motd:\
 :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
 :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
 :manpath=/usr/share/man /usr/local/man:\
 :nologin=/usr/sbin/nologin:\
 :cputime=1h30m:\
 :datasize=8M:\
 :vmemoryuse=100M:\
 :stacksize=2M:\
 :memorylocked=4M:\
 :memoryuse=8M:\
 :filesize=8M:\
 :coredumpsize=8M:\
 :openfiles=24:\
 :maxproc=32:\
 :priority=0:\
 :requirehome:\
 :passwordtime=91d:\
 :umask=022:\
 :ignoretime@:\
 :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:

   Die Label-Option in der letzten Zeile legt fest, welches
   Standard-Label fu:r einen Nutzer erzwungen wird. Nutzern darf
   niemals gestattet werden, diese Werte selbst zu vera:ndern,
   demnach haben Nutzer in dieser Beziehung auch keine Wahlfreiheit.
   In einer richtigen Konfiguration jedoch wird kein Administrator
   alle Richtlinienmodule aktivieren wollen. Es wird an dieser Stelle
   ausdru:cklich empfohlen, dieses Kapitel zu Ende zu lesen, bevor
   irgendein Teil dieser Konfiguration ausprobiert wird.

     Anmerkung: Nutzer ko:nnen ihr eigenes Label nach dem
     Loginvorgang durchaus a:ndern. Jedoch kann diese A:nderung nur
     unter den Auflagen der gerade gu:ltigen Richtlinie geschehen. Im
     Beispiel oben wird fu:r die Biba-Richtlinie eine minimale
     Prozessintegrita:t von 5, eine maximale von 15 angegeben, aber
     die Voreinstellung des tatsa:chlichen Labels ist 10. Der
     Nutzerprozess la:uft also mit einer Integrita:t von 10 bis das
     Label vera:ndert wird, zum Beispiel durch eine Anwendung des
     Kommandos setpmac, welches jedoch auf den Bereich eingeschra:nkt
     wird, der zum Zeitpunkt des Logins angegeben wurde, in diesem
     Fall von 5 bis 15.

   Nach einer A:nderung der Datei login.conf muss in jedem Fall die
   Befa:higungsdatenbank mit dem Kommando cap_mkdb neu erstellt
   werden - und das gilt fu:r alle im weiteren Verlauf gezeigten
   Beispiele und Diskussionspunkte.

   Es ist nu:tzlich anzumerken, dass viele Einsatzorte eine grosse
   Anzahl von Nutzern haben, die wiederum viele verschiedenen
   Nutzerklassen angeho:ren sollen. Hier ist eine Menge
   Planungsarbeit notwendig, da die Verwaltung sehr unu:bersichtlich
   und schwierig ist.

     --------------------------------------------------------------

    17.4.1.3. Netzwerkschnittstellen und die zugeho:rigen Label

   Labels ko:nnen auch, wenn man sie an Netzwerkschittstellen
   vergibt, helfen, den Datenfluss durch das Netzwerk zu
   kontrollieren. Das funktioniert in allen Fa:llen genau so wie mit
   Objekten. Nutzer, die in der Biba-Richtlinie das Label high
   tragen, du:rfen nicht auf Schnittstellen zugreifen, die low
   markiert sind usw.

   Die Option maclabel wird via ifconfig u:bergeben. Zum Beispiel

 # ifconfig bge0 maclabel biba/equal

   belegt die Schnittstelle bge(4) mit dem MAC Label biba/equal. Wenn
   eine komplexe Einstellung wie biba/high(low-high) verwendet wird,
   muss das gesamte Label in Anfu:hrungszeichen geschrieben werden,
   da sonst eine Fehlermeldung zuru:ckgegeben wird.

   Jedes Richtlinienmodul, das die Vergabe von Labels unterstu:tzt,
   stellt einen Parameter bereit, mit dem das MAC Label fu:r
   Netzwerkschnittstellen deaktiviert werden kann. Das Label der
   Netzwerkschnittstelle auf equal zu setzen, fu:hrt zum selben
   Ergebnis. Beachten Sie die Ausgabe von sysctl, die Manpages der
   verschiedenen Richtlinien oder eben die Informationen, die im
   weiteren Verlauf dieses Kapitels angeboten werden, um mehr zu
   diesen Parametern zu erfahren.

     --------------------------------------------------------------

  17.4.2. Single- oder Multilabel?

   Als Standardeinstellung verwendet das System die Option single
   label. Was bedeutet das fu:r den Administrator? Es gibt einige
   Unterschiede zwischen single label und multilabel. In ihrer
   ureigenen Weise bieten beide Vor- und Nachteile bezogen auf die
   Flexibilita:t bei der Modellierung der Systemsicherheit.

   Die Option single label gibt jedem Subjekt oder Objekt genau ein
   einziges Label, zum Beispiel biba/high. Mit dieser Option hat man
   einen geringeren Verwaltungsaufwand, aber die Flexibilita:t beim
   Einsatzes von Richtlinien ist ebenso gering. Viele Administratoren
   wa:hlen daher auch die Option multilabel im Sicherheitsmodell,
   wenn die Umsta:nde es erfordern.

   Die Option multilabel gestattet, jedem einzelnen Subjekt oder
   Objekt seine eigenen unabha:ngigen Label zu zuzuordnen. Die
   Optionen multilabel und singlelabel betreffen jedoch nur die
   Richtlinien, die Labels als Leistungsmerkmal verwenden,
   einschliesslich der Richtlinien Biba, Lomac, MLS und SEBSD.

   Wenn Richtlinien benutzt werden sollen, die ohne Labels auskommen,
   wird die Option multilabel nicht beno:tigt. Dies betrifft die
   Richtlinien seeotheruids, portacl und partition.

   Man sollte sich dessen bewusst sein, dass die Verwendung der
   Option multilabel auf einer Partition und die Erstellung eines
   Sicherheitsmodells auf der Basis der FreeBSD multilevel
   Funktionalita:t einen hohen Verwaltungsaufwand bedeutet, da alles
   im Dateisystem ein Label bekommt. Jedes Verzeichnis, jede Datei
   und genauso jede Schnittstelle.

   Das folgende Kommando aktiviert multilabel fu:r ein Dateisystem.
   Dies funktioniert nur im Einzelbenutzermodus:

 # tunefs -l enable /

   In einer Swap-Partition wird dies nicht beno:tigt.

     Anmerkung: Falls Sie Probleme beim Setzen der Option multilabel
     auf der Root-Partition bemerken, lesen Sie bitte Abschnitt 17.17
     dieses Kapitels.

     --------------------------------------------------------------

17.5. Planung eines Sicherheitsmodells

   Wann immer eine neue Technologie eingepflegt werden soll, ist es
   wichtig, vorher einen Plan zu erstellen. In den verschiedenen
   Etappen der Planung sollte der Administrator nie das "Grosse
   Ganze" aus den Augen verlieren und mindestens die folgenden Punkte
   beachten:

     * Die Anforderungen

     * Die Ziele

   Wenn Sie MAC verwenden mo:chten, sind das im Besonderen folgende
   Punkte:

     * Wie werden Informationen und Ressourcen auf den Zielsystemen
       klassifiziert?

     * Welche Arten von Informationen bzw. Ressourcen sollen im
       Zugang beschra:nkt sein und welche Art Einschra:nkung soll
       verwendet werden?

     * Welche(s) MAC Modul(e) wa:hlt man, um sein Ziel zu erreichen?

   Es ist immer mo:glich, die Einstellungen des Systems und der
   Systemressourcen im Nachhinein zu "optimieren". Es ist aber
   wirklich la:stig, das gesamte Dateisystem zu durchsuchen, um
   Dateien oder Benutzerkonten zu reparieren. Eine gute Planung hilft
   dem Administrator, sich einer sorgenfreien und effizienten
   Umsetzung eines Sicherheitsmodells zu versichern. Testlauf des
   Sicherheitsmodells vor dem Einsatz in seiner richtigen
   Arbeitsumgebung ist auf jeden Fall empfehlenswert. Die Idee, ein
   System mit einer MAC einfach loslaufen zu lassen, ist wie direkt
   auf einen Fehlschlag hinzuarbeiten.

   Jede Umgebung hat ihre eigenen Anforderungen. Ein tiefgreifendes
   und vollsta:ndiges Sicherheitsprofil zu erstellen spart weitere
   A:nderungen, nachdem das System in Betrieb genommen wurde. Also
   werden die folgenden Abschnitte die verschiedenen Module
   vorstellen, die den Administratoren zur Verfu:gung gestellt
   werden, die Nutzung und Konfiguration der einzelnen Module
   beschreiben; und in einigen Fa:llen Einblicke gewa:hren, fu:r
   welche Situationen welche Module besonders geeignet sind. Zum
   Beispiel ein Webserver kann von der Verwendung der mac_biba(4)
   oder der mac_bsdextended(4) Richtlinie profitieren. In anderen
   Fa:llen, an einem Rechner mit nur wenigen lokalen Benutzern, ist
   die mac_partition(4) die Richtlinie der Wahl.

     --------------------------------------------------------------

17.6. Modulkonfiguration

   Jedes Modul, das in der MAC enthalten ist, kann entweder direkt in
   den Kernel eingefu:gt werden oder als Kernelmodul in der Laufzeit
   des Systems geladen werden. Empfohlen wird, den Modulnamen in der
   Datei /boot/loader.conf anzufu:gen, so dass das Modul am Anfang
   des Bootvorgangs eingebunden wird.

   Die folgenden Abschnitte werden verschiedene MAC Module und ihre
   jeweiligen Vor- und Nachteile vorstellen. Ausserdem wird erkla:rt,
   wie sie in bestimmte Umgebungen eingearbeitet werden ko:nnen.
   Einige Module unterstu:tzen die Verwendung von Labels, das heisst
   Zugriffskontrolle durch hinzufu:gen einer Kennzeichnung in der Art
   von "dieses ist erlaubt, jenes aber nicht". Eine
   Label-Konfigurationdatei kontrolliert unter anderem, wie auf
   Dateien zugegriffen oder wie u:ber das Netzwerk kommuniziert
   werden darf. Im vorangehenden Abschnitt wurde bereits erla:utert,
   wie die Option multilabel auf Dateisysteme angewendet wird, um
   eine Zugriffskontrolle auf einzelne Dateien oder ganze
   Dateisysteme zu konfigurieren.

   Eine single label Konfiguration erzwingt ein einzelnes Label fu:r
   das gesamte System. Daher wird die tunefs-Option multilabel
   genannt.

     --------------------------------------------------------------

17.7. Das MAC Modul seeotheruids

   Modulename: mac_seeotheruids.ko

   Parameter in der Kernelkonfiguration: options MAC_SEEOTHERUIDS

   Bootparameter: mac_seeotheruids_load="YES"

   Das Modul mac_seeotheruids(4) erweitert die sysctl-Variablen
   security.bsd.see_other_uids und security.bsd.see_other_gids. Diese
   Optionen beno:tigen keine im Vorhinein zu setzenden Labels und
   ko:nnen leicht durchschaubar mit den anderen MAC-Modulen
   zusammenarbeiten.

   Nachdem das Modul geladen wurde, ko:nnen die folgenden sysctl
   Variablen verwendet werden.

   

     * security.mac.seeotheruids.enabled dient zur Aktivierung des
       Moduls, zuna:chst mit den Standardeinstellungen. Diese
       verhindern, dass Nutzer Prozesse und Sockets sehen ko:nnen,
       die ihnen nicht selbst geho:en.

     * security.mac.seeotheruids.specificgid_enabled kann eine
       spezifizierte Nutzergruppe von dieser Richtlinie ausnehmen.
       Die entsprechende Gruppe muss an den Parameter
       security.mac.seeotheruids.specificgid=XXX u:bergeben werden,
       wobei XXX die ID der Gruppe ist, die von der Richtlinie
       ausgenommen werden soll.

     * security.mac.seeotheruids.primarygroup_enabled kann verwendet
       werden, um eine spezifische, prima:re Nutzergruppe von der
       Richtlinie auszuschliessen. Dieser Parameter und
       security.mac.seeotheruids.specificgid_enabled schliessen
       einander aus.

     --------------------------------------------------------------

17.8. Das MAC Modul bsdextended

   Modulname: mac_bsdextended.ko

   Parameter in der Kernelkonfiguration: options MAC_BSDEXTENDED

   Bootparameter: mac_bsdextended_load="YES"

   Das Modul mac_bsdextended(4) erstellt eine Firewall fu:r das
   Dateisystem und ist eine Erweiterung des sonst u:blichen
   Rechtemodells. Es erlaubt einem Administrator einen Regelsatz zum
   Schutz von Dateien, Werkzeugen und Verzeichnissen in der
   Dateisystemhierarchie zu erstellen, der einer Firewall a:hnelt.
   Sobald auf ein Objekt im Dateisystem zugegriffen werden soll, wird
   eine Liste von Regel abgearbeitet, bis eine passende Regel
   gefunden wird oder die Liste zu Ende ist. Das Verhalten kann durch
   die A:nderung des sysctl(8) Parameters
   security.mac.bsdextended.firstmatch_enabled eingestellt werden.
   A:hnlich wie bei den anderen Firewallmodulen in FreeBSD wird eine
   Datei erstellt, welche die Zugriffsregeln entha:lt. Diese wird
   beim Systemstart durch eine Variable in rc.conf(5) eingebunden.

   Der Regelsatz kann mit dem Programm ugidfw(8) eingepflegt werden,
   welches eine Syntax bereitstellt, die der von ipfw(8) gleicht.
   Weitere Werkzeuge ko:nnen auch selbst erstellt werden, indem die
   Funktionen der Bibliothek libugidfw(3) verwendet werden.

   Bei der Arbeit mit diesem Modul ist a:usserste Vorsicht geboten -
   falscher Gebrauch kann den Zugriff auf Teile des Dateisystems
   komplett unterbinden.

     --------------------------------------------------------------

  17.8.1. Beispiele

   Nachdem das Modul mac_bsdextended(4) erfolgreich geladen wurde,
   zeigt das folgende Kommando die gegenwa:rtig aktiven Regeln an:

 # ugidfw list 0 slots, 0 rules

   Wie erwartet, sind keine Regeln definiert. Das bedeutet, das auf
   alle Teile des Dateisystems zugegriffen werden kann. Um eine Regel
   zu definieren, die jeden Zugriff durch Nutzer blockiert und nur
   die Rechte von root unangetastet la:sst, muss lediglich dieses
   Kommando ausgefu:hrt werden:

 # ugidfw add subject not uid root new object not uid root mode n

   Das ist allerdings keine gute Idee, da nun allen Nutzern der
   Zugriff auf selbst die einfachsten Programme wie ls untersagt
   wird. Angemessener wa:re etwas wie:

 # ugidfw set 2 subject uid user1 object uid user2 mode n
 # ugidfw set 3 subject uid user1 object gid user2 mode n

   Diese Befehle bewirken, dass user1 keinen Zugriff mehr auf Dateien
   und Programme hat, die user2 geho:ren. Dies schliesst das Auslesen
   von Verzeichniseintra:gen ein.

   Anstelle uid user1 ko:nnte auch not uid user2 als Parameter
   u:bergeben werden. Dies wu:rde diesselben Einschra:nkungen fu:r
   alle Nutzer bewirken anstatt nur einen einzigen.

     Anmerkung: root ist von diesen Einstellungen nicht betroffen.

   Dies sollte als U:berblick ausreichen, um zu verstehen, wie das
   Modul mac_bsdextended(4) helfen kann, das Dateisystem
   abzuschotten. Weitere Informationen bieten die Manpages
   mac_bsdextended(4) und ugidfw(8).

     --------------------------------------------------------------

17.9. Das MAC Modul ifoff

   Modulname: mac_ifoff.ko

   Parameter fu:r die Kernelkonfiguration: options MAC_IFOFF

   Bootparameter: mac_ifoff_load="YES"

   Das Modul mac_ifoff(4) ist einzig dazu da, Netzwerkschnittstellen
   im laufenden Betrieb zu deaktivieren oder zu verhindern, das
   Netzwerkschnittstellen wa:hrend der Bootphase gestartet werden.
   Dieses Modul beno:tigt fu:r seinen Betrieb weder Labels, die auf
   dem System eingerichtet werden mu:ssen, noch hat es
   Abha:ngigkeiten zu anderen MAC Modulen.

   Der gro:sste Teil der Kontrolle geschieht u:ber die im folgenden
   aufgelisteten sysctl-Parameter:

     * security.mac.ifoff.lo_enabled schaltet den gesamten
       Netzwerkverkehr auf der Loopback-Schnittstelle lo(4) an bzw.
       aus.

     * security.mac.ifoff.bpfrecv_enabled macht das Gleiche fu:r den
       Berkeley Paket Filter bpf(4).

     * security.mac.ifoff.other_enabled schaltet den Verkehr fu:r
       alle anderen Netzwerkschnittstellen.

   Die wahrscheinlich ha:ufigste Nutzung von mac_ifoff(4) ist die
   U:berwachung des Netzwerks in einer Umgebung, in der kein
   Netzwerkverkehr wa:hrend des Bootvorgangs erlaubt werden soll.
   Eine andere mo:gliche Anwendung wa:re ein Script, das mit Hilfe
   von security/aide automatisch alle Schnittstellen blockiert,
   sobald Dateien in geschu:tzten Verzeichnissen angelegt oder
   vera:ndert werden.

     --------------------------------------------------------------

17.10. Das MAC Modul portacl

   Modulname: mac_portacl.ko

   Parameter fu:r die Kernelkonfiguration: options MAC_PORTACL

   Bootparameter: mac_portacl_load="YES"

   Mit Hilfe des Moduls mac_portacl(4) ko:nnen die Anbindungen an die
   lokalen TCP und UDP Ports durch eine Vielzahl von sysctl Variablen
   beschra:nkt werden. Genauer gesagt ermo:glicht mac_portacl(4)
   Nutzern ohne root-Rechten den Zugriff auf zu bestimmende
   privilegierte Ports, also denen innerhalb der ersten 1024.

   Sobald das Modul geladen wurde, ist die Richtlinie fu:r alle
   Sockets verfu:gbar. Die folgenden Variablen ko:nnen fu:r die
   Konfiguration verwendet werden:

     * security.mac.portacl.enabled schaltet die Anwendung der
       Richtlinie ein oder aus.

     * security.mac.portacl.port_high gibt den ho:chsten Port an, der
       von der Richtlinie mac_portacl(4) betroffen sein soll.

     * security.mac.portacl.suser_exempt nimmt, wenn es einen Wert
       ungleich Null zugewiesen bekommt, root von der Richtlinie aus.

     * security.mac.portacl.rules entha:lt als Wert die eigentliche
       mac_portacl Richtlinie.

   Die eigentliche Konfiguration der mac_portacl Richtlinie wird der
   sysctl-Variablen security.mac.portacl.rules als Zeichenkette der
   Form rule[,rule,...] u:bergeben. Jede einzelne Regel hat die Form
   idtype:id:protocol:port. Der Parameter idtype ist entweder uid
   oder gid und wird verwendet, um den Parameter id als Nutzer-ID
   oder Gruppen-ID zu kennzeichnen. Der Parameter protocol gibt an,
   ob die Regel u:r TCP oder UDP gelten soll (indem man den Wert auf
   tcp oder udp setzt). Und der letzte Parameter, port, entha:lt die
   Nummer des Ports, auf den der angegebene Nutzer bzw. die
   angegebene Gruppe Zugriff erhalten soll.

     Anmerkung: Da der Regelsatz direkt vom Kernel ausgewertet wird,
     ko:nnen nur Zahlenwerte u:bergeben werden. Das heisst, Namen von
     Nutzern, Gruppen oder Dienstnamen aus der Datei /etc/services
     funktionieren nicht.

   Auf UNIX-artigen Betriebssystemen sind die Ports kleiner 1024
   privilegierten Prozessen vorbehalten, mu:ssen also mit als/von
   root gestartet werden und weiterhin laufen. Damit mac_portacl(4)
   die Vergabe von Ports kleiner als 1024 an nicht privilegierte
   Prozesse u:bernehmen kann, muss die UNIX Standardeinstellung
   deaktiviert werden. Dazu a:ndert man die sysctl(8) Variablen
   net.inet.ip.portrange.reservedlow und
   net.inet.ip.portrange.reservedhigh auf den Wert "0".

   Weiterfu:hrende Informationen entnehmen Sie bitte den unten
   aufgefu:hrten Beispielen oder der Man-Page mac_portacl(4)!

     --------------------------------------------------------------

  17.10.1. Beispiele

   Die folgenden Beispiele sollten ein wenig Licht in die obige
   Diskussion bringen:

 # sysctl security.mac.portacl.port_high=1023
 # sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0

   Zuna:chst bestimmen wir, dass mac_portacl(4) fu:r alle
   privilegierten Ports gelten soll und deaktivieren die normale
   UNIX-Beschra:nkung.

 # sysctl security.mac.portacl.suser_exempt=1

   Da root von dieser Richtlinie nicht beeintra:chtigt werden soll,
   setzen wir hier security.mac.portacl.suser_exempt auf einen Wert
   ungleich Null. Das Modul mac_portacl(4) ist nun so eingerichtet,
   wie es UNIX-artige Betriebssysteme normal ebenfalls tun.

 # sysctl security.mac.portacl.rules=uid:80:tcp:80

   Nun erlauben wir dem Nutzer mit der UID 80, normalerweise dem
   Nutzer www, den Port 80 zu verwenden. Dadurch kann der Nutzer www
   einen Webserver betreiben, ohne dafu:r mit root-Privilegien
   ausgestattet zu sein.

 # sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995

   Hier wird dem Nutzer mit der UID 1001 erlaubt, die TCP Ports 110
   ("pop3") und 995 ("pop3s") zu verwenden. Dadurch kann dieser
   Nutzer einen Server starten, der Verbindungen an diesen beiden
   Ports annehmen kann.

     --------------------------------------------------------------

17.11. Das MAC Modul partition

   Modulname: mac_partition.ko

   Parameter fu:r die Kernelkonfiguration: options MAC_PARTITION

   Bootparameter mac_partition_load="YES"

   Die Richtlinie mac_partition(4) setzt Prozesse in spezielle
   "Partitionen", entsprechend dem zugewiesenen MAC Label. Man kann
   sich das vorstellen wie eine spezielle Art jail(8), auch wenn das
   noch kein wirklich guter Vergleich ist.

   Es wird empfohlen, dieses Modul durch einen Eintrag in
   loader.conf(5) zu aktivieren, so dass die Richtlinie wa:hrend des
   Bootvorganges eingebunden wird.

   Der Grossteil der Konfiguration geschieht mit dem Kommando
   setpmac(8), wie gleich erkla:rt wird. Ausserdem gibt es folgenden
   sysctl Parameter fu:r diese Richtlinie.

     * security.mac.partition.enabled erzwingt die Verwendung von MAC
       Prozess-Partitionen.

   Sobald diese Richtlinie aktiv ist, sehen Nutzer nur noch ihre
   eigenen Prozesse, und alle anderen Prozesse, die ebenfalls
   derselben Prozess-Partition zugeordnet sind. Sie ko:nnen jedoch
   nicht auf Prozesse oder Werkzeuge ausserhalb des Anwendungsbereich
   dieser Partition zugreifen. Das bedeutet unter anderem, das ein
   Nutzer, der einer Klasse insecure zugeordnet ist, nicht auf das
   Kommando top zugreifen kann - wie auch auf viele anderen Befehle,
   die einen eigenen Prozess erzeugen.

   Um einen Befehl einer Prozess-Partition zuzuordnen, muss dieser
   durch das Kommando setpmac mit einem Label versehen werden:

 # setpmac partition/13 top

   Diese Zeile fu:gt das Kommando top dem Labelsatz fu:r Nutzer der
   Klasse insecure hinzu, sofern die Partition 13 mit der Klasse
   insecure u:bereinstimmt. Beachten Sie, dass alle Prozesse, die von
   Nutzern dieser Klasse erzeugt werden, das Label partition/13
   erhalten, und dieses auch nicht durch den Nutzer gea:ndert werden
   kann.

     --------------------------------------------------------------

  17.11.1. Beispiele

   Der folgende Befehl listet die vergebenen Label fu:r
   Prozess-Partitionen und die laufenden Prozesse auf.

 # ps Zax

   Das na:chste Kommando liefert das Label der Prozess-Partition
   eines anderen Nutzers trhodes und dessen gegenwa:rtig laufenden
   Prozesse zuru:ck.

 # ps -ZU trhodes

     Anmerkung: Jeder Nutzer kann die Prozesse in der
     Prozess-Partition von root betrachten, solange nicht die
     Richtlinie mac_seeotheruids(4) geladen wurde.

   Eine ausgefeilte Umsetzung dieser Richtlinie deaktiviert alle
   Dienste in /etc/rc.conf und startet diese dann spa:ter durch ein
   Skript, das jedem Dienst das passende Label zuordnet.

     Anmerkung: Die folgenden Richtlinien verwenden Zahlenwerte
     anstatt der drei Standardlabels. Diese Optionen, und ihre
     Grenzen, werden in den zugeho:rigen Manpages genauer erkla:rt.

     --------------------------------------------------------------

17.12. Das MAC Modul Multi-Level Security

   Modulname: mac_mls.ko

   Parameter fu:r die Kernelkonfiguration: options MAC_MLS

   Bootparameter: mac_mls_load="YES"

   Die Richtlinie mac_mls(4) kontrolliert die Zugriffe zwischen
   Subjekten und Objekten, indem sie den Informationsfluss strengen
   Regeln unterwirft.

   In MLS Umgebungen wird jedem Subjekt oder Objekt ein
   "Freigabe"-Level zugeordnet, und diese werden wiederum zu
   einzelnen Verbu:nden zusammengefasst. Da diese Freigabe- oder
   Anfa:lligkeits-Level Zahlen gro:sser 6000 erreichen ko:nnen, ist
   es fu:r jeden Systemadministrator eine undankbare Aufgabe, jede
   Entita:t von Grund auf zu konfigurieren. Zum Glu:ck gibt es 3
   "instant" Labels, die in der Richtlinie zur Anwendung bereit
   stehen.

   Diese drei Labels heissen mls/low, mls/equal und mls/high. Da sie
   in den Manpages mac_mls(4) ausfu:hrlich beschrieben werden, gibt
   es hier nur einen kurzen Abriss:

     * Das Label mls/low ist eine niedrige Einstellung, die von allen
       anderen dominiert werden darf. Alles, was mit mls/low versehen
       wird, hat ein niedriges Freigabe-Level und darf auf keine
       Informationen zugreifen, denen ein ho:heres Freigabe-Level
       zugeordnet wurde. Einem Objekt mit diesem Label kann ausserdem
       keine Information durch ein Objekt ho:herer Freigabe
       u:bergeben werden, es kann also auch nicht durch solche
       Objekte editiert oder u:berschrieben werden.

     * Das Label mls/equal wird an Objekte vergeben, die von dieser
       Richtlinie ausgenommen werden sollen.

     * Das Label mls/high verko:rpert das ho:chstmo:gliche
       Freigabe-Level. Objekte, denen dieses Label zugeordnet wird,
       dominieren alle anderen Objekte des Systems. Trotzdem ko:nnen
       sie Objekten mit einem niedrigeren Freigabe-Level keine
       Informationen zuspielen.

   MLS bietet:

     * Eine hierarchische Sicherheitsschicht und Zuordnung
       nichthierarchischer Kategorien;

     * Feste Regeln: kein "Read-Up", kein "Write-Down" (ein Subjekt
       kann nur Objekte gleicher oder niedrigerer Stufe lesen, und es
       kann nur Objekte gleicher oder ho:herer Stufe schreiben);

     * Geheimhaltung (indem unangemessene Offenlegung von Daten
       verhindert wird);

     * Eine Basis zum Entwerfen von Systemen, die Daten verschiedener
       Vertraulichkeitsebenen gleichzeitig handhaben sollen (ohne das
       geheime und vertrauliche Informationen untereinander
       ausgetauscht werden ko:nnen).

   Nachfolgend werden die sysctl-Variablen vorgestellt, die fu:r die
   Einrichtung spezieller Dienste und Schnittstellen vorhanden sind.

     * security.mac.mls.enabled schaltet die Richtlinie MLS ein (oder
       aus).

     * security.mac.mls.ptys_equal sorgt dafu:r, dass wa:hrend der
       Initialisierung alle pty(4)-Gera:te als mls/equal
       gekennzeichnet werden.

     * security.mac.mls.revocation_enabled sorgt dafu:r, dass die
       Zugriffsrechte von Objekten wieder zuru:ckgesetzt werden,
       nachdem deren Label voru:bergehend auf ein niedrigeres
       Freigabe-Level gea:ndert wurde.

     * security.mac.mls.max_compartments gibt die maximale Anzahl von
       Verbu:nden an. Im Prinzip ist es die ho:chste Nummer eines
       Verbundes auf dem System.

   Um die Labels der MLS Richtlinie zu bearbeiten verwendet man
   setfmac(8). Um ein Objekt zu kennzeichnen, benutzen Sie folgendes
   Kommando:

 # setfmac mls/5 test

   Um das MLS-Label der Datei test auszulesen, verwenden Sie dieses
   Kommando:

 # getfmac test

   Dies ist eine Zusammenstellung der Merkmale von test. Ein anderer
   Ansatz ist, fu:r diese Richtlinie eine Konfigurationsdatei in /etc
   abzulegen, die alle Informationen entha:lt und mit der dann das
   Kommando setfmac gefu:ttert wird. Diese Vorgehensweise wird
   erkla:rt, nachdem alle Richtlinien vorgestellt wurden.

     --------------------------------------------------------------

  17.12.1. Verbindlicher Vertraulichkeit in der Planungsphase

   Mit dem Richtlinienmodul Multi-Level Security bereitet sich ein
   Administrator darauf vor, den Fluss vertraulicher Informationen zu
   kontrollieren. Beim Starten der Richtlinie ist immer mls/low
   voreingestellt - alles kann auf alles zugreifen. Der Administrator
   a:ndert dies wa:hrend der eigentlichen Konfiguration, indem er die
   Vertraulichkeit bestimmter Objekte erho:ht.

   Jenseits der drei Grundeinstellungen des Labels kann der
   Administrator einzelne Nutzer oder Nutzergruppen nach Bedarf
   zusammenschliessen und den Informationsaustausch zwischen diesen
   gestatten oder unterbinden. Es ist sicher eine Vereinfachung, die
   Freigabe-Level mit Begriffen wie vertraulich, geheim oder streng
   geheim zu bezeichnen. Einige Administratoren erstellen einfach
   verschiedene Gruppen auf der Ebene von gegenwa:rtigen Projekten.
   Ungeachtet der Herangehensweise bei der Klassifizierung muss ein
   gut durchdachter Plan existieren, bevor eine derart einengende
   Richtlinie umgesetzt wird.

   Exemplarisch fu:r die Anwendung dieses Moduls bzw. dieser
   Richtlinie seien angefu:hrt:

     * Ein E-Commerce Webserver

     * Ein Dateiserver, der vertrauliche Informationen einer Firma
       oder eines Konzerns speichert

     * Umgebungen in Finanzeinrichtungen

   Der unsinnigste Einsatzort fu:r diese Richtlinie wa:re ein
   Arbeitsplatzrechner mit nur zwei oder drei Benutzern.

     --------------------------------------------------------------

17.13. Das MAC Modul Biba

   Modulname: mac_biba.ko

   Parameter fu:r die Kernelkonfiguration: options MAC_BIBA

   Bootparameter: mac_biba_load="YES"

   Das Modul mac_biba(4) la:dt die MAC Biba Richtlinie. Diese a:hnelt
   stark der MLS Richtlinie, nur das die Regeln fu:r den
   Informationsfluss ein wenig vertauscht sind. Es wird in diesem
   Fall der absteigende Fluss sicherheitskritischer Information
   geregelt, wa:hrend die MLS Richtlinie den aufsteigenden Fluss
   regelt. In gewissen Sinne treffen dieses und das vorangegangene
   Unterkapitel also auf beide Richtlinien zu.

   In einer Biba-Umgebung wird jedem Subjekt und jedem Objekt ein
   "Integrita:ts"-Label zugeordnet. Diese Labels sind in
   hierarchischen Klassen und nicht-hierarchischen Komponenten
   geordnet. Je ho:her die Klasse, um so ho:her die Integrita:t.

   Die unterstu:tzten Labels heissen biba/low, biba/equal und
   biba/high. Sie werden im Folgenden erkla:rt:

     * biba/low ist die niedrigste Stufe der Integrita:t, die einem
       Objekt verliehen werden kann. Wenn sie einem Objekt oder
       Subjekt zugeordnet wird, kann dieses auf Objekte oder
       Subjekte, die biba/high markiert wurden, zwar lesend
       zugreifen, nicht jedoch schreibend.

     * Das Label biba/equal ist, wie der aufmerksame Leser sicherlich
       schon ahnt, fu:r die Ausnahmen dieser Richtlinie gedacht und
       sollte nur diesen Ausnahmen entsprechenden Objekten verliehen
       werden.

     * biba/high markierte Subjekte und Objekte ko:nnen Objekte
       niedrigerer Stufe schreiben , nicht jedoch lesen. Es wird
       empfohlen, dass dieses Label an Objekte vergeben wird, die
       sich auf Integrita:t des gesamten Systems auswirken.

   Biba stellt bereit:

     * Hierarchische Integrita:tsstufen mit einem Satz
       nichthierarchischer Integrita:tskategorien;

     * Festgeschriebene Regeln: kein "Write-Up", kein "Read-Down"
       (der Gegensatz zu MLS - ein Subjekt erha:lt schreibenden
       Zugriff auf Objekte gleicher oder geringerer Stufe, aber nicht
       bei ho:herer, und lesenden Zugriff bei gleicher Stufe oder
       ho:erer, aber nicht bei niedrigerer);

     * Integrita:t (es wird die Echtheit der Daten gewa:hrleistet,
       indem unangemessene Vera:nderungen verhindert werden);

     * Eine Abstufung der Gewa:hrleistung (im Gegensatz zu MLS, bei
       der eine Abstufung der Vertraulichkeit vorgenommen wird).

   Folgende sysctl Parameter werden zur Nutzung der Biba-Richtlinie
   angeboten:

     * security.mac.biba.enabled zum Aktivieren/Deaktivieren der
       Richtlinie auf dem Zielsystem.

     * security.mac.biba.ptys_equal wird verwendet, um die
       Biba-Richtlinie auf der pty(4)-Schnittstelle zu deaktivieren.

     * security.mac.biba.revocation_enabled erzwingt das
       Zuru:cksetzen des Labels, falls dieses zeitweise gea:ndert
       wurde um ein Subjekt zu dominieren.

   Um Einstellungen der Biba Richtlinie fu:r Systemobjekte zu
   vera:ndern werden die Befehle setfmac und getfmac verwendet:

 # setfmac biba/low test
 # getfmac test
 test: biba/low

     --------------------------------------------------------------

  17.13.1. Verbindliche Integrita:t in der Planungsphase

   Integrita:t garantiert, im Unterschied zu Sensitivita:t, dass
   Informationen nur durch vertraute Parteien vera:ndert werden
   ko:nnen. Dies schliesst Informationen ein, die zwischen Subjekten
   ausgetauscht werden, zwischen Objekt, oder auch zwischen den
   beiden. Durch Integrita:t wird gesichert, das Nutzer nur
   Informationen vera:ndern, oder gar nur lesen ko:nnen, die sie
   explizit beno:tigen.

   Das Modul mac_biba(4) ero:ffnet einem Administrator die
   Mo:glichkeit zu bestimmen, welche Dateien oder Programme ein
   Nutzer oder eine Nutzergruppe sehen bzw. aufrufen darf.
   Gleichzeitig kann er zusichern, dass dieselben Programme und
   Dateien frei von Bedrohungen sind und das System die Echtheit
   gewa:hrleistet - fu:r diesen Nutzer oder die Nutzergruppe.

   Wa:hrend der anfa:nglichen Phase der Planung muss der
   Administrator vorbereitet sein, Nutzer in Klassen, Stufen und
   Bereiche einzuteilen. Der Zugriff auf Dateien und insbesondere
   auch Programme wird verhindert sowohl vor als auch nachdem sie
   gestartet wurden. Das System selbst erha:lt als Voreinstellung das
   Label biba/high sobald das Modul aktiviert wird - und es liegt
   allein am Administrator, die verschiedenen Klassen und Stufen fu:r
   die einzelnen Nutzer zu konfigurieren. Anstatt mit Freigaben zu
   arbeiten, wie weiter oben gezeigt wurde, ko:nnte man auch
   U:berbegriffe fu:r Projekte oder Systemkomponenten entwerfen. Zum
   Beispiel, ausschliesslich Entwicklern den Vollzugriff auf
   Quellcode, Compiler und Entwicklungswerkzeuge gewa:hren, wa:hrend
   man andere Nutzer in Kategorien wie Tester, Designer oder einfach
   nur "allgemeiner Nutzer" zusammenfasst, die fu:r diese Bereiche
   lediglich lesenden Zugriff erhalten sollen.

   Mit seinem urspru:nglichen Sicherheits-Standpunkt ist ein Subjekt
   niedrigerer Integrita:t unfa:hig, ein Subjekt ho:herer Integrita:t
   zu vera:ndern. Ein Subjekt ho:herer Integrita:t kann ein Subjekt
   niedrigerer Integrita:t weder beobachten noch lesen. Wenn man ein
   Label fu:r die niedrigstmo:gliche Klasse erstellt, kann man diese
   allen Subjekten verwehren. Einige weitsichtig eingerichtete
   Umgebungen, die diese Richtlinie verwenden, sind eingeschra:nkte
   Webserver, Entwicklungs- oder Test-Rechner oder
   Quellcode-Sammlungen. Wenig sinnvoll ist diese Richtlinie auf
   einer Arbeitsstation, oder auf Rechnern die als Router oder
   Firewall verwendet werden.

     --------------------------------------------------------------

17.14. Das MAC Modul LOMAC

   Modulname: mac_lomac.ko

   Parameter fu:r die Kernelkonfiguration: options MAC_LOMAC

   Bootparameter: mac_lomac_load="YES"

   Anders als die Biba Richtlinie erlaubt die mac_lomac(4) Richtlinie
   den Zugriff auf Objekte niedrigerer Integrita:t nur, nachdem das
   Integrita:tslevel gesenkt wurde. Dadurch wird eine Sto:rung
   derIntegrita:tsregeln verhindert.

   Die MAC Version der "Low-Watermark" Richtlinie, die nicht mit der
   a:lteren lomac(4)-Implementierung verwechselt werden darf,
   arbeitet fast genauso wie Biba. Anders ist, dass hier "schwebende"
   Label verwendet werden, die ein Herunterstufen von Subjekten durch
   Hilfsverbu:nde ermo:glichen. Dieser zweite Verbund wird in der
   Form [auxgrade] angegeben und sollte in etwa aussehen wie
   lomac/10[2], wobei die Ziffer zwei (2) hier den Hilfsverbund
   abbildet.

   Die MAC Richtlinie LOMAC beruht auf einer durchga:ngigen
   Etikettierung aller Systemobjekte mit Integrita:tslabeln, die
   Subjekten das Lesen von Objekten niedriger Integrita:t gestatten
   und dann das Label des Subjektes herunterstufen - um zuku:nftige
   Schreibvorga:nge auf Objekte hoher Integrita:t zu unterbinden.
   Dies ist die Funktion der Option [auxgrade], die eben vorgestellt
   wurde. Durch sie erha:lt diese Richtlinie eine bessere
   Kompatibilita:t und die Initialisierung ist weniger aufwa:ndig als
   bei der Richtlinie Biba.

     --------------------------------------------------------------

  17.14.1. Beispiele

   Wie schon bei den Richtlinien Biba und MLS werden die Befehle
   setfmac und setpmac verwendet, um die Labels an den Systemobjekten
   zu setzen:

 # setfmac /usr/home/trhodes lomac/high[low]
 # getfmac /usr/home/trhodes lomac/high[low]

   Beachten Sie, dass hier der Hilfswert auf low gesetzt wurde -
   dieses Leistungsmerkmal ist nur in der MAC LOMAC Richtlinie
   enthalten.

     --------------------------------------------------------------

17.15. Beispiel 1: Nagios in einer MAC Jail

   Die folgende Demonstration setzt eine sichere Umgebung mithilfe
   verschiedener MAC Module und sorgfa:ltig konfigurierter
   Richtlinien um. Es handelt sich jedoch nur um einen Test und
   sollte nicht als Antwort auf jedes Problem in Fragen Sicherheit
   gesehen werden. Eine Richtlinie nur umzusetzen und dann einfach
   laufen zu lassen, funktioniert nie und kann eine echte
   Arbeitsumgebung in eine Katastrophe stu:rzen.

   Bevor es losgeht, muss jedes Dateisystem mit der Option
   multilabel, wie weiter oben beschrieben, markiert werden. Dies
   nicht zu tun, fu:hrt zu Fehlern. Ausserdem mu:ssen die Ports
   net-mngt/nagios-plugins, net-mngt/nagios und www/apache13
   installiert und konfiguriert sein, so dass sie ordentlich laufen.

     --------------------------------------------------------------

  17.15.1. Erstellen einer Nutzerklasse insecure

   Beginnen wir die Prozedur mit dem Hinzufu:gen einer Nutzerklasse
   in der Datei /etc/login.conf:

 insecure:\
 :copyright=/etc/COPYRIGHT:\
 :welcome=/etc/motd:\
 :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
 :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin--
 :manpath=/usr/share/man /usr/local/man:\
 :nologin=/usr/sbin/nologin:\
 :cputime=1h30m:\
 :datasize=8M:\
 :vmemoryuse=100M:\
 :stacksize=2M:\
 :memorylocked=4M:\
 :memoryuse=8M:\
 :filesize=8M:\
 :coredumpsize=8M:\
 :openfiles=24:\
 :maxproc=32:\
 :priority=0:\
 :requirehome:\
 :passwordtime=91d:\
 :umask=022:\
 :ignoretime@:\
 :label=biba/10(10-10):

   Zusa:tzlich fu:gen wir beim Standardnutzer folgende Zeile hinzu:

 :label=biba/high:

   Anschliessend muss die Datenbank neu erstellt werden:

 # cap_mkdb /etc/login.conf

     --------------------------------------------------------------

  17.15.2. Boot-Konfiguration

   Starten Sie den Rechner noch nicht neu. Fu:gen Sie zuna:chst noch
   die folgenden Zeilen in die Datei /boot/loader.conf ein, damit die
   beno:tigten Module wa:hrend des Systemstarts geladen werden:

 mac_biba_load="YES"
 mac_seeotheruids_load="YES"

     --------------------------------------------------------------

  17.15.3. Nutzer einrichten

   Ordnen Sie den Superuser root der Klasse default zu:

 # pw usermod root -L default

   Alle Nutzerkonten, die weder root noch Systemkonten sind, brauchen
   nun eine Loginklasse, da sie sonst keinen Zugriff auf sonst
   u:bliche Befehle erhalten, wie bspw. vi(1). Das folgende sh Skript
   wird diese Aufgabe erledigen:

 # for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \
       /etc/passwd`; do pw usermod $x -L default; done;

   Verschieben Sie die Nutzer nagios und www in die insecure Klasse:

 # pw usermod nagios -L insecure

 # pw usermod www -L insecure

     --------------------------------------------------------------

  17.15.4. Die Kontextdatei erstellen

   Nun muss eine Kontextdatei erstellt werden. Die folgende
   Beispieldatei soll dazu in /etc/policy.contexts gespeichert
   werden:

 # This is the default BIBA policy for this system.

 # System:
 /var/run                        biba/equal
 /var/run/*                      biba/equal

 /dev                            biba/equal
 /dev/*                          biba/equal

 /var                            biba/equal
 /var/spool                      biba/equal
 /var/spool/*                    biba/equal

 /var/log                        biba/equal
 /var/log/*                      biba/equal

 /tmp                            biba/equal
 /tmp/*                          biba/equal
 /var/tmp                        biba/equal
 /var/tmp/*                      biba/equal

 /var/spool/mqueue               biba/equal
 /var/spool/clientmqueue         biba/equal

 # For Nagios:
 /usr/local/etc/nagios
 /usr/local/etc/nagios/*         biba/10

 /var/spool/nagios               biba/10
 /var/spool/nagios/*             biba/10

 # For apache
 /usr/local/etc/apache           biba/10
 /usr/local/etc/apache/*         biba/10

   Die Richtlinie erzwingt Sicherheit, indem der Informationsfluss
   Einschra:nkungen unterworfen wird. In der vorliegenden
   Konfiguration kann kein Nutzer, weder root noch andere, auf Nagios
   zugreifen. Konfigurationsdateien und die Prozesse, die Teil von
   Nagios sind, werden durch unsere MAC vollsta:ndig abgegrenzt.

   Die Kontextdatei kann nun vom System eingelesen werden, indem
   folgender Befehl ausgefu:hrt wird:

 # setfmac -ef /etc/policy.contexts /
 # setfmac -ef /etc/policy.contexts /

     Anmerkung: Das obenstehende Dateisystem-Layout kann, je nach
     Umgebung, sehr unterschiedlich aussehen. Ausserdem muss es auf
     jedem einzelnen Dateisystem ausgefu:hrt werden.

   In die Datei /etc/mac.conf mu:ssen nun noch diese A:nderungen
   eingetragen werden:

 default_labels file ?biba
 default_labels ifnet ?biba
 default_labels process ?biba
 default_labels socket ?biba

     --------------------------------------------------------------

  17.15.5. Netzwerke einbinden

   Tragen Sie die folgende Zeile in die Datei /boot/loader.conf ein:

 security.mac.biba.trust_all_interfaces=1

   Und das Folgende geho:rt in Datei rc.conf zu den Optionen fu:r die
   Netzwerkkarte. Falls die Netzwerkverbindung(-en) via DHCP
   konfiguriert werden, muss man dies nach jedem Systemstart
   eigenha:ndig nachtragen:

 maclabel biba/equal

     --------------------------------------------------------------

  17.15.6. Testen der Konfiguration

   Versichern Sie sich, dass der Webserver und Nagios nicht
   automatisch geladen werden und starten Sie den Rechner neu.
   Pru:fen Sie nun, ob root wirklich keinen Zugriff auf die Dateien
   im Konfigurationsverzeichnis von Nagios hat. Wenn root den Befehl
   ls(1) auf /var/spool/nagios ausfu:hren kann, ist irgendwas schief
   gelaufen. Es sollte ein "permission denied" Fehler ausgegeben
   werden.

   Wenn alles gut aussieht, ko:nnen Nagios, Apache und Sendmail
   gestartet werden - allerdings auf eine Weise, die unserer
   Richtlinie gerecht wird. Zum Beispiel durch die folgenden
   Kommandos:

 # cd /etc/mail && make stop && \
 setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \
 setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart

   Versichern Sie sich lieber doppelt, dass alles ordentlich la:uft.
   Wenn nicht, pru:fen Sie die Logs und Fehlermeldungen. Verwenden
   Sie das sysctl(8) Werkzeug um die Sicherheitsrichtlinie sysctl(8)
   zu deaktivieren und versuchen Sie dann alles noch einmal zu
   starten.

     Anmerkung: Der Superuser kann den Vollzug der Richtlinie
     schalten und die Konfiguration ohne Furcht vera:ndern. Folgender
     Befehl stuft eine neu gestartete Shell herunter:

 # setpmac biba/10 csh

     Um dies zu vermeiden, werden die Nutzer durch login.conf(5)
     eingeschra:nkt. Wenn setpmac(8) einen Befehl ausserhalb der
     definierten Schranken ausfu:hren soll, wird ein Fehler
     zuru:ckgeliefert. In so einem Fall muss root auf
     biba/high(high-high) gesetzt werden.

     --------------------------------------------------------------

17.16. Beispiel 2: User Lock Down

   Grundlage dieses Beispiels ist ein relativ kleines System zur
   Datenspeicherung mit weniger als 50 Benutzern. Diese haben die
   Mo:glichkeit, sich einzuloggen und du:rfen nicht nur Daten
   speichern, sondern auch auf andere Ressourcen zugreifen.

   Die Richtlinien mac_bsdextended(4) und mac_seeotheruids(4) ko:nnen
   gleichzeitig eingesetzt werden. Zusammen kann man mit ihnen nicht
   nur den Zugriff auf Systemobjekte einschra:nken, sondern auch
   Nutzerprozesse verstecken.

   Beginnen Sie, indem Sie die folgende Zeile in die Datei
   /boot/loader.conf eintragen:

   

 mac_seeotheruids_load="YES"

   Die Richtlinie mac_bsdextended(4) wird durch den anschliessenden
   Eintrag in /etc/rc.conf hinzugefu:gt:

 ugidfw_enable="YES"

   Die Standardregeln, welche in /etc/rc.bsdextended gespeichert
   sind, werden zum Systemstart geladen. Sie mu:ssen aber noch
   angepasst werden. Da dieser Computer nur Nutzern dienen soll und
   weitere Dienste gestartet werden, kann alles bis auf die beiden
   letzten Zeilen auskommentiert werden. Das sorgt dafu:r dass jeder
   Nutzer seine eigenen Systemobjekte erha:lt.

   Nun fu:gen wir alle beno:tigten Nutzer auf der Maschine hinzu und
   starten neu. Zum Testen der Einstellungen loggen Sie sich parallel
   zwei mal mit unterschiedlichen Nutzernamen ein und starten Sie das
   Kommando ps aux. Dort sehen Sie, dass Sie die Prozesse des anderen
   Nutzers nicht sehen ko:nnen. Versuchen Sie, ls(1) auf das
   Heimatverzeichnis eines anderen Nutzers auszufu:hren. Auch dieser
   Versuch wird fehlschlagen.

   Solange nicht die speziellen sysctl-Variablen gea:ndert wurden,
   hat der Superuser noch vollen Zugriff. Sobald auch diese
   Einstellungen angepasst wurden, fu:hren Sie ruhig auch den obigen
   Test als root aus.

     Anmerkung: Wenn ein neuer Benutzer hinzugefu:gt wird, ist fu:r
     diesen zuna:chst keine mac_bsdextended(4) Regel im Regelsatz
     vorhanden. Schnelle Abhilfe schafft hier, einfach das
     Kernelmodul mit kldunload(8) zu entladen und mit kldload(8)
     erneut einzubinden.

     --------------------------------------------------------------

17.17. Fehler im MAC beheben

   Wa:hrend der Entwicklung des Frameworks haben einige Nutzer auf
   Probleme hingewiesen. Einige davon werden hier aufgefu:hrt:

     --------------------------------------------------------------

  17.17.1. Die Option multilabel greift nicht auf der /-Partition

   Es scheint, dass etwa jedem fu:nfzigsten Nutzer dieses Problem
   widerfa:hrt. Und in der Tat - auch wir kennen es aus der
   Entwicklung. Genauere Untersuchungen dieses "Bugs" machten uns
   glauben, dass es sich entweder um einen Fehler in oder eine
   fehlerhafte Interpretation der Dokumentation handelt. Warum auch
   immer dieser Fehler auftritt - er kann mit folgender Prozedur
   behoben werden:

   

    1. O:ffnen Sie die Datei /etc/fstab und setzen Sie die
       Rootpartition auf ro wie "read-only".

    2. Starten Sie in den Einzelnutzermodus.

    3. Rufen Sie tunefs -l enable fu:r / auf.

    4. Starten Sie in den Mehrbenutzermodus.

    5. Fu:hren Sie mount -urw / aus und a:ndern Sie anschliessend in
       der Datei /etc/fstab die Option ro zuru:ck in rw. Starten Sie
       das System noch einmal neu.

    6. Achten Sie besonders auf die Ausgabe von mount um sich zu
       versichern, dass die multilabel korrekt fu:r das
       root-Dateisystem gesetzt wurde.

     --------------------------------------------------------------

  17.17.2. Mit der aktivierten MAC kann ich keinen X11 Server starten

   Dies kann durch die Richtlinie partition oder einer fehlerhaften
   Verwendung einer Richtlinie, die mit Labels arbeitet, auftreten.
   Zum debuggen versuchen Sie folgendes:

    1. Schauen Sie sich die Fehlermeldungen genau an. Wenn der Nutzer
       einer insecure Klasse angeho:rt, ist wahrscheinlich die
       Richtlinie partition die Ursache. Versuchen Sie, die
       Nutzerklasse auf default zu stellen und danach die Datenbank
       mit cap_mkdb zu erneuern. Wenn das Problem dadurch nicht
       gelo:st wird, gehen Sie weiter zu Schritt 2.

    2. Gehen Sie die Label-Richtlinien Schritt fu:r Schritt
       nocheinmal durch. Achten Sie darauf, dass fu:r den Nutzer, bei
       dem das Problem auftritt, fu:r X11 und das Verzeichnis /dev
       alle Einstellungen korrekt sind.

    3. Falls all dies nicht helfen sollte, senden Sie die
       Fehlermeldung und eine Beschreibung ihrer Arbeitsumgebung an
       die (englisch-sprachige) TrustedBSD Diskussionsliste auf der
       TrustedBSD Webseite oder an die FreeBSD general questions
       Mailingliste./para>

     --------------------------------------------------------------

  17.17.3. Error: _secure_path(3) cannot stat .login_conf

   Wenn ich versuche, von root zu einem anderen Nutzer des Systems zu
   wechseln, erhalte ich die Fehlermeldung "_secure_path: unable to
   state .login_conf".

   Diese Meldung wird gewo:hnlich ausgegeben, wenn der Nutzer ein
   ho:here Label-Einstellung hat als der, dessen Identita:t man
   annehmen mo:chte. Ausfu:hrlich: Wenn ein Nutzer joe als biba/low
   gelabelt wurde, kann root, der biba/high als Voreinstellung
   tra:gt, das Heimatverzeichnis von joe nicht einsehen. Das passiert
   unabha:nig davon, ob root vorher mit su die Identita:t von joe
   angenommen hat oder nicht, da das Label sich nicht a:ndert. Hier
   haben wir also einen Fall, in dem das Gewa:hrleistungsmodell von
   Biba verhindert, das der Superuser Objekte einer niedrigeren
   Integrita:t betrachten kann.

     --------------------------------------------------------------

  17.17.4. Der Nutzer root ist kaputt!

   Im normalen oder sogar im Einzelbenutzermodus wird root nicht
   anerkannt. Das Kommando whoami liefert 0 (null) und su liefert
   "who are you?" zuru:ck. Was geht da vor?

   Das kann passieren, wenn eine Label-Richtlinie ausgeschaltet wird
   - entweder durch sysctl(8) oder wenn das Richtlinienmodul entladen
   wurde. Wenn eine Richtlinie deaktiviert oder auch nur
   voru:bergehen deaktiviert wird, muss die Befa:higungsdatenbank neu
   konfiguriert werden, d.h. die label Option muss entfernt werden.
   U:berpru:fen Sie, ob alle label Eintra:ge aus der Datei
   /etc/login.conf entfernt wurden und bauen Sie die Datenbank mit
   cap_mkdb neu.

   Dieser Fehler kann auch auftreten, wenn eine Richtlinie den
   Zugriff auf die Datei master.passwd einschra:nkt. Normalerweise
   passiert das nur, wenn ein Administrator ein Label an diese Datei
   vergibt, das mit der allgemeingu:ltigen Richtlinie, die das System
   verwendet, in Konflikt steht. In solchen Fa:llen werden die
   Nutzerinformationen vom System ausgelesen und jeder weitere
   Zugriff wird blockiert, sobald das neue Label greift. Wenn man die
   Richtlinie via sysctl(8) ausschaltet, sollte es erstmal wieder
   gehen.

     --------------------------------------------------------------

                  Kapitel 18. Security Event Auditing

   Geschrieben von Tom Rhodes und Robert Watson. U:bersetzt von
   Daniel Seuffert.

18.1. Einleitung

   Das FreeBSD-Betriebssystem unterstu:tzt ein feingranuliertes
   Sicherheits-Auditing. Ereignis-Auditing erlaubt die zuverla:ssige,
   feingranulierte und konfigurierbare Aufzeichnung einer Vielzahl
   von sicherheitsrelevanten Systemereignissen einschliesslich
   Benutzereingaben, Konfigurationsa:nderungen sowie Datei- und
   Netzwerkzugriffen. Diese Log-Datensa:tze ko:nnen unscha:tzbar
   wertvoll sein fu:r direkte Systemu:berwachung, Einbruchserkennung
   und Post-Mortem-Analyse. FreeBSD implementiert Suns o:ffentlich
   zuga:ngliche BSM API und Dateiformat. Die FreeBSD-Implementierung
   kann mit den Audit-Implementierungen von Sun Solaris und Apple
   Mac OS X zusammenarbeiten.

   Dieses Kapitel konzentriert sich auf die Installation und
   Konfiguration des Ereignis-Auditings. Es erkla:rt
   Audit-Richtlinien und stellt ein Beispiel einer
   Audit-Konfiguration vor.

   Nach dem Lesen dieses Kapitels werden Sie Folgendes wissen:

     * Was Ereignis-Auditing ist und wie es arbeitet.

     * Wie man Ereignis-Auditing in FreeBSD fu:r Benutzer und
       Prozesse konfiguriert.

     * Wie man den Audit-Pfad mittels Audit-Reduktion und
       Revisionswerkzeugen u:berpru:ft.

   Vor dem Lesen dieses Kapitels sollten Sie:

     * Sowohl UNIX als auch FreeBSD-Basismechanismen beherrschen
       (Kapitel 4).

     * Mit den grundlegenden Mechanismen der Kernel-Konfiguration und
       -Kompilierung vertraut sein (Kapitel 9).

     * Mit den Massnahmen zur Sicherung von FreeBSD vertraut sein
       (Kapitel 15).

     Warnung: Die Audit-Funktionalita:t in FreeBSD besitzt die
     Einschra:nkungen, dass zur Zeit nicht alle sicherheitsrelevanten
     System-Ereignisse auditierbar sind und dass einige
     Anmelde-Mechanismen, wie z.B. X11-basierte Bildschirm-Manager
     und Daemonen von Drittanbietern, das Auditing fu:r
     Benutzeranmeldungen nicht korrekt konfigurieren.

     Das Sicherheits-Auditing ist in der Lage, sehr detaillierte
     Log-Dateien von Systemaktivita:ten zu erzeugen. Auf einem
     ausgelasteten System kann die Pfad-Datei sehr gross werden, wenn
     sie fu:r hohe Auflo:sung konfiguriert ist, und im Extremfall pro
     Woche um mehrere Gigabyte anwachsen. Administratoren sollten
     daher den beno:tigten Plattenplatz in Verbindung mit
     umfangreichen Audit-Konfigurationen beru:cksichtigen. So kann es
     wu:nschenswert sein, ein eigenes Dateisystem fu:r /var/audit
     einzusetzen, damit andere Dateisysteme nicht betoffen sind, wenn
     das Dateisystem des Audit voll la:uft.

     --------------------------------------------------------------

18.2. Schlu:sselbegriffe

   Vor dem Lesen dieses Kapitels mu:ssen einige Audit-bezogene
   Schlu:sselbegriffe erla:utert werden:

     * event: Ein auditierbares Ereignis ist ein Ereignis, das mit
       dem Audit-Subsystem aufgezeichnet werden kann. Beispiele fu:r
       sicherheitsrelevante Systemereignisse sind etwa das Anlegen
       von Dateien, das Erstellen einer Netzwerkverbindung oder eine
       Benutzeranmeldung. Ereignisse sind entweder "attributierbar",
       ko:nnen also zu einen authentifizierten Benutzer
       zuru:ckverfolgt werden, oder sind "nicht-attributierbar",
       falls dies nicht mo:glich ist. Nicht-attributierbare
       Ereignisse erfolgen daher vor der Authentifizierung im
       Anmeldeprozess (beispielsweise die Eingabe eines falschen
       Passworts).

     * class: Ereignisklassen sind benannte Zusammenstellungen von
       zusammengeho:renden Ereignissen und werden in
       Auswahl-Ausdru:cken benutzt. Ha:ufig genutzte Klassen von
       Ereignissen schliessen "file creation" (fc, Anlegen von
       Dateien), "exec" (ex, Ausfu:hrung) und "login_logout" (lo,
       Anmeldung-Abmeldung) ein.

     * record: Ein Datensatz ist ein Audit-Logeintrag, welcher ein
       Sicherheitsereignis entha:lt. Jeder Datensatz entha:lt einen
       Ereignistyp, Informationen u:ber den Gegenstand (Benutzer),
       welcher die Aktion durchfu:hrt, Datums- und Zeitinformationen,
       Informationen u:ber jedes Objekt oder Argument sowie den
       Zustand hinsichtlich Erfolg oder Scheitern der Operation.

     * trail: Ein Audit-Pfad (audit trail) oder eine Log-Datei
       besteht aus einer Reihe von Audit-Datensa:tzen, die
       Sicherheitsereignisse beschreiben. Normalerweise sind die
       Pfade in grober zeitlicher Reihenfolge bezu:glich des
       Zeitpunktes, an welchem ein Ereignis beendet wurde. Nur
       authorisierte Prozesse du:rfen Datensa:tze zum Audit-Pfad
       hinzufu:gen.

     * selection expression: Ein Auswahlausdruck ist eine
       Zeichenkette, welche eine Liste von Pra:fixen und
       Audit-Ereignisklassennamen entha:lt, um Ereignisse
       abzugleichen.

     * preselection: Die Vorauswahl ist der Prozess, durch den das
       System erkennt, welche Ereignisse von Interesse fu:r den
       Administrator sind, um die Erzeugung von Datensa:tze zu
       verhindern, welche nicht von Belang sind. Die Konfiguration
       der Vorauswahl benutzt eine Reihe von Auswahl-Ausdru:cken, um
       zu erkennen, welche Klassen von Ereignissen fu:r welche
       Benutzer aufgezeichnet werden sollen sowie globale
       Einstellungen, welche sowohl auf authorisierte als auch
       unauthorisierte Prozesse angewendet werden.

     * reduction: Die Reduzierung ist der Prozess, durch den
       Datensa:tze von bestehenden Audit-Pfaden ausgewa:hlt werden
       fu:r Speicherung, Ausdruck oder Analyse. Ebenso der Prozess,
       durch den unerwu:nschte Datensa:tze aus dem Audit-Pfad
       entfernt werden. Mittels Reduzierung ko:nnen Administratoren
       Richtlinien fu:r die Speicherung von Audit-Daten vorgeben. Zum
       Beispiel ko:nnen ausfu:hrliche Audit-Pfade fu:r einen Monat
       gespeichert werden, um danach den Pfad fu:r archivarische
       Zwecke auf die Anmeldeinformationen zu reduzieren.

     --------------------------------------------------------------

18.3. Installation der Audit-Unterstu:tzung

   Die Unterstu:tzung des Ereignis-Auditings fu:r den Benutzerbereich
   wird bereits als Teil des Basissystems installiert. Die
   Audit-Unterstu:tzung ist bereits im FreeBSD-Standardkernel
   enthalten, jedoch mu:ssen Sie die folgende Zeile explizit in Ihre
   Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:

 options AUDIT

   Bauen und installieren Sie den Kernel wie in Kapitel 9 beschrieben
   ist.

   Nachdem der Kernel mit Audit-Unterstu:tzung gebaut und installiert
   ist und das System neu gestartet wurde, aktivieren Sie den
   Audit-Daemon durch das Einfu:gen der folgenden Zeile in die Datei
   rc.conf(5):

 auditd_enable="YES"

   Die Audit-Unterstu:tzung kann nun durch einen Neustart des Systems
   oder durch das manuelle Starten des Audit-Daemon aktiviert werden:

 /etc/rc.d/auditd start

     --------------------------------------------------------------

18.4. Die Konfiguration des Audit

   Alle Konfigurationsdateien fu:r das Sicherheits-Audit finden sich
   unter /etc/security. Die folgenden Dateien mu:ssen vorhanden sein,
   bevor der Audit-Daemon gestartet wird:

     * audit_class - Entha:lt die Definitionen der Audit-Klassen.

     * audit_control - Steuert Teile des Audit-Subsystems wie
       Audit-Klassen, minimaler Plattenplatz auf dem
       Audit-Log-Datentra:ger, maximale Gro:sse des Audit-Pfades usw.

     * audit_event - Wo:rtliche Namen und Beschreibungen von
       System-Audit-Ereignissen sowie eine Liste, welche Klassen
       welches Ereignis aufzeichnen.

     * audit_user - Benutzerspezifische Audit-Erfordernisse, welche
       mit den globalen Vorgaben bei der Anmeldung kombiniert werden.

     * audit_warn - Ein anpassbares Shell-Skript, welches von auditd
       benutzt wird, um Warnhinweise in aussergewo:hnlichen
       Situationen zu erzeugen, z.B. wenn der Platz fu:r die
       Audit-Datensa:tze knapp wird oder wenn die Datei des
       Audit-Pfades rotiert wurde.

     Warnung: Audit-Konfigurationsdateien sollten vorsichtig gewartet
     und bearbeitet werden, da Fehler in der Konfiguration zu
     falscher Aufzeichnung von Ereignissen fu:hren ko:nnten.

     --------------------------------------------------------------

  18.4.1. Ereignis-Auswahlausdru:cke

   Auswahlausdru:cke werden an einigen Stellen der
   Audit-Konfiguration benu:tzt, um zu bestimmen, welche Ereignisse
   auditiert werden sollen. Die Ausdru:cke enthalten eine Liste der
   Ereignisklassen, welche verglichen werden sollen, jede mit einem
   Pra:fix, welches anzeigt, ob verglichene Datensa:tze akzeptiert
   oder ignoriert werden sollen und optional, um anzuzeigen, ob der
   Eintrag beabsichtigt, erfolgreiche oder fehlgeschlagene
   Operationen zu vergleichen. Auswahlausdru:cke werden von links
   nach rechts ausgewertet und zwei Ausdru:cke werden durch
   Aneinanderha:ngen miteinander kombiniert.

   Die folgende Liste entha:lt die Standard-Ereignisklassen fu:r das
   Audit und ist in audit_class festgehalten:

     * all - all - Vergleiche alle Ereignisklassen.

     * ad - administrative - Administrative Aktionen ausgefu:hrt auf
       dem System als Ganzes.

     * ap - application - Aktionen definiert fu:r Applikationen.

     * cl - file close - Audit-Aufrufe fu:r den Systemaufruf close.

     * ex - exec - Ausfu:hrung des Audit-Programms. Auditierung von
       Befehlszeilen-Argumenten und Umgebungsvariablen wird gesteuert
       durch audit_control(5) mittels der argv und
       envv-Parametergema:ss der Richtlinien-Einstellungen.

     * fa - file attribute access - Auditierung des Zugriffs auf
       Objektattribute wie stat(1), pathconf(2) und a:hnlichen
       Ereignissen.

     * fc - file create - Audit-Ereignisse, bei denen eine Datei als
       Ergebnis angelegt wird.

     * fd - file delete - Audit-Ereignisse, bei denen
       Dateilo:schungen vorkommen.

     * fm - file attribute modify - Audit-Ereignisse, bei welchen
       Dateiattribute gea:ndert werden, wie chown(8), chflags(1),
       flock(2) etc.

     * fr - file read - Audit-Ereignisse, bei denen Daten gelesen
       oder Dateien zum lesen geo:ffnet werden usw.

     * fw - file write - Audit-Ereignisse, bei welchen Daten
       geschrieben oder Dateien geschrieben oder vera:ndert werden
       usw.

     * io - ioctl - Nutzung des Systemaufrufes ioctl(2) durch Audit.

     * ip - ipc - Auditierung verschiedener Formen von
       Inter-Prozess-Kommunikation einschliesslich POSIX-Pipes und
       System V IPC-Operationen.

     * lo - login_logout - Audit-Ereignisse betreffend login(1) und
       logout(1), welche auf dem System auftreten.

     * na - non attributable - Auditierung nicht-attributierbarer
       Ereignisse (Ereignisse, die nicht auf einen bestimmten
       Benutzer zuru:ckgefu:hrt werden ko:nnen).

     * no - invalid class - Kein Abgleich von Audit-Ereignissen.

     * nt - network - Audit-Ereignisse in Zusammenhang mit
       Netzwerkaktivita:ten wie z.B. connect(2) und accept(2).

     * ot - other - Auditierung verschiedener Ereignisse.

     * pc - process - Auditierung von Prozess-Operationen wie exec(3)
       und exit(3).

   Diese Ereignisklassen ko:nnen angepasst werden durch Modifizierung
   der Konfigurationsdateien audit_class und audit_event.

   Jede Audit-Klasse in dieser Liste ist kombiniert mit einem
   Pra:fix, welches anzeigt, ob erfolgreiche/gescheiterte Operationen
   abgebildet werden, und ob der Eintrag den Abgleich hinzufu:gt oder
   entfernt fu:r die Klasse und den Typ.

     * (none) Kein Pra:fix, sowohl erfolgreiche als auch gescheiterte
       Vorkommen eines Ereignisses werden auditiert.

     * + Auditiere nur erfolgreiche Ereignisse in dieser Klasse.

     * - Auditiere nur gescheiterte Operationen in dieser Klasse.

     * ^ Auditiere weder erfolgreiche noch gescheiterte Ereignisse in
       dieser Klasse.

     * ^+ Auditiere keine erfolgreichen Ereignisse in dieser Klasse.

     * ^- Auditiere keine gescheiterten Ereignisse in dieser Klasse.

   Das folgende Beispiel einer Auswahl-Zeichenkette wa:hlt
   erfolgreiche und gescheiterte Anmelde/Abmelde-Ereignisse aus, aber
   nur erfolgreich beendete Ausfu:hrungs-Ereignisse:

 lo,+ex

     --------------------------------------------------------------

  18.4.2. Konfigurationsdateien

   In den meisten Fa:llen mu:ssen Administratoren nur zwei Dateien
   a:ndern, wenn sie das Audit-System konfigurieren: audit_control
   und audit_user. Die erste Datei steuert systemweite
   Audit-Eigenschaften und -Richtlinien; die zweite Datei kann fu:r
   die Feinanpassung der Auditierung von Benutzern verwendet werden.

     --------------------------------------------------------------

    18.4.2.1. Die audit_control-Datei

   Die audit_control-Datei legt eine Anzahl Vorgabewerte fest. Beim
   Betrachten des Inhaltes der Datei sehen wir Folgendes:

 dir:/var/audit
 flags:lo
 minfree:20
 naflags:lo
 policy:cnt
 filesz:0

   Die Option dir wird genutzt, um eines oder mehrere Verzeichnisse
   festzulegen, in welchen Audit-Protokolle gespeichert werden. Gibt
   es mehrere Verzeichniseintra:ge, werden diese in der angegebenen
   Reihenfolge genutzt, bis sie jeweils gefu:llt sind. Es ist
   u:blich, Audit so zu konfigurieren, dass die Audit-Logs auf einem
   dedizierten Dateisystem abgelegt werden, um Wechselwirkungen
   zwischen dem Audit-Subsystem und anderen Subsystemen zu
   verhindern, falls das Dateisystem voll la:uft.

   Das flags-Feld legt die systemweite Standard-Vorauswahl-Maske fu:r
   attributierbare (direkt einem Benutzer zuordenbare) Ereignisse
   fest. Im obigen Beispiel werden alle gescheiterten und
   erfolgreichen Anmelde- und Abmelde-Ereignisse fu:r alle Benutzer
   aufgezeichnet.

   Die Option minfree definiert den minimalen Prozentsatz an freiem
   Plattenplatz fu:r das Dateisystem, in welchem der Audit-Pfad
   abgespeichert wird. Wenn diese Schwelle u:berschritten ist, wird
   ein Warnhinweis erzeugt. Das obige Beispiel legt den minimalen
   freien Platz auf zwanzig Prozent fest.

   Die naflags-Option bestimmt diejenigen Audit-Klassen, fu:r die
   nicht-attributierbare Ereignisse aufgezeichnet werden sollen
   (beispielsweise Anmeldeprozesse und System-Daemonen.

   Die Option policy legt eine durch Kommata getrennte Liste von
   policy-Flags fest, welche verschiedene Aspekte des
   Audit-Verhaltens steuern. Der vorgegebene Flag cnt zeigt an, dass
   das System trotz eines Audit-Fehlers weiterlaufen soll (dieses
   Flag wird dringend angeraten). Ein anderes, ha:ufig genutztes Flag
   ist argv, welches dazu fu:hrt, dass Befehlszeilen-Argumente fu:r
   den Systemauruf execve(2) als Teil der Befehlsausfu:hrung
   aufgezeichnet werden.

   Die filesz-Option spezifiziert die maximale Gro:sse in Bytes,
   welche eine Audit-Pfad-Datei wachsen darf, bevor sie automatisch
   beendet und rotiert wird. Die Standardvorgabe 0 setzt die
   automatische Log-Rotation ausser Kraft. Falls die angeforderte
   Dateigro:sse gro:sser Null und gleichzeitig unterhalb des Minimums
   von 512K ist, dann wird die Angabe verworfen und ein Log-Hinweis
   wird erzeugt.

     --------------------------------------------------------------

    18.4.2.2. Die Datei audit_user

   Die audit_user-Datei erlaubt es dem Administrator, weitere
   Audit-Erfordernisse fu:r bestimmte Benutzer festzulegen. Jede
   Zeile konfiguriert das Auditing fu:r einen Benutzer u:ber zwei
   Felder: Das erste Feld ist alwaysaudit, welches eine Ansammlung
   von Ereignissen vorgibt, welche immer fu:r diesen Benutzer
   aufgezeichnet werden. Das zweite Feld neveraudit legt eine Menge
   an Ereignissen fest, die niemals fu:r diesen Benutzer auditiert
   werden sollen.

   Das folgende Beispiel einer audit_user-Datei zeichnet
   Anmelde/Abmelde-Ereignisse, erfolgreiche Befehlsausfu:hrungen fu:r
   den Benutzer root, Anlegen von Dateien und erfolgreiche
   Befehlsausfu:hrungen fu:r den Benutzer www auf. Falls das Beispiel
   zusammen mit der vorstehend als Beispiel gezeigten Datei
   audit_control benutzt wird, dann ist der Eintrag lo fu:r Benutzer
   root u:berflu:ssig und Anmelde/Abmelde-Ereignisse werden fu:r den
   Benutzer www ebenfalls aufgezeichnet.

 root:lo,+ex:no
 www:fc,+ex:no

     --------------------------------------------------------------

18.5. Administration des Audit-Subsystems

  18.5.1. Audit-Pfade betrachten

   Audit-Pfade werden im bina:ren BSM-Format gespeichert, daher
   beno:tigen Sie spezielle Werkzeuge, um derartige Dateien zu
   a:ndern oder Sie in Textdateien zu konvertieren. Der Befehl
   praudit(1) wandelt alle Pfad-Dateien in ein einfaches Textformat
   um. Der Befehl auditreduce(1) kann genutzt werden, um die
   Pfad-Dateien fu:r Analyse, Ausdruck, Archivierung oder andere
   Zwecke zu reduzieren. auditreduce unterstu:tzt eine Reihe von
   Auswahl-Parametern einschliesslich Ereignistyp, Ereignisklasse,
   Benutzer, Datum oder Uhrzeit des Ereignisses und den Dateipfad
   oder das Objekt, mit dem gearbeitet wurde.

   Das Dienstprogramm praudit schreibt zum Beispiel den gesamten
   Inhalt einer angegebenen Audit-Protokolldatei in eine simple
   Textdatei:

 # praudit /var/audit/AUDITFILE

   AUDITFILE ist hier die zu schreibende Protokolldatei.

   Audit-Pfade bestehen aus einer Reihe von Datensa:tzen, die
   wiederum aus Ku:rzeln (token) gebildet werden, die von praudit
   fortlaufend zeilenweise ausgegeben werden. Jedes Ku:rzel ist von
   einem bestimmten Typ, z.B. entha:lt header einen
   audit-Datensatz-Header oder path entha:lt einen Dateipfad von
   einer Suche. Hier ein Beispiel eines execve-Ereignisses:

 header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
 exec arg,finger,doug
 path,/usr/bin/finger
 attribute,555,root,wheel,90,24918,104944
 subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
 return,success,0
 trailer,133

   Dieser Audit stellt einen erfolgreichen execve-Aufruf dar, in
   welchem der Befehl finger doug ausgefu:hrt wurde. Das Ku:rzel des
   Argumentes entha:lt die Befehlszeile, welche die Shell an den
   Kernel weiterleitet. Das Ku:rzel path entha:lt den Pfad zur
   ausfu:hrbaren Datei (wie vom Kernel wahrgenommen). Das Ku:rzel
   attribute beschreibt die Bina:rdatei (insbesondere den
   Datei-Modus, der genutzt werden kann, um zu bestimmen, ob setuid
   auf die Applikation angewendet wurde). Das Ku:rzel subject
   beschreibt den untergeordneten Prozess und speichert daher in
   Aufeinanderfolge Audit-Benutzer-ID, effektive Benutzer-ID und
   Gruppen-ID, wirkliche Benutzer-ID und Grppen-ID, Process-ID,
   Session- ID, Port-ID und Anmelde-Adresse. Beachten Sie, dass
   Audit-Benutzer-ID und wirkliche Benutzer-ID abweichen: Der
   Benutzer robert wurde zum Benutzer root, bevor er diesen Befehl
   ausfu:hrte, aber er wird auditiert mit dem urspru:nglich
   authentifizierten Benutzer. Schliesslich zeigt das Ku:rzel return
   die erfolgreiche Ausfu:hrung an und trailer schliesst den
   Datensatz ab.

   praudit unterstu:tzt auch die Ausgabe im XML-Format (die sie u:ber
   die Option -x auswa:hlen ko:nnen).

     --------------------------------------------------------------

  18.5.2. Audit-Pfade reduzieren

   Da Audit-Protokolldateien sehr gross sein ko:nnen, wird ein
   Administrator ho:chstwahrscheinlich eine Auswahl an Datensa:tzen
   verwenden, wie z.B. alle Datensa:tze zu einem bestimmten Benutzer:

 # auditreduce -u trhodes /var/audit/AUDITFILE | praudit

   Dies wird alle Audit-Datensa:tze des Benutzers trhodes auswa:hlen,
   die in der Datei AUDITFILE gespeichert sind.

     --------------------------------------------------------------

  18.5.3. Delegation von Rechten fu:r Audit-Reviews

   Mitglieder der Gruppe audit haben die Erlaubnis, Audit-Pfade in
   /var/audit zu lesen; standardma:ssig ist diese Gruppe leer, daher
   kann nur der Benutzer root die Audit-Pfade lesen. Benutzer ko:nnen
   der Gruppe audit hinzugefu:gt werden, um Rechte fu:r Audit-Reviews
   zu gewa:hren. Da die Fa:higkeit, Inhalte von
   Audit-Protokolldateien zu verfolgen, tiefgreifende Einblicke in
   das Verhalten von Benutzern und Prozessen erlaubt, wird empfohlen,
   dass die Gewa:hrung von Rechten fu:r Audit-Reviews mit Bedacht
   erfolgt.

     --------------------------------------------------------------

  18.5.4. Aktive U:berwachung mittles Audit-Pipes

   Audit-Pipes sind nachgebildete (geklonte) Pseudo-Gera:te im
   Dateisystem des Gera:tes, welche es Applikationen erlauben, die
   laufenden Audit-Datensa:tze anzuzapfen. Dies ist vorrangig fu:r
   Autoren von Intrusion Detection Software und
   Systemu:berwachungsprogrammen von Bedeutung. Allerdings ist fu:r
   den Administrator das Audit-Pipe-Gera:t ein angenehmer Weg, aktive
   U:berwachung zu gestatten, ohne Gefahr von Problemen durch
   Besitzerrechte der Audit-Pfad-Datei oder Unterbrechung des Stroms
   von Ereignissen durch Log-Rotation. Um den laufenden
   Audit-Ereignisstrom zu verfolgen, geben Sie bitte folgende
   Befehlszeile ein:

 # praudit /dev/auditpipe

   In der Voreinstellung kann nur der Benutzer root auf die
   Audit-Pipe-Gera:te-Knotenpunkte zugreifen. Um sie allen
   Mitgliedern der Gruppe audit zuga:nglich zu machen, fu:gen Sie
   eine devfs-Regel in devfs.rules hinzu:

 add path 'auditpipe*' mode 0440 group audit

   Lesen Sie devfs.rules(5) fu:r weitere Informationen, wie das
   devfs-Dateisystem konfiguriert wird.

     Warnung: Es ist sehr leicht, Ru:ckmeldungszyklen von
     Audit-Ereignissen hervorzurufen, in welcher das Betrachten des
     Resultates eines Audit-Ereignisses in die Erzeugung von mehr
     Audit-Ereignissen mu:ndet. Wenn zum Beispiel der gesamte
     Netzwerk-I/O auditiert wird, wa:hrend praudit(1) in einer
     SSH-Sitzung gestartet wurde, dann wird ein kontinuierlicher,
     ma:chtiger Strom von Audit-Ereignissen erzeugt, da jedes
     ausgegebene Ereignis wiederum neue Ereignisse erzeugt. Es ist
     anzuraten, praudit an einem Audit-Pipe-Gera:t nur von Sitzungen
     anzuwenden (ohne feingranuliertes I/O-Auditing), um dies zu
     vermeiden.

     --------------------------------------------------------------

  18.5.5. Rotation von Audit-Pfad-Dateien

   Audit-Pfade werden nur vom Kernel geschrieben und nur vom
   Audit-Daemon auditd verwaltet. Administratoren sollten nicht
   versuchen, newsyslog.conf(5) oder andere Werkzeuge zu benutzen, um
   Audit-Protokolldateien direkt zu rotieren. Stattdessen sollte das
   audit Management-Werkzeug benutzt werden, um die Auditierung zu
   beenden, das Audit-System neu zu konfigurieren und eine
   Log-Rotation durchzufu:hren. Der folgende Befehl veranlasst den
   Audit-Daemon, eine neue Protokolldatei anzulegen und dem Kernel zu
   signalisieren, die neue Datei zu nutzen. Die alte Datei wird
   beendet und umbenannt. Ab diesem Zeitpunkt kann sie vom
   Administrator bearbeitet werden.

 # audit -n

     Warnung: Falls der auditd-Daemon gegenwa:rtig nicht la:uft, wird
     dieser Befehl scheitern und eine Fehlermeldung wird ausgegeben.

   Das Hinzufu:gen der folgenden Zeile in /etc/crontab wird die
   Log-Rotation alle zwo:lf Stunden durch cron(8) erzwingen:

 0     */12       *       *       *       root    /usr/sbin/audit -n

   Die A:nderung wird wirksam, sobald Sie die neue /etc/crontab
   gespeichert haben.

   Die automatische Rotation der Audit-Pfad-Datei in Abha:ngigkeit
   von der Dateigro:sse ist mo:glich durch die Angabe der Option
   filesz in audit_control(5). Dieser Vorgang ist im Abschnitt
   Konfigurationsdateien dieses Kapitels beschrieben.

     --------------------------------------------------------------

  18.5.6. Komprimierung von Audit-Pfaden

   Da Audit-Pfad-Dateien sehr gross werden ko:nnen, ist es oft
   wu:nschenswert, Pfade zu komprimieren oder anderweitig zu
   archivieren, sobald sie vom Audit-Daemon geschlossen wurden. Das
   Skript audit_warn kann genutzt werden, um angepasste Aktionen fu:r
   eine Vielzahl von audit-bezogenen Ereignissen auszufu:hren,
   einschliesslich der sauberen Beendigung von Audit-Pfaden, wenn
   diese geschlossen werden. Zum Beispiel kann man die folgenden
   Zeilen in das audit_warn-Skript aufnehmen, um Audit-Pfade beim
   Beenden zu komprimieren:

 #
 # Compress audit trail files on close.
 #
 if [ "$1" = closefile ]; then
         gzip -9 $2
 fi

   Andere Archivierungsaktivita:ten ko:nnen das Kopieren zu einem
   zentralen Server, die Lo:schung der alten Pfad-Dateien oder die
   Reduzierung des alten Audit-Pfades durch Entfernung nicht
   beno:tigter Datensa:tze einschliessen. Das Skript wird nur dann
   ausgefu:hrt, wenn die Audit-Pfad-Dateien sauber beendet wurden,
   daher wird es nicht auf Pfaden laufen, welche durch ein unsauberes
   Herunterfahren des Systems nicht beendet wurden.

     --------------------------------------------------------------

                       Kapitel 19. Speichermedien

   U:bersetzt von Bernd Warken und Martin Heinen.

19.1. U:bersicht

   Dieses Kapitel behandelt die Benutzung von Laufwerken unter
   FreeBSD. Laufwerke ko:nnen speichergestu:tzte Laufwerke,
   Netzwerklaufwerke oder normale SCSI/IDE-Gera:te sein.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
   wissen:

     * Die Begriffe, die FreeBSD verwendet, um die Organisation der
       Daten auf einem physikalischen Laufwerk zu beschreiben
       (Partitionen und Slices).

     * Wie Sie ein weiteres Laufwerk zu Ihrem System hinzufu:gen.

     * Wie virtuelle Dateisysteme, zum Beispiel RAM-Disks,
       eingerichtet werden.

     * Wie Sie mit Quotas die Benutzung von Laufwerken einschra:nken
       ko:nnen.

     * Wie Sie Partitionen verschlu:sseln, um Ihre Daten zu
       schu:tzen.

     * Wie unter FreeBSD CDs und DVDs gebrannt werden.

     * Sie werden die Speichermedien, die Sie fu:r Backups einsetzen
       ko:nnen, kennen.

     * Wie Sie die unter FreeBSD erha:ltlichen Backup Programme
       benutzen.

     * Wie Sie ein Backup mit Disketten erstellen.

     * Was Dateisystem-Schnappschu:sse sind und wie sie eingesetzt
       werden.

   Bevor Sie dieses Kapitel lesen,

     * sollten Sie einen einen FreeBSD-Kernel installieren ko:nnen
       (Kapitel 9).

     --------------------------------------------------------------

19.2. Gera:tenamen

   Die folgende Tabelle zeigt die von FreeBSD unterstu:tzten
   Speichergera:te und deren Gera:tenamen.

   Tabelle 19-1. Namenskonventionen von physikalischen Laufwerken

         Laufwerkstyp                      Gera:tename                
   IDE-Festplatten           ad                                       
   IDE-CD-ROM Laufwerke      acd                                      
   SCSI-Festplatten und      da                                       
   USB-Speichermedien        
   SCSI-CD-ROM Laufwerke     cd                                       
   Verschiedene proprieta:re mcd Mitsumi CD-ROM und scd Sony CD-ROM   
   CD-ROM-Laufwerke          
   Diskettenlaufwerke        fd                                       
   SCSI-Bandlaufwerke        sa                                       
   IDE-Bandlaufwerke         ast                                      
   Flash-Laufwerke           fla fu:r DiskOnChip(R) Flash-Device      
                             aacd fu:r Adaptec(R) AdvancedRAID, mlxd  
   RAID-Laufwerke            und mlyd fu:r Mylex(R), amrd fu:r AMI    
                             MegaRAID(R), idad fu:r Compaq Smart      
                             RAID, twed fu:r 3ware(R) RAID.           

     --------------------------------------------------------------

19.3. Hinzufu:gen von Laufwerken

   Im Original von David O'Brian.

   Der folgende Abschnitt beschreibt, wie Sie ein neues SCSI-Laufwerk
   zu einer Maschine hinzufu:gen, die momentan nur ein Laufwerk hat.
   Dazu schalten Sie zuerst den Rechner aus und installieren das
   Laufwerk entsprechend der Anleitungen Ihres Rechners, Ihres
   Controllers und des Laufwerkherstellers. Den genauen Ablauf
   ko:nnen wir wegen der grossen Abweichungen leider nicht
   beschreiben.

   Nachdem Sie das Laufwerk installiert haben, melden Sie sich als
   Benutzer root an und kontrollieren Sie /var/run/dmesg.boot, um
   sicherzustellen, dass das neue Laufwerk gefunden wurde. Das neue
   Laufwerk wird, um das Beispiel fortzufu:hren, da1 heissen und soll
   unter /1 eingeha:ngt werden. Fu:gen Sie eine IDE-Platte hinzu,
   wird diese den Namen ad1 erhalten.

   Da FreeBSD auf IBM-PC kompatiblen Rechnern la:uft, muss es die PC
   BIOS-Partitionen, die verschieden von den traditionellen
   BSD-Partitionen sind, beru:cksichtigen. Eine PC Platte kann bis zu
   vier BIOS-Partitionen enthalten. Wenn die Platte ausschliesslich
   fu:r FreeBSD verwendet wird, ko:nnen Sie den dedicated Modus
   benutzen, ansonsten muss FreeBSD in eine der BIOS-Partitionen
   installiert werden. In FreeBSD heissen die PC BIOS-Partitionen
   Slices, um sie nicht mit den traditionellen BSD-Partitionen zu
   verwechseln. Sie ko:nnen auch Slices auf einer Platte verwenden,
   die ausschliesslich von FreeBSD benutzt wird, sich aber in einem
   Rechner befindet, der noch ein anderes Betriebssystem installiert
   hat. Dadurch stellen Sie sicher, dass Sie fdisk des anderen
   Betriebssystems noch benutzen ko:nnen.

   Im Fall von Slices wird die Platte als /dev/da1s1e hinzugefu:gt.
   Das heisst: SCSI-Platte, Einheit 1 (die zweite SCSI-Platte), Slice
   1 (PC BIOS-Partition 1) und die e BSD-Partition. Wird die Platte
   ausschliesslich fu:r FreeBSD verwendet ("dangerously dedicated"),
   wird sie einfach als /dev/da1e hinzugefu:gt.

     Anmerkung: Da bsdlabel(8) zum Speichern von Sektoren 32-Bit
     Integer verwendet, ist das Werkzeug in den meisten Fa:llen auf
     2^32-1 Sektoren pro Laufwerk oder 2 TB beschra:nkt. In fdisk(8)
     darf der Startsektor nicht gro:sser als 2^32-1 sein und
     Partitionen sind auf eine La:nge von 2^32-1 beschra:nkt. In den
     meisten Fa:llen beschra:nkt dies die Gro:sse einer Partition auf
     2 TB und die maximale Gro:sse eines Laufwerks auf 4 TB. Das
     sunlabel(8)-Format ist mit 2^32-1 Sektoren pro Partition und
     8 Partitionen auf 16 TB beschra:nkt. Mit gro:sseren Laufwerken
     ko:nnen gpt(8)-Partitionen benutzt werden, um GPT-Partitionen zu
     erstellen. GPT hat den zusa:tzlichen Vorteil, dass es nicht auf
     4 Slices beschra:nkt ist.

     --------------------------------------------------------------

  19.3.1. Verwenden von sysinstall(8)

    1. Das sysinstall Menu:

       Um ein Laufwerk zu partitionieren und zu labeln, kann das
       menu:gestu:tzte sysinstall benutzt werden. Dazu melden Sie
       sich als root an oder benutzen su, um root zu werden. Starten
       Sie sysinstall und wa:hlen das Configure Menu:, wa:hlen Sie
       dort den Punkt Fdisk aus.

    2. Partitionieren mit fdisk

       Innerhalb von fdisk geben Sie A ein, um die ganze Platte fu:r
       FreeBSD zu benutzen. Beantworten Sie die Frage "remain
       cooperative with any future possible operating systems" mit
       YES. W schreibt die A:nderung auf die Platte, danach ko:nnen
       Sie fdisk mit Q verlassen. Da Sie eine Platte zu einem schon
       laufenden System hinzugefu:gt haben, beantworten Sie die Frage
       nach dem Master Boot Record mit None.

    3. Disk-Label-Editor

       Als na:chstes mu:ssen Sie sysinstall verlassen und es erneut
       starten. Folgen Sie dazu bitte den Anweisungen von oben, aber
       wa:hlen Sie dieses Mal die Option Label, um in den Disk Label
       Editor zu gelangen. Hier werden die traditionellen
       BSD-Partitionen erstellt. Ein Laufwerk kann acht Partitionen,
       die mit den Buchstaben a-h gekennzeichnet werden, besitzen.
       Einige Partitionen sind fu:r spezielle Zwecke reserviert. Die
       a Partition ist fu:r die Root-Partition (/) reserviert.
       Deshalb sollte nur das Laufwerk, von dem gebootet wird, eine a
       Partition besitzen. Die b Partition wird fu:r Swap-Partitionen
       benutzt, wobei Sie diese auf mehreren Platten benutzen
       du:rfen. Im "dangerously dedicated" Modus spricht die c
       Partition die gesamte Platte an, werden Slices verwendet, wird
       damit die ganze Slice angesprochen. Die anderen Partitionen
       sind fu:r allgemeine Zwecke verwendbar.

       Der Label Editor von sysinstall bevorzugt die e Partition fu:r
       Partitionen, die weder Root-Partitionen noch Swap-Partitionen
       sind. Im Label Editor ko:nnen Sie ein einzelnes Dateisystem
       mit C erstellen. Wa:hlen Sie FS, wenn Sie gefragt werden, ob
       Sie ein FS (Dateisystem) oder Swap erstellen wollen, und geben
       Sie einen Mountpoint z.B. /mnt an. Wenn Sie nach einer
       FreeBSD-Installation ein Dateisystem mit sysinstall erzeugen,
       so werden die Eintra:ge in /etc/fstab nicht erzeugt, so dass
       die Angabe des Mountpoints nicht wichtig ist.

       Sie ko:nnen nun das Label auf das Laufwerk schreiben und das
       Dateisystem erstellen, indem Sie W dru:cken. Ignorieren Sie
       die Meldung von sysinstall, dass die neue Partition nicht
       angehangen werden konnte, und verlassen Sie den Label Editor
       sowie sysinstall.

    4. Ende

       Im letzten Schritt fu:gen Sie noch in /etc/fstab den Eintrag
       fu:r das neue Laufwerk ein.

     --------------------------------------------------------------

  19.3.2. Die Kommandozeile

    19.3.2.1. Anlegen von Slices

   Mit der folgenden Vorgehensweise wird eine Platte mit anderen
   Betriebssystemen, die vielleicht auf Ihrem Rechner installiert
   sind, zusammenarbeiten und nicht das fdisk Programm anderer
   Betriebssysteme sto:ren. Bitte benutzen Sie den dedicated Modus
   nur dann, wenn Sie dazu einen guten Grund haben!

 # dd if=/dev/zero of=/dev/da1 bs=1k count=1
 # fdisk -BI da1 # Initialisieren der neuen Platte
 # bsdlabel -B -w da1s1 auto #Labeln.
 # bsdlabel -e da1s1 # Editieren des Disklabels und Hinzufu:gen von Partitionen
 # mkdir -p /1
 # newfs /dev/da1s1e # Wiederholen Sie diesen Schritt fu:r jede Partition
 # mount /dev/da1s1e /1 # Anha:ngen der Partitionen
 # vi /etc/fstab # A:ndern Sie /etc/fstab entsprechend

   Wenn Sie ein IDE-Laufwerk besitzen, a:ndern Sie da in ad.

     --------------------------------------------------------------

    19.3.2.2. Dedicated

   Wenn das neue Laufwerk nicht von anderen Betriebssystemen benutzt
   werden soll, ko:nnen Sie es im dedicated Modus betreiben. Beachten
   Sie bitte, dass Microsoft-Betriebssysteme mit diesem Modus
   eventuell nicht zurechtkommen, aber es entsteht kein Schaden am
   Laufwerk. Im Gegensatz dazu wird IBMs OS/2 versuchen, jede ihm
   nicht bekannte Partition zu reparieren.

 # dd if=/dev/zero of=/dev/da1 bs=1k count=1
 # bsdlabel -Bw da1 auto
 # bsdlabel -e da1  # Erstellen der `e' Partition
 # newfs /dev/da1e
 # mkdir -p /1
 # vi /etc/fstab # /dev/da1e hinzufu:gen
 # mount /1

   Eine alternative Methode:

 # dd if=/dev/zero of=/dev/da1 count=2
 # bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin
 # newfs /dev/da1e
 # mkdir -p /1
 # vi /etc/fstab # /dev/da1e hinzufu:gen
 # mount /1

     --------------------------------------------------------------

19.4. RAID

  19.4.1. Software-RAID

    19.4.1.1. Concatenated-Disk (CCD) konfigurieren

   Original von Christopher Shumway. U:berarbeitet von Jim Brown.

   Die wichtigsten Faktoren bei der Auswahl von Massenspeichern sind
   Geschwindigkeit, Zuverla:ssigkeit und Preis. Selten findet sich
   eine ausgewogene Mischung aller drei Faktoren. Schnelle und
   zuverla:ssige Massenspeicher sind fu:r gewo:hnlich teuer. Um die
   Kosten zu senken, muss entweder an der Geschwindigkeit oder an der
   Zuverla:ssigkeit gespart werden.

   Das unten beschriebene System sollte vor allem preiswert sein. Der
   na:chst wichtige Faktor war die Geschwindigkeit gefolgt von der
   Zuverla:ssigkeit. Die Geschwindigkeit war nicht so wichtig, da
   u:ber das Netzwerk auf das System zugegriffen wird. Da alle Daten
   schon auf CD-Rs gesichert sind, war die Zuverla:ssigkeit, obwohl
   wichtig, ebenfalls nicht von entscheidender Bedeutung.

   Die Bewertung der einzelnen Faktoren ist der erste Schritt bei der
   Auswahl von Massenspeichern. Wenn Sie vor allem ein schnelles und
   zuverla:ssiges Medium beno:tigen und der Preis nicht wichtig ist,
   werden Sie ein anderes System als das hier beschriebene
   zusammenstellen.

     --------------------------------------------------------------

      19.4.1.1.1. Installation der Hardware

   Neben der IDE-Systemplatte besteht das System aus drei Western
   Digital IDE-Festplatten mit 5400 RPM und einer Kapazita:t von je
   30 GB. Insgesamt stehen also 90 GB Speicherplatz zur Verfu:gung.
   Im Idealfall sollte jede Festplatte an einen eigenen Controller
   angeschlossen werden. Um Kosten zu sparen, wurde bei diesem System
   darauf verzichtet und an jeden IDE-Controller eine Master- und
   eine Slave-Platte angeschlossen.

   Beim Reboot wurde das BIOS so konfiguriert, dass es die
   angeschlossenen Platten automatisch erkennt und FreeBSD erkannte
   die Platten ebenfalls:

 ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33
 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33
 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33
 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33

     Anmerkung: Wenn FreeBSD die Platten nicht erkennt, u:berpru:fen
     Sie, ob die Jumper korrekt konfiguriert sind. Die meisten
     IDE-Festplatten verfu:gen u:ber einen "Cable Select"-Jumper. Die
     Master- und Slave-Platten werden mit einem anderen Jumper
     konfiguriert. Bestimmen Sie den richtigen Jumper mithilfe der
     Dokumentation Ihrer Festplatte.

   Als na:chstes sollten Sie u:berlegen, auf welche Art der Speicher
   zur Verfu:gung gestellt werden soll. Schauen Sie sich dazu
   vinum(4) (Kapitel 22) und ccd(4) an. Im hier beschriebenen System
   wird ccd(4) eingesetzt.

     --------------------------------------------------------------

      19.4.1.1.2. Konfiguration von CCD

   Mit ccd(4) ko:nnen mehrere gleiche Platten zu einem logischen
   Dateisystem zusammengefasst werden. Um ccd(4) zu benutzen, muss
   der Kernel mit der entsprechenden Unterstu:tzung u:bersetzt
   werden. Erga:nzen Sie die Kernelkonfiguration um die nachstehende
   Zeile. Anschliessend mu:ssen Sie den Kernel neu u:bersetzen und
   installieren.

 pseudo-device   ccd

   Alternativ kann ccd(4) auch als Kernelmodul geladen werden.

   Um ccd(4) zu benutzen, mu:ssen die Laufwerke zuerst mit einem
   Label versehen werden. Die Label werden mit bsdlabel(8) erstellt:

 bsdlabel -w ad1 auto
 bsdlabel -w ad2 auto
 bsdlabel -w ad3 auto

   Damit wurden die Label ad1c, ad2c und ad3c erstellt, die jeweils
   das gesamte Laufwerk umfassen.

   Im na:chsten Schritt muss der Typ des Labels gea:ndert werden. Die
   Labels ko:nnen Sie mit bsdlabel(8) editieren:

 bsdlabel -e ad1
 bsdlabel -e ad2
 bsdlabel -e ad3

   Fu:r jedes Label startet dies den durch EDITOR gegebenen Editor,
   typischerweise vi(1).

   Ein unvera:ndertes Label sieht zum Beispiel wie folgt aus:

 8 partitions:
 #        size   offset    fstype   [fsize bsize bps/cpg]
   c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)

   Erstellen Sie eine e-Partition fu:r ccd(4). Dazu ko:nnen Sie
   normalerweise die Zeile der c-Partition kopieren, allerdings muss
   fstype auf 4.2BSD gesetzt werden. Das Ergebnis sollte wie folgt
   aussehen:

 8 partitions:
 #        size   offset    fstype   [fsize bsize bps/cpg]
   c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)
   e: 60074784        0    4.2BSD        0     0     0   # (Cyl.    0 - 59597)

     --------------------------------------------------------------

      19.4.1.1.3. Erstellen des Dateisystems

   Nachdem alle Platten ein Label haben, kann das ccd(4)-RAID
   aufgebaut werden. Dies geschieht mit ccdconfig(8):

 ccdconfig ccd0(1) 32(2) 0(3) /dev/ad1e(4) /dev/ad2e /dev/ad3e

   Die folgende Aufstellung erkla:rt die verwendeten
   Kommandozeilenargumente:

   (1)
           Das erste Argument gibt das zu konfigurierende Gera:t,
           hier /dev/ccd0c, an. Die Angabe von /dev/ ist dabei
           optional.
   (2)
           Der Interleave fu:r das Dateisystem. Der Interleave
           definiert die Gro:sse eines Streifens in Blo:cken, die
           normal 512 Bytes gross sind. Ein Interleave von 32 ist
           demnach 16384 Bytes gross.
   (3)
           Weitere Argumente fu:r ccdconfig(8). Wenn Sie spiegeln
           wollen, ko:nnen Sie das hier angeben. Die gezeigte
           Konfiguration verwendet keine Spiegel, sodass der Wert 0
           angegeben ist.
   (4)
           Das letzte Argument gibt die Gera:te des Plattenverbundes
           an. Benutzen Sie fu:r jedes Gera:t den kompletten
           Pfadnamen.

   Nach Abschluss von ccdconfig(8) ist der Plattenverbund
   konfiguriert und es ko:nnen Dateisysteme auf dem Plattenverbund
   angelegt werden. Das Anlegen von Dateisystemen wird in der
   Hilfeseite newfs(8) beschrieben. Fu:r das Beispiel genu:gt der
   folgende Befehl:

 newfs /dev/ccd0c

     --------------------------------------------------------------

      19.4.1.1.4. Automatisierung

   Damit ccd(4) beim Start automatisch aktiviert wird, ist die Datei
   /etc/ccd.conf mit dem folgenden Kommando zu erstellen:

 ccdconfig -g > /etc/ccd.conf

   Wenn /etc/ccd.conf existiert, wird beim Reboot ccdconfig -C von
   /etc/rc aufgerufen. Damit wird ccd(4) eingerichtet und die darauf
   befindlichen Dateisysteme ko:nnen angeha:ngt werden.

     Anmerkung: Wenn Sie in den Single-User Modus booten, mu:ssen Sie
     den Verbund erst konfigurieren, bevor Sie darauf befindliche
     Dateisysteme anha:ngen ko:nnen:

 ccdconfig -C

   In /etc/fstab ist noch ein Eintrag fu:r das auf dem Verbund
   befindliche Dateisystem zu erstellen, damit dieses beim Start des
   Systems immer angeha:ngt wird:

 /dev/ccd0c              /media       ufs     rw      2       2

     --------------------------------------------------------------

    19.4.1.2. Der Vinum-Volume-Manager

   Der Vinum Volume Manager ist ein Block-Gera:tetreiber, der
   virtuelle Platten zur Verfu:gung stellt. Er trennt die Verbindung
   zwischen der Festplatte und dem zugeho:rigen Block-Gera:t auf. Im
   Gegensatz zur konventionellen Aufteilung einer Platte in Slices
   lassen sich dadurch Daten flexibler, leistungsfa:higer und
   zuverla:ssiger verwalten. vinum(4) stellt RAID-0, RAID-1 und
   RAID-5 sowohl einzeln wie auch in Kombination zur Verfu:gung.

   Mehr Informationen u:ber vinum(4) erhalten Sie in Kapitel 22.

     --------------------------------------------------------------

  19.4.2. Hardware-RAID

   FreeBSD unterstu:tzt eine Reihe von RAID-Controllern. Diese
   Gera:te verwalten einen Plattenverbund; zusa:tzliche Software wird
   nicht beno:tigt.

   Der Controller steuert mithilfe eines BIOS auf der Karte die
   Plattenoperationen. Wie ein RAID System eingerichtet wird, sei
   kurz am Beispiel des Promise IDE RAID-Controllers gezeigt. Nachdem
   die Karte eingebaut ist und der Rechner neu gestartet wurde,
   erscheint eine Eingabeaufforderung. Wenn Sie den Anweisungen auf
   dem Bildschirm folgen, gelangen Sie in eine Maske, in der Sie mit
   den vorhandenen Festplatten ein RAID-System aufbauen ko:nnen.
   FreeBSD behandelt das RAID-System wie eine einzelne Festplatte.

     --------------------------------------------------------------

  19.4.3. Wiederherstellen eines ATA-RAID-1 Verbunds

   Mit FreeBSD ko:nnen Sie eine ausgefallene Platte in einem
   RAID-Verbund wa:hrend des Betriebs auswechseln, vorausgesetzt Sie
   bemerken den Ausfall vor einem Neustart.

   Einen Ausfall erkennen Sie, wenn in der Datei /var/log/messages
   oder in der Ausgabe von dmesg(8) Meldungen wie die folgenden
   auftauchen:

 ad6 on monster1 suffered a hard error.
 ad6: READ command timeout tag=0 serv=0 - resetting
 ad6: trying fallback to PIO mode
 ata3: resetting devices .. done
 ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
 status=59 error=40
 ar0: WARNING - mirror lost

   U:berpru:fen Sie den RAID-Verbund mit atacontrol(8):

 # atacontrol list
 ATA channel 0:
         Master:      no device present
         Slave:   acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0

 ATA channel 1:
         Master:      no device present
         Slave:       no device present

 ATA channel 2:
         Master:  ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
         Slave:       no device present

 ATA channel 3:
         Master:  ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
         Slave:       no device present

 # atacontrol status ar0
 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED

    1. Damit Sie die Platte ausbauen ko:nnen, muss zuerst der
       ATA-Channel der ausgefallenen Platte aus dem Verbund entfernt
       werden:

 # atacontrol detach ata3

    2. Ersetzen Sie dann die Platte.

    3. Nun aktivieren Sie den ATA-Channel wieder:

 # atacontrol attach ata3
 Master:  ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5
 Slave:   no device present

    4. Nehmen Sie die neue Platte in den Verbund auf:

 # atacontrol addspare ar0 ad6

    5. Stellen Sie die Organisation des Verbunds wieder her:

 # atacontrol rebuild ar0

    6. Sie ko:nnen den Fortschritt des Prozesses durch folgende
       Befehle kontrollieren:

 # dmesg | tail -10
 [output removed]
 ad6: removed from configuration
 ad6: deleted from ar0 disk1
 ad6: inserted into ar0 disk1 as spare

 # atacontrol status ar0
 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed

    7. Warten Sie bis die Wiederherstellung beendet ist.

     --------------------------------------------------------------

19.5. USB Speichermedien

   Beigetragen von Marc Fonvieille.

   Der Universal Serial Bus (USB) wird heutzutage von vielen externen
   Speichern benutzt: Festplatten, USB-Thumbdrives oder CD-Brennern,
   die alle von FreeBSD unterstu:tzt werden.

     --------------------------------------------------------------

  19.5.1. USB-Konfiguration

   USB-Massenspeicher werden vom Treiber umass(4) betrieben. Wenn Sie
   den GENERIC-Kernel benutzen, brauchen Sie keine Anpassungen
   vorzunehmen. Benutzen Sie einen angepassten Kernel, mu:ssen die
   nachstehenden Zeilen in der Kernelkonfigurationsdatei enthalten
   sein:

 device scbus
 device da
 device pass
 device uhci
 device ohci
 device ehci
 device usb
 device umass

   Der Treiber umass(4) greift u:ber das SCSI-Subsystem auf die
   USB-Gera:te zu. Ihre USB-Gera:te werden daher vom System als
   SCSI-Gera:te erkannt. Abha:ngig vom Chipsatz Ihrer Systemplatine
   beno:tigen Sie in der Kernelkonfiguration entweder die Option
   device uhci oder die Option device ohci fu:r die Unterstu:tzung
   von USB 1.1. Die Kernelkonfiguration kann allerdings auch beide
   Optionen enthalten. Unterstu:tzung fu:r USB 2.0 Controller wird
   durch den ehci(4)-Treiber geleistet (die device ehci Zeile).
   Vergessen Sie bitte nicht, einen neuen Kernel zu bauen und zu
   installieren, wenn Sie die Kernelkonfiguration vera:ndert haben.

     Anmerkung: Wenn es sich bei Ihrem USB-Gera:t um einen CD-R- oder
     DVD-Brenner handelt, mu:ssen Sie den Treiber cd(4) fu:r
     SCSI-CD-ROMs in die Kernelkonfiguration aufnehmen:

 device cd

     Da der Brenner als SCSI-Laufwerk erkannt wird, sollten Sie den
     Treiber atapicam(4) nicht benutzen.

     --------------------------------------------------------------

  19.5.2. Die USB-Konfiguration testen

   Sie ko:nnen das USB-Gera:t nun testen. Schliessen Sie das Gera:t
   an und untersuchen Sie die Systemmeldungen (dmesg(8)), Sie sehen
   Ausgaben wie die folgende:

 umass0: USB Solid state disk, rev 1.10/1.00, addr 2
 GEOM: create disk da0 dp=0xc2d74850
 da0 at umass-sim0 bus 0 target 0 lun 0
 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
 da0: 1.000MB/s transfers
 da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

   Die Ausgaben, wie das erkannte Gera:t oder der Gera:tename (da0)
   ha:ngen natu:rlich von Ihrer Konfiguration ab.

   Da ein USB-Gera:t als SCSI-Gera:t erkannt wird, ko:nnen Sie
   USB-Massenspeicher mit dem Befehl camcontrol anzeigen:

 # camcontrol devlist
 <Generic Traveling Disk 1.11>      at scbus0 target 0 lun 0 (da0,pass0)

   Wenn auf dem Laufwerk ein Dateisystem eingerichtet ist, sollten
   Sie das Dateisystem einha:ngen ko:nnen. Abschnitt 19.3 beschreibt,
   wie Sie USB-Laufwerke formatieren und Partitionen einrichten.

     Warnung: Aus Sicherheitsgru:nden sollten Sie Benutzern, denen
     Sie nicht vertrauen, das Einha:ngen (z.B. durch die unten
     beschriebene Aktivierung von vfs.usermount) beliebiger Medien
     verbieten. Die meisten Dateisysteme in FreeBSD wurden nicht
     entwickelt, um sich vor bo:swilligen Gera:ten zu schu:tzen.

   Damit auch normale Anwender (ohne root-Rechte) USB-Laufwerke
   einha:ngen ko:nnen, mu:ssen Sie Ihr System erst entsprechend
   konfigurieren. Als erstes mu:ssen Sie sicherstellen, dass diese
   Anwender auf die beim Einha:ngen eines USB-Laufwerks dynamisch
   erzeugten Gera:tedateien zugreifen du:rfen. Dazu ko:nnen Sie
   beispielsweise mit pw(8) alle potentiellen Benutzer dieser
   Gera:tedateien in die Gruppe operator aufnehmen. Ausserdem muss
   sichergestellt werden, dass Mitglieder der Gruppe operator
   Schreib- und Lesezugriff auf diese Gera:tedateien haben. Dazu
   fu:gen Sie die folgenden Zeilen in die Konfigurationsdatei
   /etc/devfs.rules ein:

 [localrules=5]
 add path 'da*' mode 0660 group operator

     Anmerkung: Verfu:gt Ihr System auch u:ber SCSI-Laufwerke, gibt
     es eine Besonderheit. Haben Sie beispielsweise die
     SCSI-Laufwerke da0 bis da2 installiert, so sieht die zweite
     Zeile wie folgt aus:

 add path 'da[3-9]*' mode 0660 group operator

     Dadurch werden die bereits vorhandenen SCSI-Laufwerke nicht in
     die Gruppe operator aufgenommen.

   Vergessen Sie nicht, die devfs.rules(5)-Regeln in der Datei
   /etc/rc.conf zu aktivieren:

 devfs_system_ruleset="localrules"

   Als na:chstes mu:ssen Sie Ihre Kernelkonfiguration anpassen, damit
   auch normale Benutzer Dateisysteme mounten du:rfen. Dazu fu:gen
   Sie am besten folgende Zeile in die Konfigurationsdatei
   /etc/sysctl.conf ein:

 vfs.usermount=1

   Damit diese Einstellung wirksam wird, mu:ssen Sie Ihr System neu
   starten. Alternativ ko:nnen Sie diese Variable auch mit sysctl(8)
   setzen.

   Zuletzt mu:ssen Sie noch ein Verzeichnis anlegen, in das das
   USB-Laufwerk eingeha:ngt werden soll. Dieses Verzeichnis muss dem
   Benutzer geho:ren, der das USB-Laufwerk in den Verzeichnisbaum
   einha:ngen will. Dazu legen Sie als root ein Unterverzeichnis
   /mnt/username an (wobei Sie username durch den Login des
   jeweiligen Benutzers sowie usergroup durch die prima:re Gruppe des
   Benutzers ersetzen):

 # mkdir /mnt/username
  # chown username:usergroup /mnt/username

   Wenn Sie nun beispielsweise einen USB-Stick anschliessen, wird
   automatisch die Gera:tedatei /dev/da0s1 erzeugt. Da derartige
   Gera:te in der Regel mit dem FAT-Dateisystem formatiert sind,
   ko:nnen Sie sie beispielsweise mit dem folgenden Befehl in den
   Verzeichnisbaum einha:ngen:

 % mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username

   Wenn Sie das Gera:t entfernen (das Dateisystem mu:ssen Sie vorher
   abha:ngen), sehen Sie in den Systemmeldungen Eintra:ge wie die
   folgenden:

 umass0: at uhub0 port 1 (addr 2) disconnected
 (da0:umass-sim0:0:0:0): lost device
 (da0:umass-sim0:0:0:0): removing device entry
 GEOM: destroy disk da0 dp=0xc2d74850
 umass0: detached

     --------------------------------------------------------------

  19.5.3. Weiteres zu USB

   Neben den Abschnitten Hinzufu:gen von Laufwerken und Anha:ngen und
   Abha:ngen von Dateisystemen lesen Sie bitte die Hilfeseiten
   umass(4), camcontrol(8) fu:r FreeBSD 8.X oder usbdevs(8) bei
   vorherigen Versionen.

     --------------------------------------------------------------

19.6. CDs benutzen

   Beigesteuert von Mike Meyer.

     --------------------------------------------------------------

  19.6.1. Einfu:hrung

   CDs besitzen einige Eigenschaften, die sie von konventionellen
   Laufwerken unterscheiden. Zuerst konnten sie nicht beschrieben
   werden. Sie wurden so entworfen, dass sie ununterbrochen, ohne
   Verzo:gerungen durch Kopfbewegungen zwischen den Spuren, gelesen
   werden ko:nnen. Sie konnten fru:her auch leichter als vergleichbar
   grosse Medien zwischen Systemen bewegt werden.

   CDs besitzen Spuren, aber damit ist der Teil Daten gemeint, der
   ununterbrochen gelesen wird, und nicht eine physikalische
   Eigenschaft der CD. Um eine CD mit FreeBSD zu erstellen, werden
   die Daten jeder Spur der CD in Dateien vorbereitet und dann die
   Spuren auf die CD geschrieben.

   Das ISO 9660-Dateisystem wurde entworfen, um mit diesen
   Unterschieden umzugehen. Leider hat es auch damals u:bliche
   Grenzen fu:r Dateisysteme implementiert. Glu:cklicherweise
   existiert ein Erweiterungsmechanismus, der es korrekt
   geschriebenen CDs erlaubt, diese Grenzen zu u:berschreiten und
   dennoch auf Systemen zu funktionieren, die diese Erweiterungen
   nicht unterstu:tzen.

   Der Port sysutils/cdrtools entha:lt das Programm mkisofs(8), das
   eine Datei erstellt, die ein ISO 9660-Dateisystem entha:lt. Das
   Programm hat Optionen, um verschiedene Erweiterungen zu
   unterstu:tzen, und wird unten beschrieben.

   Welches Tool Sie zum Brennen von CDs benutzen, ha:ngt davon ab, ob
   Ihr CD-Brenner ein ATAPI-Gera:t ist oder nicht. Mit
   ATAPI-CD-Brennern wird  burncd benutzt, das Teil des Basissystems
   ist. SCSI- und USB-CD-Brenner werden mit cdrecord aus
   sysutils/cdrtools benutzt. Zusa:tzlich ist es mo:glich, u:ber das
   Modul ATAPI/CAM SCSI-Werkzeuge wie cdrecord auch fu:r
   ATAPI-Gera:te einzusetzen.

   Wenn Sie eine Brennsoftware mit grafischer Benutzeroberfla:che
   beno:tigen, sollten Sie sich X-CD-Roast oder K3b na:her ansehen.
   Diese Werkzeuge ko:nnen als Paket oder aus den Ports
   (sysutils/xcdroast und sysutils/k3b) installiert werden. Mit
   ATAPI-Hardware beno:tigt K3b das ATAPI/CAM-Modul.

     --------------------------------------------------------------

  19.6.2. mkisofs

   Das Programm mkisofs(8) aus dem Port sysutils/cdrtools erstellt
   ein ISO 9660-Dateisystem, das ein Abbild eines Verzeichnisbaumes
   ist. Die einfachste Anwendung ist wie folgt:

 # mkisofs -o Imagedatei /path/to/tree

   Dieses Kommando erstellt eine Imagedatei, die ein ISO
   9660-Dateisystem entha:lt, das eine Kopie des Baumes unter
   /path/to/tree ist. Dabei werden die Dateinamen auf Namen
   abgebildet, die den Restriktionen des ISO 9660-Dateisystems
   entsprechen. Dateien mit Namen, die im ISO 9660-Dateisystem nicht
   gu:ltig sind, bleiben unberu:cksichtigt.

   Es einige Optionen, um diese Beschra:nkungen zu u:berwinden. Die
   unter UNIX Systemen u:blichen Rock-Ridge-Erweiterungen werden
   durch -R aktiviert, -J aktiviert die von Microsoft Systemen
   benutzten Joliet-Erweiterungen und -hfs dient dazu, um das von
   Mac OS benutzte HFS zu erstellen.

   Fu:r CDs, die nur auf FreeBSD-Systemen verwendet werden sollen,
   kann -U genutzt werden, um alle Beschra:nkungen fu:r Dateinamen
   aufzuheben. Zusammen mit -R wird ein Abbild des Dateisystems,
   ausgehend von dem Startpunkt im FreeBSD-Dateibaum, erstellt,
   obwohl dies den ISO 9660 Standard verletzen kann.

   Die letzte u:bliche Option ist -b. Sie wird benutzt, um den Ort
   eines Bootimages einer "El Torito" bootbaren CD anzugeben. Das
   Argument zu dieser Option ist der Pfad zu einem Bootimage
   ausgehend von der Wurzel des Baumes, der auf die CD geschrieben
   werden soll. In der Voreinstellung erzeugt mkisofs(8) ein
   ISO-Image im "Diskettenemulations"-Modus. Dabei muss das Image
   genau 1200, 1440 oder 2880 KB gross sein. Einige Bootloader,
   darunter der auf den FreeBSD-Disks verwendete, kennen keinen
   Emulationsmodus. Daher sollten Sie in diesen Fa:llen die Option
   -no-emul-boot verwenden. Wenn /tmp/myboot ein bootbares
   FreeBSD-System entha:lt, dessen Bootimage sich in
   /tmp/myboot/boot/cdboot befindet, ko:nnen Sie ein Abbild eines ISO
   9660-Dateisystems in /tmp/bootable.iso wie folgt erstellen:

 # mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot

   Wenn Sie md in Ihrem Kernel konfiguriert haben, ko:nnen Sie danach
   das Dateisystem einha:ngen:

 # mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
 # mount -t cd9660 /dev/md0 /mnt

   Jetzt ko:nnen Sie u:berpru:fen, dass /mnt und /tmp/myboot
   identisch sind.

   Sie ko:nnen das Verhalten von mkisofs(8) mit einer Vielzahl von
   Optionen beeinflussen. Insbesondere ko:nnen Sie das ISO
   9660-Dateisystem modifizieren und Joliet- oder HFS-Dateisysteme
   brennen. Details dazu entnehmen Sie bitte der Hilfeseite
   mkisofs(8).

     --------------------------------------------------------------

  19.6.3. burncd

   Wenn Sie einen ATAPI-CD-Brenner besitzen, ko:nnen Sie burncd
   benutzen, um ein ISO-Image auf CD zu brennen. burncd ist Teil des
   Basissystems und unter /usr/sbin/burncd installiert. Da es nicht
   viele Optionen hat, ist es leicht zu benutzen:

 # burncd -f cddevice data imagefile.iso fixate

   Dieses Kommando brennt eine Kopie von imagefile.iso auf das Gera:t
   cddevice. In der Grundeinstellung wird das Gera:t /dev/acd0
   benutzt. burncd(8) beschreibt, wie die Schreibgeschwindigkeit
   gesetzt wird, die CD ausgeworfen wird und Audiodaten geschrieben
   werden.

     --------------------------------------------------------------

  19.6.4. cdrecord

   Wenn Sie keinen ATAPI-CD-Brenner besitzen, benutzen Sie cdrecord,
   um CDs zu brennen. cdrecord ist nicht Bestandteil des
   Basissystems. Sie mu:ssen es entweder aus den Ports in
   sysutils/cdrtools oder dem passenden Paket installieren.
   A:nderungen im Basissystem ko:nnen Fehler im bina:ren Programm
   verursachen und fu:hren mo:glicherweise dazu, dass Sie einen
   "Untersetzer" brennen. Sie sollten daher den Port aktualisieren,
   wenn Sie Ihr System aktualisieren bzw. wenn Sie STABLE verfolgen,
   den Port aktualisieren, wenn es eine neue Version gibt.

   Obwohl cdrecord viele Optionen besitzt, ist die grundlegende
   Anwendung einfacher als burncd. Ein ISO 9660-Image erstellen Sie
   mit:

 # cdrecord dev=device imagefile.iso

   Der Knackpunkt in der Benutzung von cdrecord besteht darin, das
   richtige Argument zu dev zu finden. Benutzen Sie dazu den Schalter
   -scanbus von cdrecord, der eine a:hnliche Ausgabe wie die folgende
   produziert:

 # cdrecord -scanbus
 Cdrecord 1.9 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 Jo:rg Schilling
 Using libscg version 'schily-0.1'
 scsibus0:
         0,0,0     0) 'SEAGATE ' 'ST39236LW       ' '0004' Disk
         0,1,0     1) 'SEAGATE ' 'ST39173W        ' '5958' Disk
         0,2,0     2) *
         0,3,0     3) 'iomega  ' 'jaz 1GB         ' 'J.86' Removable Disk
         0,4,0     4) 'NEC     ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
         0,5,0     5) *
         0,6,0     6) *
         0,7,0     7) *
 scsibus1:
         1,0,0   100) *
         1,1,0   101) *
         1,2,0   102) *
         1,3,0   103) *
         1,4,0   104) *
         1,5,0   105) 'YAMAHA  ' 'CRW4260         ' '1.0q' Removable CD-ROM
         1,6,0   106) 'ARTEC   ' 'AM12S           ' '1.06' Scanner
         1,7,0   107) *

   Fu:r die aufgefu:hrten Gera:te in der Liste wird das passende
   Argument zu dev gegeben. Benutzen Sie die drei durch Kommas
   separierten Zahlen, die zu Ihrem CD-Brenner angegeben sind, als
   Argument fu:r dev. Im Beispiel ist das CDRW-Gera:t 1,5,0, so dass
   die passende Eingabe dev=1,5,0 wa:re. Einfachere Wege das Argument
   anzugeben, sind in cdrecord(1) beschrieben. Dort sollten Sie auch
   nach Informationen u:ber Audiospuren, das Einstellen der
   Geschwindigkeit und a:hnlichem suchen.

     --------------------------------------------------------------

  19.6.5. Kopieren von Audio-CDs

   Um eine Kopie einer Audio-CD zu erstellen, kopieren Sie die
   Stu:cke der CD in einzelne Dateien und brennen diese Dateien dann
   auf eine leere CD. Das genaue Verfahren ha:ngt davon ab, ob Sie
   ATAPI- oder SCSI-Laufwerke verwenden.

   SCSI-Laufwerke

    1. Kopieren Sie die Audiodaten mit cdda2wav:

 % cdda2wav -vall -D2,0 -B -Owav

    2. Die erzeugten .wav Dateien schreiben Sie mit cdrecord auf eine
       leere CD:

 % cdrecord -v dev=2,0 -dao -useinfo  *.wav

       Das Argument von dev gibt das verwendete Gera:t an, das Sie,
       wie in Abschnitt 19.6.4 beschrieben, ermitteln ko:nnen.

   ATAPI-Laufwerke

     Anmerkung: U:ber das Modul ATAPI/CAM kann cdda2wav auch mit
     ATAPI-Laufwerken verwendet werden. Diese Methode ist fu:r die
     meisten Anwender besser geeignet als die im folgenden
     beschriebenen Methoden (Jitter-Korrektur,
     Big-/Little-Endian-Probleme und anderes mehr spielen hierbei
     eine Rolle).

    1. Der ATAPI-CD-Treiber stellt die einzelnen Stu:cke der CD u:ber
       die Dateien /dev/acddtnn, zur Verfu:gung. d bezeichnet die
       Laufwerksnummer und nn ist die Nummer des Stu:cks. Die Nummer
       ist immer zweistellig, das heisst es wird, wenn no:tig, eine
       fu:hrende Null ausgegeben. Die Datei /dev/acd0t01 ist also das
       erste Stu:ck des ersten CD-Laufwerks. /dev/acd0t02 ist das
       zweite Stu:ck und /dev/acd0t03 das dritte.

       U:berpru:fen Sie stets, ob die entsprechenden Dateien im
       Verzeichnis /dev auch angelegt werden. Sind die Eintra:ge
       nicht vorhanden, weisen Sie Ihr System an, das Medium erneut
       zu testen:

 # dd if=/dev/acd0 of=/dev/null count=1

         Anmerkung: Unter FreeBSD 4.X werden diese Eintra:ge nicht
         mit dem Wert Null vordefiniert. Falls die entsprechenden
         Eintra:ge unter /dev nicht vorhanden sind, mu:ssen Sie diese
         hier von MAKEDEV anlegen lassen:

 # cd /dev
 # sh MAKEDEV acd0t99

    2. Die einzelnen Stu:cke kopieren Sie mit dd(1). Sie mu:ssen dazu
       eine spezielle Blockgro:sse angeben:

 # dd if=/dev/acd0t01 of=track1.cdr bs=2352
 # dd if=/dev/acd0t02 of=track2.cdr bs=2352
 ...

    3. Die kopierten Dateien ko:nnen Sie dann mit burncd brennen. Auf
       der Kommandozeile mu:ssen Sie angeben, dass Sie Audio-Daten
       brennen wollen und dass das Medium fixiert werden soll:

 # burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate

     --------------------------------------------------------------

  19.6.6. Kopieren von Daten-CDs

   Sie ko:nnen eine Daten-CD in eine Datei kopieren, die einem Image
   entspricht, das mit mkisofs(8) erstellt wurde. Mit Hilfe dieses
   Images ko:nnen Sie jede Daten-CD kopieren. Das folgende Beispiel
   verwendet acd0 fu:r das CD-ROM-Gera:t. Wenn Sie ein anderes
   Laufwerk benutzen, setzen Sie bitte den richtigen Namen ein.

 # dd if=/dev/acd0 of=file.iso bs=2048

   Danach haben Sie ein Image, das Sie wie oben beschrieben, auf eine
   CD brennen ko:nnen.

     --------------------------------------------------------------

  19.6.7. Einha:ngen von Daten-CDs

   Nachdem Sie eine Daten-CD gebrannt haben, wollen Sie
   wahrscheinlich auch die Daten auf der CD lesen. Dazu mu:ssen Sie
   die CD in den Dateibaum einha:ngen. Die Voreinstellung fu:r den
   Typ des Dateisystems von mount(8) ist UFS. Das System wird die
   Fehlermeldung "Incorrect super block" ausgeben, wenn Sie
   versuchen, die CD mit dem folgenden Kommando einzuha:ngen:

 # mount /dev/cd0 /mnt

   Auf der CD befindet sich ja kein UFS Dateisystem, so dass der
   Versuch, die CD einzuha:ngen fehlschla:gt. Sie mu:ssen mount(8)
   sagen, dass es ein Dateisystem vom Typ ISO9660 verwenden soll.
   Dies erreichen Sie durch die Angabe von -t cd9660 auf der
   Kommandozeile. Wenn Sie also die CD-ROM /dev/cd0 in /mnt
   einha:ngen wollen, fu:hren Sie folgenden Befehl aus:

 # mount -t cd9660 /dev/cd0c /mnt

   Abha:ngig vom verwendeten CD-ROM kann der Gera:tename von dem im
   Beispiel (/dev/cd0) abweichen. Die Angabe von -t cd9660 fu:hrt
   mount_cd9660(8) aus, so dass das Beispiel verku:rzt werden kann:

 # mount_cd9660 /dev/cd0 /mnt

   Auf diese Weise ko:nnen Sie Daten-CDs von jedem Hersteller
   verwenden. Es kann allerdings zu Problemen mit CDs kommen, die
   verschiedene ISO9660-Erweiterungen benutzen. So speichern
   Joliet-CDs alle Dateinamen unter Verwendung von zwei Byte langen
   Unicode-Zeichen. Zwar unterstu:tzt der FreeBSD-Kernel derzeit noch
   kein Unicode, der CD9660-Treiber erlaubt es aber, zur Laufzeit
   eine Konvertierungstabelle zu laden. Tauchen bei Ihnen also statt
   bestimmter Zeichen nur Fragezeichen auf, so mu:ssen Sie u:ber die
   Option -C den beno:tigten Zeichensatz angeben. Weitere
   Informationen zu diesem Problem finden Sie in der Manualpage
   mount_cd9660(8).

     Anmerkung: Damit der Kernel diese Zeichenkonvertierung
     (festgelegt durch die Option -C) erkennt, mu:ssen Sie das
     Kernelmodul cd9660_iconv.ko laden. Dazu fu:gen Sie folgende
     Zeile in die Datei loader.conf ein:

 cd9660_iconv_load="YES"

     Danach mu:ssen Sie allerdings Ihr System neu starten. Alternativ
     ko:nnen Sie das Kernelmodul auch direkt u:ber kldload(8) laden.

   Manchmal werden Sie die Meldung "Device not configured" erhalten,
   wenn Sie versuchen, eine CD-ROM einzuha:ngen. Fu:r gewo:hnlich
   liegt das daran, dass das Laufwerk meint es sei keine CD
   eingelegt, oder dass das Laufwerk auf dem Bus nicht erkannt wird.
   Es kann einige Sekunden dauern, bevor das Laufwerk merkt, dass
   eine CD eingelegt wurde. Seien Sie also geduldig.

   Manchmal wird ein SCSI-CD-ROM nicht erkannt, weil es keine Zeit
   hatte, auf das Zuru:cksetzen des Busses zu antworten. Wenn Sie ein
   SCSI-CD-ROM besitzen, sollten Sie die folgende Zeile in Ihre
   Kernelkonfiguration aufnehmen und einen neuen Kernel bauen:

 options SCSI_DELAY=15000

   Die Zeile bewirkt, dass nach dem Zuru:cksetzen des SCSI-Busses
   beim Booten 15 Sekunden gewartet wird, um dem CD-ROM-Laufwerk
   genu:gend Zeit zu geben, darauf zu antworten.

     --------------------------------------------------------------

  19.6.8. Brennen von rohen CDs

   Sie ko:nnen eine Datei auch direkt auf eine CD brennen, ohne
   vorher auf ihr ein ISO 9660-Dateisystem einzurichten. Einige Leute
   nutzen dies, um Datensicherungen durchzufu:hren. Diese
   Vorgehensweise hat den Vorteil, dass Sie schneller als das Brennen
   einer normalen CD ist.

 # burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate

   Wenn Sie die Daten von einer solchen CD wieder zuru:ckbekommen
   wollen, mu:ssen Sie sie direkt von dem rohen Gera:t lesen:

 # tar xzvf /dev/acd1

   Eine auf diese Weise gefertigte CD ko:nnen Sie nicht in das
   Dateisystem einha:ngen. Sie ko:nnen Sie auch nicht auf einem
   anderen Betriebssystem lesen. Wenn Sie die erstellten CDs in das
   Dateisystem einha:ngen oder mit anderen Betriebssystemen
   austauschen wollen, mu:ssen Sie mkisofs(8) wie oben beschrieben
   benutzen.

     --------------------------------------------------------------

  19.6.9. Der ATAPI/CAM Treiber

   Beigetragen von Marc Fonvieille.

   Mit diesem Treiber kann auf ATAPI-Gera:te (wie CD-ROM-, CD-RW-
   oder DVD-Laufwerke) mithilfe des SCSI-Subsystems zugegriffen
   werden. Damit ko:nnen Sie SCSI-Werkzeuge, wie sysutils/cdrdao oder
   cdrecord(1), zusammen mit einem ATAPI-Gera:t benutzen.

   Wenn Sie den Treiber benutzen wollen, fu:gen Sie die folgende
   Zeile in /boot/loader.conf ein:

 atapicam_load="YES"

   Danach mu:ssen Sie Ihr System neu starten, um den Treiber zu
   aktivieren.

     Anmerkung: Alternativ ko:nnen Sie die Unterstu:tzung fu:r
     atapicam(4) auch in Ihren Kernel kompilieren. Dazu fu:gen Sie
     die folgende Zeile in Ihre Kernelkonfigurationsdatei ein:

 device atapicam

     Die folgenden Zeilen werden ebenfalls beno:tigt, sollten aber
     schon Teil der Kernelkonfiguration sein:

 device ata
 device scbus
 device cd
 device pass

   U:bersetzen und installieren Sie den neuen Kernel. Der CD-Brenner
   sollte nun beim Neustart des Systems erkannt werden:

 acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4
 cd0 at ata1 bus 0 target 0 lun 0
 cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device
 cd0: 16.000MB/s transfers
 cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed

   U:ber den Gera:tenamen /dev/cd0 ko:nnen Sie nun auf das Laufwerk
   zugreifen. Wenn Sie beispielsweise eine CD-ROM in /mnt einha:ngen
   wollen, benutzen Sie das nachstehende Kommando:

 # mount -t cd9660 /dev/cd0 /mnt

   Die SCSI-Adresse des Brenners ko:nnen Sie als root wie folgt
   ermitteln:

 # camcontrol devlist
 <MATSHITA CDRW/DVD UJDA740 1.00>   at scbus1 target 0 lun 0 (pass0,cd0)

   Die SCSI-Adresse 1,0,0 ko:nnen Sie mit den SCSI-Werkzeugen, zum
   Beispiel cdrecord(1), verwenden.

   Weitere Informationen u:ber das ATAPI/CAM- und das SCSI-System
   erhalten Sie in den Hilfeseiten atapicam(4) und cam(4).

     --------------------------------------------------------------

19.7. DVDs benutzen

   Beigetragen von Marc Fonvieille. Mit Beitra:gen von Andy Polyakov.

     --------------------------------------------------------------

  19.7.1. Einfu:hrung

   Nach der CD ist die DVD die na:chste Generation optischer
   Speichermedien. Auf einer DVD ko:nnen mehr Daten als auf einer CD
   gespeichert werden. DVDs werden heutzutage als Standardmedium fu:r
   Videos verwendet.

   Fu:r beschreibbare DVDs existieren fu:nf Medienformate:

     * DVD-R: Dies war das erste verfu:gbare Format. Das Format wurde
       vom DVD-Forum festgelegt. Die Medien sind nur einmal
       beschreibbar.

     * DVD-RW: Dies ist die wiederbeschreibbare Version des DVD-R
       Standards. Eine DVD-RW kann ungefa:hr 1000 Mal beschrieben
       werden.

     * DVD-RAM: Dies ist ebenfalls ein wiederbeschreibbares Format,
       das vom DVD-Forum unterstu:tzt wird. Eine DVD-RAM verha:lt
       sich wie eine Wechselplatte. Allerdings sind die Medien nicht
       kompatibel zu den meisten DVD-ROM-Laufwerken und
       DVD-Video-Spielern. DVD-RAM wird nur von wenigen Brennern
       unterstu:tzt. Wollen Sie DVD-RAM einsetzen, sollten Sie
       Abschnitt 19.7.9 lesen.

     * DVD+RW: Ist ein wiederbeschreibbares Format, das von der
       DVD+RW Alliance festgelegt wurde. Eine DVD+RW kann ungefa:hr
       1000 Mal beschrieben werden.

     * DVD+R: Dieses Format ist die nur einmal beschreibbare Variante
       des DVD+RW Formats.

   Auf einer einfach beschichteten DVD ko:nnen 4.700.000.000 Bytes
   gespeichert werden. Das sind 4,38 GB oder 4485 MB (1 Kilobyte sind
   1024 Bytes).

     Anmerkung: Die physischen Medien sind unabha:ngig von der
     Anwendung. Ein DVD-Video ist eine spezielle Anordnung von
     Dateien, die auf irgendein Medium (zum Beispiel DVD-R, DVD+R
     oder DVD-RW) geschrieben werden kann. Bevor Sie ein Medium
     auswa:hlen, mu:ssen Sie sicherstellen, dass der Brenner und der
     DVD-Spieler (ein Einzelgera:t oder ein DVD-ROM-Laufwerk eines
     Rechners) mit dem Medium umgehen ko:nnen.

     --------------------------------------------------------------

  19.7.2. Konfiguration

   Das Programm growisofs(1) beschreibt DVDs. Das Kommando ist Teil
   der Anwendung dvd+rw-tools (sysutils/dvd+rw-tools). dvd+rw-tools
   kann mit allen DVD-Medien umgehen.

   Um die Gera:te anzusprechen, brauchen die Werkzeuge das
   SCSI-Subsystem. Daher muss der Kernel den ATAPI/CAM-Treiber zur
   Verfu:gung stellen. Der Treiber ist mit USB-Brennern nutzlos; die
   Konfiguration von USB-Gera:ten behandelt Abschnitt 19.5.

   Fu:r ATAPI-Gera:te mu:ssen Sie ebenfalls DMA-Zugriffe aktivieren.
   Fu:gen Sie dazu die nachstehende Zeile in die Datei
   /boot/loader.conf ein:

 hw.ata.atapi_dma="1"

   Bevor Sie dvd+rw-tools mit Ihrem DVD-Brenner benutzen, lesen Sie
   bitte die Hardware-Informationen auf der Seite dvd+rw-tools'
   hardware compatibility notes.

     Anmerkung: Wenn Sie eine grafische Oberfla:che bevorzugen,
     schauen Sie sich bitte den Port sysutils/k3b an. Der Port bietet
     eine leicht zu bedienende Schnittstelle zu growisofs(1) und
     vielen anderen Werkzeugen.

     --------------------------------------------------------------

  19.7.3. Daten-DVDs brennen

   growisofs(1) erstellt mit dem Programm mkisofs das Dateisystem und
   brennt anschliessend die DVD. Vor dem Brennen brauchen Sie daher
   kein Abbild der Daten zu erstellen.

   Wenn Sie von den Daten im Verzeichnis /path/to/data eine DVD+R
   oder eine DVD-R brennen wollen, benutzen Sie das nachstehende
   Kommando:

 # growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data

   Die Optionen -J -R werden an mkisofs(8) durchgereicht und dienen
   zum Erstellen des Dateisystems (hier: ein ISO-9660-Dateisystem mit
   Joliet- und Rock-Ridge-Erweiterungen). Weiteres entnehmen Sie
   bitte der Hilfeseite mkisofs(8).

   Die Option -Z wird fu:r die erste Aufnahme einer Session
   beno:tigt, egal ob Sie eine Multi-Session-DVD brennen oder nicht.
   Fu:r /dev/cd0 mu:ssen Sie den Gera:tenamen Ihres Brenners
   einsetzen. Die Option -dvd-compat schliesst das Medium, weitere
   Daten ko:nnen danach nicht mehr angeha:ngt werden. Durch die
   Angabe dieser Option kann das Medium von mehr DVD-ROM-Laufwerken
   gelesen werden.

   Sie ko:nnen auch ein vorher erstelltes Abbild der Daten brennen.
   Die nachstehende Kommandozeile brennt das Abbild in der Datei
   imagefile.iso:

 # growisofs -dvd-compat -Z /dev/cd0=imagefile.iso

   Die Schreibgeschwindigkeit ha:ngt von den verwendeten Medium sowie
   dem verwendeten Gera:t ab und sollte automatisch gesetzt werden.
   Falls Sie die Schreibgeschwindigkeit vorgeben mo:chten, verwenden
   Sie den Parameter -speed=. Weiteres erfahren Sie in der Hilfeseite
   growisofs(1).

     Anmerkung: Um gro:ssere Dateien als 4.38GB in ihre Sammlung
     aufzunehmen, ist es notwendig ein UDF/ISO-9660
     Hybrid-Dateisystem zu erstellen. Dieses Dateisystem muss mit
     zusa:tzlichen Parametern -udf -iso-level 3 bei mkisofs(8) und
     allen relevanten Programmen (z.B. growisofs(1)) erzeugt werden.
     Dies ist nur notwendig wenn Sie ein ISO-Image erstellen oder
     direkt auf eine DVD schreiben wollen. DVDs, die in dieser Weise
     hergestellt worden sind, mu:ssen als UDF-Dateisystem mit
     mount_udf(8) eingehangen werden. Sie sind nur auf
     Betriebssystemen, die UDF unterstu:tzen brauchbar, ansonsten
     sieht es so aus, als ob sie kaputte Dateien enthalten wu:rden.

     Um so eine ISO Datei zu bauen, geben Sie den folgenden Befehl
     ein:

 % mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data

     Um Daten direkt auf eine DVD zu brennen, geben Sie den folgenden
     Befehl ein:

 # growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data

     Wenn Sie ein ISO-Image haben das bereits grosse Dateien
     entha:lt, sind keine weiteren zusa:tzlichen Optionen fu:r
     growisofs(1) notwendig, um das Image auf die DVD zu brennen.

     Beachten Sie noch, dass Sie die aktuelle Version von
     sysutils/cdrtools haben (welche mkisofs(8) entha:lt), da die
     a:lteren Versionen nicht den Support fu:r grosse Dateien
     enthalten. Wenn Sie Probleme haben sollten, ko:nnen Sie auch das
     Entwicklerpaket von sysutils/cdrtools-devel einsetzen und lesen
     Sie die mkisofs(8) Manualpage.

     --------------------------------------------------------------

  19.7.4. DVD-Videos brennen

   Ein DVD-Video ist eine spezielle Anordnung von Dateien, die auf
   den ISO-9660 und den micro-UDF (M-UDF) Spezifikationen beruht. Ein
   DVD-Video ist auf eine bestimmte Datei-Hierarchie angewiesen.
   Daher mu:ssen Sie DVDs mit speziellen Programmen wie
   multimedia/dvdauthor erstellen.

   Wenn Sie schon ein Abbild des Dateisystems eines DVD-Videos haben,
   brennen Sie das Abbild wie jedes andere auch. Eine passende
   Kommandozeile finden Sie im vorigen Abschnitt. Wenn Sie die DVD im
   Verzeichnis /path/to/video zusammengestellt haben, erstellen Sie
   das DVD-Video mit dem nachstehenden Kommando:

 # growisofs -Z /dev/cd0 -dvd-video /path/to/video

   Die Option -dvd-video wird an mkisofs(8) weitergereicht. Dadurch
   erstellt mkisofs(8) die Datei-Hierarchie fu:r ein DVD-Video.
   Weiterhin bewirkt die Angabe von -dvd-video, dass growisofs(1) mit
   der Option -dvd-compat aufgerufen wird.

     --------------------------------------------------------------

  19.7.5. DVD+RW-Medien benutzen

   Im Gegensatz zu CD-RW-Medien mu:ssen Sie DVD+RW-Medien erst
   formatieren, bevor Sie die Medien benutzen. Sie sollten
   growisofs(1) einzetzen, da das Programm Medien automatisch
   formatiert, wenn es erforderlich ist. Sie ko:nnen eine DVD+RW aber
   auch mit dem Kommando dvd+rw-format formatieren:

 # dvd+rw-format /dev/cd0

   Sie mu:ssen das Kommando nur einmal mit neuen Medien laufen
   lassen. Anschliessend ko:nnen Sie DVD+RWs, wie in den vorigen
   Abschnitten beschrieben, brennen.

   Wenn Sie auf einer DVD+RW ein neues Dateisystem erstellen wollen,
   brauchen Sie die DVD+RW vorher nicht zu lo:schen. U:berschreiben
   Sie einfach das vorige Dateisystem indem Sie eine neue Session
   anlegen:

 # growisofs -Z /dev/cd0 -J -R /path/to/newdata

   Mit dem DVD+RW-Format ist es leicht, Daten an eine vorherige
   Aufnahme anzuha:ngen. Dazu wird eine neue Session mit der schon
   bestehenden zusammengefu:hrt. Es wird keine Multi-Session
   geschrieben, sondern growisofs(1) vergro:ssert das
   ISO-9660-Dateisystem auf dem Medium.

   Das folgende Kommando fu:gt weitere Daten zu einer vorher
   erstellten DVD+RW hinzu:

 # growisofs -M /dev/cd0 -J -R /path/to/nextdata

   Wenn Sie eine DVD+RW erweitern, verwenden Sie dieselben
   mkisofs(8)-Optionen wie beim Erstellen der DVD+RW.

     Anmerkung: Um die Kompatibilita:t mit DVD-ROM-Laufwerken zu
     gewa:hrleisten, wollen Sie vielleicht die Option -dvd-compat
     einsetzen. Zu einem DVD+RW-Medium ko:nnen Sie mit dieser Option
     auch weiterhin Daten hinzufu:gen.

   Wenn Sie das Medium aus irgendwelchen Gru:nden doch lo:schen
   mu:ssen, verwenden Sie den nachstehenden Befehl:

 # growisofs -Z /dev/cd0=/dev/zero

     --------------------------------------------------------------

  19.7.6. DVD-RW-Medien benutzen

   Eine DVD-RW kann mit zwei Methoden beschrieben werden:
   Sequential-Recording oder Restricted-Overwrite. Voreingestellt ist
   Sequential-Recording.

   Eine neue DVD-RW kann direkt beschrieben werden; sie muss nicht
   vorher formatiert werden. Allerdings muss eine DVD-RW, die mit
   Sequential-Recording aufgenommen wurde, zuerst gelo:scht werden,
   bevor eine neue Session aufgenommen werden kann.

   Der folgende Befehl lo:scht eine DVD-RW im
   Sequential-Recording-Modus:

 # dvd+rw-format -blank=full /dev/cd0

     Anmerkung: Das vollsta:ndige Lo:schen (-blank=full) dauert mit
     einem 1x Medium ungefa:hr eine Stunde. Wenn die DVD-RW im
     Disk-At-Once-Modus (DAO) aufgenommen wurde, kann Sie mit der
     Option -blank schneller gelo:scht werden. Um eine DVD-RW im
     DAO-Modus zu brennen, benutzen Sie das folgende Kommando:

 # growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso

     Die Option -use-the-force-luke=dao sollte nicht erforderlich
     sein, da growisofs(1) den DAO-Modus erkennt.

     Der Restricted-Overwrite-Modus sollte mit jeder DVD-RW verwendet
     werden, da er flexibler als der voreingestellte
     Sequential-Recording-Modus ist.

   Um Daten auf eine DVD-RW im Sequential-Recording-Modus zu
   schreiben, benutzen Sie dasselbe Kommando wie fu:r die anderen
   DVD-Formate:

 # growisofs -Z /dev/cd0 -J -R /path/to/data

   Wenn Sie weitere Daten zu einer Aufnahme hinzufu:gen wollen,
   benutzen Sie die Option -M von growisofs(1). Werden die Daten im
   Sequential-Recording-Modus hinzugefu:gt, wird eine neue Session
   erstellt. Das Ergebnis ist ein Multi-Session-Medium.

   Eine DVD-RW im Restricted-Overwrite-Modus muss nicht gelo:scht
   werden, um eine neue Session aufzunehmen. Sie ko:nnen das Medium
   einfach mit der Option -Z u:berschreiben, a:hnlich wie bei DVD+RW.
   Mit der Option -M ko:nnen Sie das ISO-9660-Dateisystem, wie mit
   einer DVD+RW, vergro:ssern. Die DVD entha:lt danach eine Session.

   Benutzen sie das nachstehende Kommando, um den
   Restricted-Overwrite-Modus einzustellen:

 # dvd+rw-format /dev/cd0

   Das folgende Kommando stellt den Modus wieder auf
   Sequential-Recording zuru:ck:

 # dvd+rw-format -blank=full /dev/cd0

     --------------------------------------------------------------

  19.7.7. Multi-Session

   Nur wenige DVD-ROM-Laufwerke ko:nnen Multi-Session-DVDs lesen.
   Meist lesen die Spieler nur die erste Session. Mehrere Sessions
   werden von DVD+R, DVD-R und DVD-RW im Sequential-Recording-Modus
   unterstu:tzt. Im Modus Restricted-Overwrite gibt es nur eine
   Session.

   Wenn das Medium noch nicht geschlossen ist, erstellt das
   nachstehende Kommando eine neue Session auf einer DVD+R, DVD-R
   oder DVD-RW im Sequential-Recording-Modus:

 # growisofs -M /dev/cd0 -J -R /path/to/nextdata

   Wird diese Kommandozeile mit DVD+RW- oder DVD-RW-Medien im
   Restricted-Overwrite-Modus benutzt, werden die neuen Daten mit den
   Daten der bestehenden Session zusammengefu:hrt. Das Medium
   entha:lt danach eine Session. Auf diesem Weg werden neue Daten zu
   einer bestehenden Session hinzugefu:gt.

     Anmerkung: Fu:r den Anfang und das Ende einer Session wird auf
     dem Medium zusa:tzlicher Platz verbraucht. Um den Speicherplatz
     auf dem Medium optimal auszunutzen, sollten Sie daher Sessions
     mit vielen Daten hinzufu:gen. Auf ein DVD+R-Medium passen
     maximal 154 Sessions, 2000 Sessions auf ein DVD-R-Medium und
     127 Sessions auf eine DVD+R Double Layer.

     --------------------------------------------------------------

  19.7.8. Weiterfu:hrendes

   Das Kommando dvd+rw-mediainfo /dev/cd0 zeigt Informationen u:ber
   eine im Laufwerk liegende DVD an.

   Weiteres zu den dvd+rw-tools lesen Sie bitte in der Hilfeseite
   growisofs(1), auf der dvd+rw-tools Web-Seite oder in den Archiven
   der cdwrite-Mailingliste.

     --------------------------------------------------------------

  19.7.9. DVD-RAM

     --------------------------------------------------------------

    19.7.9.1. Konfiguration

   DVD-RAM-fa:hige Brenner werden sowohl mit SCSI- als auch mit
   ATAPI-Schnittstelle angeboten. Verwenden Sie ein ATAPI-Gera:t,
   mu:ssen Sie den DMA-Modus aktivieren. Dazu fu:gen Sie die folgende
   Zeile in /boot/loader.conf ein:

 hw.ata.atapi_dma="1"

     --------------------------------------------------------------

    19.7.9.2. Das Medium vorbereiten

   Wie weiter oben in diesem Kapitel bereits erwa:hnt, kann man eine
   DVD-RAM mit einer Wechselplatte vergleichen. Wie diese muss auch
   eine DVD-RAM vor dem ersten Einsatz "vorbereitet" werden. In
   unserem Beispiel wird das gesamte Medium mit dem
   Standard-UFS2-Dateisystem formatiert.

   Dazu geben Sie als root bei eingelegter DVD-RAM die folgenden
   Befehle ein:

 # dd if=/dev/zero of=/dev/acd0 bs=2k count=1
 # bsdlabel -Bw acd0
 # newfs /dev/acd0

   Denken Sie dabei daran, dass Sie gegebenenfalls die Gera:tedatei
   (hier acd0) an Ihre Konfiguration anpassen mu:ssen.

     --------------------------------------------------------------

    19.7.9.3. Das Medium einsetzen

   Nachdem Sie das Medium vorbereitet haben, ko:nnen Sie das
   DVD-RAM-Medium in Ihren Verzeichnisbaum einha:ngen:

 # mount /dev/acd0 /mnt

   Danach ko:nnen Sie schreibend und lesend auf das Medium zugreifen.

     --------------------------------------------------------------

19.8. Disketten benutzen

   Original von Julio Merino. Umgeschrieben von Martin Karlsson.

   Disketten sind nu:tzlich, wenn kein anderes bewegliches
   Speichermedium vorhanden ist oder wenn nur kleine Datenmengen
   transferiert werden sollen.

   Dieser Abschnitt beschreibt die Handhabung von Disketten unter
   FreeBSD. Hauptsa:chlich geht es um die Formatierung und Benutzung
   von 3,5 Zoll Disketten, doch lassen sich die Konzepte leicht auf
   Disketten anderer Formate u:bertragen.

     --------------------------------------------------------------

  19.8.1. Disketten formatieren

    19.8.1.1. Die Gera:tedateien

   Wie auf jedes andere Gera:t auch, greifen Sie auf Disketten u:ber
   Eintra:ge im Verzeichnis /dev zu. Verwenden Sie dazu die Eintra:ge
   /dev/fdN.

     --------------------------------------------------------------

    19.8.1.2. Formatierung

   Bevor eine Diskette benutzt werden kann, muss Sie (low-level)
   formatiert werden, was normalerweise der Hersteller schon gemacht
   hat. Sie ko:nnen die Diskette allerdings noch einmal formatieren,
   um das Medium zu u:berpru:fen. Es ist mo:glich, die Kapazita:t der
   Diskette zu vera:ndern, allerdings sind die meisten Disketten auf
   1440 kB ausgelegt.

   Mit fdformat(1) formatieren Sie eine Diskette. Das Kommando
   erwartet die Angabe eines Gera:tenamens.

   Achten Sie bei der Formatierung auf Fehlermeldungen, die schlechte
   Speichermedien anzeigen.

     --------------------------------------------------------------

      19.8.1.2.1. Disketten formatieren

   Die Disketten werden mithilfe der Gera:tedatei /dev/fdN
   formatiert. Legen Sie eine 3,5 Zoll Diskette in Ihr Laufwerk ein
   und fu:hren das folgende Kommando aus:

 # /usr/sbin/fdformat -f 1440 /dev/fd0

     --------------------------------------------------------------

  19.8.2. Das Disklabel

   Nach dem Formatieren muss auf der Diskette ein Disklabel erstellt
   werden. Das Disklabel wird spa:ter zersto:rt, ist aber notwendig,
   um die Gro:sse und Geometrie der Diskette zu erkennen.

   Das Disklabel gilt fu:r die ganze Diskette und entha:lt alle
   Informationen u:ber die Geometrie der Diskette. Eine Liste der
   mo:glichen Geometrien finden Sie in /etc/disktab.

   Erstellen Sie nun das Label mit bsdlabel(8):

 # /sbin/bsdlabel -B -w /dev/fd0 fd1440

     --------------------------------------------------------------

  19.8.3. Das Dateisystem

   Auf der Diskette muss nun ein Dateisystem erstellt werden
   (high-level Formatierung), damit FreeBSD von der Diskette lesen
   und auf sie schreiben kann. Das Disklabel wird durch das Anlegen
   eines Dateisystems zersto:rt. Falls Sie die Diskette spa:ter
   erneut formatieren wollen, mu:ssen Sie dann auch ein neues
   Disklabel anlegen.

   Sie ko:nnen entweder UFS oder FAT als Dateisystem verwenden. Fu:r
   Disketten ist FAT das beste Dateisystem.

   Das folgende Kommando legt ein Dateisystem auf der Diskette an:

 # /sbin/newfs_msdos /dev/fd0

   Die Diskette kann nun benutzt werden.

     --------------------------------------------------------------

  19.8.4. Verwenden der Diskette

   Zum Einha:ngen der Diskette in das Dateisystem verwenden Sie den
   Befehl mount_msdosfs(8). Sie ko:nnen auch den Port
   emulators/mtools verwenden, um mit der Diskette zu arbeiten.

     --------------------------------------------------------------

19.9. Bandmedien benutzen

   Die wichtigsten Bandmedien sind 4mm, 8mm, QIC, Mini-Cartridge und
   DLT.

     --------------------------------------------------------------

  19.9.1. 4mm (DDS: Digital Data Storage)

   Die 4mm-Ba:nder ersetzen mehr und mehr das QIC-Format als
   Backupmedium der Wahl fu:r Workstations. Dieser Trend nahm stark
   zu, als Conner die Firma Archive, einen fu:hrenden Hersteller von
   QIC-Laufwerken, aufkaufte und die Produktion von QIC-Laufwerken
   stoppte. 4mm-Laufwerke sind klein und ruhig, haben aber nicht den
   gleichen Ruf der Zuverla:ssigkeit, den die 8mm-Laufwerke
   geniessen. Die 4mm-Kassetten sind preiswerter und mit den Massen
   76,2 x 50,8 x 12,7 mm (3 x 2 x 0,5 Inch) kleiner als die
   8mm-Kassetten. Sowohl die 4mm- als auch die 8mm-Magnetko:pfe haben
   eine relativ kurze Lebensdauer, weil beide die gleiche
   Helical-Scan-Technik benutzen.

   Der Datendurchsatz dieser Laufwerke beginnt bei etwa 150 kByte/s,
   Spitzenwerte liegen bei etwa 500 kByte/s. Die Datenkapazita:t
   liegt zwischen 1,3 GB und 2 GB. Die meisten Gera:te haben eine
   Hardwarekompression eingebaut, die die Kapazita:t ungefa:hr
   verdoppelt. Es gibt Multi-Drive-Einheiten fu:r Bandbibliotheken
   mit bis zu 6 Laufwerken in einem Geha:use und automatischem
   Bandwechsel. Die Kapazita:t einer solchen Bibliothek liegt bei
   240 GB.

   Der Standard DDS-3 unterstu:tzt nun Bandkapazita:ten bis zu 12 GB
   (oder komprimiert 24 GB).

   4mm-Laufwerke, ebenso wie 8mm-Laufwerke, verwenden Helical-Scan.
   Alle Vor- und Nachteile von Helical-Scan gelten sowohl fu:r 4mm-
   als auch fu:r 8mm-Laufwerke.

   Ba:nder sollten nach 2.000 Banddurchla:ufen oder 100 vollen
   Backups ersetzt werden.

     --------------------------------------------------------------

  19.9.2. 8mm (Exabyte)

   8mm-Ba:nder sind die verbreitetsten SCSI-Bandlaufwerke; sie sind
   das geeignetste Bandformat zum Austausch von Ba:ndern. Fast an
   jedem Standort gibt es ein 8mm-Bandlaufwerk mit 2 GB. 8mm-Ba:nder
   sind zuverla:ssig, gut zu handhaben und arbeiten leise.
   Bandkassetten sind preiswert und klein mit 122 x 84 x 15 mm
   (4,8 x 3,3 x 0,6 Inch). Ein Nachteil der 8mm-Technik ist die
   relativ kurze Lebensdauer des Schreib-/Lesekopfs und der Ba:nder
   auf Grund der hohen Relativgeschwindigkeit des Bandes u:ber die
   Ko:pfe hinweg.

   Der Datendurchsatz liegt ungefa:hr zwischen 250 kByte/s und
   500 kByte/s. Die Datenkapazita:t beginnt bei 300 MB und erreicht
   bis zu 7 GB bei den Spitzengera:ten. Die meisten Gera:te haben
   eine Hardwarekompression eingebaut, die die Kapazita:t ungefa:hr
   verdoppelt. Diese Laufwerke sind erha:ltlich in Form von
   Einzelgera:ten oder als Multi-Drive-Bandbibliotheken mit 6
   Laufwerken und 120 Ba:ndern in einem Geha:use. Die Ba:nder werden
   von der Gera:teeinheit automatisch gewechselt. Die Kapazita:t
   einer solchen Bibliothek liegt bei 840 GB und mehr.

   Das Exabyte-Modell "Mammoth" unterstu:tzt 12 GB auf einem Band
   (24 GB mit Kompression) und kostet etwa doppelt so viel wie ein
   konventionelles Bandlaufwerk.

   Die Daten werden mittels Helical-Scan auf das Band aufgezeichnet,
   die Ko:pfe sind leicht schra:g zum Medium angebracht (mit einem
   Winkel von etwa 6 Grad). Das Band wickelt sich 270 Grad um die
   Spule, die die Ko:pfe tra:gt. Die Spule dreht sich, wa:hrend das
   Band daru:ber la:uft. Das Resultat ist eine hohe Datendichte und
   eng gepackte Spuren, die von einem Rand des Bands zum
   gegenu:berliegenden quer u:ber das Band abgewinkelt verlaufen.

     --------------------------------------------------------------

  19.9.3. QIC

   QIC-150-Ba:nder und -Laufwerke sind wohl der am weitesten
   verbreitete Bandtyp u:berhaupt. QIC-Bandlaufwerke sind die
   preiswertesten "serio:sen" Backupgera:te, die angeboten werden.
   Der Nachteil dabei ist der hohe Preis der Ba:nder. QIC-Ba:nder
   sind im Vergleich zu 8mm- oder 4mm-Ba:ndern bis zu fu:nf Mal
   teurer, wenn man den Preis auf 1 GB Datenkapazita:t umrechnet.
   Aber wenn Ihr Bedarf mit einem halben Dutzend Ba:nder abgedeckt
   werden kann, mag QIC die richtige Wahl sein.

   QIC ist der ga:ngigste Bandlaufwerkstyp. Jeder Standort hat ein
   QIC-Laufwerk der einen oder anderen Dichte. Aber gerade das ist
   der Haken an der Sache, QIC bietet eine grosse Anzahl
   verschiedener Datendichten auf physikalisch a:hnlichen (manchmal
   gleichen) Ba:ndern. QIC-Laufwerke sind nicht leise. Diese
   Laufwerke suchen lautstark die richtige Bandstelle, bevor sie mit
   der Datenaufzeichnung beginnen. Sie sind wa:hrend des Lesens,
   Schreibens und Suchens deutlich ho:rbar.

   Die Abmessungen der QIC-Kassetten betragen 152 x 102 x 17 mm
   (6 x 4 x 0,7 Inch).

   Der Datendurchsatz liegt ungefa:hr zwischen 150 kByte/s und
   500 kByte/s. Die Datenkapazita:t reicht von 40 MB bis zu 15 GB.
   Hardwarekompression ist in vielen der neueren QIC-Laufwerke
   eingebaut. QIC-Laufwerke werden heute seltener eingesetzt; sie
   werden von den DAT-Laufwerken abgelo:st.

   Die Daten werden auf dem Band in Spuren aufgezeichnet. Die Spuren
   verlaufen entlang der La:ngsachse des Bandmediums von einem Ende
   zum anderen. Die Anzahl der Spuren, und damit auch die Breite
   einer Spur, variiert mit der Kapazita:t des Laufwerks. Die
   meisten, wenn nicht alle neueren Laufwerke sind
   ru:ckwa:rtskompatibel, zumindest zum Lesen (aber oft auch zum
   Schreiben). QIC hat einen guten Ruf bezu:glich der Datensicherheit
   (die Mechanik ist einfacher und robuster als diejenige der
   Helical-Scan-Laufwerke).

   Ba:nder sollten nach 5,000 Backups ersetzt werden.

     --------------------------------------------------------------

  19.9.4. DLT

   DLT hat die schnellste Datentransferrate von allen hier
   aufgelisteten Gera:tetypen. Das 1/2-Inch-Band (12,7 mm) befindet
   sich in einer Spulkassette mit den Abmessungen
   101,6 x 101,6 x 25,4 mm (4 x 4 x 1 Inch). Die eine Seite der
   Kassette hat eine bewegliche Abdeckung. Der Laufwerksmechanismus
   o:ffnet diese Abdeckung und zieht die Bandfu:hrung heraus. Die
   Bandfu:hrung tra:gt ein ovales Loch, die das Laufwerk zum
   "Einha:ngen" des Bandes benutzt. Die Aufwickelspule befindet sich
   im Innern des Bandlaufwerks. Bei allen anderen hier besprochenen
   Bandkassetten (9-Spur-Ba:nder sind die einzige Ausnahme) befinden
   sich sowohl die Auf- als auch die Abwickelspule im Inneren der
   Bandkassette.

   Der Datendurchsatz liegt bei etwa 1,5 MBytes/s, der dreifache
   Durchsatz der 4mm-, 8mm- oder QIC-Bandlaufwerke. Die
   Datenkapazita:t reicht von 10 GB bis 20 GB fu:r Einfachlaufwerke.
   Auch Mehrfachbandgera:te sind erha:ltlich, sowohl als Bandwechsler
   wie auch als Multi-Drive-Bandbibliotheken, die Platz fu:r 5 bis
   900 Ba:nder verteilt auf 1 bis 20 Laufwerke enthalten, mit einer
   Speicherkapazita:t von 50 GB bis 9 TB.

   Mit Kompression unterstu:tzt das Format DLT Type IV bis zu 70 GB
   Kapazita:t.

   Die Daten werden auf dem Band in Spuren aufgezeichnet, die
   parallel zur Bewegungsrichtung verlaufen (gerade so wie bei den
   QIC-Ba:ndern). Zwei Spuren werden dabei gleichzeitig beschrieben.
   Die Lebenszeit der Lese- und Schreibko:pfe sind relativ lang; denn
   sobald das Band anha:lt, gibt es keine Relativbewegung mehr
   zwischen den Ko:pfen und dem Band.

     --------------------------------------------------------------

  19.9.5. AIT

   AIT ist ein neues Format von Sony, das (mit Kompression) bis zu
   50 GB pro Band speichern kann. Die Ba:nder haben einen
   Speicherchip, der einen Index mit dem Inhalt des Bandes anlegt.
   Dieser Index kann vom Bandlaufwerk zur schnellen Bestimmung der
   Lage von Dateien auf dem Band benutzt werden, wa:hrend andere
   Ba:nder einige Minuten zur Lokalisierung beno:tigen.

   Entsprechende Software wie etwa SAMS:Alexandria ko:nnen 40 oder
   mehr AIT-Bandbibliotheken verarbeiten, indem sie direkt mit dem
   Speicherchip des Bandes kommunizieren, wenn der Bandinhalt am
   Bildschirm dargestellt werden soll oder bestimmt werden soll,
   welche Dateien auf welchem Band gespeichert sind, oder um das
   richtige Band zu lokalisieren, zu laden und Daten vom Band
   zuru:ckzuspielen. Bibliotheken dieser Art liegen in der
   Preiskategorie von $20,000, womit sie etwas aus dem Hobbymarkt
   herausfallen.

     --------------------------------------------------------------

  19.9.6. Die erste Benutzung eines neuen Bands

   Der Versuch ein neues, vollkommen leeres Band ohne weiteres zu
   lesen oder zu beschreiben wird schief gehen. Auf der Konsole
   werden dann Meldungen a:hnlich wie folgt ausgegeben:

 sa0(ncr1:4:0): NOT READY asc:4,1
 0(ncr1:4:0): Logical unit is in process of becoming ready

   Das Band entha:lt na:mlich keinen Identifier-Block (Blocknummer
   0). Alle QIC-Bandlaufwerke seit der Einfu:hrung des
   QIC-525-Standards schreiben einen Identifier-Block auf das Band.
   Es gibt zwei Lo:sungen:

     * mt fsf 1 veranlasst das Bandlaufwerk einen Identifier-Block
       auf das Band zu schreiben.

     * Das Band durch Dru:cken des Bandauswurfknopfs an der
       Vorderseite des Bandgera:ts auswerfen.

       Danach das Band wieder einlegen und mit dump Daten auf das
       Band u:bertragen.

       Das Kommando dump gibt die Meldung "DUMP: End of tape
       detected" zuru:ck und die Konsole zeigt: "HARDWARE FAILURE
       info:280 asc:80,96".

       Das Band zuru:ckspulen mit dem Kommando: mt rewind.

       Nachfolgende Bandoperationen werden dann erfolgreich
       ausgefu:hrt.

     --------------------------------------------------------------

19.10. Was ist mit Backups auf Disketten?

  19.10.1. Kann ich Disketten zum Backup meiner Daten verwenden?

   Disketten sind kein wirklich geeignetes Medium fu:r Backups aus
   folgenden Gru:nden:

     * Disketten sind unzuverla:ssig, besonders langfristig.

     * Speichern und Wiederherstellen ist sehr langsam.

     * Sie haben eine sehr eingeschra:nkte Kapazita:t (Die Zeiten
       sind la:ngst vorbei, wo eine ganze Festplatte auf ein Dutzend
       Disketten oder so gespeichert werden konnte).

   Wenn jedoch keine andere Mo:glichkeit zum Datenbackup vorhanden
   ist, dann sind Disketten immer noch besser als gar kein Backup.

   Wenn man gezwungen ist Disketten zu verwenden, dann sollte man auf
   eine gute Qualita:t achten. Disketten, die schon einige Jahre im
   Bu:ro herumgelegen haben, sind eine schlechte Wahl. Ideal sind
   neue Disketten von einem renommierten Hersteller.

     --------------------------------------------------------------

  19.10.2. Wie mache ich ein Backup auf Disketten?

   Die beste Art eines Diskettenbackups ist der Befehl tar(1) mit der
   Mehrfachband-Option -M, die es ermo:glicht ein Backup u:ber
   mehrere Disketten zu verteilen.

   Ein Backup aller Dateien im aktuellen Verzeichnis einschliesslich
   aller Unterverzeichnisse wird durch den folgenden Befehl
   veranlasst (als root):

 # tar Mcvf /dev/fd0 *

   Wenn die erste Diskette voll ist, meldet sich tar(1) und verlangt
   einen Diskettenwechsel (weil tar(1) unabha:ngig vom Medium
   arbeitet, wird das na:chste Band (Volume) verlangt, was in diesem
   Zusammenhang eine Diskette bedeutet), in etwa wie folgt:

 Prepare volume #2 for /dev/fd0 and hit return:

   Dies wird mit steigender Volumenzahl wiederholt, bis alle
   angegebenen Dateien archiviert sind.

     --------------------------------------------------------------

  19.10.3. Ko:nnen Diskettenbackups komprimiert werden?

   Leider erlaubt es tar(1) nicht, die Option -z fu:r
   Multi-Volume-Archive zu verwenden. Man kann natu:rlich alle
   Dateien mit gzip(1) komprimieren, sie mit tar(1) auf die Disketten
   aufspielen, und dann die Dateien wieder gunzip(1) dekomprimieren!

     --------------------------------------------------------------

  19.10.4. Wie werden Diskettenbackups wieder hergestellt?

   Zur Wiederherstellung des gesamten Archivs verwendet man:

 # tar Mxvf /dev/fd0

   Eine Methode um nur bestimmte Dateien wieder her zu stellen ist
   mit der ersten Diskette den folgenden Befehl auszufu:hren:

 # tar Mxvf /dev/fd0 filename

   tar(1) wird dann die folgenden Disketten anfordern, bis die
   beno:tigte Datei gefunden ist.

   Wenn man die Diskette kennt, auf der sich die Datei befindet, kann
   man alternativ diese Diskette auch direkt einlegen und den
   gleichen Befehl wie oben verwenden. Man beachte, dass, falls die
   erste Datei eine Fortsetzung einer Datei von einer der vorigen
   Disketten ist, tar(1) die Warnung ausgibt, dass diese Datei nicht
   wiederhergestellt werden kann, selbst dann, wenn dies gar nicht
   verlangt wurde!

     --------------------------------------------------------------

19.11. Backup-Strategien

   Beigetragen von Lowell Gilbert.

   Wenn Sie eine eigene Backup-Strategie planen, mu:ssen Sie darauf
   achten, dass jedes der folgenden Probleme von Ihrer Strategie
   abgedeckt wird:

     * Plattendefekte.

     * Versehentliches Lo:schen von Dateien.

     * Eine nicht vorhersehbare Korrumpierung von Dateien.

     * Die vollsta:ndige Zersto:rung Ihres Systems, etwa durch ein
       Feuer. Dazu geho:rt auch die Zersto:rung von Backups, die am
       gleichen Ort aufbewahrt werden.

   Es ist nicht nur mo:glich, dass ein System fu:r jedes dieser
   Probleme eine eigene (oft vo:llig unterschiedliche) Strategie
   beno:tigt. Es ist vielmehr unwahrscheinlich (sieht man von
   Systemen ab, die keine wichtigen Daten enthalten), dass eine
   Technik alle Problembereiche abdecken kann.

   Ha:ufig verwendeten Techniken sind unter anderen:

     * Die Archivierung des kompletten Systems auf externen
       Datentra:gern, die an einem gesonderten Ort aufbewahrt werden.
       Dieser Ansatz schu:tzt zwar vor allen oben angefu:hrten
       Problemen, ist aber zeitaufwa:ndig. Auch eine
       Wiederherstellung des Systems ist nicht ohne weiteres
       mo:glich. Zwar ko:nnen Sie Kopien Ihrer Backups auch vor Ort
       und/oder auf online zuga:ngigen Systemen aufbewahren, was aber
       nichts daran a:ndert, dass eine Wiederherstellung,
       insbesondere fu:r nicht privilegierte Benutzer, nach wie vor
       nicht ohne weiteres mo:glich ist.

     * Dateisystem-Snapshots. Diese Technik hilft zwar nur gegen das
       versehentliche Lo:schen von Dateien, in einem solchen Fall ist
       sie aber a:usserst hilfreich. Vorteile dieser Technik sind
       ausserdem die leichte und schnelle Implementierung und
       Handhabung.

     * Das Erstellen von Kopien ganzer Dateisysteme und/oder Platten
       (etwa durch einen periodischen rsync(1)-Transfer des
       kompletten Systems). Diese Technik ist insbesondere in
       Netzwerken mit besonderen Anforderungen nu:tzlich. Der Schutz
       vor Plattendefekten ist allerdings schlechter als beim Einsatz
       von RAID. Die Fa:higkeiten zur Wiederherstellung gelo:schter
       Dateien sind mit denen von UFS-Snapshots vergleichbar. Ob
       diese Technik fu:r Sie geeignet ist, ha:ngt also letztlich von
       Ihren Anforderungen ab.

     * RAID. Minimiert oder vermeidet Ausfallzeiten, die durch einen
       Plattendefekt verursacht werden ko:nnten. Zwar ko:nnen
       Plattendefekte (aufgrund der ho:heren Anzahl verwendeter
       Platten) ha:ufiger auftreten, sie stellen aber dann kein so
       akutes Problem dar.

     * Das U:berpru:fen von Datei-Fingerprints durch mtree(8). Dabei
       handelt es sich zwar um keine Backup-Technik im eigentlichen
       Sinne, Sie werden durch den Einsatz dieses Werkzeugs aber
       informiert, dass Sie auf Ihre Backups zuru:ckgreifen mu:ssen.
       Dies ist insbesondere beim Einsatz von Offline-Backups von
       grosser Bedeutung. Daher sollte diese Technik regelma:ssig
       eingesetzt werden.

   Es gibt noch zahlreiche weitere Techniken, von denen aber viele
   nur Variationen der eben beschriebenen Techniken sind. Spezielle
   Anforderungen erfordern dabei in der Regel auch spezielle
   Backup-Techniken (so erfordert das Backup einer aktiven Datenbank
   in der Regel ein auf die eingesetzte Datenbank-Software
   abgestimmtes Verfahren). Entscheidend ist daher immer, gegen
   welche Gefahren Sie sich schu:tzen und wie Sie diesen Schutz
   realisieren wollen.

     --------------------------------------------------------------

19.12. Datensicherung

   Die drei wichtigsten Programme zur Sicherung von Daten sind
   dump(8), tar(1) und cpio(1).

     --------------------------------------------------------------

  19.12.1. Sichern und Wiederherstellen

   dump und restore sind die traditionellen Backup-Programme in UNIX
   Systemen. Sie betrachten das Laufwerk als eine Ansammlung von
   Blo:cken, operieren also unterhalb des Abstraktionslevels von
   Dateien, Links und Verzeichnissen, die die Grundlage des
   Dateisystemkonzepts bilden. Im Gegensatz zu anderen
   Backup-Programmen sichert dump ein ganzes Dateisystem auf einem
   Gera:t. Es ist nicht mo:glich nur einen Teil des Dateisystems,
   oder einen Verzeichnisbaum, der mehr als ein Dateisystem umfasst,
   zu sichern. Das dump-Kommando schreibt keine Dateien oder
   Verzeichnisse auf das Band, sondern die Blo:cke, aus denen Dateien
   und Verzeichnisse bestehen. Wenn restore fu:r das Extrahieren von
   Daten verwendet wird, werden tempora:re Dateien standardma:ssig in
   /tmp/ abgelegt - wenn Sie von einer Platte mit einem kleinen
   /tmp-Verzeichnis zuru:cksichern, mu:ssen Sie mo:glicherweise die
   Umgebungsvariable TMPDIR auf ein Verzeichnis mit mehr freiem
   Speicherplatz setzen, damit die Wiederherstellung gelingt.

     Anmerkung: Wenn Sie mit dump das Root-Verzeichnis sichern,
     werden /home, /usr und viele andere Verzeichnisse nicht
     gesichert, da dies normalerweise Mountpunkte fu:r andere
     Dateisysteme oder symbolische Links zu diesen Dateisystemen
     sind.

   dump hat einige Eigenarten, die noch aus den fru:hen Tagen der
   Version 6 von AT&T UNIX (ca. 1975) stammen. Die Parameter sind
   fu:r 9-Spur-Ba:nder (6250 bpi) voreingestellt, nicht auf die heute
   u:blichen Medien hoher Dichte (bis zu 62.182 ftpi). Bei der
   Verwendung der Kapazita:ten moderner Bandlaufwerke muss diese
   Voreinstellung auf der Kommandozeile u:berschrieben werden.

   rdump und rrestore ko:nnen Daten u:ber Netzwerk auf ein Band, das
   sich in einem Laufwerk eines anderen Computers befindet,
   u:berspielen. Beide Programme benutzen die Funktionen rcmd(3) und
   ruserok(3) zum Zugriff auf das entfernte Bandlaufwerk. Daher muss
   der Anwender, der das Backup durchfu:hrt, auf dem entfernten
   Rechner in .rhosts eingetragen sein.

   Die Argumente zu rdump und rrestore mu:ssen zur Verwendung auf dem
   entfernten Computer geeignet sein. Wenn Sie zum Beispiel mit rdump
   von einem FreeBSD-Rechner aus auf ein Exabyte-Bandlaufwerk einer
   Sun mit Namen komodo zugreifen mo:chten, setzen Sie das folgende
   Kommando ab:

 # /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1

   Zum Ausfu:hren dieses Kommandos mu:ssen Sie auf dem entfernten
   Rechner in .rhosts eingetragen sein. Die r-Kommandos sind ein
   grosses Sicherheitsrisiko, daher sollten Sie deren Verwendung
   sorgfa:ltig abwa:gen.

   Es ist auch mo:glich, dump und restore u:ber eine gesicherte
   Verbindung mit ssh einzusetzen:

   Beispiel 19-1. dump mit ssh benutzen

 # /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
           targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz

   Sie ko:nnen ebenfalls mit der internen Methode von dump auf
   entfernte Rechner zugreifen, indem Sie die Umgebungsvariable RSH
   setzen:

   Beispiel 19-2. dump u:ber ssh mit gesetzter RSH benutzen

 # RSH=/usr/bin/ssh /sbin/dump -0uan -f tatargetuser@targetmachine.example.com:/dev/sa0 /usr

     --------------------------------------------------------------

  19.12.2. tar

   tar(1) stammt ebenfalls aus Version 6 von AT&T UNIX (ca. 1975).
   tar arbeitet mit dem Dateisystem, denn es schreibt Dateien und
   Verzeichnisse auf das Band. tar unterstu:tzt zwar nicht alle
   Optionen, die bei cpio(1) zur Verfu:gung stehen, aber dafu:r
   erfordert es auch nicht die ungewo:hnliche Kommando-Pipeline, die
   von cpio verwendet wird.

   Um Daten mit tar auf ein an einer Sun-Workstation (namens komodo)
   angeschlossenes Exabyte-Bandlaufwerk zu archivieren, geben Sie
   Folgendes ein:

 # tar cf - . | rsh komodo dd of=tape-device obs=20b

   Wenn Sie Bedenken bezu:glich der Sicherheit beim Backup u:ber das
   Netz haben, sollten Sie ssh anstatt rsh benutzen.

     --------------------------------------------------------------

  19.12.3. Cpio

   cpio(1) ist das urspru:ngliche Programm von UNIX Systemen zum
   Dateitransfer mit magnetischen Medien. cpio hat (neben vielen
   anderen Leistungsmerkmalen) Optionen zum Byte-Swapping, zum
   Schreiben einer Anzahl verschiedener Archivformate und zum
   Weiterleiten von Daten an andere Programme u:ber eine Pipeline.
   Dieses letzte Leistungsmerkmal macht cpio zu einer ausgezeichneten
   Wahl fu:r Installationsmedien. Leider kann cpio keine Dateiba:ume
   durchlaufen, so dass eine Liste der zu bearbeitenden Dateien u:ber
   stdin angegeben werden muss.

   cpio unterstu:tzt keine Backups u:ber das Netzwerk. Man kann aber
   eine Pipeline und rsh verwenden, um Daten an ein entferntes
   Bandlaufwerk zu senden.

 # for f in directory_list; do
 find $f >> backup.list
 done
 # cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device"

   Dabei steht directory_list fu:r eine Aufza:hlung der
   Verzeichnisse, die Sie sichern wollen. user@host gibt den Benutzer
   auf dem Zielrechner an, der die Sicherung laufen la:sst. Der Ort
   der Sicherung wird durch backup_device angegeben (z.B. /dev/nsa0).

     --------------------------------------------------------------

  19.12.4. pax

   pax(1) ist die Antwort von IEEE/POSIX auf tar und cpio. U:ber die
   Jahre hinweg sind die verschiedenen Versionen von tar und cpio
   leicht inkompatibel geworden. Daher hat POSIX, statt eine
   Standardisierung zwischen diesen auszufechten, ein neues
   Archivprogramm geschaffen. pax versucht viele der
   unterschiedlichen cpio- und tar-Formate zu lesen und zu schreiben,
   ausserdem einige neue, eigene Formate. Die Kommandostruktur
   a:hnelt eher cpio als tar.

     --------------------------------------------------------------

  19.12.5. Amanda

   Amanda (Advanced Maryland Network Disk Archiver) ist ein
   Client/Server-Backupsystem, nicht nur ein einzelnes Programm. Ein
   Amanda-Server kann auf einem einzigen Bandlaufwerk
   Datensicherungen von jeder beliebigen Anzahl von Computern
   speichern, sofern auf diesen jeweils ein Amanda-Client la:uft und
   sie u:ber Netzwerk mit dem Amanda-Server verbunden sind.

   Ein ha:ufiges Problem bei Standorten mit einer Anzahl grosser
   Festplatten ist, dass das Kopieren der Daten auf Band langsamer
   vor sich geht als solche Daten anfallen. Amanda lo:st dieses
   Problem durch Verwendung einer "Holding Disk", einer Festplatte
   zum gleichzeitigen Zwischenspeichern mehrerer Dateisysteme.

   Fu:r Datensicherungen u:ber einen la:ngeren Zeitraum erzeugt
   Amanda "Archivsets" von allen Dateisystemen, die in Amandas
   Konfigurationsdatei genannt werden. Ein Archivset ist eine Gruppe
   von Ba:ndern mit vollen Backups und Reihen von inkrementellen
   (oder differentiellen) Backups, die jeweils nur die Unterschiede
   zum vorigen Backup enthalten. Zur Wiederherstellung von
   bescha:digten Dateisystemen beno:tigt man Das Letzte volle Backup
   und alle darauf folgenden inkrementellen Backups.

   Die Konfigurationsdatei ermo:glicht die Feineinstellung der
   Backups und des Netzwerkverkehrs von Amanda. Amanda kann zum
   Schreiben der Daten auf das Band jedes der oben beschriebenen
   Backuprogramme verwenden. Amanda ist nicht Teil des Basissystems,
   Sie mu:ssen Amanda u:ber die Ports-Sammlung oder als Paket
   installieren.

     --------------------------------------------------------------

  19.12.6. Tue nichts

   "Tue nichts" ist kein Computerprogramm, sondern die am ha:ufigsten
   angewendete Backupstrategie. Diese kostet nichts, man muss keinen
   Backup Plan befolgen, einfach nur nein sagen. Wenn etwas passiert,
   einfach grinsen und ertragen!

   Wenn Ihre Zeit und Ihre Daten nicht so wichtig sind, dann ist die
   Strategie "Tue nichts" das geeignetste Backup-Programm fu:r Ihren
   Computer. Aber UNIX ist ein nu:tzliches Werkzeug, Sie mu:ssen
   damit rechnen, dass Sie innerhalb von sechs Monaten eine Sammlung
   von Dateien haben, die fu:r Sie wertvoll geworden sind.

   "Tue nichts" ist die richtige Backupmethode fu:r /usr/obj und
   andere Verzeichnisba:ume, die vom Computer exakt wiedererzeugt
   werden ko:nnen. Ein Beispiel sind die Dateien, die diese
   Handbuchseiten darstellen - sie wurden aus Quelldateien im Format
   SGML erzeugt. Es ist nicht no:tig, Sicherheitskopien der Dateien
   in den sekunda:ren Formaten wie etwa HTML zu erstellen. Die
   Quelldateien in SGML sollten jedoch in die regelma:ssigen Backups
   mit einbezogen werden.

     --------------------------------------------------------------

  19.12.7. Welches Backup-Programm ist am Besten?

   dump, Punkt und Schluss. Elizabeth D. Zwicky hat alle hier
   genannten Backup-Programme bis zur Erscho:pfung ausgetestet. Ihre
   eindeutige Wahl zur Sicherung aller Daten mit Beru:cksichtigung
   aller Besonderheiten von UNIX Dateisystemen ist dump.

   Elizabeth erzeugte Dateisysteme mit einer grossen Vielfalt
   ungewo:hnlicher Bedingungen (und einiger gar nicht so
   ungewo:hnlicher) und testete jedes Programm durch ein Backup und
   eine Wiederherstellung dieser Dateisysteme. Unter den
   Besonderheiten waren Dateien mit Lo:chern, Dateien mit Lo:chern
   und einem Block mit Null-Zeichen, Dateien mit ausgefallenen
   Buchstaben im Dateinamen, unlesbare und nichtschreibbare Dateien,
   Gera:tedateien, Dateien, deren La:nge sich wa:hrend des Backups
   a:ndert, Dateien, die wa:hrend des Backups erzeugt und gelo:scht
   werden, u.v.m. Sie berichtete u:ber ihre Ergebnisse in LISA V im
   Oktober 1991, s. Torture-testing Backup and Archive Programs.

     --------------------------------------------------------------

  19.12.8. Die Wiederherstellung in einem Notfall

    19.12.8.1. Vor dem Unglu:ck

   Es sind nur vier Vorkehrungen zu treffen, um auf jedes erdenkliche
   Unglu:ck vorbereitet zu sein.

   Als erstes drucken Sie das bsdlabel jeder Ihrer Festplatten (z.B.
   mittels bsdlabel da0 | lpr), die Partitions- und
   Dateisystemtabelle jeder Festplatte (mit /etc/fstab) sowie alle
   Bootmeldungen, jeweils in zweifacher Ausfertigung.

   Zweitens brennen Sie eine "livefs"-CD. Diese CD-ROM entha:lt alle
   no:tigen Programme, um in einen Reperaturmodus zu starten, aus dem
   heraus Sie unter anderem dump(8), restore(8), fdisk(8),
   bsdlabel(8), newfs(8) sowie mount(8) starten ko:nnen. ISO-Abbilder
   fu:r das "livefs"-System finden Sie unter
   ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-livefs.iso.

   Drittens, machen Sie oft Backups auf Band. Jede A:nderung seit
   Ihrem letzten Backup kann unwiederbringlich verloren gehen.
   Versehen Sie die Backup-Ba:nder mit Schreibschutz.

   Viertens, testen Sie das in Schritt 2 erstellte "livefs"-System
   sowie die fu:r das Backup notwendigen Ba:nder. Dokumentieren Sie
   diesen Test und bewahren Sie diese Notizen zusammen mit der
   "livefs"-CD und den Ba:ndern auf. Wenn der Ernstfall eintritt,
   werden Sie vielleicht so genervt sein, dass Sie ohne Ihre Notizen
   vielleicht das Backup auf Ihren Ba:ndern zersto:ren. (Wie das
   geht? Man braucht nur unglu:cklicherweise den Befehl tar cvf
   /dev/sa0 einzugeben um ein Band zu u:berschreiben).

   Als zusa:tzliche Sicherheitsvorkehrung, kann man jeweils die
   "livefs"-CD und Ba:nder doppelt erstellen. Eine der Kopien sollte
   an einem entfernten Standort aufbewahrt werden. Ein entfernter
   Standort ist NICHT der Keller im gleichen Bu:rogeba:ude. Eine
   Anzahl von Firmen im World Trade Center musste diese Lektion auf
   die harte Tour lernen. Ein entfernter Standort sollte von Ihrem
   Computer und Ihren Festplatten physikalisch durch eine erhebliche
   Entfernung getrennt sein.

     --------------------------------------------------------------

    19.12.8.2. Nach dem Unglu:ck

   Die Schlu:sselfrage ist, ob Ihre Hardware u:berlebt hat. Denn da
   Sie ja regelma:ssig Backups angefertigt haben, brauchen Sie sich
   um die Software keine Sorgen zu machen.

   Falls die Hardware bescha:digt wurde, ersetzen Sie zuerst die
   defekten Teile bevor Sie den Computer benutzen.

   Falls die Hardware funktioniert, legen Sie die "livefs"-CD in das
   Laufwerk ein und starten den Rechner, wodurch das originale
   Installationsprogramm von FreeBSD gestartet wird. Legen Sie zuerst
   Ihr Land fest. Danach o:ffnen Sie das Menu: Fixit -- Repair mode
   with CDROM/DVD/floppy or start a shell. und wa:hlen den Eintrag
   CDROM/DVD -- Use the live filesystem CDROM/DVD aus. restore und
   die anderen Programme, die Sie beno:tigen, befinden sich dann im
   Verzeichnis /mnt2/rescue.

   Stellen Sie die Dateisysteme nacheinander wieder her.

   Versuchen Sie die Root-Partition Ihrer ersten Festplatte
   einzuha:ngen (z.B. mit mount /dev/sd0a /mnt). Wenn das Bsdlabel
   bescha:digt wurde, benutzen Sie bsdlabel um die Platte neu zu
   partitionieren und zu benennen und zwar so, dass die Festplatte
   mit dem Label u:bereinstimmt, das Sie ausgedruckt und aufbewahrt
   haben.

   Verwenden Sie newfs um neue Dateisysteme auf den Partitionen
   anzulegen. Ha:ngen Sie nun die Root-Partition der Festplatte mit
   Schreibzugriff ein (mit mount -u -o rw /mnt). Benutzen Sie Ihr
   Backup-Programm um die Daten fu:r das jeweilige Dateisystem aus
   den Backup-Ba:ndern wieder her zu stellen (z.B. durch restore vrf
   /dev/sta). Ha:ngen Sie das Dateisystem wieder aus (z.B. durch
   umount /mnt). Wiederholen Sie diesen Ablauf fu:r jedes betroffene
   Dateisystem.

   Sobald Ihr System wieder la:uft, machen Sie gleich wieder ein
   vollsta:ndiges Backup auf neue Ba:nder. Denn die Ursache fu:r den
   Absturz oder den Datenverlust kann wieder zuschlagen. Eine weitere
   Stunde, die Sie jetzt noch dranha:ngen, kann Ihnen spa:ter ein
   weiteres Missgeschick ersparen.

     --------------------------------------------------------------

19.13. Netzwerk-, speicher- und dateibasierte Dateisysteme

   Verbessert und neu strukturiert von Marc Fonvieille.

   Neben Laufwerken, die sich physikalisch im Rechner befinden wie
   Diskettenlaufwerke, CDs, Festplatten usw., kann FreeBSD auch mit
   anderen Laufwerken, den virtuellen Laufwerken, umgehen.

   Dazu za:hlen Netzwerkdateisysteme wie Network Filesystem und Coda,
   speicher- und dateibasierte Dateisysteme.

   Abha:ngig von der verwendeten FreeBSD Version werden speicher- und
   dateibasierte Dateisysteme mit unterschiedlichen Werkzeugen
   angelegt.

     Anmerkung: Gera:tedateien werden unter FreeBSD automatisch von
     devfs(5) angelegt.

     --------------------------------------------------------------

  19.13.1. Dateibasierte Laufwerke unter FreeBSD

   Unter FreeBSD werden virtuelle Laufwerke (md(4)) mit mdconfig(8)
   erzeugt. Dazu muss das Modul md(4) geladen sein oder das
   entsprechende Gera:t in der Kernelkonfiguration aktiviert sein:

 device md

   Mit mdconfig(8) ko:nnen drei verschiedene virtuelle Laufwerke
   angelegt werden: speicherbasierte Laufwerke, deren Speicher von
   malloc(9) zur Verfu:gung gestellt wird, oder dateibasierte
   Laufwerke, deren Speicher von einer Datei oder dem Swap-Bereich
   zur Verfu:gung gestellt wird. Eine mo:gliche Anwendung ist das
   Einha:ngen von Dateien, die Abbilder von CD-ROMs oder Disketten
   enthalten.

   Das Abbild eines Dateisystems wird wie folgt eingehangen:

   Beispiel 19-3. Einha:ngen eines existierenden Abbildes unter
   FreeBSD

 # mdconfig -a -t vnode -f diskimage -u 0
 # mount /dev/md0 /mnt

   Ein neues Dateisystem-Abbild erstellen Sie mit mdconfig(8) wie
   folgt:

   Beispiel 19-4. Erstellen eines dateibasierten Laufwerks mit
   mdconfig

 # dd if=/dev/zero of=newimage bs=1k count=5k
 5120+0 records in
 5120+0 records out
 # mdconfig -a -t vnode -f newimage -u 0
 # bsdlabel -w md0 auto
 # newfs md0a
 /dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
         using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
 super-block backups (for fsck -b #) at:
  160, 2720, 5280, 7840
 # mount /dev/md0a /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md0a       4710    4  4330     0%    /mnt

   Wenn Sie keine Gera:tenummer mit dem Schalter -u angeben, wird von
   md(4) automatisch eine ungenutzte Gera:tenummer zugewiesen. Das
   zugewiesene Gera:t wird auf der Standardausgabe ausgegeben (zum
   Beispiel md4). Weitere Informationen entnehmen Sie bitte der
   Hilfeseite mdconfig(8).

   Das Werkzeug mdconfig(8) ist sehr nu:tzlich, doch muss man viele
   Kommandos absetzen, um ein dateibasiertes Dateisystem zu
   erstellen. FreeBSD entha:lt das Werkzeug mdmfs(8), das die
   notwendigen Schritte in einem Befehl zusammenfasst. Es
   konfiguriert mit mdconfig(8) ein md(4)-Laufwerk, erstellt darauf
   mit newfs(8) ein Dateisystem und ha:ngt es anschliessend mit
   mount(8) ein. Das virtuelle Laufwerk aus dem obigen Beispiel kann
   somit einfach mit den nachstehenden Befehlen erstellt werden:

   Beispiel 19-5. Mit mdmfs ein dateibasiertes Dateisystem erstellen

 # dd if=/dev/zero of=newimage bs=1k count=5k
 5120+0 records in
 5120+0 records out
 # mdmfs -F newimage -s 5m md0 /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md0        4718    4  4338     0%    /mnt

   Wenn sie die Option md ohne Gera:tenummer verwenden, wa:hlt md(4)
   automatisch ein ungenutztes Gera:t aus. Weitere Einzelheiten
   entnehmen Sie bitte der Hilfeseite mdmfs(8).

     --------------------------------------------------------------

  19.13.2. Speicherbasierte Laufwerke unter FreeBSD

   Verwenden Sie ein speicherbasiertes Dateisystem, sollten Sie die
   Option "swap backing" aktivieren. Setzen Sie diese Option, heisst
   dies allerdings nicht, dass das speicherbasierte Laufwerk
   automatisch auf ihre Festplatte ausgelagert wird, vielmehr wird
   der Speicherplatz danach aus einem Speicherpool angefordert, der
   bei Bedarf auf die Platte ausgelagert werden kann. Zusa:tzlich ist
   es mo:glich, malloc(9)-gestu:tzte speicherbasierte Laufwerke zu
   erstellen. Das Anlegen solcher Laufwerke kann allerdings zu einer
   System-Panic fu:hren, wenn der Kernel danach u:ber zu wenig
   Speicher verfu:gt.

   Beispiel 19-6. Erstellen eines speicherbasierten Laufwerks mit
   mdconfig

 # mdconfig -a -t swap -s 5m -u 1
 # newfs -U md1
 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
         using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
         with soft updates
 super-block backups (for fsck -b #) at:
  160, 2752, 5344, 7936
 # mount /dev/md1 /mnt
 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md1        4718    4  4338     0%    /mnt

   Beispiel 19-7. Erstellen eines speicherbasierten Laufwerks mit
   mdmfs

 # mdmfs -s 5m md2 /mnt
 # df /mnt

 # df /mnt
 Filesystem 1K-blocks Used Avail Capacity  Mounted on
 /dev/md2        4846    2  4458     0%    /mnt

     --------------------------------------------------------------

  19.13.3. Virtuelle Laufwerke freigeben

   Wenn ein virtuelles Laufwerk nicht mehr gebraucht wird, sollten
   Sie dem System die belegten Ressourcen zuru:ckgeben. Ha:ngen Sie
   dazu zuerst das Dateisystem ab und geben Sie dann die benutzten
   Ressourcen mit mdconfig(8) frei.

   Alle von /dev/md4 belegten Ressourcen werden mit dem nachstehenden
   Kommando freigegeben:

 # mdconfig -d -u 4

   Eingerichtete md(4)-Gera:te werden mit dem Befehl mdconfig -l
   angezeigt.

     --------------------------------------------------------------

19.14. Schnappschu:sse von Dateisystemen

   Beigetragen von Tom Rhodes.

   Zusammen mit Soft Updates bietet FreeBSD eine neue Funktion:
   Schnappschu:sse von Dateisystemen.

   Schnappschu:sse sind Dateien, die ein Abbild eines Dateisystems
   enthalten und mu:ssen auf dem jeweiligen Dateisystem erstellt
   werden. Pro Dateisystem darf es maximal 20 Schnappschu:sse, die im
   Superblock vermerkt werden, geben. Schnappschu:sse bleiben
   erhalten, wenn das Dateisystem abgehangen, neu eingehangen oder
   das System neu gestartet wird. Wenn Sie einen Schnappschuss nicht
   mehr beno:tigen, ko:nnen Sie ihn mit rm(1) lo:schen. Es ist egal,
   in welcher Reihenfolge Schnappschu:sse gelo:scht werden. Es kann
   allerdings vorkommen, dass nicht der gesamte Speicherplatz wieder
   freigegeben wird, da ein anderer Schnappschuss einen Teil der
   entfernten Blo:cke fu:r sich beanspruchen kann.

   Das unvera:nderliche Snapshot-Dateiflag wird nach der Erstellung
   des Snaphshots von mksnap_ffs(8) gesetzt. Durch die Verwendung von
   unlink(1) ist es allerdings mo:glich, einen Schnappschuss zu
   lo:schen.

   Schnappschu:sse werden mit mount(8) erstellt. Das folgende
   Kommando legt einen Schnappschuss von /var in /var/snapshot/snap
   ab:

 # mount -u -o snapshot /var/snapshot/snap /var

   Den Schnappschuss ko:nnen Sie auch mit mksnap_ffs(8) erstellen:

 # mksnap_ffs /var /var/snapshot/snap

   Um einen Schnappschuss auf Ihrem System zu finden, verwenden Sie
   find(1):

 # find /var -flags snapshot

   Nachdem ein Schnappschuss erstellt wurde, ko:nnen Sie ihn fu:r
   verschiedene Zwecke benutzen:

     * Sie ko:nnen den Schnappschuss fu:r die Datensicherung benutzen
       und ihn auf eine CD oder ein Band schreiben.

     * Sie ko:nnen den Schnappschuss mit fsck(8) manuell pru:fen.
       Wenn das Dateisystem zum Zeitpunkt der Erstellung des
       Schnappschusses in Ordnung war, sollte fsck(8) immer
       erfolgreich durchlaufen. Der Hintergrund-Prozess fsck(8) hat
       im U:brigen genau diese Aufgabe.

     * Sie ko:nnen den Schnappschuss mit dump(8) sichern. Sie
       erhalten dann eine konsistente Sicherung des Dateisystems zu
       dem Zeitpunkt, der durch den Zeitstempel des Schnappschusses
       gegeben ist. Der Schalter -L von dump(8) erstellt fu:r die
       Sicherung einen Schnappschuss und entfernt diesen am Ende der
       Sicherung wieder.

     * Sie ko:nnen einen Schnappschuss in den Verzeichnisbaum
       einha:ngen und sich dann den Zustand des Dateisystems zu dem
       Zeitpunkt ansehen, an dem der Schnappschuss erstellt wurde.
       Der folgende Befehl ha:ngt den Schnappschuss
       /var/snapshot/snap ein:

 # mdconfig -a -t vnode -f /var/snapshot/snap -u 4
 # mount -r /dev/md4 /mnt

   Sie ko:nnen sich nun den eingefrorenen Stand des /var Dateisystems
   unterhalb von /mnt ansehen. Mit Ausnahme der fru:heren
   Schnappschu:sse, die als leere Dateien auftauchen, wird zu Beginn
   alles so aussehen, wie zum Zeitpunkt der Erstellung des
   Schnappschusses. Wenn Sie den Schnappschuss nicht mehr beno:tigen,
   ko:nnen Sie ihn, wie nachfolgend gezeigt, abha:ngen:

 # umount /mnt
 # mdconfig -d -u 4

   Weitere Informationen u:ber Soft Updates und Schnappschu:sse von
   Dateisystemen sowie technische Artikel finden Sie auf der Webseite
   von Marshall Kirk McKusick.

     --------------------------------------------------------------

19.15. Dateisystem-Quotas

   Quotas sind eine optionale Funktion des Betriebssystems, die es
   Ihnen erlauben, den Plattenplatz und/oder die Anzahl der Dateien
   eines Benutzers oder der Mitglieder einer Gruppe, auf
   Dateisystemebene zu beschra:nken. Oft wird dies auf
   Timesharing-Systemen (Mehrbenutzersystemen) genutzt, da es dort
   erwu:nscht ist, die Ressourcen, die ein Benutzer oder eine Gruppe
   von Benutzern belegen ko:nnen, zu limitieren. Das verhindert, dass
   ein Benutzer oder eine Gruppe von Benutzern den ganzen
   verfu:gbaren Plattenplatz belegt.

     --------------------------------------------------------------

  19.15.1. Konfiguration des Systems, um Quotas zu aktivieren

   Bevor Quotas benutzt werden ko:nnen, mu:ssen sie im Kernel
   konfiguriert werden, wozu die folgende Zeile der
   Kernelkonfiguration hinzugefu:gt wird:

 options QUOTA

   Im gewo:hnlichen GENERIC Kernel sind Quotas nicht aktiviert, so
   dass Sie einen angepassten Kernel konfigurieren und bauen mu:ssen,
   um Quotas zu benutzen. Weitere Informationen finden Sie in Kapitel
   9.

   Durch Hinzufu:gen der folgenden Zeile in /etc/rc.conf wird das
   Quota-System in FreeBSD 7.X und a:ltere aktiviert:

 enable_quotas="YES"

   Seit FreeBSD 8.0-RELEASE und dessen Nachfolger fu:gen Sie
   stattdessen die folgende Zeile hinzu:

 quota_enable="YES"

   Um den Start des Quota-Systems zu beeinflussen, steht eine weitere
   Variable zur Verfu:gung. Normalerweise wird beim Booten die
   Integrita:t der Quotas auf allen Dateisystemen mit quotacheck(8)
   u:berpru:ft. quotacheck(8) stellt sicher, dass die Quota-Datenbank
   mit den Daten auf einem Dateisystem u:bereinstimmt. Dies ist
   allerdings ein sehr zeitraubender Prozess, der die Zeit, die das
   System zum Booten braucht, signifikant beeinflusst. Eine Variable
   in /etc/rc.config erlaubt es Ihnen, diesen Schritt zu
   u:berspringen:

 check_quotas="NO"

   Schliesslich mu:ssen Sie noch in /etc/fstab die Plattenquotas auf
   Dateisystemebene aktivieren. Dort ko:nnen Sie fu:r alle
   Dateisysteme Quotas fu:r Benutzer, Gruppen oder fu:r beide
   aktivieren.

   Um Quotas pro Benutzer fu:r ein Dateisystem zu aktivieren, geben
   Sie fu:r dieses Dateisystem die Option userquota im Feld Optionen
   von /etc/fstab an. Beispiel:

 /dev/da1s2g   /home    ufs rw,userquota 1 2

   Um Quotas fu:r Gruppen einzurichten, verwenden Sie groupquota
   anstelle von userquota. Um Quotas fu:r Benutzer und Gruppen
   einzurichten, a:ndern Sie den Eintrag wie folgt ab:

 /dev/da1s2g    /home    ufs rw,userquota,groupquota 1 2

   Die Quotas werden jeweils im Rootverzeichnis des Dateisystems
   unter dem Namen quota.user fu:r Benutzer-Quotas und quota.group
   fu:r Gruppen-Quotas abgelegt. Obwohl fstab(5) beschreibt, dass
   diese Dateien an anderer Stelle gespeichert werden ko:nnen, wird
   das nicht empfohlen, da es den Anschein hat, dass die
   verschiedenen Quota-Utilities das nicht richtig unterstu:tzen.

   Jetzt sollten Sie Ihr System mit dem neuen Kernel booten. /etc/rc
   wird dann automatisch die richtigen Kommandos aufrufen, die die
   Quota-Dateien fu:r alle Quotas, die Sie in /etc/fstab definiert
   haben, anlegen. Deshalb mu:ssen vorher auch keine leeren
   Quota-Dateien angelegt werden.

   Normalerweise brauchen Sie die Kommandos quotacheck(8), quotaon(8)
   oder quotaoff(8) nicht ha:ndisch aufzurufen, obwohl Sie vielleicht
   die entsprechenden Seiten im Manual lesen sollten, um sich mit
   ihnen vertraut zu machen.

     --------------------------------------------------------------

  19.15.2. Setzen von Quota-Limits

   Nachdem Sie Quotas in Ihrem System aktiviert haben, sollten Sie
   u:berpru:fen, dass Sie auch tatsa:chlich aktiviert sind. Fu:hren
   Sie dazu einfach den folgenden Befehl aus:

 # quota -v

   Fu:r jedes Dateisystem, auf dem Quotas aktiviert sind, sollten Sie
   eine Zeile mit der Plattenauslastung und den aktuellen
   Quota-Limits sehen.

   Mit edquota(8) ko:nnen Sie nun Quota-Limits setzen.

   Sie haben mehrere Mo:glichkeiten, die Limits fu:r den
   Plattenplatz, den ein Benutzer oder eine Gruppe verbrauchen kann,
   oder die Anzahl der Dateien, die angelegt werden du:rfen,
   festzulegen. Die Limits ko:nnen auf dem Plattenplatz
   (Block-Quotas) oder der Anzahl der Dateien (Inode-Quotas) oder
   einer Kombination von beiden basieren. Jedes dieser Limits wird
   weiterhin in zwei Kategorien geteilt: Hardlimits und Softlimits.

   Ein Hardlimit kann nicht u:berschritten werden. Hat der Benutzer
   einmal ein Hardlimit erreicht, so kann er auf dem betreffenden
   Dateisystem keinen weiteren Platz mehr beanspruchen. Hat ein
   Benutzer beispielsweise ein Hardlimit von 500 Kilobytes auf einem
   Dateisystem und benutzt davon 490 Kilobyte, so kann er nur noch 10
   weitere Kilobytes beanspruchen. Der Versuch, weitere 11 Kilobytes
   zu beanspruchen, wird fehlschlagen.

   Im Gegensatz dazu ko:nnen Softlimits fu:r eine befristete Zeit
   u:berschritten werden. Diese Frist betra:gt in der
   Grundeinstellung eine Woche. Hat der Benutzer das Softlimit u:ber
   die Frist hinaus u:berschritten, so wird das Softlimit in ein
   Hardlimit umgewandelt und der Benutzer kann keinen weiteren Platz
   mehr beanspruchen. Wenn er einmal das Softlimit unterschreitet,
   wird die Frist wieder zuru:ckgesetzt.

   Das folgende Beispiel zeigt die Benutzung von edquota(8). Wenn
   edquota(8) aufgerufen wird, wird der Editor gestartet, der durch
   EDITOR gegeben ist oder vi falls EDITOR nicht gesetzt ist. In dem
   Editor ko:nnen Sie die Limits eingeben.

 # edquota -u test

 Quotas for user test:
 /usr: kbytes in use: 65, limits (soft = 50, hard = 75)
         inodes in use: 7, limits (soft = 50, hard = 60)
 /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
         inodes in use: 0, limits (soft = 50, hard = 60)

   Fu:r jedes Dateisystem, auf dem Quotas aktiv sind, sehen Sie zwei
   Zeilen, eine fu:r die Block-Quotas und die andere fu:r die
   Inode-Quotas. Um ein Limit zu modifizieren, a:ndern Sie einfach
   den angezeigten Wert. Um beispielsweise das Blocklimit dieses
   Benutzers von einem Softlimit von 50 und einem Hardlimit von 75
   auf ein Softlimit von 500 und ein Hardlimit von 600 zu erho:hen,
   a:ndern Sie die Zeile

 /usr: kbytes in use: 65, limits (soft = 50, hard = 75)

   zu:

 /usr: kbytes in use: 65, limits (soft = 500, hard = 600)

   Die neuen Limits sind wirksam, wenn Sie den Editor verlassen.

   Manchmal ist es erwu:nscht, die Limits fu:r einen Bereich von UIDs
   zu setzen. Dies kann mit der -p Option von edquota(8)
   bewerkstelligt werden. Weisen Sie dazu die Limits einem Benutzer
   zu und rufen danach edquota -p protouser startuid-enduid auf.
   Besitzt beispielsweise der Benutzer test die gewu:nschten Limits,
   ko:nnen diese mit dem folgenden Kommando fu:r die UIDs 10.000 bis
   19.999 dupliziert werden:

 # edquota -p test 10000-19999

   Weitere Informationen erhalten Sie in edquota(8).

     --------------------------------------------------------------

  19.15.3. U:berpru:fen von Quota-Limits und Plattennutzung

   Sie ko:nnen quota(1) oder repquota(8) benutzen, um Quota-Limits
   und Plattennutzung zu u:berpru:fen. Um die Limits oder die
   Plattennutzung individueller Benutzer und Gruppen zu u:berpru:fen,
   kann quota(1) benutzt werden. Ein Benutzer kann nur die eigenen
   Quotas und die Quotas der Gruppe, der er angeho:rt untersuchen.
   Nur der Superuser darf sich alle Limits ansehen. Mit repquota(8)
   erhalten Sie eine Zusammenfassung von allen Limits und der
   Plattenausnutzung fu:r alle Dateisysteme, auf denen Quotas aktiv
   sind.

   Das folgende Beispiel zeigt die Ausgabe von quota -v fu:r einen
   Benutzer, der Quota-Limits auf zwei Dateisystemen besitzt:

 Disk quotas for user test (uid 1002):
      Filesystem  usage   quota   limit   grace   files   quota   limit   grace
            /usr      65*     50      75   5days       7      50      60
        /usr/var       0      50      75               0      50      60

   Im Dateisystem /usr liegt der Benutzer momentan 15 Kilobytes u:ber
   dem Softlimit von 50 Kilobytes und hat noch 5 Tage seiner Frist
   u:brig. Der Stern * zeigt an, dass der Benutzer sein Limit
   u:berschritten hat.

   In der Ausgabe von quota(1) werden Dateisysteme, auf denen ein
   Benutzer keinen Platz verbraucht, nicht angezeigt, auch wenn
   diesem Quotas zugewiesen wurden. Mit -v werden diese Dateisysteme,
   wie /usr/var im obigen Beispiel, angezeigt.

     --------------------------------------------------------------

  19.15.4. Quotas u:ber NFS

   Quotas werden von dem Quota-Subsystem auf dem NFS Server
   erzwungen. Der rpc.rquotad(8) Daemon stellt quota(1) die Quota
   Informationen auf dem NFS Client zur Verfu:gung, so dass Benutzer
   auf diesen Systemen ihre Quotas abfragen ko:nnen.

   Aktivieren Sie rpc.rquotad in /etc/inetd.conf wie folgt:

 rquotad/1      dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad

   Anschliessend starten Sie inetd neu:

 # /etc/rc.d/inetd restart

     --------------------------------------------------------------

19.16. Partitionen verschlu:sseln

   Beigetragen von Lucky Green.

   FreeBSD bietet ausgezeichnete Mo:glichkeiten, Daten vor
   unberechtigten Zugriffen zu schu:tzen. Wenn das Betriebssystem
   la:uft, schu:tzen Zugriffsrechte und vorgeschriebene
   Zugriffskontrollen (MAC) (siehe Kapitel 17) die Daten. Die
   Zugriffskontrollen des Betriebssystems schu:tzen allerdings nicht
   vor einem Angreifer, der Zugriff auf den Rechner hat. Der
   Angreifer kann eine Festplatte einfach in ein anderes System
   einbauen und dort die Daten analysieren.

   Die fu:r FreeBSD verfu:gbaren kryptografischen Subsysteme GEOM
   Based Disk Encryption (gbde) und geli sind in der Lage, Daten auf
   Dateisystemen auch vor hoch motivierten Angreifern zu schu:tzen,
   die u:ber erhebliche Mittel verfu:gen. Dieser Schutz ist
   unabha:ngig von der Art und Weise, durch die ein Angreifer Zugang
   zu einer Festplatte oder zu einem Rechner erlangt hat. Im
   Gegensatz zu schwerfa:lligen Systemen, die einzelne Dateien
   verschlu:sseln, verschlu:sseln gbde und geli transparent ganze
   Dateisysteme. Auf der Festplatte werden dabei keine Daten im
   Klartext gespeichert.

     --------------------------------------------------------------

  19.16.1. Plattenverschlu:sselung mit gbde

    1. Wechseln sie zu root

       Sie beno:tigen Superuser-Rechte, um gbde einzurichten.

 % su -
 Password:

    2. Aktivieren Sie gbde(4) in der Kernelkonfigurationsdatei

       Fu:gen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei
       ein:

       options GEOM_BDE

       U:bersetzen und installieren Sie den FreeBSD-Kernel wie in
       Kapitel 9 beschrieben.

       Starten sie das System neu, um den neuen Kernel zu benutzen.

    3. Alternativ zur Neukompilierung des Kernels ko:nnen Sie auch
       kldload verwenden, um das Kernelmodul gbde(4) zu laden:

 # kldload geom_bde

     --------------------------------------------------------------

    19.16.1.1. Einrichten eines verschlu:sselten Dateisystems

   Das folgende Beispiel beschreibt, wie ein Dateisystem auf einer
   neuen Festplatte verschlu:sselt wird. Das Dateisystem wird in
   /private eingehangen. Mit gbde ko:nnten auch /home und /var/mail
   verschlu:sselt werden. Die dazu no:tigen Schritte ko:nnen
   allerdings in dieser Einfu:hrung nicht behandelt werden.

    1. Installieren der Festplatte

       Installieren Sie die Festplatte wie in Abschnitt 19.3
       beschrieben. Im Beispiel verwenden wir die Partition
       /dev/ad4s1c. Die Gera:tedateien /dev/ad0s1* sind
       Standard-Partitionen des FreeBSD-Systems.

 # ls /dev/ad*
 /dev/ad0        /dev/ad0s1b     /dev/ad0s1e     /dev/ad4s1
 /dev/ad0s1      /dev/ad0s1c     /dev/ad0s1f     /dev/ad4s1c
 /dev/ad0s1a     /dev/ad0s1d     /dev/ad4

    2. Verzeichnis fu:r gbde-Lock-Dateien anlegen

 # mkdir /etc/gbde

       Die Lock-Dateien sind fu:r den Zugriff von gbde auf
       verschlu:sselte Partitionen notwendig. Ohne die Lock-Dateien
       ko:nnen die Daten nur mit erheblichem manuellen Aufwand wieder
       entschlu:sselt werden (dies wird auch von der Software nicht
       unterstu:tzt). Jede verschlu:sselte Partition beno:tigt eine
       gesonderte Lock-Datei.

    3. Vorbereiten der gbde-Partition

       Eine von gbde benutzte Partition muss einmalig vorbereitet
       werden:

 # gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock

       gbde(8) o:ffnet eine Vorlage in Ihrem Editor, in der Sie
       verschiedene Optionen einstellen ko:nnen. Setzen Sie
       sector_size auf 2048, wenn Sie UFS1 oder UFS2 benutzen.

 # $FreeBSD: src/sbin/gbde/template.txt,v 1.1.36.1 2009/08/03 08:13:06 kensmith Exp $
 #
 # Sector size is the smallest unit of data which can be read or written.
 # Making it too small decreases performance and decreases available space.
 # Making it too large may prevent filesystems from working.  512 is the
 # minimum and always safe.  For UFS, use the fragment size
 #
 sector_size     =       2048
 [...]

       gbde(8) fragt dann zweimal eine Passphrase zum Schutz der
       Daten ab. Die Passphrase muss beides Mal gleich eingegeben
       werden. Die Sicherheit der Daten ha:ngt alleine von der
       Qualita:t der gewa:hlten Passphrase ab. [12]

       Mit gbde init wurde im Beispiel auch die Lock-Datei
       /etc/gbde/ad4s1c.lock angelegt. gbde-Lockdateien mu:ssen die
       Dateiendung ".lock" aufweisen, damit sie von /etc/rc.d/gbde,
       dem Startskript von gbde, erkannt werden.

         Achtung: Sichern Sie die Lock-Dateien von gbde immer
         zusammen mit den verschlu:sselten Dateisystemen. Ein
         entschlossener Angreifer kann die Daten vielleicht auch ohne
         die Lock-Datei entschlu:sseln. Ohne die Lock-Datei ko:nnen
         Sie allerdings nicht auf die verschlu:sselten Daten
         zugreifen. Dies ist nur noch mit erheblichem manuellen
         Aufwand mo:glich, der weder von gbde(8) noch seinem
         Entwickler unterstu:tzt wird.

    4. Einbinden der verschlu:sselten Partition in den Kernel

 # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock

       Das Kommando fragt die Passphrase ab, die Sie beim Vorbereiten
       der Partition eingegeben haben. Das neue Gera:t erscheint
       danach als /dev/device_name.bde im Verzeichnis /dev:

 # ls /dev/ad*
 /dev/ad0        /dev/ad0s1b     /dev/ad0s1e     /dev/ad4s1
 /dev/ad0s1      /dev/ad0s1c     /dev/ad0s1f     /dev/ad4s1c
 /dev/ad0s1a     /dev/ad0s1d     /dev/ad4        /dev/ad4s1c.bde

    5. Dateisystem auf dem verschlu:sselten Gera:t anlegen

       Wenn der Kernel die verschlu:sselte Partition kennt, ko:nnen
       Sie ein Dateisystem auf ihr anlegen. Benutzen Sie dazu den
       Befehl newfs(8). Da ein Dateisystem vom Typ UFS2 sehr viel
       schneller als eins vom Typ UFS1 angelegt wird, empfehlen wir
       Ihnen, die Option -O2 zu benutzen.

 # newfs -U -O2 /dev/ad4s1c.bde

         Anmerkung: newfs(8) muss auf einer dem Kernel bekannten
         gbde-Partition (einem Gera:t mit dem Namen *.bde laufen.

    6. Einha:ngen der verschlu:sselten Partition

       Legen Sie einen Mountpunkt fu:r das verschlu:sselte
       Dateisystem an:

 # mkdir /private

       Ha:ngen Sie das verschlu:sselte Dateisystem ein:

 # mount /dev/ad4s1c.bde /private

    7. U:berpru:fen des verschlu:sselten Dateisystem

       Das verschlu:sselte Dateisystem sollte jetzt von df(1) erkannt
       werden und benutzt werden ko:nnen.

 % df -H
 Filesystem        Size   Used  Avail Capacity  Mounted on
 /dev/ad0s1a      1037M    72M   883M     8%    /
 /devfs            1.0K   1.0K     0B   100%    /dev
 /dev/ad0s1f       8.1G    55K   7.5G     0%    /home
 /dev/ad0s1e      1037M   1.1M   953M     0%    /tmp
 /dev/ad0s1d       6.1G   1.9G   3.7G    35%    /usr
 /dev/ad4s1c.bde   150G   4.1K   138G     0%    /private

     --------------------------------------------------------------

    19.16.1.2. Einha:ngen eines existierenden verschlu:sselten
    Dateisystems

   Nach jedem Neustart mu:ssen verschlu:sselte Dateisysteme dem
   Kernel wieder bekannt gemacht werden, auf Fehler u:berpru:ft
   werden und eingehangen werden. Die dazu no:tigen Befehle mu:ssen
   als root durchgefu:hrt werden.

    1. gbde-Partition im Kernel bekannt geben

 # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock

       Das Kommando fragt nach der Passphrase, die Sie beim
       Vorbereiten der verschlu:sselten gbde-Partition festgelegt
       haben.

    2. Pru:fen des Dateisystems

       Das verschlu:sselte Dateisystem kann noch nicht automatisch
       u:ber /etc/fstab eingehangen werden. Daher muss es vor dem
       Einha:ngen mit fsck(8) gepru:ft werden:

 # fsck -p -t ffs /dev/ad4s1c.bde

    3. Einha:ngen des verschlu:sselten Dateisystems

 # mount /dev/ad4s1c.bde /private

       Das verschlu:sselte Dateisystem steht danach zur Verfu:gung.

     --------------------------------------------------------------

      19.16.1.2.1. Verschlu:sselte Dateisysteme automatisch einha:ngen

   Mit einem Skript ko:nnen verschlu:sselte Dateisysteme automatisch
   bekannt gegeben, gepru:ft und eingehangen werden. Wir raten Ihnen
   allerdings aus Sicherheitsgru:nden davon ab. Starten Sie das
   Skript manuell an der Konsole oder in einer ssh(1)-Sitzung.

   Zu diesem Zweck existiert ein rc.d-Skript, an das u:ber Eintra:ge
   in der Datei rc.conf(5) Argumente u:bergeben werden ko:nnen. Dazu
   ein Beispiel:

 gbde_autoattach_all="YES"
 gbde_devices="ad4s1c"
 gbde_lockdir="/etc/gbde"

   Durch diese Argumente muss beim Systemstart die gbde-Passphrase
   eingegeben werden. Erst nach Eingabe der korrekten Passphrase wird
   die gbde-verschlu:sselte Partition automatisch in den
   Verzeichnisbaum eingeha:ngt. Dieses Vorgehen ist insbesondere dann
   nu:tzlich, wenn Sie gbde auf einem Notebook einsetzen wollen.

     --------------------------------------------------------------

    19.16.1.3. Kryptografische Methoden von gbde

   gbde(8) benutzt den 128-Bit AES im CBC-Modus, um die Daten eines
   Sektors zu verschlu:sseln. Jeder Sektor einer Festplatte wird mit
   einem unterschiedlichen AES-Schlu:ssel verschlu:sselt. Mehr
   Informationen, unter anderem wie die Schlu:ssel fu:r einen Sektor
   aus der gegebenen Passphrase ermittelt werden, erhalten Sie in
   gbde(4).

     --------------------------------------------------------------

    19.16.1.4. Kompatibilita:t

   sysinstall(8) kann nicht mit verschlu:sselten gbde-Gera:ten
   umgehen. Vor dem Start von sysinstall(8) sind alle *.bde-Gera:te
   zu deaktivieren, da sysinstall(8) sonst bei der Gera:tesuche
   abstu:rzt. Das im Beispiel verwendete Gera:t wird mit dem
   folgenden Befehl deaktiviert:

 # gbde detach /dev/ad4s1c

     Anmerkung: Sie ko:nnen gbde nicht zusammen mit vinum benutzen,
     da vinum(4) das geom(4)-Subsystem nicht benutzt.

     --------------------------------------------------------------

  19.16.2. Plattenverschlu:sselung mit geli

   Beigetragen von Daniel Gerzo.

   geli ist als alternative kryptografische GEOM-Klasse verfu:gbar
   und wird derzeit von Pawel Jakub Dawidek <pjd@FreeBSD.org>
   weiterentwickelt. geli unterscheidet sich von gbde durch
   unterschiedliche Fa:higkeiten und einen unterschiedlichen Ansatz
   fu:r die Verschlu:sselung von Festplatten.

   Die wichtigsten Merkmale von geli(8) sind:

     * Der Einsatz des crypto(9)-Frameworks - verfu:gt das System
       u:ber kryptografische Hardware, wird diese von geli
       automatisch verwendet.

     * Die Unterstu:tzung verschiedener kryptografischer Algorithmen
       (derzeit AES, Blowfish, sowie 3DES).

     * Die Mo:glichkeit, die root-Partition zu verschlu:sseln. Um auf
       die verschlu:sselte root-Partition zugreifen zu ko:nnen, muss
       beim Systemstart die Passphrase eingegeben werden.

     * geli erlaubt den Einsatz von zwei voneinander unabha:ngigen
       Schlu:sseln (etwa einem privaten "Schlu:ssel" und einem
       "Unternehmens-Schlu:ssel").

     * geli ist durch einfache Sektor-zu-Sektor-Verschlu:sselung sehr
       schnell.

     * Die Mo:glichkeit, Master-Keys zu sichern und
       wiederherzustellen. Wenn ein Benutzer seinen Schlu:ssel
       zersto:rt, kann er u:ber seinen zuvor gesicherten Schlu:ssel
       wieder auf seine Daten zugreifen.

     * geli erlaubt es, Platten mit einem zufa:lligen
       Einmal-Schlu:ssel einzusetzen, was insbesondere fu:r
       Swap-Partitionen und tempora:re Dateisysteme interessant ist.

   Weitere Informationen zu den Fa:higkeiten von geli finden Sie in
   geli(8).

   Die folgenden Schritte beschreiben, wie Sie geli im FreeBSD-Kernel
   aktivieren und einen geli-Verschlu:sselungs-Provider anlegen
   ko:nnen.

   Da Sie Ihren Kernel anpassen mu:ssen, beno:tigen Sie ausserdem
   root-Privilegien.

    1. Aufnahme der geli-Unterstu:tzung in Ihre
       Kernelkonfigurationsdatei

       Fu:gen Sie die folgenden Zeilen in Ihre
       Kernelkonfigurationsdatei ein:

 options GEOM_ELI
 device crypto

       Bauen und installieren Sie Ihren neuen Kernel wie in Kapitel 9
       beschrieben.

       Alternativ ko:nnen Sie aber auch das geli-Kernelmodul beim
       Systemstart laden. Dazu fu:gen Sie die folgende Zeile in
       /boot/loader.conf ein:

 geom_eli_load="YES"

       Ab sofort wird geli(8) vom Kernel unterstu:tzt.

    2. Erzeugen des Master-Keys

       Das folgende Beispiel beschreibt, wie Sie eine Schlu:sseldatei
       erzeugen, die als Teil des Master-Keys fu:r den
       Verschlu:sselungs-Provider verwendet wird, der unter /private
       in den Verzeichnisbaum eingeha:ngt ("gemountet") wird. Diese
       Schlu:sseldatei liefert zufa:llige Daten, die fu:r die
       Verschlu:sselung des Master-Keys beno:tigt werden. Zusa:tzlich
       wird der Master-Key durch eine Passphrase geschu:tzt. Die
       Sektorgro:sse des Providers betra:gt 4 KB. Ausserdem wird
       beschrieben, wie Sie einen geli-Provider aktivieren, ein vom
       ihm verwaltetes Dateisystem erzeugen, es mounten, mit ihm
       arbeiten und wie Sie es schliesslich wieder unmounten und den
       Provider deaktivieren.

       Um eine bessere Leistung zu erzielen, sollten Sie eine
       gro:ssere Sektorgro:sse (beispielsweise 4 KB) verwenden.

       Der Master-Key wird durch eine Passphrase sowie die Daten der
       Schlu:sseldatei (die von /dev/random stammen) geschu:tzt. Die
       Sektorgro:sse von /dev/da2.eli (das als Provider bezeichnet
       wird) betra:gt 4 KB.

 # dd if=/dev/random of=/root/da2.key bs=64 count=1
 # geli init -s 4096 -K /root/da2.key /dev/da2
 Enter new passphrase:
 Reenter new passphrase:

       Es ist nicht zwingend no:tig, sowohl eine Passphrase als auch
       eine Schlu:sseldatei zu verwenden. Die einzelnen Methoden
       ko:nnen auch unabha:ngig voneinander eingesetzt werden.

       Wird fu:r die Schlu:sseldatei der Wert "-" angegeben, wird
       dafu:r die Standardeingabe verwendet. Das folgende Beispiel
       zeigt, dass Sie auch mehr als eine Schlu:sseldatei verwenden
       ko:nnen.

 # cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2

    3. Aktivieren des Providers mit dem erzeugten Schlu:ssel

 # geli attach -k /root/da2.key /dev/da2
 Enter passphrase:

       Dadurch wird die (Normaltext-)Gera:tedatei /dev/da2.eli
       angelegt.

 # ls /dev/da2*
 /dev/da2  /dev/da2.eli

    4. Das neue Dateisystem erzeugen

 # dd if=/dev/random of=/dev/da2.eli bs=1m
 # newfs /dev/da2.eli
 # mount /dev/da2.eli /private

       Das verschlu:sselte Dateisystem wird nun von df(1) angezeigt
       und kann ab sofort eingesetzt werden.

 # df -H
 Filesystem     Size   Used  Avail Capacity  Mounted on
 /dev/ad0s1a    248M    89M   139M    38%    /
 /devfs         1.0K   1.0K     0B   100%    /dev
 /dev/ad0s1f    7.7G   2.3G   4.9G    32%    /usr
 /dev/ad0s1d    989M   1.5M   909M     0%    /tmp
 /dev/ad0s1e    3.9G   1.3G   2.3G    35%    /var
 /dev/da2.eli   150G   4.1K   138G     0%    /private

    5. Das Dateisystem unmounten und den Provider deaktivieren

       Wenn Sie nicht mehr mit dem verschlu:sselten Dateisystem
       arbeiten und die unter /private eingeha:ngte Partition daher
       nicht mehr beno:tigen, sollten Sie diese unmounten und den
       geli-Verschlu:sselungs-Provider wieder deaktivieren.

 # umount /private
 # geli detach da2.eli

   Weitere Informationen zum Einsatz von geli finden Sie in geli(8).

     --------------------------------------------------------------

    19.16.2.1. Der Einsatz des geli- rc.d-Skripts

   geli verfu:gt u:ber ein rc.d-Skript, das den Einsatz von geli
   deutlich vereinfacht. Es folgt nun ein Beispiel, in dem geli u:ber
   die Datei rc.conf(5) konfiguriert wird:

 geli_devices="da2"
 geli_da2_flags="-p -k /root/da2.key"

   Durch diese Eintra:ge wird /dev/da2 als geli-Provider festgelegt.
   Der Master-Key befindet sich in /root/da2.key. Beim Aktivieren des
   geli-Providers wird keine Passphrase abgefragt (beachten Sie, dass
   dies nur dann mo:glich ist, wenn Sie geli mit dem Parameter -P
   initialisieren). Wird das System heruntergefahren, wird der
   geli-Provider zuvor deaktiviert.

   Weitere Informationen zur Konfiguration der rc.d-Skripten finden
   Sie im Abschnitt rc.d des Handbuchs.

     --------------------------------------------------------------

19.17. Den Auslagerungsspeicher verschlu:sseln

   Geschrieben von Christian Bru:ffer.

   Die Verschlu:sselung des Auslagerungsspeichers ist unter FreeBSD
   einfach einzurichten. Je nach dem, welche FreeBSD-Version Sie
   einsetzen, ko:nnen Konfiguration und mo:gliche Optionen allerdings
   unterschiedlich sein. Sie ko:nnen entweder das gbde(8)- oder das
   geli(8)-Verschlu:sselungs-Subsystem einsetzen. Beide Subsysteme
   werden u:ber das rc.d-Skript encswap gestartet.

   Der letzte Abschnitt, Partitionen verschlu:sseln, entha:lt eine
   kurze Beschreibung der verschiedenen Verschlu:sselungs-Subsysteme.

     --------------------------------------------------------------

  19.17.1. Warum sollte der Auslagerungsspeicher verschlu:sselt werden?

   Wie die Verschlu:sselung von Plattenpartitionen dient auch die
   Verschlu:sselung des Auslagerungsspeichers dem Schutz sensitiver
   Informationen. Stellen Sie sich etwa eine Anwendung vor, die ein
   Passwort erfordert. Solange dieses Passwort im Hauptspeicher
   verbleibt, ist alles in Ordnung. Beginnt Ihr Betriebssystem
   allerdings, Daten auf die Festplatte auszulagern, um im
   Hauptspeicher Platz fu:r andere Anwendungen zu schaffen, kann es
   passieren, dass Ihr Passwort im Klartext in den
   Auslagerungsspeicher geschrieben wird, was es einem potentiellen
   Angreifer leicht macht, Ihr Passwort herauszufinden. Die
   Verschlu:sselung Ihres Auslagerungsspeichers kann dieses Problem
   lo:sen.

     --------------------------------------------------------------

  19.17.2. Vorbereitungen

     Anmerkung: Fu:r die weiteren Ausfu:hrungen dieses Abschnitts
     stellt ad0s1b die Swap-Partition dar.

   Noch ist Ihr Auslagerungsspeicher nicht verschlu:sselt. Es ko:nnte
   allerdings sein, dass bereits Passwo:rter oder andere sensitive
   Daten als Klartext im Auslagerungsspeicher vorhanden sind. Daher
   sollten Sie den Auslagerungsspeicher komplett mit zufa:llig
   generierten Zeichen u:berschreiben, bevor Sie ihn verschlu:sseln:

 # dd if=/dev/random of=/dev/ad0s1b bs=1m

     --------------------------------------------------------------

  19.17.3. Den Auslagerungsspeicher mit gbde(8) verschlu:sseln

   In der Datei /etc/fstab sollte das Suffix .bde an den Gera:tenamen
   der Swap-Partition anha:ngt werden:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/ad0s1b.bde         none            swap    sw              0       0

     --------------------------------------------------------------

  19.17.4. Den Auslagerungsspeicher mit geli(8) verschlu:sseln

   Alternativ ko:nnen Sie Ihren Auslagerungsspeicher auch mit geli(8)
   verschlu:sseln. Die Vorgehensweise ist dabei a:hnlich. Allerdings
   ha:ngen Sie bei der Verwendung von geli(8) in /etc/fstab das
   Suffix .eli an den Gera:tenamen der Swap-Partition an:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/ad0s1b.eli         none            swap    sw              0       0

   In der Voreinstellung verschlu:sselt geli(8) den
   Auslagerungsspeicher mit dem AES-Algorithmus und einer
   Schlu:ssella:nge von 128 Bit.

   Es ist mo:glich, diese Optionen durch das Setzen der
   geli_swap_flags-Option in /etc/rc.conf anzupassen. Die folgende
   Zeile weist das rc.d-Skript encswap an, geli(8)-Swap-Partitionen
   mit dem Blowfish-Algorithmus und einer Schlu:ssella:nge von
   128 Bit zu verschlu:sseln. Zusa:tzlich wird die Sektorgro:sse auf
   4 Kilobyte gesetzt und die Option "detach on last close"
   aktiviert:

 geli_swap_flags="-e blowfish -l 128 -s 4096 -d"

   Eine Auflistung mo:glicher Optionen fu:r den Befehl onetime finden
   Sie in der Manualpage zu geli(8).

     --------------------------------------------------------------

  19.17.5. Die korrekte Funktion testen

   Nachdem Sie Ihr System neu gestartet haben, ko:nnen Sie die
   korrekte Funktion Ihres verschlu:sselten Auslagerungsspeichers
   pru:fen, indem Sie sich die Ausgabe von swapinfo ansehen.

   Wenn Sie gbde(8) einsetzen, erhalten Sie eine Meldung a:hnlich der
   folgenden:

 % swapinfo
 Device          1K-blocks     Used    Avail Capacity
 /dev/ad0s1b.bde    542720        0   542720     0%

   Wenn Sie geli(8) einsetzen, erhalten Sie hingegen eine Ausgabe
   a:hnlich der folgenden:

 % swapinfo
 Device          1K-blocks     Used    Avail Capacity
 /dev/ad0s1b.eli    542720        0   542720     0%

     --------------------------------------------------------------

19.18. Highly Available Storage (HAST)

   Beigetragen von Daniel Gerzo. Mit Beitra:gen von Freddie Cash,
   Pawel Jakub Dawidek, Michael W. Lucas und Viktor Petersson.
   U:bersetzt von Benedict Reuschling.

     --------------------------------------------------------------

  19.18.1. U:berblick

   Hochverfu:gbarkeit ist eine der Hauptanforderungen von ernsthaften
   Gescha:ftsanwendungen und hochverfu:gbarer Speicher ist eine
   Schlu:sselkomponente in solchen Umgebungen. Highly Available
   STorage, oder HAST, wurde von Pawel Jakub Dawidek
   <pjd@FreeBSD.org> als ein Framework entwickelt, welches die
   transparente Speicherung der gleichen Daten u:ber mehrere
   physikalisch getrennte Maschinen ermo:glicht, die u:ber ein
   TCP/IP-Netzwerk verbunden sind. HAST kann als ein netzbasiertes
   RAID1 (Spiegel) verstanden werden und ist dem
   DRBD(R)-Speichersystem der GNU/Linux-Plattform a:hnlich. In
   Kombination mit anderen Hochverfu:gbarkeitseigenschaften von
   FreeBSD wie CARP, ermo:glicht es HAST, hochverfu:gbare
   Speichercluster zu bauen, die in der Lage sind, Hardwareausfa:llen
   zu widerstehen.

   Nachdem Sie diesen Abschnitt gelesen haben, werden Sie folgendes
   wissen:

     * Was HAST ist, wie es funktioniert und welche Eigenschaften es
       besitzt.

     * Wie man HAST auf FreeBSD aufsetzt und verwendet.

     * Wie man CARP und devd(8) kombiniert, um ein robustes
       Speichersystem zu bauen.

   Bevor Sie diesen Abschnitt lesen, sollten Sie:

     * die Grundlagen von UNIX und FreeBSD verstanden haben (Kapitel
       4).

     * wissen, wie man Netzwerkschnittstellen und andere Kernsysteme
       von FreeBSD konfiguriert (Kapitel 12).

     * ein gutes Versta:ndnis der FreeBSD-Netzwerkfunktionalita:t
       besitzen (Teil IV in dem Das FreeBSD-Handbuch).

     * FreeBSD 8.1-RELEASE oder ho:her einsetzen.

   Das HAST-Projekt wurde von der FreeBSD Foundation mit
   Unterstu:tzung der OMCnet Internet Service GmbH und TransIP BV
   gesponsert.

     --------------------------------------------------------------

  19.18.2. HAST-Merkmale

   Die Hauptmerkmale des HAST-Systems sind:

     * Es kann zur Maskierung von I/O-Fehlern auf lokalen Festplatten
       eingesetzt werden.

     * Dateisystem-unabha:ngig, was es erlaubt, jedes von FreeBSD
       unterstu:tzte Dateisystem zu verwenden.

     * Effiziente und schnelle Resynchronisation: es werden nur die
       Blo:cke synchronisiert, die wa:hrend der Ausfallzeit eines
       Knotens gea:ndert wurden.

     * Es kann in einer bereits bestehenden Umgebung eingesetzt
       werden, um zusa:tzliche Redundanz zu erreichen.

     * Zusammen mit CARP, Heartbeat, oder anderen Werkzeugen, ist es
       mo:glich, ein robustes und dauerhaftes Speichersystem zu
       bauen.

     --------------------------------------------------------------

  19.18.3. HAST im Einsatz

   HAST stellt auf Block-Ebene eine synchrone Replikation eines
   beliebigen Speichermediums auf mehreren Maschinen zur Verfu:gung.
   Daher werden mindestens zwei Knoten (physikalische Maschinen)
   beno:tigt: der primary (auch bekannt als master) Knoten, sowie der
   secondary (slave) Knoten. Diese beiden Maschinen zusammen werden
   als Cluster bezeichnet.

     Anmerkung: HAST ist momentan auf insgesamt zwei Knoten im
     Cluster beschra:nkt.

   Da HAST in einer prima:r-sekunda:r-Konfiguration funktioniert, ist
   immer nur ein Knoten des Clusters zu jeder Zeit aktiv. Der
   prima:re Knoten, auch active genannt, ist derjenige, der alle
   I/O-Anfragen verarbeitet, die an die HAST-Schnittstelle gesendet
   werden. Der secondary-Knoten wird automatisch vom primary-Knoten
   aus synchronisiert.

   Die physischen Komponenten des HAST-Systems sind:

     * lokale Platte (am Prima:rknoten)

     * Platte am entfernten Rechner (Sekunda:rknoten)

   HAST arbeitet synchron auf Blockebene, was es fu:r Dateisysteme
   und Anwendungen transparent macht. HAST stellt gewo:hnliche
   GEOM-Provider im Verzeichnis /dev/hast/ fu:r die Verwendung durch
   andere Werkzeuge oder Anwendungen zur Verfu:gung, somit gibt es
   keinen Unterschied zwischen dem Einsatz von durch HAST
   bereitgestellten Gera:ten und herko:mmlichen Platten, Partitionen,
   etc.

   Jede Schreib-, Lo:sch- oder Entleerungsoperation wird an die
   lokale und u:ber TCP/IP zu der entfernt liegenden Platte gesendet.
   Jede Leseoperation wird von der lokalen Platte durchgefu:hrt, es
   sei denn, die lokale Platte ist nicht aktuell oder es tritt ein
   I/O-Fehler auf. In solchen Fa:llen wird die Leseoperation an den
   Sekunda:rknoten geschickt.

     --------------------------------------------------------------

    19.18.3.1. Synchronisation und Replikationsmodi

   HAST versucht, eine schnelle Fehlerbereinigung zu gewa:hrleisten.
   Aus diesem Grund ist es sehr wichtig, die Synchronisationszeit
   nach dem Ausfall eines Knotens zu reduzieren. Um eine schnelle
   Synchronisation zu ermo:glichen, verwaltet HAST eine Bitmap von
   unsauberen Bereichen auf der Platte und synchronisiert nur diese
   wa:hrend einer regula:ren Synchronisation (mit Ausnahme der
   initialen Synchronisation).

   Es gibt viele Wege, diese Synchronisation zu behandeln. HAST
   implementiert mehrere Replikationsarten, um unterschiedliche
   Methoden der Synchronisation zu realisieren:

     * memsync: meldet Schreiboperationen als vollsta:ndig, wenn die
       lokale Schreiboperation beendet ist und der entfernt liegende
       Knoten die Ankunft der Daten besta:tigt hat, jedoch bevor die
       Daten wirklich gespeichert wurden. Die Daten werden auf dem
       entfernt liegenden Knoten direkt nach dem Senden der
       Besta:tigung gespeichert. Dieser Modus ist dafu:r gedacht,
       Latenzen zu verringern und zusa:tzlich eine gute
       Verla:sslichkeit zu bieten. Der memsync-Replikationsmodus ist
       momentan noch nicht implementiert.

     * fullsync: meldet Schreiboperationen als vollsta:ndig, wenn die
       lokale Schreiboperation beendet ist und die entfernte
       Schreiboperation ebenfalls abgeschlossen wurde. Dies ist der
       sicherste und zugleich der langsamste Replikationsmodus. Er
       stellt den momentanen Standardmodus dar.

     * async: meldet Schreiboperationen als vollsta:ndig, wenn lokale
       Schreibvorga:nge abgeschlossen wurden. Dies ist der schnellste
       und gefa:hrlichste Replikationsmodus. Er sollte verwendet
       werden, wenn die Latenz zu einem entfernten Knoten bei einer
       Replikation zu hoch ist fu:r andere Modi. Der
       async-Replikationsmodus ist zum gegenwa:rtigen Zeitpunkt nicht
       implementiert.

     Warnung: Momentan wird nur der fullsync-Replikationsmodus
     unterstu:tzt.

     --------------------------------------------------------------

  19.18.4. HAST-Konfiguration

   HAST beno:tigt GEOM_GATE-Unterstu:tzung, um korrekt zu
   funktionieren. Der GENERIC-Kernel entha:lt jedoch GEOM_GATE nicht
   von vornherein, jedoch ist in der Standardinstallation von FreeBSD
   geom_gate.ko als ladbares Modul vorhanden. Stellen Sie bei
   Systemen, bei denen nur das Allerno:tigste vorhanden sein soll,
   sicher, dass dieses Modul zur Verfu:gung steht. Als Alternative
   la:sst sich die GEOM_GATE-Unterstu:tzung direkt in den Kernel
   statisch einbauen, indem Sie die folgende Zeile zu Ihrer
   Kernelkonfigurationsdatei hinzufu:gen:

 options GEOM_GATE

   Das HAST-Framework besteht aus Sicht des Betriebssystems aus
   mehreren Bestandteilen:

     * Dem hastd(8)-Dienst, welcher fu:r die Datensynchronisation
       verantwortlich ist,

     * Dem hastctl(8) Management-Werkzeug,

     * Der Konfigurationsdatei hast.conf(5).

   Das folgende Beispiel beschreibt, wie man zwei Knoten als
   master-slave / primary-secondary mittels HAST konfiguriert, um
   Daten zwischen diesen beiden auszutauschen. Die Knoten werden als
   hasta mit der IP-Adresse 172.16.0.1 und hastb mit der IP-Adresse
   172.16.0.2 bezeichnet. Beide Knoten besitzen eine dedizierte
   Festplatte /dev/ad6 mit der gleichen Gro:sse fu:r den
   HAST-Betrieb. Der HAST-Pool (manchmal auch Ressource genannt, z.B.
   der GEOM-Provider in /dev/hast/) wird als test bezeichnet.

   Die Konfiguration von HAST wird in der Datei /etc/hast.conf
   vorgenommen. Diese Datei sollte auf beiden Knoten gleich sein. Die
   denkbar einfachste Konfiguration ist folgende:

 resource test {
         on hasta {
                 local /dev/ad6
                 remote 172.16.0.2
         }
         on hastb {
                 local /dev/ad6
                 remote 172.16.0.1
         }
 }

   Schlagen Sie in der hast.conf(5)-Manualpage nach, wenn Sie an
   erweiterten Konfigurationsmo:glichkeiten interessiert sind.

     Tipp: Es ist ebenfalls mo:glich, den Hostnamen in den
     remote-Anweisungen zu verwenden. Stellen Sie in solchen Fa:llen
     sicher, dass diese Rechner auch aufgelo:st werden ko:nnen, also
     in der Datei /etc/hosts aufgefu:hrt sind, oder alternativ im
     lokalen DNS.

   Da nun die Konfiguration auf beiden Rechnern vorhanden ist, sind
   Sie in der Lage, den HAST-Pool zu erstellen. Lassen Sie die
   folgenden Kommandos auf beiden Knoten ablaufen, um die initialen
   Metadaten auf die lokale Platte zu schreiben und starten Sie
   anschliessend den hastd(8)-Dienst:

 # hastctl create test
 # /etc/rc.d/hastd onestart

     Anmerkung: Es ist nicht mo:glich, GEOM-Provider mit einem
     bereits bestehenden Dateisystem zu verwenden (z.B. um einen
     bestehenden Speicher in einen von HAST verwalteten Pool zu
     konvertieren), weil diese Prozedur bestimmte Metadaten auf den
     Provider schreiben muss und dafu:r nicht genug freier Platz zur
     Verfu:gung stehen wird.

   HAST ist nicht dafu:r verantwortlich, die Rolle (primary oder
   secondary) fu:r den jeweiligen Knoten festzulegen. Die Rolle des
   Knotens muss vom Administrator oder einer anderen Software wie
   Heartbeat mittels des hastctl(8)-Werkzeugs festgelegt werden. Auf
   dem prima:ren Knoten (hasta) geben Sie nun den folgenden Befehl
   ein:

 # hastctl role primary test

   Geben Sie nun, a:hnlich wie zuvor, das folgende Kommando auf dem
   sekunda:ren Knoten (hastb) ein:

 # hastctl role secondary test

     Achtung: Es kann passieren, dass beide Knoten nicht in der Lage
     sind, miteinander zu kommunizieren und dadurch beide als
     prima:re Knoten konfiguriert sind; die Konsequenz daraus wird
     als split-brain bezeichnet. Um diese Situation zu bereinigen,
     folgen Sie den Schritten, die in Abschnitt 19.18.5.2 beschrieben
     sind.

   Es ist mo:glich das Ergebnis des hastctl(8)-Werkzeugs auf jedem
   Knoten zu u:berpru:fen:

 # hastctl status test

   Der wichtigste Teil ist die status-Textzeile der Ausgabe, die auf
   jedem Knoten complete lauten sollte. Falls der Status als degraded
   zuru:ckgemeldet wird, ist etwas schief gegangen. Zu diesem
   Zeitpunkt hat die Synchronisation zwischen den beiden Knoten
   bereits begonnen. Die Synchronisation ist beendet, wenn das
   Kommando hastctl status meldet, dass die dirty-Bereiche 0 Bytes
   betragen.

   Der letzte Schritt ist, ein Dateisystem auf dem /dev/hast/test
   GEOM-Provider anzulegen und dieses ins System einzuha:ngen. Dies
   muss auf dem primary-Knoten durchgefu:hrt werden (da
   /dev/hast/test nur auf dem primary-Knoten erscheint). Dies kann
   ein paar Minuten dauern, abha:ngig von der Gro:sse der Festplatte:

 # newfs -U /dev/hast/test
 # mkdir /hast/test
 # mount /dev/hast/test /hast/test

   Sobald das HAST-Framework richtig konfiguriert wurde, besteht der
   letzte Schritt nun darin, sicherzustellen, dass HAST wa:hrend des
   Systemstarts automatisch gestartet wird. Die folgende Zeile sollte
   zur Datei /etc/rc.conf hinzugefu:gt werden:

 hastd_enable="YES"

     --------------------------------------------------------------

    19.18.4.1. Failover-Konfiguration

   Das Ziel dieses Beispiels ist, ein robustes Speichersystem zu
   bauen, welches Fehlern auf einem beliebigen Knoten widerstehen
   kann. Die Schlu:sselaufgabe in diesem Szenario besteht darin, zu
   verhindern, dass der primary-Knoten des Clusters ausfa:llt. Sollte
   es dennoch passieren, ist der secondary-Knoten da, um nahtlos
   einzuspringen, das Dateisystem zu pru:fen, einzuha:ngen und mit
   der Arbeit fortzufahren, ohne dass auch nur ein einzelnes Bit an
   Daten verloren ging.

   Um diese Aufgabe zu bewerkstelligen, ist es no:tig, eine weitere
   Eigenschaft zu nutzen, die unter FreeBSD verfu:gbar ist, welche
   ein automatisches Failover auf der IP-Schicht ermo:glicht: CARP.
   CARP steht fu:r Common Address Redundancy Protocol und erlaubt es
   mehreren Rechnern im gleichen Netzsegment, die gleiche IP-Adresse
   zu verwenden. Setzen Sie CARP auf beiden Knoten des Clusters
   anhand der Dokumentation in Abschnitt 32.13 auf. Nachdem dieser
   Schritt abgeschlossen ist, sollte jeder Knoten seine eigene
   carp0-Schnittstelle mit der geteilten IP-Adresse 172.16.0.254
   besitzen. Selbstversta:ndlich muss der prima:re HAST-Knoten des
   Clusters der CARP-Masterknoten sein.

   Der HAST-Pool, welcher im vorherigen Abschnitt erstellt wurde, ist
   nun bereit fu:r den Export u:ber das Netzwerk auf den anderen
   Rechner. Dies kann durch den Export u:ber NFS, Samba etc. erreicht
   werden, indem die geteilte IP-Addresse 172.16.0.254 verwendet
   wird. Das einzige ungelo:ste Problem ist der automatische
   Failover, sollte der prima:re Knoten einmal ausfallen.

   Falls die CARP-Schnittstelle aktiviert oder deaktiviert wird,
   generiert das FreeBSD-Betriebssystem ein devd(8)-Ereignis, was es
   ermo:glicht, Zustandsa:nderungen auf den CARP-Schnittstellen zu
   u:berwachen. Eine Zustandsa:nderung auf der CARP-Schnittstelle ist
   ein Indiz dafu:r, dass einer der Knoten gerade ausgefallen oder
   wieder verfu:gbar ist. In diesem Fall ist es mo:glich, ein Skript
   zu starten, welches den Failover automatisch durchfu:hrt.

   Um diese Zustandsa:nderungen auf der CARP-Schnittstelle
   abzufangen, mu:ssen die folgenden Zeilen in der Datei
   /etc/devd.conf auf jedem Knoten eingefu:gt werden:

 notify 30 {
         match "system" "IFNET";
         match "subsystem" "carp0";
         match "type" "LINK_UP";
         action "/usr/local/sbin/carp-hast-switch master";
 };

 notify 30 {
         match "system" "IFNET";
         match "subsystem" "carp0";
         match "type" "LINK_DOWN";
         action "/usr/local/sbin/carp-hast-switch slave";
 };

   Um diese neue Konfiguration zu aktivieren, starten Sie devd(8) auf
   beiden Knoten neu, um die neue Konfiguration wirksam werden zu
   lassen:

 # /etc/rc.d/devd restart

   Fu:r den Fall, dass die carp0-Schnittstelle aktiviert oder
   deaktiviert wird (sich also der Status der Schnittstelle a:ndert),
   erzeugt das System eine Meldung, was es dem devd(8)-Subsystem
   ermo:glicht, ein beliebiges Skript zu starten, in diesem Fall also
   /usr/local/sbin/carp-hast-switch. Dies ist das Skript, dass den
   automatischen Failover durchfu:hrt. Fu:r genauere Informationen zu
   der obigen devd(8)-Konfiguration, lesen Sie die
   devd.conf(5)-Manualpage.

   Ein Beispiel fu:r ein solches Skript ko:nnte wie folgt aussehen:

 #!/bin/sh

 # Original script by Freddie Cash <fjwcash@gmail.com>
 # Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>
 # and Viktor Petersson <vpetersson@wireload.net>

 # The names of the HAST resources, as listed in /etc/hast.conf
 resources="test"

 # delay in mounting HAST resource after becoming master
 # make your best guess
 delay=3

 # logging
 log="local0.debug"
 name="carp-hast"

 # end of user configurable stuff

 case "$1" in
         master)
                 logger -p $log -t $name "Switching to primary provider for ${resources}."
                 sleep ${delay}

                 # Wait for any "hastd secondary" processes to stop
                 for disk in ${resources}; do
                         while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do
                                 sleep 1
                         done

                         # Switch role for each disk
                         hastctl role primary ${disk}
                         if [ $? -ne 0 ]; then
                                 logger -p $log -t $name "Unable to change role to primary for resource ${disk}."
                                 exit 1
                         fi
                 done

                 # Wait for the /dev/hast/* devices to appear
                 for disk in ${resources}; do
                         for I in $( jot 60 ); do
                                 [ -c "/dev/hast/${disk}" ] && break
                                 sleep 0.5
                         done

                         if [ ! -c "/dev/hast/${disk}" ]; then
                                 logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear."
                                 exit 1
                         fi
                 done

                 logger -p $log -t $name "Role for HAST resources ${resources} switched to primary."


                 logger -p $log -t $name "Mounting disks."
                 for disk in ${resources}; do
                         mkdir -p /hast/${disk}
                         fsck -p -y -t ufs /dev/hast/${disk}
                         mount /dev/hast/${disk} /hast/${disk}
                 done

         ;;

         slave)
                 logger -p $log -t $name "Switching to secondary provider for ${resources}."

                 # Switch roles for the HAST resources
                 for disk in ${resources}; do
                         if ! mount | grep -q "^/dev/hast/${disk} on "
                         then
                         else
                                 umount -f /hast/${disk}
                         fi
                         sleep $delay
                         hastctl role secondary ${disk} 2>&1
                         if [ $? -ne 0 ]; then
                                 logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}."
                                 exit 1
                         fi
                         logger -p $log -t $name "Role switched to secondary for resource ${disk}."
                 done
         ;;
 esac

   Im Kern fu:hrt das Skript die folgenden Aktionen durch, sobald ein
   Knoten zum master / primary wird:

     * Es ernennt den HAST-Pool als den prima:ren fu:r einen
       gegebenen Knoten.

     * Es pru:ft das Dateisystem, dass auf dem HAST-Pool erstellt
       wurde.

     * Es ha:ngt die Pools an die richtige Stelle im System ein.

   Wenn ein Knoten zum backup / secondary ernannt wird:

     * Ha:ngt es den HAST-Pool aus dem Dateisystem aus.

     * Degradiert es den HAST-Pool zum sekunda:ren.

     Achtung: Bitte beachten Sie, dass dieses Skript nur ein Beispiel
     fu:r eine mo:gliche Lo:sung darstellt. Es behandelt nicht alle
     mo:glichen Szenarien, die auftreten ko:nnen und sollte erweitert
     bzw. abgea:ndert werden, so dass z.B. beno:tigte Dienste
     gestartet oder gestoppt werden usw.

     Tipp: Fu:r dieses Beispiel wurde ein Standard-UFS Dateisystem
     verwendet. Um die Zeit fu:r die Wiederherstellung zu verringern,
     kann ein UFS mit Journal oder ein ZFS-Dateisystem benutzt
     werden.

   Weitere detaillierte Informationen mit zusa:tzlichen Beispielen
   ko:nnen auf der HAST Wiki-Seite abgerufen werden.

     --------------------------------------------------------------

  19.18.5. Fehlerbehebung

    19.18.5.1. Allgemeine Tipps zur Fehlerbehebung

   HAST sollte generell ohne Probleme funktionieren. Jedoch kann es,
   wie bei jeder anderen Software auch, zu gewissen Zeiten sein, dass
   sie sich nicht so verha:lt wie angegeben. Die Quelle dieser
   Probleme kann unterschiedlich sein, jedoch sollte als Faustregel
   gewa:hrleistet werden, dass die Zeit fu:r beide Knoten im Cluster
   synchron la:uft.

   Die Anzahl an Debugging-Meldungen von hastd(8) sollte erho:ht
   werden, wenn Fehler von HAST bereinigt werden. Dies kann durch das
   Starten des hastd(8)-Dienstes mit der Option -d erreicht werden.
   Wichtig zu wissen ist, dass diese Option mehrfach angegeben werden
   kann, um die Anzahl an Meldungen weiter zu erho:hen. Sie ko:nnen
   viele nu:tzliche Informationen auf diese Art bekommen. Sie sollten
   ebenfalls die Verwendung der Option -F in Erwa:gung ziehen, die
   den hastd(8)-Dienst in den Vordergrund bringt.

     --------------------------------------------------------------

    19.18.5.2. Auflo:sung des Split-brain-Zustands

   Die Konsequenz aus der Situation, wenn beide Knoten des Clusters
   nicht in der Lage sind, miteinander zu kommunizieren und dadurch
   beide als prima:re Knoten fungieren, wird als split-brain
   bezeichnet. Dies ist ein gefa:hrlicher Zustand, weil es beiden
   Knoten erlaubt ist, A:nderungen an den Daten vorzunehmen, die
   miteinander nicht in Einklang gebracht werden ko:nnen. Diese
   Situation sollte vom Systemadministrator ha:ndisch bereinigt
   werden.

   Um diese Situation zu beheben, muss der Administrator entscheiden,
   welcher Knoten die wichtigsten A:nderungen von beiden besitzt
   (oder diese manuell miteinander vermischen) und anschliessend den
   HAST-Knoten die volle Synchronisation mit jenem Knoten
   durchfu:hren zu lassen, welcher die bescha:digten Daten besitzt.
   Um dies zu tun, geben Sie die folgenden Befehle auf dem Knoten
   ein, der neu synchronisiert werden soll:

 # hastctl role init <resource>
 # hastctl create <resource>
 # hastctl role secondary <resource>

     --------------------------------------------------------------

    Kapitel 20. GEOM: Modulares Framework zur Plattentransformation

   Geschrieben von Tom Rhodes. U:bersetzt von Daniel Seuffert und
   Johann Kois.

20.1. U:bersicht

   Dieses Kapitel behandelt den Einsatz von Laufwerken mit dem
   GEOM-Framework in FreeBSD. Dies beinhaltet auch die wichtigen
   RAID-U:berwachungswerkzeuge, welche das Framework zur
   Konfiguration nutzen. Dieses Kapitel entha:lt keine
   tiefschu:rfenden Betrachtungen, wie GEOM I/O nutzt oder steuert,
   sein zugrundeliegendes Subsystem oder den Quelltext von GEOM.
   Diese Information wird durch die geom(4)-Manualpage und seine
   zahlreichen "SEE ALSO"-Verweise bereitgestellt. Dieses Kapitel ist
   auch kein ausfu:hrlicher Fu:hrer fu:r RAID-Konfigurationen. Nur
   durch GEOM unterstu:tzte RAID-Klassen werden ero:rtert.

   Nach Lesen dieses Kapitels werden Sie folgendes wissen:

     * Welche Art von RAID-Unterstu:tzung durch GEOM verfu:gbar ist.

     * Wie man die Basis-Dienstprogramme nutzt, um verschiedene
       RAID-Stufen zu konfigurieren, zu manipulieren und zu warten.

     * Wie man mittels GEOM spiegelt, striped, verschlu:sselt und
       entfernte Laufwerke verbindet.

     * Wie man an Laufwerken, welche an das GEOM-Framework
       angeschlossen sind, Fehler behebt.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * Verstehen, wie FreeBSD Laufwerke behandelt (Kapitel 19).

     * Wissen wie man einen neuen FreeBSD-Kernel installiert und
       konfiguriert (Kapitel 9).

     --------------------------------------------------------------

20.2. Einfu:hrung in GEOM

   GEOM erlaubt den Zugriff und die Kontrolle von Klassen -- Master
   Boot Records, BSD-Label usw. -- durch die Nutzung von
   Datentra:gern (Providern) oder den besonderen Dateien in /dev.
   Verschiedene Software RAID-Konfigurationen unterstu:tzend, wird
   GEOM Ihnen transparenten Zugriff auf das Betriebssystem und
   System-Dienstprogramme gewa:hren.

     --------------------------------------------------------------

20.3. RAID0 - Striping

   Geschrieben von Tom Rhodes und Murray Stokely.

   Striping (stripe = Streifen) ist eine Methode, um verschiedene
   Laufwerke in einem einzigen Datentra:ger zusammenzufassen. In
   vielen Fa:llen wird dies durch die Nutzung von
   Hardware-Controllern bewerkstelligt. Das GEOM-Subsystem
   unterstu:tzt Software-RAID0 (welches auch als Striping bekannt
   ist).

   In einem RAID0-System werden die Daten in einzelne Blo:cke
   aufgeteilt, welche u:ber alle angeschlossenen Laufwerke in einem
   Datenfeld (Array) geschrieben werden. Anstatt darauf warten zu
   mu:ssen, dass 256K auf ein einzelnes Laufwerk geschrieben werden,
   kann ein RAID0-System gleichzeitig 64K auf jedes von 4 Laufwerken
   schreiben mit entsprechend besserer I/O-Leistung. Dieser Durchsatz
   kann durch die Verwendung mehrerer Controller noch zusa:tzlich
   gesteigert werden.

   Jedes Laufwerk in einem RAID0-Stripe muss die gleiche Gro:sse
   haben, da I/O-Anforderungen fu:r das Lesen und Schreiben
   abwechselnd auf mehrere Laufwerke parallel erfolgen.

   Disk Striping Illustration

   Erzeugen eines Stripe von unformatierten ATA-Platten

    1. Laden Sie das geom_stripe.ko-Modul:

 # kldload geom_stripe

    2. Stellen Sie sicher, dass ein geeigneter Mount-Punkt existiert.
       Falls dieser Datentra:ger eine Root-Partition werden soll,
       dann nutzen Sie zeitweise einen anderen Mount-Punkt,
       beispielsweise /mnt:

 # mkdir /mnt

    3. Bestimmen Sie die Gera:tenamen derjenigen Platten, welche
       gestriped werden sollen, und erzeugen Sie ein neues
       Stripe-Gera:t. Das folgende Beispiel verwendet zwei unbenutzte
       und unpartitionierte ATA-Platten, die gestriped werden sollen.
       Lauten die Gera:tenamen /dev/ad2 und /dev/ad3, so verwenden
       Sie folgenden Befehl:

 # gstripe label -v st0 /dev/ad2 /dev/ad3
 Metadata value stored on /dev/ad2.
 Metadata value stored on /dev/ad3.
 Done.

    4. Schreiben Sie einen Standard-Label (auch als
       Partitions-Tabelle bekannt) auf den neuen Datentra:ger und
       installieren Sie den normalen Bootstrap-Code:

 # bsdlabel -wB /dev/stripe/st0

    5. Dieser Prozess sollte zwei weitere Gera:te im Verzeichnis
       /dev/stripe (zusa:tzlich zum Gera:t st0) erzeugt haben. Diese
       schliessen st0a und st0c ein. Nun kann ein Dateisystem auf dem
       Gera:t st0a mit dem newfs-Dienstprogramm erzeugt werden:

 # newfs -U /dev/stripe/st0a

       Viele Zahlen rauschen nun u:ber Ihren Bildschirm und nach ein
       paar Sekunden wird der Prozess abgeschlossen sein. Der
       Datentra:ger wurde erzeugt und kann in den Verzeichnisbaum
       eingeha:ngt werden.

   Um das erzeugte Stripe manuell zu mounten:

 # mount /dev/stripe/st0a /mnt

   Um das erzeugte Dateisystem automatisch wa:hrend des Startvorgangs
   zu mounten, mu:ssen Sie die Datentra:gerinformation in die Datei
   /etc/fstab schreiben. Dazu legen Sie einen permanenten Mountpunkt
   namens stripe an:

 # mkdir /stripe
 # echo "/dev/stripe/st0a /stripe ufs rw 2 2" \
     >> /etc/fstab

   Das geom_stripe.ko-Modul muss ebenfalls automatisch beim
   Systemstart geladen werden (durch die Aufnahme der folgenden Zeile
   in die Datei /boot/loader.conf):

 # echo 'geom_stripe_load="YES"' >> /boot/loader.conf

     --------------------------------------------------------------

20.4. RAID1 - Spiegelung

   Spiegelung (Mirroring) ist eine Technik, welche von vielen Firmen
   und Heimnutzern eingesetzt wird, um Daten ohne Unterbrechung zu
   sichern. Wenn ein Spiegel existiert, dann bedeutet dies einfach
   nur, dass PlatteB die PlatteA dupliziert. Oder PlatteC+D
   duplizieren PlatteA+A. Der wichtigste Aspekt ist, dass Daten einer
   Platte oder Partition dupliziert werden, unabha:ngig von der
   Konfiguration der Platte. Dadurch kann spa:ter diese Information
   leichter wiederhergestellt, ohne Zugriffsunterbrechung gesichert
   oder sogar physisch in einem Datentresor gelagert werden.

   Stellen Sie zu Beginn sicher, dass ihr System zwei Platten mit
   identischer Gro:sse aufweist. In dieser U:bung gehen wir davon
   aus, dass es direkt zuga:ngliche (da(4)) SCSI-Platten sind.

     --------------------------------------------------------------

  20.4.1. Die prima:re Platte spiegeln

   Angenommen, FreeBSD wurde auf der ersten Platte da0 installiert,
   dann sollte gmirror(8) angewiesen werden, seine prima:ren Daten
   auf dieser Platte zu speichern.

   Bevor Sie den Spiegel aufbauen, sollten Sie die maximale
   Protokollierung aktivieren und den Zugang zum Gera:t gestatten.
   Dazu setzen Sie die sysctl(8)-Option kern.geom.debugflags auf den
   folgenden Wert:

 # sysctl kern.geom.debugflags=17

   Nun ko:nnen Sie den Spiegel aufbauen. Beginnen Sie den Prozess,
   indem Sie die Metadaten-Informationen auf das Gera:t der prima:ren
   Platte speichern. Konkret erzeugen Sie dabei das Gera:t
   /dev/mirror/gm, indem Sie den folgenden Befehl ausfu:hren:

     Warnung: Die Spiegelung der Bootplatte kann zu Datenverlust
     fu:hren, wenn Sie Daten im letzten Sektor der Platte gespeichert
     haben. Dieses Risiko la:sst sich minimieren, wenn Sie den
     Spiegel unmittelbar nach der Installation von FreeBSD aufsetzen.
     Die im folgenden beschriebene Vorgehensweise ist ebenfalls nicht
     kompatibel mit den Standard-Installationseinstellungen von
     FreeBSD 9.X, die das neue GPT-Partitionsschema verwenden. GEOM
     wird GPT-Metadaten u:berschreiben, was zu Datenverlust und einem
     mo:glicherweise nicht bootbarem System fu:hrt.

 # gmirror label -vb round-robin gm0 /dev/da0

   Ihr System sollte wie folgt antworten:

 Metadata value stored on /dev/da0.
 Done.

   Initialisieren Sie GEOM. Dadurch wird das Kernelmodul
   /boot/kernel/geom_mirror.ko geladen:

 # gmirror load

     Anmerkung: Wenn dieser Befehl erfolgreich ausgefu:hrt wurde,
     wird die Gera:tedatei gm0 im Verzeichnis /dev/mirror erzeugt.

   Stellen Sie sicher, dass das Kernelmodul geom_mirror.ko beim
   Systemstart automatisch geladen wird:

 # echo 'geom_mirror_load="YES"' >> /boot/loader.conf

   Bearbeiten Sie die Datei /etc/fstab und ersetzen Sie alle Verweise
   auf die alte Gera:tedatei da0 durch die neue Gera:tedatei gm0 des
   Plattenspiegels. Um die Datei /etc/fstab bearbeiten zu ko:nnen,
   mu:ssen Sie als Benutzer root am System angemeldet sein.

     Anmerkung: Sollte vi(1) ihr bevorzugter Texteditor sein,
     kouml;nnen Sie diese A:nderungen ganz einfach wie folgt
     durchfu:hren:

 # vi /etc/fstab

     Bevor Sie die Datei bearbeiten, sollten Sie ein Backup anlegen.
     Haben Sie die Datei mit vi(1) geo:ffnet, ko:nnen Sie durch die
     Eingabe von :w /etc/fstab.bak eine Sicherungskopie der Datei
     anlegen. Danach ersetzen Sie alle alten Referenzen auf da0 durch
     gm0, indem Sie :%s/da/mirror\/gm/g eingeben.

   Die gea:nderte fstab sollte nun a:hnlich wie im folgenden Beispiel
   aussehen. Es spielt dabei keine Rolle, ob Sie SCSI- oder
   ATA-Platten verwenden. Das RAID-Gera:t heisst in jedem Fall gm.

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/mirror/gm0s1b                              none            swap    sw              0       0
 /dev/mirror/gm0s1a                              /               ufs     rw              1       1
 /dev/mirror/gm0s1d                              /usr            ufs     rw              0       0
 /dev/mirror/gm0s1f                              /home           ufs     rw              2       2
 #/dev/mirror/gm0s2d                             /store          ufs     rw              2       2
 /dev/mirror/gm0s1e                              /var            ufs     rw              2       2
 /dev/acd0               /cdrom          cd9660  ro,noauto       0       0

   Fu:hren Sie einen Systemneustart durch:

 # shutdown -r now

   Wenn das System gestartet wird, sollten Sie nun nur noch
   gm0-Gera:te anstatt der bisherigen da0-Gera:te sehen. Nachdem das
   System vollsta:ndig initialisiert wurde, ko:nnen Sie die neue
   Konfiguration testen, indem Sie den Befehl mount ausfu:hren:

 # mount
 Filesystem         1K-blocks    Used    Avail Capacity  Mounted on
 /dev/mirror/gm0s1a   1012974  224604   707334    24%    /
 devfs                      1       1        0   100%    /dev
 /dev/mirror/gm0s1f  45970182   28596 42263972     0%    /home
 /dev/mirror/gm0s1d   6090094 1348356  4254532    24%    /usr
 /dev/mirror/gm0s1e   3045006 2241420   559986    80%    /var
 devfs                      1       1        0   100%    /var/named/dev

   Hier ist alles in Ordnung. Alle Werte sehen aus wie erwartet. Um
   die Synchronisierung zu beginnen, integrieren Sie nun die Platte
   da1 in den Spiegel, indem Sie den folgenden Befehl eingeben:

 # gmirror insert gm0 /dev/da1

   Wa:hrend die Platten gespiegelt werden, ko:nnen Sie den
   Fortschritt durch die Eingabe des folgenden Befehls u:berpru:fen:

 # gmirror status

   Nachdem die Plattenspiegelung erfolgreich abgeschlossen wurde (und
   alle Daten synchronisiert wurden), sollte Sie eine Ausgabe
   a:hnlich der folgenden erhalten, wenn Sie den Befehl erneut
   ausfu:hren:

       Name    Status  Components
 mirror/gm0  COMPLETE  da0
                       da1

   Sollten Probleme aufgetreten oder sollte die Synchronisierung noch
   nicht abgeschlossen sein, wa:re der Status DEGRADED anstatt
   COMPLETE.

     --------------------------------------------------------------

  20.4.2. Fehlerbehebung

    20.4.2.1. Das System weigert sich zu starten

   Falls das System startet und eine Eingabeaufforderung a:hnlich der
   folgenden erscheint:

 ffs_mountroot: can't find rootvp
 Root mount failed: 6
 mountroot>

   Starten Sie den Rechner neu mit der Power- oder Resettaste.
   Wa:hlen Sie im Startmenu: Option sechs (6). Dadurch erscheint eine
   Eingabeaufforderung fu:r loader(8). Laden Sie nun das Kernelmodul
   ha:ndisch:

 OK? load geom_mirror
 OK? boot

   Falls dies funktioniert, wurde das Modul (aus welchen Gru:nden
   auch immer) nicht richtig geladen. Pru:fen Sie, ob Ihr Eintrag in
   der Datei /boot/loader.conf korrekt ist. Sollte das Problem
   weiterhin bestehen, nehmen Sie die Zeile

 options GEOM_MIRROR

   in die Konfigurationsdatei des Kernels auf und fu:hren Sie einen
   Rebuild und eine erneute Installation durch. Dies sollte das
   Problem beseitigen.

     --------------------------------------------------------------

  20.4.3. Wiederherstellung des Systems nach einem Plattenausfall

   Das Scho:ne an der Plattenspiegelung ist, dass eine kaputte Platte
   ersetzt werden kann, ohne dass Sie dabei Daten verlieren.

   Basierend auf der vorhin besprochenen RAID1-Konfiguration, nehmen
   wir nun an, dass die Platte da1 ausgefallen ist und daher ersetzt
   werden muss. Um dies zu tun, mu:ssen Sie feststellen, welche
   Platte ausgefallen ist und das System herunterfahren. Nun ko:nnen
   Sie die kaputte Platte gegen eine neue Platte austauschen und das
   System wieder starten. Nachdem der Systemstart abgeschlossen ist,
   verwenden Sie die folgenden Befehle, um die Plattenspiegelung
   wieder zu reaktivieren:

 # gmirror forget gm0

 # gmirror insert gm0 /dev/da1

   Der Befehl gmirror status erlaubt es Ihnen, den Fortschritt bei
   der Wiederherstellung der Plattenspiegelung zu beobachten. Das ist
   alles, was Sie tun mu:ssen.

     --------------------------------------------------------------

20.5. GEOM Gate Netzwerkgera:te

   GEOM unterstu:tzt die Verwendung entfernter Gera:te wie
   Festplatten, CD-ROMs, Dateien usw. mittels Nutzung der
   Gate-Dienstprogramme. Dies ist vergleichbar mit NFS.

   Zu Beginn muss eine Exportdatei erzeugt werden. Diese Datei legt
   fest, wer Zugriff auf die exportierten Ressourcen hat und welche
   Zugriffstechniken angeboten werden. Um zum Beispiel den vierten
   Slice auf der ersten SCSI-Platte zu exportieren, ist die folgende
   Datei /etc/gg.exports mehr als ausreichend:

 192.168.1.0/24 RW /dev/da0s4d

   Sie wird allen Hosts innerhalb des privaten Netzwerkes den Zugriff
   auf das Dateisystem auf der Partition da0s4d erlauben.

   Um dieses Gera:t zu exportieren, stellen Sie bitte sicher, dass es
   momentan nicht gemounted ist und starten Sie den ggated(8)
   Server-Daemon:

 # ggated

   Um nun mount auf der Client-Maschine auszufu:hren, geben Sie bitte
   die folgenden Befehle ein:

 # ggatec create -o rw 192.168.1.1 /dev/da0s4d
 ggate0
 # mount /dev/ggate0 /mnt

   Von nun an kann auf das Gera:t u:ber den Mount-Punkt /mnt
   zugegriffen werden.

     Anmerkung: Es sollte darauf hingewiesen werden, dass dies
     scheitern wird, falls das Gera:t momentan entweder auf dem
     Server oder irgendeiner anderen Maschine gemountet ist.

   Wenn das Gera:t nicht la:nger gebraucht wird, dann kann es mit dem
   Befehl umount(8) ausgeha:ngt werden (genauso wie jedes andere
   Laufwerk auch).

     --------------------------------------------------------------

20.6. Das Labeln von Laufwerken

   Wa:hrend der Initialisierung des Systems legt der FreeBSD-Kernel
   fu:r jedes gefundene Gera:t Knotenpunkte an. Diese Methode fu:r
   die U:berpru:fung auf vorhandene Gera:te wirft einige Fragen auf.
   Was passiert beispielsweise, wenn ein neues USB-Laufwerk
   hinzugefu:gt wird? Es ist sehr wahrscheinlich, dass ein
   Flash-Speicher-Gera:t den Gera:tenamen da0 erha:lt, wa:hrend
   gleichzeitig das bisherige da0 zu da1 wird. Dies verursacht
   Probleme beim Einha:ngen von Dateisystemen, wenn diese in der
   /etc/fstab aufgefu:hrt sind und schlussendlich mag das auch dazu
   fu:hren, dass das System nicht mehr startet.

   Eine Lo:sung fu:r dieses Problem ist das Aneinanderketten der
   SCSI-Gera:te, damit ein neues Gera:t, welches der SCSI-Karte
   hinzugefu:gt wird, unbenutzte Gera:tenummern erha:lt. Aber was
   geschieht, wenn ein USB-Gera:t mo:glicherweise die prima:re
   SCSI-Platte ersetzt? Dies kann passieren, weil USB-Gera:te
   normalerweise vor der SCSI-Karte gepru:ft werden. Eine Lo:sung ist
   das Hinzufu:gen dieser Gera:te, nachdem das System gestartet ist.
   Eine andere Lo:sung ko:nnte sein, nur ein einzelnes ATA-Laufwerk
   zu nutzen und die SCSI-Gera:te niemals in der /etc/fstab
   aufzufu:hren.

   Es gibt allerdings eine bessere Lo:sung. Durch Verwendung des
   glabel-Dienstprogramms kann ein Administrator oder Benutzer seine
   Laufwerke mit Labeln versehen und diese in der /etc/fstab nutzen.
   Da glabel seine Label im letzten Sektor jedes vorhandenen
   Datentra:gers speichert, wird das Label persistent bleiben (auch
   u:ber Neustarts hinweg). Durch Nutzung dieses Labels als Gera:t
   kann das Dateisystem immer gemountet sein, unabha:ngig davon,
   durch welchen Gera:te-Knotenpunkt auf ihn zugegriffen wird.

     Anmerkung: Der Label muss permanent (dauerhaft) sein. Man kann
     das Dienstprogramm glabel nutzen, um sowohl transiniente als
     auch permanente Label zu erzeugen. Aber nur permanente
     (persistente) Label bleiben konsistent u:ber Neustarts hinweg.
     Lesen Sie die glabel(8)-Manualpage fu:r weitere Unterschiede
     zwischen den Label-Typen.

     --------------------------------------------------------------

  20.6.1. Label-Typen und Beispiele

   Es gibt zwei Arten von Labeln: generische Label und
   Dateisystem-Label. Label ko:nnen dauerhaft (permanent) oder
   tempora:r sein. Permanente Label ko:nnen mit tunefs(8) oder
   newfs(8) in einem speziellen spezielles Verzeichnis in /dev
   erzeugt werden, welches entsprechend der Dateisystem-Art benannt
   wird. UFS2-Dateisystem-Label werden zum Beispiel im Verzeichnis
   /dev/ufs angelegt. Permanente Label ko:nnen ausserdem durch den
   Befehl glabel label erzeugt werden. Diese Label sind dann
   allerdings nicht dateisystemspezisch und werden im
   Unterverzeichnis /dev/label erzeugt.

   Ein tempora:res Label verschwindet mit dem na:chsten Systemstart.
   Diese Label werden im Verzeichnis /dev/label erzeugt und sind
   ideal fu:r Testzwecke. Ein tempora:res Label kann durch den Befehl
   glabel create erzeugt werden. Weitere Informationen finden sich in
   der Manualpage glabel(8).

   Um ein permanentes Label auf einem UFS2-Dateisystem ohne Lo:schung
   von Daten zu erzeugen, kann man folgenden Befehl verwenden:

 # tunefs -L home /dev/da3

     Warnung: Wenn das Dateisystem voll ist, kann dies zu
     Datenkorruption fu:hren; aber egal wie, falls das Dateisystem
     voll ist, sollte das Hauptziel die Entfernung ungenu:tzter
     Dateien und nicht das Hinzufu:gen von Labeln sein.

   Ein Label sollte nun in /dev/ufs vorhanden sein, der zu /etc/fstab
   hinzugefu:gt wird:

 /dev/ufs/home           /home            ufs     rw              2      2

     Anmerkung: Das Dateisystem darf nicht gemountet sein beim
     Versuch, tunefs auszufu:hren.

   Nun kann das Dateisystem wie u:blich gemountet werden:

 # mount /home

   Von nun an kann der Gera:te-Knotenpunkt sich ohne negative Effekte
   auf das System a:ndern, solange das Kernelmodul geom_label.ko beim
   Systemstart mittels /boot/loader.conf geladen wird oder die
   GEOM_LABEL-Kernel-Option aktiv ist.

   Dateisysteme ko:nnen auch mit einem Standard-Label erzeugt werden
   (mittels des Flags -L in newfs). Lesen Sie bitte die Manualpage
   von newfs(8) fu:r weitere Informationen.

   Der folgende Befehl kann genutzt werden, um das Label zu
   beseitigen:

 # glabel destroy home

   Das folgende Beispiel zeigt Ihnen, wie Sie Label fu:r die
   Partitionen einer Bootplatte erzeugen.

   Beispiel 20-1. Die Partitionen einer Bootplatte labeln

   Durch das Erstellen von permanenten Labeln fu:r die Partitionen
   einer Bootplatte sollte das System selbst dann noch normal starten
   ko:nnen, wenn Sie die Platte an einen anderen Controller
   anschliessen oder in ein anderes System installieren. In diesem
   Beispiel nehmen wir an, dass nur eine einzige ATA-Platte verwendet
   wird, die Ihr System derzeit als ad0 erkennt. Weiters nehmen wir
   an, dass Sie das Standard-Partionierungsschema von FreeBSD
   vewendet haben und Ihre Platte daher die Dateisysteme /, /var,
   /usr sowie /tmp aufweist. Zusa:tzlich wurde eine Swap-Partition
   angelegt.

   Starten Sie das System neu. Am loader(8)-Prompt dru:cken Sie die
   Taste 4, um in den Single-User-Modus zu gelangen. Dort fu:hren Sie
   die folgenden Befehle aus:

 # glabel label rootfs /dev/ad0s1a
 GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs
 # glabel label var /dev/ad0s1d
 GEOM_LABEL: Label for provider /dev/ad0s1d is label/var
 # glabel label usr /dev/ad0s1f
 GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr
 # glabel label tmp /dev/ad0s1e
 GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp
 # glabel label swap /dev/ad0s1b
 GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
 # exit

   Das System startet daraufhin in den Multi-User-Modus. Nachdem der
   Startvorgang abgeschlossen ist, editieren Sie die Datei /etc/fstab
   und ersetzen die konventionellen Gera:tedateien durch die
   entsprechenden Label. Ihre modifizierte /etc/fstab sollte nun
   a:hnlich der folgenden Ausgabe aussehen:

 # Device                Mountpoint      FStype  Options         Dump    Pass#
 /dev/label/swap         none            swap    sw              0       0
 /dev/label/rootfs       /               ufs     rw              1       1
 /dev/label/tmp          /tmp            ufs     rw              2       2
 /dev/label/usr          /usr            ufs     rw              2       2
 /dev/label/var          /var            ufs     rw              2       2

   Starten Sie Ihr System neu. Traten keine Probleme auf, wird das
   System normal hochfahren und Sie erhalten die folgende Ausgabe,
   wenn Sie den Befehl mount ausfu:hren:

 # mount
 /dev/label/rootfs on / (ufs, local)
 devfs on /dev (devfs, local)
 /dev/label/tmp on /tmp (ufs, local, soft-updates)
 /dev/label/usr on /usr (ufs, local, soft-updates)
 /dev/label/var on /var (ufs, local, soft-updates)

   Beginnend mit FreeBSD 7.2, unterstu:tzt glabel(8) einen neuen
   Labeltyp fu:r UFS-Dateisysteme. Dieser basiert auf der eindeutigen
   Dateisystem-ID ufsid. Derartige Label finden sich im Verzeichnis
   /dev/ufsid und werden wa:hrend des Systemstarts automatisch
   erzeugt. Es ist mo:glich, diese ufsid-Label zum automatischen
   Einha:ngen von Partitionen in der Datei /etc/fstab einzusetzen.
   Verwenden Sie den Befehl glabel status, um eine Liste aller
   Dateisysteme und ihrer ufsid-Label zu erhalten:

 % glabel status
                   Name  Status  Components
 ufsid/486b6fc38d330916     N/A  ad4s1d
 ufsid/486b6fc16926168e     N/A  ad4s1f

   In diesem Beispiel repra:sentiert ad4s1d das /var-Dateisystem,
   wa:hrend ad4s1f dem /usr-Dateisystem entspricht. Wenn Sie die
   angegebenen ufsid-Werte verwenden, ko:nnen diese Dateisysteme
   durch die folgenden Eintra:ge in der Datei /etc/fstab gemountet
   werden:

 /dev/ufsid/486b6fc38d330916        /var        ufs        rw        2      2
 /dev/ufsid/486b6fc16926168e        /usr        ufs        rw        2      2

   Jede Partition, die ein ufsid-Label aufweist, kann auf diese Art
   gemountet werden. Dies hat den Vorteil, dass Sie keine permanenten
   Label mehr anlegen mu:ssen, wobei sich die Platten nach wie vor
   u:ber gera:teunabha:ngige Namen ansprechen und mounten lassen.

     --------------------------------------------------------------

20.7. UFS Journaling in GEOM

   Mit FreeBSD 7.0 wurde eine lang erwartete Funktion, das
   Journaling, implementiert. Diese Funktion wird u:ber das
   GEOM-Subsystem realisiert und kann u:ber das Werkzeug gjournal(8)
   eingerichtet werden.

   Was ist Journaling? Bei Journaling wird ein Protokoll u:ber alle
   Dateisystemtransaktionen angelegt, inklusive aller Vera:nderungen,
   aus denen ein kompletter Schreibvorgang besteht, bevor diese
   A:nderungen (Metadaten sowie tatsa:chliche Schreibvorga:nge)
   physikalisch auf der Festplatte ausgefu:hrt werden. Dieses
   Protokoll kann spa:ter erneut aufgerufen werden, um diese
   Vorga:nge zu wiederholen (beispielsweise um Systeminkonsistenzen
   zu vermeiden).

   Diese Technik bietet eine weitere Mo:glichkeit, sich vor
   Datenverlust und Dateisystem-Inkonsistenzen zu schu:tzen. Im
   Gegensatz zu Soft Updates (die Metadaten-Aktualisierungen
   verfolgen und erzwingen) und Snapshots (die ein Image eines
   Dateisystems darstellen) wird bei Journaling ein tatsa:chliches
   Protokoll in einem speziell dafu:r bereitgestellten Bereich der
   Festplatte (oder manchmal sogar auf einer separaten Platte)
   gespeichert.

   Im Gegensatz zu anderen Journaling-Dateisystemen arbeitet die
   gjournal-Methode blockbasiert und wurde nicht als Teil des
   Dateisystems implementiert, sondern als GEOM-Erweiterung.

   Um die gjournal-Unterstu:tzung zu aktivieren, muss der
   FreeBSD-Kernel die folgende Option enthalten (was seit FreeBSD 7.0
   bereits in der Voreinstellung der Fall ist):

 options UFS_GJOURNAL

   Um ein Volume mit Journalunterstu:tzung beim Systemstart
   automatisch zu mounten, muss das Kernelmodul geom_journal.ko
   ebenfalls automatisch geladen werden (durch einen entsprechenden
   Eintrag in der Datei /boot/loader.conf):

 geom_journal_load="YES"

   Alternativ ko:nnen Sie auch einen angepassten Kernel bauen, der
   diese Funktionalita:t entha:lt, indem Sie die folgende Zeile in
   Ihrer Kernelkonfigurationsdatei aufnehmen:

 options     GEOM_JOURNAL

   Das Anlegen eines neuen Journals auf einem freien Dateisystem
   erfolgt durch die folgenden Schritte (im Folgenden wird
   angenommen, dass es sich bei da4 um eine neue SCSI-Platte
   handelt):

 # gjournal load
 # gjournal label /dev/da4

   Danach sollten die Gera:tedateien /dev/da4 sowie /dev/da4.journal
   vorhanden sein. Nun ko:nnen Sie auf diesem Gera:t ein Dateisystem
   anlegen:

 # newfs -O 2 -J /dev/da4.journal

   Dieser Befehl erzeugt ein UFS2-Dateisystem auf dem Gera:t, fu:r
   das im letzten Schritt das Journaling aktiviert wurde.

   Danach ha:ngen Sie das neue Dateisystem mit mount in Ihren
   Verzeichnisbaum ein:

 # mount /dev/da4.journal /mnt

     Anmerkung: Falls auf Ihrem System mehrere Slices angelegt sind
     (beispielsweise ad4s1 sowie ad4s2), wird gjournal fu:r jedes
     Slice ein Journal anlegen (also ad4s1.journal sowie
     ad4s2.journal).

   Um die Leistung zu optimieren, kann das Journal auf eine externe
   Platte ausgelagert werden. In einem solchen Fall geben Sie die
   Gera:tedatei der Platte nach dem Gera:t an, fu:r das Sie
   Journaling aktivieren wollen. Theoretisch ist es auch mo:glich,
   Journaling auf bereits existierenden Dateisystemen durch das
   Werkzeug tunefs zu aktivieren. Machen Sie aber in jedem Fall ein
   Backup Ihrer Daten, bevor Sie versuchen, ein existierendes
   Dateisystem zu a:ndern. gjournal wird zwar den Vorgang abbrechen,
   wenn es das Journal nicht erzeugen kann, allerdings schu:tzt Sie
   dies nicht vor Datenverlust durch einen fehlerhaften Einsatz von
   tunefs.

   Es ist mo:glich, Journale auch fu:r die Bootplatte eines
   FreeBSD-System zu verwenden. Lesen Sie bitte den Artikel
   Implementing UFS Journaling on a Desktop PC, wenn Sie an einer
   derartigen Konfiguration interessiert sind.

     --------------------------------------------------------------

                 Kapitel 21. Dateisystemunterstu:tzung

   Geschrieben von Tom Rhodes. U:bersetzt von Benedict Reuschling und
   Daniel Seuffert.

21.1. U:bersicht

   Dateisysteme sind ein wesentlicher Bestandteil von
   Betriebssystemen. Sie erlauben es den Benutzern Dateien zu laden
   und zu speichern, ermo:glichen den Zugriff auf die Daten und
   machen Festplatten u:berhaupt erst nu:tzlich. Unterschiedliche
   Betriebssysteme besitzen normalerweise eine Gemeinsamkeit,
   na:mlich deren mitgeliefertes Dateisystem. Bei FreeBSD ist dieses
   Dateisystem bekannt unter dem Namen Fast File System FFS, das
   direkt auf dem Original-Unix(TM) Dateisystem, UFS genannt,
   basiert. Dieses ist das von FreeBSD mitgelieferte Dateisystem, das
   auf Festplatten fu:r den Dateizugriff verwendet wird.

   FreeBSD unterstu:tzt auch eine Vielzahl von anderen Dateisystemen,
   um auf Daten von anderen Betriebssystemen lokal zuzugreifen, wie
   z.B. Daten auf USB-Speichermedien, Flash-Speichern und
   Festplatten. Es gibt auch Unterstu:tzung fu:r fremde Dateisysteme.
   Dabei handelt es sich um Dateisysteme, die auf anderen
   Betriebssystemen entwickelt wurden, wie beispielsweise das Linux
   Extended File System (EXT) und das Z-Dateisystem (ZFS) von Sun.

   Es gibt verschiedene Stufen der Unterstu:tzung in FreeBSD fu:r
   diese unterschiedlichen Dateisysteme. Manche beno:tigen ein
   geladenes Kernelmodul, andere die Installation bestimmter
   Werkzeuge. Dieses Kapitel dient dazu, den Benutzern von FreeBSD
   dazu helfen, auf andere Dateisysteme zuzugreifen, beginnend mit
   Suns Z-Dateisystem (ZFS).

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie die folgenden
   Dinge wissen:

     * Den Unterschied zwischen eingebauten und unterstu:tzten
       Dateisystemen.

     * Welche Dateisysteme von FreeBSD unterstu:tzt werden.

     * Wie man fremde Dateisysteme aktiviert, konfiguriert, darauf
       zugreift und diese verwendet.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * Grundlagen von UNIX und FreeBSD verstehen (Kapitel 4).

     * Mit den Grundlagen der Konfiguration und dem Bauen des Kernels
       vertraut sein (Kapitel 9).

     * Problemlos Software von Drittherstellern in FreeBSD
       installieren ko:nnen (Kapitel 5).

     * sich ein wenig mit Festplatten, Speicher und Gera:tenamen in
       FreeBSD auskennen (Kapitel 19).

     --------------------------------------------------------------

21.2. Das Z-Dateisystem (ZFS)

   Das Z-Dateisystem ist eine neue von Sun entwickelte Technologie,
   mit dem Konzept einer gepoolten Speichermethodik. Das bedeutet,
   dass Speicher nur verwendet wird, wenn dieser als Datenspeicher
   benutzt wird. ZFS wurde auch fu:r maximale Datenintegrita:t
   entwickelt und unterstu:tzt dabei mehrfache Kopien,
   Schnappschu:sse und Pru:fsummen fu:r Daten. Ein neues
   Datenreplikationsmodell, bekannt als RAID-Z, wurde ebenfalls
   hinzugefu:gt. Das RAID-Z-Modell ist a:hnlich zu RAID5, wurde aber
   mit dem Ziel entworfen, Datenverfa:lschung beim Schreiben zu
   verhindern.

     --------------------------------------------------------------

  21.2.1. ZFS Einstellungen

   Das ZFS-Teilsystem beno:tigt viele Systemressourcen, weshalb
   gewisse Einstellungen notwendig sind, um maximale Effizienz
   wa:hrend des ta:glichen Gebrauchs zu gewa:hrleisten. Da es sich um
   eine experimentelle Funktion in FreeBSD handelt, wird sich das in
   naher Zukunft a:ndern. Wie dem auch sei, zum gegenwa:rtigen
   Zeitpunkt wird die Anwendung der folgenden Schritte empfohlen.

     --------------------------------------------------------------

    21.2.1.1. Hauptspeicher

   Der verfu:gbare Hauptspeicher im System sollte mindestens
   1 Gigabyte betragen, jedoch werden 2 Gigabyte oder mehr empfohlen.
   In allen gezeigten Beispielen in diesem Abschnitt verwendet das
   System 1 Gigabyte Hauptspeicher mit mehreren anderen
   Einstellungen.

   Manche Nutzer hatten Erfolg bei der Verwendung von weniger als
   1 GB Hauptspeicher, aber mit dieser begrenzten Menge an RAM ist es
   sehr wahrscheinlich, dass FreeBSD eine Panic wegen erscho:pftem
   Hauptspeicher erleiden wird, wenn es hohen Belastungen ausgesetzt
   ist.

     --------------------------------------------------------------

    21.2.1.2. Kernelkonfiguration

   Es wird vorgeschlagen, nicht beno:tigte Treiber und Optionen aus
   der Kernelkonfigurationsdatei zu entfernen. Da die meisten Gera:te
   als Module verfu:gbar sind, ko:nnen diese einfach mittels der
   Datei /boot/loader.conf geladen werden.

   Nutzer der i386-Architektur sollten die folgende Option in ihrer
   Kernelkonfigurationsdatei hinzufu:gen, den Kernel neu erstellen
   und anschliessend das System neustarten:

 options         KVA_PAGES=512

   Diese Option wird den Adressraum des Kernels vergro:ssern, was es
   ermo:glicht, die Einstellung vm.kvm_size u:ber die momentan
   verha:ngte Grenze von 1 GB (2 GB fu:r PAE) zu erho:hen. Um den
   passenden Wert dieser Option zu ermitteln, teilen Sie den
   gewu:nschten Adressraum in Megabyte durch vier. In diesem Fall
   betra:gt er 512 fu:r 2 GB.

     --------------------------------------------------------------

    21.2.1.3. Einstellungen des Loaders

   Der kmem-Addressraum sollte auf allen FreeBSD-Architekturen
   erho:ht werden. Die folgende Option, die dem Testsystem mit einem
   Gigabyte Hauptspeicher der Datei /boot/loader.conf hinzugefu:gt
   und welches anschliessend neu gestartet wurde, war erfolgreich:

 vm.kmem_size="330M"
 vm.kmem_size_max="330M"
 vfs.zfs.arc_max="40M"
 vfs.zfs.vdev.cache.size="5M"

   Eine detailliertere Liste von Vorschla:gen zu ZFS-verwandten
   Einstellungen finden Sie unter
   http://wiki.freebsd.org/ZFSTuningGuide.

     --------------------------------------------------------------

  21.2.2. Verwenden von ZFS

   Es existiert ein Startmechanismus, der es FreeBSD erlaubt, ZFS als
   Pool wa:hrend des Systemstarts zu initialisieren. Um das zu tun,
   geben Sie die folgenden Befehle ein:

 # echo 'zfs_enable="YES"' >> /etc/rc.conf
 # /etc/rc.d/zfs start

   Fu:r den Rest dieses Dokuments wird angenommen, dass drei
   SCSI-Platten im System verfu:gbar sind und dass deren Gera:tenamen
   da0, da1 und da2 lauten. Benutzer von IDE-Hardware ko:nnen
   ad-Gera:te an Stelle von SCSI-Hardware einsetzen.

     --------------------------------------------------------------

    21.2.2.1. Pool mit nur einer Platte

   Um ein einfaches, nicht-redundantes ZFS auf einer einzelnen
   Festplatte zu erstellen, benutzen Sie das zpool-Kommando:

 # zpool create example /dev/da0

   Um den neuen Pool anzusehen, u:berpru:fen Sie die Ausgabe von df:

 # df
 Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
 /dev/ad0s1a   2026030  235230  1628718    13%    /
 devfs               1       1        0   100%    /dev
 /dev/ad0s1d  54098308 1032846 48737598     2%    /usr
 example      17547136       0 17547136     0%    /example

   Diese Ausgabe zeigt deutlich, dass der example-Pool nicht nur
   erstellt, sondern auch gemountet wurde. Er ist genau wie andere
   Dateisysteme verfu:gbar, Dateien ko:nnen darin erstellt und von
   den Benutzern aufgelistet werden, wie im folgenden Beispiel
   gezeigt wird:

 # cd /example
 # ls
 # touch testfile
 # ls -al
 total 4
 drwxr-xr-x   2 root  wheel    3 Aug 29 23:15 .
 drwxr-xr-x  21 root  wheel  512 Aug 29 23:12 ..
 -rw-r--r--   1 root  wheel    0 Aug 29 23:15 testfile

   Leider verwendet dieser Pool keine der Vorteile der
   ZFS-Eigenschaften. Erstellen Sie ein Dateisystem auf diesem Pool
   und aktivieren Sie die Komprimierung darauf:

 # zfs create example/compressed
 # zfs set compression=gzip example/compressed

   Jetzt ist example/compressed ein von ZFS komprimiertes
   Dateisystem. Versuchen Sie, ein paar grosse Dateien in das
   Verzeichnis /example/compressed zu kopieren.

   Die Komprimierung kann jetzt deaktiviert werden mittels:

 # zfs set compression=off example/compressed

   Um das Dateisystem aus dem Verzeichnisbaum abzuha:ngen, geben Sie
   den folgenden Befehl ein und vergewissern Sie sich u:ber df vom
   Erfolg dieser Aktion:

 # zfs umount example/compressed
 # df
 Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
 /dev/ad0s1a   2026030  235232  1628716    13%    /
 devfs               1       1        0   100%    /dev
 /dev/ad0s1d  54098308 1032864 48737580     2%    /usr
 example      17547008       0 17547008     0%    /example

   Mounten Sie das Dateisystem erneut, um es wieder verfu:gbar zu
   machen und besta:tigen Sie mit df:

 # zfs mount example/compressed
 # df
 Filesystem         1K-blocks    Used    Avail Capacity  Mounted on
 /dev/ad0s1a          2026030  235234  1628714    13%    /
 devfs                      1       1        0   100%    /dev
 /dev/ad0s1d         54098308 1032864 48737580     2%    /usr
 example             17547008       0 17547008     0%    /example
 example/compressed  17547008       0 17547008     0%    /example/compressed

   Der Pool und das Dateisystem ko:nnen genausogut u:ber die Ausgabe
   von mount u:berwacht werden:

 # mount
 /dev/ad0s1a on / (ufs, local)
 devfs on /dev (devfs, local)
 /dev/ad0s1d on /usr (ufs, local, soft-updates)
 example on /example (zfs, local)
 example/data on /example/data (zfs, local)
 example/compressed on /example/compressed (zfs, local)

   Wie zu beobachten ist, ko:nnen ZFS-Dateisysteme nach deren
   Erstellung genauso wie normale Dateisysteme verwendet werden,
   jedoch sind auch noch viele andere Eigenschaften verfu:gbar. Im
   folgenden Beispiel wird ein neues Dateisystem, data, erstellt.
   Wichtige Dateien sollen hier gespeichert werden, weshalb das
   Dateisystem angewiesen wird, jeweils zwei Kopien jedes Datenblocks
   zu unterhalten:

 # zfs create example/data
 # zfs set copies=2 example/data

   Es ist nun mo:glich, den Speicherplatzverbrauch der Daten mittels
   df erneut zu betrachten:

 # df
 Filesystem         1K-blocks    Used    Avail Capacity  Mounted on
 /dev/ad0s1a          2026030  235234  1628714    13%    /
 devfs                      1       1        0   100%    /dev
 /dev/ad0s1d         54098308 1032864 48737580     2%    /usr
 example             17547008       0 17547008     0%    /example
 example/compressed  17547008       0 17547008     0%    /example/compressed
 example/data        17547008       0 17547008     0%    /example/data

   Beachten Sie, dass jedem Dateisystem des Pools die gleiche Menge
   an Speicher zur Verfu:gung steht. Das ist der Grund fu:r die
   Verwendung von df in all diesen Beispielen, da es zeigt, dass das
   Dateisystem nur den Speicher belegt, den es auch beno:tigt und
   alles wird von dem gleichen Pool abgezogen. ZFS macht Konzepte wie
   Volumen und Partitionen u:berflu:ssig und erlaubt mehrere
   Dateisysteme auf demselben Pool. Zersto:ren Sie die Datensysteme
   und anschliessend den Pool, da sie nicht la:nger gebraucht werden:

 # zfs destroy example/compressed
 # zfs destroy example/data
 # zpool destroy example

   Festplatten werden mit der Zeit schlechter und fallen aus, eine
   unvermeidliche Tatsache. Wenn diese Platte ausfa:llt, sind die
   Daten verloren. Eine Mo:glichkeit, diesen Datenverlust beim
   Plattenausfall zu vermeiden, ist die Verwendung von RAID. ZFS
   unterstu:tzt diese Eigenschaft im Entwurf seiner Pools und wird im
   na:chsten Abschnitt behandelt.

     --------------------------------------------------------------

    21.2.2.2. ZFS RAID-Z

   Wie zuvor bereits erwa:hnt, wird in diesem Abschnitt angenommen,
   dass drei SCSI-Gera:te vorhanden sind (da0, da1 und da1 bzw. ad0
   und so weiter, falls IDE-Platten verwendet werden). Um einen
   RAID-Z Pool zu erstellen, geben Sie das folgende Kommando ein:

 # zpool create storage raidz da0 da1 da2

     Anmerkung: Sun empfiehlt, dass die Anzahl von Gera:ten in einer
     RAID-Z Konfiguration drei bis neun betra:gt. Falls Ihre
     Anforderungen unbedingt einen einzelnen Pool, bestehend aus zehn
     oder mehr Platten, erfordern, sollten Sie u:berlegen, diesen in
     kleinere RAID-Z Gruppen aufzuteilen. Sollten Sie nur zwei
     Platten zur Verfu:gung haben und trotzdem Redundanz beno:tigen,
     ziehen Sie den Einsatz der ZFS-Mirror (Spiegel) Fa:higkeiten in
     Betracht. Lesen Sie die zpool(8) Manualpage, um mehr daru:ber zu
     erfahren.

   Der storage-zPool sollte jetzt erstellt worden sein. Sie ko:nnen
   das u:berpru:fen, indem Sie die Befehle mount(8) und df(1) wie
   zuvor verwenden. Weitere Plattenspeicher ko:nnen an das Ende der
   oben stehenden Liste hinzugefu:gt werden. Erstellen Sie ein neues
   Dateisystem in dem Pool, home genannt, in dem spa:ter Dateien von
   Benutzern platziert werden:

 # zfs create storage/home

   Nun kann die Komprimierung aktiviert und zusa:tzliche Kopien der
   Benutzerverzeichnisse und der darin enthaltenen Dateien angelegt
   werden. Dies geschieht u:ber die gleichen Befehle wie bereits
   zuvor:

 # zfs set copies=2 storage/home
 # zfs set compression=gzip storage/home

   Um dieses Verzeichnis als neues Benutzerverzeichnis zu verwenden,
   kopieren Sie die Nutzerdaten dort hin und erstellen Sie die
   entsprechenden Symlinks:

 # cp -rp /home/* /storage/home
 # rm -rf /home /usr/home
 # ln -s /storage/home /home
 # ln -s /storage/home /usr/home

   Anwender sollten jetzt ihre Daten in dem neu angelegten
   /storage/home Dateisystem auffinden. Pru:fen Sie das, indem Sie
   einen neuen Benutzer hinzufu:gen und sich als dieser Benutzer am
   System anmelden.

   Versuchen Sie, einen Schnappschuss anzulegen, der spa:ter wieder
   zuru:ckgerollt werden kann:

 # zfs snapshot storage/home@08-30-08

   Beachten Sie, dass die Schnappschuss-Option nur auf echte
   Dateisysteme, jedoch nicht auf Verzeichnisse oder eine Datei
   angewendet werden kann. Das @-Zeichen dient als Begrenzer zwischen
   dem Dateisystem- oder Volumenamen. Wenn ein Benutzerverzeichnis
   zersto:rt wird, ko:nnen Sie es u:ber den folgenden Befehl wieder
   herstellen:

 # zfs rollback storage/home@08-30-08

   Um eine Liste von allen verfu:gbaren Schnappschu:ssen zu erhalten,
   starten Sie das ls-Kommando in Verzeichnis .zfs/snapshot des
   entsprechenden Dateisystems. Beispielsweise ko:nnen Sie den vorhin
   angelegten Schnappschuss mit dem folgenden Befehl auflisten:

 # ls /storage/home/.zfs/snapshot

   Es ist mo:glich ein Skript zu schreiben, dass monatliche
   Schnappschu:sse der Nutzerdaten anlegt. Allerdings werden die
   Schnappschu:sse mit der Zeit eine grosse Menge an Speicherplatz
   einnehmen. Den vorherigen Schnappschuss ko:nnen Sie u:ber das
   folgende Kommando lo:schen:

 # zfs destroy storage/home@08-30-08

   Nach all diesen Tests gibt es keinen Grund, das Verzeichnis
   /storage/home noch la:nger in seinem momentanen Zustand zu
   belassen. Ernennen Sie es zum echten /home-Dateisystem:

 # zfs set mountpoint=/home storage/home

   Die Eingabe der Befehle df und mount zeigt, dass das System das
   Dateisystem nun als das echte /home behandelt:

 # mount
 /dev/ad0s1a on / (ufs, local)
 devfs on /dev (devfs, local)
 /dev/ad0s1d on /usr (ufs, local, soft-updates)
 storage on /storage (zfs, local)
 storage/home on /home (zfs, local)
 # df
 Filesystem   1K-blocks    Used    Avail Capacity  Mounted on
 /dev/ad0s1a    2026030  235240  1628708    13%    /
 devfs                1       1        0   100%    /dev
 /dev/ad0s1d   54098308 1032826 48737618     2%    /usr
 storage       26320512       0 26320512     0%    /storage
 storage/home  26320512       0 26320512     0%    /home

   Damit ist die RAID-Z-Konfiguration abgeschlossen. Um u:ber den
   Status des Dateisystems mittels des na:chtlichen
   periodic(8)-Skripts auf dem Laufenden gehalten zu werden, geben
   Sie das folgende Kommando ein:

 # echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf

     --------------------------------------------------------------

    21.2.2.3. Wiederherstellung von RAID-Z

   Jedes Software-RAID besitzt Verfahren, um dessen Zustand zu
   u:berwachen. ZFS ist da keine Ausnahme. Der Status von RAID-Z
   Gera:ten kann mittels des folgenden Kommandos betrachtet werden:

 # zpool status -x

   Wenn alle Pools gesund sind und alles normal ist, wird die
   folgende Nachricht zuru:ckgegeben:

 all pools are healthy

   Wenn ein Problem existiert (mo:glicherweise ist eine Platte
   ausgefallen), wird der Zustand des Pools a:hnlich dem Folgenden
   ausgegeben:

   pool: storage
  state: DEGRADED
 status: One or more devices has been taken offline by the administrator.
         Sufficient replicas exist for the pool to continue functioning in a
         degraded state.
 action: Online the device using 'zpool online' or replace the device with
         'zpool replace'.
  scrub: none requested
 config:

         NAME        STATE     READ WRITE CKSUM
         storage     DEGRADED     0     0     0
           raidz1    DEGRADED     0     0     0
             da0     ONLINE       0     0     0
             da1     OFFLINE      0     0     0
             da2     ONLINE       0     0     0

 errors: No known data errors

   Das bedeutet, dass das Gera:t vom Systemadministrator abgeschaltet
   wurde. In diesem Fall trifft das zu. Um eine Platte abzuschalten,
   wurde das folgende Kommando eingegeben:

 # zpool offline storage da1

   Es ist jetzt mo:glich, da1 zu ersetzen, nachdem das System
   ausgeschaltet wurde. Wenn das System wieder la:uft, kann der
   folgende Befehl benutzt werden, um die Platte zu ersetzen:

 # zpool replace storage da1

   Von da an kann der Status erneut u:berpru:ft werden, jedoch dieses
   Mal ohne die Option -x, um die Zustandsinformation zu bekommen:

 # zpool status storage
  pool: storage
  state: ONLINE
  scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
 config:

         NAME        STATE     READ WRITE CKSUM
         storage     ONLINE       0     0     0
           raidz1    ONLINE       0     0     0
             da0     ONLINE       0     0     0
             da1     ONLINE       0     0     0
             da2     ONLINE       0     0     0

 errors: No known data errors

   Wie in diesem Beispiel gezeigt, scheint alles wieder normal zu
   sein.

     --------------------------------------------------------------

    21.2.2.4. Datenu:berpru:fung

   Wie bereits erwa:hnt, verwendet ZFS Pru:fsummen, um die
   Integrita:t der gespeicherten Daten zu verifizieren. Die
   Pru:fsummen werden automatisch beim Erstellen des Dateisystem
   aktiviert und ko:nnen u:ber den folgenden Befehl deaktiviert
   werden:

 # zfs set checksum=off storage/home

   Das ist jedoch kein schlauer Einfall, da die Pru:fsummen nur ganz
   wenig Speicherplatz einnehmen und viel nu:tzlicher sind, wenn Sie
   aktiviert bleiben. Es scheint auch kein nennenswerter
   Ressourcenverbrauch mit deren Aktivierung verbunden zu sein. Wenn
   die Pru:fsummen aktiv sind, kann ZFS die Datenintegrita:t u:ber
   den Vergleich der Pru:fsummen gewa:hrleisten. Dieser Prozess wird
   als "reinigen" bezeichnet. Um die Datenintegrita:t des
   storage-Pools zu u:berpru:fen, geben Sie den folgenden Befehl ein:

 # zpool scrub storage

   Dieser Prozess kann einige Zeit in Anspruch nehmen, abha:ngig
   davon, wieviele Daten gespeichert sind. Es handelt sich dabei auch
   um eine I/O-intensive Aktion, weshalb auch jeweils nur eine dieser
   Operationen durchgefu:hrt werden darf. Nachdem die Reinigung
   abgeschlossen ist, wird der Status aktualisiert und kann u:ber
   eine Statusabfrage eingesehen werden:

 # zpool status storage
  pool: storage
  state: ONLINE
  scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
 config:

         NAME        STATE     READ WRITE CKSUM
         storage     ONLINE       0     0     0
           raidz1    ONLINE       0     0     0
             da0     ONLINE       0     0     0
             da1     ONLINE       0     0     0
             da2     ONLINE       0     0     0

 errors: No known data errors

   Die Zeit des Abschlusses der Aktion kann in diesem Beispiel direkt
   abgelesen werden. Die Pru:fsummen helfen dabei, sicherzustellen,
   dass die Datenintegrita:t u:ber einen langen Zeitraum hinaus
   erhalten bleibt.

   Es gibt viele weitere Optionen fu:r das Z-Dateisystem, lesen Sie
   dazu die Manualpage zfs(8) und zpool(8).

     --------------------------------------------------------------

                  Kapitel 22. Der Vinum Volume Manager

   Urspru:nglich geschrieben von Greg Lehey. U:bersetzt von Johann
   Kois und Kay Abendroth.

22.1. U:bersicht

   Egal, u:ber welche und wieviele Festplatten Ihr System auch
   verfu:gt, immer wieder werden Sie mit den folgenden Problemen
   konfrontiert:

     * Ihre Platten sind zu klein.

     * Sie sind zu langsam.

     * Ihre Platten sind unzuverla:ssig.

   Um derartige Probleme zu lo:sen, wurden verschiedene Methoden
   entwickelt. Eine Mo:glichkeit bietet der Einsatz von mehreren,
   manchmal auch redundant ausgelegten Platten. Zusa:tzlich zur
   Unterstu:tzung verschiedener Erweiterungskarten und Controller
   fu:r Hardware-RAID-Systeme entha:lt das FreeBSD-Basissystem auch
   den Vinum Volume Manager, einen Blockgera:tetreiber, der die
   Einrichtung virtueller Platten unterstu:tzt. Bei Vinum handelt es
   sich um einen sogenannten Volume Manager, einen virtuellen
   Plattentreiber, der obige drei Probleme lo:st. Vinum bietet Ihnen
   gro:ssere Flexibilita:t, Leistung und Zuverla:ssigkeit als die
   klassische Datenspeicherung auf einzelne Festplatten. Dazu
   unterstu:tzt Vinum RAID-0, RAID-1 und RAID-5 (sowohl einzeln als
   auch in Kombination).

   Dieses Kapitel bietet Ihnen einen U:berblick u:ber potentielle
   Probleme der klassischen Datenspeicherung auf Festplatten sowie
   eine Einfu:hrung in den Vinum Volume Manager.

     Anmerkung: Fu:r FreeBSD 5.X wurde Vinum u:berarbeitet und an die
     GEOM-Architektur (Kapitel 20) angepasst, wobei die
     urspru:nglichen Ideeen und Begriffe sowie die auf der Platte
     beno:tigten Metadaten beibehalten wurden. Die u:berarbeitete
     Version wird als gvinum (fu:r GEOM-Vinum) bezeichnet. Die
     folgenden Ausfu:hrungen verwenden den Begriff Vinum als
     abstrakten Namen, unabha:ngig davon, welche Variante
     implementiert wurde. Sa:mtliche Befehlsaufrufe erfolgen u:ber
     gvinum, welches nun das Kernelmodul geom_vinum.ko (statt
     vinum.ko) beno:tigt. Analog finden sich alle Gera:tedateien nun
     unter /dev/gvinum statt unter /dev/vinum. Seit FreeBSD 6.x ist
     die alte Vinum-Implementierung nicht mehr im Basissystem
     enthalten.

     --------------------------------------------------------------

22.2. Ihre Platten sind zu klein.

   Festplatten werden zwar immer gro:sser, parallel dazu steigt aber
   auch die Gro:sse der zu speichernden Daten an. Es kann also nach
   wie vor vorkommen, dass Sie ein Dateisystem beno:tigen, welches
   die Gro:sse Ihrer Platten u:bersteigt. Zwar ist dieses Problem
   nicht mehr so akut wie noch vor einigen Jahren, aber es existiert
   nach wie vor. Einige Systeme lo:sen dieses Problem durch die
   Erzeugung eines abstrakten Gera:tes, das seine Daten auf mehreren
   Platten speichert.

     --------------------------------------------------------------

22.3. Mo:gliche Engpa:sse

   Moderne Systeme mu:ssen ha:ufig parallel auf Daten zugreifen.
   Grosse FTP- und HTTP-Server ko:nnen beispielsweise Tausende von
   parallelen Sitzungen verwalten und haben mehrere
   100 MBit/s-Verbindungen zur Aussenwelt. Diese Bandbreite
   u:berschreitet die durchschnittliche Transferrate der meisten
   Platten bei weitem.

   Aktuelle Plattenlaufwerke ko:nnen Daten mit bis zu 70 MB/s
   sequentiell u:bertragen, wobei dieser Wert in einer Umgebung, in
   der viele unabha:ngige Prozesse auf eine gemeinsame Platte
   zugreifen, die jeweils nur einen Bruchteil dieses Wertes
   erreichen, von geringer Aussagekraft ist. In solchen Fa:llen ist
   es interessanter, das Problem vom Blickwinkel des
   Platten-Subsystems aus zu betrachten. Der wichtigste Parameter ist
   dabei die Last, die eine U:bertragung auf dem Subsystem
   verursacht. Unter Last versteht man dabei die Zeit, in der die
   Platte mit der U:bertragung der Daten bescha:ftigt ist.

   Bei jedem Plattenzugriff muss das Laufwerk zuerst die Ko:pfe
   positionieren und auf den ersten Sektor warten, bis er den
   Lesekopf passiert. Dann wird die U:bertragung gestartet. Diese
   Aktionen ko:nnen als atomar betrachtet werden, da es keinen Sinn
   macht, diese zu unterbrechen.

   Nehmen wir beispielsweise an, dass wir 10 kB transferieren wollen.
   Aktuelle hochperformante Platten ko:nnen die Ko:pfe im
   Durchschnitt in 3,5 ms positionieren und drehen sich mit maximal
   15.000 U/min. Daher betra:gt die durchschnittliche Rotationslatenz
   (eine halbe Umdrehung) 2 ms. Bei einer Transferrate von 70 MB/s
   dauert die eigentliche U:bertragung von 10 kB etwa 150 ms, fast
   nichts im Vergleich zur Positionierungszeit. In einem solchen Fall
   betra:gt die effektive Transferrate nur etwas mehr als 1 MB/s. Die
   Tranferrate ist also stark von der Gro:sse der zu tranferierenden
   Daten abha:ngig.

   Die traditionelle und offensichtliche Lo:sung zur Beseitigung
   dieses Flaschenhalses sind "mehr Spindeln". Statt einer einzigen
   grossen Platte werden mehrere kleinere Platten mit demselben
   Gesamtspeicherplatz benutzt. Jede Platte ist in der Lage,
   unabha:ngig zu positionieren und zu transferieren, weshalb der
   effektive Durchsatz um einen Faktor nahe der Zahl der eingesetzten
   Platten steigt.

   Obwohl die Platten Daten parallel transferieren ko:nnen, ist es
   nicht mo:glich, Anfragen gleichma:ssig auf die einzelnen Platten
   zu verteilen. Daher wird die Last auf bestimmten Laufwerken immer
   ho:her sein als auf anderen Laufwerken. Daraus ergibt sich auch,
   dass die exakte Verbesserung des Datendurchsatzes immer kleiner
   ist als die Anzahl der involvierten Platten.

   Die gleichma:ssige Verteilung der Last auf die einzelnen Platten
   ist stark abha:ngig von der Art, wie die Daten auf die Laufwerke
   aufgeteilt werden. In den folgenden Ausfu:hrungen wird eine Platte
   als eine grosse Anzahl von Datensektoren dargestellt, die durch
   Zahlen adressierbar sind (a:hnlich den Seiten eines Buches). Die
   naheliegendste Methode ist es, die virtuelle Platte (wieder analog
   den Seiten eines Buches) in Gruppen aufeinanderfolgender Sektoren
   zu unterteilen, die jeweils der Gro:sse der einzelnen physischen
   Platten entsprechen. Diese Vorgehensweise wird als Konkatenation
   bezeichnet und hat den Vorteil, dass die Platten keine spezielle
   Gro:ssenbeziehung haben mu:ssen. Sie funktioniert gut, solange der
   Zugriff gleichma:ssig auf den Adressraum der virtuellen Platte
   verteilt wird. Wenn sich der Zugriff allerdings auf einen kleinen
   Bereich konzentriert, ist die Verbesserung vernachla:ssigbar
   klein. Abbildung 22-1 verdeutlicht die Verteilung der
   Speichereinheiten in einer konkatenierten Anordnung.

   Abbildung 22-1. Konkatenierte Anordnung

   Ein alternatives Mapping unterteilt den Adressraum in kleinere,
   gleich grosse Komponenten und speichert diese sequentiell auf
   verschiedenen Gera:ten. Zum Beispiel werden die ersten 256
   Sektoren auf der ersten Platte, die na:chsten 256 Sektoren auf der
   zweiten Platte gespeichert und so weiter. Nachdem die letzte
   Platte beschrieben wurde, wird dieser Vorgang solange wiederholt,
   bis die Platten voll sind. Dieses Mapping nennt man Striping oder
   RAID-0. [13]

   Striping erfordert einen etwas gro:sseren Aufwand, um die Daten zu
   lokalisieren, und kann zusa:tzliche E/A-Last verursachen, wenn
   eine U:bertragung u:ber mehrere Platten verteilt ist. Auf der
   anderen Seite erlaubt es aber eine gleichma:ssigere Verteilung der
   Last auf die einzelnen Platten. Abbildung 22-2 veranschaulicht die
   Abfolge, in der Speichereinheiten in einer striped-Anordnung
   alloziert werden.

   Abbildung 22-2. Striped-Anordnung

     --------------------------------------------------------------

22.4. Datenintegrita:t

   Das dritte Problem, welches aktuelle Platten haben, ist ihre
   Unzuverla:ssigkeit. Obwohl sich die Zuverla:ssigkeit von
   Festplatten in den letzten Jahren stark verbessert hat, handelt es
   sich bei ihnen nach wie vor um die Komponente eines Servers, die
   am ehesten ausfa:llt. Fa:llt eine Festplatte aus, ko:nnen die
   Folgen katastrophal sein: Es kann Tage dauern, bis eine Platte
   ersetzt und alle Daten wiederhergestellt sind.

   Die traditionelle Art, dieses Problem anzugehen, war es, Daten zu
   spiegeln, also zwei Kopien der Daten auf getrennten Platten zu
   verwahren. Diese Technik wird auch als RAID Level 1 oder RAID-1
   bezeichnet. Jeder Schreibzugriff findet auf beiden Datentra:gern
   statt. Ein Lesezugriff kann daher von beiden Laufwerken erfolgen,
   sodass beim Ausfall eines Laufwerks die Daten immer noch auf dem
   anderen Laufwerk verfu:gbar sind.

   Spiegeln verursacht allerdings zwei Probleme:

     * Es verursacht ho:here Kosten, da doppelt so viel
       Plattenspeicher wie bei einer nicht-redundanten Lo:sung
       beno:tigt wird.

     * Die Gesamtleistung des Systems sinkt, da Schreibzugriffe auf
       beiden Laufwerken ausgefu:hrt werden mu:ssen, daher wird im
       Vergleich zu einem nicht gespiegelten Datentra:ger die
       doppelte Bandbreite beno:tigt. Lesezugriffe hingegen sind
       davon nicht betroffen, es sieht sogar so aus, als wu:rden
       diese schneller ausgefu:hrt.

   Eine alternative Lo:sung ist Parity, das in den RAID-Leveln 2, 3,
   4 und 5 implementiert ist. Von diesen ist RAID-5 der
   interessanteste. So wie in VINUM implementiert, ist es eine
   Variante einer gestripten Anordung, welche einen Block jedes
   Stripes als Parita:tsblock fu:r einen der anderen Blo:cke
   verwendet. Wie in RAID-5 vorgeschrieben, ist die Position dieses
   Parita:tsblockes auf jedem Stripe unterschiedlich. Die Nummern in
   den Datenblo:cken geben die relativen Blocknummern an.

   Abbildung 22-3. RAID-5 Aufbau

   Im Vergleich zur Spiegelung hat RAID-5 den Vorteil, dass es
   signifikant weniger Speicherplatz beno:tigt. Lesezugriffe sind
   vergleichbar schnell mit jenen bei einem Striped-Aufbau, aber
   Schreibzugriffe sind deutlich langsamer (etwa 25% der
   Lesegeschwindigkeit). Wenn eine Platte ausfa:llt, kann das Array
   in einem "schwachen" Modus weiterarbeiten: Ein Lesezugriff auf
   eine der u:brigen erreichbaren Platten wird normal ausgefu:hrt,
   ein Lesezugriff auf die ausgefallene Platte muss aber zuna:chst
   mit dem zugeho:rigen Block aller verbleibender Platten
   ru:ckberechnet werden.

     --------------------------------------------------------------

22.5. Vinum-Objekte

   Um die in den vorigen Abschnitte besprochenen Probleme zu lo:sen,
   verwendet Vinum eine vierstufige Objekthierarchie:

     * Das auffa:lligste Objekt ist die virtuelle Platte, die Volume
       genannt wird. Volumes haben im Wesentlichen die gleichen
       Eigenschaften wie ein UNIX-Laufwerk, obwohl es ein paar kleine
       Unterschiede gibt. So existieren fu:r Volumes beispielsweise
       keine Gro:ssenbeschra:nkungen.

     * Volumes bestehen aus einem oder mehreren Plexus, von denen
       jeder den gesamten Adressraum eines Datentra:gers
       repra:sentiert. Diese Hierarchieebene ist fu:r die beno:tigte
       Redundanz der Daten erforderlich. Stellen Sie sich die Plexus
       als eigensta:ndige Platten in einem gespiegelten Array vor,
       von denen jede die gleichen Daten entha:lt.

     * Da Vinum im UNIX-Plattenspeicher-Framework arbeitet, wa:re es
       mo:glich, als Grundbaustein fu:r Multiplatten-Plexus
       UNIX-Partitionen zu verwenden. In der Praxis ist dieser Ansatz
       aber zu unflexibel, da UNIX-Platten nur eine begrenzte Anzahl
       von Partitionen haben ko:nnen. Daher unterteilt Vinum
       stattdessen eine einzige UNIX-Partition (die Platte) in
       zusammenha:ngende Bereiche, die als Subdisks bezeichnet werden
       und als Grundbausteine fu:r einen Plexus benutzt werden.

     * Subdisks befinden sich auf Vinum-Platten, eigentlich
       UNIX-Partitionen. Vinum-Platten ko:nnen eine beliebige Anzahl
       von Subdisks haben und den gesamten Speicher der Platte mit
       Ausnahme eines kleinen Bereiches am Anfang der Platte (welcher
       zur Speicherung von Konfigurations- und Statusinformationen
       verwenden wird) verwenden.

   Der folgende Abschnitt beschreibt, wie diese Objekte die von Vinum
   beno:tigten Funktionen zur Verfu:gung stellen.

     --------------------------------------------------------------

  22.5.1. U:berlegungungen zur Gro:sse eines Volumes

   Plexus ko:nnen mehrere Subdisks beinhalten, die u:ber alle Platten
   der Vinum-Konfiguration verteilt sind. Daraus folgt, dass die
   Gro:sse einer Platte nicht die Gro:sse eines Plexus (und damit
   eines Volumes) limitiert.

     --------------------------------------------------------------

  22.5.2. Redundante Datenspeicherung

   Vinum implementiert die Datenspiegelung, indem es ein Volume auf
   mehrere Plexus verteilt. Jeder Plexus ist dabei die
   Repra:sentation der Daten eines Volumes. Ein Volume kann aus bis
   zu acht Plexus bestehen.

   Obwohl ein Plexus die gesamten Daten eines Volumes repra:sentiert,
   ist es mo:glich, dass Teile der Repra:sentation physisch fehlen,
   entweder aufgrund des Designs (etwa durch nicht definierte
   Subdisks fu:r Teile des Plexus) oder durch Zufall (als ein
   Ergebnis eines Plattenfehlers). Solange wenigstens ein Plexus die
   gesamten Daten fu:r den kompletten Adressbereich des Volumes zur
   Verfu:gung stellen kann, ist das Volume voll funktionsfa:hig.

     --------------------------------------------------------------

  22.5.3. U:berlegungen zur Leistung

   Sowohl Konkatenation als auch Striping werden von Vinum auf der
   Plexus-Ebene realisiert:

     * Ein konkatenierter Plexus benutzt abwechselnd den Adressraum
       jeder Subdisk.

     * Ein gestripter Plexus striped die Daten u:ber jede Subdisk.
       Die Subdisks mu:ssen alle die gleiche Gro:sse haben, und es
       muss mindestens zwei Subdisks in Reihenfolge geben, um ihn von
       einem konkatenierten Plexus unterscheiden zu ko:nnen.

     --------------------------------------------------------------

  22.5.4. Wie ist ein Plexus aufgebaut?

   Die Version von Vinum, welche von FreeBSD-9.0 bereitgestellt wird,
   implementiert zwei Arten von Plexus:

     * Konkatenierte Plexus sind die flexibelsten: Sie ko:nnen aus
       einer beliebigen Anzahl von Subdisks unterschiedlicher Gro:sse
       bestehen. Der Plexus kann erweitert werden, indem man
       zusa:tzliche Subdisks hinzufu:gt. Sie brauchen weniger
       CPU-Zeit als gestripte Plexus, obwohl der Unterschied des
       CPU-Overheads nicht messbar ist. Auf der anderen Seite sind
       sie aber sehr anfa:llig fu:r das Entstehen von "hot spots",
       wobei eine Platte sehr aktiv ist, andere hingegen nahezu
       ungenutzt sind.

     * Der gro:sste Vorteil eines gestripten Plexus (RAID-0) ist die
       Verringerung von "hot spots". Dies wird durch die Auswahl
       eines Stripes optimaler Gro:sse (etwa 256 kB) erreicht,
       wodurch die Last gleichma:ssig auf die Platten verteilt werden
       kann. Nachteile dieser Vorgehensweise sind ein (geringfu:gig)
       komplexerer Code sowie einige Restriktionen fu:r die Subdisks:
       Diese mu:ssen alle die gleiche Gro:sse haben, und das
       Erweitern eines Plexus durch das Hinzufu:gen neuer Subdisks
       ist so kompliziert, dass es von Vinum derzeit nicht
       unterstu:tzt wird. Vinum fordert noch eine weitere triviale
       Beschra:nkung: Ein gestripter Plexus muss aus mindestens zwei
       Subdisks bestehen, da er ansonsten nicht von einem
       konkatenierten Plexus unterscheidbar ist.

   Tabelle 22-1 fasst die Vor- und Nachteile jedes Plexus-Aufbaus
   zusammen.

   Tabelle 22-1. Vinum-Plexus - Aufbau

                                       Mu:ssen                           
                 Minimum      Kann       die   
    Plexus-Typ     an       Subdisks   gleiche        Applikation
                Subdisks? hinzufu:gen? Gro:sse 
                                        haben  
                                               Grosser Datenspeicher mit 
   konkateniert 1         ja           nein    maximaler                 
                                               Platzierungsflexibilita:t 
                                               und moderater Leistung    
                                               Hohe Leistung in          
   gestriped    2         nein         ja      Kombination mit           
                                               gleichzeitigem Zugriff    

     --------------------------------------------------------------

22.6. Einige Beispiele

   Vinum verwaltet eine Konfigurationsdatenbank fu:r alle einem
   individuellen System bekannten Objekte. Zu Beginn erzeugt ein
   Benutzer mit gvinum(8) eine Konfigurationsdatenbank aus einer oder
   mehreren Konfigurationsdateien. Vinum speichert danach eine Kopie
   der Konfigurationsdatenbank in jedem von ihm kontrollierten Slice
   (von Vinum als Device bezeichnet). Da die Datenbank bei jedem
   Statuswechsel aktualisiert wird, kann nach einem Neustart der
   Status jedes Vinum-Objekts exakt wiederhergestellt werden.

     --------------------------------------------------------------

  22.6.1. Die Konfigurationsdatei

   Die Konfigurationsdatei beschreibt individuelle Vinum-Objekte. Die
   Beschreibung eines einfachen Volumes ko:nnte beispielsweise so
   aussehen:

     drive a device /dev/da3h
     volume myvol
       plex org concat
         sd length 512m drive a

   Diese Datei beschreibt vier Vinum-Objekte:

     * Die drive-Zeile beschreibt eine Plattenpartition (drive) sowie
       ihre Position in Bezug auf die darunter liegende Hardware. Die
       Partition hat dabei den symbolischen Namen a. Diese Trennung
       von symbolischen Namen und Gera:tenamen erlaubt es, die
       Position von Platten zu a:ndern, ohne dass es zu Problemen
       kommt.

     * Die volume-Zeile beschreibt ein Volume. Dafu:r wird nur ein
       einziges Attribut, der Name des Volumes, beno:tigt. In unserem
       Fall hat das Volume den Namen myvol.

     * Die plex-Zeile definiert einen Plexus. Auch hier wird nur ein
       Parameter, und zwar die Art des Aufbau, beno:tigt (in unserem
       Fall concat). Es wird kein Name beno:tigt, das System
       generiert automatisch einen Namen aus dem Volume-Namen und dem
       Suffix .px wobei x die Nummer des Plexus innerhalb des Volumes
       angibt. So wird dieser Plexus den Namen myvol.p0 erhalten.

     * Die sd-Zeile beschreibt eine Subdisk. Um eine Subdisk
       einzurichten, mu:ssen Sie zumindest den Namen der Platte, auf
       der Sie die Subdisk anlegen wollen, sowie die Gro:sse der
       Subdisk angeben. Analog zur Definition eines Plexus wird auch
       hier kein Name beno:tigt: Das System weist automatisch Namen
       zu, die aus dem Namen des Plexus und dem Suffix .sx gebildet
       werden, wobei x die Nummer der Subdisk innerhalb des Plexus
       ist. Folglich gibt Vinum dieser Subdisk den Namen myvol.p0.s0.

   Nach dem Verarbeiten dieser Datei erzeugt gvinum(8) die folgende
   Ausgabe:

       # gvinum -> create config1
       Configuration summary
       Drives:         1 (4 configured)
       Volumes:        1 (4 configured)
       Plexes:         1 (8 configured)
       Subdisks:       1 (16 configured)

         D a                     State: up       Device /dev/da3h        Avail: 2061/2573 MB (80%)

         V myvol                 State: up       Plexes:       1 Size:        512 MB

         P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB

         S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB

   Diese Ausgabe entspricht dem verku:rzten Ausgabeformat von
   gvinum(8) und wird in Abbildung 22-4 grafisch dargestellt.

   Abbildung 22-4. Ein einfaches Vinum-Volume

   Dieses und die folgenden Beispiele zeigen jeweils ein Volume,
   welches die Plexus entha:lt, die wiederum die Subdisk enthalten.
   In diesem trivialen Beispiel entha:lt das Volume nur einen Plexus,
   der wiederum nur aus einer Subdisk besteht.

   Eine solche Konfiguration ha:tte allerdings keinen Vorteil
   gegenu:ber einer konventionellen Plattenpartion. Das Volume
   entha:lt nur einen einzigen Plexus, daher gibt es keine redundante
   Datenspeicherung. Da der Plexus ausserdem nur eine einzige Subdisk
   entha:lt, unterscheidet sich auch die Speicherzuweisung nicht von
   der einer konventionellen Plattenpartition. Die folgenden
   Abschnitte beschreiben daher verschiedene interessantere
   Konfigurationen.

     --------------------------------------------------------------

  22.6.2. Verbesserte Ausfallsicherheit durch Spiegelung

   Die Ausfallsicherheit eines Volumes kann durch Spiegelung der
   Daten erho:ht werden. Beim Anlegen eines gespiegelten Volumes ist
   es wichtig, die Subdisks jedes Plexus auf verschiedene Platten zu
   verteilen, damit ein Plattenausfall nicht beide Plexus unbrauchbar
   macht. Die folgende Konfiguration spiegelt ein Volume:

         drive b device /dev/da4h
         volume mirror
       plex org concat
         sd length 512m drive a
           plex org concat
             sd length 512m drive b

   Bei diesem Beispiel war es nicht no:tig, noch einmal eine Platte a
   zu spezifizieren, da Vinum die U:bersicht u:ber alle Objekte und
   seine Konfigurationsdatenbank beha:lt. Nach dem Abarbeiten dieser
   Definition sieht die Konfiguration wie folgt aus:

         Drives:         2 (4 configured)
         Volumes:        2 (4 configured)
         Plexes:         3 (8 configured)
         Subdisks:       3 (16 configured)

         D a                     State: up       Device /dev/da3h        Avail: 1549/2573 MB (60%)
         D b                     State: up       Device /dev/da4h        Avail: 2061/2573 MB (80%)

     V myvol                 State: up       Plexes:       1 Size:        512 MB
     V mirror                State: up       Plexes:       2 Size:        512 MB

     P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB

     S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
     S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
     S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB

   Abbildung 22-5 stellt diese Struktur grafisch dar.

   Abbildung 22-5. Ein gespiegeltes Vinum Volume

   In diesem Beispiel entha:lt jeder Plexus die vollen 512 MB des
   Adressraumes. Wie im vorangegangenen Beispiel entha:lt jeder
   Plexus nur eine Subdisk.

     --------------------------------------------------------------

  22.6.3. Die Leistung optimieren

   Das gespiegelte Volume des letzten Beispieles ist resistenter
   gegenu:ber Fehlern als ein ungespiegeltes Volume, seine Leistung
   ist hingegen schlechter, da jeder Schreibzugriff auf das Volume
   einen Schreibzugriff auf beide Platten erfordert und damit mehr
   der insgesamt verfu:gbaren Datentransferrate beno:tigt. Steht also
   die optimale Leistung im Vordergrund, muss anders vorgegangen
   werden: Statt alle Daten zu spiegeln, werden die Daten u:ber so
   viele Platten wie mo:glich gestriped. Die folgende Konfiguration
   zeigt ein Volume mit einem u:ber vier Platten hinwegreichenden
   Plexus:

         drive c device /dev/da5h
         drive d device /dev/da6h
         volume stripe
         plex org striped 512k
           sd length 128m drive a
           sd length 128m drive b
           sd length 128m drive c
           sd length 128m drive d

   Wie zuvor ist es nicht no:tig, die Platten zu definieren, die
   Vinum schon bekannt sind. Nach dem Abarbeiten dieser Definition
   sieht die Konfiguration wie folgt aus:

         Drives:         4 (4 configured)
         Volumes:        3 (4 configured)
         Plexes:         4 (8 configured)
         Subdisks:       7 (16 configured)

     D a                     State: up       Device /dev/da3h        Avail: 1421/2573 MB (55%)
     D b                     State: up       Device /dev/da4h        Avail: 1933/2573 MB (75%)
     D c                     State: up       Device /dev/da5h        Avail: 2445/2573 MB (95%)
     D d                     State: up       Device /dev/da6h        Avail: 2445/2573 MB (95%)

     V myvol                 State: up       Plexes:       1 Size:        512 MB
     V mirror                State: up       Plexes:       2 Size:        512 MB
     V striped               State: up       Plexes:       1 Size:        512 MB

     P myvol.p0            C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p0           C State: up       Subdisks:     1 Size:        512 MB
     P mirror.p1           C State: initializing     Subdisks:     1 Size:        512 MB
     P striped.p1            State: up       Subdisks:     1 Size:        512 MB

     S myvol.p0.s0           State: up       PO:        0  B Size:        512 MB
     S mirror.p0.s0          State: up       PO:        0  B Size:        512 MB
     S mirror.p1.s0          State: empty    PO:        0  B Size:        512 MB
     S striped.p0.s0         State: up       PO:        0  B Size:        128 MB
     S striped.p0.s1         State: up       PO:      512 kB Size:        128 MB
     S striped.p0.s2         State: up       PO:     1024 kB Size:        128 MB
     S striped.p0.s3         State: up       PO:     1536 kB Size:        128 MB

   Abbildung 22-6. Ein Striped Vinum Volume

   Dieses Volume wird in Abbildung 22-6 dargestellt. Die Schattierung
   der Stripes zeigt die Position innerhalb des Plexus-Adressraumes
   an. Die hellsten Stripes kommen zuerst, die dunkelsten zuletzt.

     --------------------------------------------------------------

  22.6.4. Ausfallsicherheit und Leistung

   Mit entsprechender Hardware ist es mo:glich, Volumes zu bauen,
   welche gegenu:ber Standard-UNIX-Partitionen beides, na:mlich
   erho:hte Ausfallsicherheit und erho:hte Leistung, aufweisen
   ko:nnen. Eine typische Konfigurationsdatei ko:nnte etwa so
   aussehen:

         volume raid10
       plex org striped 512k
         sd length 102480k drive a
         sd length 102480k drive b
         sd length 102480k drive c
         sd length 102480k drive d
         sd length 102480k drive e
       plex org striped 512k
         sd length 102480k drive c
         sd length 102480k drive d
         sd length 102480k drive e
         sd length 102480k drive a
         sd length 102480k drive b

   Die Subdisks des zweiten Plexus sind gegenu:ber denen des ersten
   Plexus um zwei Platten verschoben. Dadurch wird sichergestellt,
   dass Schreibzugriffe nicht auf den gleichen Subdisks auftreten,
   auch wenn eine U:bertragung u:ber zwei Platten geht.

   Abbildung 22-7 veranschaulicht die Struktur dieses Volumes.

   Abbildung 22-7. Ein gespiegeltes, Striped Vinum Volume

     --------------------------------------------------------------

22.7. Objektbenennung

   Wie oben beschrieben, weist Vinum den Plexus und Subdisks
   Standardnamen zu, wenngleich diese u:berschrieben werden ko:nnen.
   Das U:berschreiben dieser Standardnamen wird allerdings nicht
   empfohlen. Erfahrungen mit dem VERITAS Volume Manager (der eine
   willku:rliche Benennung von Objekten erlaubt) haben gezeigt, dass
   diese Flexibilita:t keinen entscheidenden Vorteil bringt und zudem
   Verwirrung stiften kann.

   Namen du:rfen zwar alle nichtleeren Zeichen enthalten, es ist aber
   sinnvoll, nur Buchstaben, Ziffern und den Unterstrich zu
   verwenden. Die Namen von Volumes, Plexus und Subdisks ko:nnen bis
   zu 64 Zeichen lang sein, die Namen von Platten du:rfen hingegen
   nur bis zu 32 Zeichen lang sein.

   Vinum-Objekten werden Gera:tedateien in der /dev/gvinum-Hierarchie
   zugewiesen. Die weiter oben dargestellte Konfiguration wu:rde
   Vinum dazu veranlassen, die folgenden Gera:tedateien zu erstellen:

     * Gera:te-Eintra:ge fu:r jedes Volume. Dieses sind die
       Hauptgera:te, die von Vinum benutzt werden. Somit wu:rde die
       Konfiguration von oben folgende Gera:te beinhalten:
       /dev/gvinum/myvol, /dev/gvinum/mirror, /dev/gvinum/striped,
       /dev/gvinum/raid5 sowie /dev/gvinum/raid10.

     * Alle Volumes bekommen direkte Eintra:ge unter /dev/gvinum/.

     * Die Verzeichnisse /dev/gvinum/plex und /dev/gvinum/sd, die
       Gera:tedateien fu:r jeden Plexus sowie jede Subdisk enthalten.

   Stellen Sie sich folgende Konfigurationsdatei vor:

         drive drive1 device /dev/sd1h
         drive drive2 device /dev/sd2h
         drive drive3 device /dev/sd3h
         drive drive4 device /dev/sd4h
     volume s64 setupstate
       plex org striped 64k
         sd length 100m drive drive1
         sd length 100m drive drive2
         sd length 100m drive drive3
         sd length 100m drive drive4

   Nach Abarbeitung dieser Datei erstellt gvinum(8) die folgende
   Struktur unter /dev/gvinum:

         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 plex
         crwxr-xr--  1 root  wheel   91,   2 Apr 13 16:46 s64
         drwxr-xr-x  2 root  wheel       512 Apr 13 16:46 sd

     /dev/vinum/plex:
     total 0
     crwxr-xr--  1 root  wheel   25, 0x10000002 Apr 13 16:46 s64.p0

     /dev/vinum/sd:
     total 0
     crwxr-xr--  1 root  wheel   91, 0x20000002 Apr 13 16:46 s64.p0.s0
     crwxr-xr--  1 root  wheel   91, 0x20100002 Apr 13 16:46 s64.p0.s1
     crwxr-xr--  1 root  wheel   91, 0x20200002 Apr 13 16:46 s64.p0.s2
     crwxr-xr--  1 root  wheel   91, 0x20300002 Apr 13 16:46 s64.p0.s3

   Es wird empfohlen, fu:r Plexus und Subdisks keine eigenen Namen zu
   vergeben. Dies gilt aber nicht fu:r Vinum-Platten. Durch die
   Benennung von Vinum-Platten wird es erst mo:glich, eine Platte an
   einen anderen Ort zu verschieben und sie trotzdem noch automatisch
   erkennen zu lassen. Plattennamen ko:nnen bis zu 32 Zeichen lang
   sein.

     --------------------------------------------------------------

  22.7.1. Dateisysteme erstellen

   Volumes erscheinen (mit einer Ausnahme) dem System nicht anders
   als Platten. Anders als UNIX-Platten partitioniert Vinum seine
   Volumes nicht, weshalb diese auch keine Partitionstabellen haben.
   Dies wiederum hat Modifikationen an einigen Platten-Tools,
   insbesondere newfs(8), no:tig gemacht, welche bis dahin den
   letzten Buchstaben eines Vinum-Volume-Namen als
   Partitionsbezeichner identifiziert haben. Zum Beispiel ko:nnte
   eine Platte einen Namen wie /dev/ad0a oder /dev/da2h haben. Diese
   Namen bedeuten, dass es sich um die erste Partition (a) der ersten
   (0) IDE-Platte (ad) und respektive die achte Partition (h) der
   dritten (2) SCSI-Platte (da) handelt. Im Vergleich dazu ko:nnte
   ein Vinum-Volume beispielsweise /dev/gvinum/concat heissen, ein
   Name, der in keiner Beziehung mit einem Partitionsnamen steht.

   Um nun ein Dateisystem auf diesem Volume anzulegen, benutzen Sie
   newfs(8):

 # newfs /dev/gvinum/concat

     --------------------------------------------------------------

22.8. Vinum konfigurieren

   Der GENERIC-Kernel entha:t kein Vinum. Es ist zwar mo:glich, einen
   speziellen Kernel zu bauen, der Vinum beinhaltet, empfohlen wird
   aber, Vinum als ein Kernelmodul (u:ber kld) zu laden. Dazu mu:ssen
   Sie nicht einmal kldload(8) benutzen, da beim Start von gvinum(8)
   automatisch u:berpru:ft wird, ob das Modul bereits geladen wurde.
   Falls das Modul noch nicht geladen wurde, wird es daraufhin
   geladen.

     --------------------------------------------------------------

  22.8.1. Inbetriebnahme

   Vinum speichert seine Konfigurationsinformationen auf den
   Platten-Slices im Wesentlichen genauso ab wie in den
   Konfigurationsdateien. Beim Lesen der Konfigurationsdatenbank
   erkennt Vinum eine Anzahl von Schlu:sselwo:rtern, die in den
   Konfigurationsdateien nicht erlaubt sind. Zum Beispiel ko:nnte
   eine Platten-Konfiguration den folgenden Text enthalten:

 volume myvol state up
 volume bigraid state down
 plex name myvol.p0 state up org concat vol myvol
 plex name myvol.p1 state up org concat vol myvol
 plex name myvol.p2 state init org striped 512b vol myvol
 plex name bigraid.p0 state initializing org raid5 512b vol bigraid
 sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
 sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
 sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
 sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
 sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
 sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
 sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
 sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
 sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
 sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
 sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
 sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
 sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b

   Die offensichtlichen Unterschiede sind hier die Anwesenheit von
   Informationen u:ber explizite Speicherorte und Benennungen (beides
   ist zwar erlaubt, aber es wird dem Benutzer davon abgeraten, es zu
   benutzen) und Informationen u:ber die Zusta:nde (welche fu:r den
   Benutzer nicht zur Verfu:gung stehen). Vinum speichert keine
   Informationen u:ber Platten in den Konfigurationsinformationen, es
   findet die Platten durch Scannen nach Vinum-Markierungen auf den
   eingerichteten Laufwerken. Dies ermo:glicht es, Vinum-Platten auch
   dann noch korrekt zu identifizieren, wenn sie schon andere
   UNIX-Platten-IDs zugewiesen bekommen haben.

     --------------------------------------------------------------

    22.8.1.1. Automatische Inbetriebnahme

     Anmerkung: Gvinum unterstu:tzt eine automatische Inbetriebnahme
     immer, wenn das Kernelmodul u:ber loader.conf(5) geladen ist. Um
     das Gvinum Modul beim Hochfahren des Systems zu laden, fu:gen
     Sie die Zeile geom_vinum_load="YES" in /boot/loader.conf ein.

   Beim starten von Vinum durch den Befehl vinum start liest Vinum
   die Konfigurationsdatenbank von einer der Vinum-Platten. Unter
   normalen Umsta:nden entha:lt jede Platte eine identische Kopie der
   Konfigurationsdatenbank, so dass es keine Rolle spielt, von
   welcher der Platten diese eingelesen wird. Nach einem Plattencrash
   muss Vinum allerdings zuna:chst feststellen, welche der Platten
   zuletzt aktualisiert wurde und dann die Konfiguration von dieser
   Platte lesen. Danach werden (falls no:tig) die Konfigurationen der
   "alten" Platten aktualisiert.

     --------------------------------------------------------------

22.9. Vinum fu:r das Root-Dateisystem benutzen

   Auf einem System, das mit Hilfe von Vinum vollgespiegelte
   Dateisysteme hat, ist es wu:nschenswert, auch das Root-Dateisystem
   zu spiegeln. Solch eine Konfiguration ist allerdings weniger
   trivial als das Spiegeln eines gewo:hnlichen Dateisystems, weil:

     * Das Root-Dateisystem in einer sehr fru:hen Phase des
       Bootvorgangs verfu:gbar sein muss, und damit auch die
       Vinum-Infrastruktur.

     * Das Volume, welches das Root-Dateisystem entha:lt, auch den
       Bootstrap und den Kernel entha:lt, die wiederum nur mit den
       systemeigenen Tools (zum Beispiel dem BIOS bei
       handelsu:blichen PCs) gelesen werden ko:nnen und meist nicht
       dazu gebracht werden ko:nnen, Vinum zu verstehen.

   Im folgenden Abschnitt wird der Begriff "Root-Volume" benutzt, um
   das Vinum-Volume zu beschreiben, welches das Root-Dateisystem
   entha:lt. Es ist eine gute Idee, fu:r dieses Volume den Namen
   "root" zu benutzen, aber es ist in keiner Weise technisch no:tig
   (Das folgende Beispiel geht allerdings davon aus, dass dies der
   Fall ist.).

     --------------------------------------------------------------

  22.9.1. Vinum fu:r das Root-Dateisystem rechtzeitig starten

   Damit dies gelingt, mu:ssen Sie folgende Aufgaben erledigen:

     * Vinum muss zum Zeitpunkt des Bootvorganges im Kernel zur
       Verfu:gung stehen. Deswegen ist die Methode zum Start von
       Vinum, die in Abschnitt 22.8.1.1 beschrieben wird, fu:r diese
       Aufgabe nicht geeignet. Also muss auch der
       start_vinum-Parameter eigentlich nicht gesetzt werden, wenn
       man das folgende Setup einrichtet. Die erste Mo:glichkeit
       wa:re es, Vinum statisch in den Kernel zu kompilieren, so dass
       es sta:ndig verfu:gbar ist, was aber in der Regel nicht
       erwu:nscht ist. Ebenso gibt es die Mo:glichkeit /boot/loader
       (Abschnitt 13.3.3) das Vinum-Kernelmodul fru:h genug laden zu
       lassen (und zwar noch bevor der Kernel gestartet wird). Dies
       kann bewerkstelligt werden, indem die Zeile

 geom_vinum_load="YES"

       in die Datei /boot/loader.conf eingetragen wird.

     * Fu:r Gvinum ist das oben beschriebene Prozedere alles, was Sie
       tun mu:ssen, da der gesamte Startvorgang automatisch erledigt
       wird, sobald das Kernelmodul geladen wurde.

     --------------------------------------------------------------

  22.9.2. Ein Vinum-basiertes Root-Volume dem Bootstrap verfu:gbar
  machen

   Da der aktuelle FreeBSD-Bootstrap nur 7,5 KB Code entha:lt und
   schon ohne Vinum die Aufgabe hat, bestimmte Dateien (wie
   /boot/loader) von einem UFS-Dateisystem zu lesen, ist es schier
   unmo:glich, ihm auch noch die Interna von Vinum beizubringen,
   damit er die Vinum-Konfigurationsdaten auslesen und die Elemente
   eines Boot-Volumes selbst herausfinden ko:nnte. Daher sind ein
   paar Tricks no:tig, um dem Bootstrap-Code die Illusion einer
   Standard-"a"-Partition mit einem Root-Dateisystem vorzugaukeln.

   Damit dies u:berhaupt mo:glich wird, mu:ssen die folgenden
   Bedingungen fu:r das Root-Dateisystem erfu:llt sein:

     * Das Root-Volume darf weder gestriped noch RAID-5 sein.

     * Das Root-Volume darf nicht mehr als eine konkatenierte Subdisk
       pro Plexus enthalten.

   Beachten Sie, dass es mo:glich und wu:nschenswert ist, mehrere
   Plexus zu haben, von denen jeder eine Kopie des Root-Dateisystems
   entha:lt. Der Bootstrap-Prozess wird hingegen nur einen dieser
   Plexus benutzen, um den Bootstrap und alle Dateien zu finden, bis
   der Kernel letztendlich das Root-Dateisystem selbst laden wird.
   Jede einzelne Subdisk innerhalb dieser Plexus wird dann ihre
   eigene Illusion der Partition "a" brauchen, damit das
   entsprechende Gera:t bootbar wird. Es ist nicht unbedingt
   notwendig, dass sich jede dieser gefa:lschten "a"-Partitionen auf
   seinem Gera:t an einem Ort befindet, der um den selben Wert
   verschoben ist wie auf den anderen Gera:ten, die Plexus des
   Root-Dateisystems enthalten. Um Unklarheiten zu verhindern, ist es
   jedoch eine gute Idee, die Vinum-Volumes so zu erstellen, dass die
   gespiegelten Gera:te symmetrisch sind.

   Damit diese "a"-Partitionen eingerichtet werden ko:nnen, muss fu:r
   alle Gera:te, die Teil des Root-Dateisystems sind, folgendes getan
   werden:

    1. Der Ort (Verschiebung vom Beginn des Gera:tes) und die Gro:sse
       der Subdisk, die Teil des Root-Volumes ist, muss untersucht
       werden:

 # gvinum l -rv root

       Beachten Sie, dass Vinum-Verschiebungen und -Gro:ssen in Bytes
       gemessen werden. Sie mu:ssen deshalb durch 512 geteilt werden,
       um die Blockanzahl zu erhalten, wie sie das bsdlabel-Kommando
       verwendet.

    2. Fu:hren Sie den Befehl

 # bsdlabel -e devname

       fu:r jedes Gera:t, dass am Root-Volume beteiligt ist, aus.
       devname muss entweder der Name der Platte (wie da0), im Falle
       einer Platte ohne Slice-Tabelle oder der Name des Slices (wie
       ad0s1) sein.

       Wenn es schon eine "a"-Partition auf dem Gera:t (in der Regel
       wahrscheinlich ein Pra:-Vinum-Root-Dateisystem) gibt, sollte
       diese umbenannt werden, damit sie weiterhin verfu:gbar bleibt
       (nur fu:r den Fall). Sie wird aber nicht la:nger benutzt, um
       das System zu starten. Beachten Sie aber, dass aktive
       Partitionen (wie ein gemountetes Root-Dateisystem) nicht
       umbenannt werden ko:nnen, sodass Sie entweder von einem
       "Fixit"-Medium booten mu:ssen, oder aber mittels eines
       zweistufigen Prozesses (sofern Sie in einer gespiegelten
       Umgebung arbeiten) zuerst die Platte a:ndern, von der gerade
       nicht gebootet wurde.

       Nun muss die Verschiebung der Vinum-Partition (sofern
       vorhanden) auf diesem Gera:t mit der Veschiebung der
       entsprechenden Root-Volume-Subdisk addiert werden. Das
       Resultat wird der "offset"-Wert fu:r die neue "a"-Partition.
       Der "size"-Wert fu:r diese Partition kann entsprechend der
       Berechnung ermittelt werden. "fstype" sollte 4.2BSD sein. Die
       "fsize"-, "bsize"-, und "cpg"- Werte sollten entsprechend dem
       eigentlichen Dateisystem gewa:hlt werden, obwohl sie in diesem
       Kontext ziemlich unwichtig sind.

       Auf diese Art und Weise wird eine neue Partition "a"
       etabliert, die die Vinum-Partition auf diesem Gera:t
       u:berschneidet. Beachte Sie, dass das bsdlabel-Kommando diese
       U:berschneidung nur erlaubt, wenn die Partition richtig mit
       dem "vinum"-fstype markiert ist.

    3. Das ist alles. Auf jedem Gera:t befindet sich nun eine
       gefa:lschte "a"-Partition, die eine Kopie des Root-Volumes
       entha:lt. Es wird dringend empfohlen, das Resultat dieser
       Konfiguration zu u:berpru:fen:

 # fsck -n /dev/devnamea

   Denken Sie stets daran, dass alle Dateien, die
   Kontrollinformationen enthalten, nun relativ zum Root-Dateisystem
   innerhalb des Vinum-Volumes sein mu:ssen. Denn ein neu
   eingerichtetes Vinum-Root-Dateisystem ist mo:glicherweise
   inkompatibel zum gerade aktiven Root-Dateisystem. Deshalb mu:ssen
   insbesondere die Dateien /etc/fstab und /boot/loader.conf
   u:berpru:ft werden.

   Beim na:chsten Systemstart sollte der Bootstrap die ada:quaten
   Kontrollinformationen des neuen Vinum-basierten Root-Dateisystems
   automatisch herausfinden und entsprechend handeln. Am Ende des
   Kernel-Initialisierungsprozesses (nachdem alle Gera:te angezeigt
   wurden) erhalten Sie bei einer erfolgreichen Konfiguration eine
   Nachricht a:hnlich der folgenden:

 Mounting root from ufs:/dev/gvinum/root

     --------------------------------------------------------------

  22.9.3. Beispiel eines Vinum-basierten Root-Setups

   Nachdem das Vinum-Root-Volume eingerichtet wurde, ko:nnte die
   Ausgabe von gvinum l -rv root bespielsweise so aussehen:

 ...
 Subdisk root.p0.s0:
                 Size:        125829120 bytes (120 MB)
                 State: up
                 Plex root.p0 at offset 0 (0  B)
                 Drive disk0 (/dev/da0h) at offset 135680 (132 kB)

 Subdisk root.p1.s0:
                 Size:        125829120 bytes (120 MB)
                 State: up
                 Plex root.p1 at offset 0 (0  B)
                 Drive disk1 (/dev/da1h) at offset 135680 (132 kB)
        

   Wichtig ist hier insbesondere ist der Wert 135680 fu:r die
   Verschiebung (relativ zur Partition /dev/da0h). Das entspricht
   beim Einsatz von bsdlabel 265 512-Byte-Plattenblo:cken. Dieses
   Root-Volume ist ebenso 245760 512-Byte-Blo:cke gross. /dev/da1h
   entha:lt die zweite Kopie dieses Root-Volumes und ist symmetrisch
   aufgebaut.

   Das Bsdlabel fu:r diese Gera:te ko:nnte so aussehen:

 ...
 8 partitions:
 #        size   offset    fstype   [fsize bsize bps/cpg]
   a:   245760      281    4.2BSD     2048 16384     0   # (Cyl.    0*- 15*)
   c: 71771688        0    unused        0     0         # (Cyl.    0 - 4467*)
   h: 71771672       16     vinum                        # (Cyl.    0*- 4467*)
        

   Wie man leicht feststellen kann, entspricht der Parameter "size"
   der gefa:lschten "a"-Partition dem ausgewiesenen Wert von oben,
   wa:hrend der Parameter "offset" gleich der Summe der Verschiebung
   innerhalb der Vinum-Partition "h" und der Verschiebung innerhalb
   des Gera:ts (oder Slice) ist. Dies ist ein typischer Aufbau, der
   no:tig ist, um die in Abschnitt 22.9.4.3 beschriebenen Probleme zu
   vermeiden. Die gesamte Partition "a" befindet sich in "h", die
   alle Vinum-Daten fu:r dieses Gera:t entha:lt.

   Beachten Sie, dass in dem oben beschriebenen Beispiel das gesamte
   Gera:t Vinum gewidmet ist und keine Pra:-Vinum-Partition
   zuru:ckgelassen wurde, da es sich im Beispiel um eine neu
   eingerichtete Platte handelt, die nur fu:r die Vinum-Konfiguration
   bestimmt war.

     --------------------------------------------------------------

  22.9.4. Fehlerbehebung

   Der folgende Abschnitt beschreibt einige bekannte Probleme und
   Fallstricke bei der Vinum-Konfiguration sowie deren Behebung.

     --------------------------------------------------------------

    22.9.4.1. Der System-Bootstrap la:dt zwar, das System startet aber
    nicht.

   Wenn aus irgendeinem Grund das System nicht mit dem Booten
   fortfa:hrt, kann man den Bootstrap wa:hrend der
   10-Sekunden-Warnung durch Dru:cken der Leertaste unterbrechen. Die
   loader-Variablen (wie vinum.autostart) ko:nnen mittels des
   show-Kommandos untersucht, und mit set oder unset gea:ndert
   werden.

   Wenn das einzige Problem das Fehlen des Vinum-Kernelmoduls in der
   Liste der automatisch zu ladenden Module ist, hilft ein einfaches
   load geom_vinum.

   Danach ko:nnen Sie den Bootvorgang mit boot -as fortsetzen. Die
   Optionen -as fordern den Kernel auf, nach dem zu mountenden
   Root-Dateisystem zu fragen (-a), und den Bootvorgang im
   Single-User-Modus (-s) zu beenden, in dem das Root-Dateisystem
   schon schreibgeschu:tzt gemountet ist. Auf diese Weise wird keine
   Dateninkonsistenz zwischen den Plexus riskiert, auch wenn nur ein
   Plexus eines Multi-Plexus-Volumes gemountet wurde.

   Beim Prompt, das nach einem Root-Dateisystem fragt, kann jedes
   Gera:t angegeben werden, dass ein gu:ltiges Root-Dateisystem hat.
   Wenn /etc/fstab richtig konfiguriert wurde, sollte die Vorgabe
   etwas wie ufs:/dev/gvinum/root sein. Eine typische Alternative
   wu:rde etwas wie ufs:da0d sein, welches eine hypothetische
   Partition sein ko:nnte, die ein Pre-Vinum-Root-Dateisystem
   entha:lt. Vorsicht sollte walten, wenn eine der alias
   "a"-Partitionen hier eingegeben wird, die eigentlich Referenzen
   auf die Subdisks des Vinum-Root-Dateisystems sind, da so nur ein
   Stu:ck eines gespiegelten Root-Gera:tes gemountet werden wu:rde.
   Wenn das Dateisystem spa:ter zum Lesen und Schreiben gemountet
   werden soll, ist es no:tig, die anderen Plexus des
   Vinum-Root-Volumes zu entfernen, weil diese Plexus andernfalls
   inkonsistente Daten enthalten wu:rden.

     --------------------------------------------------------------

    22.9.4.2. Nur der prima:re Bootstrap la:dt

   Wenn das Laden von /boot/loader fehlschla:gt, aber der prima:re
   Bootstrap dennoch la:dt (sichtbar an dem einzelnen Strich in der
   linken Spalte des Bildschirms gleich nachdem der Bootprozess
   startet), kann man versuchen, den prima:ren Bootstrap an diesem
   Punkt durch Benutzen der Leertaste zu unterbrechen. Dies wird den
   Bootstrap in der zweiten Phase stoppen (siehe dazu auch Abschnitt
   13.3.2). Hier kann nun der Versuch unternommen werden, von einer
   anderen Partition zu booten, wie beispielsweise dem vorhergehenden
   Root-Dateisystem, das von "a" verschoben wurde.

     --------------------------------------------------------------

    22.9.4.3. Nichts bootet, der Bootstrap ha:ngt sich auf

   Diese Situation wird vorkommen, wenn der Bootstrap durch die
   Vinum-Installation zersto:rt worden ist. Unglu:cklicherweise
   la:sst Vinum am Anfang seiner Partition nur 4 KB frei und schreibt
   dahinter seine Kopfinformationen. Allerdings beno:tigen
   Stufe-Eins- und -Zwei-Bootstraps plus dem dazwischen eingebetteten
   bsdlabel momentan 8 KB. Demzufolge wird die Vinum-Installation,
   wenn die Vinum-Partition mit der Verschiebung 0 (innerhalb eines
   Slice oder einer Platte, die zum Start bestimmt waren)
   eingerichtet wurde, den Bootstrap zersto:ren.

   Analog wird eine anschliessende Reinstallation eines Bootstrap
   (zum Beispiel durch Booten eines "Fixit"-Mediums) mit bsdlabel -B,
   wie in Abschnitt 13.3.2 beschrieben, den Vinum-Kopf zersto:ren und
   Vinum wird seine Platte(n) nicht mehr finden ko:nnen. Obwohl keine
   eigentlichen Vinum-Konfigurationsdaten oder Daten in den
   Vinum-Volumes zersto:rt werden und es mo:glich wa:re, alle Daten
   wiederherzustellen, indem die exakt gleichen
   Vinum-Konfigurationsdaten noch einmal eingegeben werden, bleibt
   die Situation schwer zu bereinigen, da es no:tig ist, die gesamte
   Vinum-Partition um mindestens 4 KB nach hinten zu verschieben,
   damit Bootstrap und Vinum-Kopf nicht mehr kollidieren.

     --------------------------------------------------------------

                      Kapitel 23. Virtualisierung

   Beigetragen von Murray Stokely. U:bersetzt von Oliver Peter.

23.1. U:bersicht

   Virtualisierungssoftware erlaubt es, mehrere Betriebssysteme
   gleichzeitig auf dem selben Computer laufen zu lassen. Derartige
   Softwaresysteme fu:r PCs setzen in der Regel ein
   Host-Betriebssystem voraus, auf dem die Virtualisierungssoftware
   la:uft und unterstu:tzen eine nahezu beliebige Anzahl von
   Gast-Betriebssystemen.

   Nachdem Sie dieses Kapitel gelesen haben,

     * Kennen Sie den Unterscheid zwischen einem Host-Betriebssystem
       und einem Gast-Betriebssystem.

     * Ko:nnen Sie FreeBSD auf einem Intel-basierenden Apple
       Macintosh installieren.

     * Ko:nnen Sie FreeBSD unter Microsoft Windows und Virtual PC
       installieren.

     * Wissen Sie, wie man ein virtualisiertes FreeBSD-System fu:r
       optimale Leistung konfiguriert.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Die Grundlagen von UNIX und FreeBSD verstehen (Kapitel 4).

     * FreeBSD installieren ko:nnen (Kapitel 2).

     * Wissen, wie man seine Netzwerkverbindung konfiguriert (Kapitel
       32).

     * Software Dritter installieren ko:nnen (Kapitel 5).

     --------------------------------------------------------------

23.2. FreeBSD als Gast-Betriebssystem

  23.2.1. Parallels unter MacOS X

   Parallels Desktop fu:r Mac(R) ist ein kommerzielles
   Softwareprodukt, welches fu:r Intel-basierende Apple Mac-Computer
   mit Mac OS X 10.4.6 oder ho:her verfu:gbar ist. FreeBSD wird von
   diesem Softwarepaket als Gast-Betriebssystem vollsta:ndig
   unterstu:tzt. Nach der Installation von Parallels auf Mac OS X
   konfigurieren Sie als erstes eine virtuelle Maschine, in der Sie
   danach das gewu:nschte Gast-Betriebssystem (in unserem Fall
   FreeBSD) installieren.

     --------------------------------------------------------------

    23.2.1.1. Installation von FreeBSD unter Parallels/Mac OS(R) X

   Der erste Schritt bei der Installation von FreeBSD unter
   Parallels/Mac OS X ist es, eine virtuelle Maschine zu
   konfigurieren, in der Sie FreeBSD installieren ko:nnen. Dazu
   wa:hlen Sie bei der Frage nach dem Guest OS Type FreeBSD aus:

   Danach legen Sie geeignete Gro:ssen fu:r Festplatten- und
   Arbeitsspeicher fu:r die zu erstellende FreeBSD-Instanz fest. 4 GB
   Plattenplatz sowie 512 MB RAM sind in der Regel fu:r die Arbeit
   unter Parallels ausreichend:

   Wa:hlen Sie den gewu:nschten Netzwerktyp aus und konfigurieren Sie
   Ihre Netzwerkverbindung:

   Speichern Sie Ihre Eingaben, um die Konfiguration abzuschliessen:

   Nachdem Sie die virtuelle Maschine erstellt haben, installieren
   Sie im na:chsten Schritt FreeBSD in dieser virtuellen Maschine.
   Dazu verwenden Sie am besten eine offizielle FreeBSD-CDROM oder
   Sie laden von einem offiziellen FTP-Server ein ISO-Abbild auf
   Ihren Mac herunter. Danach klicken Sie auf das Laufwerksymbol in
   der rechten unteren Ecke des Parallels-Fensters, um ihr virtuelles
   Laufwerk mit dem ISO-Abbild oder mit dem physikalischen
   CD-ROM-Laufwerk ihres Computers zu verknu:pfen.

   Nachdem Sie diese Verknu:pfung hergestellt haben, starten sie die
   virtuelle FreeBSD-Maschine neu, indem Sie wie gewohnt auf das
   Symbol "Neustarten" klicken. Parallels startet nun ein
   Spezial-BIOS, das zuerst pru:ft, ob Sie eine CD-ROM eingelegt
   haben (genau so, wie es auch ein echtes BIOS machen wu:rde).

   In unserem Fall findet das BIOS ein FreeBSD-Installationsmedium
   und beginnt daher eine normale Installation mit sysinstall (wie in
   Kapitel 2 des Handbuchs beschreiben).

   Nachdem die Installation abgeschlossen ist, ko:nnen Sie die
   virtuelle Maschine starten.

     --------------------------------------------------------------

    23.2.1.2. FreeBSD fu:r den Einsatz unter Parallels/Mac OS X
    optimieren

   Nachdem Sie FreeBSD erfolgreich unter Mac OS X mit Parallels
   installiert haben, sollten Sie ihr virtuelles FreeBSD-System fu:r
   virtualisierte Operationen optimieren:

    1. Setzen der Bootloader-Variablen

       Die wichtigste A:nderung ist es, die Variable kern.hz zu
       verkleinern, um so die CPU-Auslastung in der
       Parallels-Umgebung zu verringern.

 kern.hz=100

       Ohne diese Einstellung kann ein unbescha:ftigtes FreeBSD unter
       Parallels trotzdem rund 15 Prozent der CPU-Leistung eines
       Single Prozessor iMac(R)'s verbrauchen. Nach dieser A:nderung
       reduziert sich dieser Wert auf etwa 5 Prozent.

    2. Erstellen einer neuen Kernelkonfigurationsdatei

       Sie ko:nnen alle SCSI-, FireWire- und USB-Laufwerks-Treiber
       entfernen. Parallels stellt einen virtuellen Netzwerkadapter
       bereit, der den ed(4)-Treiber verwendet. Daher ko:nnen alle
       Netzwerkgera:te bis auf ed(4) und miibus(4) aus dem Kernel
       entfernt werden.

    3. Netzwerkbetrieb einrichten

       Die einfachste Netzwerkkonfiguration ist der Einsatz von DHCP,
       um Ihre virtuelle Maschine mit dem gleichen lokalen Netzwerk,
       in dem sich der Host-Mac befindet, zu verbinden. Dazu fu:gen
       Sie die Zeile ifconfig_ed0="DHCP" in die Datei /etc/rc.conf
       ein. Weitere Informationen zur Konfiguration des Netzwerks
       unter FreeBSD finden Sie im Kapitel 32 des Handbuchs.

     --------------------------------------------------------------

  23.2.2. Virtual PC unter Windows

   U:bersetzt von Johann Kois.

   Virtual PC fu:r Windows wird von Microsoft kostenlos zum Download
   angeboten. Die Systemanforderungen fu:r dieses Programm finden Sie
   hier. Nachdem Sie Virtual PC unter Microsoft Windows installiert
   haben, mu:ssen Sie eine virtuelle Maschine konfigurieren und das
   gewu:nschte Betriebssystem installieren.

     --------------------------------------------------------------

    23.2.2.1. FreeBSD in Virtual PC/Microsoft(R) Windows installieren

   Der erste Schritt zur Installation von FreeBSD in
   Microsoft Windows/Virtual PC ist es, eine neue virtuelle Maschine
   zu erstellen, in die Sie FreeBSD installieren ko:nnen. Dazu
   wa:hlen Sie die Option Create a virtual machine, wenn Sie danach
   gefragt werden:

   Bei der Frage nach dem Operating system wa:hlen Sie Other:

   Danach mu:ssen Sie den von Ihnen gewu:schten Plattenplatz sowie
   die Gro:sse des Hauptspeichers angeben. 4 GB Plattenplatz sowie
   512 MB RAM sollten fu:r die Installation von FreeBSD in Virtual PC
   ausreichend sein:

   Speichern Sie Ihre Eingaben und beenden Sie die Konfiguration:

   Wa:hlen Sie nun die fu:r FreeBSD erstellte virtuelle Maschine aus
   und klicken Sie auf Settings, um das Netzwerk zu konfigurieren:

   Nun ko:nnen Sie FreeBSD installieren. Dazu verwenden Sie am besten
   eine offizielle FreeBSD-CD-ROM oder ein ISO-Image, das Sie von
   einem offiziellen FreeBSD-FTP-Server heruntergeladen haben. Wenn
   Sie ein ISO-Image auf Ihrer Festplatte gespeichert haben, oder
   eine FreeBSD-CD-ROM in Ihr CD-Laufwerk eingelegt haben,
   doppelklicken Sie auf die virtuelle Maschine, die Sie fu:r FreeBSD
   angelegt haben. Danach klicken Sie auf CD und wa:hlen die Option
   Capture ISO Image... im Virtual PC-Fenster. Danach ko:nnen Sie im
   folgenden Fenster das CD-Laufwerk mit Ihrem physikalischen
   CD-Laufwerk oder mit dem ISO-Image verknu:pfen.

   Danach starten Sie die virtuelle Maschine neu, indem Sie zuerst
   auf Action und danach auf Reset klicken. Virtual PC startet Ihre
   virtuelle Maschine nun neu und pru:ft zuerst, ob die virtuelle
   Maschine u:ber ein CD-Laufwerk verfu:gt.

   Da dies hier der Fall ist, beginnt nun eine normale, auf
   sysinstall basierende Installation, die in Kapitel 2 beschrieben
   wird. Sie ko:nnen FreeBSD nun installieren. Verzichten Sie an
   dieser Stelle aber unbedingt auf die X11-Konfiguration.

   Nachdem die Installation abgeschlossen ist, entfernen Sie die
   CD-ROM aus dem Laufwerk (oder lo:sen die Verknu:pfung zum
   ISO-Image). Danach starten Sie die virtuelle Maschine neu, um
   FreeBSD zu starten.

     --------------------------------------------------------------

    23.2.2.2. FreeBSD in Microsoft Windows/Virtual PC konfigurieren

   Nachdem Sie FreeBSD auf Ihrem Microsoft Windows-System erfolgreich
   unter Virtual PC installiert haben, sollten Sie ihr virtuelles
   FreeBSD noch anpassen, um eine optimale Funktion zu
   gewa:hrleisten.

    1. Setzen der Bootloader-Variablen

       Die wichtigste A:nderung ist es, die Variable kern.hz zu
       verkleinern, um so die CPU-Auslastung in der Virtual
       PC-Umgebung zu verringern. Dazu fu:gen Sie die folgende Zeile
       in die Datei /boot/loader.conf ein:

 kern.hz=100

       Ohne diese Einstellung kann ein unbescha:ftigtes FreeBSD unter
       Virutal PC trotzdem rund 40 Prozent der CPU-Leistung eines
       Ein-Prozessor-Systems verbrauchen. Nach dieser A:nderung
       reduziert sich dieser Wert auf etwa 5 Prozent.

    2. Erstellen einer neuen Kernelkonfigurationsdatei

       Sie ko:nnen alle SCSI-, FireWire- und USB-Laufwerks-Treiber
       entfernen. Virtual PC stellt einen virtuellen Netzwerkadapter
       bereit, der den de(4)-Treiber verwendet. Daher ko:nnen alle
       Netzwerkgera:te bis auf de(4) und miibus(4) aus dem Kernel
       entfernt werden.

    3. Das Netzwerk einrichten

       Die einfachste Netzwerkkonfiguration ist der Einsatz von DHCP,
       um Ihre virtuelle Maschine mit dem gleichen lokalen Netzwerk,
       in dem sich Ihr Host-Microsoft Windows befindet, zu verbinden.
       Dazu fu:gen Sie die Zeile ifconfig_de0="DHCP" in die Datei
       /etc/rc.conf ein. Weitere Informationen zur Konfiguration des
       Netzwerks unter FreeBSD finden Sie im Kapitel 32 des
       Handbuchs.

     --------------------------------------------------------------

  23.2.3. VMware unter MacOS

   U:bersetzt von Johann Kois.

   VMware Fusion fu:r Mac ist ein kommerzielles Programm, das fu:r
   Intel basierte Apple Mac-Computer mit Mac OS 10.4.9 oder neuer
   erha:ltlich ist. FreeBSD wird von diesem Produkt vollsta:ndig als
   Gast-Betriebssystem unterstu:tzt. Nachdem Sie VMware Fusion unter
   Mac OS X installiert haben, ko:nnen Sie das gewu:nschte
   Gastbetriebssystem (in unserem Fall FreeBSD) installieren.

     --------------------------------------------------------------

    23.2.3.1. FreeBSD in VMware/Mac OS X installieren

   Zuerst mu:ssen Sie VMware Fusion starten, um eine virtuelle
   Maschine zu erstellen. Dazu wa:hlen Sie die Option "New":

   Dadurch wird ein Assistent gestartet, der Ihnen bei der Erzeugung
   einer neuen virtuellen Maschine behilflich ist. Clicken Sie auf
   "Continue", um den Prozess zu starten:

   Wa:hlen Sie Other als das Operating System, danach FreeBSD oder
   FreeBSD 64-bit, je nach dem, welche Version Sie installieren
   wollen, wenn Sie nach der zu installierenden Version gefragt
   werden:

   Vergeben Sie einen Namen fu:r virtuelle Maschine an und legen Sie
   den Speicherort fest:

   Legen Sie die Gro:sse Ihrer virtuellen Festplatte fest:

   Nachdem Sie auf "Finish" geklickt haben, wird die virtuelle
   Maschine gestartet:

   Nun ko:nnen Sie FreeBSD wie gewohnt installieren (lesen Sie dazu
   auch Kapitel 2 des Handbuchs):

   Nachdem die Installation abgeschlossen ist, ko:nnen Sie noch
   verschiedene Parameter der virtuellen Maschine, etwa den
   Speicherverbrauch, konfigurieren:

     Anmerkung: Die Hardware der virtuellen Maschine kann nicht
     gea:ndert werden, solange die virtuelle Maschine la:uft.

   Die Anzahl der CPUs der virtuellen Maschine:

   Den Status des CD-Laufwerks. Sie ko:nnen das CD-Laufwerk von der
   virtuellen Maschine lo:sen, wenn Sie es nicht beno:tigen.

   Zuletzt sollten Sie noch festlegen, wie sich die virtuelle
   Maschine mit dem Netzwerk verbinden soll. Sollen neben dem
   Gastsystem auch andere Rechner auf Ihre virtuelle Maschine
   zugreifen ko:nnen, mu:ssen Sie die Option Connect directly to the
   physical network (Bridged) wa:hlen. Ist dies nicht der Fall,
   sollten Sie die Option Share the host's internet connection (NAT)
   wa:hlen. In dieser Einstellung kann die virtuelle Maschine zwar
   auf auf das Internet zugreifen, andere Rechner du:rfen aber nicht
   auf die virtuelle Maschine zugreifen.

   Nachdem Sie die Konfiguration abgeschlossen haben, ko:nnen Sie
   FreeBSD starten.

     --------------------------------------------------------------

    23.2.3.2. FreeBSD unter Mac OS X/VMware konfigurieren

   Nachdem Sie FreeeBSD erfolgreich unter VMware fu:r Mac OS X
   installiert haben, sollten Sie ihr virtuelles FreeBSD noch
   anpassen, um eine optimale Funktion zu gewa:hrleisten.

    1. Die wichtigste A:nderung ist es, die Variable kern.hz zu
       verkleinern, um so die CPU-Auslastung in der VMware-Umgebung
       zu verringern.

 kern.hz=100

       Ohne diese Einstellung kann ein unbescha:ftigtes FreeBSD unter
       VMware trotzdem rund 15 Prozent der CPU-Leistung eines Single
       Prozessor iMac's verbrauchen. Nach dieser A:nderung reduziert
       sich dieser Wert auf etwa 5 Prozent.

    2. Erstellen einer neuen Kernelkonfigurationsdatei

       Sie ko:nnen alle FireWire- und USB-Laufwerks-Treiber
       entfernen. VMware stellt einen virtuellen Netzwerkadapter
       bereit, der den em(4)-Treiber verwendet. Daher ko:nnen alle
       Netzwerkgera:te bis auf em(4) und miibus(4) aus dem Kernel
       entfernt werden.

    3. Netzwerkbetrieb einrichten

       Die einfachste Netzwerkkonfiguration ist der Einsatz von DHCP,
       um Ihre virtuelle Maschine mit dem gleichen lokalen Netzwerk,
       in dem sich der Host-Mac befindet, zu verbinden. Dazu fu:gen
       Sie die Zeile ifconfig_em0="DHCP" in die Datei /etc/rc.conf
       ein. Weitere Informationen zur Konfiguration des Netzwerks
       unter FreeBSD finden Sie im Kapitel 32 des Handbuchs.

     --------------------------------------------------------------

23.3. FreeBSD als Host-Betriebssystem

   U:bersetzt von Benedict Reuschling und Christoph Sold.

   Seit einigen Jahren wurde FreeBSD nicht offiziell von irgendeiner
   der verfu:gbaren Virtualisierungslo:sungen als Host-Betriebssystem
   unterstu:tzt. Viele Anwender verwenden aber noch a:ltere
   VMware-Versionen (z.B. emulators/vmware3), welches die
   Linux-Kompatibilita:tsschicht nutzt. Kurz nach der
   Vero:ffentlichung von FreeBSD 7.2 erschien VirtualBox(TM) als
   Open-Source Edition (OSE) von Sun in der Ports-Sammlung als ein
   direkt auf FreeBSD lauffa:higes Programm.

   VirtualBox ist ein vollsta:ndiges Virtualisierungspaket, das aktiv
   weiterentwickelt wird und fu:r die meisten Betriebssysteme
   einschliesslich Windows, Mac OS, Linux und FreeBSD zur Verfu:gung
   steht. Es kann sowohl Windows als auch UNIX-a:hnliche Gastsysteme
   betreiben. Es ist als Open Source und als proprieta:re Edition
   erha:ltlich. Die wichtigste Einschra:nkung der OSE aus
   Anwendersicht ist die fehlende USB-Unterstu:tzung. Weitere
   Unterschiede ko:nnen von der "Editions"-Seite des
   VirtualBox-Wikis, das unter
   http://www.virtualbox.org/wiki/Editions zu finden ist, entnommen
   werden. Momentan steht nur OSE unter FreeBSD zur Verfu:gung.

     --------------------------------------------------------------

  23.3.1. VirtualBox(TM) installieren

   VirtualBox steht als FreeBSD-Port in emulators/virtualbox-ose
   bereit und kann u:ber den folgenden Befehl installiert werden:

 # cd /usr/ports/emulators/virtualbox-ose
 # make install clean

   Eine nu:tzliche Option im Konfigurationsdialog ist die
   GuestAdditions-Programmsammlung. Diese stellen eine Reihe von
   nu:tzlichen Eigenschaften in den Gastbetriebssystemen zur
   Verfu:gung, wie beispielsweise Mauszeigerintegration (was es
   ermo:glicht, die Maus zwischen dem Host und dem Gast zu teilen
   ohne eine spezielle Tastenkombination fu:r diesen Wechsel zu
   dru:cken), sowie schnelleres Rendern von Videos, besonders in
   Windows Ga:sten. Diese Gastzusa:tze sind im Devices-Menu: zu
   finden, nachdem die Installation des Gastbetriebssystem
   abgeschlossen ist.

   Ein paar Konfigurationsa:nderungen sind notwendig, bevor
   VirtualBox das erste Mal gestartet wird. Der Port installiert ein
   Kernelmodul in /boot/modules, das in den laufenden Kernel geladen
   werden muss:

 # kldload vboxdrv

   Um sicherzustellen, dass das Modul immer nach einem Neustart
   geladen wird, fu:gen Sie die folgende Zeile in die Datei
   /boot/loader.conf ein:

 vboxdrv_load="YES"

   A:ltere Versionen als 3.1.2 von VirtualBox beno:tigen auch das
   eingeha:ngte proc-Dateisystem. Dies wird in aktuellen Versionen
   nicht mehr beno:tigt, da dort die Funktionen von der sysctl(3)
   Bibliothek bereitgestellt werden.

   Wenn Sie eine a:ltere Version aus den Ports benutzen, befolgen Sie
   die unten stehenden Anweisungen und stellen Sie sicher, dass proc
   eingehangen ist.

 # mount -t procfs proc /proc

   Um auch diese Einstellung nach einem Neustart zu erhalten, wird
   die folgende Zeile in /etc/fstab eingefu:gt:

 proc      /proc   procfs  rw      0       0

     Anmerkung: Mo:glicherweise erscheint eine Fehlermeldung a:hnlich
     der Folgenden, wenn VirtualBox von einem Terminal aus gestartet
     wird:

 VirtualBox: supR3HardenedExecDir: couldn't read "", errno=2 cchLink=-1

     Wahrscheinlich ist der U:belta:ter das proc-Dateisystem.
     Verwenden Sie bitte das mount-Kommando um zu u:berpru:fen, ob es
     korrekt eingeha:ngt ist.

   Die Gruppe vboxusers wird wa:hrend der Installation von VirtualBox
   angelegt. Alle Benutzer, die Zugriff auf VirtualBox haben sollen,
   mu:ssen in diese Gruppe aufgenommen werden. Der pw-Befehl kann
   benutzt werden, um neue Mitglieder hinzuzufu:gen:

 # pw groupmod vboxusers -m yourusername

   Um VirtualBox zu starten, wa:hlen Sie entweder den Eintrag Sun
   VirtualBox aus dem Menu: Ihrer graphischen Benutzeroberfla:che,
   oder geben Sie den folgenden Befehl in ein Terminal ein:

 % VirtualBox

   Besuchen Sie die offizielle Webseite von VirtualBox unter
   http://www.virtualbox.org, um weitere Informationen zur
   Konfiguration und Verwendung zu erhalten. Da der FreeBSD-Port noch
   recht neu ist, befindet er sich noch unter sta:ndiger Entwicklung.
   Um die aktuellen Nachrichten und Anleitungen zur Fehlerbehebung zu
   erhalten, besuchen Sie die entsprechende Seite im FreeBSD-Wiki
   unter http://wiki.FreeBSD.org/VirtualBox.

     --------------------------------------------------------------

     Kapitel 24. Lokalisierung - I18N/L10N einrichten und benutzen

   Beigesteuert von Andrey Chernov. U:berarbeitet von Michael C. Wu.
   U:bersetzt von Alexander Langer und Martin Heinen.

24.1. U:bersicht

   FreeBSD ist ein u:ber die ganze Welt verteiltes Projekt. Dieses
   Kapitel behandelt die Internationalisierung und Lokalisierung von
   FreeBSD, mit denen nicht englisch sprechende Benutzer FreeBSD an
   ihre Bedu:rfnisse anpassen ko:nnen. Die Internationalisierung
   betrifft sowohl die System- als auch die Anwendungsebene, daher
   wird im Laufe des Texts auf genauere Anwendungsdokumentationen
   verwiesen.

   Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
   wissen

     * wie verschiedene Sprachen und Lokalisierungen in modernen
       Betriebssystemen codiert werden,

     * wie Sie die Locale Ihrer Login-Shell setzen,

     * wie Sie die Konsole fu:r nicht-englische Sprachen
       konfigurieren,

     * wie Sie das X Window System mit verschiedenen Sprachen
       benutzen,

     * wo Sie mehr Informationen u:ber das Erstellen von
       I18N-konformen Anwendungen erhalten.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * wissen, wie Sie zusa:tzliche Anwendungen installieren (Kapitel
       5).

     --------------------------------------------------------------

24.2. Grundlagen

  24.2.1. Was ist I18N/L10N?

   Entwickler ku:rzen das Wort internationalization (englisch fu:r
   Internationalisierung) mit I18N ab, weil sich zwischen dem ersten
   und letzten Buchstaben des Worts 18 Buchstaben befinden. L10N
   benutzt die gleiche Namensgebung und ist eine Abku:rzung des Worts
   localization (englisch fu:r Lokalisierung). Mit
   I18N/L10N-Methoden, -Protokollen und -Anwendungen ko:nnen Benutzer
   eine Sprache ihrer Wahl verwenden.

   I18N-Anwendungen werden mit Hilfe von I18N-Bibliotheken
   programmiert. Diese erlauben es Entwicklern, eine einfache
   Sprachdatei zu schreiben und Menu:s und Texte an jede Sprache
   anzupassen. Wir mo:chten Programmierern empfehlen, fu:r ihre
   eigenen Anwendungen auf diese Techniken zuru:ckzugreifen.

     --------------------------------------------------------------

  24.2.2. Wieso soll ich I18N/L10N benutzen?

   I18N/L10N wird immer dann benutzt, wenn Sie Daten in anderen
   Sprachen als Englisch anzeigen, eingeben oder verarbeiten
   mo:chten.

     --------------------------------------------------------------

  24.2.3. Welche Sprachen werden von I18N unterstu:tzt?

   I18N und L10N sind nichts FreeBSD spezifisches. Momentan ko:nnen
   Sie unter den meisten der verbreitetsten Sprachen der Welt
   wa:hlen, unter anderen Chinesisch, Japanisch, Koreanisch,
   Franzo:sisch, Russisch und Deutsch.

     --------------------------------------------------------------

24.3. Lokale Anpassungen benutzen

   In seiner ganzen Scho:nheit ist L10N nichts, was auf FreeBSD
   alleine beschra:nkt ist, im Gegenteil, es ist eine Konvention, an
   die sich viele Programme fu:r verschiedene Betriebssysteme halten.
   Wir mo:chten Sie anregen, FreeBSD bei der Unterstu:tzung dieser
   Konvention zu helfen.

   Lokale Anpassungen werden durch die Angabe von drei Werten
   erreicht: dem Sprachcode, dem La:ndercode und der Codierung. Die
   Zusammenfassung dieser Werte wird "Locale" genannt und sieht wie
   folgt aus:

 Sprachcode_La:ndercode.Codierung

     --------------------------------------------------------------

  24.3.1. Sprach- und La:ndercodes

   Um FreeBSD (oder ein anderes UNIX System, das I18N unterstu:tzt)
   an lokale Gegebenheiten und Sprachen anzupassen, muss der Benutzer
   herausfinden, welche Codes fu:r sein Land und seine Sprache
   benutzt werden. La:ndercodes geben den Anwendungen dabei vor,
   welche Variation einer bestimmten Sprache zu benutzen ist. Eine
   Variation von Deutsch wa:re zum Beispiel de_CH, das eine lokale
   Anpassung an das in der Schweiz gesprochene Deutsch meint.
   Ausserdem benutzen Webbrowser, SMTP/POP Server, Webserver usw.
   diese, um Entscheidungen u:ber die Sprache zu fa:llen. Im
   Folgenden sind einige Beispiele fu:r Sprach- und La:ndercodes
   aufgelistet:

    Sprachcode/La:ndercode                 Beschreibung               
   en_US                     Englisch - USA                           
   ru_RU                     Russisch fu:r Russland                   
   zh_TW                     Traditionelles Chinesisch fu:r Taiwan    

     --------------------------------------------------------------

  24.3.2. Codierungen

   Einige Sprachen benutzen Codierungen, die nicht dem 7-Bit breitem
   ASCII-Standard entsprechen, wie 8-Bit Codierungen, Wide- oder
   Multibyte Zeichen (multibyte(3) geht darauf na:her ein). A:ltere
   Anwendungen erkennen diese Zeichen nicht und halten sie
   fa:lschlicherweise fu:r Steuerzeichen. Neuere Anwendungen erkennen
   fu:r gewo:hnlich 8-Bit Zeichen. Es ha:ngt allerdings von der
   Implementierung ab, ob man eine Anwendung neu kompilieren muss, um
   in den Genuss von lokalen Zeichensa:tzen zu kommen, oder ob man es
   sie nur nachtra:glich konfigurieren muss. Um es mo:glich zu
   machen, Wide- oder Multibyte-Zeichen einzugeben und zu
   verarbeiten, unterstu:tzt die FreeBSD-Ports-Sammlung verschiedene
   Sprachen fu:r diverse Programme. Bitte konsultieren Sie die
   I18N-Dokumentation des entsprechenden FreeBSD-Ports.

   In den meisten Fa:llen muss der Benutzer in die Dokumentation des
   Programms schauen, um herauszufinden, wie man es entsprechend fu:r
   die eigene Sprache und den eigenen Zeichensatz konfiguriert, oder
   welche Optionen beim U:bersetzen anzugeben sind.

   Einige Dinge, die man im Hinterkopf behalten sollte, sind:

     * Sprachbezogene C-char Zeichensa:tze[14] (siehe multibyte(3)),
       zum Beispiel ISO8859-1, ISO8859-15, KOI8-R, CP437.

     * Wide- oder Multibyte-Codierungen, zum Beispiel EUC, Big5.

   Eine aktuelle Liste der Zeichensa:tze ist in der IANA Registry.
   verfu:gbar.

     Anmerkung: Ab FreeBSD 4.5 werden X11-kompatible Codierungen
     verwendet.

     --------------------------------------------------------------

  24.3.3. I18N-Anwendungen

   Im FreeBSD-Ports- und Paket-System werden I18N-Anwendungen mit
   einem I18N im Namen gekennzeichnet, damit man sie leicht
   identifizieren kann. Trotzdem kann es vorkommen, dass die
   beno:tigte Sprache nicht immer unterstu:tzt wird.

     --------------------------------------------------------------

  24.3.4. Einstellen der Locale

   Zum Aktivieren der Lokalisierung reicht es, die Umgebungsvariable
   LANG in Ihrer Login-Shell auf den Wert der Locale zu setzen und
   die Variable zu exportieren. Dies geschieht normalerweise in Ihrer
   ~/.login_conf oder der Startdatei Ihrer Shell (~/.profile,
   ~/.bashrc, ~/.cshrc). Wenn LANG gesetzt ist, brauchen die
   speziellen Variablen wie LC_CTYPE oder LC_CTIME in der Regel nicht
   gesetzt zu werden. Sie sollten sprachbezogene
   FreeBSD-Dokumentation zu Rate ziehen, wenn Sie mehr Informationen
   wu:nschen.

   Setzen Sie die zwei folgenden Umgebungsvariablen in Ihren
   Konfigurationsdateien:

     * LANG fu:r Funktionen der POSIX setlocale(3) Familie

     * MM_CHARSET gibt den den MIME Zeichensatz von Anwendungen an

   Damit ist die Locale fu:r die Shell, jede Anwendung und X11
   eingestellt.

     --------------------------------------------------------------

    24.3.4.1. Verfahren zum Einstellen der Locale

   Es gibt zwei Wege, die Locale zu setzen, die im Folgenden
   beschrieben werden. Die erste und empfohlene Methode ist, die
   Umgebungsvariablen in der Login-Klasse zu setzen, die zweite ist,
   sie in den Startdateien der Shell zu setzen.

     --------------------------------------------------------------

      24.3.4.1.1. Lokalisierung in der Login-Klasse

   Wenn Sie diese Methode verwenden, werden die Umgebungsvariablen
   fu:r die Locale und den MIME Zeichensatz einmal fu:r alle Shells,
   anstatt einzeln fu:r jede Shell, gesetzt. Die Lokalisierung kann
   von einem Benutzer selbst oder von einem Administrator mit
   Superuser-Rechten fu:r alle eingestellt werden.

     --------------------------------------------------------------

        24.3.4.1.1.1. Einrichten als Benutzer

   .login_conf im Heimatverzeichnis eines Benutzers sollte mindestens
   die folgenden Eintra:ge enthalten, damit beide Variablen fu:r den
   Gebrauch der Latin-1 Codierung gesetzt werden:

 me:\
         :charset=ISO-8859-1:\
         :lang=de_DE.ISO8859-1:

   Damit traditionelles Chinesisch (BIG-5 Codierung) verwendet werden
   kann, sind in .login_conf die nachstehenden Erga:nzungen
   vorzunehmen. Einige Programme behandeln die Lokalisierung fu:r
   Chinesisch, Japanisch und Koreanisch falsch, daher mu:ssen mehr
   Variablen als u:blich gesetzt werden:

 #Users who do not wish to use monetary units or time formats
 #of Taiwan can manually change each variable
 me:\
         :lang=zh_TW.Big5:\
         :setenv=LC_ALL=zh_TW.Big5:\
         :setenv=LC_COLLATE=zh_TW.Big5:\
         :setenv=LC_CTYPE=zh_TW.Big5:\
         :setenv=LC_MESSAGES=zh_TW.Big5:\
         :setenv=LC_MONETARY=zh_TW.Big5:\
         :setenv=LC_NUMERIC=zh_TW.Big5:\
         :setenv=LC_TIME=zh_TW.Big5:\
         :charset=big5:\
         :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server

   Weitere Informationen entnehmen Sie bitte login.conf(5).

     --------------------------------------------------------------

        24.3.4.1.1.2. Einrichten als Administrator

   Stellen Sie sicher, dass in der Login-Klasse der Benutzer in
   /etc/login.conf die richtige Sprache eingestellt ist. Die
   folgenden Einstellungen mu:ssen in /etc/login.conf vorgenommen
   werden:

 Sprache|Account-Typ-Beschreibung:\
         :charset=MIME_Zeichensatz:\
         :lang=Locale:\
         :tc=default:

   Die fu:r Latin-1 erforderlichen Eintra:ge sehen wie folgt aus:

 german|German Users Accounts:\
         :charset=ISO-8859-1:\
         :lang=de_DE.ISO8859-1:\
         :tc=default:

   Bevor Sie die Login-Klasse eines Benutzers a:ndern, mu:ssen Sie
   den folgenden Befehl ausfu:hren:

 # cap_mkdb /etc/login.conf

   Erst danach werden Ihre A:nderungen in /etc/login.conf im System
   sichtbar.

      A:ndern der Login-Klasse mit vipw(8)

   Wenn Sie neue Accounts mit vipw anlegen, erstellen Sie Eintra:ge
   in folgender Art:

 user:password:1111:11:Sprache:0:0:Benutzername:/home/user:/bin/sh

      A:ndern der Login-Klasse mit adduser(8)

   Wenn Sie neue Accounts mit adduser anlegen, stehen Ihnen die
   folgenden Mo:glichkeiten zur Verfu:gung:

     * Geben Sie in /etc/adduser.conf mit defaultclass = Sprache eine
       Sprache vor. In diesem Fall mu:ssen Sie fu:r Benutzer anderer
       Sprachen eine andere Login-Klasse angeben.

     * Geben Sie die Sprache jedes Mal ein, wenn Sie dazu von
       adduser(8) aufgefordert werden:

 Enter login class: default []:

     * Sie ko:nnen die Login-Klasse auch auf der Kommandozeile von
       adduser(8) u:bergeben:

 # adduser -class Sprache

      A:ndern der Login-Klasse mit pw(8)

   Wenn Sie neue Accounts mit pw(8) anlegen, benutzen Sie die
   folgende Kommandozeile:

 # pw useradd Account -L Sprache

     --------------------------------------------------------------

      24.3.4.1.2. Lokalisierung in den Startdateien der Shells

     Anmerkung: Da Sie jede Shell unterschiedlich einrichten mu:ssen,
     sollten Sie diese Methode nicht verwenden. Benutzen Sie
     stattdessen bitte Login-Klassen.

   Um die Locale und den MIME Zeichensatz anzugeben, setzen Sie die
   unten aufgefu:hrten Variablen in den Startdateien der Shells
   (/etc/profile und /etc/csh.login). In den folgenden Beispielen
   verwenden wir die deutsche Sprache.

   Einstellungen in /etc/profile:

 LANG=de_DE.ISO8859-1; export LANG
 MM_CHARSET=ISO-8859-1; export MM_CHARSET

   Einstellungen in /etc/csh.login:

 setenv LANG de_DE.ISO8859-1
 setenv MM_CHARSET ISO-8859-1

   Alternativ ko:nnen Sie die Einstellungen in den Vorgabedateien der
   Shells vornehmen. Die oben gezeigten Einstellungen aus
   /etc/profile tragen Sie dann in /usr/share/skel/dot.profile und
   die Einstellungen aus /etc/csh.login in /usr/share/skel/dot.login
   ein.

   Die Einstellungen fu:r X11 in $HOME/.xinitrc sind von der
   verwendeten Login-Shell abha:ngig. Mit Bourne Shells verwenden Sie
   den folgenden Eintrag:

 LANG=de_DE.ISO8859-1; export LANG

   Mit C-Shells verwenden Sie den nachstehenden Eintrag:

 setenv LANG de_DE.ISO8859-1

     --------------------------------------------------------------

  24.3.5. Einrichten der Konsole

   Wenn Sie C-char Zeichensa:tze[14] verwenden, mu:ssen Sie die
   richtigen Zeichensa:tze fu:r die gewa:hlte Sprache in /etc/rc.conf
   angeben:

 font8x16=Zeichensatz
 font8x14=Zeichensatz
 font8x8=Zeichensatz

   Dabei ist Zeichensatz der Name der passenden Datei aus
   /usr/share/syscons/fonts ohne die Endung .fnt.

   Setzen Sie bei Bedarf die richtige Tasten- und Bildschirmzuordnung
   (keymap und screenmap). Dies ko:nnen Sie in sysinstall einstellen,
   indem Sie Configure und dann Console wa:hlen. Sie ko:nnen die
   Zuordnungen aber auch direkt in /etc/rc.conf angeben:

 scrnmap=screenmap_name
 keymap=keymap_name
 keychange="fkey_number sequence"

   screenmap_name ist der Name einer Datei aus
   /usr/share/syscons/scrnmaps ohne die Endung .scm. Eine
   Bildschirmzuordnung und der zugeho:rige Zeichensatz verbreitert
   die Zeichenmatrix von VGA Karten im Pseudographik Modus von 8 Bit
   auf 9 Bit. Sie wird beno:tigt, wenn der Zeichensatz des
   Bildschirms 8 Bit verwendet.

   Lesen Sie den na:chsten Absatz, wenn Sie in /etc/rc.conf den
   moused Daemon mit der nachstehenden Anweisung aktiviert haben:

 moused_enable="YES"

   Der Mauszeiger des syscons(4) Treibers belegt in der
   Voreinstellung den Bereich von 0xd0 bis 0xd3 des Zeichensatzes.
   Wenn dieser Bereich ebenfalls von der eingestellten Sprache
   beno:tigt wird, mu:ssen Sie den Mauszeiger verschieben. Dazu
   fu:gen Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei
   ein:

 mousechar_start=3

   keymap_name ist der Name einer Datei aus
   /usr/share/syscons/keymaps ohne die Endung .kbd. Welche
   Tastenzuordnung Sie benutzen mu:ssen, ko:nnen Sie ohne einen
   Neustart mit kbdmap(1) ausprobieren.

   Mit keychange ko:nnen die Funktionstasten so programmiert werden,
   dass Sie zu dem ausgesuchten Terminal passen. Die Sequenzen der
   Funktionstasten ko:nnen nicht in Tastenzuordnungen definiert
   werden.

   Stellen Sie sicher, dass der richtige Terminaltyp fu:r die ttyv*
   Konsolen in /etc/ttys angegeben ist. Momentan sind die folgenden
   Terminaltypen definiert:

                 Zeichensatz                       Terminaltyp        
   ISO8859-1 oder ISO8859-15                cons25l1                  
   ISO8859-2                                cons25l2                  
   ISO8859-7                                cons25l7                  
   KOI8-R                                   cons25r                   
   KOI8-U                                   cons25u                   
   CP437 (VGA default)                      cons25                    
   US-ASCII                                 cons25w                   

   Mit Wide- oder Multibyte-Zeichensa:tzen mu:ssen Sie den richtigen
   Port aus dem Verzeichnis /usr/ports/Sprache verwenden. Einige
   Ports erscheinen als Konsolen werden aber vom System als serielle
   vtty's betrachtet. Achten Sie daher darauf, dass Sie genu:gend
   vtty's fu:r X11 und die Pseudo-seriellen Konsolen definiert haben.
   Nachstehend finden Sie eine unvollsta:ndige Liste der Ports, die
   eine andere Sprache als Englisch auf der Konsole verwenden:

            Sprache                            Port                   
   traditionelles Chinesisch chinese/big5con                          
   (BIG-5)                   
   Japanisch                 japanese/kon2-16dot oder                 
                             japanese/mule-freewnn                    
   Koreanisch                korean/han                               

     --------------------------------------------------------------

  24.3.6. Einrichten von X11

   Obwohl X11 nicht Teil des FreeBSD Projects ist, stellen wir hier
   einige Hinweise fu:r FreeBSD-Benutzer zusammen. Weitere Details
   entnehmen Sie bitte der Xorg Website oder der Dokumentation Ihres
   X11 Servers.

   Anwendungsspezifische I18N-Einstellungen (Zeichensa:tze, Menu:s,
   usw.) ko:nnen Sie in ~/.Xresources vornehmen.

     --------------------------------------------------------------

    24.3.6.1. Zeichensa:tze

   Installieren Sie den Xorg-Server (x11-servers/xorg-server) und die
   TrueType Zeichensa:tze Ihrer Sprache. Wenn Sie die Locale gesetzt
   haben, sollten die Menu:s in Ihrer Sprache erscheinen.

     --------------------------------------------------------------

    24.3.6.2. Eingabe von nicht-englischen Zeichen

   Das X11 Input Method (XIM) Protokoll ist ein neuer Standard fu:r
   alle X11-Clients. Jede X11-Anwendung sollte als XIM-Client, der
   Eingaben von einem XIM-Server entgegen nimmt, implementiert sein.
   XIM-Server sind fu:r verschiedene Sprachen erha:ltlich.

     --------------------------------------------------------------

  24.3.7. Einrichten eines Druckers

   Drucker verfu:gen normalerweise schon u:ber einige C-char
   Zeichensa:tze[14]. Wide- oder Multibyte-Zeichensa:tze mu:ssen
   gesondert eingerichtet werden. Wir empfehlen Ihnen, dazu apsfilter
   zu benutzen. Weiterhin ko:nnen Sie mit sprachspezifischen
   Konvertern Ihre Dokumente auch in PostScript oder PDF umwandeln.

     --------------------------------------------------------------

  24.3.8. Kernel und Dateisysteme

   Das FreeBSD-Dateisystem (FFS) unterstu:tzt 8-Bit, so dass es mit
   C-char Zeichensa:tzen[14] (siehe multibyte(3)) verwendet werden
   kann. Der Zeichensatz wird allerdings nicht im Dateisystem
   gespeichert, das heisst es werden nur die 8-Bit Werte gespeichert
   und die Codierung wird nicht beru:cksichtigt. Offiziell werden
   Wide- oder Multibyte-Zeichensa:tze noch nicht unterstu:tzt, fu:r
   einige Zeichensa:tze existieren Patche, die eine solche
   Unterstu:tzung aktivieren. Sie sind allerdings nicht im Quelltext
   enthalten, da sie nur schwer pflegbare U:bergangslo:sungen sind.
   Die Patche und weitere Informationen erhalten Sie auf den
   Webseiten der betreffenden Sprache.

   Das MS-DOS Dateisystem von FreeBSD kann von MS-DOS- und
   Unicode-Zeichensa:tzen nach frei wa:hlbaren FreeBSD Zeichensa:tzen
   konvertieren. Weitere Details entnehmen Sie bitte
   mount_msdosfs(8).

     --------------------------------------------------------------

24.4. I18N-Programme u:bersetzen

   Viele FreeBSD-Ports besitzen I18N-Unterstu:tzung, einige davon
   enthalten -I18N im Namen. Fu:r diese und viele andere Programme
   ist keine spezielle Konfiguration notwendig.

   Einige Anwendungen wie MySQL mu:ssen allerdings speziell fu:r
   einen Zeichensatz in ihrem Makefile konfiguriert werden.
   Normalerweise wird dazu das Makefile angepasst oder configure mit
   einem speziellen Parameter aufgerufen.

     --------------------------------------------------------------

24.5. Lokalisierung fu:r einzelne Sprachen

  24.5.1. Russisch (KOI8-R Codierung)

   Beigetragen von Andrey Chernov.

   Weitere Informationen u:ber die KOI8-R Codierung erhalten Sie auf
   der Webseite KOI8-R References (Russian Net Character Set).

     --------------------------------------------------------------

    24.5.1.1. Einrichten der Locale

   Fu:gen Sie die folgenden Zeilen in ~/.login_conf ein:

 me:My Account:\
         :charset=KOI8-R:\
         :lang=ru_RU.KOI8-R:

   Weitere Erkla:rungen finden Sie in Einstellen der Locale.

     --------------------------------------------------------------

    24.5.1.2. Einrichten der Konsole

     * Fu:gen Sie folgende Zeile in /etc/rc.conf ein:

 mousechar_start=3

     * Nehmen Sie zusa:tzlich die folgenden Einstellungen in
       /etc/rc.conf auf:

 keymap="ru.koi8-r"
 scrnmap="koi8-r2cp866"
 font8x16="cp866b-8x16"
 font8x14="cp866-8x14"
 font8x8="cp866-8x8"

     * Benutzen Sie cons25r als Terminaltyp fu:r jeden ttyv* Eintrag
       in /etc/ttys.

   Weitere Beispiele finden Sie in Einrichten der Konsole.

     --------------------------------------------------------------

    24.5.1.3. Einrichten eines Druckers

   Die meisten Drucker mit russischen Zeichen besitzen die
   Codetabelle CP866, so dass ein spezielles Programm zur
   U:bersetzung von KOI8-R nach CP866 beno:tigt wird. Zu diesem Zweck
   ist /usr/libexec/lpr/ru/koi2alt im Basissystem enthalten. Der
   Eintrag fu:r einen Drucker mit russischer Sprachunterstu:tzung in
   /etc/printcap sieht wie folgt aus:

 lp|Russian local line printer:\
         :sh:of=/usr/libexec/lpr/ru/koi2alt:\
         :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:

   Na:heres erfahren Sie in printcap(5).

     --------------------------------------------------------------

    24.5.1.4. MS-DOS Dateisystem und russische Dateinamen

   Russische Dateinamen auf MS-DOS Dateisystemen werden mit dem
   folgenden Eintrag in /etc/fstab erkannt:

 /dev/ad0s2      /dos/c  msdos   rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0

   Die Option -L legt die Locale fest. Die Option -W legt die
   Zeichenumwandlung fest. Stellen Sie sicher, dass /usr eingehangen
   ist, bevor Sie die MS-DOS-Partition einha:ngen, da die Tabellen
   zur Zeichenumwandlung in /usr/libdata/msdosfs liegen. Weitere
   Informationen erhalten Sie in der Hilfeseite mount_msdosfs(8).

     --------------------------------------------------------------

    24.5.1.5. Einrichten von X11

    1. Richten Sie zuna:chst die normale Lokalisierung ein.

    2. Wenn Sie Xorg verwenden, installieren Sie den Port
       x11-fonts/xorg-fonts-cyrillic.

       Im Abschnitt "Files" von /etc/X11/xorg.conf fu:gen Sie den
       folgende Eintrag vor allen anderen FontPath Eintra:gen ein:

 FontPath   "/usr/local/lib/X11/fonts/cyrillic"

         Anmerkung: Zusa:tzliche kyrillische Schriftarten finden Sie
         in der Ports-Sammlung.

    3. Die Unterstu:tzung fu:r eine russische Tastatur aktivieren Sie
       im "Keyboard" Abschnitt von xorg.conf:

 Option "XkbLayout"   "us,ru"
 Option "XkbOptions"  "grp:toggle"

       Stellen Sie zudem sicher, dass XkbDisable deaktiviert
       (auskommentiert) ist.

       Beim Einsatz von grp:toggle ko:nnen Sie mit Right Alt (Alt Gr)
       zwischen dem RUS- und LAT-Modus wechseln, verwenden Sie
       hingegen grp:ctrl_shift_toggle, so erfolgt der Wechsel mit
       Ctrl+Shift. Fu:r grp:caps_toggle ist zum Wechseln des
       RUS/LAT-Modus CapsLock zusta:ndig. Die alte Funktion von
       CapsLock steht nur im LAT-Modus mit der Tastenkombination
       Shift+CapsLock zur Verfu:gung. grp:caps_toggle funktioniert
       aus unbekannten Gru:nden unter Xorg nicht.

       Wenn Ihre Tastatur Windows-Tasten besitzt und
       nicht-alphanumerische Tasten im RUS-Modus nicht funktionieren,
       fu:gen Sie die folgende Zeile in xorg.conf ein:

 Option "XkbVariant" ",winkeys"

         Anmerkung: Die russische XKB-Tastatur funktioniert
         vielleicht nicht mit nicht-lokalisierten Anwendungen.

     Anmerkung: Lokalisierte Anwendungen sollten mindestens die
     Funktion XtSetLanguageProc (NULL, NULL, NULL); fru:hzeitig
     aufrufen.

     Weitere Informationen u:ber die Lokalisierung von
     X11-Anwendungen erhalten Sie auf der Webseite KOI8-R for X
     Window.

     --------------------------------------------------------------

  24.5.2. Traditionell chinesische Lokalisierung fu:r Taiwan

   Das taiwanesische FreeBSD Project stellt ein Tutorium unter
   http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/ zur
   Verfu:gung, das viele chinesische Anwendungen benutzt. Der Editor
   des FreeBSD Chinese HOWTOs ist Shen Chuan-Hsing
   <statue@freebsd.sinica.edu.tw>.

   Chuan-Hsing Shen <statue@freebsd.sinica.edu.tw> hat mithilfe des
   Tutoriums die Chinese FreeBSD Collection (CFC) geschaffen. Die
   Pakete und Skripten stehen unter
   ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/.

     --------------------------------------------------------------

  24.5.3. Deutsche Lokalisierung (fu:r alle ISO 8859-1 Sprachen)

   Von Slaven Rezic <eserte@cs.tu-berlin.de> stammt ein Tutorium, das
   die Benutzung von Umlauten mit FreeBSD beschreibt. Das Tutorium
   ist in Deutsch verfasst und unter
   http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html
   verfu:gbar.

     --------------------------------------------------------------

  24.5.4. Griechische Lokalisierung

   Nikos Kokkalis <nickkokkalis@gmail.com> hat einen ganzen Artikel
   u:ber die Griechisch-Unterstu:tzung in FreeBSD geschrieben. Er ist
   als Teil der offiziellen FreeBSD Dokumentation auf Griechisch
   erha:ltlich unter
   http://www.freebsd.org/doc/el_GR.ISO8859-7/articles/greek-language-support/index.html.
   Bitte beachten Sie, dass dies nur fu:r Griechisch gilt.

     --------------------------------------------------------------

  24.5.5. Japanische und koreanische Lokalisierung

   Informationen u:ber die japanische Lokalisierung entnehmen Sie
   bitte http://www.jp.FreeBSD.org/, Informationen u:ber die
   koreanische Lokalisierung erhalten Sie unter
   http://www.kr.FreeBSD.org/.

     --------------------------------------------------------------

  24.5.6. Nicht-englische FreeBSD-Dokumentation

   Teile vor FreeBSD Dokumentation wurden in andere Sprachen
   u:bersetzt. Folgen Sie bitte den Links auf der FreeBSD-Webseite
   oder schauen Sie in /usr/share/doc nach.

     --------------------------------------------------------------

                   Kapitel 25. FreeBSD aktualisieren

   Umstrukturiert und aktualisiert von Jim Mock. Im Original von
   Jordan Hubbard, Poul-Henning Kamp, John Polstra und Nik Clayton.
   U:bersetzt von Martin Heinen.

25.1. U:bersicht

   FreeBSD wird zwischen einzelnen Releases sta:ndig weiter
   entwickelt. Manche Leute bevorzugen die offiziellen
   Release-Versionen, wa:hrend andere wiederum lieber auf dem
   aktuellen Stand der Entwicklung bleiben mo:chten. Wie dem auch
   sei, sogar offizielle Release-Versionen werden oft mit
   Sicherheitsaktualisierungen und anderen kritischen
   Fehlerbereinigungen versorgt. Unabha:ngig von der eingesetzten
   Version bringt FreeBSD alle no:tigen Werkzeuge mit, um ihr System
   aktuell zu halten und es innerhalb verschiedener Versionen zu
   aktualisieren. Dieses Kapitel hilft Ihnen bei der Entscheidung, ob
   Sie mit dem Entwicklungssystem Schritt halten oder ein Release
   verwenden wollen. Die zugrundeliegenden Werkzeuge um Ihr System
   aktuell zu halten werden ebenfalls vorgestellt.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie

     * wissen, welche Werkzeuge verwendet werden ko:nnen, um das
       System und die Port-Sammlung zu aktualisieren.

     * wissen, wie Sie Ihr System mit freebsd-update, CVSup, CVS oder
       CTM aktualisieren.

     * wissen, wie man das aktuell installierte System mit einer
       urspru:nglichen Version vergleicht.

     * wissen, wie Sie ihre Dokumentation mit CVSup oder
       Dokumentations-Ports aktuell halten ko:nnen.

     * den Unterschied zwischen den beiden Entwicklungszweigen
       FreeBSD-STABLE und FreeBSD-CURRENT kennen.

     * Wissen, wie Sie das komplette Basissystem mit make buildworld
       neu bauen und installieren.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Ihr Netzwerk richtig konfiguriert haben (Kapitel 32) und

     * wissen, wie Sie Software Dritter installieren (Kapitel 5).

     Anmerkung: Im gesamten Kapitel wird der Befehl cvsup verwendet,
     um die FreeBSD Quellen zu beziehen und zu aktualisieren. Um es
     zu verwenden, beno:tigen Sie einen Port oder ein Paket wie
     net/cvsup (falls Sie den graphischen cvsup-Client nicht
     beno:tigen, ko:nnen Sie auch nur den Port net/cvsup-without-gui
     installieren). Alternativ ko:nnen Sie auch csup(1) verwenden,
     das bereits Teil des Basissystems ist.

     --------------------------------------------------------------

25.2. FreeBSD-Update

   Geschrieben von Tom Rhodes. Basierend auf bereitgestellten
   Mitschriften von Colin Percival. U:bersetzt von Benedict
   Reuschling.

   Das Einspielen von Sicherheitsaktualisierungen ist ein wichtiger
   Bestandteil bei der Wartung von Computersoftware, besonders wenn
   es um das Betriebssystem geht. Fu:r lange Zeit war dieser Prozess
   unter FreeBSD nicht einfach. Fehlerbehebungen mussten auf den
   Quellcode angewendet werden, danach wurde der Code zu neuen
   Bina:rdateien u:bersetzt und schliesslich mussten diese Dateien
   neu installiert werden.

   Das ist seit la:ngerem nicht mehr der Fall, da FreeBSD jetzt ein
   Werkzeug namens freebsd-update entha:lt. Dieses Werkzeug bringt
   zwei getrennte Funktionen mit sich. Die erste Funktion ermo:glicht
   die Anwendung von Sicherheitsaktualisierungen im Bina:rformat auf
   das FreeBSD Basissystem, ohne dieses neu zu u:bersetzen und zu
   installieren. Die zweite Funktion unterstu:tzt Aktualisierungen
   zwischen Haupt- und Unterversionen.

     Anmerkung: Bina:re Aktualisierungen sind fu:r alle Architekturen
     und Releases verfu:gbar, die aktuell vom FreeBSD Security Team
     betreut werden. Vor der Aktualisierung auf eine neue
     Release-Version sollten die aktuellen Anku:ndigungen zu dem
     Release gelesen werden, da diese wichtige Informationen zu der
     gewu:nschten Version enthalten. Diese Anku:ndigungen finden Sie
     unter dem folgenden Link: http://www.FreeBSD.org/releases/.

   Wenn eine crontab existiert, welche die Eigenschaften von
   freebsd-update verwendet, muss diese deaktiviert werden, bevor die
   folgende Aktion gestartet wird.

     --------------------------------------------------------------

  25.2.1. Die Konfigurationsdatei

   Manche Anwender mo:chten sicherlich Einstellungen in der
   Standard-Konfigurationsdatei unter /etc/freebsd-update.conf
   vornehmen, um bessere Kontrolle u:ber den gesamten Prozess zu
   besitzen. Die Optionen sind sehr gut dokumentiert, jedoch
   beno:tigen die folgenden ein paar zusa:tzliche Erkla:rungen:

 # Components of the base system which should be kept updated.
 Components src world kernel

   Dieser Parameter kontrolliert, welche Teile von FreeBSD auf dem
   aktuellen Stand gehalten werden sollen. Die Voreinstellung ist es,
   den Quellcode zu aktualisieren, das gesamte Basissystem sowie den
   Kernel. Die Komponenten sind die gleichen wie wa:hrend der
   Installation, also wu:rde beispielsweise das hinzufu:gen von
   world/games an dieser Stelle es erlauben, Aktualisierungen fu:r
   Spiele anzuwenden. Die Verwendung von src/bin erlaubt es, den
   Quellcode in src/bin aktuell zu halten.

   Die beste Einstellung ist, diese Option so zu belassen, da eine
   A:nderung es bedingt, dass man als Benutzer jede Komponente
   auflisten muss, die aktualisiert werden soll. Dies ko:nnte
   katastrophale Folgen nach sich ziehen, da der Quellcode und die
   Bina:rdateien dadurch nicht mehr synchron wa:ren.

 # Paths which start with anything matching an entry in an IgnorePaths
 # statement will be ignored.
 IgnorePaths

   Fu:gen Sie Pfade wie /bin oder /sbin hinzu, um diese speziellen
   Verzeichnisse wa:hrend des Aktualisierungsprozesses unberu:hrt zu
   lassen. Diese Option kann verwendet werden, um zu verhindern, dass
   freebsd-update lokale A:nderungen u:berschreibt.

 # Paths which start with anything matching an entry in an UpdateIfUnmodified
 # statement will only be updated if the contents of the file have not been
 # modified by the user (unless changes are merged; see below).
 UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile

   Aktualisieren Sie Konfigurationsdateien in den angegebenen
   Verzeichnissen nur, wenn diese nicht gea:ndert wurden. Jegliche
   A:nderung, die der Benutzer daran vorgenommen hat, wird die
   automatische Aktualisierung dieser Dateien ungu:ltig machen. Es
   gibt eine weitere Option KeepModifiedMetadata, die freebsd-update
   instruiert, die A:nderungen wa:hrend der Zusammenfu:hrung zu
   speichern.

 # When upgrading to a new FreeBSD release, files which match MergeChanges
 # will have any local changes merged into the version from the new release.
 MergeChanges /etc/ /var/named/etc/

   Eine Liste von Verzeichnissen mit Konfigurationsdateien, in denen
   freebsd-update Zusammenfu:hrungen versuchen soll. Dieser
   Verschmelzungsprozess von Dateien ist eine Serie von
   diff(1)-Korrekturen, a:hnlich wie mergemaster(8) mit weniger
   Optionen. Die A:nderungen werden entweder akzeptiert, o:ffnen
   einen Editor oder freebsd-update bricht ab. Wenn Sie im Zweifel
   sind, sichern Sie das /etc Verzeichnis und akzeptieren einfach die
   A:nderungen. Lesen Sie Abschnitt 25.7.11.1, um Informationen u:ber
   das mergemaster-Kommando zu erhalten.

 # Directory in which to store downloaded updates and temporary
 # files used by FreeBSD Update.
 # WorkDir /var/db/freebsd-update

   In diesem Verzeichnis werden alle Korrekturen und tempora:ren
   Dateien abgelegt. Fu:r Fa:lle in denen der Anwender eine
   Versionsaktualisierung vornimmt, sollte diesem Verzeichnis
   mindestens ein Gigabyte Festplattenspeicher zur Verfu:gung stehen.

 # When upgrading between releases, should the list of Components be
 # read strictly (StrictComponents yes) or merely as a list of components
 # which *might* be installed of which FreeBSD Update should figure out
 # which actually are installed and upgrade those (StrictComponents no)?
 # StrictComponents no

   Wenn dies auf yes gesetzt ist, wird freebsd-update annehmen, dass
   die Components-Liste vollsta:ndig ist und nicht versuchen,
   A:nderungen ausserhalb dieser Liste zu ta:tigen. Tatsa:chlich wird
   freebsd-update versuchen, jede Datei zu aktualisieren, die zu der
   Components-Liste geho:rt.

     --------------------------------------------------------------

  25.2.2. Sicherheitsaktualisierungen

   Sicherheitsaktualisierungen sind auf einer entfernten Maschine
   abgelegt und ko:nnen durch das folgende Kommando heruntergeladen
   und installiert werden:

 # freebsd-update fetch
 # freebsd-update install

   Wenn irgendeine A:nderung auf den Kernel angewendet wurde
   beno:tigt das System einen Neustart. Wenn alles gut verlaufen ist,
   sollte das System aktualisiert sein und freebsd-update kann als
   na:chtlicher cron(8)-Job ablaufen. Ein Eintrag in der Datei
   /etc/crontab ist fu:r diese Aufgabe ausreichend:

 @daily                                  root    freebsd-update cron

   Dieser Eintrag besagt, dass einmal am Tag freebsd-update
   ausgefu:hrt wird. Auf diese Weise kann freebsd-update nur durch
   die Verwendung des cron-Arguments pru:fen, ob Aktualisierungen
   vorliegen. Wenn Korrekturen existieren, werden diese automatisch
   auf die lokale Festplatte heruntergeladen, aber nicht eingespielt.
   Der root-Benutzer bekommt eine Nachricht, damit dieser die
   Korrekturen manuell installiert.

   Sollte irgendetwas schief gelaufen sein, kann freebsd-update den
   letzten Satz von A:nderungen mit dem folgenden Befehl
   zuru:ckrollen:

 # freebsd-update rollback

   Sobald dieser Vorgang abgeschlossen ist, sollte das System neu
   gestartet werden, wenn der Kernel oder ein beliebiges Kernelmodul
   gea:ndert wurde. Dies ermo:glicht es FreeBSD, die neuen
   Bina:rdateien in den Hauptspeicher zu laden.

   Das freebsd-update-Werkzeug kann nur den GENERIC-Kernel
   automatisch aktualisieren. Wenn ein selbstkonfigurierter Kernel
   verwendet wird, muss dieser neu erstellt und installiert werden,
   nachdem freebsd-update den Rest der Aktualisierungen durchgefu:hrt
   hat. Allerdings wird freebsd-update den GENERIC-Kernel in
   /boot/GENERIC erkennen und aktualisieren (falls dieser existiert),
   sogar dann, wenn dies nicht der aktuell verwendete Kernel des
   Systems ist.

     Anmerkung: Es ist eine gute Idee, immer eine Kopie des
     GENERIC-Kernels in /boot/GENERIC aufzubewahren. Das wird bei der
     Diagnose von verschiedenen Problemen eine grosse Hilfe sein,
     sowie bei der Durchfu:hrung von Versionsaktualisierungen mit
     freebsd-update, wie in Abschnitt 25.2.3 beschrieben ist.

   Solange die Standardkonfiguration in /etc/freebsd-update.conf
   nicht gea:ndert wurde, wird freebsd-update die aktualisierten
   Quellcodedateien des Kernels zusammen mit dem Rest der Neuerungen
   installieren. Die erneute U:bersetzung und Installation ihres
   neuen, selbstkonfigurierten Kernels kann dann auf die u:bliche Art
   und Weise durchgefu:hrt werden.

     Anmerkung: Die Aktualisierungen, die u:ber freebsd-update
     verteilt werden, betreffen nicht immer den Kernel. Es ist nicht
     notwendig, den selbstkonfigurierten Kernel neu zu erstellen,
     wenn die Kernelquellen nicht durch die Ausfu:hrung von
     freebsd-update install gea:ndert wurden. Allerdings wird
     freebsd-update auf alle Fa:lle die Datei
     /usr/src/sys/conf/newvers.sh aktualisieren. Der aktuelle
     Patch-Level (angegeben durch die -p-Nummer, die von dem Kommando
     uname -r ausgegeben wird) wird aus dieser Datei ausgelesen. Die
     Neuinstallation des selbstkonfigurierten Kernels, selbst wenn
     sich daran nichts gea:dert hat, erlaubt es uname(1), den
     aktuellen Patch-Level des Systems korrekt wiederzugeben. Dies
     ist besonders hilfreich, wenn mehrere Systeme gewartet werden,
     da es eine schnelle Einscha:tzung der installierten
     Aktualisierungen in jedem einzelnen System ermo:glicht.

     --------------------------------------------------------------

  25.2.3. Aktualisierungen an Haupt- und Unterversionen

   Dieser Prozess entfernt alte Objekt-Dateien und Bibliotheken, was
   dazu fu:hrt, dass die meisten Anwendungen von Drittherstellern
   nicht mehr funktionieren. Es wird empfohlen, dass alle
   installierten Ports entweder entfernt und neu installiert oder zu
   einem spa:teren Zeitpunkt mittels ports-mgmt/portupgrade
   aktualisiert werden. Die meisten Anwender werden wahrscheinlich
   einen Testlauf mittels des folgenden Kommandos durchfu:hren
   wollen:

 # portupgrade -af

   Dies sorgt dafu:r, dass alles korrekt neu installiert wird.
   Beachten Sie, dass das Setzen der BATCH-Umgebungsvariable auf yes
   wa:hrend dieses Prozesses auf jede Eingabe mit ja antwortet, was
   es nicht mehr notwendig macht, manuell eingreifen zu mu:ssen.

   Wenn ein selbstkonfigurierter Kernel verwendet wird, ist der
   Aktualisierungsprozess ein kleines bisschen aufwa:ndiger. Eine
   Kopie des GENERIC-Kernels wir beno:tigt und sollte in
   /boot/GENERIC abgelegt sein. Wenn der GENERIC-Kernel nicht bereits
   im System vorhanden ist, kann dieser u:ber eine der folgenden
   Methoden bezogen werden:

     * Wenn ein eigener Kernel genau einmal gebaut wurde, ist der
       Kernel im Verzeichnis /boot/kernel.old in Wirklichkeit der
       GENERIC-Kernel. Benennen Sie einfach dieses Verzeichnis in
       /boot/GENERIC um.

     * Angenommen, direkter Zugriff auf die Maschine ist mo:glich, so
       kann eine Kopie des GENERIC-Kernels von den CD-ROM-Medien
       installiert werden. Legen Sie die Installations-CD ein und
       benutzen Sie die folgenden Befehle:

 # mount /cdrom
 # cd /cdrom/X.Y-RELEASE/kernels
 # ./install.sh GENERIC

       Ersetzen Sie X.Y-RELEASE mit der richtigen Version der
       Vero:ffentlichung, die Sie verwenden. Der GENERIC-Kernel wird
       standardma:ssig in /boot/GENERIC installiert.

     * Falls alle obigen Schritte fehlschlagen, kann der
       GENERIC-Kernel folgendermassen aus den Quellen neu gebaut und
       installiert werden:

 # cd /usr/src
 # env DESTDIR=/boot/GENERIC make kernel
 # mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
 # rm -rf /boot/GENERIC/boot

       Damit dieser Kernel als GENERIC-Kernel von freebsd-update
       erkannt wird, darf die GENERIC-Konfigurationsdatei in keiner
       Weise gea:ndert worden sein. Es wird ebenfalls empfohlen, dass
       dieser ohne irgendwelche speziellen Optionen erstellt wird
       (bevorzugt mit einer leeren /etc/make.conf).

   Der Neustart in den GENERIC-Kernel ist zu diesem Zeitpunkt nicht
   notwendig.

   Aktualisierungen an Haupt- und Unterversionen ko:nnen
   durchgefu:hrt werden, wenn man freebsd-update eine Release-Version
   als Ziel u:bergibt. Beispielsweise wird das folgende Kommando das
   System auf FreeBSD 8.1 aktualisieren:

 # freebsd-update -r 8.1-RELEASE upgrade

   Nachdem das Kommando empfangen wurde, u:berpru:ft freebsd-update
   die Konfigurationsdatei und das aktuelle System, um die no:tigen
   Informationen fu:r die Systemaktualisierung zu sammeln. Eine
   Bildschirmausgabe wird anzeigen, welche Komponenten erkannt und
   welche nicht erkannt wurden. Zum Beispiel:

 Looking up update.FreeBSD.org mirrors... 1 mirrors found.
 Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
 Fetching metadata index... done.
 Inspecting system... done.

 The following components of FreeBSD seem to be installed:
 kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
 src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
 src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
 world/base world/info world/lib32 world/manpages

 The following components of FreeBSD do not seem to be installed:
 kernel/generic world/catpages world/dict world/doc world/games
 world/proflibs

 Does this look reasonable (y/n)? y

   An diesem Punkt wird freebsd-update versuchen, alle notwendigen
   Dateien fu:r die Aktualisierung herunter zu laden. In manchen
   Fa:llen wird der Benutzer mit Fragen konfrontiert, um
   festzustellen, was installiert werden soll oder auf welche Art und
   Weise fortgesetzt werden soll.

   Wenn ein selbstkonfigurierter Kernel benutzt wird, produziert der
   vorherige Schritt eine Warnung a:hnlich zu der folgenden:

 WARNING: This system is running a "MYKERNEL" kernel, which is not a
 kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
 This kernel will not be updated: you MUST update the kernel manually
 before running "/usr/sbin/freebsd-update install"

   Diese Warnung kann an dieser Stelle problemlos ignoriert werden.
   Der aktualisierte GENERIC-Kernel wird als ein Zwischenschritt im
   Aktualisierungsprozess verwendet.

   Nachdem alle Korrekturen auf das lokale System heruntergeladen
   wurden, werden diese nun eingespielt. Dieser Prozess kann eine
   gewisse Zeit in Anspruch nehmen, abha:ngig von der Geschwindigkeit
   und Auslastung der Maschine. Konfigurationsdateien werden
   ebenfalls zusammengefu:gt - dieser Teil der Prozedur beno:tigt
   einige Benutzereingaben, da eine Datei mo:glicherweise von Hand
   zusammengefasst werden muss oder ein Editor erscheint auf dem
   Bildschirm zum manuellen bearbeiten. Die Ergebnisse von jeder
   erfolgreichen Zusammenfassung werden dem Benutzer angezeigt,
   wa:hrend der Prozess weiterla:uft. Eine fehlgeschlagene oder
   ignorierte Zusammenfassung wird den Prozess sofort beenden.
   Benutzer sollten eine Sicherung von /etc anlegen und wichtige
   Dateien spa:ter manuell vereinen, beispielsweise master.passwd
   oder group.

     Anmerkung: Das System ist noch nicht vera:ndert worden, alle
     Korrekturen und Vereinigungen sind in einem anderen Verzeichnis
     vorgenommen worden. Wenn alle Korrekturen erfolgreich
     eingespielt, alle Konfigurationsdateien zusammengefu:gt wurden
     und es den Anschein hat, dass der Prozess problemlos verlaufen
     wird, mu:ssen die A:nderungen vom Anwender noch angewendet
     werden.

   Sobald dieser Prozess abgeschlossen ist, ko:nnen die
   Aktualisierungen u:ber das folgende Kommando auf die Platte
   geschrieben werden:

 # freebsd-update install

   Der Kernel und die Module werden zuerst aktualisiert. Zu diesem
   Zeitpunkt muss die Maschine neu gestartet werden. Wenn das System
   einen selbstkonfigurierten Kernel verwendet, benutzen Sie das
   nextboot(8)-Kommando, um den Kernel fu:r den na:chsten Neustart
   auf /boot/GENERIC zu setzen (welcher aktualisiert wurde):

 # nextboot -k GENERIC

     Warnung: Bevor mit dem GENERIC-Kernel das System neu gestartet
     wird, vergewissern Sie sich, dass alle notwendigen Treiber fu:r
     ihr System enthalten sind, um korrekt zu starten (und schliessen
     Sie ihn ans Netzwerk an, falls auf die Maschine, die
     aktualisiert wird, von der Ferne aus zugegriffen wird). Achten
     Sie besonders darauf, dass wenn der vorherige
     selbstkonfigurierte Kernel Funktionalita:t beinhaltet, die von
     Kernelmodulen zur Verfu:gung gestellt wurde, dass diese
     tempora:r in den GENERIC-Kernel u:ber die Datei
     /boot/loader.conf u:bernommen werden. Sie sollten ebenfalls
     nicht beno:tigte Dienste, eingeha:ngte Platten, verbundene
     Netzlaufwerke, usw. deaktivieren, bis der Aktualisierungsprozess
     abgeschlossen ist.

   Die Maschine sollte nun mit dem aktualisierten Kernel neu
   gestartet werden:

 # shutdown -r now

   Sobald das System wieder hochgefahren wurde, muss freebsd-update
   erneut gestartet werden. Der Zustand des Prozesses wurde zuvor
   gesichert und deshalb wird freebsd-update nicht von vorne
   beginnen, jedoch alle alten Shared-Libraries und Objektdateien
   lo:schen. Um zu diesem Zustand zu gelangen, setzen Sie das
   folgende Kommando ab:

 # freebsd-update install

     Anmerkung: Abha:ngig davon, ob irgendwelche Bibliotheksversionen
     erho:ht wurden, kann es sein, dass nur zwei Installationsphasen
     anstatt drei durchlaufen werden.

   Nun muss alle Drittanbieter-Software neu erstellt und neu
   installiert werden. Dies ist notwendig, da die installierte
   Software mo:glicherweise Abha:ngigkeiten zu Bibliotheken entha:lt,
   die wa:hrend der Aktualisierung entfernt wurden. Der
   ports-mgmt/portupgrade-Befehl kann verwendet werden, um diesen
   Vorgang zu automatisieren. Die folgenden Kommandos ko:nnen
   verwendet werden, um diesen Prozess zu starten:

 # portupgrade -f ruby
 # rm /var/db/pkg/pkgdb.db
 # portupgrade -f ruby18-bdb
 # rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
 # portupgrade -af

   Sobald dies abgeschlossen ist, beenden Sie den
   Aktualisierungsprozess mit einem letzten Aufruf von
   freebsd-update. Geben Sie den folgenden Befehl ein, um alle losen
   Enden des Aktualisierungsprozesses miteinander zu verknu:pfen:

 # freebsd-update install

   Wenn der GENERIC-Kernel tempora:r Verwendung fand, ist dies der
   richtige Zeitpunkt, einen neuen, selbstkonfigurierten Kernel zu
   bauen und u:ber die u:bliche Methode zu installieren.

   Booten Sie anschliessend die Maschine in die neue FreeBSD-Version.
   Der Prozess ist damit abgeschlossen.

     --------------------------------------------------------------

  25.2.4. Vergleich des Systemzustands

   Das freebsd-update-Werkzeug kann verwendet werden, um den Zustand
   der installierten FreeBSD-Version gegenu:ber einer bekannten und
   funktionierenden Kopie zu vergleichen. Diese Option vergleicht die
   aktuelle Version von Systemwerkzeugen, Bibliotheken und
   Konfigurationsdateien. Um diesen Vergleich zu starten, geben Sie
   den folgenden Befehl ein:

 # freebsd-update IDS >> outfile.ids

     Warnung: Obwohl der Befehlsname IDS lautet, sollte er in keiner
     Weise als Ersatz fu:r ein Intrusion Detection System wie
     security/snort angesehen werden. Da freebsd-update seine Daten
     auf Platte ablegt, ist die Mo:glichkeit von Verfa:lschungen
     offensichtlich. Obwohl diese Mo:glichkeit durch die Verwendung
     von kern.securelevel oder die Ablage von freebsd-update auf
     einem Nur-Lese Dateisystem, wenn es gerade nicht gebraucht wird,
     eingeda:mmt werden kann, besteht eine bessere Lo:sung darin, das
     System gegen ein gesichertes Medium, wie eine DVD oder einen
     externen, separat aufbewahrten USB-Plattenspeicher, zu
     vergleichen.

   Das System wird jetzt untersucht und eine Liste von Dateien
   ausgegeben, zusammen mit deren sha256(1)-Hashwerten, sowohl der
   von der Release-Version bekannte Wert als auch der des aktuell
   installierten Systems. Das ist der Grund dafu:r, warum die Ausgabe
   an die Datei outfile.ids geschickt wurde. Es scrollt zu schnell
   vorbei, um diese mit den Augen zu vergleichen und bald wird auch
   der Konsolenpuffer damit u:berfu:llt.

   Diese Zeilen sind dazu noch extrem lang, aber das Ausgabeformat
   kann sehr einfach verarbeitet werden. Um beispielsweise eine Liste
   von allen Dateien zu erhalten, die sich vom aktuellen Release
   unterscheiden, geben Sie das folgende Kommando ein:

 # cat outfile.ids | awk '{ print $1 }' | more
 /etc/master.passwd
 /etc/motd
 /etc/passwd
 /etc/pf.conf

   Diese Ausgabe wurde abgeschnitten, es existieren noch viel mehr
   Dateien dazu. Manche dieser Dateien besitzen ganz
   selbstversta:ndliche Vera:nderungen, /etc/passwd wurde
   beispielsweise gea:ndert, um Benutzer zum System hinzuzufu:gen. In
   manchen Fa:llen kann es anderen Dateien wie Kernelmodule geben,
   welche sich gea:ndert haben, weil freebsd-update diese
   aktualisiert hat. Um bestimmte Dateien oder Verzeichnisse
   auszuschliessen, ha:ngen Sie diese an die IDSIgnorePaths-Option in
   /etc/freebsd-update.conf an.

   Diese Vorgehensweise kann als Teil einer ausgeklu:gelten
   Aktualisierungsmethode benutzt werden, unabha:ngig von der zuvor
   angesprochenen Variante.

     --------------------------------------------------------------

25.3. Portsnap: Ein Werkzeug zur Aktualisierung der Ports-Sammlung

   Geschrieben von Tom Rhodes. Basierend auf bereitgestellten
   Mitschriften von Colin Percival. U:bersetzt von Benedict
   Reuschling.

   Das Basissystem von FreeBSD entha:lt auch ein Programm zum
   Aktualisieren der Ports-Sammlung: das portsnap(8) Werkzeug. Wenn
   es ausgefu:hrt wird, verbindet es sich mit einem entfernten
   Rechner, u:berpru:ft den Sicherungsschlu:ssel und la:dt eine neue
   Kopie der Ports-Sammlung herunter. Der Schlu:ssel wird dazu
   verwendet, um die Integrita:t aller heruntergeladenen Dateien zu
   pru:fen und um sicherzustellen, dass diese unterwegs nicht
   vera:ndert wurden. Um die aktuellsten Dateien der Ports-Sammlung
   herunter zu laden, geben Sie das folgende Kommando ein:

 # portsnap fetch
 Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
 Fetching snapshot tag from portsnap1.FreeBSD.org... done.
 Fetching snapshot metadata... done.
 Updating from Wed Aug  6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
 Fetching 3 metadata patches.. done.
 Applying metadata patches... done.
 Fetching 3 metadata files... done.
 Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
 Applying patches... done.
 Fetching 133 new ports or files... done.

   Dieses Beispiel zeigt, dass portsnap(8) mehrere Korrekturen fu:r
   die aktuellen Ports-Daten gefunden und verifiziert hat. Es zeigt
   auch, dass das Programm zuvor schon einmal gestartet wurde. Wa:re
   es das erste Mal, wu:rde nur die Ports-Sammlung heruntergeladen
   werden.

   Wenn portsnap(8) erfolgreich die fetch-Operation abgeschlossen
   hat, befinden sich die Ports-Sammlung und die dazugeho:rigen
   Korrekturen auf dem lokalen System, welches die U:berpru:fung
   bestanden hat. Wenn Sie portsnap das erste Mal ausgefu:hrt haben,
   mu:ssen Sie den Befehl portsnap extract verwenden, um die
   Ports-Sammlung zu installieren:

 # portsnap extract
 /usr/ports/.cvsignore
 /usr/ports/CHANGES
 /usr/ports/COPYRIGHT
 /usr/ports/GIDs
 /usr/ports/KNOBS
 /usr/ports/LEGAL
 /usr/ports/MOVED
 /usr/ports/Makefile
 /usr/ports/Mk/bsd.apache.mk
 /usr/ports/Mk/bsd.autotools.mk
 /usr/ports/Mk/bsd.cmake.mk
 ...

   Um Ihre bereits installierte Ports-Sammlung zu aktualisieren,
   verwenden Sie hingegen den Parameter update:

 # portsnap update

   Der Prozess ist jetzt abgeschlossen und Anwendungen ko:nnen
   mittels der aktuellen Ports-Sammlung installiert oder aktualisiert
   werden.

   Die Operationen fetch und extract oder update ko:nnen auch
   nacheinander ausgefu:hrt werden, wie im folgenden Beispiel
   gezeigt:

 # portsnap fetch update

   Dieser Befehl la:dt die aktuelle Version der Ports-Sammlung
   herunter und aktualisiert anschliessend Ihre lokale Version im
   Verzeichnis /usr/ports.

     --------------------------------------------------------------

25.4. Aktualisieren der Dokumentationssammlung

   U:bersetzt von Benedict Reuschling.

   Neben dem Basissystem und der Ports-Sammlung ist die Dokumentation
   ein wichtiger Bestandteil des FreeBSD Betriebssystems. Obwohl eine
   aktuelle Version der FreeBSD Dokumentation jederzeit auf der
   FreeBSD Webseite verfu:gbar ist, verfu:gen manche Benutzer nur
   u:ber eine langsame oder u:berhaupt keine Netzwerkverbindung.
   Glu:cklicherweise gibt es mehrere Mo:glichkeiten, die
   Dokumentation, welche mit jeder Version ausgeliefert wird, zu
   aktualisieren, indem eine lokale Kopie der aktuellen
   FreeBSD-Dokumentationssammlung verwendet wird.

     --------------------------------------------------------------

  25.4.1. Verwenden von CVSup um die Dokumentation zu aktualisieren

   Die Quellen und die installierte Kopie der FreeBSD Dokumentation
   kann mittels CVSup aktualisiert werden, indem ein a:hnlicher
   Mechanismus angewendet wird, wie derjenige fu:r die
   Betriebssystemquellen (vergleichen Sie mit Abschnitt 25.7). Dieser
   Abschnitt beschreibt:

     * Wie die Dokumentations-Werkzeugsammlung installiert wird,
       welche die Werkzeuge entha:lt, die no:tig sind, um die FreeBSD
       Dokumentation aus den Quellen neu zu erstellen.

     * Wie man eine Kopie der Dokumentationsquellen nach /usr/doc
       herunterla:dt, unter Verwendung von CVSup.

     * Wie man die FreeBSD Dokumentation aus den Quellen baut und
       unter /usr/share/doc installiert.

     * Manche der Optionen zum Erstellen, die vom System zum Bauen
       der Dokumentation unterstu:tzt werden, z.B. die Optionen
       welche nur ein paar der unterschiedlichen Sprachu:bersetzungen
       der Dokumentation erstellen oder die Optionen, die ein
       bestimmtes Ausgabeformat auswa:hlen.

     --------------------------------------------------------------

  25.4.2. CVSup und die Werkzeugsammlung der Dokumentation installieren

   Die FreeBSD Dokumentation aus dem Quellen zu erstellen beno:tigt
   eine ziemlich grosse Anzahl an Werkzeugen. Diese Werkzeuge sind
   nicht Teil des FreeBSD Basissystems, da sie eine grosse Menge an
   Plattenplatz verbrauchen und nicht von allen FreeBSD-Anwendern
   beno:tigt werden. Sie sind nur fu:r diejenigen Benutzer notwendig,
   die aktiv an neuer Dokumentation fu: FreeBSD schreiben oder
   ha:ufig ihre Dokumentation aus den Quellen bauen lassen.

   Alle beno:tigten Werkzeuge sind als Teil der Ports-Sammlung
   verfu:gbar. Der Port textproc/docproj dient als Masterport, der
   vom FreeBSD Documentation Project entwickelt wurde, um die
   initiale Installation und zuku:nftige Aktualisierungen dieser
   Werkzeuge zu vereinfachen.

     Anmerkung: Wenn Sie die Dokumentation nicht als PostScript oder
     PDF beno:tigen, ko:nnen Sie alternativ die Installation des
     textproc/docproj-nojadetex-Ports in Erwa:gung ziehen. Diese
     Version der Dokumentations-Werkzeugsammlung entha:lt alles
     ausser das teTeX-Textsatzsystem. teTeX ist eine sehr grosse
     Sammlung an Werkzeugen, deshalb ist es vernu:nftig, deren
     Installation auszulassen, wenn die Ausgabe von PDF nicht
     unbedingt gebraucht wird.

   Fu:r weitere Informationen u:ber das Installieren und Verwenden
   von CVSup, lesen Sie CVSup verwenden.

     --------------------------------------------------------------

  25.4.3. Die Dokumentationsquellen aktualisieren

   Das Programm CVSup kann eine saubere Kopie der
   Dokumentationsquellen holen, indem es die Datei
   /usr/share/examples/cvsup/doc-supfile als Konfigurationsvorlage
   verwendet. Der Standard-Host zum Aktualisieren ist auf einen
   Platzhalterwert im doc-supfile gesetzt, aber cvsup(1) akzeptiert
   auch einen Hostnamen u:ber die Kommandozeile. Somit ko:nnen die
   Dokumentationsquellen von einem der CVSup-Server geholt werden,
   indem man eingibt:

 # cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile

   A:ndern Sie cvsup.FreeBSD.org auf den Ihnen am na:chsten gelegenen
   CVSup-Server. Eine vollsta:ndige Liste von Spiegelservern finden
   Sie unter Abschnitt A.6.7.

   Es dauert eine Weile, wenn die Dokumentationsquellen das
   allererste Mal heruntergeladen werden. Lassen Sie es laufen, bis
   es fertig ist.

   Zuku:nftige Aktualisierungen der Dokumentationsquellen ko:nnen Sie
   u:ber den gleichen Befehl bekommen. Das Programm CVSup la:dt und
   kopiert nur diejenigen Aktualisierungen herunter, die seit seinem
   letzten Aufruf hinzugekommen sind. Deshalb sollte jeder weitere
   Aufruf von CVSup nach dem Ersten wesentlich schneller
   abgeschlossen sein.

   Nachdem die Quellen einmal ausgecheckt wurden, besteht ein anderer
   Weg, die Dokumentation zu aktualisieren, darin, das Makefile im
   Verzeichnis /usr/doc anzupassen. Durch setzen von SUP_UPDATE,
   SUPHOST und DOCSUPFILE in der Datei /etc/make.conf ist es jetzt
   mo:glich, folgendes zu tun:

 # cd /usr/doc
 # make update

   Ein typischer Satz dieser make(1)-Optionen fu:r /etc/make.conf
   ist:

 SUP_UPDATE= yes
 SUPHOST?= cvsup.freebsd.org
 DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile

     Anmerkung: Das Setzen des Werts von SUPHOST und DOCSUPFILE auf
     ?= erlaubt es, diese in der Kommandozeile von make zu
     u:berschreiben. Diese Methode wird empfohlen, um Optionen zu
     make.conf hinzuzufu:gen, um zu verhindern, dass man die Datei
     jedes Mal bearbeiten muss, um einen anderen Wert fu:r die Option
     auszuprobieren.

     --------------------------------------------------------------

  25.4.4. Einstellbare Optionen der Dokumentationsquellen

   Das System zum aktualisieren und erstellen der
   FreeBSD-Dokumentation unterstu:tzt ein paar Optionen, welche den
   Prozess der Aktualisierung von Teilen der Dokumentation oder einer
   bestimmten U:bersetzung erleichtert. Diese Optionen lassen sich
   entweder systemweit in der Datei /etc/make.conf setzen, oder als
   Kommandozeilenoptionen, die dem make(1)-Werkzeug u:bergeben
   werden.

   Die folgenden Optionen sind ein paar davon:

   DOC_LANG

           Eine Liste von Sprachen und Kodierungen, die gebaut und
           installiert werden sollen, z.B. en_US.ISO8859-1, um nur
           die englische Dokumentation zu erhalten.

   FORMATS

           Ein einzelnes Format oder eine Liste von Ausgabeformaten,
           das gebaut werden soll. Momentan werden html, html-split,
           txt, ps, pdf, und rtf unterstu:tzt.

   SUPHOST

           Der Hostname des CVSup-Servers, der verwendet werden soll,
           um Aktualisierungen zu holen.

   DOCDIR

           Wohin die Dokumentation installiert werden soll. Der
           Standardpfad ist /usr/share/doc.

   Fu:r weitere make-Variablen, die als systemweite Optionen in
   FreeBSD unterstu:tzt werden, lesen Sie make.conf(5).

   Fu:r weitere make-Variablen, die vom System zum Erstellen der
   FreeBSD-Dokumentation unterstu:tzt werden, lesen Sie die Fibel
   fu:r neue Mitarbeiter des FreeBSD-Dokumentationsprojekts.

     --------------------------------------------------------------

  25.4.5. Die FreeBSD-Dokumentation aus den Quellen installieren

   Wenn ein aktueller Schnappschuss der Dokumentationsquellen nach
   /usr/doc heruntergeladen wurde, ist alles bereit fu:r eine
   Aktualisierung der bestehenden Dokumentation.

   Eine komplette Aktualisierung aller Sprachoptionen, definiert
   durch die DOC_LANG Makefile-Option, kann durch folgende Eingabe
   erreicht werden:

 # cd /usr/doc
 # make install clean

   Wenn make.conf mit den richtigen Optionen DOCSUPFILE, SUPHOST und
   SUP_UPDATE eingerichtet wurde, kann der Installationsschritt mit
   einer Aktualisierung der Dokumentationsquellen kombiniert werden,
   indem man eingibt:

 # cd /usr/doc
 # make update install clean

   Wenn nur eine Aktualisierung einer bestimmten Sprache gewu:nscht
   wird, kann make(1) in einem sprachspezifischen Unterverzeichnis
   von /usr/doc aufgerufen werden, z.B.:

 # cd /usr/doc/en_US.ISO8859-1
 # make update install clean

   Die zu installierenden Ausgabeformate ko:nnen durch das Setzen der
   make-Variablen FORMATS angegeben werden, z.B.:

 # cd /usr/doc
 # make FORMATS='html html-split' install clean

     --------------------------------------------------------------

  25.4.6. Verwendung von Dokumentations-Ports

   Basierend auf der Arbeit von Marc Fonvieille.

   Im vorherigen Abschnitt wurde eine Methode gezeigt, wie die
   FreeBSD-Dokumentation aus den Quellen gebaut werden kann.
   Allerdings sind quellbasierte Aktualisierungen mo:glicherweise
   nicht fu:r alle FreeBSD-Systeme geeignet oder praktikabel. Das
   Erstellen der Dokumentationsquellen beno:tigt eine grosse Anzahl
   an Werkzeugen, Programmen und Hilfsmitteln, die documentation
   toolchain, ein gewisser Grad an Vertrautheit mit CVS und
   ausgecheckte Quellen von einem Repository, sowie ein paar manuelle
   Schritte, um diese ausgecheckten Quellen zu bauen. In diesem
   Abschnitt wird eine alternative Art und Weise vorgestellt, wie man
   die installierte Kopie der FreeBSD-Dokumentation aktualisieren
   kann. Diese Methode verwendet die Ports-Sammlung und erlaubt es:

     * vorgefertigte Schnappschu:sse der Dokumentation herunter zu
       laden und zu installieren, ohne vorher irgendetwas lokal zu
       erstellen (dadurch ist es nicht mehr notwendig, den kompletten
       Werkzeugkasten der Dokumentation zu installieren).

     * die Dokumentationsquellen herunterzuladen und durch das
       Ports-System erstellen zu lassen (was die Schritte zum
       Auschecken und Erstellen etwas erleichtert).

   Diese beiden Methoden der Aktualisierung der FreeBSD-Dokumentation
   werden durch eine Menge von Dokumentations-Ports unterstu:tzt, die
   von Documentation Engineering Team <doceng@FreeBSD.org> monatlich
   aktualisiert wird. Diese sind in der Ports-Sammlung unter der
   virtuellen Kategorie, docs genannt, gelistet.

     --------------------------------------------------------------

    25.4.6.1. Erstellen und Installieren von Dokumentations-Ports

   Die Dokumentations-Ports nutzen das Ports-System, um das Erstellen
   von Dokumentation wesentlich einfacher zu machen. Es automatisiert
   den Prozess des Auscheckens der Dokumentationsquellen, aufrufen
   von make(1) mit den passenden Umgebungsvariablen und
   Kommandozeilenoptionen und macht die Installation und
   Deinstallation von Dokumentation so einfach wie die Installation
   von jedem anderen Port oder Paket.

     Anmerkung: Als zusa:tzliche Eigenschaft zeichnen sie eine
     Abha:ngigkeit zum Dokumentations-Werkzeugsatz auf, wenn die
     Dokumentations-Ports lokal erstellt werden, weshalb dieser auch
     automatisch mitinstalliert wird.

   Die Dokumentations-Ports sind wie folgt organisiert:

     * Es existiert ein "Master-Port", misc/freebsd-doc-en, in dem
       alle Dateien zu den Dokumentations-Ports abgelegt sind. Es
       dient als Basis fu:r alle Dokumentations-Ports. Als
       Voreinstellung wird nur die englische Dokumentation gebaut.

     * Es gibt einen "Alles-in-Einem-Port", misc/freebsd-doc-all,
       welcher die komplette Dokumentation in allen verfu:gbaren
       Sprachen erstellt und installiert.

     * Schliesslich gibt es noch einen sogenannten "slave port" f&"r
       jede U:bersetzung, z.B.: misc/freebsd-doc-hu fu:r
       Dokumentation in ungarischer Sprache. All diese beno:tigen den
       Master-Port und installieren die u:bersetzte Dokumentation in
       der entsprechenden Sprache.

   Um einen Dokumentations-Port aus den Quellen zu installieren,
   geben Sie das folgende Kommando (als root) ein:

 # cd /usr/ports/misc/freebsd-doc-en
 # make install clean

   Auf diese Weise wird die englische Dokumentation gebaut und als
   getrenntes HTML-Format im Verzeichnis /usr/local/share/doc/freebsd
   installiert (genau wie unter http://www.FreeBSD.org zu finden).

     --------------------------------------------------------------

      25.4.6.1.1. Gebra:uchliche Schalter und Optionen

   Es gibt viele Optionen, um das Standarderhalten der
   Dokumentations-Ports zu vera:ndern. Im Folgenden sind nur ein paar
   davon aufgefu:hrt:

   WITH_HTML

           Erlaubt das Erstellen im HTML-Format: eine einzige
           HTML-Datei pro Dokument. Die formatierte Dokumentation
           wird als Datei mit dem Namen article.html gespeichert,
           oder, je nachdem, als book.html, zuzuu:glich der Bilder.

   WITH_PDF

           Erlaubt das Erstellen von Adobe Portable Document Format,
           fu:r die Verwendung mit Adobe Acrobat Reader, Ghostscript
           oder anderen PDF-Betrachtern. Die formatierte
           Dokumentation wird als Datei mit dem Namen article.pdf
           oder, soweit angemessen, als book.pdf gespeichert.

   DOCBASE

           Wohin die Dokumentation installiert werden soll. Der
           Standardpfad ist /usr/local/share/doc/freebsd.

             Anmerkung: Beachten Sie, dass sich der Standardpfad von
             dem Verzeichnis unterscheidet, das von der CVSup-Methode
             verwendet wird. Das liegt daran, dass ein Port
             installiert wird und diese u:blicherweise im Verzeichnis
             /usr/local abgelegt werden. Durch setzen der
             PREFIX-Variablen kann dieses Verhalten gea:ndert werden.

   Es folgt ein kurzes Beispiel, wie die Variablen verwendet werden,
   um die oben erwa:hnte ungarische Dokumentation als Portable
   Document Format zu installieren:

 # cd /usr/ports/misc/freebsd-doc-hu
 # make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean

     --------------------------------------------------------------

    25.4.6.2. Verwendung von Dokumentations-Paketen

   Das Erstellen der Dokumentations-Ports aus den Quellen, wie im
   vorherigen Abschnitt beschrieben, beno:tigt die lokale
   Installation der Dokumentations-Werkzeugsammlung und ein wenig
   Festplattenspeicher fu:r das Bauen der Ports. Sollten die
   Ressourcen zum Bauen der Dokumentations-Werkzeugsammlung nicht zur
   Verfu:gung stehen, oder weil das erstellen zuviel Plattenplatz
   beno:tigen wu:rde, ist es trotzdem mo:glich, bereits zuvor gebaute
   Schnappschu:sse der Dokumentations-Ports zu installieren.

   Documentation Engineering Team <doceng@FreeBSD.org> erstellt
   monatliche Schnappschu:sse der Dokumentations-Pakete von FreeBSD.
   Diese Bina:rpakete ko:nnen mit jedem der mitgelieferten
   Paketwerkzeuge installiert werden, beispielsweise pkg_add(1),
   pkg_delete(1) und so weiter.

     Anmerkung: Wenn Bina:rpakete zu Einsatz kommen, wird die
     FreeBSD-Dokumentation in allen verfu:gbaren Formaten in der
     gegebenen Sprache installiert.

   Zum Beispiel installiert das folgende Kommando das aktuelle,
   vorgefertigte Paket der ungarischen Dokumentation:

 # pkg_add -r hu-freebsd-doc

     Anmerkung: Pakete haben das folgende Namensformat, welches sich
     von dem Namen des dazugeho:rigen Ports unterscheidet:
     lang-freebsd-doc. lang entspricht hier der Kurzform des
     Sprachcodes, z.B. hu fu:r Ungarisch, oder zh_cn fu:r
     vereinfachtes Chinesisch.

     --------------------------------------------------------------

    25.4.6.3. Dokumentations-Ports aktualisieren

   Um einen zuvor installierten Dokumentations-Port zu aktualisieren,
   kann jedes Werkzeug, das auch zum Aktualisieren von Ports
   verwendet wird, eingesetzt werden. Beispielsweise aktualisiert das
   folgende Kommando die installierte ungarische Dokumentation
   mittels des Programms ports-mgmt/portupgrade indem nur Pakete
   verwendet werden sollen:

 # portupgrade -PP hu-freebsd-doc

     --------------------------------------------------------------

25.5. Einem Entwicklungszweig folgen

   FreeBSD besitzt zwei Entwicklungszweige: FreeBSD-CURRENT und
   FreeBSD-STABLE. Dieser Abschnitt beschreibt beide Zweige und
   erla:utert, wie Sie Ihr System auf dem aktuellen Stand eines
   Zweiges halten. Zuerst wird FreeBSD-CURRENT vorgestellt, dann
   FreeBSD-STABLE.

     --------------------------------------------------------------

  25.5.1. FreeBSD-CURRENT

   Beachten Sie im Folgenden, dass FreeBSD-CURRENT die Spitze der
   Entwicklung von FreeBSD ist. Benutzer von FreeBSD-CURRENT sollten
   u:ber sehr gute technische Fa:higkeiten verfu:gen und in der Lage
   sein, schwierige Probleme alleine zu lo:sen. Wenn FreeBSD neu fu:r
   Sie ist, u:berlegen Sie sich genau, ob Sie FreeBSD-CURRENT
   benutzen wollen.

     --------------------------------------------------------------

    25.5.1.1. Was ist FreeBSD-CURRENT?

   FreeBSD-CURRENT besteht aus den neuesten Quellen des
   FreeBSD-Systems. Es entha:lt Sachen, an denen gerade gearbeitet
   wird, experimentelle A:nderungen und U:bergangsmechanismen, die im
   na:chsten offiziellen Release der Software enthalten sein ko:nnen
   oder nicht. Obwohl FreeBSD-CURRENT ta:glich von vielen Entwicklern
   gebaut wird, gibt es Zeitra:ume, in denen sich das System nicht
   bauen la:sst. Diese Probleme werden so schnell wie mo:glich
   gelo:st, aber ob Sie mit FreeBSD-CURRENT Schiffbruch erleiden oder
   die gewu:nschten Verbesserungen erhalten, kann von dem Zeitpunkt
   abha:ngen, an dem Sie sich den Quelltext besorgt haben!

     --------------------------------------------------------------

    25.5.1.2. Wer braucht FreeBSD-CURRENT?

   FreeBSD-CURRENT wird hauptsa:chlich fu:r 3 Interessengruppen zur
   Verfu:gung gestellt:

    1. Entwickler, die an einem Teil des Quellbaums arbeiten und
       daher u:ber die aktuellen Quellen verfu:gen mu:ssen.

    2. Tester, die bereit sind, Zeit in das Lo:sen von Problemen zu
       investieren und sicherstellen, dass FreeBSD-CURRENT so stabil
       wie mo:glich bleibt. Weiterhin Leute, die Vorschla:ge zu
       A:nderungen oder der generellen Entwicklung von FreeBSD machen
       und Patches bereitstellen, um diese Vorschla:ge zu
       realisieren.

    3. Fu:r Leute, die die Entwicklung im Auge behalten wollen, oder
       die Quellen zu Referenzzwecken (zum Beispiel darin lesen, aber
       nicht verwenden) benutzen wollen. Auch diese Gruppe macht
       Vorschla:ge oder steuert Quellcode bei.

     --------------------------------------------------------------

    25.5.1.3. Was FreeBSD-CURRENT nicht ist!

    1. Der schnellste Weg, neue Sachen vor dem offiziellen Release
       auszuprobieren. Bedenken Sie, dass der erste, der die neuen
       Sachen ausprobiert, auch der erste ist, der die neuen Fehler
       findet.

    2. Ein schneller Weg, um an Fehlerbehebungen (engl. bug fixes) zu
       kommen. Jede Version von FreeBSD-CURRENT fu:hrt mit gleicher
       Wahrscheinlichkeit neue Fehler ein, mit der sie alte behebt.

    3. In irgendeiner Form "offiziell unterstu:tzt". Wir tun unser
       Bestes, um Leuten aus den drei "legitimen" Benutzergruppen von
       FreeBSD-CURRENT zu helfen, aber wir haben einfach nicht die
       Zeit, technische Unterstu:tzung zu erbringen. Das kommt nicht
       daher, dass wir kleinliche, gemeine Leute sind, die anderen
       nicht helfen wollen (wenn wir das wa:ren, wu:rden wir FreeBSD
       nicht machen), wir ko:nnen einfach nicht jeden Tag Hunderte
       Nachrichten beantworten und an FreeBSD arbeiten! Vor die Wahl
       gestellt, FreeBSD zu verbessern oder jede Menge Fragen zu
       experimentellem Code zu beantworten, haben sich die Entwickler
       fu:r ersteres entschieden.

     --------------------------------------------------------------

    25.5.1.4. Benutzen von FreeBSD-CURRENT

    1. Es ist essentiell, die Mailinglisten freebsd-current und
       svn-src-head zu lesen. Wenn Sie freebsd-current nicht lesen,
       verpassen Sie die Kommentare anderer u:ber den momentanen
       Zustand des Systems und rennen demzufolge in viele bekannte
       Probleme, die schon gelo:st sind. Noch kritischer ist, dass
       Sie wichtige Bekanntmachungen verpassen, die erhebliche
       Auswirkungen auf die Stabilita:t Ihres Systems haben ko:nnen.

       In der svn-src-head Mailingliste sehen Sie zu jeder A:nderung
       das Commit-Log, das Informationen zu mo:glichen Seiteneffekten
       entha:lt.

       Um diese Listen zu abonnieren (oder zu lesen) besuchen Sie
       bitte die Seite http://lists.FreeBSD.org/mailman/listinfo.
       Weitere Informationen erhalten Sie, wenn Sie dort auf die
       gewu:nschte Liste klicken. Wenn Sie daran interessiert sind,
       die A:nderungen am gesamten Quellbaum mit zu verfolgen,
       schlagen wir vor, die Liste svn-src-all zu abonnieren.

    2. Beschaffen Sie sich die Quellen von einem FreeBSD-Spiegel. Sie
       haben dazu zwei Mo:glichkeiten:

         a. Benutzen Sie das Programm cvsup mit der Datei
            standard-supfile aus dem Verzeichnis
            /usr/share/examples/cvsup. Dies ist die empfohlene
            Methode, da Sie die ganzen Quellen nur einmal
            herunterladen und danach nur noch A:nderungen beziehen.
            Viele lassen cvsup aus cron heraus laufen, um ihre
            Quellen automatisch auf Stand zu bringen. Sie mu:ssen die
            obige Sup-Datei anpassen und cvsup in Ihrer Umgebung
            konfigurieren.

              Anmerkung: Die standard-supfile-Beispieldatei ist
              dafu:r vorgesehen, einen bestimmten Sicherheitszweig zu
              verfolgen und nicht FreeBSD-CURRENT. Sie mu:ssen diese
              Datei bearbeiten und die folgende Zeile:

 *default release=cvs tag=RELENG_X_Y

              durch diese ersetzen:

 *default release=cvs tag=.

              Lesen Sie den Abschnitt u:ber CVS Tags im Handbuch, um
              eine genaue Beschreibung von verwendbaren Tags zu
              erhalten.

         b. CTM kommt in Frage, wenn Sie u:ber eine schlechte
            Internet-Anbindung (hoher Preis oder nur E-Mail Zugriff)
            verfu:gen. Der Umgang mit CTM ist allerdings recht
            mu:hsam und Sie ko:nnen bescha:digte Dateien erhalten.
            Daher wird es selten benutzt, was wiederum dazu fu:hrt,
            dass es u:ber la:ngere Zeit nicht funktioniert. Wir
            empfehlen jedem mit einem 9600 bps oder schnellerem
            Modem, CVSup zu benutzen.

    3. Wenn Sie die Quellen einsetzen und nicht nur darin lesen
       wollen, besorgen Sie sich bitte die kompletten Quellen von
       FreeBSD-CURRENT und nicht nur ausgesuchte Teile. Der Grund
       hierfu:r ist, dass die verschiedenen Teile der Quellen
       voneinander abha:ngen. Es ist ziemlich sicher, dass Sie in
       Schwierigkeiten geraten, wenn Sie versuchen, nur einen Teil
       der Quellen zu u:bersetzen.

       Sehen Sie sich das Makefile in /usr/src genau an, bevor Sie
       FreeBSD-CURRENT u:bersetzen. Wenn Sie FreeBSD das erste Mal
       aktualisieren, sollten Sie sowohl einen Kernel als auch das
       System neu installieren. Lesen Sie bitte die Mailingliste
       FreeBSD-CURRENT und /usr/src/UPDATING, um u:ber A:nderungen im
       Installationsverfahren, die manchmal vor der Einfu:hrung eines
       neuen Releases notwendig sind, informiert zu sein.

    4. Seien Sie aktiv! Wenn Sie FreeBSD-CURRENT laufen lassen,
       wollen wir wissen, was Sie daru:ber denken, besonders wenn Sie
       Verbesserungsvorschla:ge oder Fehlerbehebungen haben.
       Verbesserungsvorschla:ge, die Code enthalten, werden u:brigens
       begeistert entgegengenommen.

     --------------------------------------------------------------

  25.5.2. FreeBSD-STABLE

    25.5.2.1. Was ist FreeBSD-STABLE?

   FreeBSD-STABLE ist der Entwicklungszweig, auf dem Releases
   erstellt werden. Dieser Zweig a:ndert sich langsamer als
   FreeBSD-CURRENT und alle A:nderungen hier sollten zuvor in
   FreeBSD-CURRENT ausgetestet sein. Beachten Sie, dass dies immer
   noch ein Entwicklungszweig ist und daher zu jedem Zeitpunkt die
   Quellen von FreeBSD-STABLE verwendbar sein ko:nnen oder nicht.
   FreeBSD-STABLE ist Teil des Entwicklungsprozesses und nicht fu:r
   Endanwender gedacht.

     --------------------------------------------------------------

    25.5.2.2. Wer braucht FreeBSD-STABLE?

   Wenn Sie den FreeBSD-Entwicklungsprozess, besonders im Hinblick
   auf das na:chste Release, verfolgen oder dazu beitragen wollen,
   sollten Sie erwa:gen, FreeBSD-STABLE zu benutzen.

   Auch wenn sicherheitsrelevante Fehlerbehebungen in den
   FreeBSD-STABLE Zweig einfliessen, mu:ssen Sie deswegen noch lange
   nicht FreeBSD-STABLE verfolgen. Jeder der FreeBSD
   Sicherheitshinweise beschreibt fu:r jedes betroffene Release, [15]
   wie sie einen sicherheitsrelevanten Fehler beheben. Wenn Sie den
   Entwicklungszweig aus Sicherheitsgru:nden verfolgen wollen,
   bedenken Sie, dass Sie neben Fehlerbehebungen auch eine Vielzahl
   unerwu:nschter A:nderungen erhalten werden.

   Obwohl wir versuchen sicherzustellen, dass der FreeBSD-STABLE
   Zweig sich jederzeit u:bersetzen la:sst und la:uft, ko:nnen wir
   dafu:r keine Garantie u:bernehmen. Auch wenn Neuentwicklungen in
   FreeBSD-CURRENT stattfinden, ist es jedoch so, dass mehr Leute
   FreeBSD-STABLE benutzen als FreeBSD-CURRENT und es daher
   unvermeidlich ist, dass Fehler und Grenzfa:lle erst in
   FreeBSD-STABLE auffallen.

   Aus diesen Gru:nden empfehlen wir Ihnen nicht, blindlings
   FreeBSD-STABLE zu benutzen. Es ist wichtig, dass Sie
   FreeBSD-STABLE zuerst sorgfa:ltig in einer Testumgebung austesten,
   bevor Sie Ihre Produktion auf FreeBSD-STABLE migrieren.

   Wenn Sie dies nicht leisten ko:nnen, empfehlen wir Ihnen, das
   aktuelle FreeBSD-Release zu verwenden. Benutzen Sie dann den
   bina:ren Update-Mechanismus, um auf neue Releases zu migrieren.

     --------------------------------------------------------------

    25.5.2.3. Benutzen von FreeBSD-STABLE

    1. Lesen Sie Mailingliste freebsd-stable, damit Sie u:ber
       Abha:ngigkeiten beim Bau von FreeBSD-STABLE und Sachen, die
       besondere Aufmerksamkeit erfordern, informiert sind.
       Umstrittene Fehlerbehebungen oder A:nderungen werden von den
       Entwicklern auf dieser Liste bekannt gegeben. Dies erlaubt es
       den Benutzern, Einwa:nde gegen die vorgeschlagenen A:nderungen
       vorzubringen.

       Abonnieren Sie die passende SVN-Liste fu:r den jeweiligen
       Branch, den Sie verfolgen. Wenn Sie beispielsweise den Zweig
       7-STABLE verfolgen, lesen Sie die svn-src-stable-7. Dort sehen
       Sie zu jeder A:nderung das Commit-Log, das Informationen zu
       mo:glichen Seiteneffekten entha:lt.

       Um diese Listen oder andere Listen zu abonnieren besuchen Sie
       bitte die Seite http://lists.FreeBSD.org/mailman/listinfo.
       Weitere Informationen erhalten Sie, wenn Sie dort auf die
       gewu:nschte Liste klicken. Wenn Sie daran interessiert sind,
       A:nderungen am gesamten Quellbaum zu verfolgen, dann empfehlen
       wir, dass Sie svn-src-all abonnieren.

    2. Wenn Sie ein neues System installieren und dazu einen der
       monatlich aus FreeBSD-STABLE erzeugten Snapshots verwenden
       wollen, sollten Sie zuerst die Snapshot Website auf aktuelle
       Informationen u:berpru:fen. Alternativ ko:nnen Sie auch das
       neueste FreeBSD-STABLE-Release von den Spiegeln beziehen und
       Ihr System nach den folgenden Anweisungen aktualisieren.

       Wenn Sie schon ein a:lteres Release von FreeBSD und das System
       mit dem Quellcode aktualisieren wollen, benutzen Sie einen der
       FreeBSD-Spiegel. Sie haben dazu zwei Mo:glichkeiten:

         a. Benutzen Sie das Programm cvsup mit der Datei
            stable-supfile aus dem Verzeichnis
            /usr/share/examples/cvsup. Dies ist die empfohlene
            Methode, da Sie die ganzen Quellen nur einmal
            herunterladen und danach nur noch A:nderungen beziehen.
            Viele lassen cvsup aus cron heraus laufen, um ihre
            Quellen automatisch auf Stand zu bringen. Sie mu:ssen das
            oben erwa:hnte supfile anpassen und cvsup konfigurieren.

         b. Benutzen Sie CTM. Wenn Sie u:ber keine schnelle und
            billige Internet-Anbindung verfu:gen, sollten Sie diese
            Methode in Betracht ziehen.

    3. Benutzen Sie cvsup oder ftp, wenn Sie schnellen Zugriff auf
       die Quellen brauchen und die Bandbreite keine Rolle spielt,
       andernfalls benutzen Sie CTM.

    4. Bevor Sie FreeBSD-STABLE u:bersetzen, sollten Sie sich das
       Makefile in /usr/src genau anschauen. Wenn Sie FreeBSD das
       erste Mal aktualisieren, sollten Sie sowohl einen Kernel als
       auch das System neu installieren. Lesen Sie bitte die
       Mailingliste FreeBSD-STABLE und /usr/src/UPDATING, um u:ber
       A:nderungen im Installationsverfahren, die manchmal vor der
       Einfu:hrung eines neuen Releases notwendig sind, informiert zu
       sein.

     --------------------------------------------------------------

25.6. Synchronisation der Quellen

   Sie ko:nnen eine Internet-Verbindung (oder E-Mail) dazu nutzen,
   Teile von FreeBSD, wie die Quellen zu einzelnen Projekten, oder
   das Gesamtsystem, aktuell zu halten. Dazu bieten wir die Dienste
   AnonymousCVS, CVSup und CTM an.

     Warnung: Obwohl es mo:glich ist, nur Teile des Quellbaums zu
     aktualisieren, ist die einzige unterstu:tze Migrationsprozedur,
     den kompletten Quellbaum zu aktualisieren und alles, das heisst
     das Userland (z.B. alle Programme in /bin und /sbin) und die
     Kernelquellen, neu zu u:bersetzen. Wenn Sie nur einen Teil der
     Quellen, zum Beispiel nur den Kernel oder nur die Programme aus
     dem Userland, aktualisieren, werden Sie oft Probleme haben, die
     von U:bersetzungsfehlern u:ber Kernel-Panics bis hin zu
     Bescha:digungen Ihrer Daten reichen ko:nnen.

   Anonymous CVS und CVSup benutzen die Pull-Methode [16], um die
   Quellen zu aktualisieren. Im Fall von CVSup ruft der Benutzer oder
   ein cron-Skript cvsup auf, das wiederum mit einem cvsupd Server
   interagiert, um Ihre Quellen zu aktualisieren. Mit beiden Methoden
   erhalten Sie aktuelle Updates zu einem genau von Ihnen bestimmten
   Zeitpunkt. Sie ko:nnen die Prozedur auf bestimmte Dateien oder
   Verzeichnisse einschra:nken, so dass Sie nur die Updates bekommen,
   die fu:r Sie von Interesse sind. Die Updates werden zur Laufzeit,
   abha:ngig von den Sachen, die Sie schon haben und den Sachen, die
   Sie haben wollen, auf dem Server generiert. Anonymous CVS ist eine
   Erweiterung von CVS, die es Ihnen erlaubt, A:nderungen direkt aus
   einem entfernten CVS-Repository zu ziehen. Anonymous CVS ist
   leichter zu handhaben als CVSup, doch ist letzteres sehr viel
   effizienter.

   Im Gegensatz dazu vergleicht CTM Ihre Quellen nicht mit denen auf
   einem Server. Stattdessen la:uft auf dem Server ein Skript, das
   A:nderungen an Dateien gegenu:ber seinem vorigen Lauf bemerkt, die
   A:nderungen komprimiert, mit einer Sequenznummer versieht und fu:r
   das Verschicken per E-Mail kodiert (es werden nur druckbare
   ASCII-Zeichen verwendet). Wenn Sie diese "CTM-Deltas" erhalten
   haben, ko:nnen Sie sie mit ctm_rmail(1) benutzen, welches die
   Deltas dekodiert, verifiziert und dann die A:nderungen an Ihren
   Quellen vornimmt. Dieses Verfahren ist viel effizienter als CVSup
   und erzeugt auch weniger Last auf unseren Servern, da es die
   Push-Methode [17] verwendet.

   Es gibt natu:rlich noch weitere Unterschiede, die Sie beachten
   sollten. Wenn Sie unabsichtlich Teile Ihres Archivs lo:schen, wird
   das von CVSup wie Anonymous CVS erkannt und repariert. Wenn sich
   fehlerhafte Dateien in Ihrem Quellbaum befinden, lo:schen Sie
   diese einfach und synchronisieren erneut. CTM leistet das nicht,
   wenn Sie Teile des Quellbaums gelo:scht haben und keine Sicherung
   besitzen, mu:ssen Sie von neuem, das heisst vom letzten
   "Basis-Delta", starten und die A:nderungen wieder mit CTM
   nachziehen.

     --------------------------------------------------------------

25.7. Das komplette Basissystem neu bauen

   Wenn Sie Ihren lokalen Quellbaum mit einer bestimmten FreeBSD
   Version (FreeBSD-STABLE, FreeBSD-CURRENT, usw.) synchronisiert
   haben, ko:nnen Sie diesen benutzen, um das System neu zu bauen.

     Erstellen Sie eine Sicherungskopie!: Es kann nicht oft genug
     betont werden, wie wichtig es ist, Ihr System zu sichern, bevor
     Sie die nachfolgenden Schritte ausfu:hren. Obwohl der Neubau des
     Systems eine einfache Aufgabe ist, wenn Sie sich an die folgende
     Anleitung halten, kann es dennoch vorkommen, dass Sie einen
     Fehler machen, oder dass Ihr System nicht mehr bootet, weil
     andere Entwickler Fehler in den Quellbaum eingefu:hrt haben.

     Stellen Sie sicher, dass Sie eine Sicherung erstellt haben und
     u:ber eine Fixit-Floppy oder eine startfa:hige CD verfu:gen.
     Wahrscheinlich werden Sie die Startmedien nicht beno:tigen, aber
     gehen Sie auf Nummer sicher!

     Abonnieren Sie die richtige Mailingliste: Die FreeBSD-STABLE und
     FreeBSD-CURRENT Zweige befinden sich in sta:ndiger Entwicklung.
     Die Leute, die zu FreeBSD beitragen, sind Menschen und ab und zu
     machen sie Fehler.

     Manchmal sind diese Fehler harmlos und lassen Ihr System eine
     Warnung ausgeben. Die Fehler ko:nnen allerdings auch
     katastrophal sein und dazu fu:hren, dass Sie Ihr System nicht
     mehr booten ko:nnen, Dateisysteme bescha:digt werden oder
     Schlimmeres passiert.

     Wenn solche Probleme auftauchen, wird ein "heads up" an die
     passende Mailingliste geschickt, welches das Problem erkla:rt
     und die betroffenen Systeme benennt. Eine "all clear" Meldung
     wird versendet, wenn das Problem gelo:st ist.

     Wenn Sie FreeBSD-STABLE oder FreeBSD-CURRENT benutzen und nicht
     die Mailinglisten FreeBSD-STABLE beziehungsweise FreeBSD-CURRENT
     lesen, bringen Sie sich nur unno:tig in Schwierigkeiten.

     Finger weg von make world: A:ltere Dokumentationen empfehlen,
     das Kommando make world fu:r den Neubau. Das Kommando
     u:berspringt wichtige Schritte. Setzen Sie es nur ein, wenn Sie
     wissen was Sie tun. In fast allen Fa:llen ist make world falsch,
     benutzen Sie stattdessen die nachstehende Anleitung.

     --------------------------------------------------------------

  25.7.1. Richtig aktualisieren

   Um Ihr System zu aktualisieren, sollten Sie zuerst
   /usr/src/UPDATING lesen, und eventuelle, fu:r Ihre
   Quellcodeversion no:tigen Aufgaben erledigen, bevor Sie das System
   bauen. Danach aktualisieren Sie Ihr System mit den folgenden
   Schritten.

   Bei den hier dargestellten Aktualisierungsschritten wird davon
   ausgegangen, dass Sie momentan eine alte FreeBSD-Version
   verwenden, die aus einem alten Compiler, Kernel, sowie einem alten
   Basissystem und veralteten Konfigurationsdateien besteht. Mit
   "Basissystem" sind hier die zentralen Bina:rdateien, Bibliotheken
   und Entwicklerdateien gemeint. Der Compiler ist Teil des
   "Basissystems", beinhaltet aber ein paar Besonderheiten.

   Es wird ausserdem davon ausgegangen, dass Sie bereits die Quellen
   fu:r ein neues System bezogen haben. Falls die Quellen in dem
   vorliegenden System zu alt sind, lesen Sie Abschnitt 25.6, um
   detaillierte Hilfe u:ber die Aktualisierung der Quellen zu
   erhalten.

   Die Aktualisierung des Systems aus den Quellen ist ein wenig
   ausgetu:ftelter als es zuna:chst den Anschein hat. Die Entwickler
   von FreeBSD haben es u:ber die Jahre fu:r No:tig befunden, den
   vorgeschlagenen Ablauf ziemlich stark zu vera:ndern, da neue Arten
   von unvermeidlichen Abha:ngigkeiten mit der Zeit ans Licht kamen.
   Der u:brige Teil dieses Abschnitts beschreibt die U:berlegungen
   hinter der aktuell empfohlenen Aktualisierungsreihenfolge.

   Jede erfolgreiche Aktualisierung muss sich mit den folgenden
   Sachverhalten auseinandersetzen:

     * Der alte Compiler ist mo:glicherweise nicht in der Lage, den
       neuen Kernel zu u:bersetzen (alte Compiler besitzen manchmal
       Fehler). Deshalb sollte der neue Kernel mit dem neuen Compiler
       u:bersetzt werden. Ganz besonders muss darauf geachtet werden,
       dass der neue Compiler vor dem neuen Kernel gebaut wird. Das
       bedeutet nicht unbedingt, dass der neue Compiler auch
       installiert werden muss, bevor der neue Kernel gebaut wird.

     * Das neue Basissystem beno:tigt eventuell neue Eigenschaften
       des Kernels. Also muss der neue Kernel installiert sein, bevor
       das neue Basissystem installiert wird.

   Diese ersten beiden Sachverhalte sind die Grundlage fu:r die
   zentrale Sequenz von buildworld, buildkernel, installkernel und
   installworld, die in den folgenden Abschnitten beschrieben wird.
   Dies ist keine vollsta:ndige Liste all der Gru:nde, warum Sie den
   aktuell empfohlenen Prozess der Aktualisierung bevorzugen sollten.
   Ein paar der weniger naheliegenden Gru:nde sind im folgenden
   aufgeza:hlt:

     * Das alte Basissystem wird mo:glicherweise nicht korrekt mit
       dem neuen Kernel funktionieren, weshalb Sie das neue
       Basissystem sofort nach der Installation des neuen Kernels
       installieren mu:ssen.

     * Manche A:nderungen an der Konfiguration mu:ssen erledigt
       worden sein, bevor das neue Basissystem installiert wird,
       jedoch ko:nnen andere die Funktionalita:t des alten
       Basissystems beeintra:chtigen. Aus diesem Grund sind zwei
       verschiedene Schritte notwendig, um eine Aktualisierung der
       Konfiguration durchzufu:hren.

     * Der Aktualisierungsprozess ersetzt zum Grossteil Dateien oder
       fu:gt neue hinzu, bestehende Dateien werden nicht gelo:scht.
       In wenigen Ausnahmefa:llen kann dies Probleme verursachen. Aus
       diesem Grund wird der Aktualisierungsprozess manchmal
       bestimmte Dateien zum manuellen Lo:schen vorschlagen. Dies
       wird eventuell in der Zukunft automatisch durchgefu:hrt.

   Diese Bedenken haben zu der folgenden Reihenfolge gefu:hrt.
   Beachten Sie, dass der genaue Ablauf fu:r bestimmte
   Aktualisierungen zusa:tzliche Schritte nach sich zieht, jedoch
   sollte der Kernprozess davon nicht beeintra:chtigt werden:

    1. make buildworld

       Dieser Schritt u:bersetzt zuerst den neuen Compiler und ein
       paar damit zusammenha:ngende Werkzeuge und verwendet dann den
       neuen Compiler, um den Rest des Basissystems zu erstellen. Das
       Ergebnis landet dann in /usr/obj.

    2. make buildkernel

       Statt dem alten Ansatz, config(8) und make(1) zu verwenden,
       nutzt dieser den neuen Compiler, der in /usr/obj abgelegt ist.
       Das schu:tzt Sie vor falschen Compiler-Kernel-Kombinationen.

    3. make installkernel

       Platziert den neuen Kernel und Kernelmodule auf der Platte,
       was es erlaubt, mit dem frisch aktualisierten Kernel zu
       starten.

    4. Starten Sie das System neu in den Single-User-Modus.

       Der Single-User-Modus minimiert Probleme mit der
       Aktualisierung von Programmen, die bereits gestartet sind.
       Ebenso minimiert es Probleme, die mit der Verwendung des alten
       Basissystems und des neuen Kernels zu tun haben ko:nnten.

    5. mergemaster -p

       Dieser Schritt aktualisiert ein paar initiale
       Konfigurationsdateien als Vorbereitung fu:r das neue
       Basissystem. Beispielsweise fu:gt es neue Benutzergruppen zum
       System oder neue Benutzernamen in die Passwortdatenbank hinzu.
       Dies wird oftmals beno:tigt, wenn neue Gruppen oder bestimmte
       Systembenutzerkonten seit der letzten Aktualisierung hinzu
       gekommen sind, so dass der installworld-Schritt in der Lage
       ist, auf dem neu installierten System die Benutzer oder
       Systemgruppennamen ohne Probleme zu verwenden.

    6. make installworld

       Kopiert das Basissystem aus /usr/obj. Sie haben jetzt den
       neuen Kernel und das neue Basissystem auf der Festplatte.

    7. mergemaster

       Sie ko:nnen nun die verbleibenden Konfigurationsdateien
       aktualisieren, da Sie nun das neue Basissystem auf der Platte
       haben.

    8. Starten Sie das System neu.

       Ein kompletter Systemneustart ist notwendig, um den neuen
       Kernel und das neue Basissystem mit den neuen
       Konfigurationsdateien zu laden.

   Beachten Sie, dass wenn Sie von einem Release des gleichen
   FreeBSD-Zweigs auf ein aktuelleres Release des gleichen Zweigs,
   z.B. von 7.0 auf 7.1, aktualisieren, dann ist diese Vorgehensweise
   nicht unbedingt notwendig, da Sie nur sehr unwahrscheinlich in
   ungu:nstige Kombinationen zwischen Compiler, Kernel, Basissystem
   und den Konfigurationsdateien geraten werden. Die a:ltere
   Vorgehensweise von make world, gefolgt von der Erstellung und
   Installation des neuen Kernels funktioniert mo:glicherweise gut
   genug, um kleinere Aktualisierungen vorzunehmen.

   Wenn Sie allerdings zwischen Hauptversionen aktualisieren wollen
   und befolgen diese Schritte nicht, sollten Sie sich auf Probleme
   gefasst machen.

   Es ist auch wichtig zu wissen, dass viele Aktualisierungen, z.B.
   von 4.X auf 5.0, viele spezielle und zusa:tzliche Schritte
   beno:tigt, wie beispielsweise das umbennen oder lo:schen von
   speziellen Dateien vor installworld. Lesen Sie die Datei
   /usr/src/UPDATING gru:ndlich, besonders am Ende, wo die aktuell
   vorgeschlagene Aktualisierungssequenz explizit aufgelistet ist.

   Diese Prozedur hat sich mit der Zeit weiterentwickelt, da die
   Entwickler es fu:r unmo:glich erachtet haben, bestimmte Arten von
   Kombinationsproblemen vollsta:ndig auszuschliessen. Hoffentlich
   wird die aktuelle Aktualisierungsprozedur fu:r lange Zeit stabil
   bleiben.

   Als Zusammenfassung ist hier nochmal die aktuell vorgeschlagene
   Vorgehensweise fu:r die Aktualisierung von FreeBSD aus den Quellen
   aufgelistet:

 # cd /usr/src
 # make buildworld
 # make buildkernel
 # make installkernel
 # shutdown -r now

     Anmerkung: Es gibt einige, sehr seltene Situationen, in denen
     Sie mergemaster -p zusa:tzlich ausfu:hren mu:ssen, bevor Sie das
     System mit buildworld bauen. Diese Situationen werden in
     UPDATING beschrieben. Solche Situationen treten aber in der
     Regel nur dann auf, wenn Sie Ihr FreeBSD-System um eine oder
     mehrere Hauptversionen aktualisieren.

   Nachdem installkernel erfolgreich abgeschlossen wurde, starten Sie
   das System im Single-User-Modus (etwa durch die Eingabe von boot
   -s am Loaderprompt). Danach fu:hren Sie die folgenden Anweisungen
   aus:

 # mount -u /
 # mount -a -t ufs
 # adjkerntz -i
 # mergemaster -p
 # cd /usr/src
 # mergemaster
 # reboot

     Lesen Sie bitte weiter: Die obige Vorschrift ist nur eine
     Geda:chtnisstu:tze. Um die einzelnen Schritte zu verstehen,
     lesen Sie bitte die folgenden Abschnitte, insbesondere wenn Sie
     einen angepassten Kernel erstellen.

     --------------------------------------------------------------

  25.7.2. Lesen Sie /usr/src/UPDATING

   Bevor Sie etwas anderes tun, lesen Sie bitte /usr/src/UPDATING
   (oder die entsprechende Datei, wenn Sie den Quellcode woanders
   installiert haben). Die Datei entha:lt wichtige Informationen zu
   Problemen, auf die Sie stossen ko:nnten oder gibt die Reihenfolge
   vor, in der Sie bestimmte Kommandos laufen lassen mu:ssen. Die
   Anweisungen in UPDATING sind aktueller als die in diesem Handbuch.
   Im Zweifelsfall folgen Sie bitte den Anweisungen aus UPDATING.

     Wichtig: Das Lesen von UPDATING ersetzt nicht das Abonnieren der
     richtigen Mailingliste. Die beiden Voraussetzungen erga:nzen
     sich, es reicht nicht aus, nur eine zu erfu:llen.

     --------------------------------------------------------------

  25.7.3. U:berpru:fen Sie /etc/make.conf

   U:berpru:fen Sie die Dateien /usr/share/examples/etc/make.conf und
   /etc/make.conf. Die erste entha:lt Vorgabewerte, von denen die
   meisten auskommentiert sind. Um diese wa:hrend des Neubaus des
   Systems zu nutzen, tragen Sie die Werte in /etc/make.conf ein.
   Beachten Sie, dass alles, was Sie in /etc/make.conf eintragen, bei
   jedem Aufruf von make angezogen wird. Es ist also klug, hier etwas
   Sinnvolles einzutragen.

   Typischerweise wollen Sie die Zeilen, die CFLAGS und NO_PROFILE
   enthalten, aus /usr/share/examples/etc/make.conf nach
   /etc/make.conf u:bertragen und dort aktivieren.

   Sehen Sie sich auch die anderen Definitionen, wie COPTFLAGS oder
   NOPORTDOCS an und entscheiden Sie, ob Sie diese aktivieren wollen.

     --------------------------------------------------------------

  25.7.4. Aktualisieren Sie die Dateien in /etc

   Das Verzeichnis /etc entha:lt den Grossteil der
   Konfigurationsdateien des Systems und Skripten, die beim Start des
   Systems ausgefu:hrt werden. Einige dieser Skripten a:ndern sich
   bei einer Migration auf eine neue FreeBSD-Version.

   Einige der Konfigurationsdateien, besonders /etc/group, werden
   fu:r den Normalbetrieb des Systems gebraucht.

   Es gab Fa:lle, in denen das Kommando make installworld auf
   bestimmte Accounts oder Gruppen angewiesen war, die aber wa:hrend
   der Aktualisierung fehlten. Demzufolge kam es zu Problemen bei der
   Aktualisierung. In einigen Fa:llen pru:ft make buildworld ob die
   Accounts oder Gruppen vorhanden sind.

   Ein Beispiel dafu:r trat beim Anlegen des Benutzers smmsp auf. Die
   Installationsprozedur schlug an der Stelle fehl, an der mtree(8)
   versuchte, /var/spool/clientmqueue anzulegen.

   Um dieses Problem zu umgehen,rufen Sie mergemaster(8)
   pra:-buildworld-Modus auf, der mit -p aktiviert wird. In diesem
   Modus werden nur Dateien verglichen, die fu:r den Erfolg von
   buildworld oder installworld essentiell sind.

     Tipp: Wenn Sie besonders paranoid sind, sollten Sie Ihr System
     nach Dateien absuchen, die der Gruppe, die Sie umbenennen oder
     lo:schen, geho:ren:

 # find / -group GID -print

     Das obige Kommando zeigt alle Dateien an, die der Gruppe GID
     (dies kann entweder ein Gruppenname oder eine numerische ID
     sein) geho:ren.

     --------------------------------------------------------------

  25.7.5. Wechseln Sie in den Single-User-Modus

   Sie ko:nnen das System im Single-User-Modus u:bersetzen. Abgesehen
   davon, dass dies etwas schneller ist, werden bei der Installation
   des Systems viele wichtige Dateien, wie die
   Standard-Systemprogramme, die Bibliotheken und Include-Dateien,
   vera:ndert. Sie bringen sich in Schwierigkeiten, wenn Sie diese
   Dateien auf einem laufenden System vera:ndern, besonders dann,
   wenn zu dieser Zeit Benutzer auf dem System aktiv sind.

   Eine andere Methode u:bersetzt das System im Mehrbenutzermodus und
   wechselt fu:r die Installation in den Single-User-Modus. Wenn Sie
   diese Methode benutzen wollen, warten Sie mit den folgenden
   Schritten, bis der Bau des Systems fertig ist und Sie mit
   installkernel oder installworld installieren wollen.

   Als Superuser ko:nnen Sie mit dem folgenden Kommando ein laufendes
   System in den Single-User-Modus bringen:

 # shutdown now

   Alternativ ko:nnen Sie das System mit der Option "single user" in
   den Single-User-Modus booten. Danach geben Sie die folgenden
   Befehle ein:

 # fsck -p
 # mount -u /
 # mount -a -t ufs
 # swapon -a

   Die Kommandos u:berpru:fen die Dateisysteme, ha:ngen / wieder
   beschreibbar ein, ha:ngen dann alle anderen UFS Dateisysteme aus
   /etc/fstab ein und aktivieren den Swap-Bereich.

     Anmerkung: Zeigt Ihre CMOS-Uhr die lokale Zeit und nicht GMT an,
     dies erkennen Sie daran, dass date(1) die falsche Zeit und eine
     falsche Zeitzone anzeigt, setzen Sie das folgende Kommando ab:

 # adjkerntz -i

     Dies stellt sicher, dass Ihre Zeitzone richtig eingestellt ist.
     Ohne dieses Kommando werden Sie vielleicht spa:ter Probleme
     bekommen.

     --------------------------------------------------------------

  25.7.6. Entfernen Sie /usr/obj

   Die neu gebauten Teile des Systems werden in der Voreinstellung
   unter /usr/obj gespeichert. Die Verzeichnisse dort spiegeln die
   Struktur unter /usr/src.

   Sie ko:nnen den make buildworld Prozess beschleunigen, indem Sie
   dieses Verzeichnis entfernen. Dies erspart Ihnen zudem einigen
   A:rger aufgrund von Abha:ngigkeiten.

   Einige Dateien unter /usr/obj sind vielleicht durch die
   immutable-Option (siehe chflags(1)) schreibgeschu:tzt, die vor dem
   Lo:schen entfernt werden muss.

 # cd /usr/obj
 # chflags -R noschg *
 # rm -rf *

     --------------------------------------------------------------

  25.7.7. U:bersetzen der Quellen des Basissystems

    25.7.7.1. Sichern der Ausgaben

   Fu:r den Fall, dass etwas schief geht, sollten Sie die Ausgaben
   von make(1) in einer Datei sichern, damit Sie eine Kopie der
   Fehlermeldung besitzen. Das mag Ihnen nicht helfen, den Fehler zu
   finden, kann aber anderen helfen, wenn Sie Ihr Problem in einer
   der FreeBSD-Mailinglisten schildern.

   Dazu ko:nnen Sie einfach das Kommando script(1) benutzen, dem Sie
   beim Aufruf als Parameter den Dateinamen fu:r die Ausgaben
   mitgeben. Setzen Sie das Kommando unmittelbar vor dem Neubau ab
   und geben Sie exit ein, wenn der Bau abgeschlossen ist:

 # script /var/tmp/mw.out
 Script started, output file is /var/tmp/mw.out
 # make TARGET
 ... Ausgaben des Kommandos ...
 # exit
 Script done, ...

   Sichern Sie die Ausgaben nicht in /tmp, da dieses Verzeichnis beim
   na:chsten Boot aufgera:umt werden kann. Ein geeigneteres
   Verzeichnis ist /var/tmp, wie im vorigen Beispiel gezeigt, oder
   das Heimatverzeichnis von root.

     --------------------------------------------------------------

    25.7.7.2. U:bersetzen des Basissystems

   Wechseln Sie in das Verzeichnis, in dem die Quellen liegen (in der
   Voreinstellung ist das /usr/src):

 # cd /usr/src

   Zum Neubau der Welt benutzen Sie make(1). Dieses Kommando liest
   ein Makefile, das Anweisungen entha:lt, wie die Programme, aus
   denen FreeBSD besteht, zu bauen sind und in welcher Reihenfolge
   diese zu bauen sind.

   Ein typischer Aufruf von make sieht wie folgt aus:

 # make -x -DVARIABLE target

   In diesem Beispiel ist -x eine Option, die Sie an make(1)
   weitergeben wollen. Eine Liste gu:ltiger Optionen finden Sie in
   der make(1) Manualpage.

   Das Verhalten eines Makefiles wird von Variablen bestimmt. Mit
   -DVARIABLE setzen Sie eine Variable. Diese Variablen sind
   dieselben, die auch in /etc/make.conf gesetzt werden, dies ist nur
   ein alternativer Weg, Variablen zu setzen.

   Um zu verhindern, dass die "profiled" Bibliotheken gebaut werden,
   rufen Sie make wie folgt auf:

 # make -DNO_PROFILE target

   Dieser Aufruf entspricht dem folgenden Eintrag in /etc/make.conf:

 NO_PROFILE=    true     #    Avoid compiling profiled libraries

   Jedes Makefile definiert einige "Ziele", die festlegen, was genau
   zu tun ist. Mit target wa:hlen Sie eins dieser Ziele aus.

   Einige Ziele im Makefile sind nicht fu:r den Endanwender gedacht,
   sondern unterteilen den Bauprozess in eine Reihe von
   Einzelschritten.

   Im Regelfall mu:ssen Sie make(1) keine Parameter mitgeben, so dass
   Ihre Kommandozeile wie folgt aussehen wird:

 # make target

   target steht dabei fu:r die verschiedenen Ziele. Das erste Ziel
   sollte immer buildworld sein.

   Mit buildworld wird ein kompletter Baum unterhalb von /usr/obj
   gebaut, der mit installworld, einem weiteren Ziel, auf dem System
   installiert werden kann.

   U:ber separate Optionen zu verfu:gen, ist aus mehreren Gru:nden
   nu:tzlich. Erstens ko:nnen Sie das System auf einem laufenden
   System bauen, da die Bauprozedur abgekapselt vom Rest des Systems
   ist. Das System la:sst sich im Mehrbenutzermodus ohne negative
   Seiteneffekte bauen. Die Installation mit installworld sollte aber
   immer noch im Single-User-Modus erfolgen.

   Zweitens ko:nnen Sie NFS benutzen, um mehrere Maschinen in Ihrem
   Netzwerk zu aktualisieren. Wenn Sie die Maschinen A, B und C
   aktualisieren wollen, lassen sie make buildworld und make
   installworld auf A laufen. Auf den Maschinen B und C ko:nnen Sie
   die Verzeichnisse /usr/src und /usr/obj von A einha:ngen und
   brauchen dort nur noch make installworld auszufu:hren, um die
   Bauresultate zu installieren.

   Obwohl das Ziel world noch existiert, sollten Sie es wirklich
   nicht mehr benutzen.

   Um das System zu bauen, setzen Sie das folgende Kommando ab:

 # make buildworld

   Mit -j ko:nnen Sie make anweisen, mehrere Prozesse zu starten.
   Besonders effektiv ist das auf Mehrprozessor-Systemen. Da aber der
   U:bersetzungsprozess hauptsa:chlich von IO statt der CPU bestimmt
   wird, ist diese Option auch auf Einprozessor-Systemen nu:tzlich.

   Auf einem typischen Einprozessor-System ko:nnen Sie den folgenden
   Befehl absetzen:

 # make -j4 buildworld

   make(1) wird dann bis zu vier Prozesse gleichzeitig laufen lassen.
   Erfahrungsberichte aus den Mailinglisten zeigen, dass dieser
   Aufruf typischerweise den besten Geschwindigkeitsgewinn bringt.

   Wenn Sie ein Mehrprozessor-System besitzen und SMP in Ihrem Kernel
   konfiguriert ist, probieren Sie Werte zwischen 6 und 10 aus.

     --------------------------------------------------------------

    25.7.7.3. Laufzeiten

   Die Laufzeit eines Baus wird von vielen Faktoren beeinflusst, ein
   aktuelles System beno:tigt aber etwa zwei Stunden um
   FreeBSD-STABLE zu bauen. Der Bau von FreeBSD-CURRENT dauert etwas
   la:nger.

     --------------------------------------------------------------

  25.7.8. U:bersetzen und Installation des Kernels

   Um das Beste aus Ihrem System zu holen, sollten Sie einen neuen
   Kernel kompilieren. Praktisch gesehen ist das sogar notwendig, da
   sich einige Datenstrukturen gea:ndert haben und Programme wie
   ps(1) oder top(1) nur mit einem Kernel zusammen arbeiten, der auch
   zu dem entsprechenden Quellcode passt.

   Am einfachsten und sichersten bauen Sie dazu den GENERIC Kernel.
   Obwohl der GENERIC Kernel vielleicht nicht alle Ihre Gera:te
   unterstu:tzt, sollte er alles enthalten, um das System in den
   Single-User-Modus zu booten. Dies ist auch ein guter Test, um zu
   sehen, dass das System ordnungsgema:ss funktioniert. Nachdem Sie
   mit GENERIC gebootet und sichergestellt haben, dass Ihr System
   funktioniert, ko:nnen Sie einen neuen Kernel mit Ihrer
   Konfigurationsdatei bauen.

   In aktuellen FreeBSD-Versionen mu:ssen Sie das Basissystem neu
   bauen, bevor Sie einen neuen Kernel erstellen.

     Anmerkung: Wenn Sie einen angepassten Kernel erstellen wollen
     und bereits u:ber eine Konfigurationsdatei verfu:gen, geben Sie
     diese, wie im folgenden Beispiel gezeigt, auf der Kommandozeile
     an:

 # cd /usr/src
 # make buildkernel KERNCONF=MYKERNEL
 # make installkernel KERNCONF=MYKERNEL

   Wenn kern.securelevel einen Wert gro:sser als 1 besitzt und der
   Kernel mit noschg oder a:hnlichen Optionen geschu:tzt ist, mu:ssen
   Sie installkernel im Einbenutzermodus ausfu:hren. Wenn das nicht
   der Fall ist, sollten die beiden Kommandos problemlos im
   Mehrbenutzermodus laufen. Weitere Informationen u:ber
   kern.securelevel finden Sie in init(8) und chflags(1) erla:utert
   Optionen, die Sie auf Dateien setzen ko:nnen.

     --------------------------------------------------------------

  25.7.9. Booten Sie in den Single-User-Modus

   Um zu pru:fen, ob der neue Kernel funktioniert, sollten Sie in den
   Single-User-Modus booten. Folgen Sie dazu der Anleitung aus
   Abschnitt 25.7.5.

     --------------------------------------------------------------

  25.7.10. Installation des Systems

   Nun ko:nnen Sie das neue System mit installworld installieren.
   Rufen Sie dazu das folgende Kommando auf:

 # cd /usr/src
 # make installworld

     Anmerkung: Wenn Sie mit dem make buildworld Kommando Variablen
     verwendet haben, mu:ssen Sie dieselben Variablen auch bei dem
     make installworld Kommando angeben. Auf die anderen Optionen
     trifft das nur bedingt zu: -j darf mit installworld nicht
     benutzt werden.

     Sie haben zum Bauen die folgende Kommandozeile verwendet:

 # make -DNO_PROFILE buildworld

     Bei der Installation setzen Sie dann das folgende Kommando ab:

 # make -DNO_PROFILE installworld

     Wu:rden Sie die Variable bei der Installation weglassen, so
     wu:rde das System versuchen, die "profiled" Bibliotheken, die
     aber gar nicht gebaut wurden, zu installieren.

     --------------------------------------------------------------

  25.7.11. Aktualisieren der von make installworld ausgelassenen Dateien

   Neue oder gea:nderte Konfigurationsdateien aus einigen
   Verzeichnissen, besonders /etc, /var und /usr werden bei der
   Installationsprozedur nicht beru:cksichtigt.

   Sie ko:nnen diese Dateien mit mergemaster(8) aktualisieren.
   Alternativ ko:nnen Sie das auch manuell durchfu:hren, obwohl wir
   diesen Weg nicht empfehlen. Egal welchen Weg Sie beschreiten,
   sichern Sie vorher den Inhalt von /etc fu:r den Fall, dass etwas
   schief geht.

     --------------------------------------------------------------

    25.7.11.1. mergemaster

   Beigetragen von Tom Rhodes.

   Das Bourne-Shell Skript mergemaster(8) hilft Ihnen dabei, die
   Unterschiede zwischen den Konfigurationsdateien in /etc und denen
   im Quellbaum unter /usr/src/etc zu finden. mergemaster ist der
   empfohlene Weg, Ihre Systemkonfiguration mit dem Quellbaum
   abzugleichen.

   Rufen Sie mergemaster einfach auf und schauen Sie zu. Ausgehend
   von / wird mergemaster einen virtuellen Root-Baum aufbauen und
   darin die neuen Konfigurationsdateien ablegen. Diese Dateien
   werden dann mit den auf Ihrem System installierten verglichen.
   Unterschiede zwischen den Dateien werden im diff(1)-Format
   dargestellt. Neue oder gea:nderte Zeilen werden mit +
   gekennzeichnet. Zeilen die gelo:scht oder ersetzt werden, sind mit
   einem - gekennzeichnet. Das Anzeigeformat wird in diff(1) genauer
   erkla:rt.

   mergemaster(8) zeigt Ihnen jede gea:nderte Datei an und Sie haben
   die Wahl, die neue Datei (in mergemaster wird sie tempora:re Datei
   genannt) zu lo:schen, sie unvera:ndert zu installieren, den Inhalt
   der neuen Datei mit dem Inhalt der alten Datei abzugleichen, oder
   die diff(1) Ausgabe noch einmal zu sehen. Sie ko:nnen die aktuelle
   Datei auch u:berspringen, sie wird dann noch einmal angezeigt,
   nachdem alle anderen Dateien abgearbeitet wurden. Sie erhalten
   Hilfe, wenn Sie bei der Eingabeaufforderung von mergemaster ein ?
   eingeben.

   Wenn Sie die tempora:re Datei lo:schen, geht mergemaster davon
   aus, dass Sie Ihre aktuelle Datei behalten mo:chten. Wa:hlen Sie
   die Option bitte nur dann, wenn Sie keinen Grund sehen, die
   aktuelle Datei zu a:ndern.

   Wenn Sie die tempora:re Datei installieren, wird Ihre aktuelle
   Datei mit der neuen Datei u:berschrieben. Sie sollten alle
   unvera:nderten Konfigurationsdateien auf diese Weise
   aktualisieren.

   Wenn Sie sich entschliessen den Inhalt beider Dateien
   abzugleichen, wird ein Texteditor aufgerufen, indem Sie beide
   Dateien nebeneinander betrachten ko:nnen. Mit der Taste l
   u:bernehmen Sie die aktuelle Zeile der links dargestellten Datei,
   mit der Taste r u:bernehmen Sie die Zeile der rechts dargestellten
   Datei. Das Ergebnis ist eine Datei, die aus Teilen der beiden
   urspru:nglichen Dateien besteht und installiert werden kann.
   Dieses Verfahren wird gewo:hnlich bei vera:nderten Dateien
   genutzt.

   Haben Sie sich entschieden die Differenzen noch einmal anzuzeigen,
   zeigt Ihnen mergemaster(8) dieselbe Ausgabe, die Sie gesehen
   haben, bevor die Eingabeaufforderung ausgegeben wurde.

   Wenn mergemaster(8) alle Systemdateien abgearbeitet hat, werden
   weitere Optionen abgefragt. Sie werden unter Umsta:nden gefragt,
   ob Sie die Passwort-Datei neu bauen lassen wollen. Am Ende haben
   Sie die Mo:glichkeit, den Rest der tempora:ren Dateien zu
   lo:schen.

     --------------------------------------------------------------

    25.7.11.2. Manueller Abgleich der Konfigurationsdateien

   Wenn Sie den Abgleich lieber selbst ausfu:hren wollen, beachten
   Sie bitte, dass Sie nicht einfach die Dateien aus /usr/src/etc
   nach /etc kopieren ko:nnen. Einige dieser Dateien mu:ssen zuerst
   installiert werden, bevor sie benutzt werden ko:nnen. Das liegt
   daran, dass /usr/src/etc keine exakte Kopie von /etc ist. Zudem
   gibt es Dateien, die sich in /etc befinden aber nicht in
   /usr/src/etc.

   Wenn Sie, wie empfohlen, mergemaster benutzen, ko:nnen Sie direkt
   in den na:chsten Abschnitt wechseln.

   Am einfachsten ist es, wenn Sie die neuen Dateien in ein
   tempora:res Verzeichnis installieren und sie nacheinander auf
   Differenzen zu den bestehenden Dateien durchsehen.

     Sichern Sie die Inhalte von /etc: Obwohl bei dieser Prozedur
     keine Dateien in /etc automatisch vera:ndert werden, sollten Sie
     dessen Inhalt an einen sicheren Ort kopieren:

 # cp -Rp /etc /etc.old

     Mit -R wird rekursiv kopiert und -p erha:lt die Attribute der
     kopierten Dateien, wie Zugriffszeiten und Eigentu:mer.

   Sie mu:ssen die neuen Dateien in einem tempora:ren Verzeichnis
   installieren. /var/tmp/root ist eine gute Wahl fu:r das tempora:re
   Verzeichnis, in dem auch noch einige Unterverzeichnisse angelegt
   werden mu:ssen.

 # mkdir /var/tmp/root
 # cd /usr/src/etc
 # make DESTDIR=/var/tmp/root distrib-dirs distribution

   Die obigen Kommandos bauen die no:tige Verzeichnisstruktur auf und
   installieren die neuen Dateien in diese Struktur. Unterhalb von
   /var/tmp/root wurden einige leere Verzeichnisse angelegt, die Sie
   am besten wie folgt entfernen:

 # cd /var/tmp/root
 # find -d . -type d | xargs rmdir 2>/dev/null

   Im obigen Beispiel wurde die Fehlerausgabe nach /dev/null
   umgeleitet, um die Warnungen u:ber nicht leere Verzeichnisse zu
   unterdru:cken.

   /var/tmp/root entha:lt nun alle Dateien, die unterhalb von /
   installiert werden mu:ssen. Sie mu:ssen nun jede dieser Dateien
   mit den schon existierenden Dateien vergleichen.

   Einige der installierten Dateien unter /var/tmp/root beginnen mit
   einem ".". Als dieses Kapitel verfasst wurde, waren das nur die
   Startdateien fu:r die Shells in /var/tmp/root/ und
   /var/tmp/root/root/. Abha:ngig davon, wann Sie dieses Handbuch
   lesen, ko:nnen mehr Dateien dieser Art existieren. Verwenden Sie
   ls -a um sicherzustellen, dass Sie alle derartigen Dateien finden.

   Benutzen Sie diff(1) um Unterschiede zwischen zwei Dateien
   festzustellen:

 # diff /etc/shells /var/tmp/root/etc/shells

   Das obige Kommando zeigt Ihnen die Unterschiede zwischen der
   installierten Version von /etc/shells und der neuen Version in
   /var/tmp/root/etc/shells. Entscheiden Sie anhand der Unterschiede,
   ob Sie beide Dateien abgleichen oder die neue Version u:ber die
   alte kopieren wollen.

     Versehen Sie das tempora:re Verzeichnis mit einem Zeitstempel:
     Wenn Sie das System oft neu bauen, mu:ssen Sie /etc genauso oft
     aktualisieren. Dies kann mit der Zeit sehr la:stig werden.

     Sie ko:nnen das Verfahren beschleunigen, wenn Sie sich eine
     Kopie der Dateien behalten, die Sie zuletzt nach /etc
     installiert haben. Das folgende Verfahren zeigt Ihnen, wie das
     geht.

      1. Folgen Sie der normalen Prozedur um das System zu bauen.
         Wenn Sie /etc und die anderen Verzeichnisse aktualisieren
         wollen, geben Sie dem tempora:ren Verzeichnis einen Namen,
         der das aktuelle Datum entha:lt. Wenn Sie dies zum Beispiel
         am 14. Februar 1998 durchfu:hrten, ha:tten Sie die folgenden
         Kommandos abgesetzt:

 # mkdir /var/tmp/root-19980214
 # cd /usr/src/etc
 # make DESTDIR=/var/tmp/root-19980214 \
     distrib-dirs distribution

      2. Gleichen Sie die A:nderungen entsprechend der Anleitung von
         oben ab.

         Wenn Sie fertig sind, entfernen Sie das Verzeichnis
         /var/tmp/root-19980214 nicht.

      3. Wenn Sie nun neue Quellen heruntergeladen und gebaut haben,
         folgen Sie bitte Schritt 1. Wenn Sie zwischen den Updates
         eine Woche gewartet haben, haben Sie nun ein Verzeichnis mit
         dem Namen /var/tmp/root-19980221.

      4. Sie ko:nnen nun die Unterschiede, die sich in einer Woche
         ergeben haben, sehen, indem Sie diff(1) rekursiv anwenden:

 # cd /var/tmp
 # diff -r root-19980214 root-19980221

         U:blicherweise sind die Differenzen, die Sie jetzt sehen,
         kleiner als die Differenzen zwischen
         /var/tmp/root-19980221/etc und /etc. Da die angezeigten
         Differenzen kleiner sind, ist es jetzt einfacher den
         Abgleich der Dateien durchzufu:hren.

      5. Sie ko:nnen nun das a:lteste der beiden /var/tmp/root-*
         Verzeichnisse entfernen:

 # rm -rf /var/tmp/root-19980214

      6. Wiederholen Sie diesen Prozess jedes Mal wenn Sie Dateien in
         /etc abgleichen mu:ssen.

     Mit date(1) ko:nnen Sie den Verzeichnisnamen automatisch
     erzeugen:

 # mkdir /var/tmp/root-`date "+%Y%m%d"`

     --------------------------------------------------------------

  25.7.12. Das System neu starten

   Sie sind nun am Ende der Prozedur angelangt. Nachdem Sie sich
   davon u:berzeugt haben, dass Ihr System funktioniert, starten Sie
   Ihr System mit shutdown(8) neu:

 # shutdown -r now

     --------------------------------------------------------------

  25.7.13. Ende

   Herzlichen Glu:ckwunsch! Sie haben gerade erfolgreich Ihr FreeBSD
   System aktualisiert.

   Es ist u:brigens leicht einen Teil des Systems wiederherzustellen,
   fu:r den Fall, dass Ihnen ein kleiner Fehler unterlaufen ist. Wenn
   Sie beispielsweise wa:hrend des Updates oder Abgleichs /etc/magic
   aus Versehen gelo:scht haben, wird file(1) nicht mehr
   funktionieren. In diesem Fall ko:nnen Sie das Problem mit dem
   folgenden Kommando beheben:

 # cd /usr/src/usr.bin/file
 # make all install

     --------------------------------------------------------------

  25.7.14. Fragen

   25.7.14.1. Muss ich wirklich immer alles neu bauen, wenn sich
   etwas gea:ndert hat?

   25.7.14.2. Der Bau bricht mit vielen "Signal 11"-Fehlern (oder
   anderen Signalnummern) ab. Was ist da passiert?

   25.7.14.3. Kann ich /usr/obj lo:schen, wenn ich fertig bin?

   25.7.14.4. Kann ein abgebrochener Bau weitergefu:hrt werden?

   25.7.14.5. Wie kann ich den Bauprozess beschleunigen?

   25.7.14.6. Was mache ich, wenn etwas nicht funktioniert?

   25.7.14.1. Muss ich wirklich immer alles neu bauen, wenn sich
   etwas gea:ndert hat?

   Darauf gibt es keine einfache Antwort. Was zu tun ist, ha:ngt von
   den A:nderungen ab. Es lohnt wahrscheinlich nicht, alles neu zu
   bauen, wenn sich bei einem CVSup-Lauf nur die folgenden Dateien
   gea:ndert haben:

 src/games/cribbage/instr.c
 src/games/sail/pl_main.c
 src/release/sysinstall/config.c
 src/release/sysinstall/media.c
 src/share/mk/bsd.port.mk

   In diesem Fall ko:nnen Sie in die entsprechenden
   Unterverzeichnisse wechseln und dort make all install ausfu:hren.
   Wenn sich allerdings etwas Wichtiges, wie src/lib/libc/stdlib,
   gea:ndert hat, sollten Sie die Welt oder mindestens die statisch
   gelinkten Teile des Systems (sowie Ihre statisch gelinkten
   Erga:nzungen) neu bauen.

   Letztendlich ist das Ihre Entscheidung. Sie sind vielleicht damit
   zufrieden, das System alle zwei Wochen neu zu bauen und in der
   Zwischenzeit die anfallenden A:nderungen zu sammeln. Wenn Sie sich
   zutrauen, alle Abha:ngigkeiten zu erkennen, bauen Sie vielleicht
   auch nur die gea:nderten Sachen neu.

   Das ha:ngt natu:rlich auch noch davon ab, wie oft Sie ein Update
   durchfu:hren wollen und ob Sie FreeBSD-STABLE oder FreeBSD-CURRENT
   benutzen.

   25.7.14.2. Der Bau bricht mit vielen "Signal 11"-Fehlern (oder
   anderen Signalnummern) ab. Was ist da passiert?

   Normalerweise zeigen diese Meldungen Hardwarefehler an. Ein Neubau
   der Welt ist ein guter Belastungstest fu:r Ihre Hardware und zeigt
   oft Probleme mit dem Speicher auf. Dies a:ussert sich darin, dass
   der Compiler mit dem Erhalt von seltsamen Signalen abbricht.

   Es liegt garantiert ein Hardwarefehler vor, wenn ein neuer
   U:bersetzungslauf an einer anderen Stelle abbricht.

   In diesem Fall ko:nnen Sie nur einzelne Komponenten Ihres Systems
   tauschen, um zu bestimmen, welche Komponente den Fehler
   verursacht.

   25.7.14.3. Kann ich /usr/obj lo:schen, wenn ich fertig bin?

   Kurze Antwort: Ja.

   In /usr/obj werden alle Dateien abgelegt, die wa:hrend der
   U:bersetzungsphase erstellt wurden. Dieses Verzeichnis wird in
   einem der ersten Schritte der Bauprozedur entfernt. Es macht daher
   wenig Sinn, dieses Verzeichnis zu behalten und Sie setzen eine
   Menge Plattenplatz, momentan ungefa:hr 2 GB, frei, wenn Sie es
   lo:schen.

   Wenn Sie allerdings genau wissen, was Sie tun, ko:nnen Sie diesen
   Schritt bei make buildworld auslassen. Nachfolgende Bauprozeduren
   werden dadurch erheblich schneller, da die meisten Quelldateien
   nicht mehr neu u:bersetzt werden. Dafu:r ko:nnen aber subtile
   Abha:ngigkeitsprobleme entstehen, die dazu fu:hren, dass der Bau
   auf merkwu:rdige Weise abbrechen kann. Dies fu:hrt ha:ufig zu
   unno:tigen Diskussionen auf den FreeBSD Mailinglisten, wenn sich
   jemand u:ber einen kaputten Bau beschwert, aber nicht sieht, dass
   er Probleme hat, weil er eine Abku:rzung genommen hat.

   25.7.14.4. Kann ein abgebrochener Bau weitergefu:hrt werden?

   Das ha:ngt davon ab, wieweit der Bauprozess fortgeschritten ist.

   U:blicherweise werden essentielle Werkzeuge, wie gcc(1) und
   make(1), und die Systembibliotheken wa:hrend des Bauprozesses neu
   erstellt (dies ist aber keine allgemein gu:ltige Regel). Die neu
   erstellen Werkzeuge und Bibliotheken werden dann benutzt, um sich
   selbst noch einmal zu bauen, und wieder installiert. Anschliessend
   wird das Gesamtsystem mit den neu erstellten Systemdateien gebaut.

   Wenn Sie sich im letzten Schritt befinden und Sie wissen, dass Sie
   dort sind, weil Sie durch die Ausgaben, die Sie ja sichern, der
   Bauprozedur gesehen haben, ko:nnen Sie mit ziemlicher Sicherheit
   den Bau weiterfu:hren:

 ... Fehler beheben ...
 # cd /usr/src
 # make -DNO_CLEAN all

   Diese Variablen verhindern, dass make buildworld die vorher
   erstellten Dateien lo:scht.

   Das Sie sich im letzten Schritt der Bauprozedur befinden, erkennen
   Sie daran, dass Sie in der Ausgabe die folgenden Zeilen finden:

 --------------------------------------------------------------
 Building everything..
 --------------------------------------------------------------

   Wenn Sie diese Meldung nicht finden, oder sich nicht sicher sind,
   dann ist es besser, noch einmal ganz von Vorne anzufangen.

   25.7.14.5. Wie kann ich den Bauprozess beschleunigen?

   * Bauen Sie im Single-User-Modus.

   * Legen Sie /usr/src und /usr/obj in getrennte Dateisysteme auf
     unterschiedliche Festplatten. Benutzen Sie nach Mo:glichkeit
     auch getrennte Platten-Controller.

   * Noch besser ist es, diese Dateisysteme auf mehrere Festplatten
     mit ccd(4) zu verteilen.

   * Bauen Sie die "profiled"-Bibliotheken, die Sie wahrscheinlich
     sowieso nicht brauchen, nicht. /etc/make.conf sollte dazu
     NO_PROFILE=true enthalten.

   * Setzen Sie die CFLAGS in /etc/make.conf auf -O -pipe. Die
     Optimierungsstufe -O2 ist deutlich langsamer und die
     Performance-Unterschiede zwischen -O und -O2 sind
     vernachla:ssigbar klein. -pipe veranlasst den Compiler Pipes
     anstelle von Dateien fu:r die Kommunikation zu benutzen. Dies
     spart einige Plattenzugriffe, geht aber auf Kosten des
     Speichers.

   * Benutzen Sie -jn, um mehrere Prozesse parallel laufen zu lassen.
     Normalerweise beschleunigt dies den Bauprozess unabha:ngig
     davon, ob Sie ein Einprozessor- oder Mehrprozessorsystem
     einsetzen.

   * Sie ko:nnen das Dateisystem /usr/src mit der Option noatime
     einha:ngen. Dies verhindert, dass die Zugriffszeiten der Dateien
     aktualisiert werden (eine Information, die Sie vielleicht gar
     nicht brauchen).

 # mount -u -o noatime /usr/src

       Warnung: Das Beispiel geht davon aus, dass sich /usr/src auf
       einem separaten Dateisystem befindet. Wenn das nicht der Fall
       ist, weil das Verzeichnis beispielsweise Teil des /usr
       Dateisystems ist, mu:ssen Sie anstelle von /usr/src den
       Mountpoint des Dateisystems angeben.

   * Das Dateisystem, in dem sich /usr/obj befindet, kann mit der
     Option async eingehangen werden. Dies bewirkt, dass
     Schreibzugriffe auf die Platte asynchron stattfinden, das heisst
     ein Schreibzugriff ist sofort beendet, die Daten werden
     allerdings erst einige Sekunden spa:ter geschrieben. Dadurch
     ko:nnen Schreibzugriffe zusammengefasst werden, was einen
     erheblichen Geschwindigkeitszuwachs mit sich bringen kann.

       Warnung: Beachten Sie, dass dies Ihr Dateisystem anfa:lliger
       fu:r Fehler macht. Im Fall eines Stromausfalls besteht eine
       erho:hte Wahrscheinlichkeit, dass das Dateisystem beim Start
       der Maschine zersto:rt ist.

       Wenn sich /usr/obj auf einem extra Dateisystem befindet, ist
       das kein Problem. Wenn sich allerdings auf diesem Dateisystem
       noch andere wertvolle Daten befinden, stellen Sie sicher, dass
       Sie aktuelle Sicherungen besitzen.

 # mount -u -o async /usr/obj

       Warnung: Ersetzen Sie /usr/obj durch den Mountpoint des
       entsprechenden Dateisystems, wenn es sich nicht auf einem
       eigenen Dateisystem befindet.

   25.7.14.6. Was mache ich, wenn etwas nicht funktioniert?

   Stellen Sie sicher, dass sich in Ihrer Umgebung keine Reste eines
   vorherigen Baus befinden. Das geht ganz einfach:

 # chflags -R noschg /usr/obj/usr
 # rm -rf /usr/obj/usr
 # cd /usr/src
 # make cleandir
 # make cleandir

   Ja, make cleandir muss wirklich zweimal aufgerufen werden.

   Nachdem Sie aufgera:umt haben, starten Sie den Bauprozess wieder
   mit make buildworld.

   Wenn Sie immer noch Probleme haben, schicken Sie die
   Fehlermeldungen und die Ausgabe von uname -a an die Mailingliste
   'Fragen und Antworten zu FreeBSD'
   <de-bsd-questions@de.FreeBSD.org>. Bereiten Sie sich darauf vor,
   weitere Fragen zu Ihrer Umgebung zu beantworten.

     --------------------------------------------------------------

25.8. Veraltete Dateien, Verzeichnisse und Bibliotheken lo:schen

   Basiert auf Notizen von Anton Shterenlikht.

   Aufgrund der sta:ndigen Weiterentwicklung von FreeBSD kann es dazu
   kommen, dass Dateien (und deren Inhalte) obsolet werden, weil
   deren Funktionalita:t entweder in anderen Dateien implementiert
   wurde, sich die Versionsnummer der Bibliothek gea:ndert hat oder
   deren Funktion nicht mehr beno:tigt wird. Dies kann sowohl Dateien
   und Verzeichnis, aber auch Bibliotheken betreffen. Diese
   veralteten Dateien sollten daher entfernt werden, bevor Sie Ihr
   System aktualisieren. Der Vorteil fu:r den Benutzer ist darin zu
   sehen, dass dessen System (sowie dessen Backup) von nicht mehr
   beno:tigten Dateien gereinigt wird. Falls die obsolete Bibliothek
   Sicherheits- oder Stabilita:tsprobleme aufweist, sollte das System
   ebenfalls aktualisiert werden, um Ihr System sicher zu halten
   und/oder durch die fehlerhafte Bibliothek verursachte
   Systemabstu:rze zu vermeiden. Veraltete Dateien, Verzeichnisse und
   Bibliotheken sind in der Datei /usr/src/ObsoleteFiles.inc
   aufgelistet. Die folgenden Anweisungen sollen Ihnen dabei helfen,
   diese Dateien wa:hrend der Systemaktualisierung zu entfernen.

   Im Folgenden wird angenommen, dass Sie den Anweisungen von
   Abschnitt 25.7.1 folgen. Nachdem Sie make installworld sowie
   mergemaster erfolgreich ausgefu:hrt haben, sollten Sie Ihr System
   auf veraltete Dateien und Bibliotheken hin u:berpru:fen:

 # cd /usr/src
 # make check-old

   Werden dabei veraltete Dateien gefunden, ko:nnen diese im
   na:chsten Schritt entfernt werden:

 # make delete-old

     Tipp: Weitere interessante Targets finden sich in der Datei
     /usr/src/Makefile.

   Bei jeder Datei wird nachgefragt, ob Sie diese wirklich lo:schen
   wollen. Es ist aber auch mo:glich, alle Dateien automatisch
   lo:schen zu lassen. Dies erreichen Sie, indem Sie die
   Umgebungsvariable BATCH_DELETE_OLD_FILES entsprechend setzen:

 # make -DBATCH_DELETE_OLD_FILES delete-old

   Alternativ ko:nnen Sie auch den folgenden Befehl einsetzen (und
   jeweils die Antwort yes an die einzelnen Abfragen weiterreichen):

 # yes | make delete-old

     Warnung: Das Lo:schen veralteter Dateien kann dazu fu:hren, dass
     Programme, die auf diese Dateien angewiesen sind, nicht mehr
     funktionieren. Dies gilt insbesondere fu:r veraltete
     Bibliotheken. In den meisten Fa:llen ist es dann notwendig,
     Programme, Ports und Bibliotheken, welche die veraltete
     Bibliothek verwenden, neu zu bauen, bevor Sie den Befehl make
     delete-old-libs ausfu:hren.

   Die Ports-Sammlung entha:lt Werkzeuge, die Ihnen beim Pru:fen von
   Bibliothek-Abha:ngigkeiten helfen ko:nnen: sysutils/libchk sowie
   sysutils/bsdadminscripts.

   Veraltete Bibliotheken ko:nnen zu Konflikten mit neueren
   Bibliotheken fu:hren und beispielsweise folgende Meldungen
   verursachen:

 /usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
 /usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5

   Um diese Probleme zu lo:sen, mu:ssen Sie zuerst herausfinden,
   welcher Port die Bibliothek installiert hat:

 # pkg_info -W  /usr/local/lib/libtiff.so
 /usr/local/lib/libtiff.so was installed by package tiff-3.9.4
 # pkg_info -W /usr/local/lib/libXext.so
 /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1

   Danach deinstallieren Sie den Port und bauen ihn neu, um ihn
   danach erneut zu installieren. Dieser Vorgang kann durch den
   Einsatz der Werkzeuge ports-mgmt/portmaster oder
   ports-mgmt/portupgrade automatisiert werden. Nachdem Sie alle
   Ports erfolgreich neu gebaut haben (und Sie daher keine veralteten
   Bibliotheken mehr verwenden) ko:nnen Sie die veralteten
   Bibliotheken endgu:ltig entfernen:

 # make delete-old-libs

     --------------------------------------------------------------

25.9. Installation mehrerer Maschinen

   Beigetragen von Mike Meyer.

   Wenn Sie mehrere Maschinen besitzen, die Sie alle auf dem gleichen
   Stand halten wollen, ist es eine Verschwendung von Ressourcen, die
   Quellen auf jeder Maschine vorzuhalten und zu u:bersetzen. Die
   Lo:sung dazu ist, eine Maschine den Grossteil der Arbeit
   durchfu:hren zu lassen und den anderen Maschinen das Ergebnis mit
   NFS zur Verfu:gung zu stellen. Dieser Abschnitt zeigt Ihnen wie
   das geht.

     --------------------------------------------------------------

  25.9.1. Voraussetzungen

   Stellen Sie zuerst eine Liste der Maschinen zusammen, die auf
   demselben Stand sein sollen. Wir nennen diese Maschinen die
   Baugruppe. Jede dieser Maschinen kann mit einem eigenen Kernel
   laufen, doch sind die Programme des Userlands auf allen Maschinen
   gleich. Wa:hlen Sie aus der Baugruppe eine Maschine aus, auf der
   der Bau durchgefu:hrt wird, den Bau-Master. Dies sollte eine
   Maschine sein, die u:ber die no:tigen Ressourcen fu:r make
   buildworld und make installworld verfu:gt. Sie brauchen auch eine
   Testmaschine, auf der Sie die Updates testen, bevor Sie sie in
   Produktion installieren. Dies sollte eine Maschine, eventuell der
   Bau-Master, sein, die u:ber einen la:ngeren Zeitraum nicht zur
   Verfu:gung stehen kann.

   Alle Maschinen der Baugruppe mu:ssen /usr/obj und /usr/src von
   derselben Maschine an gleichem Ort einha:ngen. Idealerweise
   befinden sich die beiden Verzeichnisse auf dem Bau-Master auf
   verschiedenen Festplatten, sie ko:nnen allerdings auch auf dem
   Bau-Master u:ber NFS zur Verfu:gung gestellt werden. Wenn Sie
   mehrere Baugruppen haben, sollte sich /usr/src auf einem
   Bau-Master befinden und u:ber NFS fu:r den Rest der Maschinen zur
   Verfu:gung gestellt werden.

   Stellen Sie sicher, dass /etc/make.conf und /etc/src.conf auf
   allen Maschinen einer Baugruppe mit der Datei des Bau-Masters
   u:bereinstimmt. Der Bau-Master muss jeden Teil des Systems bauen,
   den irgendeine Maschine der Baugruppe beno:tigt. Auf dem
   Bau-Master mu:ssen in /etc/make.conf alle zu bauenden Kernel mit
   der Variablen KERNCONF bekannt gegeben werden. Geben Sie dabei den
   Kernel des Bau-Masters zuerst an. Fu:r jeden zu bauenden Kernel
   muss auf dem Bau-Master die entsprechende Konfigurationsdatei
   unter /usr/src/sys/arch/conf abgelegt werden.

     --------------------------------------------------------------

  25.9.2. Installation des Basissystems

   Nach diesen Vorbereitungen ko:nnen Sie mit dem Bau beginnen. Bauen
   Sie auf dem Bau-Master, wie in Abschnitt 25.7.7.2 beschrieben, den
   Kernel und die Welt, installieren Sie aber nichts. Wechseln Sie
   auf die Testmaschine und installieren Sie den gerade gebauten
   Kernel. Wenn diese Maschine /usr/src und /usr/obj u:ber NFS
   bekommt, mu:ssen Sie das Netzwerk im Single-User-Modus aktivieren
   und die beiden Dateisysteme einha:ngen. Am einfachsten ist dies,
   wenn Sie auf der Testmaschine ausgehend vom Mehrbenutzermodus mit
   shutdown now in den Single-User-Modus wechseln. Sie ko:nnen dann
   mit der normalen Prozedur den neuen Kernel und das System
   installieren und anschliessend mergemaster laufen lassen. Wenn Sie
   damit fertig sind, ko:nnen Sie die Maschine wieder in den
   Mehrbenutzermodus booten.

   Nachdem Sie sichergestellt haben, dass die Testmaschine
   einwandfrei funktioniert, wiederholen Sie diese Prozedur fu:r jede
   Maschine in der Baugruppe.

     --------------------------------------------------------------

  25.9.3. Die Ports-Sammlung

   Dasselbe Verfahren ko:nnen Sie auch fu:r die Ports-Sammlung
   anwenden. Zuerst mu:ssen alle Maschinen einer Baugruppe /usr/ports
   von derselben Maschine u:ber NFS zur Verfu:gung gestellt bekommen.
   Setzen Sie dann ein Verzeichnis fu:r die Quellen auf, das sich
   alle Maschinen teilen. Dieses Verzeichnis ko:nnen Sie in
   /etc/make.conf mit der Variablen DISTDIR angeben. Das Verzeichnis
   sollte fu:r den Benutzer beschreibbar sein, auf den der Benutzer
   root vom NFS Subsystem abgebildet wird. Jede Maschine sollte noch
   WRKDIRPREFIX auf ein lokales Bauverzeichnis setzen. Wenn Sie
   vorhaben, Pakete zu bauen und zu verteilen, sollten Sie PACKAGES
   auf ein Verzeichnis mit den gleichen Eigenschaften wie DISTDIR
   setzen.

     --------------------------------------------------------------

                           Kapitel 26. DTrace

   Written by Tom Rhodes. U:bersetzt von Benedict Reuschling und
   Christoph Sold.

26.1. U:berblick

   DTrace, auch bekannt als Dynamic Tracing, wurde von Sun als ein
   Werkzeug zur Analyse von Performance-Problemen in Produktiv- und
   Entwicklungssystemen entwickelt. Es ist kein Debugging-Werkzeug,
   sondern ein Hilfsmittel fu:r Echtzeit-Systemanalysen.

   DTrace ist ein bemerkenswertes Werkzeug zur Profilerstellung, mit
   einer beeindruckenden Palette von Eigenschaften zur Diagnose von
   Systemereignissen. Es kann auch dazu verwendet werden, bestehende
   Skripte ablaufen zu lassen, um einen Nutzen aus deren
   Mo:glichkeiten zu ziehen. Nutzer ko:nnen mittels der
   Programmiersprache D von DTrace ihre eigenen Hilfsmittel
   schreiben, was es ermo:glicht, die eigenen Profile nach Ihren
   Bedu:rfnissen anzupassen.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie Folgendes
   wissen:

     * Was DTrace ist und welche Funktionen es zur Verfu:gung stellt.

     * Unterschiede zwischen der Solaris DTrace Implementierung und
       derjenigen, die FreeBSD bereitstellt.

     * Wie man DTrace auf FreeBSD aktiviert und verwendet.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * UNIX und FreeBSD Grundlagen verstehen (Kapitel 4).

     * Einen Kernel konfigurieren und kompilieren ko:nnen (Kapitel
       9).

     * Vertraut sein mit Sicherheitsaspekten und wie diese FreeBSD
       betreffen (Kapitel 15).

     * Verstehen, wie man den Quellcode von FreeBSD beziehen und das
       Betriebssystem neu erstellen kann (Kapitel 25).

     Warnung: Diese Funktion ist als experimentell anzusehen. Manche
     Einstellungen enthalten mo:glicherweise nicht alle
     Funktionalita:ten, andere Teile ko:nnten gar nicht laufen. Mit
     der Zeit, wenn diese Funktion als fu:r den Produktivbetrieb
     geeignet erscheint, wird auch diese Dokumentation gea:ndert, um
     diesem Umstand gerecht zu werden.

     --------------------------------------------------------------

26.2. Unterschiede in der Implementierung

   Obwohl DTrace in FreeBSD sehr a:hnlich zu dem in Solaris ist,
   existieren doch Unterschiede, die vorher erkla:rt werden mu:ssen.
   Der Hauptunterschied fu:r die Anwender besteht darin, dass in
   FreeBSD DTrace explizit aktiviert werden muss. Es existieren
   Kerneloptionen und Module, die aktiviert sein mu:ssen, damit
   DTrace korrekt arbeitet. Diese werden spa:ter genauer erla:tert.

   Die Kerneloption DDB_CTF wird dafu:r verwendet, um die
   Unterstu:tzung im Kernel fu:r das Laden von CTF-Daten aus
   Kernelmodulen und dem Kernel selbst zu ermo:glichen. CTF ist das
   Compact C Type Format von Solaris, welches eine reduzierte Form
   von Debug-Informationen kapselt, a:hnlich zu DWARF und den antiken
   Stabs. Diese CTF-Daten werden dem Bina:rcode von den ctfconvert
   und ctfmerge Befehlen den Werkzeugen zum Bauen des Systems
   hinzugefu:gt. Das ctfconvert-Dienstprogramm parst die vom Compiler
   erstellten DWARF ELF Debug-Abschnitte und ctfmerge vereint CTF
   ELF-Abschnitte aus Objekten, entweder in ausfu:hrbare Dateien oder
   Shared-Libraries. In Ku:rze erfahren Sie, wie Sie dies fu:r den
   Kernel und den Bau von FreeBSD aktivieren.

   Einige Provider in FreeBSD unterscheiden sich von der
   Solaris-Implementierung. Am deutlichsten wird das beim
   dtmalloc-Provider, welcher das Aufzeichnen von malloc() nach Typen
   im FreeBSD-Kernel ermo:glicht.

   In FreeBSD darf DTrace wegen unterschiedlicher Sicherheitskonzepte
   nur von root verwendet werden. Solaris besitzt ein paar
   Audit-Funktionen auf den unteren Ebenen, die noch nicht in FreeBSD
   implementiert sind. Deshalb kann nur root auf /dev/dtrace/dtrace
   zugreifen.

   Zum Schluss muss noch erwa:hnt werden, dass die DTrace-Software
   unter Suns CDDL Lizenz fa:llt. Die Common Development and
   Distribution License wird von FreeBSD mitgeliefert, sehen Sie sich
   dazu /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE an,
   oder lesen Sie die Online-Version unter
   http://www.opensolaris.org/os/licensing.

   Diese Lizenz bedeutet, dass ein FreeBSD-Kernel mit den
   DTrace-Optionen immer noch BSD-lizenziert ist; allerdings tritt
   die CDDL in Kraft, wenn Module in Bina:rform vertrieben werden
   oder die Bina:rdateien geladen werden.

     --------------------------------------------------------------

26.3. Die DTrace Unterstu:tzung aktivieren

   Um Unterstu:tzung fu:r DTrace zu aktivieren, fu:gen Sie die
   folgenden Zeilen zu Ihrer Kernelkonfigurationsdatei hinzu:

 options         KDTRACE_HOOKS
 options         DDB_CTF

     Anmerkung: Besitzer der AMD-Architektur werden wahrscheinlich
     noch die folgende Zeile zur Kernelkonfigurationsdatei
     hinzufu:gen:

 options         KDTRACE_FRAME

     Diese Option liefert die Unterstu:tzung fu:r die
     FBT-Eigenschaft. DTrace wird auch ohne diese Option
     funktionieren; jedoch wird dann Function Boundary Tracing nur
     eingeschra:nkt unterstu:tzt.

   Der gesamte Quellcode muss neu gebaut und mit der CTF-Option
   installiert werden. Um das zu erreichen, bauen Sie FreeBSD aus dem
   Quellcode mittels:

 # cd /usr/src
 # make WITH_CTF=1 kernel

   Das System muss im Anschluss daran neu gestartet werden.

   Nachdem das System neu gestartet und der neue Kernel in den
   Hauptspeicher geladen wurde, sollte die Unterstu:tzung fu:r die
   Korn-Shell hinzugefu:gt werden. Dies wird beno:tigt, da die
   Sammlung von DTrace-Werkzeugen mehrere Dienstprogramme entha:lt,
   die in ksh implementiert sind. Installieren Sie shells/ksh93. Es
   ist auch mo:glich, diese Werkzeuge unter shells/pdksh oder
   shells/mksh laufen zu lassen.

   Zum Schluss sollten Sie noch den aktuellen DTrace-Werkzeugsatz
   beschaffen. Die aktuelle Version ist unter
   http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/
   verfu:gbar. Ein Mechanismus zur Installation ist enthalten,
   allerdings ist eine Installation nicht unbedingt no:tig, um die
   darin enthaltenen Dienstprogramme einzusetzen.

     --------------------------------------------------------------

26.4. DTrace verwenden

   Bevor die DTrace-Funktionalta:t benutzt werden kann, muss das
   DTrace-Gera:t existieren. Um das Gera:t zu laden, geben Sie das
   folgende Kommando ein:

 # kldload dtraceall

   Die DTrace-Unterstu:tzung sollte jetzt verfu:gbar sein. Um alle
   Sonden anzuzeigen, kann der Administrator nun den folgenden Befehl
   eingeben:

 # dtrace -l | more

   Alle Ausgaben werden an das more-Programm u:bergeben, da der
   Bildschirmpuffer sehr schnell u:berlaufen wird. Ab diesem Punkt
   kann DTrace als einsatzbereit angesehen werden. Jetzt ist es an
   der Zeit, sich na:her mit dem Satz von Werkzeugen zu
   bescha:ftigen.

   Der Werkzeugsatz ist eine Sammlung von vorgefertigten Skripten,
   die von DTrace ausgefu:hrt werden ko:nnen, um Systeminformationen
   zu sammeln. Es gibt Skripte, die offene Dateien u:berpru:fen, den
   Speicher, CPU-Verbrauch und noch viel mehr. Entpacken Sie die
   Skripte mit dem folgenden Befehl:

 # gunzip -c DTraceToolkit* | tar xvf -

   Wechseln Sie mit dem cd-Kommando in dieses Verzeichnis und a:ndern
   Sie die Berechtigung zum Ausfu:hren von allen Dateien, deren Name
   klein geschrieben ist, auf 755.

   All diese Skripte mu:ssen inhaltlich vera:ndert werden.
   Diejenigen, die auf /usr/bin/ksh verweisen, mu:ssen in
   /usr/local/bin/ksh gea:ndert werden und die Anderen, welche
   /usr/bin/sh verwenden, mu:ssen so angepasst werden, dass sie
   /bin/sh verwenden. Schliesslich mu:ssen noch diejenigen, die
   /usr/bin/perl enthalten, auf /usr/local/bin/perl umgeschrieben
   werden.

     Wichtig: Zu diesem Zeitpunkt ist es klug, den Leser noch einmal
     daran zu erinnern, dass die Unterstu:tzung von DTrace in FreeBSD
     noch unvollsta:ndig und experimentell ist. Viele dieser Skripte
     werden nicht funktionieren, da diese entweder zu sehr
     Solaris-spezifisch sind oder Sonden verwenden, die zur Zeit noch
     nicht unterstu:tzt werden.

   Zum Zeitpunkt, an dem dieses Dokument geschrieben wurde,
   existieren nur zwei Skripte im DTrace-Werkzeugsatz, die von
   FreeBSD komplett unterstu:tzt werden: die Skripte hotkernel und
   procsystime. Diese beiden werden in den folgenden Teilen dieses
   Abschnitts genauer untersucht.

   hotkernel wurde entworfen, um zu identifizieren, welche Funktion
   die meiste Kernelzeit beansprucht. Normal ausgefu:hrt, wird es
   Ausgaben a:hnlich der Folgenden produzieren:

 # ./hotkernel
 Sampling... Hit Ctrl-C to end.

   Der Systemadministrator muss die Tastenkombination Ctrl+C
   dru:cken, um den Prozess zu stoppen. Nach dem Abbruch wird das
   Skript eine Liste von Kernelfunktionen und Zeitmessungen ausgeben,
   aufsteigend sortiert nach den Zeiten:

 kernel`_thread_lock_flags                                   2   0.0%
 0xc1097063                                                  2   0.0%
 kernel`sched_userret                                        2   0.0%
 kernel`kern_select                                          2   0.0%
 kernel`generic_copyin                                       3   0.0%
 kernel`_mtx_assert                                          3   0.0%
 kernel`vm_fault                                             3   0.0%
 kernel`sopoll_generic                                       3   0.0%
 kernel`fixup_filename                                       4   0.0%
 kernel`_isitmyx                                             4   0.0%
 kernel`find_instance                                        4   0.0%
 kernel`_mtx_unlock_flags                                    5   0.0%
 kernel`syscall                                              5   0.0%
 kernel`DELAY                                                5   0.0%
 0xc108a253                                                  6   0.0%
 kernel`witness_lock                                         7   0.0%
 kernel`read_aux_data_no_wait                                7   0.0%
 kernel`Xint0x80_syscall                                     7   0.0%
 kernel`witness_checkorder                                   7   0.0%
 kernel`sse2_pagezero                                        8   0.0%
 kernel`strncmp                                              9   0.0%
 kernel`spinlock_exit                                       10   0.0%
 kernel`_mtx_lock_flags                                     11   0.0%
 kernel`witness_unlock                                      15   0.0%
 kernel`sched_idletd                                       137   0.3%
 0xc10981a5                                              42139  99.3%

   Dieses Skript funktioniert auch mit Kernelmodulen. Um diese
   Eigenschaft zu verwenden, starten Sie das Skript mit dem Parameter
   -m:

 # ./hotkernel -m
 Sampling... Hit Ctrl-C to end.
 ^C
 MODULE                                                  COUNT   PCNT
 0xc107882e                                                  1   0.0%
 0xc10e6aa4                                                  1   0.0%
 0xc1076983                                                  1   0.0%
 0xc109708a                                                  1   0.0%
 0xc1075a5d                                                  1   0.0%
 0xc1077325                                                  1   0.0%
 0xc108a245                                                  1   0.0%
 0xc107730d                                                  1   0.0%
 0xc1097063                                                  2   0.0%
 0xc108a253                                                 73   0.0%
 kernel                                                    874   0.4%
 0xc10981a5                                             213781  99.6%

   Das procsystime Skript fa:ngt die Systemaufruf-Zeiten ab und zeigt
   diese fu:r eine gegebene PID oder einen Prozessnamen an. Im
   folgenden Beispiel wurde eine neue Instanz von /bin/csh erzeugt.
   procsystime wurde ausgefu:hrt und verbleibt so, wa:hrend ein paar
   Befehle in die andere Instanz von csh eingegeben werden. Dies sind
   die Ergebnisse dieses Versuchs:

 # ./procsystime -n csh
 Tracing... Hit Ctrl-C to end...
 ^C

 Elapsed Times for processes csh,

          SYSCALL          TIME (ns)
           getpid               6131
        sigreturn               8121
            close              19127
            fcntl              19959
              dup              26955
          setpgid              28070
             stat              31899
        setitimer              40938
            wait4              62717
        sigaction              67372
      sigprocmask             119091
     gettimeofday             183710
            write             263242
           execve             492547
            ioctl             770073
            vfork            3258923
       sigsuspend            6985124
             read         3988049784

   Wie aus der Ausgabe ersichtlich ist, verbraucht der
   read()-Systemaufruf die meiste Zeit in Nanosekunden, wa:hrend der
   Systemaufruf getpid() hingegen am schnellsten la:ft.

     --------------------------------------------------------------

26.5. Die Sprache D

   Der DTrace Werkzeugsatz entha:lt viele Skripte in der speziellen
   Sprache von DTrace. Diese Sprache wird als "die D Sprache" in der
   Dokumentation von Sun bezeichnet und ist C++ sehr a:hnlich. Eine
   tiefergehende Betrachtung dieser Sprache wu:rde den Rahmen dieses
   Dokuments sprengen. Ausfu:hrlich wird diese Sprache unter
   http://wikis.sun.com/display/DTrace/Documentation behandelt.

                             IV. Netzwerke

   FreeBSD ist eins der meist benutzten Betriebssysteme fu:r
   leistungsfa:hige Netzwerkserver. Die Kapitel in diesem Teil
   behandeln die nachstehenden Themen:

     * Serielle Datenu:bertragung

     * PPP und PPP over Ethernet

     * Electronic-Mail

     * Den Betrieb von Netzwerkdiensten

     * Firewalls

     * Weiterfu:hrende Netzwerkthemen

   Diese Kapitel sollten Sie lesen, wenn Sie die Informationen darin
   beno:tigen. Sie brauchen Sie nicht in einer bestimmten Reihenfolge
   zu lesen, noch mu:ssen Sie die Kapitel lesen, bevor Sie anfangen,
   FreeBSD zu benutzen.

   Inhaltsverzeichnis

   27. Serielle Datenu:bertragung

   28. PPP und SLIP

   29. Elektronische Post (E-Mail)

   30. Netzwerkserver

   31. Firewalls

   32. Weiterfu:hrende Netzwerkthemen

     --------------------------------------------------------------

                 Kapitel 27. Serielle Datenu:bertragung

   U:bersetzt von Martin Heinen.

27.1. U:bersicht

   UNIX Systeme unterstu:tzten schon immer die serielle
   Datenu:bertragung. Tatsa:chlich wurden Ein- und Ausgaben auf den
   ersten UNIX Maschinen u:ber serielle Leitungen durchgefu:hrt. Seit
   der Zeit, in der ein durchschnittlicher "Terminal" aus einem
   seriellen Drucker mit 10 Zeichen/Sekunde und einer Tastatur
   bestand, hat sich viel vera:ndert. Dieses Kapitel behandelt einige
   Mo:glichkeiten, serielle Datenu:bertragung unter FreeBSD zu
   verwenden.

   Nachdem Sie dieses Kapitel durchgearbeitet haben, werden Sie
   Folgendes wissen:

     * Wie Sie Terminals an Ihr FreeBSD anschliessen.

     * Wie Sie sich mit einem Modem auf einem entfernten Rechner
       einwa:hlen.

     * Wie Sie entfernten Benutzern erlauben, sich mit einem Modem in
       Ihr System einzuwa:hlen.

     * Wie Sie Ihr System u:ber eine serielle Konsole booten.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * einen neuen Kernel konfigurieren und installieren ko:nnen
       (Kapitel 9).

     * Das Berechtigungskonzept von UNIX und Prozesse verstehen
       (Kapitel 4).

     * Zudem sollten Sie Zugriff auf die Handbu:cher der seriellen
       Komponenten (Modem oder Multiportkarte) haben, die Sie mit
       FreeBSD verwenden wollen.

     --------------------------------------------------------------

27.2. Einfu:hrung

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

     --------------------------------------------------------------

  27.2.1. Begriffe

   bps

           Bits pro Sekunde - Einheit fu:r die
           U:bertragungsgeschwindigkeit.

   DEE (DTE)

           Datenendeinrichtung (Data Terminal Equipment) - zum
           Beispiel Ihr Computer.

   DU:E (DCE)

           Datenu:bertragungseinrichtung (Data Communications
           Equipment) - Ein Modem.

   RS-232

           EIA (Electronic Industries Association) Norm fu:r die
           serielle Datenu:bertragung.

   In diesem Abschnitt wird der Begriff "Baud" nicht fu:r
   U:bertragungsgeschwindigkeiten gebraucht. Baud bezeichnet
   elektrische Zustandswechsel pro Zeiteinheit, die Taktfrequenz,
   wa:hrend "bps" (Bits pro Sekunde) der richtige Begriff fu:r die
   U:bertragungsgeschwindigkeit ist (die meisten Pedanten sollten
   damit zufrieden sein).

     --------------------------------------------------------------

  27.2.2. Kabel und Schnittstellen

   Um ein Modem oder einen Terminal an Ihr FreeBSD-System
   anzuschliessen, muss Ihr Computer u:ber eine serielle
   Schnittstelle verfu:gen. Zusa:tzlich brauchen Sie noch das
   passende Kabel, um das Gera:t mit der Schnittstelle zu verbinden.
   Wenn Sie mit Ihren Gera:ten und den no:tigen Kabeln schon vertraut
   sind, ko:nnen Sie diesen Abschnitt u:berspringen.

     --------------------------------------------------------------

    27.2.2.1. Kabel

   Es gibt verschiedene serielle Kabel. Die zwei ha:ufigsten sind
   Nullmodemkabel und Standard-RS-232-Kabel. Die Dokumentation Ihrer
   Hardware sollte beschreiben, welchen Kabeltyp Sie beno:tigen.

     --------------------------------------------------------------

      27.2.2.1.1. Nullmodemkabel

   Ein Nullmodemkabel verbindet einige Signale, wie die Betriebserde,
   eins zu eins, andere Signale werden getauscht: Die Sende- und
   Empfangsleitungen werden zum Beispiel gekreuzt.

   Sie ko:nnen das Kabel fu:r die Anbindung eines Terminals auch
   selbst herstellen. Die folgende Tabelle entha:lt die Signalnamen
   von RS-232C sowie die Pinbelegung fu:r einen Stecker vom Typ
   DB-25. Beachten Sie dabei aber, dass der Standard zwar eine
   direkte Verbindung beider Pin 1 (Protective Ground) vorschreibt,
   diese aber in vielen Fa:llen nicht vorhanden ist. Einige Terminals
   beno:tigen nur die Pins 2, 3 und 7 fu:r eine korrekte Funktion,
   wa:hrend andere eine unterschiedliche Konfiguration als die in den
   folgenden Beispielen gezeigte beno:tigen.

   Tabelle 27-1. Nullmodemkabel vom Typ DB-25-zu-DB-25

   Signal       Pin #                          Pin #      Signal      
   SG           7           verbunden mit      7          SG          
   TD           2           verbunden mit      3          RD          
   RD           3           verbunden mit      2          TD          
   RTS          4           verbunden mit      5          CTS         
   CTS          5           verbunden mit      4          RTS         
   DTR          20          verbunden mit      6          DSR         
   DTR          20          verbunden mit      8          DCD         
   DSR          6           verbunden mit      20         DTR         
   DCD          8           verbunden mit      20         DTR         

   Die folgenden zwei Schemata werden heutzutage ebenfalls ha:ufig
   eingesetzt:

   Tabelle 27-2. Nullmodemkabel vom Typ DB-9-zu-DB-9

   Signal       Pin #                          Pin #      Signal      
   RD           2           verbunden mit      3          TD          
   TD           3           verbunden mit      2          RD          
   DTR          4           verbunden mit      6          DSR         
   DTR          4           verbunden mit      1          DCD         
   SG           5           verbunden mit      5          SG          
   DSR          6           verbunden mit      4          DTR         
   DCD          1           verbunden mit      4          DTR         
   RTS          7           verbunden mit      8          CTS         
   CTS          8           verbunden mit      7          RTS         

   Tabelle 27-3. Nullmodemkabel vom Typ DB-9-zu-DB-25

   Signal       Pin #                          Pin #      Signal      
   RD           2           verbunden mit      2          TD          
   TD           3           verbunden mit      3          RD          
   DTR          4           verbunden mit      6          DSR         
   DTR          4           verbunden mit      8          DCD         
   SG           5           verbunden mit      7          SG          
   DSR          6           verbunden mit      20         DTR         
   DCD          1           verbunden mit      20         DTR         
   RTS          7           verbunden mit      5          CTS         
   CTS          8           verbunden mit      4          RTS         

     Anmerkung: Wird ein Pin eines Kabels mit zwei Pins des anderen
     Kabels verbunden, werden dazu in der Regel zuerst die beiden
     Pins mit einem kurzem Draht verbunden. Danach wird dieser Draht
     mit dem Pin des anderen Endes verbunden.

   Die eben besprochenen Schemata scheinen die beliebtesten zu sein.
   Es gibt aber noch weitere Varianten. Im Buch RS-232 Made Easy wird
   beispielsweise SG mit SG verbunden, TD mit RD, RTS und CTS mit
   DCD, DTR mit DSR, und umgekehrt.

     --------------------------------------------------------------

      27.2.2.1.2. Standard RS-232C Kabel

   Ein Standard-RS-232C-Kabel verbindet alle Signale direkt, das
   heisst das Signal "Transmitted Data" wird mit dem Signal
   "Transmitted Data" der Gegenstelle verbunden. Dieses Kabel wird
   beno:tigt, um ein Modem mit einem FreeBSD-System zu verbinden.
   Manche Terminals beno:tigen dieses Kabel ebenfalls.

     --------------------------------------------------------------

    27.2.2.2. Schnittstellen

   U:ber serielle Schnittstellen werden Daten zwischen dem
   FreeBSD-System und dem Terminal u:bertragen. Dieser Abschnitt
   beschreibt die verschiedenen Schnittstellen und wie sie unter
   FreeBSD angesprochen werden.

     --------------------------------------------------------------

      27.2.2.2.1. Arten von Schnittstellen

   Da es verschiedene Schnittstellen gibt, sollten Sie vor dem Kauf
   oder Selbstbau eines Kabels sicherstellen, dass dieses zu den
   Schnittstellen Ihres Terminals und FreeBSD-Systems passt.

   Die meisten Terminals besitzen DB-25-Stecker. Personal Computer
   haben DB-25- oder DB-9-Stecker. Wenn Sie eine serielle
   Multiportkarte fu:r Ihren PC besitzen, haben Sie vielleicht RJ-12-
   oder RJ-45-Anschlu:sse.

   Die Dokumentation Ihrer Gera:te sollte Aufschluss u:ber den Typ
   der beno:tigten Anschlu:sse geben. Oft hilft es, wenn Sie sich den
   Anschluss einfach ansehen.

     --------------------------------------------------------------

      27.2.2.2.2. Schnittstellenbezeichnung

   Unter FreeBSD sprechen Sie die serielle Schnittstelle (Port) u:ber
   einen Eintrag im /dev Verzeichnis an. Es gibt dort zwei
   verschiedene Eintra:ge:

     * Schnittstellen fu:r eingehende Verbindungen werden /dev/ttyuN
       genannt. Dabei ist N die Nummer der Schnittstelle, deren
       Za:hlung bei Null beginnt. Allgemein wird diese Schnittstelle
       fu:r Terminals benutzt. Diese Schnittstelle funktioniert nur,
       wenn ein "Data Carrier Detect" Signal (DCD) vorliegt.

     * Fu:r ausgehende Verbindungen wird /dev/cuadN verwendet. Dieser
       Port wird normalerweise nur von Modems genutzt. Sie ko:nnen
       ihn allerdings fu:r Terminals benutzen, die das "Data Carrier
       Detect" Signal nicht unterstu:tzen.

   Wenn Sie einen Terminal an die erste serielle Schnittstelle (COM1
   in MS-DOS), angeschlossen haben, sprechen Sie ihn u:ber /dev/ttyu0
   an. Wenn er an der zweiten seriellen Schnittstelle angeschlossen
   ist, verwenden Sie /dev/ttyu1, usw.

     --------------------------------------------------------------

  27.2.3. Kernelkonfiguration

   In der Voreinstellung benutzt FreeBSD vier serielle
   Schnittstellen, die in MS-DOS-Kreisen als COM1, COM2, COM3 und
   COM4 bekannt sind. Momentan unterstu:tzt FreeBSD einfache
   Multiportkarten (z.B. die BocaBoard 1008 und 2016) und bessere wie
   die von Digiboard und Stallion Technologies. In der Voreinstellung
   sucht der Kernel allerdings nur nach den Standardanschlu:ssen.

   Um zu u:berpru:fen, ob der Kernel eine Ihrer seriellen
   Schnittstellen erkennt, achten Sie auf die Meldungen beim Booten,
   oder schauen sich diese spa:ter mit /sbin/dmesg an. Insbesondere
   sollten Sie auf Meldungen achten, die mit den Zeichen sio
   anfangen.

     Tipp: Das folgende Kommando zeigt Ihnen nur die Meldungen an,
     die die Folge sio enthalten:

 # /sbin/dmesg | grep 'sio'

   Auf einem System mit vier seriellen Schnittstellen sollte der
   Kernel die folgenden Meldungen ausgeben:

 sio0 at 0x3f8-0x3ff irq 4 on isa
 sio0: type 16550A
 sio1 at 0x2f8-0x2ff irq 3 on isa
 sio1: type 16550A
 sio2 at 0x3e8-0x3ef irq 5 on isa
 sio2: type 16550A
 sio3 at 0x2e8-0x2ef irq 9 on isa
 sio3: type 16550A

   Wenn Ihr Kernel nicht alle seriellen Schnittstellen erkennt,
   mu:ssen Sie Ihren Kernel u:ber die Datei /boot/device.hints
   konfigurieren. Zusa:tzlich ko:nnen Sie Eintra:ge fu:r Gera:te, die
   auf Ihrem System nicht vorhanden sind, aus dem Kernel entfernen.

   Die Hilfeseite sio(4) entha:lt weitere Informationen zu seriellen
   Schnittstellen und Multiportkarten. Seien Sie vorsichtig, wenn Sie
   Konfigurationsdateien von a:lteren FreeBSD-Versionen verwenden, da
   sich die Syntax und die Bedeutung der Optionen zwischen
   verschiedenen Versionen gea:ndert hat.

     Anmerkung: port IO_COM1 ist ein Ersatz fu:r port 0x3f8, IO_COM2
     bedeutet port 0x2f8, IO_COM3 bedeutet port 0x3e8 und IO_COM4
     steht fu:r port 0x2e8. Die angegebenen IO-Adressen sind genau
     wie die Interrupts 4, 3, 5 und 9 u:blich fu:r serielle
     Schnittstellen. Beachten Sie bitte, dass sich normale serielle
     Schnittstellen auf ISA-Bussen keine Interrupts teilen ko:nnen.
     Multiportkarten besitzen zusa:tzliche Schaltkreise, die es allen
     16550As auf der Karte erlauben, sich einen oder zwei Interrupts
     zu teilen.

     --------------------------------------------------------------

  27.2.4. Gera:tedateien

   Die meisten Gera:te im Kernel werden durch Gera:tedateien in /dev
   angesprochen. Die sio Gera:te werden durch /dev/ttyuN fu:r
   eingehende Verbindungen und durch /dev/cuadN fu:r ausgehende
   Verbindungen angesprochen. Zum Initialisieren der Gera:te stellt
   FreeBSD die Dateien /dev/ttyuN.init und /dev/cuadN.init zur
   Verfu:gung. Zusa:tzlich existieren Dateien fu:r das Sperren von
   Gera:tedateien (Locking). Dabei handelt es sich um die Dateien
   /dev/ttyuN.lock und /dev/cuadN.lock. Diese Dateien werden benutzt,
   um Kommunikationsparameter beim O:ffnen eines Ports vorzugeben.
   Fu:r Modems, die zur Flusskontrolle RTS/CTS benutzen, kann damit
   crtscts gesetzt werden. Die Gera:te /dev/ttyldN und /dev/cualaN
   (locking devices) werden genutzt, um bestimmte Parameter
   festzuschreiben und vor Vera:nderungen zu schu:tzen. Weitere
   Informationen zu Terminals finden Sie in termios(4), sio(4)
   erkla:rt die Dateien zum Initialisieren und Sperren der Gera:te,
   stty(1) beschreibt schliesslich Terminal-Einstellungen.

     --------------------------------------------------------------

  27.2.5. Konfiguration der seriellen Schnittstelle

   Anwendungen benutzen normalerweise die Gera:te ttyuN oder cuadN.
   Das Gera:t besitzt einige Voreinstellungen fu:r Terminal-I/O, wenn
   es von einem Prozess geo:ffnet wird. Mit dem folgenden Kommando
   ko:nnen Sie sich diese Einstellungen ansehen:

 # stty -a -f /dev/ttyu1

   Sie ko:nnen diese Einstellungen vera:ndern, sie bleiben allerdings
   nur solange wirksam, bis das Gera:t geschlossen wird. Wenn das
   Gera:t danach wieder geo:ffnet wird, sind die Voreinstellungen
   wieder wirksam. Um die Voreinstellungen zu a:ndern, o:ffnen Sie
   das Gera:t, das zum Initialisieren dient und vera:ndern dessen
   Einstellungen. Um beispielsweise fu:r ttyu5 den CLOCAL Modus,
   8-Bit Kommunikation und XON/XOFF Flusssteuerung einzuschalten,
   setzen Sie das folgende Kommando ab:

 # stty -f /dev/ttyu5.init clocal cs8 ixon ixoff

   In /etc/rc.d/rc.serial werden die systemweiten Voreinstellungen
   fu:r serielle Gera:te vorgenommen.

   Um zu verhindern, dass Einstellungen von Anwendungen vera:ndert
   werden, ko:nnen Sie die Gera:te zum Festschreiben von
   Einstellungen ("locking devices") benutzen. Wenn sie
   beispielsweise die Geschwindigkeit von ttyu5 auf 57600 bps
   festlegen wollen, benutzen Sie das folgende Kommando:

 # stty -f /dev/ttyld5 57600

   Eine Anwendung, die ttyu5 o:ffnet, kann nun nicht mehr die
   Geschwindigkeit a:ndern und muss 57600 bps benutzen.

   Die Gera:te zum Initialisieren und Festschreiben von Einstellungen
   sollten selbstversta:ndlich nur von root beschreibbar sein.

     --------------------------------------------------------------

27.3. Terminals

   Beigetragen von Sean Kelly.

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

   Wenn Sie sich nicht an der Konsole oder u:ber ein Netzwerk an
   Ihrem FreeBSD-System anmelden ko:nnen, sind Terminals ein bequemer
   und billiger Weg auf Ihr System zuzugreifen. Dieser Abschnitt
   beschreibt wie Sie Terminals mit FreeBSD benutzen.

     --------------------------------------------------------------

  27.3.1. Terminaltypen

   Das urspru:ngliche UNIX System besass keine Konsolen. Zum Anmelden
   und Starten von Programmen wurden stattdessen Terminals benutzt,
   die an den seriellen Schnittstellen des Rechners angeschlossen
   waren. Dies entspricht der Benutzung eines Modems zum Anmelden auf
   einem entfernten System, um dort mit einem Terminalemulator im
   Textmodus zu arbeiten.

   Die Konsolen heutiger PCs besitzen sehr gute Grafikfa:higkeiten,
   trotzdem gibt es in fast jedem UNIX System die Mo:glichkeit, sich
   u:ber die serielle Schnittstelle anzumelden; FreeBSD ist da keine
   Ausnahme. Sie ko:nnen sich an einem Terminal anmelden und dort
   jedes Textprogramm, das Sie normalerweise an der Konsole oder in
   einem xterm Fenster im X Window System benutzen, laufen lassen.

   Im kommerziellen Umfeld ko:nnen Sie viele Terminals an ein
   FreeBSD-System anschliessen und diese auf den Arbeitspla:tzen
   Ihrer Angestellten aufstellen. Im privaten Umfeld kann ein
   a:lterer IBM PC oder Macintosh als Terminal dienen. Damit
   verwandeln Sie einen Einzelarbeitsplatz in ein leistungsfa:higes
   Mehrbenutzersystem.

   FreeBSD kennt drei verschiedene Terminals:

     * Dumb terminals,

     * PCs, die als Terminals fungieren,

     * X Terminals.

   Die folgenden Abschnitte beschreiben jeden dieser Terminals.

     --------------------------------------------------------------

    27.3.1.1. Dumb-Terminals

   Dumb-Terminals (unintelligente Datenstationen) sind Gera:te, die
   u:ber die serielle Schnittstelle mit einem Rechner verbunden
   werden. Sie werden "unintelligent" genannt, weil sie nur Text
   senden und empfangen und keine Programme laufen lassen ko:nnen.
   Alle Programme, wie Texteditoren, Compiler oder Spiele befinden
   sich auf dem Rechner, der mit dem Terminal verbunden ist.

   Es gibt viele Dumb-Terminals, die von verschiedenen Herstellern
   produziert werden, wie zum Beispiel der VT-100 von Digital
   Equipment Corporation oder der WY-75 von Wyse. So gut wie jeder
   der verschiedenen Terminals sollte mit FreeBSD zusammenarbeiten.
   Manche High-End Gera:te verfu:gen sogar u:ber Grafikfa:higkeiten,
   die allerdings nur von spezieller Software genutzt werden kann.

   Dumb-Terminals sind in Umgebungen beliebt, in denen keine
   Grafikanwendungen, wie zum Beispiel X-Programme, laufen mu:ssen.

     --------------------------------------------------------------

    27.3.1.2. PCs, die als Terminal fungieren

   Jeder PC kann die Funktion eines Dumb-Terminals, der ja nur Text
   senden und empfangen kann, u:bernehmen. Dazu brauchen Sie nur das
   richtige Kabel und eine Terminalemulation, die auf dem PC la:uft.

   Diese Konfiguration ist im privaten Umfeld sehr beliebt. Wenn Ihr
   Ehepartner zum Beispiel gerade an der FreeBSD-Konsole arbeitet,
   ko:nnen Sie einen weniger leistungsstarken PC, der als Terminal
   mit dem FreeBSD-System verbunden ist, benutzen, um dort
   gleichzeitig im Textmodus zu arbeiten.

   Bereits im Basissystem sind mindestens zwei Werkzeuge vorhanden,
   die Sie zur Arbeit u:ber eine serielle Konsole einsetzen ko:nnen:
   cu(1) sowie tip(1).

   Um sich von einem FreeBSD-System aus u:ber eine serielle
   Verbindung mit einem anderen System zu verbinden, geben Sie
   folgenden Befehl ein:

 # cu -l serial-port-device

   "serial-port-device" ist hier der Name der Gera:tedatei, die einer
   bestimmten seriellen Schnittstelle Ihres Systems zugewiesen ist.
   Diese Gera:tedateien werden /dev/cuadN genannt.

   Der Buchstabe "N" muss dabei durch die Nummer des seriellen Ports
   Ihres Systems ersetzt werden.

     Anmerkung: Beachten Sie, dass die Numerierung dieses Daten (im
     Gegensatz etwa zu MS-DOS-kompatiblen Systemen) unter FreeBSD mit
     Null und nicht mit Eins beginnt. Die Schnittstelle "COM1"
     entspricht daher in der Regel /dev/cuad0 unter FreeBSD.

     Anmerkung: In der Ports-Sammlung finden sich weitere Programme
     (beispielsweise comms/minicom), mit denen Sie eine Verbindung
     u:ber eine serielle Schnittstelle herstellen ko:nnen.

     --------------------------------------------------------------

    27.3.1.3. X-Terminals

   X-Terminals sind die ausgereiftesten der verfu:gbaren Terminals.
   Sie werden nicht mit der seriellen Schnittstelle sondern mit einem
   Netzwerk, wie dem Ethernet, verbunden. Diese Terminals sind auch
   nicht auf den Textmodus beschra:nkt, sondern ko:nnen jede
   X-Anwendung darstellen.

   X-Terminals sind hier nur der Vollsta:ndigkeit halber aufgeza:hlt.
   Die Einrichtung von X-Terminals wird in diesem Abschnitt nicht
   beschrieben.

     --------------------------------------------------------------

  27.3.2. Konfiguration

   Im Folgenden wird beschrieben, wie Sie Ihr FreeBSD-System
   konfigurieren mu:ssen, um sich an einem Terminal anzumelden. Dabei
   wird vorausgesetzt, dass der Kernel bereits die serielle
   Schnittstelle, die mit dem Terminal verbunden ist, unterstu:tzt.
   Weiterhin sollte der Terminal schon angeschlossen sein.

   Aus Kapitel 13 wissen Sie, dass init fu:r das Initialisieren des
   Systems und den Start von Prozessen zum Zeitpunkt des Systemstarts
   verantwortlich ist. Unter anderem liest init /etc/ttys ein und
   startet fu:r jeden verfu:gbaren Terminal einen getty Prozess.
   getty wiederum fragt beim Anmelden den Benutzernamen ab und
   startet login.

   Um Terminals auf Ihrem FreeBSD-System einzurichten, fu:hren Sie
   folgenden Schritte als root durch:

    1. Wenn er noch nicht da ist, fu:gen Sie einen Eintrag in
       /etc/ttys fu:r die serielle Schnittstelle aus /dev ein.

    2. Geben Sie /usr/libexec/getty als auszufu:hrendes Programm an.
       Als Parameter fu:r getty geben Sie den passenden
       Verbindungstyp aus /etc/gettytab an.

    3. Geben Sie den Terminaltyp an.

    4. Aktivieren Sie den Anschluss.

    5. Geben Sie die Sicherheit des Anschlusses an.

    6. Veranlassen Sie init /etc/ttys erneut zu lesen.

   Optional ko:nnen Sie in /etc/gettytab auch einen auf Ihre Zwecke
   angepassten Terminaltyp erstellen. Die genaue Vorgehensweise wird
   in diesem Abschnitt nicht erkla:rt, aber die Manualpages von
   gettytab(5) und getty(8) enthalten dazu weitere Informationen.

     --------------------------------------------------------------

    27.3.2.1. Hinzufu:gen eines Eintrags in /etc/ttys

   In /etc/ttys werden alle Terminals aufgefu:hrt, an denen Sie sich
   auf dem FreeBSD-System anmelden ko:nnen. Hier findet sich zum
   Beispiel ein Eintrag fu:r die erste virtuelle Konsole /dev/ttyv0,
   der es Ihnen ermo:glicht, sich dort anzumelden. Die Datei entha:lt
   des Weiteren Eintra:ge fu:r andere virtuelle Konsolen, serielle
   Schnittstellen und Pseudoterminals. Wenn Sie einen Terminal
   konfigurieren wollen, fu:gen sie einen Eintrag fu:r den Namen des
   Gera:tes aus /dev ohne das Pra:fix /dev hinzu. Zum Beispiel wird
   /dev/ttyv0 als ttyv0 aufgefu:hrt.

   In der Voreinstellung entha:lt /etc/ttys Eintra:ge fu:r die ersten
   vier seriellen Schnittstellen: ttyu0 bis ttyu3. Wenn Sie an eine
   von diesen einen Terminal anschliessen, brauchen Sie keinen
   weiteren Eintrag hinzuzufu:gen.

   Beispiel 27-1. Eintra:ge in /etc/ttys hinzufu:gen

   Angenommen, wir wollen an ein System zwei Terminals anschliessen:
   Einen Wyse-50 und einen alten 286 IBM PC, der mit Procomm einen
   VT-100 Terminal emuliert. Den Wyse-Terminal verbinden wir mit der
   zweiten seriellen Schnittstelle und den 286 mit der sechsten
   seriellen Schnittstelle (einem Anschluss auf einer
   Multiportkarte). Die entsprechenden Eintra:ge in /etc/ttys wu:rden
   dann wie folgt aussehen:

 ttyu1(1)  "/usr/libexec/getty std.38400"(2)  wy50(3)  on(4)  insecure(5)
 ttyu5   "/usr/libexec/getty std.19200"  vt100  on  insecure
          

   (1)
           Das erste Feld gibt normalerweise den Namen der
           Gera:tedatei aus /dev an.
   (2)
           Im zweiten Feld wird das auszufu:hrende Kommando, normal
           ist das getty(8), angegeben. getty initialisiert und
           o:ffnet die Verbindung, setzt die Geschwindigkeit und
           fragt den Benutzernamen ab. Danach fu:hrt es login(1) aus.

           getty akzeptiert einen optionalen Parameter auf der
           Kommandozeile, den Verbindungstyp, der die Eigenschaften
           der Verbindung, wie die Geschwindigkeit und Parita:t,
           festlegt. Die Typen und die damit verbundenen
           Eigenschaften liest getty aus /etc/gettytab.

           /etc/gettytab entha:lt viele Eintra:ge sowohl fu:r neue
           wie auch alte Terminalverbindungen. Die meisten Eintra:ge,
           die mit std beginnen, sollten mit einem festverdrahteten
           Terminal funktionieren. Fu:r jede Geschwindigkeit zwischen
           110 bps und 115200 bps gibt es einen std Eintrag.
           Natu:rlich ko:nnen Sie auch eigene Eintra:ge erstellen,
           Informationen dazu finden Sie in gettytab(5).

           Wenn Sie den Verbindungstyp in /etc/ttys eintragen,
           stellen Sie bitte sicher, dass die
           Kommunikationseinstellungen auch mit denen des Terminals
           u:bereinstimmen.

           In unserem Beispiel verwendet der Wyse-50 keine Parita:t
           und 38400 bps, der 286 PC benutzt ebenfalls keine Parita:t
           und arbeitet mit 19200 bps.

   (3)
           Das dritte Feld gibt den Terminaltyp an, der normalerweise
           mit diesem Anschluss verbunden ist. Fu:r
           Einwa:hlverbindungen wird oft unknown oder dialup benutzt,
           da sich die Benutzer praktisch mit beliebigen Terminals
           oder Emulatoren anmelden ko:nnen. Bei festverdrahteten
           Terminals a:ndert sich der Typ nicht, so dass Sie in
           diesem Feld einen richtigen Typ aus der termcap(5)
           Datenbank angeben ko:nnen.

           In unserem Beispiel benutzen wir fu:r den Wyse-50 den
           entsprechenden Typ aus termcap(5), der 286 PC wird als
           VT-100, den er ja emuliert, angegeben.

   (4)
           Das vierte Feld gibt an, ob der Anschluss aktiviert werden
           soll. Wenn Sie hier on angeben, startet init das Programm,
           das im zweiten Feld angegeben wurde (normal getty). Wenn
           Sie off angeben, wird das Kommando aus dem zweiten Feld
           nicht ausgefu:hrt und folglich ko:nnen Sie sich dann an
           dem betreffenden Terminal nicht anmelden.
   (5)
           Im letzten Feld geben Sie die Sicherheit des Anschlusses
           an. Wenn Sie hier secure angeben, darf sich root (oder
           jeder Account mit der UID 0) u:ber diese Verbindung
           anmelden. Wenn Sie insecure angeben, du:rfen sich nur
           unprivilegierte Benutzer anmelden. Diese ko:nnen spa:ter
           mit su(1) oder einem a:hnlichen Mechanismus zu root
           wechseln.

           Es wird dringend empfohlen, insecure nur fu:r Terminals
           hinter verschlossenen Tu:ren zu verwenden, da Sie mit su
           leicht zum Superuser werden ko:nnen.

     --------------------------------------------------------------

    27.3.2.2. init zwingen, /etc/ttys erneut zu lesen

   Nachdem Sie die no:tigen A:nderungen in /etc/ttys vorgenommen
   haben, schicken Sie init ein SIGHUP-Signal (hangup), um es zu
   veranlassen, seine Konfigurationsdatei neu zu lesen:

 # kill -HUP 1

     Anmerkung: Da init immer der erste Prozess auf einem System ist,
     besitzt es immer die PID 1.

   Wenn alles richtig eingerichtet ist, alle Kabel angeschlossen und
   die Terminals eingeschaltet sind, sollte fu:r jeden Terminal ein
   getty Prozess laufen und auf jedem Terminal sollten Sie eine
   Anmeldeaufforderung sehen.

     --------------------------------------------------------------

  27.3.3. Fehlersuche

   Selbst wenn Sie den Anweisungen akribisch gefolgt sind, kann es
   immer noch zu Fehlern beim Einrichten eines Terminals kommen. Die
   folgende Aufza:hlung von Symptomen beschreibt mo:gliche Lo:sungen:

     --------------------------------------------------------------

    27.3.3.1. Es erscheint kein Anmeldeprompt

   Stellen Sie sicher, dass der Terminal verbunden und eingeschaltet
   ist. Wenn ein PC als Terminal fungiert, u:berpru:fen Sie, dass die
   Terminalemulation auf den richtigen Schnittstellen la:uft.

   Stellen Sie sicher, dass Sie das richtige Kabel verwenden und dass
   das Kabel fest mit dem Terminal und dem FreeBSD-Rechner verbunden
   ist.

   Stellen Sie sicher, dass die Einstellungen fu:r die
   Geschwindigkeit (bps) und Parita:t auf dem FreeBSD System und dem
   Terminal gleich sind. Wenn Ihr Terminal einen Bildschirm besitzt,
   u:berpru:fen Sie die richtige Einstellung von Helligkeit und
   Kontrast. Wenn Ihr Terminal druckt, stellen Sie die ausreichende
   Versorgung mit Papier und Tinte sicher.

   U:berpru:fen Sie mit ps, dass der getty Prozess fu:r den Terminal
   la:uft:

 # ps -axww|grep getty

   Fu:r jeden Terminal sollten Sie einen Eintrag sehen. Aus dem
   folgenden Beispiel erkennen Sie, dass getty auf der zweiten
   seriellen Schnittstelle tyyd1 la:uft und den Verbindungstyp
   std.38400 aus /etc/gettytab benutzt:

 22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyu1

   Wenn getty nicht la:uft, u:berpru:fen Sie, ob der Anschluss in
   /etc/ttys aktiviert ist. Haben Sie kill -HUP 1 abgesetzt, nachdem
   Sie /etc/ttys gea:ndert hatten?

   Wenn getty la:uft, aber der Terminal immer noch kein Anmeldeprompt
   ausgibt, oder Sie am Anmeldeprompt nichts eingeben ko:nnen, kann
   es sein, dass Ihr Terminal oder Kabel keinen Hardware-Handshake
   unterstu:tzt. A:ndern Sie dann den Eintrag std.38400 in /etc/ttys
   zu 3wire.38400. Nachdem Sie /etc/ttys gea:ndert haben, setzen Sie
   das Kommando kill -HUP 1 ab. Der Eintrag 3wire besitzt a:hnliche
   Eigenschaften wie der Eintrag std, ignoriert aber den
   Hardware-Handshake. Wenn Sie den Eintrag 3wire verwenden, mu:ssen
   Sie vielleicht die Geschwindigkeit verkleinern oder die
   Software-Flusssteuerung aktivieren, um Pufferu:berla:ufe zu
   vermeiden.

     --------------------------------------------------------------

    27.3.3.2. Es erscheinen nur unversta:ndliche Zeichen

   Stellen Sie sicher, dass die Einstellungen fu:r die
   Geschwindigkeit (bps) und Parita:t auf dem FreeBSD System und dem
   Terminal gleich sind. Kontrollieren Sie den getty Prozess und
   stellen Sie sicher, dass der richtige Verbindungstyp aus
   /etc/gettytab benutzt wird. Wenn das nicht der Fall ist, editieren
   Sie /etc/ttys und setzen das Kommando kill-HUP 1 ab.

     --------------------------------------------------------------

    27.3.3.3. Zeichen erscheinen doppelt und eingegebene Passwo:rter
    erscheinen im Klartext

   Stellen Sie den Terminal oder die Terminalemulation von "half
   duplex" oder "local echo" auf "full duplex." um.

     --------------------------------------------------------------

27.4. Einwa:hlverbindungen

   Beigetragen von Guy Helmer. Mit Anmerkungen von Sean Kelly.

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

   Das Einrichten von Einwa:hlverbindungen a:hnelt dem Anschliessen
   von Terminals, nur dass Sie anstelle eines Terminals ein Modem
   verwenden.

     --------------------------------------------------------------

  27.4.1. Externe und interne Modems

   Externe Modems sind fu:r Einwa:hlverbindungen besser geeignet, da
   sie die Konfiguration in nicht flu:chtigem RAM speichern ko:nnen.
   Zudem verfu:gen Sie u:ber Leuchtanzeigen, die den Status wichtiger
   RS-232 Signale anzeigen und unter Umsta:nden Besucher beeindrucken
   ko:nnen.

   Interne Modems verfu:gen normalerweise nicht u:ber nicht
   flu:chtiges RAM und lassen sich meist nur u:ber DIP-Schalter
   konfigurieren. Selbst wenn ein internes Modem Leuchtanzeigen
   besitzt, sind diese meist schwer einzusehen, wenn das Modem
   eingebaut ist.

     --------------------------------------------------------------

    27.4.1.1. Modems und Kabel

   Mit einem externen Modem mu:ssen Sie das richtige Kabel benutzen:
   Ein Standard RS-232C Kabel, bei dem die folgenden Signale
   miteinander verbunden sind, sollte ausreichen:

   Tabelle 27-4. Signalnamen

   Abku:rzung Bedeutung                                               
   RD         Received Data                                           
   TD         Transmitted Data                                        
   DTR        Data Terminal Ready                                     
   DSR        Data Set Ready                                          
   DCD        Data Carrier Detect (dadurch erkennt RS-232 das Signal  
              Received Line)                                          
   SG         Signal Ground                                           
   RTS        Request to Send                                         
   CTS        Clear to Send                                           

   Ab Geschwindigkeiten von 2400 bps beno:tigt FreeBSD die Signale
   RTS und CTS fu:r die Flusssteuerung. Das Signal CD zeigt an, ob
   ein Tra:ger vorliegt, das heisst ob die Verbindung aufgebaut ist
   oder beendet wurde. DTR zeigt an, dass das Gera:t betriebsbereit
   ist. Es gibt einige Kabel, bei denen nicht alle no:tigen Signale
   verbunden sind. Wenn Sie Probleme der Art haben, dass zum Beispiel
   die Sitzung nicht beendet wird, obwohl die Verbindung beendet
   wurde, kann das an einem solchen Kabel liegen.

   Wie andere UNIX Betriebssysteme auch, benutzt FreeBSD
   Hardwaresignale, um festzustellen, ob ein Anruf beantwortet wurde,
   eine Verbindung beendet wurde, oder um die Verbindung zu
   schliessen und das Modem zuru:ckzusetzen. FreeBSD vermeidet es,
   dem Modem Kommandos zu senden, oder den Statusreport des Modems
   abzufragen. Falls Sie ein Benutzer von PC-basierenden Bulletin
   Board Systemen sind, mag Sie das verwundern.

     --------------------------------------------------------------

  27.4.2. Schnittstellenbausteine

   FreeBSD unterstu:tzt EIA RS-232C (CCITT V.24) serielle
   Schnittstellen, die auf den NS8250, NS16450, NS16550 oder NS16550A
   Bausteinen basieren. Die Bausteine der Serie 16550 verfu:gen u:ber
   einen 16 Byte grossen Puffer, der als FIFO angelegt ist. Wegen
   Fehler in der FIFO-Logik kann der Puffer in einem 16550 Baustein
   allerdings nicht genutzt werden, das heisst der Baustein muss als
   16450 betrieben werden. Bei allen Bausteinen ohne Puffer und dem
   16550 Baustein muss jedes Byte einzeln von dem Betriebssystem
   verarbeitet werden, was Fehler bei hohen Geschwindigkeiten oder
   grosser Systemlast erzeugt. Es sollten daher nach Mo:glichkeit
   serielle Schnittstellen, die auf 16550A Bausteinen basieren,
   eingesetzt werden.

     --------------------------------------------------------------

  27.4.3. U:berblick

   Wie bei Terminals auch, startet init fu:r jede serielle
   Schnittstelle, die eine Einwa:hlverbindung zur Verfu:gung stellt,
   einen getty Prozess. Wenn das Modem beispielsweise an /dev/ttyu0
   angeschlossen ist, sollte in der Ausgabe von ps ax eine Zeile wie
   die folgende erscheinen:

  4850 ??  I      0:00.09 /usr/libexec/getty V19200 ttyu0

   Wenn sich ein Benutzer einwa:hlt und die Verbindung aufgebaut ist,
   zeigt das Modem dies durch das CD Signal (Carrier Detect) an. Der
   Kernel merkt, dass ein Signal anliegt und vollendet das O:ffnen
   der Schnittstelle durch getty. Dann sendet getty das Anmeldeprompt
   mit der ersten fu:r die Verbindung vereinbarten Geschwindigkeit
   und wartet auf eine Antwort. Wenn die Antwort unversta:ndlich ist,
   weil zum Beispiel die Geschwindigkeit des Modems von gettys
   Geschwindigkeit abweicht, versucht getty die Geschwindigkeit
   solange anzupassen, bis es eine versta:ndliche Antwort erha:lt.

   getty fu:hrt, nachdem der Benutzer seinen Namen eingegeben hat,
   /usr/bin/login aus, welches das Passwort abfragt und danach die
   Shell des Benutzers startet.

     --------------------------------------------------------------

  27.4.4. Konfigurationsdateien

   Drei Konfigurationsdateien in /etc steuern, ob eine Einwahl in Ihr
   FreeBSD-System mo:glich ist. Die erste, /etc/gettytab,
   konfiguriert den /usr/libexec/getty Daemon. In /etc/ttys wird
   festgelegt, auf welchen Schnittstellen /sbin/init einen getty
   Prozess startet. Schliesslich haben Sie in /etc/rc.d/serial die
   Mo:glichkeit, Schnittstellen zu initialisieren.

   Es gibt zwei Ansichten daru:ber, wie Modems fu:r
   Einwa:hlverbindungen unter UNIX zu konfigurieren sind. Zum einen
   kann die Geschwindigkeit zwischen dem Modem und dem Computer fest
   eingestellt werden. Sie ist damit unabha:ngig von der
   Geschwindigkeit, mit der sich der entfernte Benutzer einwa:hlt.
   Dies hat den Vorteil, dass der entfernte Benutzer das
   Anmeldeprompt sofort bekommt. Der Nachteil bei diesem Verfahren
   ist, dass das System die tatsa:chliche Geschwindigkeit der
   Verbindung nicht kennt. Damit ko:nnen bildschirmorientierte
   Programme wie Emacs ihren Bildschirmaufbau nicht an langsame
   Verbindungen anpassen, um die Antwortzeiten zu verbessern.

   Die andere Mo:glichkeit besteht darin, die Geschwindigkeit der
   RS-232 Schnittstelle des lokalen Modems an die Geschwindigkeit des
   entfernten Modems anzupassen. Bei einer V.32bis (14400 bps)
   Verbindung kann das lokale Modem die RS-232 Schnittstelle mit
   19200 bps betreiben, wa:hrend bei einer Verbindung mit 2400 bps
   die RS-232 Schnittstelle mit 2400 bps betrieben wird. Da getty die
   Verbindungsgeschwindigkeit des Modems nicht kennt, startet es den
   Anmeldevorgang mit der Ausgabe von login: und wartet auf eine
   Antwort. Wenn der Benutzer der Gegenstelle nun nur
   unversta:ndliche Zeichen erha:lt, muss er solange Enter dru:cken,
   bis das Anmeldeprompt erscheint. Solange die Geschwindigkeiten
   nicht u:bereinstimmen, sind die Antworten der Gegenstelle fu:r
   getty ebenfalls unversta:ndlich. In diesem Fall wechselt getty zur
   na:chsten Geschwindigkeit und gibt wieder login: aus. In aller
   Regel erha:lt der Benutzer der Gegenstelle nach ein bis zwei
   Tastendru:cken eine erkennbare Anmeldeaufforderung. Diese
   Anmeldeprozedur sieht nicht so sauber wie die Methode mit einer
   festen Geschwindigkeit aus, bietet dem Benutzer einer langsamen
   Verbindung allerdings den Vorteil, dass sich bildschirmorientierte
   Programme an die Geschwindigkeit anpassen ko:nnen.

   Im Folgenden wird die Konfiguration fu:r beide Methoden
   besprochen, doch die Methode der angepassten Geschwindigkeit wird
   bei der Diskussion bevorzugt.

     --------------------------------------------------------------

    27.4.4.1. /etc/gettytab

   Mit /etc/gettytab wird getty(8) im Stil von termcap(5)
   konfiguriert. Das Format dieser Datei und die Bedeutung der
   Eintra:ge wird in gettytab(5) beschrieben.

     --------------------------------------------------------------

      27.4.4.1.1. Konfiguration fu:r feste Geschwindigkeit

   Wenn Sie die Modemgeschwindigkeit vorgeben, werden Sie in
   /etc/gettytab nichts a:ndern mu:ssen.

     --------------------------------------------------------------

      27.4.4.1.2. Konfiguration fu:r angepasste Geschwindigkeit

   In /etc/gettytab mu:ssen Eintra:ge fu:r die Geschwindigkeiten, die
   Sie benutzen wollen, sein. Wenn Sie ein 2400 bps Modem besitzen,
   ko:nnen Sie wahrscheinlich den schon vorhandenen D2400 Eintrag
   benutzen.

 #
 # Fast dialup terminals, 2400/1200/300 rotary (can start either way)
 #
 D2400|d2400|Fast-Dial-2400:\
         :nx=D1200:tc=2400-baud:
 3|D1200|Fast-Dial-1200:\
         :nx=D300:tc=1200-baud:
 5|D300|Fast-Dial-300:\
         :nx=D2400:tc=300-baud:

   Wenn Sie ein Modem mit einer ho:heren Geschwindigkeit besitzen,
   mu:ssen Sie wahrscheinlich in /etc/gettytab weitere Eintra:ge
   erstellen. Hier ist ein Beispiel, das Sie mit einem 14400 bps
   Modem benutzen ko:nnen:

 #
 # Additions for a V.32bis Modem
 #
 um|V300|High Speed Modem at 300,8-bit:\
         :nx=V19200:tc=std.300:
 un|V1200|High Speed Modem at 1200,8-bit:\
         :nx=V300:tc=std.1200:
 uo|V2400|High Speed Modem at 2400,8-bit:\
         :nx=V1200:tc=std.2400:
 up|V9600|High Speed Modem at 9600,8-bit:\
         :nx=V2400:tc=std.9600:
 uq|V19200|High Speed Modem at 19200,8-bit:\
         :nx=V9600:tc=std.19200:

   Die damit erzeugten Verbindungen verwenden 8 Bit und keine
   Parita:t.

   Im obigen Beispiel startet die Geschwindigkeit bei 19200 bps (eine
   V.32bis Verbindung) und geht dann u:ber 9600 bps (V.32), 400 bps,
   1200 bps und 300 bps wieder zuru:ck zu 19200 bps. Das
   Schlu:sselwort nx= (next table) sorgt fu:r das zyklische
   Durchlaufen der Geschwindigkeiten. Jede Zeile zieht zudem noch mit
   tc= (table continuation) die Vorgabewerte fu:r die jeweilige
   Geschwindigkeit an.

   Wenn Sie ein 28800 bps Modem besitzen und/oder Kompression mit
   einem 14400 bps Modem benutzen wollen, brauchen Sie ho:here
   Geschwindigkeiten als 19200 bps. Das folgende Beispiel startet mit
   57600 bps:

 #
 # Additions for a V.32bis or V.34 Modem
 # Starting at 57600 bps
 #
 vm|VH300|Very High Speed Modem at 300,8-bit:\
         :nx=VH57600:tc=std.300:
 vn|VH1200|Very High Speed Modem at 1200,8-bit:\
         :nx=VH300:tc=std.1200:
 vo|VH2400|Very High Speed Modem at 2400,8-bit:\
         :nx=VH1200:tc=std.2400:
 vp|VH9600|Very High Speed Modem at 9600,8-bit:\
         :nx=VH2400:tc=std.9600:
 vq|VH57600|Very High Speed Modem at 57600,8-bit:\
         :nx=VH9600:tc=std.57600:

     Anmerkung: Wenn Sie eine langsame CPU oder ein stark
     ausgelastetes System besitzen und sich kein 16550A in Ihrem
     System befindet, erhalten Sie bei 57600 bps vielleicht "sio"
     Fehlermeldungen der Form "silo overflow".

     --------------------------------------------------------------

    27.4.4.2. /etc/ttys

   /etc/ttys wurde bereits in Beispiel 27-1 besprochen. Die
   Konfiguration fu:r Modems ist a:hnlich, allerdings braucht getty
   ein anderes Argument und es muss ein anderer Terminaltyp angegeben
   werden. Der Eintrag fu:r beide Methoden (feste und angepasste
   Geschwindigkeit) hat die folgende Form:

 ttyu0   "/usr/libexec/getty xxx"   dialup on

   Das erste Feld der obigen Zeile gibt die Gera:tedatei fu:r diesen
   Eintrag an - ttyu0 bedeutet, dass getty mit /dev/ttyu0 arbeitet.
   Das zweite Feld "/usr/libexec/getty xxx" gibt das Kommando an, das
   init fu:r dieses Gera:t startet (xxx wird durch einen passenden
   Eintrag aus /etc/gettytab ersetzt). Die Vorgabe fu:r den
   Terminaltyp, hier dialup, wird im dritten Feld angegeben. Das
   vierte Feld, on, zeigt init an, dass die Schnittstelle aktiviert
   ist. Im fu:nften Feld ko:nnte noch secure angegeben werden, um
   Anmeldungen von root zu erlauben, doch sollte das wirklich nur
   fu:r physikalisch sichere Terminals, wie die Systemkonsole,
   aktiviert werden.

   Die Vorgabe fu:r den Terminaltyp, dialup im obigen Beispiel,
   ha:ngt von lokalen Gegebenheiten ab. Traditionell wird dialup fu:r
   Einwa:hlverbindungen verwendet, so dass die Benutzer in ihren
   Anmeldeskripten den Terminaltyp auf ihren Terminal abstimmen
   ko:nnen, wenn der Typ auf dialup gesetzt ist. Wenn Sie aber
   beispielsweise nur VT102 Terminals oder Emulatoren einsetzen,
   ko:nnen Sie den Terminaltyp hier auch fest auf vt102 setzen.

   Nachdem Sie /etc/ttys gea:ndert haben, mu:ssen Sie init ein HUP
   Signal schicken, damit es die Datei wieder einliest. Sie ko:nnen
   dazu das folgende Kommando verwenden:

 # kill -HUP 1

   Wenn Sie das System zum ersten Mal konfigurieren, sollten Sie
   dieses Kommando erst ausfu:hren, wenn Sie Ihr Modem richtig
   konfiguriert und angeschlossen haben.

     --------------------------------------------------------------

      27.4.4.2.1. Konfiguration fu:r feste Geschwindigkeit

   Das Argument von getty muss in diesem Fall eine feste
   Geschwindigkeit vorgeben. Der Eintrag fu:r ein Modem, das fest auf
   19200 bps eingestellt ist, ko:nnte wie folgt aussehen:

 ttyu0   "/usr/libexec/getty std.19200"   dialup on

   Wenn Ihr Modem auf eine andere Geschwindigkeit eingestellt ist,
   setzen Sie anstelle von std.19200 einen passenden Eintrag der Form
   std.speed ein. Stellen Sie sicher, dass dies auch ein gu:ltiger
   Verbindungstyp aus /etc/gettytab ist.

     --------------------------------------------------------------

      27.4.4.2.2. Konfiguration fu:r angepasste Geschwindigkeit

   Das Argument von getty muss hier auf einen der Eintra:ge aus
   /etc/gettytab zeigen, der zu einer Kette von Eintra:gen geho:rt,
   die die zu probierenden Geschwindigkeiten beschreiben. Wenn Sie
   dem obigen Beispiel gefolgt sind und zusa:tzliche Eintra:ge in
   /etc/gettytab erzeugt haben, ko:nnen Sie die folgende Zeile
   verwenden:

 ttyu0   "/usr/libexec/getty V19200"   dialup on

     --------------------------------------------------------------

    27.4.4.3. /etc/rc.d/serial

   Modems, die ho:here Geschwindigkeiten unterstu:tzen, zum Beispiel
   V.32, V.32bis und V.34 Modems, benutzen Hardware-Flusssteuerung
   (RTS/CTS). Fu:r die entsprechenden Schnittstellen ko:nnen Sie die
   Flusssteuerung mit stty in /etc/rc.d/serial einstellen.

   Um beispielsweise die Hardware-Flusssteuerung fu:r die Gera:te zur
   Ein- und Auswahl der zweiten seriellen Schnittstelle (COM2) zu
   aktivieren, benutzen Sie die Dateien zur Initialisierung der
   entsprechenden Gera:te und fu:gen die folgenden Zeilen in
   /etc/rc.d/serial hinzu:

 # Serial port initial configuration
 stty -f /dev/ttyu1.init crtscts
 stty -f /dev/cuad1.init crtscts

     --------------------------------------------------------------

  27.4.5. Modemkonfiguration

   Wenn Sie ein Modem besitzen, das seine Konfiguration in nicht
   flu:chtigem RAM speichert, werden Sie ein Terminalprogramm wie
   Telix unter MS-DOS oder tip unter FreeBSD beno:tigen, um die
   Parameter einzustellen. Verbinden Sie sich mit derselben
   Geschwindigkeit, die getty zuerst benutzen wu:rde, mit dem Modem
   und treffen Sie folgende Einstellungen:

     * DCD ist eingeschaltet, wenn das Tra:gersignal des entfernten
       Modems erkannt wird.

     * Im Betrieb liegt DTR an. Bei einem Verlust von DTR legt das
       Modem auf und setzt sich zuru:ck.

     * CTS Flusssteuerung ist fu:r ausgehende Daten aktiviert.

     * XON/XOFF Flusssteuerung ist ausgeschaltet.

     * RTS Flusssteuerung ist fu:r eingehende Daten aktiviert.

     * Keine Ru:ckmeldungen ausgeben.

     * Die Echo-Funktion ist deaktiviert.

   In der Dokumentation Ihres Modems finden Sie die no:tigen Befehle,
   die Sie absetzen mu:ssen, und/oder no:tigen
   DIP-Schalterstellungen, um die obigen Einstellungen zu treffen.

   Fu:r ein externes 14400 U.S. Robotics(R) Sportster(R) gelten zum
   Beispiel die folgenden Befehle:

 ATZ
 AT&C1&D2&H1&I0&R2&W

   Bei dieser Gelegenheit ko:nnen Sie auch gleich andere
   Einstellungen, zum Beispiel ob Sie V42.bis und/oder MNP5
   Kompression benutzen wollen, an Ihrem Modem vornehmen.

   Bei einem externen 14400 U.S. Robotics Sportster mu:ssen Sie auch
   noch einige DIP-Schalter einstellen. Die folgenden Einstellungen
   ko:nnen Sie vielleicht als Beispiel fu:r andere Modems verwenden:

     * Schalter 1: OBEN - DTR normal

     * Schalter 2: N/A (Ru:ckmeldungen als Text/numerische
       Ru:ckmeldungen)

     * Schalter 3: OBEN - Keine Ru:ckmeldungen ausgeben

     * Schalter 4: UNTEN - Echo-Funktion aus

     * Schalter 5: OBEN - Rufannahme aktiviert

     * Schalter 6: OBEN - Carrier Detect normal

     * Schalter 7: OBEN - Einstellungen aus dem NVRAM laden

     * Schalter 8: N/A (Smart Mode/Dumb Mode)

   Fu:r Einwa:hlverbindungen sollten die Ru:ckmeldungen deaktiviert
   sein, da sonst getty dem Modem das Anmeldeprompt login: schickt
   und das Modem im Kommandomodus das Prompt wieder ausgibt
   (Echo-Funktion) oder eine Ru:ckmeldung gibt. Das fu:hrt dann zu
   einer la:nglichen und fruchtlosen Kommunikation zwischen dem Modem
   und getty.

     --------------------------------------------------------------

    27.4.5.1. Konfiguration fu:r feste Geschwindigkeit

   Die Geschwindigkeit zwischen Modem und Computer muss auf einen
   festen Wert eingestellt werden. Mit einem externen 14400 U.S.
   Robotics Sportster Modem setzen die folgenden Kommandos die
   Geschwindigkeit auf den Wert der Datenendeinrichtung fest:

 ATZ
 AT&B1&W

     --------------------------------------------------------------

    27.4.5.2. Konfiguration fu:r angepasste Geschwindigkeit

   In diesem Fall muss die Geschwindigkeit der seriellen
   Schnittstelle des Modems der eingehenden Geschwindigkeit angepasst
   werden. Fu:r ein externes 14400 U.S. Robotics Sportster Modem
   erlauben die folgenden Befehle eine Anpassung der Geschwindigkeit
   der seriellen Schnittstelle fu:r Verbindungen, die keine
   Fehlerkorrektur verwenden:

 ATZ
 AT&B2&W

   Verbindungen mit Fehlerkorrektur (V.42, MNP) verwenden die
   Geschwindigkeit der Datenendeinrichtung.

     --------------------------------------------------------------

    27.4.5.3. U:berpru:fen der Modemkonfiguration

   Die meisten Modems verfu:gen u:ber Kommandos, die die
   Konfiguration des Modems in lesbarer Form ausgeben. Auf einem
   externen 14400 U.S. Robotics Sportster zeigt ATI5 die
   Einstellungen im nicht flu:chtigen RAM an. Um die wirklichen
   Einstellungen unter Beru:cksichtigung der DIP-Schalter zu sehen,
   benutzen Sie ATZ gefolgt von ATI4.

   Wenn Sie ein anderes Modem benutzen, schauen Sie bitte in der
   Dokumentation Ihres Modems nach, wie Sie die Konfiguration des
   Modems u:berpru:fen ko:nnen.

     --------------------------------------------------------------

  27.4.6. Fehlersuche

   Bei Problemen ko:nnen Sie die Einwa:hlverbindung anhand der
   folgenden Punkte u:berpru:fen:

     --------------------------------------------------------------

    27.4.6.1. U:berpru:fen des FreeBSD-Systems

   Schliessen Sie das Modem an das FreeBSD-System an und booten Sie
   das System. Wenn Ihr Modem u:ber Statusindikatoren verfu:gt,
   u:berpru:fen Sie, ob der DTR Indikator leuchtet, wenn das
   Anmeldeprompt erscheint. Dies zeigt an, dass das FreeBSD-System
   einen getty Prozess auf der entsprechenden Schnittstelle gestartet
   hat und das Modem auf einkommende Verbindungen wartet.

   Wenn der DTR-Indikator nicht leuchtet, melden Sie sich an dem
   FreeBSD-System an und u:berpru:fen mit ps ax, ob FreeBSD einen
   getty-Prozess auf der entsprechenden Schnittstelle gestartet hat.
   Unter den angezeigten Prozessen sollten Sie a:hnliche wie die
   folgenden finden:

   114 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu0
   115 ??  I      0:00.10 /usr/libexec/getty V19200 ttyu1

   Wenn das Modem noch keinen Anruf entgegengenommen hat und Sie
   stattdessen die folgende Zeile sehen

   114 d0  I      0:00.10 /usr/libexec/getty V19200 ttyu0

   bedeutet dies, dass getty die Schnittstelle schon geo:ffnet hat
   und zeigt Kabelprobleme oder eine falsche Modemkonfiguration an,
   da getty die Schnittstelle erst dann o:ffnen kann, wenn das CD
   Signal (Carrier Detect) vom Modem anliegt.

   Wenn Sie keine getty-Prozesse auf den gewu:nschten ttyuN Ports
   finden, untersuchen Sie bitte /etc/ttys auf Fehler. Suchen Sie
   auch in /var/log/messages nach Meldungen von init oder getty. Wenn
   Sie dort Meldungen finden, sollten Sie noch einmal die beiden
   Konfigurationsdateien /etc/ttys und /etc/gettytab nach Fehlern
   durchsehen. U:berpru:fen Sie auch, ob die Gera:tedateien
   /dev/ttyuN vorhanden sind.

     --------------------------------------------------------------

    27.4.6.2. Einwa:hlversuch

   Versuchen Sie, sich in Ihr System einzuwa:hlen. Auf dem entfernten
   System stellen Sie bitte die folgenden Kommunikationsparameter
   ein: 8 Bit, keine Parita:t, ein Stop-Bit. Wenn Sie kein
   Anmeldeprompt erhalten oder nur unleserliche Zeichen sehen,
   dru:cken Sie mehrmals, in Absta:nden von ungefa:hr einer Sekunde,
   Enter. Wenn Sie immer noch nicht die login: Meldung sehen,
   schicken Sie ein BREAK Kommando. Wenn Sie zur Einwahl ein
   Highspeed-Modem benutzen, verwenden Sie eine feste Geschwindigkeit
   auf der seriellen Schnittstelle des Modems (AT&B1 fu:r ein U.S.
   Robotics Sportster).

   Wenn Sie jetzt immer noch kein Anmeldeprompt erhalten,
   u:berpru:fen Sie nochmals /etc/gettytab und stellen sicher, dass

     * der Verbindungstyp in /etc/ttys zu einem gu:ltigen Eintrag in
       /etc/gettytab geho:rt,

     * jeder der nx= Eintra:ge in gettytab gu:ltig ist und

     * jeder tc= Eintrag auf einen gu:ltigen Eintrag in gettytab
       verweist.

   Wenn das Modem an Ihrem FreeBSD-System auf einen eingehenden Anruf
   nicht antwortet, stellen Sie sicher, dass das Modem so
   konfiguriert ist, dass es einen Anruf beantwortet, wenn DTR
   anliegt. Wenn Ihr Modem Statusindikatoren besitzt, ko:nnen Sie das
   Anliegen von DTR anhand der Leuchten u:berpru:fen.

   Wenn Sie alles schon mehrfach u:berpru:ft haben und es immer noch
   noch nicht funktioniert, machen Sie erst einmal eine Pause, bevor
   Sie weitermachen. Wenn es immer noch nicht funktioniert, ko:nnen
   Sie eine Mail an die Mailingliste 'Fragen und Antworten zu
   FreeBSD' <de-bsd-questions@de.FreeBSD.org> schicken, in der Sie
   Ihr Modem und Ihr Problem beschreiben und Ihnen sollte geholfen
   werden.

     --------------------------------------------------------------

27.5. Verbindungen nach Aussen

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

   Die folgenden Ratschla:ge beschreiben, wie Sie mit einem Modem
   eine Verbindung zu einem anderen Computer herstellen. Dies ko:nnen
   Sie nutzen, um sich auf einem entfernten Computer anzumelden, oder
   um eine Verbindung zu einem BBS (Bulletin Board System)
   herzustellen.

   Weiterhin ist diese Art von Verbindungen nu:tzlich, wenn mal Ihr
   PPP nicht funktioniert. Wenn Sie zum Beispiel eine Datei mit FTP
   u:bertragen wollen und das u:ber PPP gerade nicht mo:glich ist,
   melden Sie sich auf dem entfernten Rechner an und fu:hren dort die
   FTP-Sitzung durch. Die Dateien ko:nnen Sie danach mit zmodem auf
   den lokalen Rechner u:bertragen.

     --------------------------------------------------------------

  27.5.1. Mein Hayes Modem wird nicht unterstu:tzt - was kann ich tun?

   Eigentlich ist die Onlinehilfe fu:r tip nicht mehr aktuell. Es
   gibt einen eingebauten, allgemeinen Hayes Wa:hler. Verwenden Sie
   einfach at=hayes in /etc/remote.

   Der Hayes-Treiber ist nicht schlau genug, um ein paar der
   erweiterten Funktionen von neueren Modems zu erkennen -
   Nachrichten wie BUSY, NO DIALTONE oder CONNECT 115200 verwirren
   ihn nur. Sie sollten diese Nachrichten mit Hilfe von ATX0&W
   abschalten, wenn Sie tip benutzen.

   Der Anwahl-Timeout von tip betra:gt 60 Sekunden. Ihr Modem sollte
   weniger verwenden, oder tip denkt, dass ein Kommunikationsfehler
   vorliegt. Versuchen Sie es mit ATS7=45&W.

     --------------------------------------------------------------

  27.5.2. Wie soll ich die AT-Befehle eingeben?

   Erstellen Sie einen so genannten direct Eintrag in /etc/remote.
   Wenn Ihr Modem zum Beispiel an der ersten seriellen Schnittstelle,
   /dev/cuad0, angeschlossen ist, dann fu:gen Sie die folgende Zeile
   hinzu:

 cuad0:dv=/dev/cuad0:br#19200:pa=none

   Verwenden Sie die ho:chste bps-Rate, die Ihr Modem in der br
   Fa:higkeit unterstu:tzt. Geben Sie dann tip cuad0 ein und Sie sind
   mit Ihrem Modem verbunden.

   Oder benutzen Sie cu als root mit dem folgenden Befehl:

 # cu -lline -sspeed

   line steht fu:r die serielle Schnittstelle (/dev/cuad0) und speed
   fu:r die Geschwindigkeit (57600). Wenn Sie mit dem Eingeben der AT
   Befehle fertig sind, beenden Sie mit ~..

     --------------------------------------------------------------

  27.5.3. Wieso funktioniert das @ Zeichen fu:r die pn Fa:higkeit nicht?

   Das @ Zeichen in der Telefonnummerfa:higkeit sagt tip, dass es in
   der Datei /etc/phones nach einer Nummer suchen soll. Aber @ ist
   auch ein spezielles Zeichen in den Dateien, in denen Fa:higkeiten
   beschrieben werden, wie /etc/remote. Schreiben Sie es mit einem
   Backslash:

 pn=\@

     --------------------------------------------------------------

  27.5.4. Wie kann ich von der Kommandozeile eine Telefonnummer wa:hlen?

   Stellen Sie einen allgemeinen Eintrag in /etc/remote. Zum
   Beispiel:

 tip115200|Dial any phone number at 115200 bps:\
         :dv=/dev/cuad0:br#115200:at=hayes:pa=none:du:
 tip57600|Dial any phone number at 57600 bps:\
         :dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:

   Mit dem folgenden Befehl ko:nnen Sie dann wa:hlen:

 # tip -115200 5551234

   Sollten Sie cu gegenu:ber tip bevorzugen, verwenden Sie einen
   allgemeinen cu-Eintrag:

 cu115200|Use cu to dial any number at 115200bps:\
         :dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:

   und benutzen zum Wa:hlen das Kommando:

 # cu 5551234 -s 115200

     --------------------------------------------------------------

  27.5.5. Muss ich dabei jedes Mal die bps-Rate angeben?

   Schreiben Sie einen tip1200- oder einen cu1200-Eintrag, aber geben
   Sie auch die bps-Rate an, die Ihr Modem wirklich unterstu:tzt.
   Leider denkt tip(1), dass 1200 bps ein guter Standardwert ist und
   deswegen sucht es nach einem tip1200-Eintrag. Natu:rlich mu:ssen
   Sie nicht 1200 bps benutzen.

     --------------------------------------------------------------

  27.5.6. Wie kann ich mo:glichst komfortabel u:ber einen
  Terminal-Server auf verschiedene Rechner zugreifen?

   Sie mu:ssen nicht warten bis Sie verbunden sind, und jedes Mal
   CONNECT Rechner eingeben, benutzen Sie tips cm-Fa:higkeit. Sie
   ko:nnen diese Eintra:ge in /etc/remote verwenden:

 pain|pain.deep13.com|Forrester's machine:\
         :cm=CONNECT pain\n:tc=deep13:
 muffin|muffin.deep13.com|Frank's machine:\
         :cm=CONNECT muffin\n:tc=deep13:
 deep13:Gizmonics Institute terminal server:\
         :dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:

   Mit den Befehlen tip pain oder tip muffin ko:nnen Sie eine
   Verbindungen zu den Rechnern pain oder muffin herstellen; mit tip
   deep13 verbinden Sie sich mit dem Terminalserver.

     --------------------------------------------------------------

  27.5.7. Kann tip mehr als eine Verbindung fu:r jede Seite
  ausprobieren?

   Das ist oft ein Problem, wenn eine Universita:t mehrere
   Telefonleitungen hat und viele tausend Studenten diese benutzen
   wollen.

   Erstellen Sie einen Eintrag fu:r Ihre Universita:t in /etc/remote
   und benutzen Sie @ fu:r die pn-Fa:higkeit:

 big-university:\
         :pn=\@:tc=dialout
 dialout:\
         :dv=/dev/cuad3:br#9600:at=courier:du:pa=none:

   Listen Sie die Telefonnummern der Universita:t in /etc/phones auf:

 big-university 5551111
 big-university 5551112
 big-university 5551113
 big-university 5551114

   tip probiert jede der Nummern in der aufgelisteten Reihenfolge und
   gibt dann auf. Mo:chten Sie, dass tip beim Versuchen eine
   Verbindung herzustellen nicht aufgibt, lassen Sie es in einer
   while-Schleife laufen.

     --------------------------------------------------------------

  27.5.8. Warum muss ich zweimal Ctrl+P tippen, um ein Ctrl+P zu senden?

   Ctrl+P ist das voreingestellte Zeichen, mit dem eine U:bertragung
   erzwungen werden kann und wird benutzt, um tip zu sagen, dass das
   na:chste Zeichen direkt gesendet werden soll und nicht als
   Fluchtzeichen interpretiert werden soll. Mit Hilfe der
   Fluchtsequenz ~s, mit der man Variablen setzen kann, ko:nnen Sie
   jedes andere Zeichen als "force"-Zeichen definieren.

   Geben Sie ~sforce=Zeichen gefolgt von Enter ein. Fu:r Zeichen
   ko:nnen Sie ein beliebiges einzelnes Zeichen einsetzen. Wenn Sie
   Zeichen weglassen, ist das "force"-Zeichen "nul", das Sie mit
   Ctrl+2 oder Ctrl+Leertaste eingeben ko:nnen. Ein guter Wert fu:r
   Zeichen ist Shift+Ctrl+6, welches nur auf wenigen Terminal Servern
   benutzt wird.

   Sie ko:nnen das "force"-Zeichen auch bestimmen, indem Sie in
   $HOME/.tiprc das Folgende einstellen:

 force=single-char

     --------------------------------------------------------------

  27.5.9. Warum ist auf einmal alles was ich schreibe in
  GROSSBUCHSTABEN??

   Sie mu:ssen Ctrl+A, eingegeben haben, das "raise"-Zeichen von tip,
   das speziell fu:r Leute mit defekten caps-lock Tasten eingerichtet
   wurde. Benutzen Sie ~s wie oben und setzen Sie die Variable
   raisechar auf etwas, das Ihnen angemessen erscheint. Tatsa:chlich
   kann die Variable auf das gleiche Zeichen wie das "force"-Zeichen
   gesetzt werden, wenn Sie diese Fa:higkeiten niemals benutzen
   wollen.

   Hier ist ein Muster der .tiprc Datei, perfekt fu:r Emacs Benutzer,
   die oft Ctrl+2 und Ctrl+A tippen mu:ssen:

 force=^^
 raisechar=^^

   Geben Sie fu:r ^^ Shift+Ctrl+6 ein.

     --------------------------------------------------------------

  27.5.10. Wie kann ich Dateien mit tip u:bertragen?

   Wenn Sie mit einem anderen UNIX System kommunizieren, ko:nnen Sie
   mit ~p (put) und ~t (take) Dateien senden und empfangen. Diese
   Befehle lassen cat und echo auf dem entfernten System laufen, um
   Dateien zu empfangen und zu senden. Die Syntax ist:

   ~p local-file [remote-file]

   ~t remote-file [local-file]

   Es gibt keine Fehlerkontrolle, deshalb sollten Sie besser ein
   anderes Protokoll, wie zmodem, benutzen.

     --------------------------------------------------------------

  27.5.11. Wie kann ich zmodem mit tip laufen lassen?

   Um Dateien zu empfangen, starten Sie das Programm zum Senden auf
   dem entfernten Computer. Geben Sie dann ~C rz ein, um die Dateien
   lokal zu empfangen.

   Um Dateien zu senden, starten Sie das Programm zum Empfangen auf
   dem entfernten Computer. Geben Sie dann ~C sz Dateien ein, um
   Dateien auf das entfernte System zu senden.

     --------------------------------------------------------------

27.6. Einrichten der seriellen Konsole

   Beigesteuert von Kazutaka YOKOTA. Auf Grundlage eines Dokuments
   von Bill Paul.

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports von /dev/ttydN in /dev/ttyuN umbenannt. Setzen Sie noch
     FreeBSD 7.X ein, mu:ssen Sie die Befehle in den folgenden
     Abschnitten entsprechend anpassen.

     --------------------------------------------------------------

  27.6.1. Einfu:hrung

   FreeBSD kann ein System mit einem Dumb-Terminal (unintelligente
   Datenstation) an einer seriellen Schnittstelle als Konsole booten.
   Diese Konfiguration ist besonders nu:tzlich fu:r
   Systemadministratoren, die FreeBSD auf Systemen ohne Tastatur oder
   Monitor installieren wollen, und Entwickler, die den Kernel oder
   Gera:tetreiber debuggen.

   Wie in Kapitel 13 beschrieben, besitzt FreeBSD drei Bootphasen.
   Der Code fu:r die ersten beiden Bootphasen befindet sich im
   Bootsektor am Anfang der FreeBSD-Slice der Bootplatte. Dieser
   Bootblock la:dt den Bootloader (/boot/loader) in Phase drei.

   Um eine serielle Konsole einzurichten, mu:ssen Sie den Bootblock,
   den Bootloader und den Kernel konfigurieren.

     --------------------------------------------------------------

  27.6.2. Serielle Konsole einrichten, Kurzfassung

   Dieser Abschnitt fasst zusammen, wie Sie eine serielle Konsole
   einrichten. Es wird vorausgesetzt, dass Sie die Voreinstellungen
   verwenden und wissen, wie serielle Schnittstellen verbunden
   werden.

    1. Verbinden Sie die serielle Konsole mit COM1 sowie dem
       Kontrollterminal.

    2. Um die Startmeldungen der seriellen Konsole zu sehen, geben
       Sie als root Folgendes ein:

 # echo 'console="comconsole"' >> /boot/loader.conf

    3. A:ndern Sie in /etc/ttys den Eintrag fu:r ttyu0 von off auf
       on. Zusa:tzlich sollten Sie den Wert dialup auf vt100 a:ndern.
       Nur so wird auf der seriellen Konsole eine Eingabeaufforderung
       mit einer Passwortabfrage aktiviert.

    4. Starten Sie nun das System neu, damit die serielle Konsole
       aktiviert wird.

   Wenn Sie eine unterschiedliche Konfiguration beno:tigen, sollten
   Sie Abschnitt 27.6.3 lesen.

     --------------------------------------------------------------

  27.6.3. Konfiguration der Konsole

    1. Bereiten Sie ein serielles Kabel vor.

       Sie beno:tigen entweder ein Nullmodemkabel oder ein serielles
       Standard Kabel mit einem Nullmodemkabel-Adapter. In Abschnitt
       27.2.2 wurden serielle Kabel beschrieben.

    2. Trennen Sie die Tastatur vom Computer.

       Die meisten PC Systeme suchen beim Power On Self Test (POST)
       nach einer Tastatur und geben eine Fehlermeldung aus, wenn sie
       keine finden. Einige Maschinen werden sich sogar weigern, ohne
       Tastatur zu booten.

       Wenn Ihr Rechner trotz einer Fehlermeldung normal
       weiterbootet, brauchen Sie weiter nichts zu tun.
       Beispielsweise geben einige Maschinen mit einem Phoenix BIOS
       nur "Keyboard failed" aus und booten dann normal weiter.

       Wenn Ihr System ohne Tastatur nicht booten will, mu:ssen Sie
       das BIOS so konfigurieren, das es diesen Fehler ignoriert
       (wenn das mo:glich ist). Das Handbuch zu Ihrem Motherboard
       sollte beschreiben, wie das zu bewerkstelligen ist.

         Tipp: Selbst wenn Sie im BIOS "Not installed" fu:r die
         Tastatur einstellen, ko:nnen Sie eine Tastatur angeschlossen
         haben und diese auch weiterhin benutzen, da sie mit dieser
         Anweisung das BIOS lediglich anweisen, nach dem Einschalten
         des Rechners nicht nach einer Tastatur zu suchen und den
         Rechner ohne entsprechende Fehlermeldung zu starten. Wenn
         die oben beschriebene Option nicht im BIOS vorhanden ist,
         halten Sie stattdessen Ausschau nach einer "Halt on Error"
         Option. Sie ko:nnen den gleichen Effekt wie oben erzielen,
         wenn Sie diese Option auf "All but Keyboard" oder sogar "No
         Errors" setzen.

         Anmerkung: Wenn Ihr System u:ber eine PS/2(R) Maus verfu:gt,
         mu:ssen Sie diese wahrscheinlich auch abziehen. Da sich die
         PS/2 Maus und die Tastatur einige Hardwarekomponenten
         teilen, kann das dazu fu:hren, dass die Hardwareerkennung
         fa:lschlicherweise eine Tastatur findet, wenn eine PS/2 Maus
         angeschlossen ist. Gateway 2000 Pentium 90 MHz Systemen wird
         dieses Verhalten nachgesagt. Normalerweise ist das kein
         Problem, da eine Maus ohne Tastatur sowieso nicht sinnvoll
         einsetzbar ist.

    3. Schliessen Sie einen Dumb-Terminal an COM1 (sio0) an.

       Wenn Sie keinen Dumb-Terminal besitzen, ko:nnen Sie einen
       alten PC/XT mit einem Terminalemulator oder die serielle
       Schnittstelle eines anderen UNIX Rechners benutzen. Sie
       beno:tigen auf jeden Fall eine freie erste serielle
       Schnittstelle (COM1). Zurzeit ist es nicht mo:glich, in den
       Bootblo:cken eine andere Schnittstelle zu konfigurieren, ohne
       diese neu zu kompilieren. Wenn Sie COM1 bereits fu:r ein
       anderes Gera:t benutzen, mu:ssen Sie dieses Gera:t tempora:r
       entfernen und einen neuen Bootblock sowie Kernel installieren,
       wenn Ihr FreeBSD erst einmal installiert ist. Auf einem Server
       sollte COM1 ohnehin verfu:gbar sein. Wenn Sie die
       Schnittstelle fu:r ein anderes Gera:t benutzen und Sie dieses
       nicht auf COM2 (sio1) legen ko:nnen, sollten Sie sich nicht an
       erster Stelle mit dem Aufsetzen einer seriellen Konsole
       bescha:ftigen.

    4. Stellen Sie sicher, dass Ihre Kernelkonfiguration die
       richtigen Optionen fu:r COM1 (sio0) entha:lt.

       Relevante Optionen sind:

            0x10

                    Aktiviert die Konsolenunterstu:tzung fu:r dieses
                    Gera:t. Zurzeit kann nur ein Gera:t die
                    Konsolenunterstu:tzung aktiviert haben. Das
                    erste, in der Konfigurationsdatei aufgefu:hrte
                    Gera:t, mit dieser Option, verfu:gt u:ber eine
                    aktivierte Konsolenunterstu:tzung. Beachten Sie,
                    dass diese Option alleine nicht ausreicht, um die
                    serielle Konsole zu aktivieren. Setzen Sie
                    entweder noch die nachfolgend diskutierte Option
                    oder verwenden Sie beim Booten, wie unten
                    beschrieben, den Schalter -h.

            0x20

                    Das erste Gera:t in der Kernelkonfigurationsdatei
                    mit dieser Option wird, unabha:ngig von dem unten
                    diskutierten Schalter -h, zur Konsole. Die Option
                    0x20 muss zusammen mit 0x10 verwendet werden.

            0x40

                    Reserviert dieses Gera:t und sperrt es fu:r
                    normale Zugriffe. Sie sollten diese Option nicht
                    auf dem Gera:t setzen, das Sie als serielle
                    Konsole verwenden wollen. Der Zweck dieser Option
                    ist es, dieses Gera:t fu:r das Remote-Debuggen zu
                    reservieren. Das FreeBSD Developers' Handbook
                    entha:lt dazu weitere Informationen.

       Beispiel:

 device sio0 at isa? port IO_COM1 tty flags 0x10 irq 4

       Weitere Einzelheiten entnehmen Sie bitte sio(4).

       Wenn diese Optionen nicht gesetzt sind, mu:ssen Sie auf einer
       anderen Konsole beim Booten UserConfig starten oder den Kernel
       neu kompilieren.

    5. Erstellen Sie boot.config im Rootverzeichnis der a-Partition
       des Bootlaufwerks.

       Der Code des Bootblocks entnimmt dieser Datei, wie Sie Ihr
       System booten mo:chten. Um die serielle Konsole zu aktivieren,
       mu:ssen Sie hier eine oder mehrere Optionen (alle in derselben
       Zeile) angeben. Die folgenden Optionen stehen zur Auswahl der
       Konsole zur Verfu:gung:

            -h

                    Schaltet zwischen der internen und der seriellen
                    Konsole um. Wenn Sie beispielsweise von der
                    internen Konsole (Bildschirm) booten, weist -h
                    den Bootloader und den Kernel an, die serielle
                    Schnittstelle als Konsole zu nehmen. Wenn die
                    Konsole normal auf der seriellen Schnittstelle
                    liegt, wa:hlen Sie mit -h den Bildschirm aus.

            -D

                    Schaltet zwischen Einzelkonsole und Dual-Konsole
                    um. Die Einzelkonsole ist entweder die interne
                    Konsole (der Bildschirm) oder die serielle
                    Schnittstelle, je nach dem Stand von -h. Im
                    Dual-Konsolen Betrieb ist die Konsole,
                    unabha:ngig von -h, gleichzeitig der Bildschirm
                    und die serielle Schnittstelle. Dies trifft aber
                    nur zu, wenn der Bootblock ausgefu:hrt wird.
                    Sobald der Bootloader ausgefu:hrt wird, wird die
                    durch -h gegebene Konsole die alleinige Konsole.

            -P

                    Veranlasst den Bootblock nach einer Tastatur zu
                    suchen. Wenn keine Tastatur gefunden wird, werden
                    -D und -h automatisch gesetzt.

                      Anmerkung: Wegen Platzbeschra:nkungen in den
                      Bootblo:cken kann -P nur erweiterte Tastaturen
                      erkennen. Tastaturen mit weniger als 101 Tasten
                      (und ohne F11 und F12 Tasten) werden
                      wahrscheinlich, wie vielleicht auch die
                      Tastaturen einiger Laptops, nicht erkannt. Wenn
                      dies bei Ihrem System der Fall ist, ko:nnen Sie
                      -P nicht verwenden, da es leider noch keine
                      Umgehung fu:r dieses Problem gibt.

       Benutzen Sie also entweder -P, um die Konsole automatisch zu
       setzen, oder -h, um die serielle Konsole zu verwenden.

       In boot.config ko:nnen Sie auch andere, in boot(8)
       beschriebene Optionen, aufnehmen.

       Mit Ausnahme von -P werden die Optionen an den Bootloader
       (/boot/loader) weitergegeben. Der Bootloader untersucht dann
       einzig -h um festzustellen, welches Gera:t die Konsole wird.
       Wenn Sie also nur -D angegeben haben, ko:nnen Sie die serielle
       Schnittstelle nur als Konsole verwenden wa:hrend der Bootblock
       ausgefu:hrt wird. Danach wird der Bootloader, da ja -h fehlt,
       den Bildschirm zur Konsole machen.

    6. Booten Sie die Maschine.

       Wenn Sie das FreeBSD-System starten, werden die Bootblo:cke
       den Inhalt von /boot.config auf der Konsole ausgeben:

 /boot.config: -P
 Keyboard: no

       Die zweite Zeile sehen Sie nur, wenn Sie in /boot.config -P
       angegeben haben. Sie zeigt an, ob eine Tastatur angeschlossen
       ist oder nicht. Die Meldungen gehen je nach den Einstellungen
       in /boot.config auf die interne Konsole, die serielle Konsole,
       oder beide Konsolen.

       Optionen             Meldungen erscheinen auf                  
       keine                der internen Konsole                      
       -h                   der seriellen Konsole                     
       -D                   der seriellen und der internen Konsole    
       -Dh                  der seriellen und der internen Konsole    
       -P, mit Tastatur     der internen Konsole                      
       -P, ohne Tastatur    der seriellen Konsole                     

       Nach den oben gezeigten Meldungen gibt es eine kleine
       Verzo:gerung bevor die Bootblo:cke den Bootloader laden und
       weitere Meldungen auf der Konsole erscheinen. Sie ko:nnen die
       Ausfu:hrung der Bootblo:cke unterbrechen, um zu u:berpru:fen,
       ob auch alles richtig aufgesetzt ist, brauchen das aber unter
       normalen Umsta:nden nicht zu tun.

       Dru:cken Sie eine Taste ausser Enter um den Bootvorgang zu
       unterbrechen. Sie erhalten dann ein Prompt, an dem Sie weitere
       Eingaben ta:tigen ko:nnen:

 >> FreeBSD/i386 BOOT
 Default: 0:ad(0,a)/boot/loader
 boot:

       Je nach Inhalt von /boot.config erscheint das Prompt auf der
       seriellen Konsole, der internen Konsole oder beiden Konsolen.
       Wenn die Meldung auf der richtigen Konsole erscheint, dru:cken
       Sie Enter um fortzufahren.

       Wenn Sie das Prompt auf der seriellen Konsole erwartet haben,
       dort aber nichts sehen, liegt ein Fehler in Ihren
       Einstellungen vor. Als Umgehung geben Sie an der momentanen
       Konsole -h ein, um den Bootblock und den Bootloader auf die
       serielle Konsole umzustellen. Fu:hren Sie dann den Bootvorgang
       mit Enter weiter und wenn das System gebootet hat, ko:nnen Sie
       die fehlerhaften Einstellungen korrigieren.

   Nachdem der Bootloader geladen wurde und Sie sich in der dritten
   Bootphase befinden, ko:nnen Sie immer noch zwischen der internen
   und der seriellen Konsole auswa:hlen. Setzen Sie dazu, wie in
   Abschnitt 27.6.6 beschrieben, die entsprechenden Variablen des
   Bootloaders.

     --------------------------------------------------------------

  27.6.4. Zusammenfassung

   Die folgende U:bersicht zeigt, welche Konsole, abha:ngig von den
   getroffenen Einstellungen, ausgewa:hlt wird.

     --------------------------------------------------------------

    27.6.4.1. Fall 1: Option 0x10 fu:r sio0

 device sio0 at isa? port IO_COM1 tty flags 0x10 irq 4

   Optionen in       Konsole in den             Konsole im Konsole im 
   /boot.config      Bootblo:cken               Bootloader Kernel     
   keine             interne                    interne    interne    
   -h                serielle                   serielle   serielle   
   -D                serielle und interne       interne    interne    
   -Dh               serielle und interne       serielle   serielle   
   -P, mit Tastatur  interne                    interne    interne    
   -P, ohne Tastatur serielle und interne       serielle   serielle   

     --------------------------------------------------------------

    27.6.4.2. Fall 2: Option 0x30 fu:r sio0

 device sio0 at isa? port IO_COM1 tty flags 0x30 irq 4

   Optionen in       Konsole in den             Konsole im Konsole im 
   /boot.config      Bootblo:cken               Bootloader Kernel     
   keine             interne                    interne    serielle   
   -h                serielle                   serielle   serielle   
   -D                serielle und interne       interne    serielle   
   -Dh               serielle und interne       serielle   serielle   
   -P, mit Tastatur  interne                    interne    serielle   
   -P, ohne Tastatur serielle und interne       serielle   serielle   

     --------------------------------------------------------------

  27.6.5. Hinweise zur seriellen Konsole

    27.6.5.1. Verwenden einer ho:heren Geschwindigkeit

   Die Vorgabewerte fu:r die Kommunikationsparameter der seriellen
   Schnittstelle sind: 9600 baud, 8 Bit, keine Parita:t und ein
   Stopp-Bit. Wenn Sie die Standardgeschwindigkeit a:ndern wollen,
   haben Sie folgende Mo:glichkeiten:

     * Geben Sie die neue Konsolengeschwindigkeit mit
       BOOT_COMCONSOLE_SPEED an und kompilieren Sie die Bootblo:cke
       neu. Ausfu:hrliche Informationen zum Bau und zur Installation
       von neuen Bootblo:cken finden Sie im Abschnitt 27.6.5.2 des
       Handbuchs.

       Wenn die serielle Konsole nicht mit der Option -h gestartet
       wird, oder wenn die verwendete serielle Konsole sich von der
       von den Bootblo:cken verwendeten unterscheidet, mu:sssen Sie
       zusa:tzlich die folgende Option in Ihre
       Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:

 options CONSPEED=19200

     * Verwenden Sie die Option -S, um den Kernel zu booten. Die
       Option -S kann auch in die Datei /boot.config aufgenommen
       werden. Eine Beschreibung dieses Vorgangs sowie eine
       Auflistung der von /boot.config unterstu:tzten Optionen finden
       Sie in der Manualpage boot(8).

     * Aktivieren Sie die Option comconsole_speed in der Datei
       /boot/loader.conf.

       Diese Option setzt voraus, dass auch die Optionen console,
       boot_serial, sowie boot_multicons in der Datei
       /boot/loader.conf gesetzt sind. Im Folgenden finden Sie ein
       Beispiel, in dem comconsole_speed verwendet wird, um die
       Geschwindigkeit der seriellen Konsole zu a:ndern:

 boot_multicons="YES"
 boot_serial="YES"
 comconsole_speed="115200"
 console="comconsole,vidconsole"

     --------------------------------------------------------------

    27.6.5.2. Eine andere Schnittstelle als sio0 benutzen

   Wenn Sie, warum auch immer, ein anderes Gera:t als sio0 fu:r die
   serielle Konsole einsetzen wollen, kompilieren Sie bitte die
   Bootblo:cke, den Bootloader und den Kernel nach dem folgenden
   Verfahren neu.

    1. Installieren Sie die Kernelquellen (siehe Kapitel 25).

    2. Setzen Sie in /etc/make.conf BOOT_COMCONSOLE_PORT auf die
       Adresse der Schnittstelle (0x3F8, 0x2F8, 0x3E8 oder 0x2E8),
       die Sie benutzen mo:chten. Sie ko:nnen nur sio0 bis sio3 (COM1
       bis COM4) benutzen, Multiportkarten ko:nnen Sie nicht als
       Konsole benutzen. Interrupts mu:ssen Sie hier nicht angeben.

    3. Erstellen Sie eine angepasste Kernelkonfiguration und geben
       Sie dort die richtigen Optionen fu:r die Schnittstelle, die
       Sie benutzen mo:chten, an. Wenn Sie zum Beispiel sio1 (COM2)
       zur Konsole machen wollen, geben Sie dort entweder

 device sio1 at isa? port IO_COM2 tty flags 0x10 irq 3

       oder

 device sio1 at isa? port IO_COM2 tty flags 0x30 irq 3

       an. Keine andere serielle Schnittstelle sollte als Konsole
       definiert werden.

    4. U:bersetzen und installieren Sie die Bootblo:cke und den
       Bootloader:

 # cd /sys/boot
 # make clean
 # make
 # make install

    5. Bauen und installieren Sie einen neuen Kernel.

    6. Schreiben Sie die Bootblo:cke mit bsdlabel(8) auf die
       Bootplatte und booten Sie den neuen Kernel.

     --------------------------------------------------------------

    27.6.5.3. DDB Debugger u:ber die serielle Schnittstelle

   Wenn Sie den Kerneldebugger u:ber eine serielle Verbindung
   bedienen mo:chten (nu:tzlich, kann aber gefa:hrlich sein, wenn auf
   der Leitung falsche BREAK-Signale generiert werden), sollten Sie
   einen Kernel mit den folgenden Optionen erstellen:

 options BREAK_TO_DEBUGGER
 options DDB

     --------------------------------------------------------------

    27.6.5.4. Benutzung der seriellen Konsole zum Anmelden

   Da Sie schon die Bootmeldungen auf der Konsole verfolgen ko:nnen
   und den Kerneldebugger u:ber die Konsole bedienen ko:nnen, wollen
   Sie sich vielleicht auch an der Konsole anmelden.

   O:ffnen Sie /etc/ttys in einem Editor und suchen Sie nach den
   folgenden Zeilen:

 ttyu0 "/usr/libexec/getty std.9600" unknown off secure
 ttyu1 "/usr/libexec/getty std.9600" unknown off secure
 ttyu2 "/usr/libexec/getty std.9600" unknown off secure
 ttyu3 "/usr/libexec/getty std.9600" unknown off secure

   ttyu0 bis ttyu3 entsprechen COM1 bis COM4. A:ndern Sie fu:r die
   entsprechende Schnittstelle off zu on. Wenn Sie auch die
   Geschwindigkeit der seriellen Schnittstelle gea:ndert haben,
   mu:ssen Sie std.9600 auf die momentane Geschwindigkeit, zum
   Beispiel std.19200, anpassen.

   Sie sollten auch den Terminaltyp von unknown auf den tatsa:chlich
   verwendeten Terminal setzen.

   Damit die A:nderungen an der Datei wirksam werden, mu:ssen Sie
   noch kill -HUP 1 absetzen.

     --------------------------------------------------------------

  27.6.6. Die Konsole im Bootloader a:ndern

   In den vorigen Abschnitten wurde beschrieben, wie Sie die serielle
   Konsole durch A:nderungen im Bootblock aktivieren. Dieser
   Abschnitt zeigt Ihnen, wie Sie mit Kommandos und
   Umgebungsvariablen die Konsole im Bootloader definieren. Da der
   Bootloader die dritte Phase im Bootvorgang ist und nach den
   Bootblo:cken ausgefu:hrt wird, u:berschreiben seine Einstellungen
   die des Bootblocks.

     --------------------------------------------------------------

    27.6.6.1. Festlegen der Konsole

   Mit einer einzigen Zeile in /boot/loader.conf ko:nnen Sie den
   Bootloader und den Kernel anweisen, die serielle Schnittstelle zur
   Konsole zu machen:

 console="comconsole"

   Unabha:ngig von den Einstellungen im Bootblock legt dies die
   Konsole fest.

   Die obige Zeile sollte die erste Zeile in /boot/loader.conf sein,
   so dass Sie die Bootmeldungen so fru:h wie mo:glich auf der
   Konsole sehen.

   Analog ko:nnen Sie die interne Konsole verwenden:

 console="vidconsole"

   Wenn Sie console nicht setzen, bestimmt der Bootloader (und damit
   auch der Kernel) die Konsole u:ber die -h Option des Bootblocks.

   Sie ko:nnen die Bootkonsole in /boot/loader.conf.local oder
   /boot/loader.conf angeben.

   Weitere Informationen erhalten Sie in loader.conf(5).

     Anmerkung: Momentan gibt es im Bootloader nichts vergleichbares
     zu -P im Bootblock. Damit kann die Konsole nicht automatisch
     u:ber das Vorhandensein einer Tastatur festgelegt werden.

     --------------------------------------------------------------

    27.6.6.2. Eine andere Schnittstelle als sio0 benutzen

   Sie mu:ssen den Bootloader neu kompilieren, wenn Sie eine andere
   Schnittstelle als sio0 benutzen wollen. Folgen Sie der Anleitung
   aus Abschnitt 27.6.5.2.

     --------------------------------------------------------------

  27.6.7. Vorbehalte

   Hinter dem ganzen steckt die Idee, Server ohne Hardware fu:r
   Grafik und ohne Tastatur zu betreiben. Obwohl es die meisten
   Systeme erlauben, ohne Tastatur zu booten, gibt es leider nur
   wenige Systeme, die ohne eine Grafikkarte booten. Maschinen mit
   einem AMI BIOS ko:nnen ohne Grafik booten, indem Sie den
   Grafikadapter im CMOS-Setup auf Not installed setzen.

   Viele Maschinen unterstu:tzen diese Option allerdings nicht. Damit
   diese Maschinen booten, mu:ssen sie u:ber eine Grafikkarte, auch
   wenn es nur eine alte Monochromkarte ist, verfu:gen. Allerdings
   brauchen Sie keinen Monitor an die Karte anzuschliessen. Sie
   ko:nnen natu:rlich auch versuchen, auf diesen Maschinen ein AMI
   BIOS zu installieren.

     --------------------------------------------------------------

                        Kapitel 28. PPP und SLIP

   Restrukturiert, neu organisiert und aktualisiert von Jim Mock.
   U:bersetzt von Thomas Schwarzkopf.

28.1. U:bersicht

   Unter FreeBSD stehen verschiedene Mo:glichkeiten zur Verfu:gung,
   um Computer miteinander zu verbinden. Der Aufbau einer Netzwerk-
   oder Internetverbindung mit Hilfe eines Einwahlmodems - fu:r den
   eigenen oder fu:r andere Rechner - erfordert den Einsatz von PPP
   oder SLIP.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen:

     * Wie Sie User-PPP einrichten.

     * Wie Sie Kernel-PPP einrichten (nur fu:r FreeBSD 7.X relevant).

     * Was zu tun ist, um PPPoE (PPP over Ethernet) einzurichten.

     * Wie Sie PPPoA (PPP over ATM) einrichten.

     * Wie Sie einen SLIP-Client und -Server einrichten und
       konfigurieren ((nur fu:r FreeBSD 7.X relevant)

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * mit den grundlegenden Begriffen der Netzwerktechnik vertraut
       sein.

     * die Grundlagen und den Zweck einer Einwahlverbindung sowie PPP
       und/oder SLIP kennen.

   Sie fragen sich vielleicht, worin denn der Hauptunterschied
   zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach:
   User-PPP verarbeitet die ein- und ausgehenden Daten im Userland,
   statt im Kernel. Dies ist zwar aufwa:ndig, im Hinblick auf die
   Daten, die dadurch zwischen Kernel und Userland hin und her
   kopiert werden mu:ssen, doch es ermo:glicht auch eine
   PPP-Implementierung mit weitaus mehr Funktionen. User-PPP
   verwendet das Gera:t tun, um mit anderen Rechnern zu
   kommunizieren, wa:hrend Kernel-PPP hierfu:r das Gera:t ppp
   benutzt.

     Anmerkung: In diesem Kapitel wird durchga:ngig vom Programm ppp
     gesprochen, wenn damit User-PPP gemeint ist. Ausnahmen werden
     gemacht, wenn eine Unterscheidung gegenu:ber anderer
     PPP-Software, wie pppd (nur unter FreeBSD 7.X), notwendig wird.
     Soweit nichts anderes angegeben ist, sollten alle Befehle, die
     in diesem Kapitel erkla:rt werden, als root ausgefu:hrt werden.

     --------------------------------------------------------------

28.2. User-PPP

   Aktualisiert und erweitert von Tom Rhodes. Urspru:nglich
   geschrieben von Brian Somers. Mit Beitra:gen von Nik Clayton, Dirk
   Fro:mberg und Peter Childs.

     Warnung: Mit FreeBSD 8.0 wurden die Gera:tedateien fu:r serielle
     Ports umbenannt: /dev/cuadN wurde zu /dev/cuauN, /dev/ttydN zu
     /dev/ttyuN. Verwenden Sie noch FreeBSD 7.X, mu:ssen Sie dies
     beim Lesen der folgenden Abschnitte beru:cksichtigen.

     --------------------------------------------------------------

  28.2.1. User-PPP

    28.2.1.1. Voraussetzungen

   Dieses Dokument geht davon aus, dass Sie Folgendes zur Verfu:gung
   haben:

     * Einen Account bei einem Internet Service Provider (ISP), zu
       dem Sie mit PPP eine Verbindung aufbauen ko:nnen.

     * Ein Modem oder ein anderes Gera:t, das, richtig konfiguriert
       und mit Ihrem Rechner verbunden, Ihnen die Herstellung einer
       Verbindung zu Ihrem ISP erlaubt.

     * Die Einwahlnummer(n) Ihres ISP.

     * Ihren Login-Namen und Ihr Passwort (entweder ein regula:res
       Login/Passwort-Paar im UNIX-Stil oder ein PAP bzw. CHAP
       Login/Passwort-Paar).

     * Die IP-Adresse von einem oder mehreren Nameservern.
       U:blicherweise werden Ihnen von Ihrem ISP zwei IP-Adressen
       fu:r diesen Zweck zur Verfu:gung gestellt. Wenn Sie keine
       solche IP-Adresse von Ihrem Provider bekommen haben, ko:nnen
       Sie das Kommando enable dns in der Datei ppp.conf verwenden,
       um ppp anzuweisen, den Nameserver fu:r Sie einzutragen. Diese
       Funktion setzt allerdings voraus, dass Ihr ISP eine
       PPP-Implementierung verwendet, die das Aushandeln eines
       Nameservers unterstu:tzt.

   Die folgenden Informationen werden Ihnen mo:glicherweise von Ihrem
   ISP zur Verfu:gung gestellt, sie sind aber nicht zwingend
   erforderlich:

     * Die Gateway IP-Adresse Ihres ISP. Als Gateway wird der
       Computer bezeichnet, zu dem Sie eine Verbindung aufbauen. Die
       IP-Adresse dieses Rechners wird als default route eingetragen.
       Wenn Sie diese Information nicht zur Verfu:gung haben, kann
       PPP so konfiguriert werden, dass der PPP-Server Ihres ISP
       wa:hrend des Verbindungsaufbaus eine gu:ltige Adresse
       u:bermittelt.

       ppp bezieht sich mit HISADDR auf diese IP-Adresse.

     * Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr ISP
       keine Netzmaske vorgegeben hat, ko:nnen Sie 255.255.255.255
       verwenden.

     * Wenn Ihnen Ihr ISP eine statische IP-Adresse zur Verfu:gung
       stellt, ko:nnen Sie diese eintragen. Andernfalls lassen wir
       uns einfach von der Gegenstelle eine IP-Adresse zuweisen.

   Falls Ihnen die erforderlichen Informationen fehlen sollten,
   nehmen Sie bitte Kontakt mit Ihrem ISP auf.

     Anmerkung: Die Beispieldateien, die in diesem Kapitel
     dargestellt werden, enthalten Zeilennummern. Die Nummerierung
     dient lediglich einer leichteren Orientierung und sollte von
     Ihnen nicht in Ihre Dateien u:bernommen werden. Richtiges
     Einru:cken, durch Tabulatoren und Leerzeichen, ist ebenfalls
     wichtig.

     --------------------------------------------------------------

    28.2.1.2. Automatische Konfiguration von PPP

   Sowohl ppp als auch pppd (die PPP-Implementierung auf Kernelebene,
   nur unter FreeBSD 7.X) verwenden die Konfigurationsdateien im
   Verzeichnis /etc/ppp. Beispiele fu:r User-PPP sind in
   /usr/share/examples/ppp/ zu finden.

   Die Konfiguration von ppp erfordert, je nach Ihren besonderen
   Bedingungen, die Bearbeitung einiger Dateien. Was Sie in diese
   Dateien eintragen, ha:ngt unter anderem davon ab, ob Ihnen Ihr ISP
   eine statische IP-Adresse (Sie verwenden immer dieselbe
   IP-Adresse, die Ihnen einmal zugeteilt wurde) oder eine dynamische
   IP-Adresse (Ihre IP-Adresse a:ndert sich bei jeder Verbindung mit
   dem ISP) zugewiesen hat.

     --------------------------------------------------------------

      28.2.1.2.1. PPP und statische IP-Adressen

   Sie mu:ssen die Konfigurationsdatei /etc/ppp/ppp.conf bearbeiten.
   Sie sollte so aussehen, wie in dem unten angegebenen Beispiel.

     Anmerkung: Zeilen die mit einem : enden, beginnen in der ersten
     Spalte (am Beginn der Zeile). Alle anderen Zeilen sollten wie
     dargestellt durch Leerzeichen oder Tabulatoren eingeru:ckt
     werden.

 1     default:
 2       set log Phase Chat LCP IPCP CCP tun command
 3       ident user-ppp VERSION (built COMPILATIONDATE)
 4       set device /dev/cuau0
 5       set speed 115200
 6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
 7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
 8       set timeout 180
 9       enable dns
 10
 11    provider:
 12      set phone "(123) 456 7890"
 13      set authname foo
 14      set authkey bar
 15      set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
 16      set timeout 300
 17      set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0
 18      add default HISADDR

   Zeile 1:

           Gibt den Standardeintrag an. Befehle dieses Eintrags
           werden automatisch ausgefu:hrt, wenn ppp la:uft.

   Zeile 2:

           Schaltet die Loggingparameter ein. Wenn die Verbindung
           zufriedenstellend funktioniert, ko:nnen Sie diese Zeile
           verku:rzen:

 set log phase tun

           Dies verhindert ein u:berma:ssiges Anwachsen der
           Logdateien.

   Zeile 3:

           Gibt PPP an, wie es sich gegenu:ber der Gegenstelle
           identifizieren soll. PPP identifiziert sich gegenu:ber der
           Gegenstelle, wenn es Schwierigkeiten bei der Aushandlung
           und beim Aufbau der Verbindung gibt. Dabei werden
           Informationen bereitgestellt, die dem Administrator der
           Gegenstelle helfen ko:nnen, die Ursache der Probleme zu
           finden.

   Zeile 4:

           Gibt das Device an, an dem das Modem angeschlossen ist.
           COM1 entspricht /dev/cuad0 und COM2 entspricht /dev/cuad1.

   Zeile 5:

           Legt die Geschwindigkeit fest, mit der Sie die Verbindung
           betreiben mo:chten. Falls ein Wert von 115200 nicht
           funktioniert (was aber bei jedem einigermassen neuen Modem
           funktionieren sollte), versuchen Sie es stattdessen mit
           38400.

   Zeilen 6 & 7:

           Die Zeichenfolge fu:r die Einwahl. User-PPP verwendet eine
           expect-send Syntax, a:hnlich dem chat(8)-Programm. Weitere
           Informationen zu den Eigenschaften dieser Sprache bietet
           die Manual-Seite.

           Beachten Sie, dass dieser Befehl aufgrund der besseren
           Lesbarkeit auf der na:chsten Zeile weitergeht. Das kann
           fu:r jeden Befehl in ppp.conf gelten, wenn \ das letzte
           Zeichen in einer Zeile ist.

   Zeile 8:

           Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion
           erfolgen muss. Der Standardwert liegt bei 180 Sekunden, so
           dass diese Zeile lediglich einen kosmetischen Charakter
           hat.

   Zeile 9:

           Weist PPP an, bei der Gegenstelle eine Besta:tigung der
           lokalen Resolvereinstellungen anzufordern. Wenn Sie einen
           lokalen Nameserver betreiben, sollte diese Zeile
           auskommentiert oder gelo:scht werden.

   Zeile 10:

           Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen
           werden von PPP ignoriert.

   Zeile 11:

           Bestimmt einen Provider, namens "provider". Wenn Sie hier
           den Namen Ihres ISP einsetzen, ko:nnen Sie spa:ter die
           Verbindung mit load ISP aufbauen.

   Zeile 12:

           Gibt die Telefonnummer des Providers an. Mehrere
           Telefonnummern ko:nnen angegeben werden, indem
           Doppelpunkte (:) oder Pipe-Zeichen (|) als Trennzeichen
           verwendet werden. Der Unterschied zwischen diesen beiden
           Trennzeichen ist in ppp(8) beschrieben. Zusammenfassend:
           Wenn Sie die verschiedenen Nummern abwechselnd verwenden
           mo:chten, sollten Sie die Nummern durch einen Doppelpunkt
           trennen. Wenn Sie immer die erste Nummer verwenden
           mo:chten und die anderen nur zum Einsatz kommen sollen,
           wenn eine Einwahl mit der ersten Telefonnummer nicht
           mo:glich ist, sollten Sie das Pipe-Zeichen zur Trennung
           verwenden. Wie im Beispiel, sollten Sie die gesamte Reihe
           der Telefonnummern in Anfu:hrungszeichen setzen.

           Sie mu:ssen die Telefonnummer in Anfu:hrungszeichen (")
           setzen, wenn Sie Leerzeichen in der Telefonnummer
           verwenden, ansonsten rufen Sie einen Fehler hervor, der
           vielleicht schwer zu finden ist.

   Zeilen 13 & 14:

           Gibt den Benutzernamen und das Passwort an. Wenn Sie zur
           Verbindung einen Login-Prompt im UNIX-Stil verwenden,
           bezieht sich der Befehl set login mit den \U und \P
           Variablen auf diese Werte. Wenn Sie zum Verbindungsaufbau
           PAP oder CHAP verwenden, werden diese Werte zum Zeitpunkt
           der Authentifizierung verwendet.

   Zeile 15:

           Wenn Sie PAP oder CHAP einsetzen, gibt es an dieser Stelle
           keinen Login-Prompt, weshalb Sie diese Zeile
           auskommentieren oder lo:schen sollten. Der Abschnitt
           Authentifizierung mit PAP und CHAP entha:lt hierzu weitere
           Einzelheiten.

           Der Login-String hat die gleiche chat-a:hnliche Syntax,
           wie der Einwahlstring. Der String in diesem Beispiel
           funktioniert mit einem ISP, dessen Login-Session
           folgendermassen aussieht:

 J. Random Provider
 login: foo
 password: bar
 protocol: ppp

           Sie mu:ssen dieses Skript noch an Ihre eigenen
           Erfordernisse anpassen. Wenn Sie dieses Skript zum ersten
           Mal schreiben, sollten Sie sicherstellen, dass Sie
           "chat"-logging aktiviert haben, damit Sie u:berpru:fen zu
           ko:nnen, ob die Konversation zwischen Ihrem Rechner und
           dem Rechner des Providers wie erwartet abla:uft.

   Zeile 16:

           Setzt einen Zeitrahmen (in Sekunden), innerhalb dessen
           eine Reaktion erfolgen muss. In diesem Fall, wird die
           Verbindung nach 300 Sekunden automatisch geschlossen, wenn
           keine Aktivita:t zu verzeichnen ist. Wenn Sie keinen
           Zeitrahmen festlegen wollen, nach dessen U:berschreiten
           die Verbindung geschlossen wird, ko:nnen Sie diesen Wert
           auf 0 setzen oder die Kommandozeilen-Option -ddial
           verwenden.

   Zeile 17:

           Gibt die IP-Adresse fu:r das Interface an. Der String
           x.x.x.x sollte durch die IP-Adresse ersetzt werden, die
           Ihnen Ihr Provider zugeteilt hat. Der String y.y.y.y
           sollte durch die IP-Adresse ersetzt werden, die Ihr ISP
           als Gateway angegeben hat (das ist der Rechner, mit dem
           Ihr Rechner eine Verbindung aufbaut). Wenn Ihnen Ihr ISP
           keine Gateway Adresse zur Verfu:gung gestellt hat,
           verwenden Sie hier einfach 10.0.0.2/0. Wenn Sie eine
           "erratene" IP-Adresse verwenden mu:ssen, sollten Sie in
           der Datei /etc/ppp/ppp.linkup einen entsprechenden Eintrag
           machen. Folgen Sie dazu den Anweisungen im Abschnitt PPP
           und dynamische IP-Adressen. Wenn diese Zeile ausgelassen
           wird, kann ppp nicht im -auto Modus betrieben werden.

   Zeile 18:

           Fu:gt eine Defaultroute fu:r das Gateway Ihres Providers
           hinzu. Das Wort HISADDR wird dabei durch die in Zeile 17
           angegebene Gateway Adresse ersetzt. Wichtig ist, dass
           diese Zeile nach Zeile 17 erscheint, da andernfalls
           HISADDR noch nicht initialisiert ist.

           Wenn Sie ppp nicht im -auto Modus betreiben, sollte diese
           Zeile in die Datei ppp.linkup verschoben werden.

   Wenn Sie eine statische IP-Adresse verwenden und ppp im -auto
   Modus la:uft, ist es nicht notwendig, einen Eintrag in die Datei
   ppp.linkup hinzuzufu:gen. In diesem Fall hat ihre Routingtabelle
   bereits die richtigen Eintra:ge, bevor Sie die Verbindung
   aufbauen. Sie mo:chten aber vielleicht einen Eintrag hinzufu:gen,
   um ein Programm aufzurufen, nachdem die Verbindung aufgebaut ist.
   Dies wird weiter unten am Beispiel von Sendmail erkla:rt.

   Beispiele fu:r Konfigurationsdateien finden Sie im Verzeichnis
   /usr/share/examples/ppp/.

     --------------------------------------------------------------

      28.2.1.2.2. PPP und dynamische IP-Adressen

   Wenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt, kann ppp so
   konfiguriert werden, dass die lokale und die entfernte IP-Adresse
   beim Verbindungsaufbau ausgehandelt werden. Dies geschieht, indem
   zuna:chst eine IP-Adresse "erraten" wird, die von ppp, unter
   Verwendung des IP Configuration Protocol (IPCP) durch eine
   richtige ersetzt wird, wenn die Verbindung aufgebaut ist. Die
   Konfiguration der Datei ppp.conf entspricht derjenigen, die im
   Abschnitt PPP und statische IP- Adressen dargestellt wurde, jedoch
   mit folgender A:nderung:

 17      set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0

   Auch hier dient die Zeilennummerierung lediglich der besseren
   U:bersichtlichkeit. Einru:ckungen, von mindestens einem
   Leerzeichen, sind allerdings erforderlich.

   Zeile 17:

           Die Zahl nach dem / Zeichen, gibt die Anzahl der Bits der
           Adresse an, auf die ppp besteht. Sie mo:chten vielleicht
           andere IP-Adressen verwenden, die oben angegebenen werden
           aber immer funktionieren.

           Das letzte Argument (0.0.0.0) weist PPP an, den
           Verbindungsaufbau mit der Adresse 0.0.0.0 zu beginnen,
           statt 10.0.0.1 zu verwenden. Dies ist bei einigen ISPs
           notwendig. Verwenden Sie nicht 0.0.0.0 als erstes Argument
           fu:r set ifaddr, da so verhindert wird, dass PPP im -auto
           Modus eine initiale Route setzt.

   Wenn PPP nicht im -auto Modus la:uft, mu:ssen Sie die
   Datei/etc/ppp/ppp.linkup editieren. ppp.linkup kommt zum Einsatz,
   wenn eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat
   ppp die Interface Adressen vergeben und es ist mo:glich, die
   Eintra:ge in der Routingtabelle hinzuzufu:gen:

 1     provider:
 2      add default HISADDR

   Zeile 1:

           Beim Aufbau einer Verbindung sucht ppp in der Datei
           ppp.linkup nach einem Eintrag. PPP geht dabei nach
           folgenden Regeln vor: Suche zuna:chst nach der gleichen
           Bezeichnung, die wir auch in der Datei ppp.conf verwendet
           haben. Falls das nicht funktioniert, suche nach einem
           Eintrag der IP-Adresse unseres Gateways. Dieser Eintrag
           ist eine Bezeichnung im Stil von IP-Adressen, die sich aus
           vier Oktetts zusammensetzt. Falls immer noch kein
           passender Eintrag gefunden wurde, suche nach dem Eintrag
           MYADDR.

   Zeile 2:

           Diese Zeile weist ppp an, eine Defaultroute zu verwenden,
           die auf HISADDR zeigt. HISADDR wird nach der Aushandlung
           mit IPCP durch die IP-Adresse des Gateways ersetzt.

   Die Dateien /usr/share/examples/ppp/ppp.conf.sample und
   /usr/share/examples/ppp/ppp.linkup.sample bieten detaillierte
   Beispiele fu:r pmdemand Eintra:ge.

     --------------------------------------------------------------

      28.2.1.2.3. Annahme eingehender Anrufe

   Wenn Sie ppp auf einem Rechner, der in ein LAN eingebunden ist, so
   konfigurieren, dass eingehende Anrufe angenommen werden, mu:ssen
   Sie entscheiden, ob Pakete an das LAN weitergeleitet werden
   sollen. Wenn Sie das mo:chten, sollten Sie an die Gegenstelle eine
   IP-Adresse aus Ihrem lokalen Subnetz vergeben und den Befehl
   enable proxy in die Datei /etc/ppp/ppp.conf einfu:gen. Ausserdem
   sollte die Datei /etc/rc.conf Folgendes enthalten:

 gateway_enable="YES"

     --------------------------------------------------------------

      28.2.1.2.4. Welches getty?

   Der Abschnitt Einwa:hlverbindungen bietet eine gute Beschreibung,
   wie Einwa:hlverbindungen unter Verwendung von getty(8) genutzt
   werden ko:nnen.

   Eine Alternative zu getty ist mgetty, eine raffiniertere Version
   von getty, die mit Blick auf Einwa:hlverbindungen entworfen wurde.
   Sie ko:nnen dieses Paket u:ber den Port comms/mgetty+sendfax
   installieren.

   Der Vorteil von mgetty ist, dass es auf aktive Weise mit Modems
   spricht, das heisst wenn ein Port in /etc/ttys ausgeschaltet ist,
   wird Ihr Modem nicht auf Anrufe reagieren.

   Spa:tere Versionen von mgetty (von 0.99beta aufwa:rts)
   unterstu:tzen auch die automatische Erkennung von PPP-Streams, was
   Ihren Clients den skriptlosen Zugang zu Ihren Servern erlaubt.

   Der Abschnitt Mgetty und AutoPPP bietet weitere Informationen zu
   mgetty.

     --------------------------------------------------------------

      28.2.1.2.5. PPP und Rechte

   Der Befehl ppp muss normalerweise als root ausgefu:hrt werden.
   Wenn Sie jedoch mo:chten, dass ppp im Server-Modus auch von einem
   normalen Benutzer, wie unten beschrieben, durch Aufruf von ppp
   ausgefu:hrt werden kann, mu:ssen Sie diesem Benutzer die Rechte
   erteilen, ppp auszufu:hren, indem Sie ihn in der Datei /etc/group
   der Gruppe network hinzufu:gen.

   Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere
   Abschnitte der Konfigurationsdatei geben mu:ssen, indem Sie den
   allow Befehl verwenden:

 allow users fred mary

   Wenn dieser Befehl im default Abschnitt verwendet wird, erhalten
   die angegebenen Benutzer vollsta:ndigen Zugriff.

     --------------------------------------------------------------

      28.2.1.2.6. PPP-Shells fu:r dynamische IP-Adressen

   Erzeugen Sie eine Datei mit dem Namen /etc/ppp/ppp-shell, die
   Folgendes entha:lt:

 #!/bin/sh
 IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
 CALLEDAS="$IDENT"
 TTY=`tty`

 if [ x$IDENT = xdialup ]; then
         IDENT=`basename $TTY`
 fi

 echo "PPP for $CALLEDAS on $TTY"
 echo "Starting PPP for $IDENT"

 exec /usr/sbin/ppp -direct $IDENT

   Dieses Skript sollte ausfu:hrbar sein. Nun erzeugen Sie einen
   symbolischen Link ppp-dialup auf dieses Skript mit folgendem
   Befehl:

 # ln -s ppp-shell /etc/ppp/ppp-dialup

   Sie sollten dieses Skript als Shell fu:r alle Benutzer von
   Einwa:hlverbindungen verwenden. Dies ist ein Beispiel aus der
   Datei /etc/passwd fu:r einen Benutzer namens pchilds, der PPP fu:r
   Einwa:hlverbindungen verwenden kann (Denken Sie daran, die
   Passwortdatei nicht direkt zu editieren, sondern dafu:r vipw(8) zu
   verwenden).

 pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup

   Erstellen Sie ein Verzeichnis /home/ppp, das von allen Benutzern
   gelesen werden kann und die folgenden leeren Dateien entha:lt:

 -r--r--r--   1 root     wheel           0 May 27 02:23 .hushlogin
 -r--r--r--   1 root     wheel           0 May 27 02:22 .rhosts

   Dies verhindert, dass /etc/motd angezeigt wird.

     --------------------------------------------------------------

      28.2.1.2.7. PPP-Shells fu:r statische IP-Adressen

   Erstellen Sie die Datei ppp-shell wie oben oben dargestellt.
   Erzeugen Sie nun fu:r jeden Account mit statischer IP-Adresse
   einen symbolischen Link auf ppp-shell.

   Wenn Sie beispielsweise die drei Kunden, fred, sam und mary haben,
   fu:r die Sie CIDR-/24-Netzwerke routen, schreiben Sie Folgendes:

 # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
 # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
 # ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary

   Jeder Einwa:hlzugang dieser Kunden sollte den oben erzeugten
   symbolischen Link als Shell haben (mary's Shell sollte also
   /etc/ppp/ppp-mary sein).

     --------------------------------------------------------------

      28.2.1.2.8. Einrichten von ppp.conf fu:r dynamische IP-Adressen

   Die Datei /etc/ppp/ppp.conf sollte in etwa wie folgt aussehen:

 default:
   set debug phase lcp chat
   set timeout 0

 ttyu0:
   set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
   enable proxy

 ttyu1:
   set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
   enable proxy

     Anmerkung: Die Einru:ckungen sind wichtig.

   Der Abschnitt default: wird fu:r jede Sitzung geladen. Erstellen
   Sie fu:r jede Einwa:hlverbindung, die Sie in der Datei /etc/ttys
   ermo:glicht haben, einen Eintrag, wie oben fu:r ttyu0: gezeigt.
   Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool der
   Adressen bekommen, die sie fu:r diese Benutzergruppe reserviert
   haben.

     --------------------------------------------------------------

      28.2.1.2.9. Einrichten von ppp.conf fu:r statische IP-Adressen

   Zu dem bisher dargestellten Inhalt der Beispieldatei
   /usr/share/examples/ppp/ppp.conf sollten Sie einen Abschnitt fu:r
   jeden Benutzer mit statisch zugewiesener IP-Adresse hinzufu:gen.
   Wir werden nun unser Beispiel mit den Accounts fred, sam und mary
   weiterfu:hren.

 fred:
   set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255

 sam:
   set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255

 mary:
   set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255

   Die Datei /etc/ppp/ppp.linkup sollte, falls erforderlich,
   ebenfalls Routinginformationen fu:r jeden Benutzer mit statischer
   IP-Adresse enthalten. Die unten dargestellte Zeile wu:rde dem
   Netzwerk 203.14.101.0/24 eine Route u:ber die PPP-Verbindung des
   Client hinzufu:gen.

 fred:
   add 203.14.101.0 netmask 255.255.255.0 HISADDR

 sam:
   add 203.14.102.0 netmask 255.255.255.0 HISADDR

 mary:
   add 203.14.103.0 netmask 255.255.255.0 HISADDR

     --------------------------------------------------------------

      28.2.1.2.10. mgetty und AutoPPP

   In der Voreinstellung wird mgetty mit der Option AUTO_PPP
   konfiguriert und kompiliert. Dadurch kann mgetty die LCP Phase von
   PPP-Verbindungen erkennen und automatisch eine ppp-Shell starten.
   Da hierbei jedoch die Login/Passwort-Sequenz nicht durchlaufen
   wird, ist es notwendig, Benutzer durch PAP oder CHAP zu
   authentifizieren.

   In diesem Abschnitt wird davon ausgegangen, dass der Benutzer den
   Port comms/mgetty+sendfax auf seinem System kompiliert und
   installiert hat.

   Stellen Sie sicher, dass die Datei
   /usr/local/etc/mgetty+sendfax/login.config Folgendes entha:lt:

 /AutoPPP/ -     -                     /etc/ppp/ppp-pap-dialup

   Hierdurch wird mgetty angewiesen, das Skript ppp-pap-dialup fu:r
   die erkannten PPP-Verbindungen auszufu:hren.

   Erstellen Sie nun die Datei /etc/ppp/ppp-pap-dialup mit folgendem
   Inhalt (die Datei sollte ausfu:hrbar sein):

 #!/bin/sh
 exec /usr/sbin/ppp -direct pap$IDENT

   Erstellen Sie bitte fu:r jede Einwa:hlverbindung, die Sie in
   /etc/ttys ermo:glicht haben, einen korrespondierenden Eintrag in
   der Datei /etc/ppp/ppp.conf. Diese Eintra:ge ko:nnen problemlos,
   mit den Definitionen die wir weiter oben gemacht haben,
   koexistieren.

 pap:
   enable pap
   set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
   enable proxy

   Jeder Benutzer, der sich auf diese Weise anmeldet, beno:tigt einen
   Benutzernamen und ein Passwort in der Datei /etc/ppp/ppp.secret.
   Sie haben auch die Mo:glichkeit, Benutzer mit Hilfe von PAP zu
   authentifizieren, indem Sie der Datei /etc/passwd folgende Option
   hinzufu:gen:

 enable passwdauth

   Wenn Sie bestimmten Benutzern eine statische IP-Adresse zuweisen
   mo:chten, ko:nnen Sie diese als drittes Argument in der Datei
   /etc/ppp/ppp.secret angeben. In
   /usr/share/examples/ppp/ppp.secret.sample finden Sie hierfu:r
   Beispiele.

     --------------------------------------------------------------

      28.2.1.2.11. MS-Erweiterungen

   Es ist mo:glich PPP so zu konfigurieren, dass bei Bedarf DNS und
   NetBIOS Nameserveradressen bereitgestellt werden.

   Um diese Erweiterungen fu:r die PPP Version 1.x zu aktivieren,
   sollte der entsprechende Abschnitt der Datei /etc/ppp/ppp.conf um
   folgende Zeilen erga:nzt werden:

 enable msext
 set ns 203.14.100.1 203.14.100.2
 set nbns 203.14.100.5

   Fu:r PPP Version 2 und ho:her:

 accept dns
 set dns 203.14.100.1 203.14.100.2
 set nbns 203.14.100.5

   Damit werden den Clients die prima:ren und sekunda:ren
   Nameserveradressen sowie ein NetBIOS Nameserver-Host mitgeteilt.

   In Version 2 und ho:her verwendet PPP die Werte, die in
   /etc/resolv.conf zu finden sind, wenn die Zeile set dns
   weggelassen wird.

     --------------------------------------------------------------

      28.2.1.2.12. Authentifizierung durch PAP und CHAP

   Einige ISPs haben ihr System so eingerichtet, dass der
   Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von PAP
   oder CHAP-Mechanismen durchgefu:hrt wird. Wenn dies bei Ihnen der
   Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung keinen
   login:-Prompt pra:sentieren, sondern sofort mit der Aushandlung
   der PPP-Verbindung beginnen.

   PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist hierbei
   normalerweise kein Problem, da Passwo:rter, obgleich von PAP im
   Klartext versandt, lediglich u:ber die serielle Verbindung
   verschickt werden. Es gibt fu:r Cracker wenig Mo:glichkeiten zu
   "lauschen".

   Zuru:ckkommend auf die Abschnitte PPP und statische IP-Adressen
   oder PPP und dynamische IP-Adressen mu:ssen folgende
   Vera:nderungen vorgenommen werden:

 13      set authname MyUserName
 14      set authkey MyPassword
 15      set login

   Zeile 13:

           Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest. Sie
           mu:ssen den richtigen Wert fu:r MyUserName eingeben.

   Zeile 14:

           Diese Zeile legt Ihr PAP/CHAP Passwort fest. Sie mu:ssen
           den richtigen Wert fu:r MyPassword eingeben. Sie ko:nnen
           eine zusa:tzliche Zeile, wie etwa:

 16      accept PAP

           oder

 16      accept CHAP

           verwenden, um deutlich zu machen, dass dies beabsichtigt
           ist, aber sowohl PAP wie auch CHAP als standardma:ssig
           akzeptiert werden.

   Zeile 15:

           Ihr ISP wird normalerweise nicht von Ihnen verlangen, dass
           Sie sich am Server einloggen, wenn Sie PAP oder CHAP
           verwenden. Sie mu:ssen deshalb den String "set login"
           deaktivieren.

     --------------------------------------------------------------

      28.2.1.2.13. Vera:nderung Ihrer ppp Konfiguration im laufenden
      Betrieb

   Es ist mo:glich, dem Programm ppp Befehle zu erteilen, wa:hrend es
   im Hintergrund la:uft. Dazu ist jedoch die Einrichtung eines
   passenden Diagnose-Ports erforderlich. Erga:nzen Sie hierzu Ihre
   Konfigurationsdatei um folgende Zeile:

 set server /var/run/ppp-tun%d DiagnosticPassword 0177

   Damit wird PPP angewiesen, auf den angegebenen UNIX-Domainsocket
   zu ho:ren und Clients nach dem angegebenen Passwort zu fragen,
   bevor der Zugang Gewa:hrt wird. Das %d wird durch die Nummer des
   benutzten tun-Devices ersetzt.

   Wenn ein Socket eingerichtet ist, kann das Programm pppctl(8) in
   Skripten verwendet werden, mit denen in das laufende Programm
   eingegriffen wird.

     --------------------------------------------------------------

    28.2.1.3. Interne NAT von PPP benutzen

   PPP kann Network Address Translation (NAT) ohne Hilfe des Kernels
   durchfu:hren. Wenn Sie diese Funktion benutzen wollen, fu:gen Sie
   die folgende Zeile in /etc/ppp/ppp.conf ein:

 nat enable yes

   Sie ko:nnen NAT mit der Option -nat auf der Kommandozeile von PPP
   aktivieren. Weiterhin kann NAT in /etc/rc.conf mit der Variablen
   ppp_nat aktiviert werden. Dies ist auch die Voreinstellung.

   Die nachstehende /etc/ppp/ppp.conf benutzt NAT fu:r bestimmte
   eingehende Verbindungen:

 nat port tcp 10.0.0.2:ftp ftp
 nat port tcp 10.0.0.2:http http

   Wenn Sie Verbindungen von aussen u:berhaupt nicht trauen, benutzen
   Sie die folgende Zeile:

 nat deny_incoming yes

     --------------------------------------------------------------

    28.2.1.4. Abschliessende Systemkonfiguration

   Sie haben ppp nun konfiguriert, aber bevor PPP eingesetzt werden
   kann, gibt noch einige weitere Dinge zu erledigen, die alle die
   Bearbeitung der Datei /etc/rc.conf erfordern.

   Gehen Sie diese Datei von oben nach unten durch, und stellen Sie
   als Erstes sicher, dass die Zeile hostname= vorhanden ist:

 hostname="foo.example.com"

   Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen
   zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen
   Namen als Hostnamen verwenden.

   Schauen Sie nach der Variable network_interfaces. Wenn Sie Ihr
   System so konfigurieren mo:chten, dass bei Bedarf eine Verbindung
   zu Ihrem ISP aufgebaut wird, sollten Sie das Device tun0 zu der
   Liste hinzufu:gen oder es andernfalls entfernen.

 network_interfaces="lo0 tun0"
 ifconfig_tun0=

     Anmerkung: Die Variable ifconfig_tun0 sollte leer sein und eine
     Datei namens /etc/start_if.tun0 sollte erstellt werden. Diese
     Datei sollte die nachfolgende Zeile enthalten:

 ppp -auto mysystem

     Dieses Skript startet Ihren ppp-Daemon im Automatik-Modus. Es
     wird bei der Netzwerkkonfiguration ausgefu:hrt. Wenn Ihr Rechner
     als Gateway fu:r ein LAN fungiert, mo:chten Sie vielleicht auch
     die Option -alias verwenden. In der Manual-Seite sind weitere
     Einzelheiten hierzu zu finden.

   Stellen Sie sicher, dass der Start eines Routerprogramms in
   /etc/rc.conf wie folgt deaktiviert ist:

 router_enable="NO"

   Es ist wichtig, dass der routed Daemon nicht gestartet wird da
   routed dazu tendiert, die von ppp erstellten Eintra:ge der
   Standardroute zu u:berschreiben.

   Es ist ausserdem sinnvoll, darauf zu achten, dass die Zeile
   sendmail_flags nicht die Option -q entha:lt, da sendmail sonst ab
   und zu die Netzwerkverbindung pru:fen wird, was mo:glicherweise
   dazu fu:hrt, dass sich Ihr Rechner einwa:hlt. Sie ko:nnen hier
   Folgendes angeben:

 sendmail_flags="-bd"

   Der Nachteil dieser Lo:sung ist, dass Sie sendmail nach jedem
   Aufbau einer ppp-Verbindung auffordern mu:ssen, die
   Mailwarteschlange zu u:berpru:fen, indem Sie Folgendes eingeben:

 # /usr/sbin/sendmail -q

   Vielleicht mo:chten Sie den Befehl !bg in der Datei ppp.linkup
   verwenden, um dies zu automatisieren:

 1     provider:
 2       delete ALL
 3       add 0 0 HISADDR
 4       !bg sendmail -bd -q30m

   Wenn Sie dies nicht mo:chten, ist es mo:glich, einen "dfilter"
   einzusetzen, um SMTP-Verkehr zu blockieren. Weitere Einzelheiten
   hierzu finden Sie in den Beispieldateien.

   Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu zu
   starten. Nach dem Neustart ko:nnen Sie entweder:

 # ppp

   und danach dial provider eingeben, um eine PPP-Sitzung zu starten,
   oder Sie geben:

 # ppp -auto provider

   ein, um ppp bei Datenverkehr aus Ihrem Netzwerk heraus,
   automatisch eine Verbindung herstellen zu lassen (vorausgesetzt
   Sie haben kein start_if.tun0 Skript erstellt).

     --------------------------------------------------------------

    28.2.1.5. Zusammenfassung

   Die folgenden Schritte sind no:tig, wenn ppp zum ersten Mal
   eingerichtet werden soll:

   Clientseite:

    1. Stellen Sie sicher, dass das tun Device in den Kernel
       eingebaut ist.

    2. Vergewissern Sie sich, dass die Gera:tedatei tunN im
       Verzeichnis /dev vorhanden ist.

    3. Bearbeiten Sie die Datei /etc/ppp/ppp.conf. Das Beispiel
       pmdemand sollte fu:r die meisten ISP ausreichen.

    4. Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie einen
       Eintrag in der Datei /etc/ppp/ppp.linkup.

    5. Aktualisieren Sie die Datei /etc/rc.conf.

    6. Erstellen Sie das Skript start_if.tun0, wenn Sie einen
       bedarfgesteuerten Einwahlprozess (demand dialing) beno:tigen.

   Serverseite:

    1. Stellen Sie sicher, dass das tun Device in den Kernel
       eingebaut ist.

    2. Vergewissern Sie sich, dass die Gera:tedatei tunN im
       Verzeichnis /dev vorhanden ist

    3. Erstellen Sie einen Eintrag in der Datei /etc/passwd
       (verwenden Sie dazu das Programm vipw(8)).

    4. Erstellen Sie ein Profil im Heimatverzeichnis des Benutzers,
       das ppp -direct direct-server o.A:. ausfu:hrt.

    5. Bearbeiten Sie die Datei /etc/ppp/ppp.conf. Das Beispiel
       direct-server sollte ausreichen.

    6. Erzeugen Sie einen Eintrag in /etc/ppp/ppp.linkup.

    7. Aktualisieren Sie die Datei /etc/rc.conf.

     --------------------------------------------------------------

28.3. Kernel-PPP

   Teile wurden urspru:nglich beigetragen von Gennady B. Sorokopud
   und Robert Huff.

     Warnung: Der folgende Abschnitt ist ausschliesslich fu:r
     FreeBSD 7.X relevant und gu:ltig.

     --------------------------------------------------------------

  28.3.1. Einrichtung von Kernel-PPP

   Bevor Sie PPP auf Ihrem Computer einrichten, sollten Sie dafu:r
   sorgen, dass pppd im Verzeichnis /usr/sbin vorhanden ist und
   /etc/ppp existiert.

   pppd kann auf zweierlei Weise arbeiten:

    1. Als "Client" - Sie mo:chten Ihren Rechner mit einem Netz
       verbinden, indem Sie eine serielle PPP-Verbindung aufbauen.

    2. Als "Server" - Ihr Rechner ist in ein Netzwerk eingebunden und
       stellt die PPP-Verbindung fu:r andere Rechner im Netzwerk her.

   In beiden Fa:llen werden Sie eine Datei mit den beno:tigten
   Optionen erstellen mu:ssen (/etc/ppp/options oder, wenn mehr als
   ein Benutzer PPP verwendet, ~/.ppprc).

   Sie beno:tigen ausserdem eine Software (vorzugsweise
   comms/kermit), mit der Sie seriell per Modem wa:hlen und eine
   Verbindung zu dem entfernten Host aufbauen ko:nnen.

     --------------------------------------------------------------

  28.3.2. Verwendung von pppd als Client

   Basierend auf Informationen von Trev Roydhouse.

   Die folgende Datei /etc/ppp/options kann fu:r einen
   Verbindungsaufbau mit PPP zu einem Cisco Terminalserver verwendet
   werden.

 crtscts         # enable hardware flow control
 modem           # modem control line
 noipdefault     # remote PPP server must supply your IP address
                 # if the remote host does not send your IP during IPCP
                 # negotiation, remove this option
 passive         # wait for LCP packets
 domain ppp.foo.com      # put your domain name here

 :remote_ip      # put the IP of remote PPP host here
                 # it will be used to route packets via PPP link
                 # if you didn't specified the noipdefault option
                 # change this line to local_ip:remote_ip

 defaultroute    # put this if you want that PPP server will be your
                 # default router

   Um eine Verbindung herzustellen, sollten Sie:

    1. Mit Kermit (oder einem anderen Modemprogramm) den entfernten
       Host anwa:hlen und Ihren Benutzernamen sowie Ihr Passwort
       (oder was sonst no:tig ist, um PPP auf dem entfernten Host zu
       aktivieren) eingeben.

    2. Kermit beenden (ohne die Verbindung abzubrechen).

    3. Folgendes eingeben:

 # /usr/sbin/pppd /dev/tty01 19200

       Achten Sie darauf, dass sie eine geeignete Geschwindigkeit
       wa:hlen und das richtige Device verwenden.

   Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn die
   Verbindung nicht funktionieren sollte, ko:nnen Sie die Option
   debug in die Datei /etc/ppp/options eintragen und die Ausgaben auf
   der Konsole beobachten, um die Fehler zu finden.

   Das folgende Skript /etc/ppp/pppup fu:hrt alle 3 Schritte
   automatisch aus:

 #!/bin/sh
 pgrep -l pppd
 pid=`pgrep pppd`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing pppd, PID=' ${pid}
         kill ${pid}
 fi
 pgrep -l kermit
 pid=`pgrep kermit`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing kermit, PID=' ${pid}
         kill -9 ${pid}
 fi

 ifconfig ppp0 down
 ifconfig ppp0 delete

 kermit -y /etc/ppp/kermit.dial
 pppd /dev/tty01 19200

   /etc/ppp/kermit.dial ist ein Kermit-Skript das den Einwa:hlvorgang
   und alle notwendigen Autorisationen auf dem entfernten Host
   durchfu:hrt (ein Beispiel fu:r ein solches Skript ist im Anhang zu
   diesem Dokument zu finden).

   Verwenden Sie das folgende Skript /etc/ppp/pppdown, um die
   PPP-Verbindung abzubrechen:

 #!/bin/sh
 pid=`pgrep pppd`
 if [ X${pid} != "X" ] ; then
         echo 'killing pppd, PID=' ${pid}
         kill -TERM ${pid}
 fi

 pgrep -l kermit
 pid=`pgrep kermit`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing kermit, PID=' ${pid}
         kill -9 ${pid}
 fi

 /sbin/ifconfig ppp0 down
 /sbin/ifconfig ppp0 delete
 kermit -y /etc/ppp/kermit.hup
 /etc/ppp/ppptest

   Pru:fen Sie, ob pppd immer noch la:uft, indem Sie
   /usr/etc/ppp/ppptest ausfu:hren. Dieses Skript sollte
   folgendermassen aussehen:

 #!/bin/sh
 pid=`pgrep pppd`
 if [ X${pid} != "X" ] ; then
         echo 'pppd running: PID=' ${pid-NONE}
 else
         echo 'No pppd running.'
 fi
 set -x
 netstat -n -I ppp0
 ifconfig ppp0

   Um die Modemverbindung abzubrechen, ko:nnen Sie das Skript
   /etc/ppp/kermit.hup verwenden, das Folgendes enthalten sollte:

 set line /dev/tty01     ; put your modem device here
 set speed 19200
 set file type binary
 set file names literal
 set win 8
 set rec pack 1024
 set send pack 1024
 set block 3
 set term bytesize 8
 set command bytesize 8
 set flow none

 pau 1
 out +++
 inp 5 OK
 out ATH0\13
 echo \13
 exit

   Hier ist eine alternative Methode, bei der chat an Stelle von
   Kermit eingesetzt wird:

   Die folgenden beiden Dateien reichen aus, um eine Verbindung u:ber
   pppd herzustellen.

   /etc/ppp/options:

 /dev/cuad1 115200

 crtscts         # enable hardware flow control
 modem           # modem control line
 connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
 noipdefault     # remote PPP serve must supply your IP address
                 # if the remote host doesn't send your IP during
                 # IPCP negotiation, remove this option
 passive         # wait for LCP packets
 domain <your.domain>      # put your domain name here

 :               # put the IP of remote PPP host here
                 # it will be used to route packets via PPP link
                 # if you didn't specified the noipdefault option
                 # change this line to local_ip:remote_ip;

 defaultroute    # put this if you want that PPP server will be
                 # your default router

   /etc/ppp/login.chat.script:

     Anmerkung: Die folgenden Angaben sollten in einer Zeile stehen.

 ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number
   CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id
   TIMEOUT 5 sword: password

   Wenn diese Dateien richtig installiert und modifiziert sind,
   mu:ssen Sie pppd, nur noch wie folgt starten:

 # pppd

     --------------------------------------------------------------

  28.3.3. Verwendung von pppd als Server

   /etc/ppp/options sollte etwa Folgendes enthalten:

 crtscts                         # Hardware flow control
 netmask 255.255.255.0           # netmask (not required)
 192.114.208.20:192.114.208.165  # IP's of local and remote hosts
                                 # local ip must be different from one
                                 # you assigned to the Ethernet (or other)
                                 # interface on your machine.
                                 # remote IP is IP address that will be
                                 # assigned to the remote machine
 domain ppp.foo.com              # your domain
 passive                         # wait for LCP
 modem                           # modem line

   Das folgende Skript /etc/ppp/pppserv la:sst pppd als Server zu
   arbeiten:

 #!/bin/sh
 pgrep -l pppd
 pid=`pgrep pppd`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing pppd, PID=' ${pid}
         kill ${pid}
 fi
 pgrep -l kermit
 pid=`pgrep kermit`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing kermit, PID=' ${pid}
         kill -9 ${pid}
 fi

 # reset ppp interface
 ifconfig ppp0 down
 ifconfig ppp0 delete

 # enable autoanswer mode
 kermit -y /etc/ppp/kermit.ans

 # run ppp
 pppd /dev/tty01 19200

   Verwenden Sie das Skript/etc/ppp/pppservdown, um den Server zu
   beenden:

 #!/bin/sh
 pgrep -l pppd
 pid=`pgrep pppd`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing pppd, PID=' ${pid}
         kill ${pid}
 fi
 pgrep -l kermit
 pid=`pgrep kermit`
 if [ "X${pid}" != "X" ] ; then
         echo 'killing kermit, PID=' ${pid}
         kill -9 ${pid}
 fi
 ifconfig ppp0 down
 ifconfig ppp0 delete

 kermit -y /etc/ppp/kermit.noans

   Mit dem Kermit-Skript (/etc/ppp/kermit.ans) la:sst sich die
   Funktion Ihres Modems, automatisch zu antworten, ein- bzw.
   ausschalten. Es sollte folgendermassen aussehen:

 set line /dev/tty01
 set speed 19200
 set file type binary
 set file names literal
 set win 8
 set rec pack 1024
 set send pack 1024
 set block 3
 set term bytesize 8
 set command bytesize 8
 set flow none

 pau 1
 out +++
 inp 5 OK
 out ATH0\13
 inp 5 OK
 echo \13
 out ATS0=1\13   ; change this to out ATS0=0\13 if you want to disable
                 ; autoanswer mode
 inp 5 OK
 echo \13
 exit

   Ein Skript namens /etc/ppp/kermit.dial wird fu:r die Einwahl und
   Authentifizierung am entfernten Host verwendet. Sie mu:ssen es
   noch an Ihre lokalen Gegebenheiten anpassen. Geben Sie in diesem
   Skript Ihren Benutzernamen und Ihr Passwort ein. In Abha:ngigkeit
   von der Reaktion Ihres Modems und des entfernten Hosts, werden Sie
   auch noch die input Anweisungen vera:ndern mu:ssen.

 ;
 ; put the com line attached to the modem here:
 ;
 set line /dev/tty01
 ;
 ; put the modem speed here:
 ;
 set speed 19200
 set file type binary            ; full 8 bit file xfer
 set file names literal
 set win 8
 set rec pack 1024
 set send pack 1024
 set block 3
 set term bytesize 8
 set command bytesize 8
 set flow none
 set modem hayes
 set dial hangup off
 set carrier auto                ; Then SET CARRIER if necessary,
 set dial display on             ; Then SET DIAL if necessary,
 set input echo on
 set input timeout proceed
 set input case ignore
 def \%x 0                       ; login prompt counter
 goto slhup

 :slcmd                          ; put the modem in command mode
 echo Put the modem in command mode.
 clear                           ; Clear unread characters from input buffer
 pause 1
 output +++                      ; hayes escape sequence
 input 1 OK\13\10                ; wait for OK
 if success goto slhup
 output \13
 pause 1
 output at\13
 input 1 OK\13\10
 if fail goto slcmd              ; if modem doesn't answer OK, try again

 :slhup                          ; hang up the phone
 clear                           ; Clear unread characters from input buffer
 pause 1
 echo Hanging up the phone.
 output ath0\13                  ; hayes command for on hook
 input 2 OK\13\10
 if fail goto slcmd              ; if no OK answer, put modem in command mode

 :sldial                         ; dial the number
 pause 1
 echo Dialing.
 output atdt9,550311\13\10               ; put phone number here
 assign \%x 0                    ; zero the time counter

 :look
 clear                           ; Clear unread characters from input buffer
 increment \%x                   ; Count the seconds
 input 1 {CONNECT }
 if success goto sllogin
 reinput 1 {NO CARRIER\13\10}
 if success goto sldial
 reinput 1 {NO DIALTONE\13\10}
 if success goto slnodial
 reinput 1 {\255}
 if success goto slhup
 reinput 1 {\127}
 if success goto slhup
 if < \%x 60 goto look
 else goto slhup

 :sllogin                        ; login
 assign \%x 0                    ; zero the time counter
 pause 1
 echo Looking for login prompt.

 :slloop
 increment \%x                   ; Count the seconds
 clear                           ; Clear unread characters from input buffer
 output \13
 ;
 ; put your expected login prompt here:
 ;
 input 1 {Username: }
 if success goto sluid
 reinput 1 {\255}
 if success goto slhup
 reinput 1 {\127}
 if success goto slhup
 if < \%x 10 goto slloop         ; try 10 times to get a login prompt
 else goto slhup                 ; hang up and start again if 10 failures

 :sluid
 ;
 ; put your userid here:
 ;
 output ppp-login\13
 input 1 {Password: }
 ;
 ; put your password here:
 ;
 output ppp-password\13
 input 1 {Entering SLIP mode.}
 echo
 quit

 :slnodial
 echo \7No dialtone.  Check the telephone line!\7
 exit 1

 ; local variables:
 ; mode: csh
 ; comment-start: "; "
 ; comment-start-skip: "; "
 ; end:

     --------------------------------------------------------------

28.4. Probleme bei PPP-Verbindungen

   Beigetragen von Tom Rhodes.

     Warnung: Mit FreeBSD 8.0 wurde der sio(4)-Treiber durch den
     Treiber uart(4) ersetzt. Parallel dazu wurden auch die
     entsprechenden Gera:tedateien fu:r die seriellen Ports
     umbenannt: /dev/cuadN wurde zu /dev/cuauN, /dev/ttydN zu
     /dev/ttyuN. Verwenden Sie noch FreeBSD 7.X, mu:ssen Sie dies
     beim Lesen der folgenden Abschnitte beru:cksichtigen.

   Dieser Abschnitt behandelt Probleme, die auftauchen ko:nnen, wenn
   PPP u:ber ein Modem verwendet wird. Sie mu:ssen beispielsweise
   genau die Eingabeaufforderung des Systems kennen, in das Sie sich
   einwa:hlen. Einige ISPs verwenden ssword andere verwenden
   password; wenn das Einwahlskript falsch ist, scheitert die
   Anmeldung. U:blicherweise suchen Sie nach Fehlern der
   PPP-Verbindung indem Sie sich manuell verbinden. Wie das genau
   geht, wird im Folgenden gezeigt.

     --------------------------------------------------------------

  28.4.1. Gera:tedateien u:berpru:fen

   Wenn Sie einen eigenen Kernel verwenden, stellen Sie sicher, dass
   die folgende Zeile in der Kernelkonfigurationsdatei vorhanden ist:

 device   uart

   Das uart-Gera:t ist bereits im GENERIC-Kernel vorhanden, deshalb
   sind in diesem Fall keine zusa:tzlichen Schritte vonno:ten.
   Kontrollieren Sie die Ausgabe von dmesg:

 # dmesg | grep uart

   In der Ausgabe sollten die entsprechenden uart-Gera:te,
   beispielsweise uart1 (COM2), angezeigt werden. Wird ein passendes
   Gera:t angezeigt, brauchen Sie keinen neuen Kernel zu erstellen.
   Wenn Ihr Modem an uart1 angeschlossen ist (in DOS ist dieser
   Anschluss als COM2 bekannt), ist /dev/cuau1 die dazugeho:rende
   Gera:tedatei.

     --------------------------------------------------------------

  28.4.2. Manuelle Verbindungen

   Ein Verbindungsaufbau zum Internet durch manuelle Steuerung von
   ppp geht schnell, ist einfach und stellt einen guten Weg dar, eine
   Verbindung auf Fehler hin zu u:berpru:fen oder einfach
   Informationen daru:ber zu sammeln, wie Ihr ISP Verbindungen
   handhabt. Lassen Sie uns PPP von der Kommandozeile aus starten.
   Beachten Sie, dass in allen Beispielen example der Hostname der
   Maschine ist, auf der PPP la:uft. Sie starten ppp, indem Sie
   einfach ppp eingeben:

 # ppp

   Wir haben ppp nun gestartet.

 ppp ON example> set device /dev/cuau1

   Wir geben das Device an, an das unser Modem angeschlossen ist. In
   diesem Fall ist es cuau1.

 ppp ON example> set speed 115200

   Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel verwenden
   wir 115200 kbps

 ppp ON example> enable dns

   Wir weisen ppp an, unseren Resolver zu konfigurieren und in der
   Datei /etc/resolv.conf Eintra:ge fu:r den Nameserver
   hinzuzufu:gen. Falls ppp unseren Hostnamen nicht bestimmen kann,
   geben wir diesen spa:ter manuell an.

 ppp ON example> term

   Wir wechseln in den "Terminal"-Modus, um das Modem manuell
   kontrollieren zu ko:nnen.

 deflink: Entering terminal mode on /dev/cuau1
 type '~h' for help

 at
 OK
 atdt123456789

   Sie verwenden at zur Initialisierung Ihres Modems und dann atdt
   sowie die Nummer Ihres ISP, um den Einwa:hlprozess zu starten.

 CONNECT

   Dies ist die Besta:tigung, dass eine Verbindung aufgebaut wurde.
   Falls wir Verbindungsprobleme bekommen, die nicht mit der Hardware
   zusammenha:ngen, werden wir an dieser Stelle ansetzen mu:ssen, um
   eine Lo:sung zu finden.

 ISP Login:myusername

   Hier werden Sie nach einem Benutzernamen gefragt. Geben Sie am
   Prompt den Namen ein, den Ihnen Ihr ISP zur Verfu:gung gestellt
   hat.

 ISP Pass:mypassword

   An dieser Stelle mu:ssen Sie das Passwort angeben, das Ihnen von
   Ihrem ISP vorgegeben wurde. Das Passwort wird, analog dem normalen
   Anmeldevorgang, nicht angezeigt.

 Shell or PPP:ppp

   Abha:ngig von Ihrem ISP, kann es sein, dass dieser Prompt bei
   Ihnen gar nicht erscheint. Wir werden hier gefragt, ob wir eine
   Shell beim Provider verwenden oder ppp starten wollen. Weil wir
   eine Internetverbindung aufbauen wollen, haben wir uns in diesem
   Beispiel fu:r ppp entschieden.

 Ppp ON example>

   Beachten Sie, dass sich in diesem Beispiel das erste p in einen
   Grossbuchstaben verwandelt hat. Dies zeigt, dass wir erfolgreich
   eine Verbindung zu unserem ISP hergestellt haben.

 PPp ON example>

   An dieser Stelle haben wir uns erfolgreich bei unserem ISP
   authentifiziert und warten darauf, dass uns eine IP-Adresse
   zugewiesen wird.

 PPP ON example>

   Wir haben uns mit der Gegenstelle auf eine IP-Adresse geeinigt und
   den Verbindungsaufbau erfolgreich abgeschlossen

 PPP ON example> add default HISADDR

   Hier geben wir unsere Standardroute an. Weil zu diesem Zeitpunkt
   unsere einzige Verbindung zu unserer Gegenstelle besteht, mu:ssen
   wir dies tun, bevor wir Kontakt zu unserer Umwelt aufnehmen
   ko:nnen. Falls dies aufgrund bestehender Routen nicht
   funktionieren sollte, ko:nnen Sie ein Ausrufungszeichen ! vor add
   setzen. Sie ko:nnen diese Standardroute aber auch vor dem
   eigentlichen Verbindungsaufbau angeben und PPP wird entsprechend
   eine neue Route aushandeln.

   Wenn alles gut ging, sollten wir nun eine aktive
   Internetverbindung haben, die wir mit Ctrl+z in den Hintergrund
   schicken ko:nnen Wenn sie feststellen, dass PPP wieder zu ppp
   wird, ist die Verbindung abgebrochen. Es ist gut dies zu wissen,
   weil dadurch der Verbindungsstatus angezeigt wird. Grosse Ps
   zeigen an, dass wir eine Verbindung zum ISP haben und kleine ps
   zeigen an, dass wir aus irgendeinem Grund die Verbindung verloren
   haben. ppp hat nur diese beiden Zusta:nde.

     --------------------------------------------------------------

    28.4.2.1. Fehlersuche

   Wenn sie einen Direktanschluss haben und keine Verbindung aufbauen
   ko:nnen, schalten Sie die Hardware-Flusssteuerung CTS/RTS aus,
   indem Sie die Option set ctsrts off verwenden. Dies ist zumeist
   dann der Fall, wenn Sie mit einem PPP-fa:higen Terminalserver
   verbunden sind. Hier bleibt PPP bei dem Versuch ha:ngen, Daten
   u:ber Ihre Nachrichtenverbindung zu schicken, weil auf ein
   CTS-Signal (Clear-to-Send) gewartet wird, das nie kommt. Wenn Sie
   diese Option jedoch gebrauchen, sollten Sie auch die Option set
   accmap verwenden, die erforderlich sein kann, um bestimmte
   Hardware zu kontrollieren, die auf die U:bertragung bestimmter
   Zeichen zwischen den Kommunikations-Endpunkten (zumeist XON/XOFF)
   angewiesen ist. Die Manual-Seite ppp(8) bietet mehr Informationen
   zu dieser Option und ihrer Verwendung.

   Wenn Sie ein a:lteres Modem haben, beno:tigen Sie vielleicht die
   Option set parity even. Standardma:ssig wird keine Parita:t
   vorausgesetzt, sie ist aber fu:r die Fehlerpru:fung bei a:lteren
   Modems und bei bestimmten ISPs erforderlich. Sie ko:nnten diese
   Option fu:r den ISP Compuserve beno:tigen.

   PPP kehrt mo:glicherweise nicht in den Befehlsmodus zuru:ck, was
   normalerweise auf einen Fehler bei der Aushandlung hinweist, wobei
   der ISP wartet, dass Ihre Seite den Aushandlungsprozess beginnt.
   Die Option ~p erzwingt in diesem Fall den Beginn des
   Aushandlungsprozesses.

   Wenn Sie nie einen Login-Prompt erhalten, mu:ssen Sie statt des im
   Beispiel gezeigten UNIX-Stils ho:chst wahrscheinlich PAP oder CHAP
   fu:r die Authentifizierung verwenden. Um PAP oder CHAP zu
   verwenden, erga:nzen Sie PPP einfach um folgende Optionen, bevor
   Sie in den Terminalmodus wechseln:

 ppp ON example> set authname myusername

   Hierbei sollte myusername durch den Benutzernamen ersetzt werden,
   den Sie von Ihrem ISP bekommen haben.

 ppp ON example> set authkey mypassword

   mypassword sollten Sie durch das Passwort ersetzen, das Ihnen Ihr
   ISP gegeben hat.

   Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner unter
   ihrem Doma:nen-Namen erreichen ko:nnen, versuchen Sie, einen
   Rechner mit ping(8) und seiner IP-Adresse zu erreichen. Wenn 100%
   der Pakete verloren gehen, ist es sehr wahrscheinlich, dass Ihnen
   keine Standardroute zugewiesen wurde. U:berpru:fen Sie, ob
   wa:hrend des Verbindungsaufbaus die Option add default HISADDR
   gesetzt war. Wenn Sie zu einer entfernten IP-Adresse eine
   Verbindung aufbauen ko:nnen, ist es mo:glich, dass die Adresse
   eines Nameservers nicht in die Datei /etc/resolv.conf eingetragen
   wurde. Diese Datei sollte folgendermassen aussehen:

 domain example.com
 nameserver x.x.x.x
 nameserver y.y.y.y

   Dabei sollten x.x.x.x und y.y.y.y durch die IP-Adressen der
   DNS-Server Ihres ISPs ersetzt werden. Diese Information ist Ihnen
   bei Vertragsabschluss mitgeteilt worden. Wenn nicht, sollte ein
   Anruf bei Ihrem ISP Abhilfe schaffen.

   Mit syslog(3) ko:nnen Sie Ihre PPP-Verbindung protokollieren.
   Fu:gen Sie einfach die folgende Zeile in /etc/syslog.conf ein:

 !ppp
 *.*     /var/log/ppp.log

   In den meisten Fa:llen existiert diese Funktionalita:t bereits.

     --------------------------------------------------------------

28.5. PPP over Ethernet (PPPoE)

   Beigetragen (durch
   http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von Jim
   Mock.

   Dieser Abschnitt beschreibt, wie Sie PPP over Ethernet (PPPoE)
   einrichten.

     --------------------------------------------------------------

  28.5.1. Konfiguration des Kernels

   Eine besondere Kernelkonfiguration ist fu:r PPPoE nicht mehr
   erforderlich. Sofern die notwendige NetGraph-Unterstu:tzung nicht
   in den Kernel eingebaut wurde, wird diese von ppp dynamisch
   geladen.

     --------------------------------------------------------------

  28.5.2. Einrichtung von ppp.conf

   Dies hier ist ein Beispiel einer funktionierenden ppp.conf:

 default:
   set log Phase tun command # you can add more detailed logging if you wish
   set ifaddr 10.0.0.1/0 10.0.0.2/0

 name_of_service_provider:
   set device PPPoE:xl1 # replace xl1 with your Ethernet device
   set authname YOURLOGINNAME
   set authkey YOURPASSWORD
   set dial
   set login
   add default HISADDR

     --------------------------------------------------------------

  28.5.3. ppp ausfu:hren

   Als root, geben Sie ein:

 # ppp -ddial name_of_service_provider

     --------------------------------------------------------------

  28.5.4. ppp beim Systemstart ausfu:hren

   Fu:gen Sie Folgendes in Ihre Datei /etc/rc.conf ein:

 ppp_enable="YES"
 ppp_mode="ddial"
 ppp_nat="YES"   # if you want to enable nat for your local network, otherwise NO
 ppp_profile="name_of_service_provider"

     --------------------------------------------------------------

  28.5.5. Verwendung einer PPPoE-Dienstbezeichnung (service tag)

   Manchmal kann es notwendig sein, eine Dienstbezeichnung (service
   tag) zu verwenden, um eine Verbindung aufzubauen.
   Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen
   PPPoE-Servern unterscheiden zu ko:nnen, die einem bestehenden
   Netzwerk zugeteilt sind.

   Die erforderlichen Dienstbezeichnungen sollten in der
   Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfu:gung
   gestellt hat. Wenn Sie diese Informationen dort nicht finden,
   fragen Sie beim technischen Kundendienst Ihres ISP danach.

   Als letzte Mo:glichkeit, bleibt die Methode, die von dem Programm
   Roaring Penguin PPPoE vorgeschlagen wird, das in der
   Ports-Sammlung zu finden ist. Bedenken Sie aber, dass dadurch
   Daten Ihres Modems gelo:scht werden ko:nnen, so dass es nicht mehr
   benutzt werden kann. U:berlegen Sie also genau, ob Sie dies machen
   wollen. Installieren Sie einfach das Programm, das Ihnen Ihr
   Provider zusammen mit dem Modem geliefert hat. Gehen Sie dann in
   das Menu: System dieses Programms. Der Name Ihres Profils, sollte
   in der Liste aufgefu:hrt sein. Normalerweise ist dies ISP.

   Der Name des Profils (service tag) wird im Eintrag fu:r die
   PPPoE-Konfiguration in der Datei ppp.conf verwendet, als der Teil
   des Befehls set device (die manpage ppp(8) entha:lt Einzelheiten
   hierzu), der den Provider angibt. Dieser Eintrag sollte
   folgendermassen aussehen:

 set device PPPoE:xl1:ISP

   Vergessen Sie nicht, statt xl1 das richtige Device Ihrer
   Netzwerkkarte anzugeben.

   Denken sie auch daran, ISP durch das Profil, das Sie oben gefunden
   haben zu ersetzen.

   Weitere Informationen bieten:

     * Cheaper Broadband with FreeBSD on DSL von Renaud Waldura.

     --------------------------------------------------------------

  28.5.6. PPPoE mit einem 3Com(R) HomeConnect(R) ADSL Modem Dual Link

   Dieses Modem folgt nicht dem RFC 2516 (A Method for transmitting
   PPP over Ethernet (PPPoE), verfasst von L. Mamakos, K. Lidl, J.
   Evarts, D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden
   andere Pakettyp-Codes fu:r die Ethernet Frames verwendet. Bitte
   beschweren Sie sich unter 3Com, wenn Sie der Ansicht sind, dass
   dieses Modem die PPPoE-Spezifikation einhalten sollte.

   Um FreeBSD in die Lage zu versetzen, mit diesem Gera:t zu
   kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann
   beim Systemstart automatisch geschehen, indem die Datei
   /etc/sysctl.conf angepasst wird:

 net.graph.nonstandard_pppoe=1

   oder, wenn der Befehl unmittelbar wirksam werden soll, durch:

 # sysctl net.graph.nonstandard_pppoe=1

   Da hiermit eine systemweit gu:ltige Einstellung vorgenommen wird,
   ist es nicht mo:glich, gleichzeitig mit einem normalen
   PPPoE-Client oder Server und einem 3Com HomeConnect(R) ADSL Modem
   zu kommunizieren.

     --------------------------------------------------------------

28.6. PPP over ATM (PPPoA)

   Nachfolgend wird beschrieben, wie PPP over ATM (PPPoA)
   eingerichtet wird. PPPoA ist vor allem unter europa:ischen
   DSL-Providern popula:r.

     --------------------------------------------------------------

  28.6.1. Der Einsatz von PPPoA mit dem Alcatel SpeedTouch(TM) USB

   PPPoA-Unterstu:tzung fu:r dieses Gera:t ist unter FreeBSD als Port
   verfu:gbar, da die Firmware unter Alcatels Lizenzvereinbarung
   vertrieben wird und deshalb nicht mit dem FreeBSD-Basissystem frei
   verteilt werden kann.

   Um die Software zu installieren, verwenden Sie einfach die
   Ports-Sammlung. Installieren Sie den Port net/pppoa und folgen Sie
   den dabei angegebenen Instruktionen.

   Fu:r den ordnungsgema:ssen Betrieb muss das Alcatel SpeedTouch(TM)
   USB, wie viele USB-Gera:te, Firmware auf den Gastrechner laden.
   FreeBSD kann die Firmware automatisch laden, wenn das Gera:t mit
   dem USB-Anschluss verbunden wird. Dazu fu:gen Sie als Benutzer
   root die nachstehenden Zeilen in /etc/usbd.conf ein:

 device "Alcatel SpeedTouch USB"
     devname "ugen[0-9]+"
     vendor 0x06b9
     product 0x4061
     attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

   Den USB-Daemon aktivieren Sie mit der folgenden Zeile in
   /etc/rc.conf:

 usbd_enable="YES"

   Wenn die Verbindung beim Start von ppp aufgebaut werden soll,
   fu:gen Sie die nachstehenden Zeilen als Benutzer root in
   /etc/rc.conf ein:

 ppp_enable="YES"
 ppp_mode="ddial"
 ppp_profile="adsl"

   Verwenden Sie bitte diese Einstellungen zusammen mit der
   Beispielkonfiguration in ppp.conf des Ports net/pppoa.

     --------------------------------------------------------------

  28.6.2. Die Verwendung von mpd

   Sie ko:nnen mpd verwenden, um zu einer Reihe von Diensten,
   insbesondere PPTP-Diensten eine Verbindung herzustellen. Sie
   finden mpd in der Ports-Sammlung unter net/mpd. Viele ADSL Modems,
   wie das Alcatel SpeedTouch Home, sind auf einen PPTP-Tunnel
   zwischen dem Modem und dem Rechner angewiesen.

   Zuerst mu:ssen Sie den Port installieren, um danach mpd
   entsprechend Ihren Anforderungen und den Vorgaben Ihres Providers
   konfigurieren zu ko:nnen. Der Port installiert auch einige gut
   dokumentierte Beispielkonfigurationsdateien in PREFIX/etc/mpd/.
   Beachten Sie, dass PREFIX hier das Verzeichnis angibt, in das Ihre
   Ports installiert werden. Standardma:ssig ist dies das Verzeichnis
   /usr/local/. Ein kompletter Leitfaden zur Konfiguration von mpd
   ist im HTML-Format verfu:gbar, sobald der Port installiert ist.
   Dieser ist in PREFIX/share/doc/mpd/ zu finden. Hier ist eine
   Beispielkonfiguration, um mit mpd eine Verbindung zu einem
   ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien
   verteilt. Zuna:chst die Datei mpd.conf:

 default:
     load adsl

 adsl:
     new -i ng0 adsl adsl
     set bundle authname username (1)
     set bundle password password (2)
     set bundle disable multilink

     set link no pap acfcomp protocomp
     set link disable chap
     set link accept chap
     set link keep-alive 30 10

     set ipcp no vjcomp
     set ipcp ranges 0.0.0.0/0 0.0.0.0/0

     set iface route default
     set iface disable on-demand
     set iface enable proxy-arp
     set iface idle 0

     open

   (1)
           Der Benutzername, den Sie zur Authentifizierung bei Ihrem
           ISP verwenden.
   (2)
           Das Passwort, das Sie zur Authentifizierung bei Ihrem ISP
           verwenden.

   Die Datei mpd.links entha:lt Informationen u:ber die
   Verbindung(en), die Sie aufbauen mo:chten. Eine Beispieldatei
   mpd.links, die das vorige Beispiel erga:nzt, wird unten angegeben:

 adsl:
     set link type pptp
     set pptp mode active
     set pptp enable originate outcall
     set pptp self 10.0.0.1 (1)
     set pptp peer 10.0.0.138 (2)

   (1)
           Die IP-Adresse des FreeBSD-Rechners von dem aus Sie mpd
           verwenden.
   (2)
           Die IP-Adresse des ADSL-Modems. Das Alcatel SpeedTouch
           Home hat die Adresse 10.0.0.138 voreingestellt.

   Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden
   Befehls als root gestartet werden:

 # mpd -b adsl

   Sie ko:nnen sich den Status der Verbindung durch folgenden Befehl
   anzeigen lassen:

 % ifconfig ng0
 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
      inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

   Die Verwendung von mpd ist der empfehlenswerteste Weg, um mit
   FreeBSD eine Verbindung zu einem ADSL-Dienst aufzubauen.

     --------------------------------------------------------------

  28.6.3. Die Verwendung von pptpclient

   Es ist ausserdem mo:glich, mit FreeBSD eine Verbindung zu anderen
   PPPoA-Diensten aufzubauen. Dazu wird net/pptpclient verwendet.

   Um mit net/pptpclient eine eine Verbindung zu einem DSL-Dienst
   aufbauen zu ko:nnen, mu:ssen Sie den entsprechenden Port bzw. das
   Paket installieren und die Datei /etc/ppp/ppp.conf bearbeiten. Sie
   mu:ssen root sein, um diese Schritte durchfu:hren zu ko:nnen. Eine
   Beispieldatei fu:r ppp.conf ist weiter unten angegeben. Weitere
   Informationen zu den Optionen von ppp.conf bietet die Manual-Seite
   ppp ppp(8):

 adsl:
  set log phase chat lcp ipcp ccp tun command
  set timeout 0
  enable dns
  set authname username (1)
  set authkey password (2)
  set ifaddr 0 0
  add default HISADDR

   (1)
           Der Benutzername fu:r den Zugang zu den Diensten Ihres
           ISP.
   (2)
           Das Passwort fu:r Ihren Account.

     Warnung: Weil Sie Ihr Passwort in der Datei ppp.conf in Klartext
     angeben mu:ssen, sollten Sie sicherstellen, dass niemand den
     Inhalt dieser Datei lesen kann. Die folgende Reihe von Befehlen
     stellt sicher, dass die Datei nur von root lesbar ist.
     Zusa:tzliche Informationen bieten die Manual-Seiten chmod(1) und
     chown(8):

 # chown root:wheel /etc/ppp/ppp.conf
 # chmod 600 /etc/ppp/ppp.conf

   Dies wird einen Tunnel fu:r eine PPP-Session zu Ihrem DSL-Router
   o:ffnen. Ethernet-DSL-Modems haben eine vorkonfigurierte
   LAN-IP-Adresse, mit der Sie eine Verbindung aufbauen. Im Falle des
   Alcatel SpeedTouch Home handelt es sich dabei um die Adresse
   10.0.0.138. In der Dokumentation Ihres Routers sollte angegeben
   sein, welche Adresse Ihr Gera:t verwendet. Um den Tunnel zu
   o:ffnen und eine PPP-Session zu starten, fu:hren Sie bitte
   folgenden Befehl aus:

 # pptp address adsl

     Tipp: Vielleicht mo:chten Sie ein kaufma:nnisches Und ("&") an
     das Ende oben angegebenen Kommandos anfu:gen, da pptp sonst den
     Prompt nicht zuru:ckgibt.

   Ein virtuelles Tunnel-Device tun wird fu:r das Zusammenspiel der
   Prozesse pptp und ppp geschaffen. Wenn Sie den Prompt
   zuru:ckerhalten haben oder der pptp-Prozess das Vorliegen einer
   Verbindung besta:tigt, ko:nnen Sie den Tunnel folgendermassen
   u:berpru:fen:

 % ifconfig tun0
 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
         inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
         Opened by PID 918

   Wenn Sie nicht in der Lage sein sollten, eine Verbindung
   aufzubauen, u:berpru:fen Sie die Konfiguration Ihres Routers, den
   Sie normalerweise per telnet oder mit einem Web-Browser erreichen
   ko:nnen. Falls dennoch keine Verbindung zustande kommt, sollten
   Sie die Ausgabe des Befehls pptp und die Logdatei /var/log/ppp.log
   von ppp nach Hinweisen auf die Ursache durchsuchen.

     --------------------------------------------------------------

28.7. SLIP

   Urspru:nglich beigetragen von Satoshi Asami. Mit Beitra:gen von
   Guy Helmer und Piero Serini.

     Warnung: Der folgende Abschnitt ist ausschliesslich fu:r
     FreeBSD 7.X relevant und gu:ltig.

     --------------------------------------------------------------

  28.7.1. Einrichtung eines SLIP-Clients

   Im Folgenden wird ein Weg beschrieben, SLIP auf einer
   FreeBSD-Maschine fu:r ein Netzwerk mit festen Hostnamen
   einzurichten. Bei einer dynamischen Zuweisung des Hostnamens (das
   heisst wenn sich Ihre Adresse bei jeder Einwahl a:ndert) wird die
   Einrichtung wahrscheinlich etwas komplexer aussehen.

   Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem
   angeschlossen ist. Viele Leute erzeugen einen symbolischen Link,
   wie etwa /dev/modem, der auf den wirklichen Gera:tenamen
   /dev/cuadN verweist. Damit ist es Ihnen mo:glich, vom eigentlichen
   Gera:tenamen zu abstrahieren, sollten Sie das Modem einmal an eine
   andere Schnittstelle anschliessen mu:ssen. Es kann ziemlich
   umsta:ndlich sein, wenn Sie eine viele Dateien in /etc und
   .kermrc-Dateien, die u:ber das ganze System verstreut sind,
   anpassen mu:ssen!

     Anmerkung: /dev/cuau0 ist COM1, /dev/cuau1 ist COM2, etc.

   Stellen Sie sicher, dass Folgendes in Ihrer
   Kernelkonfigurationsdatei steht:

 device   sl      1

   Dieses pseudo-device ist im GENERIC Kernel enthalten. Falls es von
   Ihnen nicht gelo:scht wurde, sollten Sie hier kein Problem haben.

     --------------------------------------------------------------

    28.7.1.1. Dinge, die Sie nur einmal erledigen mu:ssen

    1. Tragen Sie Ihren lokalen Rechner, das Gateway, sowie die
       Nameserver in Ihre Datei /etc/hosts ein. Diese Datei sieht bei
       mir so aus:

 127.0.0.1               localhost loghost
 136.152.64.181          water.CS.Example.EDU water.CS water
 136.152.64.1            inr-3.CS.Example.EDU inr-3 slip-gateway
 128.32.136.9            ns1.Example.EDU ns1
 128.32.136.12           ns2.Example.EDU ns2

    2. Vergewissern Sie sich, dass in der Datei /etc/host.conf im
       Abschnitt hosts: files vor dns steht. Ohne diese Reihenfolge
       ko:nnten lustige Dinge passieren.

    3. Editieren Sie die Datei /etc/rc.conf.

         1. Ihren Hostnamen geben Sie an, indem Sie folgende Zeile
            bearbeiten:

 hostname="myname.my.domain"

            Hier sollte der vollsta:ndige Internethostname Ihres
            Rechners angegeben werden.

         2. Den Defaultrouter geben Sie durch die Modifikation
            folgender Zeile an:

 defaultrouter="NO"

            wird zu:

 defaultrouter="slip-gateway"

    4. Erstellen Sie die Datei /etc/resolv.conf, die Folgendes
       entha:lt:

 domain CS.Example.EDU
 nameserver 128.32.136.9
 nameserver 128.32.136.12

       Wie Sie sehen, werden hiermit die Nameserver angegeben.
       Natu:rlich ha:ngen die tatsa:chlichen Domainnamen und Adressen
       von Ihren Gegebenheiten ab.

    5. Legen Sie ein Passwort fu:r root und toor (sowie fu:r alle
       anderen Accounts die kein Passwort haben) fest.

    6. Starten Sie Ihren Rechner neu und u:berpru:fen Sie, ob er mir
       dem richtigen Hostnamen startet.

     --------------------------------------------------------------

    28.7.1.2. Aufbau einer SLIP-Verbindung

    1. Wa:hlen Sie sich ein, geben Sie slip und am Prompt den Namen
       Ihres Rechners sowie Ihr Passwort ein. Was Sie eingeben
       mu:ssen, ha:ngt von Ihren Gegebenheiten ab. Wenn Sie Kermit
       verwenden, ko:nnen Sie ein Skript a:hnlich dem Folgenden
       verwenden:

 # kermit setup
 set modem hayes
 set line /dev/modem
 set speed 115200
 set parity none
 set flow rts/cts
 set terminal bytesize 8
 set file type binary
 # The next macro will dial up and login
 define slip dial 643-9600, input 10 =>, if failure stop, -
 output slip\x0d, input 10 Username:, if failure stop, -
 output silvia\x0d, input 10 Password:, if failure stop, -
 output ***\x0d, echo \x0aCONNECTED\x0a

       Natu:rlich mu:ssen Sie hier Ihren Benutzernamen und Ihr
       Passwort eintragen. Wenn Sie das getan haben, ko:nnen Sie am
       Kermit-Prompt einfach slip eingeben, um sich zu verbinden.

         Anmerkung: Es ist generell eine schlechte Idee, Ihr Passwort
         in einer unverschlu:sselten Textdatei irgendwo im
         Dateisystem zu speichern. Tun Sie dies auf Ihr eigenes
         Risiko.

    2. Belassen Sie Kermit so (Sie ko:nnen es mit Ctrl-z
       unterbrechen) und geben Sie als root ein:

 # slattach -h -c -s 115200 /dev/modem

       Wenn Sie mit ping Hosts auf der anderen Seite des Routers
       erreichen ko:nnen, sind Sie verbunden! Wenn es nicht
       funktionieren sollte, ko:nnen Sie versuchen -a statt -c als
       Argument fu:r slattach zu verwenden.

     --------------------------------------------------------------

    28.7.1.3. Beenden der Verbindung

   Um slattach zu beenden, geben Sie Folgendes ein:

 # kill -INT `cat /var/run/slattach.modem.pid`

   Beachten Sie, dass Sie root sein mu:ssen, um dies durchfu:hren zu
   ko:nnen. Kehren Sie zu kermit zuru:ck (mit Hilfe von fg, wenn Sie
   es unterbrochen haben) und beenden Sie dieses Programm (q).

   slattach(8) gibt an, dass ifconfig sl0 down verwendet werden soll,
   um das Interface zu deaktivieren, doch das scheint keinen
   Unterschied zu machen. (ifconfig sl0 gibt dasselbe aus).

   Es kann vorkommen, dass Ihr Modem sich weigert, das Tra:gersignal
   zu beenden. In diesem Fall starten Sie kermit einfach neu und
   beenden es wieder. Beim zweiten Versuch geht es meist aus.

     --------------------------------------------------------------

    28.7.1.4. Lo:sungen bei Problemen

   Wenn es nicht funktionieren sollte, ko:nnen Sie an die
   Mailingliste freebsd-net schreiben. U:ber diese Dinge sind
   Benutzer bisher gestolpert:

     * Nicht -c oder -a in slattach verwenden (Das sollte nicht
       entscheidend sein, aber einige Benutzer haben berichtet, dass
       dies ihre Probleme lo:st).

     * Verwendung von s10 statt sl0 (bei einigen Schriftarten kann
       der Unterschied schwer zu erkennen sein).

     * Probieren Sie ifconfig sl0, um den Status Ihrer Schnittstelle
       abzufragen. Das Ergebnis ko:nnte beispielsweise so aussehen:

 # ifconfig sl0
 sl0: flags=10<POINTOPOINT>
         inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00

     * Wenn ping(8) die Fehlermeldung "no route to host" ausgibt,
       kann die Routingtabelle falsch sein. Die Routen ko:nnen Sie
       sich mit dem Kommando netstat -r ansehen:

 # netstat -r
 Routing tables
 Destination      Gateway            Flags     Refs     Use  IfaceMTU    Rtt    Netmasks:

 (root node)
 (root node)

 Route Tree for Protocol Family inet:
 (root node) =>
 default          inr-3.Example.EDU  UG          8   224515  sl0 -      -
 localhost.Exampl localhost.Example. UH          5    42127  lo0 -       0.438
 inr-3.Example.ED water.CS.Example.E UH          1        0  sl0 -      -
 water.CS.Example localhost.Example. UGH        34 47641234  lo0 -       0.438
 (root node)

       Die Zahlen im Beispiel stammen von einer recht ausgelasteten
       Maschine. Die Zahlen auf Ihrem System werden, je nach
       Netzaktivita:t, von den gezeigten abweichen.

     --------------------------------------------------------------

  28.7.2. Einrichtung eines SLIP-Servers

   Dieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System
   als SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr
   System so zu, konfigurieren, dass beim Login automatisch eine
   Verbindung fu:r entfernte SLIP-Clients aufgebaut wird.

     --------------------------------------------------------------

    28.7.2.1. Voraussetzungen

   Dieser Abschnitt ist ausgesprochen technischer Natur, weshalb
   Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie
   mit dem TCP/IP Protokoll, insbesondere mit Netzwerk- und
   Rechneradressierung, Netzwerkmasken, Subnetzen, Routing und
   Routingprotokollen, wie RIP, vertraut sind. Die Konfiguration von
   SLIP-Diensten auf einem Einwa:hlserver erfordert die Kenntnis
   dieser Konzepte. Wenn Sie damit nicht vertraut sein sollten, lesen
   Sie bitte Craig Hunt's TCP/IP Network Administration publiziert
   von O'Reilly & Associates, Inc. (ISBN Nummer 0-937175-82-X) oder
   die Bu:cher von Douglas Comer u:ber das TCP/IP Protokoll.

   Wir gehen ausserdem davon aus, dass Sie Ihr(e) Modem(s)
   eingerichtet haben und die entsprechenden Systemdateien so
   konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind.
   Wenn Sie Ihr System dafu:r noch nicht vorbereitet haben, lesen Sie
   bitte Abschnitt 27.4, um Ihre Einwahlverbindung zu konfigurieren.
   Hilfreich sind auch die Manualpages sio(4) mit Informationen zum
   Gera:tetreiber der seriellen Schnittstelle ttys(5), sowie
   gettytab(5), getty(8) und init(8) fu:r Informationen zur
   Konfiguration von Logins u:ber ein Modem. stty(1) bietet
   Informationen zur Einstellung der Parameter der seriellen
   Schnittstelle (etwa von clocal fu:r direkt angeschlossene serielle
   Gera:te).

     --------------------------------------------------------------

    28.7.2.2. Ein kurzer U:berblick

   Mit der normal verwendeten Konfiguration funktioniert der
   FreeBSD-SLIP-Server folgendermassen: Ein SLIP-Benutzer wa:hlt
   einen FreeBSD-SLIP-Server an und meldet sich mit einer speziellen
   SLIP-Login-ID ein, wobei /usr/sbin/sliplogin als Shell dieses
   besonderen Accounts dient. Das Programm sliplogin durchsucht die
   Datei /etc/sliphome/slip.hosts nach einer passenden Zeile fu:r
   diesen Account. Falls ein Treffer erzielt wird, verbindet es den
   seriellen Anschluss mit einem verfu:gbaren SLIP-Interface und
   fu:hrt das Shellskript /etc/sliphome/slip.login aus, um das
   SLIP-Interface zu konfigurieren.

     --------------------------------------------------------------

      28.7.2.2.1. Ein Beispiel fu:r ein Login eines SLIP-Servers

   Wenn beispielsweise die Kennung eines SLIP-Benutzers, Shelmerg
   wa:re, ko:nnte der Eintrag des Benutzers Shelmerg in der Datei
   /etc/master.passwd etwa so aussehen:

 Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin

   Wenn sich Shelmerg anmeldet, wird sliplogin die Datei
   /etc/sliphome/slip.hosts nach einer u:bereinstimmenden
   Benutzerkennung durchsuchen. So ko:nnte etwa folgende Zeile in
   /etc/sliphome/slip.hosts stehen:

 Shelmerg        dc-slip sl-helmer       0xfffffc00                autocomp

   sliplogin wird die passende Zeile finden, den seriellen Anschluss
   mit dem na:chsten verfu:gbaren SLIP-Interface verbinden und dann
   /etc/sliphome/slip.login wie hier dargestellt ausfu:hren:

 /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp

   Wenn alles gut la:uft, wird /etc/sliphome/slip.login ein ifconfig
   fu:r das SLIP-Interface durchfu:hren, mit dem sich sliplogin
   verbunden hat (in obigem Beispiel ist das slip 0, der als erster
   Parameter in der Liste an slip.login u:bergeben wurde), um die
   lokale IP-Adresse (dc-slip), die entfernte IP-Adresse (sl-helmer),
   die Netzmaske des SLIP-Interface (0xfffffc00) und alle
   zusa:tzlichen Optionen (autocomp) festzulegen. Wenn etwas schief
   laufen sollte, bietet, sliplogin normalerweise informative
   Meldungen durch den syslogd-Daemon, der die Meldungen
   standardma:ssig nach /var/log/messages schreibt (sehen Sie hierzu
   auch in den Manual-Seiten fu:r syslogd(8) und syslog.conf(5)
   nach). U:berpru:fen Sie auch /etc/syslog.conf, um zu sehen, was
   syslogd aufzeichnet und wo es aufgezeichnet wird.

     --------------------------------------------------------------

    28.7.2.3. Kernelkonfiguration

   Der Standardkernel von FreeBSD (GENERIC) bietet bereits
   SLIP-Unterstu:tzung (sl(4)). Falls Sie einen angepassten Kernel
   verwenden, mu:ssen Sie sicherstellen, dass Ihre
   Kernelkonfigurationsdatei folgende Zeile entha:lt:

 device   sl

   In der Voreinstellung leitet Ihr FreeBSD-Rechner keine Pakete
   weiter. Wenn Sie Ihren FreeBSD-SLIP-Server als Router einsetzen
   mo:chten, mu:ssen Sie die Datei /etc/rc.conf bearbeiten und den
   Wert der Variable gateway_enable auf YES setzen. Dadurch ist
   sichergestellt, dass die Routingoptionen auch nach einem Neustart
   erhalten bleiben.

   Um die Einstellungen sofort anzuwenden, fu:hren Sie den folgenden
   Befehl als root-Benutzer aus:

 # /etc/rc.d/routing start

   Weitere Informationen zur Konfiguration Ihres Kernels, finden Sie
   in Kapitel 9 dieses Handbuches.

     --------------------------------------------------------------

    28.7.2.4. Konfiguration des Sliplogin

   Wie bereits erwa:hnt, gibt es im Verzeichnis /etc/sliphome drei
   Dateien, die Teil der Konfiguration fu:r /usr/sbin/sliplogin sind
   (sliplogin ist in sliplogin(8) beschrieben): slip.hosts, definiert
   die SLIP-Benutzer sowie deren IP-Adresse; slip.login, womit
   normalerweise nur das SLIP-Interface konfiguriert wird und
   (optional) slip.logout, womit die Auswirkungen von slip.login
   ru:ckga:ngig gemacht werden, wenn die serielle Verbindung beendet
   wird.

     --------------------------------------------------------------

      28.7.2.4.1. Konfiguration der Datei slip.hosts

   /etc/sliphome/slip.hosts entha:lt Zeilen, die mindestens vier
   durch Leerzeichen getrennte Elemente enthalten:

     * Login-Kennung des SLIP-Benutzers

     * Lokale Adresse (lokal fu:r den SLIP-Server) der
       SLIP-Verbindung

     * Entfernte Adresse der SLIP-Verbindung

     * Netzwerkmaske

   Die lokalen und entfernten Adressen ko:nnen Hostnamen sein, deren
   zugeho:rige IP-Adresse durch die Datei /etc/hosts oder mithilfe
   des Domain Name Service aufgelo:st wird. Wie die Adressen
   aufgelo:st werden, ha:ngt von den Einstellungen in
   /etc/nsswitch.conf ab. Die Netzwerkmaske kann ein Name sein, der
   durch eine Suche in /etc/networks aufgelo:st werden kann. Auf
   einem Beispielsystem, wu:rde die Datei /etc/sliphome/slip.hosts
   folgendermassen aussehen:

 #
 # login local-addr      remote-addr     mask            opt1    opt2
 #                                               (normal,compress,noicmp)
 #
 Shelmerg  dc-slip       sl-helmerg      0xfffffc00      autocomp

   Am Ende der Zeile stehen eine oder mehrere der folgenden Optionen.

     * normal - keine Header-Kompression

     * compress - Header werden komprimiert

     * autocomp - Header werden komprimiert, sofern die Gegenstelle
       es erlaubt

     * noicmp - ICMP-Pakete werden deaktiviert ("ping" Pakete werden
       unterdru:ckt, statt die Ihnen zur Verfu:gung stehende
       Bandbreite aufzubrauchen)

   Die Auswahl von lokalen und entfernten Adressen fu:r Ihre
   SLIP-Verbindung, ha:ngt davon ab, ob Sie ein TCP/IP-Subnetz
   reservieren oder ob Sie "proxy ARP" auf Ihrem SLIP-Server
   verwenden (es handelt sich nicht um "echtes" proxy ARP, aber
   dieser Begriff wird in diesem Abschnitt verwendet, um diesen
   Sachverhalt zu beschreiben). Wenn Sie nicht sicher sind, welche
   Methode Sie wa:hlen sollen oder wie IP-Adressen zugewiesen werden,
   lesen Sie bitte in den Bu:chern zum Thema TCP/IP nach, die als
   Voraussetzungen fu:r SLIP (Abschnitt 28.7.2.1) angegeben worden
   sind oder fragen Sie Ihren IP-Netzwerkadministrator.

   Wenn Sie fu:r Ihre SLIP-Clients ein eigenes Subnetz verwenden,
   werden Sie die Nummer des Subnetzes aus der Ihnen zugewiesenen
   IP-Netzwerknummer zuteilen und die IP-Adressen Ihrer SLIP-Clients
   aus diesem Subnetz verwenden mu:ssen. Dann ko:nnen Sie eine
   statische Route zu Ihrem SLIP-Subnetz u:ber Ihren SLIP-Server auf
   Ihren na:chsten IP-Router konfigurieren.

   Wenn Sie aber andererseits die "proxy ARP" Methode verwenden
   mo:chten, werden Sie die IP-Adressen Ihrer SLIP-Clients aus dem
   Subnetz Ihres SLIP-Server nehmen und die Skripte
   /etc/sliphome/slip.login /etc/sliphome/slip.logout anpassen
   mu:ssen, damit diese arp(8) zur Verwaltung der "proxy
   ARP"-Eintra:ge in der ARP-Tabelle Ihres SLIP-Servers verwenden.

     --------------------------------------------------------------

      28.7.2.4.2. Konfiguration von slip.login

   Eine typische Datei /etc/sliphome/slip.login sieht folgendermassen
   aus:

 #!/bin/sh -
 #
 #       @(#)slip.login  5.1 (Berkeley) 7/1/90

 #
 # generic login file for a slip line.  sliplogin invokes this with
 # the parameters:
 #      1        2         3        4          5         6     7-n
 #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
 #
 /sbin/ifconfig sl$1 inet $4 $5 netmask $6

   Diese slip.login Datei fu:hrt lediglich ifconfig fu:r das
   entsprechende SLIP-Interface mit den lokalen und entfernten
   Adressen und der Netzwerkmaske des SLIP-Interface aus.

   Wenn Sie sich dafu:r entschieden haben, die "proxy ARP" Methode zu
   verwenden (statt eines separaten Subnetzes fu:r Ihre SLIP-Clients)
   sollte Ihre Datei /etc/sliphome/slip.login etwa folgendermassen
   aussehen:

 #!/bin/sh -
 #
 #       @(#)slip.login  5.1 (Berkeley) 7/1/90

 #
 # generic login file for a slip line.  sliplogin invokes this with
 # the parameters:
 #      1        2         3        4          5         6     7-n
 #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
 #
 /sbin/ifconfig sl$1 inet $4 $5 netmask $6
 # Answer ARP requests for the SLIP client with our Ethernet addr
 /usr/sbin/arp -s $5 00:11:22:33:44:55 pub

   Die zusa:tzliche Zeile arp -s $5 00:11:22:33:44:55 pub in der
   Datei slip.login erzeugt einen ARP-Eintrag in der ARP-Tabelle des
   SLIP-Servers. Dieser ARP-Eintrag veranlasst den SLIP-Server mit
   seiner Ethernet MAC-Adresse zu antworten, sobald ein anderer
   IP-Knoten im Ethernet mit der IP-Adresse des SLIP-Clients Kontakt
   aufnehmen mo:chte.

   Wenn Sie das Beispiel von oben verwenden, achten Sie darauf die
   Ethernet MAC-Adresse (00:11:22:33:44:55) durch die MAC-Adresse der
   Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr "proxy
   ARP" sicher nicht funktionieren! Sie ko:nnen die MAC-Adresse Ihres
   SLIP-Servers herausfinden, indem Sie sich die Ausgabe von netstat
   -i ansehen. Die zweite Zeile der Ausgabe sollte ungefa:hr aussehen
   wie diese hier:

 ed0   1500  <Link>0.2.c1.28.5f.4a         191923  0   129457     0   116

   Dies zeigt an, dass die Ethernet MAC-Adresse dieses Systems
   00:02:c1:28:5f:4a lautet. Die Punkte in der Ethernet MAC-Adresse,
   die von netstat -i ausgegeben wird, mu:ssen durch Doppelpunkte
   ersetzt werden. Bei jeder einstelligen Hexadezimalzahl sollten
   ausserdem fu:hrende Nullen hinzugefu:gt werden, um die Adresse in
   die Form zu bringen, die von arp(8) verlangt wird. Die
   Manual-Seite von arp(8) bietet hierzu eine vollsta:ndige
   U:bersicht.

     Anmerkung: Wenn Sie die Dateien /etc/sliphome/slip.login und
     /etc/sliphome/slip.logout erstellen, mu:ssen diese ausfu:hrbar
     gemacht werden (chmod 755 /etc/sliphome/slip.login
     /etc/sliphome/slip.logout), da sliplogin auf deren
     Ausfu:hrbarkeit angewiesen ist.

     --------------------------------------------------------------

      28.7.2.4.3. Konfiguration von slip.logout

   Die Datei/etc/sliphome/slip.logout ist nicht zwingend erforderlich
   (ausser Sie verwenden "proxy ARP"), aber falls Sie diese Datei
   erzeugen mo:chten, ist hier ein Beispiel fu:r ein grundlegendes
   slip.logout Skript:

 #!/bin/sh -
 #
 #       slip.logout

 #
 # logout file for a slip line.  sliplogin invokes this with
 # the parameters:
 #      1        2         3        4          5         6     7-n
 #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
 #
 /sbin/ifconfig sl$1 down

   Wenn Sie "proxy ARP" einsetzen, muss /etc/sliphome/slip.logout den
   ARP-Eintrag fu:r den SLIP-Client lo:schen:

 #!/bin/sh -
 #
 #       @(#)slip.logout

 #
 # logout file for a slip line.  sliplogin invokes this with
 # the parameters:
 #      1        2         3        4          5         6     7-n
 #   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
 #
 /sbin/ifconfig sl$1 down
 # Quit answering ARP requests for the SLIP client
 /usr/sbin/arp -d $5

   arp -d $5 lo:scht den ARP-Eintrag, den die "proxy ARP" slip.login
   hinzufu:gte, als der SLIP-Client sich eingeloggt hatte.

   Es soll nochmals darauf hingewiesen werden, dass fu:r die Datei
   /etc/sliphome/slip.logout das Ausfu:hrungs-Bit gesetzt werden
   muss, nachdem die Datei erstellt worden ist (z.B. chmod 755
   /etc/sliphome/slip.logout).

     --------------------------------------------------------------

    28.7.2.5. U:berlegungen zum Routing

   Wenn Sie nicht die "proxy ARP" Methode benutzen, um Datenpakete
   zwischen Ihren SLIP-Clients und dem Rest Ihres Netzwerkes (oder
   vielleicht dem Internet) zu routen, werden Sie wahrscheinlich
   statische Routen zu Ihrem na:chsten Standardrouter hinzufu:gen
   mu:ssen, um Pakete aus dem Subnetz Ihres SLIP-Clients u:ber Ihren
   SLIP-Server weiterzuleiten.

     --------------------------------------------------------------

      28.7.2.5.1. Statische Routen

   Das Hinzufu:gen von statischen Routen zu Ihrem na:chsten
   Standardrouter kann problematisch sein (oder unmo:glich, wenn Sie
   nicht die erforderliche Berechtigung haben...). Wenn Sie in Ihrer
   Organisation ein Netzwerk mit mehreren Routern haben, mu:ssen
   einige Router, wie etwa die von Cisco und Proteon hergestellten,
   nicht nur mit der statischen Route zum SLIP-Subnetz konfiguriert
   werden, sondern es muss ihnen auch mitgeteilt werden, u:ber welche
   statischen Routen sie andere Router informieren sollen. Daher ist
   einiges an Fachwissen und Problemlo:sungskompetenz erforderlich,
   um auf statischen Routen basierendes Routing erfolgreich
   einzurichten.

     --------------------------------------------------------------

                Kapitel 29. Elektronische Post (E-Mail)

   Urspru:glicher Text von Bill Lloyd. Neugeschrieben von Jim Mock.
   U:bersetzt von Robert Drehmel.

29.1. Terminologie

   Das Akronym MTA steht fu:r Mail Transfer Agent was u:bersetzt
   "Mailu:bertragungs-Agent" bedeutet.

   Wa:hrend die Bezeichnung Server-Da:mon die Komponente eines MTA
   benennt, die fu:r eingehende Verbindungen zusta:ndig ist, wird mit
   dem Begriff Mailer o:fters die Komponente des MTA bezeichnet, die
   E-Mails versendet.

     --------------------------------------------------------------

29.2. U:bersicht

   "Elektronische Post", besser bekannt als E-Mail, ist eine der am
   weit verbreitetsten Formen der Kommunikation heutzutage. Dieses
   Kapitel bietet eine grundlegende Einfu:hrung in das Betreiben
   eines E-Mail-Servers unter FreeBSD. Ebenfalls wird der Versand und
   Empfang von E-Mails unter FreeBSD behandelt. Das Kapitel ist
   jedoch keine komplette Referenz und es werden viele wichtige
   U:berlegungen ausser Acht gelassen. Wenn Sie das Thema
   detaillierter betrachten mo:chten, werden Sie bei einem der
   exzellenten Bu:cher fu:ndig, die in Anhang B aufgelistet sind.

   Dieses Kapitel behandelt die folgenden Punkte:

     * Welche Software-Komponenten beim Senden und Empfangen von
       elektronischer Post involviert sind.

     * Wo sich grundlegende sendmail Konfigurationsdateien in FreeBSD
       befinden.

     * Den Unterschied zwischen entfernten und lokalen Postfa:chern.

     * Wie man Versender von Massennachrichten daran hindern kann,
       Ihren E-Mail-Server illegalerweise als Weiterleitung zu
       verwenden.

     * Wie man den Standard-Mailer des Systems, sendmail, ersetzt.

     * Wie man oft auftretende E-Mail-Server Probleme behebt.

     * Wie E-Mails mit UUCP verschickt werden.

     * Wie E-Mails u:ber einen Relay verschickt werden.

     * Wie E-Mails u:ber eine Einwahlverbindung gehandhabt werden.

     * Wie Sie die SMTP-Authentifizierung einrichten.

     * Den Empfang und den Versand von E-Mails mithilfe von
       Programmen wie mutt.

     * Wie E-Mails von einem entfernten Server mit POP oder IMAP
       abgeholt werden.

     * Wie eingehende E-Mail automatisch gefiltert wird.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * Ihre Netzwerk-Verbindung richtig einrichten. (Kapitel 32).

     * Die DNS-Information fu:r Ihren E-Mail-Server einstellen
       (Kapitel 30).

     * Wissen, wie man zusa:tzliche Dritthersteller-Software
       installiert (Kapitel 5).

     --------------------------------------------------------------

29.3. Elektronische Post benutzen

   Fu:nf gro:ssere Teile sind am E-Mail-Austausch beteiligt: Das
   Benutzerprogramm, der Server-Da:mon, DNS, ein entferntes oder
   lokales Postfach und natu:rlich der E-Mail-Server selbst.

     --------------------------------------------------------------

  29.3.1. Das Benutzerprogramm

   Das beinhaltet Kommandozeilenprogramme wie mutt, alpine, elm, mail
   und Programme mit grafischer Benutzeroberfla:che, wie balsa und
   xfmail um einige zu nennen, und "aufwa:ndigere", wie WWW-Browser.
   Diese Programme geben die E-Mail-Transaktionen an den lokalen
   "E-Mail-Server", weiter, entweder u:ber einen der verfu:gbaren
   Server-Da:monen oder eine TCP-Verbindung.

     --------------------------------------------------------------

  29.3.2. E-Mail-Server Da:mon

   FreeBSD entha:lt standardma:ssig sendmail; es lassen sich aber
   auch andere E-Mail-Server Da:monen betreiben, beispielsweise

     * exim,

     * postfix oder

     * qmail.

   Der Server-Da:mon hat u:blicherweise zwei Funktionen: Er ku:mmert
   sich um das Empfangen von eingehenden E-Mails und stellt
   ausgehende E-Mails zu. Es ist nicht Aufgabe des Da:mons, E-Mails
   u:ber POP oder IMAP bereit zu stellen, noch Zugriffe auf das
   lokale Postfach mbox oder Verzeichnisse mit Postfa:chern zu
   gewa:hren. Dafu:r beno:tigen Sie einen zusa:tzlichen Da:mon.

     Warnung: Alte Versionen von sendmail enthalten schwerwiegende
     Sicherheitslo:cher, die einem Angreifer Zugriff auf Ihren
     Rechner verschaffen ko:nnen. Um Sicherheitsprobleme zu umgehen,
     sollten Sie eine aktuelle sendmail-Version benutzen. Sie ko:nnen
     auch einen anderen MTA aus der FreeBSD Ports-Sammlung benutzen.

     --------------------------------------------------------------

  29.3.3. E-Mail und DNS

   Das Domain Name System (DNS) und sein Da:mon named spielen eine
   grosse Rolle in der Auslieferung von E-Mails. Um E-Mails
   auszuliefern, fragt der Mail-Server-Da:mon im DNS den Rechner ab,
   der E-Mails fu:r das Zielsystem entgegennimmt. Der gleiche Vorgang
   la:uft ab, wenn eine E-Mail von einem entfernten Server auf Ihrem
   Mail-Server zugestellt wird.

   Im DNS werden Rechnernamen auf IP-Adressen abgebildet. Daneben
   werden spezielle Informationen fu:r das Mail-System gespeichert,
   die MX-Eintra:ge (MX record) genannt werden. Der MX-Eintrag (von
   Mail eXchanger) gibt an, welcher Rechner oder welche Rechner
   E-Mails fu:r eine Domain annehmen. Existiert kein MX-Record fu:r
   einen Rechner oder dessen Domain, werden E-Mails direkt an den
   Rechner zugestellt, vorausgesetzt der Rechner besitzt einen
   A-Eintrag, der den Rechnernamen auf seine IP-Adresse abbildet.

   Mit dem Kommando host(1) ko:nnen Sie die MX-Eintra:ge fu:r eine
   Domain abfragen:

 % host -t mx FreeBSD.org
 FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org

     --------------------------------------------------------------

  29.3.4. E-Mails empfangen

   Der E-Mail-Server empfa:ngt alle E-Mails fu:r Ihre Doma:ne. Er
   speichert die E-Mails entweder im mbox-Format (die Vorgabe) oder
   im Maildir-Format. Die E-Mails ko:nnen lokal mit Programmen wie
   mail(1) oder mutt gelesen werden. Mithilfe von Protokollen wie POP
   oder IMAP ko:nnen die E-Mails auch von entfernten Rechnern gelesen
   werden. Wenn Sie die E-Mails direkt auf dem E-Mail-Server lesen
   mo:chten, wird kein POP- oder IMAP-Server gebraucht.

     --------------------------------------------------------------

    29.3.4.1. Auf entfernte Postfa:cher mit POP und IMAP zugreifen

   Wenn Sie auf entfernte Postfa:cher zugreifen wollen, beno:tigen
   Sie den Zugang zu einem POP- oder IMAP-Server. Beide Protokolle
   bieten einen einfachen Zugriff auf entfernte Postfa:cher. IMAP
   besitzt allerdings einige Vorteile, unter anderem:

     * IMAP kann sowohl Nachrichten auf einem entfernten Server
       speichern als auch von dort abholen.

     * IMAP unterstu:tzt gleichzeitig ablaufende Aktualisierungen.

     * Da es nicht gleich die komplette Nachricht herunterla:dt, ist
       IMAP u:ber langsame Verbindungen sehr nu:tzlich. Weiterhin
       ko:nnen E-Mails auf dem Server durchsucht werden, was den
       Datenverkehr zwischen Clients und dem Server minimiert.

   Wenn Sie einen POP- oder IMAP-Server installieren wollen, gehen
   Sie nach den folgenden Schritten vor:

    1. Wa:hlen Sie einen IMAP- oder POP-Server aus, der Ihre
       Anforderungen erfu:llt. Die nachstehenden Server sind sehr
       bekannt:

          * qpopper

          * teapop

          * imap-uw

          * courier-imap

          * dovecot

    2. Installieren Sie den ausgewa:hlten POP- oder IMAP-Daemon aus
       der Ports-Sammlung.

    3. Wenn erforderlich, passen Sie die Datei /etc/inetd.conf an, um
       den POP- oder IMAP-Server zu starten.

     Warnung: Beachten Sie, dass sowohl POP als auch IMAP Daten, wie
     den Benutzernamen und das Passwort, im Klartext u:bertragen.
     Wenn Sie die mit diesen Protokollen u:bertragenen Daten
     schu:tzen wollen, ko:nnen Sie die Sitzung mittels ssh(1) tunneln
     oder SSL verwenden. Tunneln von Sitzungen wird in Abschnitt
     15.10.8 beschrieben und SSL wird in Abschnitt 15.8 dargestellt.

     --------------------------------------------------------------

    29.3.4.2. Auf lokale Postfa:cher zugreifen

   Auf Postfa:cher ko:nnen Sie lokal mithilfe spezieller
   Benutzerprogramme, die Mail-User-Agents (MUAs) genannt werden,
   zugreifen. Beispiele fu:r solche Programme sind mutt oder mail(1).

     --------------------------------------------------------------

  29.3.5. Der E-Mail-Server

   "E-Mail-Server" wird der Rechner genannt, welcher fu:r die
   Zustellung und das Empfangen von E-Mails auf Ihrem Rechner oder
   vielleicht Ihrem Netzwerk zusta:ndig ist.

     --------------------------------------------------------------

29.4. sendmail-Konfiguration

   Beigesteuert von Christopher Shumway.

   sendmail(8) ist das standardma:ssig in FreeBSD installierte
   Mailu:bertragungsprogramm (MTA). Die Aufgabe von sendmail ist es,
   E-Mails von E-Mail-Benutzerprogrammen (MUA) anzunehmen und diese
   zu den entsprechenden Mailern zu liefern, die in der
   Konfigurationsdatei definiert sind. sendmail kann auch
   Netzwerkverbindungen annehmen und E-Mails zu lokalen Mailboxen
   [18] oder anderen Programmen liefern.

   sendmail benutzt folgende Konfigurationsdateien:

           Dateiname                         Funktion                 
   /etc/mail/access           Datenbank, in der Zugriffsrechte auf    
                              sendmail verwaltet werden               
   /etc/mail/aliases          Mailbox Aliase                          
   /etc/mail/local-host-names Liste der Rechner fu:r die sendmail     
                              E-Mails akzeptiert                      
   /etc/mail/mailer.conf      Mailer Programmkonfiguration            
   /etc/mail/mailertable      Mailer Versand-Zuordnungstabelle        
   /etc/mail/sendmail.cf      Hauptkonfigurationsdatei fu:r sendmail  
   /etc/mail/virtusertable    Virtuelle Benutzer und                  
                              Doma:nen-Tabellen                       

     --------------------------------------------------------------

  29.4.1. /etc/mail/access

   Die Zugriffsdatenbank bestimmt, welche(r) Rechner oder
   IP-Adresse(n) Zugriff auf den lokalen E-Mail-Server haben und
   welche Art von Zugriff ihnen gestattet wird. Rechner ko:nnen als
   OK, REJECT oder RELAY eingetragen oder einfach an sendmails
   Fehlerbehandlungsroutine mit einem angegebenen Mailer-Fehler
   u:bergeben werden. Rechner, die als OK eingetragen sind, was die
   Grundeinstellung ist, sind berechtigt E-Mails zu diesem Rechner zu
   schicken, solange die endgu:ltige Zieladresse der lokale Rechner
   ist. Verbindungen von Rechnern, die als REJECT aufgelistet sind,
   werden abgelehnt. Rechnern mit gesetzter RELAY-Option fu:r ihren
   Rechnernamen wird erlaubt Post fu:r jede Zieladresse durch diesen
   Mail-Server zu senden.

   Beispiel 29-1. Konfigurieren der sendmail Zugriffsdatenbank

 cyberspammer.com                550 We do not accept mail from spammers
 FREE.STEALTH.MAILER@            550 We do not accept mail from spammers
 another.source.of.spam          REJECT
 okay.cyberspammer.com           OK
 128.32                          RELAY

   In diesem Beispiel haben wir fu:nf Eintra:ge. E-Mail-Versender,
   die mit der linken Spalte der Tabelle u:bereinstimmen, sind
   betroffen von der Aktion in der rechten Spalte. Die ersten beiden
   Beispiele u:bergeben einen Fehlercode an sendmails
   Fehlerbehandlungsroutine. Die Nachricht wird an den entfernten
   Rechner gesendet, wenn eine Nachricht mit der linken Spalte der
   Tabelle u:bereinstimmt. Der na:chste Eintrag lehnt Post von einem
   bestimmten Rechner des Internets ab (another.source.of.spam). Der
   na:chste Eintrag akzeptiert E-Mail-Verbindungen des Rechners
   okay.cyberspammer.com, der exakter angegeben wurde als
   cyberspammer.com in der Zeile daru:ber. Genauere
   U:bereinstimmungen haben den Vorrang vor weniger genauen. Der
   letzte Eintrag erlaubt die Weiterleitung von elektronischer Post
   von Rechnern mit einer IP-Adresse die mit 128.32 beginnt. Diese
   Rechner wu:rden E-Mails durch diesen E-Mail-Server senden ko:nnen,
   die fu:r andere E-Mail-Server bestimmt sind.

   Wenn diese Datei gea:ndert wird, mu:ssen Sie make in /etc/mail
   ausfu:hren um die Datenbank zu aktualisieren.

     --------------------------------------------------------------

  29.4.2. /etc/mail/aliases

   Die Alias-Datenbank entha:lt eine Liste der virtuellen Mailboxen,
   die in andere Benutzer, Dateien, Programme oder andere Aliase
   expandiert werden. Hier sind ein paar Beispiele, die in
   /etc/mail/aliases benutzt werden ko:nnen:

   Beispiel 29-2. E-Mail Aliases

 root: localuser
 ftp-bugs: joe,eric,paul
 bit.bucket:  /dev/null
 procmail: "|/usr/local/bin/procmail"

   Das Dateiformat ist simpel; Der Name der Mailbox auf der linken
   Seite des Doppelpunkts wird mit den Zielen auf der rechten Seite
   ersetzt. Das erste Beispiel ersetzt die Mailbox root mit der
   Mailbox localuser, die dann wieder in der Alias-Datenbank gesucht
   wird. Wird kein passender Eintrag gefunden, wird die Nachricht zum
   lokalen Benutzer localuser geliefert. Das na:chste Beispiel zeigt
   eine E-Mail-Verteilerliste. E-Mails an die Mailbox ftp-bugs werden
   zu den drei lokalen Mailboxen joe, eric und paul gesendet. Eine
   lokale Mailbox kann auch als <user@example.com> angegeben werden.
   Das na:chste Beispiel zeigt das Schreiben von E-Mails in eine
   Datei, in diesem Fall /dev/null. Das letzte Beispiel verdeutlicht
   das Senden von E-Mails an ein Programm, in diesem Fall wird die
   Nachricht in die Standardeingabe von /usr/local/bin/procmail
   mittels einer UNIX Pipe geschrieben.

   Wenn diese Datei gea:ndert wird, mu:ssen Sie make in /etc/mail
   ausfu:hren um die A:nderungen in die Datenbank zu u:bernehmen.

     --------------------------------------------------------------

  29.4.3. /etc/mail/local-host-names

   Das ist die Liste der Rechnernamen, die sendmail(8) als lokalen
   Rechnernamen akzeptiert. Setzen Sie alle Doma:nen oder Rechner,
   fu:r die sendmail Mail empfangen soll, in diese Datei. Wenn dieser
   Mail-Server zum Beispiel E-Mails fu:r die Doma:ne example.com und
   den Rechner mail.example.com annehmen soll, ko:nnte seine
   local-host-names Datei so aussehen:

 example.com
 mail.example.com

   Wird diese Datei gea:ndert, muss sendmail(8) neu gestartet werden,
   damit es die Neuerungen einliest.

     --------------------------------------------------------------

  29.4.4. /etc/mail/sendmail.cf

   Die Hauptkonfigurations-Datei von sendmail (sendmail.cf)
   kontrolliert das allgemeine Verhalten von sendmail,
   einschliesslich allem vom Umschreiben von E-Mail Adressen bis hin
   zum U:bertragen von Ablehnungsnachrichten an entfernte
   E-Mail-Server. Mit solch einer mannigfaltigen Rolle ist die
   Konfigurationsdatei natu:rlich ziemlich komplex und ihre
   Einzelheiten ko:nnen in diesem Kapitel nicht besprochen werden.
   Glu:cklicherweise muss diese Datei selten fu:r Standard
   E-Mail-Server gea:ndert werden.

   Die sendmail Hauptkonfigurationsdatei kann mit m4(1) Makros
   erstellt werden, die Eigenschaften und Verhalten von sendmail
   definieren. Einige der Details finden Sie in
   /usr/src/contrib/sendmail/cf/README.

   Wenn A:nderungen an dieser Datei vorgenommen werden, muss sendmail
   neu gestartet werden, damit die A:nderungen Wirkung zeigen.

     --------------------------------------------------------------

  29.4.5. /etc/mail/virtusertable

   Die Datei virtusertable ordnet Adressen fu:r virtuelle Doma:nen
   und Mailboxen reellen Mailboxen zu. Diese Mailboxen ko:nnen lokal,
   auf entfernten Systemen, Aliase in /etc/mail/aliases oder eine
   Datei sein.

   Beispiel 29-3. Beispiel einer virtuellen Doma:nen Zuordnung

 root@example.com                root
 postmaster@example.com          postmaster@noc.example.net
 @example.com                    joe

   In dem obigen Beispiel haben wir einen Eintrag fu:r die Doma:ne
   example.com. Diese Datei wird nach dem ersten u:bereinstimmenden
   Eintrag durchsucht. Die erste Zeile ordnet <root@example.com> der
   lokalen Mailbox root zu. Der na:chste Eintrag ordnet
   <postmaster@example.com> der Mailbox postmaster auf dem Rechner
   noc.example.net zu. Zuletzt, wenn keine U:bereinstimmung von
   example.com gefunden wurde, wird der letzte Eintrag verglichen,
   der mit jeder Mail-Nachricht u:bereinstimmt, die an jemanden bei
   example.com adressiert wurde. Diese werden der lokalen Mailbox joe
   zugeordnet.

     --------------------------------------------------------------

29.5. Wechseln des Mailu:bertragungs-Agenten

   Geschrieben von Andrew Boothman. Informationen entnommen aus
   E-Mails geschrieben von Gregory Neil Shapiro.

   Wie bereits erwa:hnt, ist bei FreeBSD sendmail schon als Ihr
   Mailu:bertragungs-Agent installiert. Deswegen ist es
   standardma:ssig fu:r Ihre aus- und eingehenden E-Mails
   verantwortlich.

   Jedoch wollen einige Systemadministratoren den MTA ihres Systems
   wechseln, was eine Reihe von Gru:nden haben kann. Diese Gru:nde
   reichen von einfach einen anderen MTA ausprobieren wollen bis hin
   dazu eine bestimmte Besonderheit zu beno:tigen oder ein Paket,
   welches auf einen anderen Mailer angewiesen ist. Glu:cklicherweise
   macht FreeBSD das Wechseln einfach, egal aus welchem Grund.

     --------------------------------------------------------------

  29.5.1. Installieren eines neuen MTA

   Sie haben eine grosse Auswahl an verfu:gbaren MTA-Programmen. Ein
   guter Startpunkt ist die FreeBSD-Ports-Sammlung, wo Sie viele
   finden werden. Selbstversta:ndlich steht es Ihnen frei, jeden MTA
   von u:berall her zu verwenden, solange Sie ihn unter FreeBSD zum
   Laufen bekommen.

   Fangen Sie an, indem Sie Ihren neuen MTA installieren. Sobald er
   installiert ist, gibt er Ihnen die Chance zu entscheiden ob er
   wirklich Ihren Bedu:rfnissen genu:gt. Zusa:tzlich gibt er Ihnen
   die Mo:glichkeit die neue Software zu konfigurieren, bevor sie den
   Job von sendmail u:bernimmt. Dabei sollten Sie sicherstellen, dass
   beim Installieren der neuen Software keine Versuche unternommen
   werden, System-Programme wie /usr/bin/sendmail zu u:berschreiben.
   Ansonsten wurde Ihre neue E-Mail-Software in den Dienst gestellt,
   bevor Sie sie konfiguriert haben.

   Fu:r Informationen u:ber die Konfiguration des von Ihnen
   gewa:hlten MTAs sehen Sie bitte in der dazugeho:rigen
   Dokumentation nach.

     --------------------------------------------------------------

  29.5.2. Ausschalten von sendmail

     Warnung: Wenn Sie die Sendefunktion von sendmail deaktivieren,
     mu:ssen Sie fu:r den E-Mail-Versand ein alternatives System
     installieren. Tun Sie dies nicht, sind Systemfunktionen wie
     periodic(8) nicht mehr in der Lage, ihre Resulate und Meldungen
     als E-Mail zu versenden. Aber auch viele andere Teile Ihres
     Systems erwarten, dass Sie u:ber ein sendmail-kompatibles System
     verfu:gen. Sind Programme auf (die von Ihnen deaktivierten)
     sendmail-Bina:rdateien angewiesen, landen deren E-Mails
     ansonsten in einer inaktiven sendmail-Warteschlange und ko:nnen
     nicht ausgeliefert werden.

   Um sendmail komplett zu deaktivieren (also inklusive der Funktion
   zum Versand von E-Mails), fu:gen Sie die Zeile

 sendmail_enable="NO"
 sendmail_submit_enable="NO"
 sendmail_outbound_enable="NO"
 sendmail_msp_queue_enable="NO"

   in /etc/rc.conf ein.

   Wenn Sie lediglich die Funktion zum Empfang von E-Mails durch
   sendmail deaktivieren wollen, sollten Sie folgenden Eintrag in
   /etc/rc.conf einfu:gen:

 sendmail_enable="NO"

   Weitere Informationen zu den Startoptionen von sendmail finden Sie
   in der Manualpage rc.sendmail(8).

     --------------------------------------------------------------

  29.5.3. Starten Ihres neuen MTA beim Hochfahren des Systems

   Der neue MTA kann beim Hochfahren durch das Hinzufu:gen einer
   Konfigurationszeile in der /etc/rc.conf gestartet werden, wie das
   folgende Beispiel fu:r Postfix zeigt:

 # echo 'postfix_enable="YES"' >> /etc/rc.conf

   Der MTA wird jetzt automatisch beim Hochfahren des Systems
   gestartet.

     --------------------------------------------------------------

  29.5.4. Ersetzen von sendmail als Standard-Mailer des Systems

   Das Programm sendmail ist so allgegenwa:rtig als Standard-Software
   auf UNIX Systemen, dass einige Programme einfach annehmen es sei
   bereits installiert und konfiguriert. Aus diesem Grund stellen
   viele alternative MTAs ihre eigenen kompatiblen Implementierung
   der sendmail Kommandozeilen-Schnittstelle zur Verfu:gung. Das
   vereinfacht ihre Verwendung als "drop-in" Ersatz fu:r sendmail.

   Folglich werden Sie, wenn Sie einen alternativen Mailer benutzen,
   sicherstellen mu:ssen, dass ein Programm, das versucht sendmails
   Standard-Dateien wie /usr/bin/sendmail auszufu:hren, stattdessen
   Ihr gewa:hltes Mailu:bertragungsprogramm ausfu:hrt. Zum Glu:ck
   stellt FreeBSD das mailwrapper(8)-System zur Verfu:gung, das diese
   Arbeit fu:r Sie erledigt.

   Wenn sendmail arbeitet wie es installiert wurde, werden Sie in
   /etc/mail/mailer.conf etwas wie das Folgende vorfinden:

 sendmail        /usr/libexec/sendmail/sendmail
 send-mail       /usr/libexec/sendmail/sendmail
 mailq           /usr/libexec/sendmail/sendmail
 newaliases      /usr/libexec/sendmail/sendmail
 hoststat        /usr/libexec/sendmail/sendmail
 purgestat       /usr/libexec/sendmail/sendmail

   Das bedeutet, dass wenn eines der gewo:hnlichen Kommandos (wie zum
   Beispiel /usr/bin/sendmail selbst) ausgefu:hrt wird, das System
   tatsa:chlich eine Kopie des mailwrapper mit dem Namen sendmail
   startet, die mailer.conf u:berpru:ft und
   /usr/libexec/sendmail/sendmail ausfu:hrt. Mit diesem System lassen
   sich die Programme, die fu:r die sendmail-Funktionen gestartet
   werden, leicht a:ndern.

   Daher ko:nnten Sie, wenn Sie wollten, dass
   /usr/local/supermailer/bin/sendmail-compat anstelle von sendmail
   ausgefu:hrt wird, /etc/mailer.conf wie folgt aba:ndern:

 sendmail        /usr/local/supermailer/bin/sendmail-compat
 send-mail       /usr/local/supermailer/bin/sendmail-compat
 mailq           /usr/local/supermailer/bin/mailq-compat
 newaliases      /usr/local/supermailer/bin/newaliases-compat
 hoststat        /usr/local/supermailer/bin/hoststat-compat
 purgestat       /usr/local/supermailer/bin/purgestat-compat

     --------------------------------------------------------------

  29.5.5. Fertigstellen

   Sobald Sie alles Ihren Wu:nschen entsprechend konfiguriert haben,
   sollten Sie entweder die sendmail Prozesse beenden, die Sie nicht
   mehr beno:tigen, und die zu Ihrer neuen Software zugeho:rigen
   Prozesse starten, oder einfach das System neustarten. Das
   Neustarten des Systems gibt Ihnen auch die Gelegenheit
   sicherzustellen, dass Sie Ihr System korrekt konfiguriert haben,
   um Ihren neuen MTA automatisch beim Hochfahren zu starten.

     --------------------------------------------------------------

29.6. Fehlerbehebung

   Hier finden sich ein paar ha:ufig gestellte Fragen und ihre
   Antworten, die von der FAQ u:bernommen wurden.

   29.6.1. Warum muss ich einen FQDN (fully-qualified domain name/
   voll ausgeschriebenen Doma:nennamen) fu:r meine Rechner verwenden?

   29.6.2. Warum meldet Sendmail "mail loops back to myself"?

   29.6.3. Wie kann ich einen E-Mail-Server auf einem Anwahl-PPP
   Rechner betreiben?

   29.6.4. Warum bekomme ich die Fehlermeldung "Relaying Denied",
   wenn ich E-Mails von anderen Rechnern verschicke?

   29.6.1. Warum muss ich einen FQDN (fully-qualified domain name/
   voll ausgeschriebenen Doma:nennamen) fu:r meine Rechner verwenden?

   Vielleicht liegen die Rechner in einer unterschiedlichen Doma:ne;
   zum Beispiel, wenn Sie sich in foo.bar.edu befinden, und einen
   Rechner namens mumble in der bar.edu Doma:ne erreichen wollen,
   mu:ssen Sie ihn mit dem voll ausgeschriebenen Doma:nennamen
   mumble.bar.edu kontaktieren, anstatt bloss mit mumble.

   Traditionell wurde das von dem BSD BIND Resolver erlaubt. Wie auch
   immer, die aktuelle Version von BIND, die mit FreeBSD ausgeliefert
   wird, bietet keine Standardabku:rzungen fu:r nicht komplett
   angegebene Doma:nennamen ausserhalb der Doma:ne, in der Sie sich
   befinden. Daher muss ein nicht-qualifizierter Rechner mumble
   entweder als mumble.foo.bar.edu gefunden werden, oder er wird in
   der root Doma:ne gesucht.

   Damit unterscheidet es sich von vorherigem Verhalten, bei dem die
   Suche u:ber mumble.bar.edu und mumble.edu lief. Schauen Sie sich
   RFC 1535 an, wenn Sie wissen mo:chten, warum das als schlecht und
   sogar als Sicherheitsloch angesehen wurde.

   Um das zu umgehen, ko:nnen Sie die Linie

 search foo.bar.edu bar.edu

   anstatt der vorherigen

 domain foo.bar.edu

   in Ihre /etc/resolv.conf einsetzen. Aber stellen Sie sicher, dass
   die Suchordnung nicht die Begrenzung von "lokaler und
   o:ffentlicher Administration", wie RFC 1535 sie nennt,
   u:berschreitet.

   29.6.2. Warum meldet Sendmail "mail loops back to myself"?

   Dies wird in der Sendmail-FAQ wie folgt beantwortet:

   Ich erhalte folgende Fehlermeldungen:

   553 MX list for domain.net points back to relay.domain.net
   554 <user@domain.net>... Local configuration error

   Wie kann ich dieses Problem lo:sen?

           Sie haben durch die Benutzung eines MX-Eintrags eingestellt, dass
           Mail fu:r die Doma:ne (z.B. domain.net) an einen speziellen
           Host (in diesem Fall relay.domain.net) weitergeleitet wird,
           aber der Relay-Host erkennt sich selbst nicht als
           domain.net.  Fu:gen Sie domain.net in /etc/mail/local-host-names
           [die Datei hiess vor der Version 8.10 /etc/sendmail.cw]
           (falls Sie FEATURE(use_cw_file) benutzen) oder "Cw domain.net"
           in /etc/mail/sendmail.cf ein.

   Die aktuelle Version der Sendmail-FAQ wird nicht mehr mit dem
   Sendmail-Release verwaltet. Sie wird jedoch regelma:ssig nach
   comp.mail.sendmail, comp.mail.misc, comp.mail.smail, comp.answers
   und news.answers gepostet. Sie ko:nnen auch eine Kopie per E-Mail
   bekommen, indem Sie eine Mail mit dem Inhalt send
   usenet/news.answers/mail/sendmail-faq an mail-server@rtfm.mit.edu
   schicken.

   29.6.3. Wie kann ich einen E-Mail-Server auf einem Anwahl-PPP
   Rechner betreiben?

   Sie wollen einen FreeBSD-Rechner in einem LAN an das Internet
   anbinden. Der FreeBSD-Rechner wird ein E-Mail Gateway fu:r das
   LAN. Die PPP-Verbindung ist keine Standleitung.

   Es gibt mindestens zwei Wege um dies zu tun. Einer davon ist UUCP
   zu verwenden.

   Ein anderer Weg ist, von einem immer mit dem Internet verbundenen
   Server einen sekunda:ren MX-Dienst fu:r Ihre Doma:ne zur
   Verfu:gung gestellt zu bekommen. Wenn die Doma:ne Ihrer Firma
   example.com ist, und Ihr Internet-Dienstanbieter example.net so
   eingestellt hat, dass er Ihrer Doma:ne einen sekunda:ren MX-Dienst
   zur Verfu:gung stellt:

 example.com.            MX        10      bigco.com.
                       MX        20      example.net.

   Nur ein Rechner sollte als Endempfa:nger angegeben sein (fu:gen
   Sie Cw example.com zu /etc/sendmail.cf auf example.com).

   Wenn das sendmail des Versenders versucht, die E-Mail zuzustellen,
   wird es versuchen, Sie u:ber die Modem-Verbindung (example.com) zu
   erreichen. Wahrscheinlich wird es keine Verbindung zustande
   bringen ko:nnen, da Sie nicht eingewa:hlt sind. sendmail wird die
   E-Mail automatisch zu der sekunda:ren MX-Stelle geliefert, zu
   Ihrem Internet-Provider (example.net). Die sekunda:re MX-Stelle
   wird periodisch versuchen versuchen eine Verbindung zu Ihnen
   aufzubauen, um die E-Mail zu der prima:ren MX-Stelle (example.com
   zu liefern.

   Eventuell wollen Sie etwas wie dies als Login-Skript:

 #!/bin/sh
 # Put me in /usr/local/bin/pppmyisp
 ( sleep 60 ; /usr/sbin/sendmail -q ) &
 /usr/sbin/ppp -direct pppmyisp

   Wenn Sie ein separates Login-Skript fu:r einen Benutzer erstellen
   wollen, ko:nnten Sie stattdessen sendmail -qRexample.com in dem
   oben gezeigten Skript verwenden. Das erzwingt die sofortige
   Verarbeitung der E-Mails in Ihrer Warteschlange fu:r example.com

   Eine weitere Verfeinerung der Situation ist wie folgt:

   Die Nachricht wurde der FreeBSD Internet service providers
   entnommen.

 > wir stellen einem Kunden den sekunda:ren MX zur Verfu:gung.
 > Der Kunde verbindet sich mit unseren Diensten mehrmals am Tag
 > automatisch um die E-Mails zu seinem prima:ren MX zu holen
 > (wir wa:hlen uns nicht bei ihm ein, wenn E-Mails fu:r seine
 > Doma:ne eintreffen).  Unser sendmail sendet den Inhalt der
 > E-Mail-Warteschlange alle 30 Minuten.  Momentan muss er 30 Minuten
 > eingewa:hlt bleiben um sicher zu sein, dass alle seine E-Mails
 > beim prima:ren MX eingetroffen sind.
 >
 > Gibt es einen Befehl, der sendmail dazu bringt, alle E-Mails sofort
 > zu senden? Der Benutzer hat natu:rlich keine root-Rechte auf
 > unserer Maschine.

 In der "privacy flags" Sektion von sendmail.cf befindet sich die
 Definition Opgoaway,restrictqrun

 Entferne restrictqrun um nicht-root Benutzern zu erlauben, die Verarbeitung
 der Nachrichten-Warteschlangen zu starten.  Mo:glicherweise willst du
 auch die MX neu sortieren.  Wir sind der prima:re MX fu:r unsere
 Kunden mit diesen Wu:nschen und haben definiert:

 # Wenn wir der beste MX fu:r einen Rechner sind, versuche es direkt
 # anstatt einen lokalen Konfigurationsfehler zu generieren.
 OwTrue

 Auf diesem Weg liefern Gegenstellen direkt zu dir, ohne die Kundenverbindung
 zu versuchen.  Dann sendest du zu deinem Kunden.  Das funktioniert nur
 fu:r "Rechner", du musst also deinen Kunden dazu bringen,
 ihre E-Mail Maschine "customer.com" zu nennen, sowie
 "hostname.customer.com" im DNS.  Setze einfach einen A-Eintrag
 in den DNS fu:r "customer.com".

   29.6.4. Warum bekomme ich die Fehlermeldung "Relaying Denied",
   wenn ich E-Mails von anderen Rechnern verschicke?

   In der standardma:ssigen FreeBSD-Installation wird sendmail nur
   dazu konfiguriert, E-Mails von dem Rechner, auf dem es la:uft, zu
   senden. Wenn zum Beispiel ein POP-Server installiert ist, ko:nnen
   Benutzer ihre E-Mails von der Schule, von der Arbeit oder von
   anderen Orten u:berpru:fen. Sie werden jedoch keine E-Mails von
   aussen verschicken ko:nnen. Typischerweise wird ein paar Sekunden
   nach dem Versuch eine E-Mail von MAILER-DAEMON mit einer "5.7
   Relaying Denied" Fehlermeldung versendet werden.

   Es sind mehrere Wege mo:glich, dies zu umgehen. Die geradlinigste
   Lo:sung ist die Adresse Ihres Internet-Dienstanbieters in die
   Datei fu:r die Weiterleitungs-Doma:nen zu platzieren. Das la:sst
   sich schnell erreichen mit:

 # echo "your.isp.example.com" > /etc/mail/relay-domains

   Nach Erstellen oder Editieren dieser Datei mu:ssen Sie sendmail
   neu starten. Das funktioniert grossartig wenn Sie ein
   Server-Administrator sind und E-Mails nicht lokal versenden, oder
   gerne ein Client/System mit grafischer Oberfla:che auf einer
   anderen Maschine oder sogar u:ber einen anderen
   Internet-Dienstanbieter verwenden wollen. Es ist auch sehr
   nu:tzlich, wenn Sie nur ein oder zwei E-Mail Accounts eingerichtet
   haben. Soll eine gro:ssere Anzahl Adressen hinzugefu:gt werden,
   ko:nnen Sie die Datei einfach in Ihrem favorisierten Editor
   o:ffnen und die Doma:nen anfu:gen, je eine pro Zeile:

 your.isp.example.com
 other.isp.example.net
 users-isp.example.org
 www.example.org

   Jetzt wird jede E-Mail, die durch Ihr System von einem der in
   diese Liste eingetragenen Rechner geschickt wurde, ihr Ziel
   erreichen (vorausgesetzt, der Benutzer hat einen Account auf Ihrem
   System). Dies ist ein sehr scho:ner Weg, um Benutzern das
   entfernte E-Mail Versenden von Ihrem System zu erlauben, ohne dem
   Massenversand (SPAM) die Tu:r zu o:ffnen.

     --------------------------------------------------------------

29.7. Weiterfu:hrende Themen

   Die folgenden Abschnitte behandeln kompliziertere Themen wie
   E-Mail-Konfiguration und das Einrichten von E-Mail fu:r Ihre ganze
   Doma:ne.

     --------------------------------------------------------------

  29.7.1. Grundlegende Konfiguration

   Mit der Software im Auslieferungszustand sollten Sie fa:hig sein,
   E-Mails an externe Rechner zu senden, solange Sie /etc/resolv.conf
   eingerichtet haben oder Ihren eigenen Name Server laufen lassen.
   Wenn Sie die E-Mails fu:r Ihren Rechner zu einem anderen Rechner
   geliefert haben wollen, gibt es zwei Methoden:

     * Betreiben Sie Ihren eigenen Name Server und haben Sie Ihre
       eigene Doma:ne, zum Beispiel FreeBSD.org.

     * Lassen Sie sich E-Mails direkt zu Ihrem Rechner liefern. Dies
       geschieht indem E-Mails direkt zu dem aktuellen DNS Namen
       Ihrer Maschine geliefert werden. Zum Beispiel
       example.FreeBSD.org.

   Ungeachtet welche Methode Sie auswa:hlen, um E-Mails direkt zu
   Ihrem Rechner geliefert zu bekommen, beno:tigen Sie eine
   permanente (statische) IP-Adresse (keine dynamische PPP-Anwahl).
   Wenn Sie sich hinter einer Firewall befinden, muss diese den
   SMTP-Verkehr an Sie weiterleiten. Wollen Sie E-Mails an Ihrem
   Rechner selbst empfangen, mu:ssen Sie eines der folgenden Dinge
   sicherstellen:

     * Vergewissern Sie sich, dass der MX-Eintrag in Ihrem DNS zu der
       IP-Adresse Ihres Rechners zeigt.

     * Stellen Sie sicher, dass sich fu:r Ihren Rechner kein
       MX-Eintrag im DNS befindet.

   Jede der erwa:hnten Konfigurationsmo:glichkeiten erlaubt Ihnen,
   E-Mails direkt auf Ihrem Rechner zu empfangen.

   Versuchen Sie das:

 # hostname
 example.FreeBSD.org
 # host example.FreeBSD.org
 example.FreeBSD.org has address 204.216.27.XX

   Wenn Sie diese Ausgabe erhalten, sollten direkt an
   <yourlogin@example.FreeBSD.org> geschickte E-Mails ohne Probleme
   funktionieren.

   Sehen Sie stattdessen etwas wie dies:

 # host example.FreeBSD.org
 example.FreeBSD.org has address 204.216.27.XX
 example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org

   So wird jede an Ihren Rechner (example.FreeBSD.org) gesandte
   E-Mail auf hub unter dem gleichen Benutzernamen gesammelt anstatt
   direkt zu Ihrem Rechner geschickt zu werden.

   Die obige Information wird von Ihrem DNS-Server verwaltet. Der
   DNS-Eintrag, der die E-Mail Routen-Information entha:lt, ist der
   Mail eXchange Eintrag. Existiert kein MX-Eintrag, werden E-Mails
   direkt anhand der IP-Adresse geliefert.

   Der MX-Eintrag fu:r freefall.FreeBSD.org sah einmal so aus:

 freefall                MX      30      mail.crl.net
 freefall                MX      40      agora.rdrop.com
 freefall                MX      10      freefall.FreeBSD.org
 freefall                MX      20      who.cdrom.com

   Wie Sie sehen ko:nnen, hatte freefall viele MX-Eintra:ge. Die
   kleinste MX-Nummer ist der Rechner, der die E-Mails letztendlich
   bekommt, wobei die anderen tempora:r E-Mails in Warteschlangen
   einreihen wa:hrend freefall bescha:ftigt oder unerreichbar ist.

   Um besonders nu:tzlich zu sein, sollten stellvertretende MX-Seiten
   nicht dieselben Internet-Verbindungen wie Ihre eigene verwenden.
   Fu:r Ihren Internet-Dienstleister oder andere sollte es kein
   Problem darstellen, Ihnen diesen Dienst zur Verfu:gung zu stellen.

     --------------------------------------------------------------

  29.7.2. E-Mails fu:r Ihre Doma:ne

   Um einen "E-Mail-Server" (auch bekannt als Mail-Server)
   einzurichten, beno:tigen Sie eine Umlenkung jeglicher E-Mails zu
   Ihm, die an die verschiedenen Workstations gesendet werden. Im
   Grunde wollen Sie jede an Ihre Doma:ne gesendete E-Mail abfangen
   (in diesem Fall *.FreeBSD.org), damit Ihre Benutzer E-Mails
   mittels POP oder direkt auf dem Server u:berpru:fen ko:nnen.

   Am einfachsten ist es, wenn Accounts mit gleichen Benutzernamen
   auf beiden Maschinen existieren. Verwenden Sie adduser(8), um dies
   zu erreichen.

   Der E-Mail-Server, den Sie verwenden wollen, muss als fu:r den
   E-Mail-Austausch zusta:ndiger Rechner auf jeder Workstation im
   Netzwerk gekennzeichnet werden. Dies wird in der DNS-Konfiguration
   so ausgefu:hrt:

 example.FreeBSD.org     A       204.216.27.XX           ; Workstation
                         MX      10 hub.FreeBSD.org      ; Mailhost

   Diese Einstellung wird E-Mail fu:r die Workstations zu dem
   E-Mail-Server leiten, wo auch immer der A-Eintrag hinzeigt. Die
   E-Mails werden zum MX-Rechner gesandt.

   Sofern Sie nicht einen DNS-Server laufen haben, ko:nnen Sie diese
   Einstellung nicht selbst vornehmen. Ist es Ihnen nicht mo:glich
   einen eigenen DNS-Server laufen zu lassen, reden Sie mit Ihren
   Internet-Dienstleister oder wer auch immer Ihre DNS-Verwaltung
   u:bernimmt.

   Wenn Sie ein virtuelles E-Mail System anbieten, werden die
   folgenden Informationen nu:tzlich sein. Fu:r ein Beispiel nehmen
   wir an, Sie haben einen Kunden mit einer eigenen Doma:ne, in
   diesem Fall customer1.org und Sie wollen jegliche E-Mails fu:r
   customer1.org zu Ihrem E-Mail-Server gesendet haben, der
   mail.myhost.com heisst. Der Eintrag in Ihrem DNS sollte wie
   folgender aussehen:

 customer1.org           MX      10      mail.myhost.com
      

   Sie beno:tigen keinen A-Eintrag, wenn Sie fu:r die Domain nur
   E-Mails verwalten wollen.

     Anmerkung: Bedenken Sie, dass das Pingen von customer1.org nicht
     mo:glich ist, solange kein A-Eintrag fu:r diese Doma:ne
     existiert.

   Jetzt mu:ssen Sie nur noch sendmail auf Ihrem Mailrechner
   mitteilen, fu:r welche Doma:nen und/oder Rechnernamen es Mails
   akzeptieren soll. Es gibt einige Wege wie dies geschehen kann. Die
   Folgenden funktionieren alle gleichermassen:

     * Fu:gen Sie die Rechnernamen zu Ihrer /etc/sendmail.cw Datei
       hinzu, wenn Sie FEATURE(use_cw_file) verwenden. Ab
       sendmail 8.10 heisst diese Datei /etc/mail/local-host-names.

     * Tragen Sie eine Zeile mit dem Inhalt Cwyour.host.com in Ihre
       /etc/sendmail.cf Datei (beziehungsweise /etc/mail/sendmail.cf
       ab sendmail 8.10) ein.

     --------------------------------------------------------------

29.8. SMTP u:ber UUCP

   Die sendmail-Konfigurationsdatei, die mit FreeBSD ausgeliefert
   wird, ist fu:r Systeme geeignet, die direkt ans Internet
   angeschlossen sind. Systeme, die ihre E-Mails per UUCP austauschen
   wollen, mu:ssen eine andere Konfigurationsdatei installieren.

   Die manuelle Bearbeitung von /etc/mail/sendmail.cf ist nur etwas
   fu:r Puristen. Sendmail Version 8 bietet die neue Mo:glichkeit der
   Generierung von Konfigurationsdateien u:ber eine Vorverarbeitung
   mit m4(1), wobei die tatsa:chliche, ha:ndische Konfiguration auf
   einer ho:heren Abstraktionsstufe stattfindet. Sie sollten die
   Konfigurationsdateien unter /usr/src/usr.sbin/sendmail/cf
   benutzen. Die Datei README im Verzeichnis cf kann zur
   grundlegenden Einfu:hrung in die m4(1)-Konfiguration dienen.

   Zur Zustellung u:ber UUCP sind Sie am besten damit beraten, die
   mailertable-Datenbank zu benutzen. Mit dieser Datenbank ermittelt
   sendmail mit welchem Protokoll und wohin eine E-Mail zugestellt
   werden soll.

   Zuna:chst mu:ssen Sie Ihre .mc-Datei erstellen. Das Verzeichnis
   /usr/share/sendmail/cf/cf ist die Basis fu:r diese Dateien. Sehen
   Sie sich um, es gibt bereits einige Beispiele. Wenn Sie Ihre Datei
   foo.mc genannt haben, mu:ssen Sie die folgenden Befehle
   ausfu:hren, um sie in eine gu:ltige sendmail.cf umzuwandeln:

 # cd /etc/mail
 # make foo.cf
 # cp foo.cf /etc/mail/sendmail.cf

   Eine typische .mc-Datei ko:nnte so aussehen:

 VERSIONID(`Your version number')
 OSTYPE(bsd4.4)

 FEATURE(accept_unresolvable_domains)
 FEATURE(nocanonify)
 FEATURE(mailertable, `hash -o /etc/mail/mailertable')

 define(`UUCP_RELAY', your.uucp.relay)
 define(`UUCP_MAX_SIZE', 200000)
 define(`confDONT_PROBE_INTERFACES')

 MAILER(local)
 MAILER(smtp)
 MAILER(uucp)

 Cw    your.alias.host.name
 Cw    youruucpnodename.UUCP

   Die Einstellungen accept_unresolvable_domains, nocanonify und
   confDONT_PROBE_INTERFACES werden die Benutzung von DNS bei der
   Zustellung von Mails verhindern. Die Klausel UUCP_RELAY wird aus
   seltsamen Gru:nden beno:tigt - fragen Sie nicht, warum. Setzen Sie
   dort einfach den Namen eines Hosts ein, der in der Lage ist,
   Adressen mit der Pseudodoma:ne .UUCP zu behandeln; wahrscheinlich
   werden Sie dort den Relayhost Ihres ISP eintragen.

   Wenn Sie soweit sind, mu:ssen Sie die Datei /etc/mail/mailertable
   erzeugen. Hierzu wieder ein typisches Beispiel:

 #
 # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
 #
 .  uucp-dom:your.uucp.relay

   Ein komplexeres Beispiel ko:nnte wie folgt aussehen:

 #
 # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
 #
 horus.interface-business.de   uucp-dom:horus
 .interface-business.de        uucp-dom:if-bus
 interface-business.de         uucp-dom:if-bus
 .heep.sax.de                  smtp8:%1
 horus.UUCP                    uucp-dom:horus
 if-bus.UUCP                   uucp-dom:if-bus
 .                             uucp-dom:

   Die ersten drei Zeilen behandeln spezielle Fa:lle, in denen an
   Doma:nen adressierte E-Mails nicht u:ber die Standard-Route
   versendet werden sollen, sondern zu einem UUCP-Nachbarn, um den
   Zustellweg "abzuku:rzen". Die na:chsten Zeilen behandeln E-Mails
   an Rechner in der lokalen Domain. Diese Mails ko:nnen direkt per
   SMTP zugestellt werden. Schliesslich werden die UUCP-Nachbarn in
   der Notation mit der Pseudodoma:ne .UUCP aufgefu:hrt, um die
   Standardregeln mit uucp-neighbour!recipient zu u:berschreiben. Die
   letzte Zeile besteht stets aus einem einzelnen Punkt, der als Ihr
   Universalgateway in die Welt dient. Alle Knoten hinter dem
   Schlu:sselwort uucp-dom: mu:ssen gu:ltige UUCP-Nachbarn sein, was
   Sie mit dem Befehl uuname u:berpru:fen ko:nnen.

   Als Erinnerung daran, dass diese Datei in eine DBM-Datenbankdatei
   konvertiert werden muss, bevor sie benutzt werden kann, sollte der
   Befehl hierzu als Kommentar am Anfang der mailertable plaziert
   werden. Sie mu:ssen den Befehl jedes Mal ausfu:hren, wenn Sie die
   mailertable gea:ndert haben.

   Abschliessender Hinweis: Wenn Sie unsicher sind, ob bestimmte
   Zustellwege funktionieren, erinnern Sie sich an die Option -bt von
   sendmail. Sie startet sendmail im Adress-Testmodus; geben Sie
   einfach 3,0, gefolgt von der Adresse, fu:r die Sie den Zustellweg
   testen mo:chten, ein. Die letzte Zeile nennt Ihnen den benutzten
   Mailagenten, den Zielhost, mit dem dieser Agent aufgerufen wird
   und die (mo:glicherweise u:bersetzte) Adresse. Verlassen Sie
   diesen Modus, indem Sie Ctrl+D eingeben.

 % sendmail -bt
 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter <ruleset> <address>
 > 3,0 foo@example.com
 canonify           input: foo @ example . com
 ...
 parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
 > ^D

     --------------------------------------------------------------

29.9. Ausgehende E-Mail u:ber einen Relay versenden

   Beigetragen von Bill Moran.

   In vielen Fa:llen wollen Sie E-Mail nur u:ber einen Relay
   verschicken. Zum Beispiel:

     * Sie wollen von Ihrem Arbeitsplatz Programme wie send-pr(1)
       benutzen. Dazu soll der Relay Ihres ISPs verwendet werden.

     * Ein Server, der E-Mails nicht selbst verarbeitet, soll alle
       E-Mails zu einem Relay schicken.

   So ziemlich jeder MTA kann diese Aufgaben erfu:llen. Leider ist es
   oft schwierig, einen vollwertigen MTA so zu konfigurieren, dass er
   lediglich ausgehende E-Mails weiterleitet. Es ist u:bertrieben,
   Programme wie sendmail und postfix nur fu:r diesen Zweck
   einzusetzen.

   Weiterhin kann es sein, dass die Bestimmungen Ihres
   Internetzugangs es verbieten, einen eigenen Mail-Server zu
   betreiben.

   Um die hier beschriebenen Anforderungen zu erfu:llen, installieren
   Sie einfach den Port mail/ssmtp. Fu:hren Sie dazu als root die
   nachstehenden Befehle aus:

 # cd /usr/ports/mail/ssmtp
 # make install replace clean

   Nach der Installation konfigurieren Sie mail/ssmtp mit den
   folgenden vier Zeilen in /usr/local/etc/ssmtp/ssmtp.conf:

 root=yourrealemail@example.com
 mailhub=mail.example.com
 rewriteDomain=example.com
 hostname=_HOSTNAME_

   Stellen Sie sicher, dass Sie eine gu:ltige E-Mail-Adresse fu:r
   root verwenden. Geben Sie fu:r mail.example.com den Mail-Relay
   Ihres ISPs an (einige ISPs nennen den Relay "Postausgangsserver"
   oder "SMTP-Server").

   Deaktivieren Sie sendmail indem Sie in /etc/rc.conf
   sendmail_enable="NONE" angeben.

   mail/ssmtp verfu:gt u:ber weitere Optionen. Die
   Musterkonfiguration in /usr/local/etc/ssmtp oder die Hilfeseite
   von ssmtp enthalten weitere Beispiele.

   Wenn Sie ssmtp wie hier beschrieben eingerichtet haben,
   funktionieren Anwendungen, die E-Mails von Ihrem Rechner
   verschicken. Sie verstossen damit auch nicht gegen Bestimmungen
   Ihres ISPs und laufen nicht in Gefahr, dass Ihr Rechner zum
   Versenden von Spams missbraucht wird.

     --------------------------------------------------------------

29.10. E-Mail u:ber Einwahl-Verbindungen

   Wenn Sie eine feste IP-Adresse haben, mu:ssen Sie die
   Standardeinstellungen wahrscheinlich gar nicht a:ndern. Stellen
   Sie Ihren Hostnamen entsprechend Ihrem zugeordneten Internetnamen
   ein und sendmail u:bernimmt das U:brige.

   Wenn Sie eine dynamische IP-Adresse haben und eine
   PPP-Wa:hlverbindung zum Internet benutzen, besitzen Sie
   wahrscheinlich eine Mailbox auf dem Mailserver Ihres ISPs. Lassen
   Sie uns annehmen, die Doma:ne ihres ISPs sei example.net und Ihr
   Benutzername user; ausserdem nehmen wir an, dass Sie Ihre Maschine
   bsd.home genannt haben und, dass Ihr ISP ihnen gesagt hat, dass
   Sie relay.example.net als Mail-Relayhost benutzen ko:nnen.

   Um Mails aus Ihrer Mailbox abzuholen, mu:ssen Sie ein gesondertes
   Programm installieren; fetchmail ist eine gute Wahl, weil es viele
   verschiedene Protokolle unterstu:tzt. Das Programm ko:nnen Sie als
   Paket oder von der Ports-Sammlung (mail/fetchmail) installieren.
   Fu:r gewo:hnlich wird von Ihrem ISP POP zur Verfu:gung gestellt.
   Falls Sie sich dafu:r entschieden haben, User-PPP zu benutzen,
   ko:nnen Sie durch folgenden Eintrag in der Datei
   /etc/ppp/ppp.linkup Ihre Mails automatisch abholen lassen, wenn
   eine Verbindung zum Netz aufgebaut wird:

 MYADDR:
 !bg su user -c fetchmail

   Falls Sie (wie unten gezeigt) sendmail benutzen, um Mails an
   nicht-lokale Benutzer zu versenden, fu:gen Sie den Befehl

 !bg su user -c "sendmail -q"

   nach dem oben gezeigten Eintrag ein. Das veranlasst sendmail, Ihre
   ausgehenden Mails zu verarbeiten, sobald eine Verbindung zum
   Internet aufgebaut wird.

   Nehmen wir an, dass auf bsd.home ein Benutzer user existiert.
   Erstellen Sie auf bsd.home im Heimatverzeichnis von user die Datei
   .fetchmailrc:

 poll example.net protocol pop3 fetchall pass MySecret;

   Diese Datei sollte fu:r niemandem ausser user lesbar sein, weil
   sie das Passwort MySecret entha:lt.

   Um Mails mit dem richtigen from:-Header zu versenden, mu:ssen Sie
   sendmail mitteilen, dass es <user@example.net> und nicht
   <user@bsd.home> benutzen soll. Eventuell mo:chten Sie auch, dass
   sendmail alle Mails u:ber relay.example.net versendet, um eine
   schnellere U:bertragung von Mails zu gewa:hrleisten.

   Die folgende .mc-Datei sollte ausreichen:

 VERSIONID(`bsd.home.mc version 1.0')
 OSTYPE(bsd4.4)dnl
 FEATURE(nouucp)dnl
 MAILER(local)dnl
 MAILER(smtp)dnl
 Cwlocalhost
 Cwbsd.home
 MASQUERADE_AS(`example.net')dnl
 FEATURE(allmasquerade)dnl
 FEATURE(masquerade_envelope)dnl
 FEATURE(nocanonify)dnl
 FEATURE(nodns)dnl
 define(`SMART_HOST', `relay.example.net')
 Dmbsd.home
 define(`confDOMAIN_NAME',`bsd.home')dnl
 define(`confDELIVERY_MODE',`deferred')dnl

   Im vorherigen Abschnitt finden Sie Details dazu, wie Sie aus
   dieser .mc-Datei eine Datei sendmail.cf erstellen ko:nnen.
   Vergessen Sie auch nicht, sendmail neu zu starten, nachdem Sie
   sendmail.cf vera:ndert haben.

     --------------------------------------------------------------

29.11. SMTP-Authentifizierung

   Geschrieben von James Gorham.

   Ein Mail-Server, der SMTP-Authentifizierung verwendet, bietet
   einige Vorteile. Die erforderliche Authentifizierung erho:ht die
   Sicherheit von sendmail und Benutzer, die auf wechselnden
   entfernten Rechnern arbeiten, ko:nnen denselben Mail-Server
   verwenden ohne Ihr Benutzerprogramm jedes Mal neu zu
   konfigurieren.

    1. Installieren Sie den Port security/cyrus-sasl2. Der Port
       verfu:gt u:ber einige Optionen, die wa:hrend der U:bersetzung
       festgelegt werden. Fu:r die in diesem Abschnitt beschriebene
       Methode zur SMTP-Authentifizierung muss die Option LOGIN
       aktiviert werden.

    2. Editieren Sie nach der Installation von security/cyrus-sasl2
       die Datei /usr/local/lib/sasl2/Sendmail.conf (erstellen Sie
       die Datei, wenn sie nicht existiert) und fu:gen Sie die
       folgende Zeile hinzu:

 pwcheck_method: saslauthd

    3. Danach installieren Sie den Port
       security/cyrus-sasl2-saslauthd, und fu:gen die folgende Zeile
       in /etc/rc.conf ein:

 saslauthd_enable="YES"

       Zuletzt mu:ssen Sie noch den saslauthd-Daemon starten:

 # /usr/local/etc/rc.d/saslauthd start

       Dieser Daemon agiert als Broker zwischen sendmail und Ihrer
       FreeBSD-passwd-Datenbank. Dadurch mu:ssen zum Versenden von
       E-Mails keine zusa:tzlichen Accounts und Passwo:rter angelegt
       werden. Die Benutzer verwenden dasselbe Passwort zum Anmelden
       wie zum Verschicken von E-Mails.

    4. Fu:gen Sie jetzt in /etc/make.conf die nachstehenden Zeilen
       hinzu:

 SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
 SENDMAIL_LDFLAGS=-L/usr/local/lib
 SENDMAIL_LDADD=-lsasl2

       Beim U:bersetzen von sendmail werden damit die
       cyrus-sasl2-Bibliotheken benutzt. Stellen Sie daher vor dem
       U:bersetzen von sendmail sicher, dass der Port cyrus-sasl2
       installiert ist.

    5. U:bersetzen Sie sendmail mit den nachstehenden Kommandos:

 # cd /usr/src/lib/libsmutil
 # make cleandir && make obj && make
 # cd /usr/src/lib/libsm
 # make cleandir && make obj && make
 # cd /usr/src/usr.sbin/sendmail
 # make cleandir && make obj && make && make install

       sendmail sollte sich ohne Probleme u:bersetzen lassen, wenn
       die Dateien in /usr/src nicht vera:ndert wurden und die
       beno:tigten Bibliotheken installiert sind.

    6. Nachdem Sie sendmail installiert haben, editieren Sie
       /etc/mail/freebsd.mc beziehungsweise die verwendete .mc-Datei.
       Viele Administratoren verwenden die Ausgabe von hostname(1),
       um der .mc-Datei einen eindeutigen Namen zu geben. Fu:gen Sie
       die folgenden Zeilen in die .mc-Datei ein:

 dnl set SASL options
 TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
 define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl

       Diese Anweisungen konfigurieren die Methoden, die sendmail zur
       Authentifizierung verwendet. Lesen Sie die mitgelieferte
       Dokumentation, wenn Sie eine andere Methode als pwcheck
       verwenden wollen.

    7. Abschliessend rufen Sie make(1) im Verzeichnis /etc/mail auf.
       Damit wird aus der .mc-Datei eine neue .cf-Datei (zum Beispiel
       freebsd.cf) erzeugt. Das Kommando make install restart
       installiert die Datei nach /etc/mail/sendmail.cf und startet
       sendmail neu. Weitere Informationen entnehmen Sie bitte
       /etc/mail/Makefile.

   Wenn alles funktioniert hat, tragen Sie in Ihrem
   Mail-Benutzerprogramm das Passwort fu:r die Authentifizierung ein
   und versenden Sie zum Testen eine E-Mail. Wenn Sie Probleme haben,
   setzen Sie den LogLevel von sendmail auf 13 und untersuchen die
   Fehlermeldungen in /var/log/maillog.

   Weitere Information erhalten Sie im WWW auf der Webseite von
   sendmail.

     --------------------------------------------------------------

29.12. E-Mail-Programme

   Beigetragen von Marc Silver.

   Anwendungen, die E-Mails versenden und empfangen, werden als
   E-Mail-Programme oder Mail-User-Agents (MUA) bezeichnet. Mit der
   Entwicklung und Ausbreitung von E-Mail wachsen auch die
   E-Mail-Programme und bieten Benutzern mehr Funktionen und ho:here
   Flexibilita:t. Unter FreeBSD laufen zahlreiche E-Mail-Programme,
   die Sie alle mit der FreeBSD Ports-Sammlung installieren ko:nnen.
   Sie ko:nnen wa:hlen zwischen Programmen mit grafischer
   Benutzeroberfla:che, wie evolution oder balsa,
   konsolenorientierten Programmen wie mutt, alpine oder mail, oder
   auch Programmen mit Web-Schnittstellen, die von einigen grossen
   Institutionen benutzt werden.

     --------------------------------------------------------------

  29.12.1. mail

   Das standardma:ssig unter FreeBSD installierte E-Mail-Programm ist
   mail(1). Das Programm ist konsolenorientiert und entha:lt alle
   Funktionen, die zum Versand und Empfang textbasierter E-Mails
   erforderlich sind. Allerdings lassen sich Anha:nge mit mail nur
   schwer bearbeiten und kann mail kann nur auf lokale Postfa:cher
   zugreifen.

   mail kann nicht direkt auf POP- oder IMAP-Server zugreifen.
   Entfernte Postfa:cher ko:nnen aber mit einer Anwendung wie
   fetchmail in die lokale Datei mbox geladen werden. fetchmail wird
   spa:ter in diesem Kapitel besprochen (Abschnitt 29.13).

   Um E-Mails zu versenden oder zu empfangen, starten Sie einfach
   mail wie im nachstehenden Beispiel:

 % mail

   Das Werkzeug mail liest automatisch den Inhalt des
   Benutzer-Postfachs im Verzeichnis /var/mail. Sollte das Postfach
   leer sein, beendet sich mail mit der Nachricht, dass keine E-Mails
   vorhanden sind. Wenn das Postfach gelesen wurde, wird die
   Benutzeroberfla:che gestartet und eine Liste der E-Mails
   angezeigt. Die E-Mails werden automatisch nummeriert wie im
   folgenden Beispiel gezeigt:

 Mail version 8.1 6/6/93.  Type ? for help.
 "/var/mail/marcs": 3 messages 3 new
 >N  1 root@localhost        Mon Mar  8 14:05  14/510   "test"
  N  2 root@localhost        Mon Mar  8 14:05  14/509   "user account"
  N  3 root@localhost        Mon Mar  8 14:05  14/509   "sample"

   Einzelne Nachrichten ko:nnen Sie jetzt mit dem mail-Kommando t
   gefolgt von der Nummer der Nachricht lesen. Im nachstehenden
   Beispiel lesen wir die erste E-Mail:

 & t 1
 Message 1:
 From root@localhost  Mon Mar  8 14:05:52 2004
 X-Original-To: marcs@localhost
 Delivered-To: marcs@localhost
 To: marcs@localhost
 Subject: test
 Date: Mon,  8 Mar 2004 14:05:52 +0200 (SAST)
 From: root@localhost (Charlie Root)

 Das ist eine Test-Nachricht.  Antworte bitte!

   Die Taste t zeigt die Nachricht zusammen mit dem vollsta:ndigen
   Nachrichtenkopf an. Wenn Sie die Liste der E-Mails erneut sehen
   wollen, dru:cken Sie die Taste h.

   Um auf eine E-Mail zu antworten, benutzen Sie im Programm mail
   entweder die Taste R oder die Taste r. Mit der Taste R weisen Sie
   mail an, dem Versender der Nachricht zu antworten. Mit der Taste r
   antworten Sie nicht nur dem Versender sondern auch allen
   Empfa:ngern der Nachricht. Sie ko:nnen zusammen mit diesen
   Kommandos eine Zahl angeben, um die E-Mail, auf die Sie antworten
   wollen, auszusuchen. Wenn Sie den Befehl abgesetzt haben,
   schreiben Sie Ihre Antwort und beenden die Eingabe mit einem
   einzelnen Punkt (.) auf einer neuen Zeile. Den Vorgang zeigt das
   nachstehende Beispiel:

 & R 1
 To: root@localhost
 Subject: Re: test

 Danke, ich habe deine E-Mail erhalten.
 .
 EOT

   Neue E-Mails ko:nnen Sie mit der Taste m verschicken. Geben Sie
   dabei die E-Mail-Adresse des Empfa:ngers an. Sie ko:nnen auch
   mehrere durch Kommata (,) getrennte Empfa:nger angeben. Geben Sie
   dann den Betreff (subject) der Nachricht gefolgt von der Nachricht
   selbst ein. Schliessen Sie die Nachricht mit einem einzelnen Punkt
   (.) auf einer neuen Zeile ab.

 & mail root@localhost
 Subject: Ich habe die E-Mails im Griff!

 Jetzt kann ich E-Mails versenden und empfangen ... :)
 .
 EOT

   Die Taste ? zeigt zu jeder Zeit einen Hilfetext an. Wenn Sie
   weitere Hilfe beno:tigen, lesen Sie bitte die Hilfeseite mail(1).

     Anmerkung: Wie vorhin gesagt, wurde das Programm mail(1) nicht
     fu:r den Umgang mit Anha:ngen entworfen und kann daher sehr
     schlecht mit Anha:ngen umgehen. Neuere MUAs wie mutt gehen
     wesentlich besser mit Anha:ngen um. Sollten Sie dennoch das
     mail-Kommando benutzen wollen, werden Sie den Port
     converters/mpack sehr zu scha:tzen wissen.

     --------------------------------------------------------------

  29.12.2. mutt

   mutt ist ein schlankes aber sehr leistungsfa:higes E-Mail-Programm
   mit hervorrangenden Funktionen, unter anderem:

     * mutt kann den Verlauf einer Diskussion (threading) darstellen.

     * Durch die Integration von PGP ko:nnen E-Mails signiert und
       verschlu:sselt werden.

     * MIME wird unterstu:tzt.

     * Postfa:cher ko:nnen im Maildir-Format gespeichert werden.

     * mutt la:sst sich im ho:chsten Masse an lokale Bedu:rfnisse
       anpassen.

   Wegen des Funktionsumfangs ist mutt eins der ausgefeiltesten
   E-Mail-Programme. Mehr u:ber mutt erfahren Sie auf der Seite
   http://www.mutt.org.

   Der Port mail/mutt entha:lt die Produktionsversion von mutt, die
   aktuelle Entwicklerversion befindet sich im Port mail/mutt-devel.
   Wenn mutt installiert ist, wird das Programm mit dem nachstehenden
   Kommando gestartet:

 % mutt

   mutt liest automatisch den Inhalt des Benutzer-Postfachs im
   Verzeichnis /var/mail. Wenn E-Mails vorhanden sind, werden diese
   dargestellt. Sind keine E-Mails vorhanden, wartet mutt auf
   Benutzereingaben. Das folgende Beispiel zeigt, wie mutt eine
   Nachrichten-Liste darstellt:

   Wenn Sie eine Nachricht lesen wollen, wa:hlen Sie die Nachricht
   einfach mit den Pfeiltasten aus und dru:cken Enter. mutt zeigt
   E-Mails wie folgt an:

   Wenn Sie auf eine E-Mail antworten, ko:nnen Sie, wie in mail(1),
   aussuchen, ob Sie nur dem Versender oder auch allen Empfa:ngern
   antworten wollen. Wenn Sie nur dem Versender antworten wollen,
   dru:cken Sie die Taste r. Wenn sie dem Versender und allen
   Empfa:ngern antworten wollen, dru:cken Sie die Taste g.

     Anmerkung: Zum Erstellen oder zum Beantworten von E-Mails ruft
     mutt den Editor vi(1) auf. Wenn Sie den von mutt verwendeten
     Editor a:ndern mo:chten, erstellen oder editieren Sie in Ihrem
     Heimatverzeichnis die Datei .muttrc. Den Editor ko:nnen Sie in
     .muttrc mit der Variablen editor festlegen. Alternativ ko:nnen
     Sie auch die Umgebungsvariable EDITOR setzen. Weitere
     Informationen zur Konfiguration von mutt finden Sie unter
     http://www.mutt.org/.

   Dru:cken Sie die Taste m, wenn Sie eine neue Nachricht verfassen
   wollen. Nachdem Sie einen Betreff (subject) eingegeben haben,
   startet mutt den Editor vi(1) und Sie ko:nnen die Nachricht
   eingeben. Wenn Sie fertig sind, speichern Sie die Nachricht und
   verlassen den Editor. mutt wird dann wieder aktiv und zeigt eine
   Zusammenfassung der zu sendenden Nachricht an. Dru:cken Sie y, um
   die E-Mail zu versenden. Der nachstehende Bildschirmabzug zeigt
   die Zusammenfassung der E-Mail:

   mutt verfu:gt u:ber eine umfangreiche Hilfestellung. Aus fast
   jedem Menu: ko:nnen Sie Hilfeseiten mit der Taste ? aufrufen. In
   der oberen Statuszeile werden zudem die verfu:gbaren
   Tastenkombinationen angezeigt.

     --------------------------------------------------------------

  29.12.3. alpine

   alpine wendet sich an Anfa:nger bietet aber ebenfalls einige
   Funktionen fu:r Profis.

     Warnung: In der Vergangenheit wurden in alpine mehrere
     Schwachstellen gefunden. Die Schwachstellen gestatteten
     entfernten Benutzern, durch das Versenden einer besonders
     verfassten E-Mail, Programme auf dem lokalen System laufen zu
     lassen. Alle bekannten Schwachstellen sind beseitigt worden,
     doch wird im Quellcode von alpine ein sehr riskanter
     Programmierstil verwendet, sodass der FreeBSD-Security-Officer
     von weiteren unbekannten Schwachstellen ausgeht. Sie
     installieren alpine auf eigene Verantwortung!

   Der Port mail/alpine entha:lt die aktuelle Version von alpine.
   Nach der Installation ko:nnen Sie alpine mit dem nachstehenden
   Kommando starten:

 % alpine

   Wenn Sie alpine das erste Mal starten, zeigt das Programm eine
   Seite mit einer kurzen Einfu:hrung an. Um die alpine-Benutzer zu
   za:hlen, bitten die Entwickler auf dieser Seite um eine anonyme
   E-Mail. Sie ko:nnen diese anonyme E-Mail senden, indem Sie Enter
   dru:cken oder den Begru:ssungsbildschirm mit der Taste E
   verlassen, ohne die anonyme E-Mail zu senden. Der
   Begru:ssungsbildschirm sieht wie folgt aus:

   Nach dem Begru:ssungsbildschirm wird das Hauptmenu: dargestellt,
   das sich leicht mit den Pfeiltasten bedienen la:sst. Mit
   Tastenkombinationen ko:nnen Sie aus dem Hauptmenu: neue E-Mails
   erstellen, Postfa:cher anzeigen und auch das Adressbuch verwalten.
   Unterhalb des Menu:s werden die Tastenkombinationen fu:r die
   verfu:gbaren Aktionen angezeigt.

   In der Voreinstellung o:ffnet pine das Verzeichnis inbox. Die
   Taste I oder der Menu:punkt MESSAGE INDEX fu:hrt zu einer
   Nachrichten-Liste:

   Die Liste zeigt die Nachrichten im Arbeitsverzeichnis. Sie ko:nnen
   Nachrichten mit den Pfeiltasten markieren. Wenn Sie eine Nachricht
   lesen wollen, dru:cken Sie Enter.

   Im na:chsten Bildschirmabzug sehen Sie, wie pine eine Nachricht
   darstellt. Die unteren Bildschirmzeilen zeigen die verfu:gbaren
   Tastenkombinationen. Mit der Taste r ko:nnen Sie zum Beispiel auf
   die gerade angezeigte Nachricht antworten.

   Zum Antworten auf eine E-Mail wird in pine der Editor pico, der
   mit installiert wird, benutzt. pico ist leicht zu bedienen und
   gerade fu:r Anfa:nger besser geeignet als vi(1) oder mail(1). Die
   Antwort wird mit der Tastenkombination Ctrl+X versendet. Vor dem
   Versand bittet pine noch um eine Besta:tigung.

   U:ber den Menu:punkt SETUP des Hauptmenu:s ko:nnen Sie pine an
   Ihre Bedu:rfnisse anpassen. Erla:uterungen dazu finden Sie auf der
   Seite http://www.washington.edu/pine/.

     --------------------------------------------------------------

29.13. E-Mails mit fetchmail abholen

   Beigetragen von Marc Silver.

   fetchmail ist ein vollwertiger IMAP- und POP-Client. Mit fetchmail
   ko:nnen Benutzer E-Mails von entfernten IMAP- und POP-Servern in
   leichter zuga:ngliche lokale Postfa:cher laden. fetchmail wird aus
   dem Port mail/fetchmail installiert. Das Programm bietet unter
   anderem folgende Funktionen:

     * fetchmail beherrscht die Protokolle POP3, APOP, KPOP, IMAP,
       ETRN und ODMR.

     * E-Mails ko:nnen mit SMTP weiterverarbeitet werden. Dadurch ist
       garantiert, dass Filter, Weiterleitungen und Aliase weiterhin
       funktionieren.

     * Das Programm kann als Dienst laufen und periodisch neue
       Nachrichten abrufen.

     * fetchmail kann mehrere Postfa:cher abfragen und je nach
       Konfiguration die E-Mails an verschiedene lokale Benutzer
       zustellen.

   Wegen des Funktionsumfangs von fetchmail ko:nnen hier nur
   grundlegende Funktionen beschrieben werden. fetchmail beno:tigt
   die Konfigurationsdatei .fetchmailrc. In dieser Datei werden
   Informationen u:ber Server wie auch Benutzerdaten und Passwo:rter
   hinterlegt. Wegen des kritischen Inhalts von .fetchmailrc sollte
   die Datei nur lesbar fu:r den Benutzer sein:

 % chmod 600 .fetchmailrc

   Die folgende .fetchmailrc zeigt, wie das Postfach eines einzelnen
   Benutzers mit POP heruntergeladen wird. fetchmail wird angewiesen,
   eine Verbindung zu example.com herzustellen und sich dort als
   Benutzer joesoap mit dem Passwort XXX anzumelden. Das Beispiel
   setzt voraus, dass es der Benutzer joesoap auch auf dem lokalen
   System existiert.

 poll example.com protocol pop3 username "joesoap" password "XXX"

   Im folgenden Beispiel werden mehrere POP- und IMAP-Server benutzt.
   Wo notwendig, werden E-Mails auf andere lokale Konten umgeleitet:

 poll example.com proto pop3:
 user "joesoap", with password "XXX", is "jsoap" here;
 user "andrea", with password "XXXX";
 poll example2.net proto imap:
 user "john", with password "XXXXX", is "myth" here;

   Sie ko:nnen fetchmail als Dienst starten. Verwenden Sie dazu die
   Kommandozeilenoption -d gefolgt von einer Zeitspanne in Sekunden,
   die angibt, wie oft die Server aus der Datei .fetchmailrc
   abgefragt werden sollen. Mit dem nachstehenden Befehl fragt
   fetchmail die Server alle 600 Sekunden ab:

 % fetchmail -d 600

   Mehr u:ber fetchmail erfahren Sie auf der Seite
   http://fetchmail.berlios.de/.

     --------------------------------------------------------------

29.14. E-Mails mit procmail filtern

   Beigetragen von Marc Silver.

   Mit procmail la:sst sich eingehende E-Mail sehr gut filtern.
   Benutzer ko:nnen Regeln fu:r eingehende E-Mails definieren, die
   E-Mails zu anderen Postfa:chern oder anderen E-Mail-Adressen
   umleiten. procmail befindet sich im Port mail/procmail. procmail
   kann leicht in die meisten MTAs integriert werden. Lesen Sie dazu
   bitte die Dokumentation des verwendeten MTAs. Alternativ kann
   procmail in das E-Mail-System eingebunden werden, indem die
   nachstehende Zeile in die Datei .forward im Heimatverzeichnis
   eines Benutzers eingefu:gt wird:

 "|exec /usr/local/bin/procmail || exit 75"

   Im Folgenden zeigen wir einige einfache procmail-Regeln und
   beschreiben kurz den Zweck der Zweck der Regeln. Die Regeln
   mu:ssen in die Datei .procmailrc im Heimatverzeichnis des
   Benutzers eingefu:gt werden.

   Den Grossteil dieser Regeln finden Sie auch in der Hilfeseite
   procmailex(5).

   Alle E-Mail von <user@example.com> an die externe Adresse
   <goodmail@example2.com> weiterleiten:

 :0
 * ^From.*user@example.com
 ! goodmail@example2.com

   Alle Nachrichten, die ku:rzer als 1000 Bytes sind, an
   <goodmail@example2.com> weiterleiten:

 :0
 * < 1000
 ! goodmail@example2.com

   Jede E-Mail, die an <alternate@example.com> geschickt wurde, im
   Postfach alternate speichern:

 :0
 * ^TOalternate@example.com
 alternate

   Jede E-Mail, die im Betreff Spam entha:lt, nach /dev/null
   schieben:

 :0
 ^Subject:.*Spam
 /dev/null

   Zuletzt ein nu:tzliches Rezept, das eingehende E-Mails von den
   FreeBSD.org-Mailinglisten in ein separates Postfach fu:r jede
   Liste einsortiert:

 :0
 * ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
 {
         LISTNAME=${MATCH}
         :0
         * LISTNAME??^\/[^@]+
         FreeBSD-${MATCH}
 }

     --------------------------------------------------------------

                       Kapitel 30. Netzwerkserver

   U:berarbeitet von Murray Stokely. U:bersetzt von Johann Kois.

30.1. U:bersicht

   Dieses Kapitel beschreibt einige der ha:ufiger verwendeten
   Netzwerkdienste auf UNIX-Systemen. Beschrieben werden Installation
   und Konfiguration sowie Test und Wartung verschiedener
   Netzwerkdienste. Zusa:tzlich sind im ganzen Kapitel
   Beispielkonfigurationsdateien vorhanden, von denen Sie sicherlich
   profitieren werden.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie

     * Den inetd-Daemon konfigurieren ko:nnen.

     * Wissen, wie man ein Netzwerkdateisystem einrichtet.

     * Einen Network Information Server einrichten ko:nnen, um damit
       Benutzerkonten im Netzwerk zu verteilen.

     * Rechner durch Nutzung von DHCP automatisch fu:r ein Netzwerk
       konfigurieren ko:nnen.

     * In der Lage sein, einen Domain Name Server einzurichten.

     * Den Apache HTTP-Server konfigurieren ko:nnen.

     * Wissen, wie man einen File Transfer Protocol (FTP)-Server
       einrichtet.

     * Mit Samba einen Datei- und Druckserver fu:r Windows-Clients
       konfigurieren ko:nnen.

     * Unter Nutzung des NTP-Protokolls Datum und Uhrzeit
       synchronisieren sowie einen Zeitserver installieren ko:nnen.

     * Wissen, wie man den Standard-Protokollierungsdienst, syslogd,
       konfiguriert, um Protokolle von anderen Hosts zu akzeptieren.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Die Grundlagen der /etc/rc-Skripte verstanden haben.

     * Mit der grundlegenden Netzwerkterminologie vertraut sein.

     * Wissen, wie man zusa:tzliche Softwarepakete von
       Drittherstellern installiert (Kapitel 5).

     --------------------------------------------------------------

30.2. Der inetd "Super-Server"

   Beigetragen von Chern Lee. Aktualisiert vom FreeBSD Documentation
   Project.

  30.2.1. U:berblick

   inetd(8) wird manchmal auch als "Internet Super-Server"
   bezeichnet, weil er Verbindungen fu:r mehrere Dienste verwaltet.
   Wenn eine Verbindung eintrifft, bestimmt inetd, welches Programm
   fu:r die eingetroffene Verbindung zusta:ndig ist, aktiviert den
   entsprechenden Prozess und reicht den Socket an ihn weiter (der
   Socket dient dabei als Standardein- und -ausgabe sowie zur
   Fehlerbehandlung). Der Einsatz des inetd-Daemons an Stelle viele
   einzelner Daemonen kann auf nicht komplett ausgelasteten Servern
   zu einer Verringerung der Systemlast fu:hren.

   inetd wird vor allem dazu verwendet, andere Daemonen zu
   aktivieren, einige Protokolle werden aber auch direkt verwaltet.
   Dazu geho:ren chargen, auth, sowie daytime.

   Dieser Abschnitt beschreibt die Konfiguration von inetd durch
   Kommandozeilenoptionen sowie die Konfigurationsdatei
   /etc/inetd.conf.

     --------------------------------------------------------------

  30.2.2. Einstellungen

   inetd wird durch das rc(8)-System initialisiert. Die Option
   inetd_enable ist in der Voreinstellung zwar auf NO gesetzt, sie
   kann aber in Abha:ngigkeit von der vom Benutzer bei der
   Installation gewa:hlten Konfiguration von sysinstall aktiviert
   werden. Die Verwendung von

 inetd_enable="YES"

   oder

 inetd_enable="NO"

   in /etc/rc.conf deaktiviert oder startet inetd beim Systemstart.
   U:ber den Befehl

 # /etc/rc.d/inetd rcvar

   ko:nnen Sie die aktuelle Konfiguration abfragen.

   Weitere Optionen ko:nnen u:ber die Option inetd_flags an inetd
   u:bergeben werden.

     --------------------------------------------------------------

  30.2.3. Kommandozeilenoptionen

   Wie die meisten anderen Server-Daemonen la:sst sich auch inetd
   u:ber verschiedene Optionen steuern. Die vollsta:ndige Syntax fu:r
   inetd lautet:

   inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address |
   hostname] [-p filename] [-R rate] [-s maximum] [configuration
   file]

   Die verschiedenen Optionen ko:nnen u:ber die Option inetd_flags
   der Datei /etc/rc.conf an inetd u:bergeben werden. In der
   Voreinstellung hat diese Option den Wert -wW -C 60. Durch das
   Setzen dieser Werte wird das TCP-Wrapping fu:r alle inetd-Dienste
   aktiviert. Zusa:tzlich kann eine einzelne IP-Adresse jeden Dienst
   nur maximal 60 Mal pro Minute anfordern.

   Fu:r Einsteiger ist es erfreulich, dass diese Parameter in der
   Regel nicht angepasst werden mu:ssen. Da diese Parameter aber
   dennoch von Interesse sein ko:nnen (beispielsweise, wenn Sie eine
   enorme Anzahl von Verbindungsanfragen erhalten), werden einige
   dieser einschra:nkenden Parameter im Folgenden na:her erla:utert.
   Eine vollsta:ndige Auflistung aller Optionen finden Sie hingegen
   in inetd(8).

   -c maximum

           Legt die maximale Anzahl von parallen Aufrufen eines
           Dienstes fest; in der Voreinstellung gibt es keine
           Einschra:nkung. Diese Einstellung kann fu:r jeden Dienst
           durch Setzen des max-child -Parameters festgelegt werden.

   -C rate

           Legt fest, wie oft ein Dienst von einer einzelnen
           IP-Adresse in einer Minute aufgerufen werden kann; in der
           Voreinstellung gibt es keine Einschra:nkung. Dieser Wert
           kann fu:r jeden Dienst durch Setzen des Parameters
           max-connections-per-ip-per-minute festgelegt werden.

   -R rate

           Legt fest, wie oft ein Dienst in der Minute aktiviert
           werden kann; in der Voreinstellung sind dies 256
           Aktivierungen pro Minute. Ein Wert von 0 erlaubt
           unbegrenzt viele Aktivierungen.

   -s maximum

           Legt fest, wie oft ein Dienst in der Minute von einer
           einzelnen IP-Adresse aus aktiviert werden kann; in der
           Voreinstellung gibt es hier keine Beschra:nkung. Diese
           Einstellung kann fu:r jeden Dienst durch die Angabe
           max-child-per-ip angepasst werden.

     --------------------------------------------------------------

  30.2.4. inetd.conf

   Die Konfiguration von inetd erfolgt u:ber die Datei
   /etc/inetd.conf.

   Wenn /etc/inetd.conf gea:ndert wird, kann inetd veranlasst werden,
   seine Konfigurationsdatei neu einzulesen.

   Beispiel 30-1. Die inetd-Konfiguration neu einlesen

 # /etc/rc.d/inetd reload

   Jede Zeile der Konfigurationsdatei beschreibt jeweils einen
   Daemon. Kommentare beginnen mit einem "#". Ein Eintrag der Datei
   /etc/inetd.conf hat folgenden Aufbau:

 service-name
 socket-type
 protocol
 {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
 user[:group][/login-class]
 server-program
 server-program-arguments

   Ein Eintrag fu:r den IPv4 verwendenden ftpd(8)-Daemon ko:nnte so
   aussehen:

 ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l

   service-name

           Der Dienstname eines bestimmten Daemons. Er muss einem in
           /etc/services aufgelisteten Dienst entsprechen. In dieser
           Datei wird festgelegt, welchen Port inetd abho:ren muss.
           Wenn ein neuer Dienst erzeugt wird, muss er zuerst in die
           Datei /etc/services eingetragen werden.

   socket-type

           Entweder stream, dgram, raw, oder seqpacket. stream muss
           fu:r verbindungsorientierte TCP-Daemonen verwendet werden,
           wa:hrend dgram das UDP-Protokoll verwaltet.

   protocol

           Eines der folgenden:

           Protokoll                  Bedeutung                 
           tcp, tcp4  TCP (IPv4)                                
           udp, udp4  UDP (IPv4)                                
           tcp6       TCP (IPv6)                                
           udp6       UDP (IPv6)                                
           tcp46      TCP sowohl unter IPv4 als auch unter IPv6 
           udp46      UDP sowohl unter IPv4 als auch unter IPv6 

   {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]

           wait|nowait gibt an, ob der von inetd aktivierte Daemon
           seinen eigenen Socket verwalten kann oder nicht.
           dgram-Sockets mu:ssen die Option wait verwenden, wa:hrend
           Daemonen mit Stream-Sockets, die normalerweise auch aus
           mehreren Threads bestehen, die Option nowait verwenden
           sollten. Die Option wait gibt in der Regel mehrere Sockets
           an einen einzelnen Daemon weiter, wa:hrend nowait fu:r
           jeden neuen Socket einen Childdaemon erzeugt.

           Die maximale Anzahl an Child-Daemonen, die inetd erzeugen
           kann, wird durch die Option max-child festgelegt. Wenn ein
           bestimmter Daemon 10 Instanzen beno:tigt, sollte der Wert
           /10 hinter die Option nowait gesetzt werden. Geben Sie
           hingegen den Wert /0 an, gibt es keine Beschra:nkung.

           Zusa:tzlich zu max-child kann die maximale Anzahl von
           Verbindungen eines Rechners mit einem bestimmten Daemon
           durch zwei weitere Optionen beschra:nkt werden. Die Option
           max-connections-per-ip-per-minute legt die maximale Anzahl
           von Verbindungsversuchen fest, die von einer bestimmten
           IP-Adresse aus unternommen werden ko:nnen. Ein Wert von
           zehn wu:rde die maximale Anzahl von Verbindungsversuchen
           einer IP-Adresse mit einem bestimmten Dienst auf zehn
           Versuche in der Minute beschra:nken. Durch die Angabe der
           Option max-child-per-ip ko:nnen Sie hingegen festlegen,
           wie viele Child-Daemonen von einer bestimmten IP-Adresse
           aus gestartet werden ko:nnen. Durch diese Optionen lassen
           sich ein absichtlicher oder unabsichtlicher
           Ressourcenverbrauch sowie die Auswirkungen eines Denial of
           Service (DoS)-Angriffs auf einen Rechner begrenzen.

           Sie mu:ssen hier entweder wait oder nowait angeben. Die
           Angabe von max-child, max-connections-per-ip-per-minute
           und max-child-per-ip ist hingegen optional.

           Ein multithread-Daemon vom Streamtyp ohne die Optionen
           max-child, max-connections-per-ip-per-minute oder
           max-child-per-ip sieht so aus: nowait

           Der gleiche Daemon mit einer maximal mo:glichen Anzahl von
           10 parallelen Daemonen wu:rde so aussehen: nowait/10

           Wird zusa:tzlich die Anzahl der mo:glichen Verbindungen
           pro Minute fu:r jede IP-Adresse auf 20 sowie die mo:gliche
           Gesamtzahl von Childdaemonen auf 10 begrenzt, so sieht der
           Eintrag so aus: nowait/10/20

           All diese Optionen werden vom fingerd(8)-Daemon bereits in
           der Voreinstellung verwendet:

 finger stream  tcp     nowait/3/10 nobody /usr/libexec/fingerd fingerd -s

           Will man die maximale Anzahl von Child-Daemonen auf 100
           beschra:nken, wobei von jeder IP-Adresse aus maximal 5
           Child-Daemonen gestartet werden du:rfen, verwendet man den
           folgenden Eintrag: nowait/100/0/5.

   user

           Der Benutzername, unter dem der jeweilige Daemon laufen
           soll. Meistens laufen Daemonen als User root. Aus
           Sicherheitsgru:nden laufen einige Server aber auch als
           User daemon, oder als am wenigsten privilegierter User
           nobody.

   server-program

           Der vollsta:ndige Pfad des Daemons, der eine Verbindung
           entgegennimmt. Wird der Daemon von inetd intern
           bereitgestellt, sollte die Option internal verwendet
           werden.

   server-program-arguments

           Dieser Eintrag legt (gemeinsam mit server-program und
           beginnend mit argv[0]), die Argumente fest, die bei der
           Aktivierung an den Daemon u:bergeben werden. Wenn die
           Anweisung auf der Kommandozeile also mydaemon -d lautet,
           wa:re mydaemon -d auch der Wert der Option server program
           arguments. Wenn es sich beim Daemon um einen internen
           Dienst handelt, sollte wiederum die Option internal
           verwendet werden.

     --------------------------------------------------------------

  30.2.5. Sicherheit

   Abha:ngig von der bei der Installation festgelegten Konfiguration
   werden viele der von inetd verwalteten Dienste automatisch
   aktiviert! Wenn Sie einen bestimmten Daemon nicht beno:tigen,
   sollten Sie ihn deaktivieren! Dazu kommentieren Sie den jeweiligen
   Daemon in /etc/inetd.conf mit einem "#" aus, um danach die
   inetd-Konfiguration neu einzulesen. Einige Daemonen, zum Beispiel
   fingerd, sollten generell deaktiviert werden, da sie zu viele
   Informationen an einen potentiellen Angreifer liefern.

   Einige Daemonen haben unsichere Einstellungen, etwa grosse oder
   nichtexistierende Timeouts fu:r Verbindungsversuche, die es einem
   Angreifer erlauben, u:ber lange Zeit langsam Verbindungen zu einem
   bestimmten Daemon aufzubauen, um dessen verfu:gbare Ressourcen zu
   verbrauchen. Es ist daher eine gute Idee, diese Daemonen durch die
   Optionen max-connections-per-ip-per-minute, max-child sowie
   max-child-per-ip zu beschra:nken, wenn Sie sehr viele
   Verbindungsversuche mit Ihrem System registrieren.

   TCP-Wrapping ist in der Voreinstellung aktiviert. Lesen Sie
   hosts_access(5), wenn Sie weitere Informationen zum Setzen von
   TCP-Beschra:nkungen fu:r verschiedene von inetd aktivierte
   Daemonen beno:tigen.

     --------------------------------------------------------------

  30.2.6. Verschiedenes

   Bei daytime, time, echo, discard, chargen, und auth handelt es
   sich um intern von inetd bereitgestellte Dienste.

   Der auth-Dienst bietet Identifizierungsdienste u:ber das Netzwerk
   an und ist bis zu einem bestimmten Grad konfigurierbar, wa:hrend
   die meisten anderen Dienste nur aktiviert oder deaktiviert werden
   ko:nnen.

   Eine ausfu:hrliche Beschreibung finden Sie in inetd(8).

     --------------------------------------------------------------

30.3. NFS - Network File System

   Reorganisiert und erweitert von Tom Rhodes. Geschrieben von Bill
   Swingle.

   Eines der vielen von FreeBSD unterstu:tzten Dateisysteme ist das
   Netzwerkdateisystem, das auch als NFS bekannt ist. NFS ermo:glicht
   es einem System, Dateien und Verzeichnisse u:ber ein Netzwerk mit
   anderen zu teilen. U:ber NFS ko:nnen Benutzer und Programme auf
   Daten entfernter Systeme zugreifen, und zwar genauso, wie wenn es
   sich um lokale Daten handeln wu:rde.

   Einige der wichtigsten Vorteile von NFS sind:

     * Lokale Arbeitsstationen beno:tigen weniger Plattenplatz, da
       gemeinsam benutzte Daten nur auf einem einzigen Rechner
       vorhanden sind. Alle anderen Stationen greifen u:ber das
       Netzwerk auf diese Daten zu.

     * Benutzer beno:tigen nur noch ein zentrales Heimatverzeichnis
       auf einem NFS-Server. Diese Verzeichnisse sind u:ber das
       Netzwerk auf allen Stationen verfu:gbar.

     * Speichergera:te wie Disketten-, CD-ROM- oder Zip(R)-Laufwerke
       ko:nnen u:ber das Netzwerk von anderen Arbeitstationen genutzt
       werden. Dadurch sind fu:r das gesamte Netzwerk deutlich
       weniger Speichergera:te no:tig.

     --------------------------------------------------------------

  30.3.1. Wie funktioniert NFS?

   NFS besteht aus zwei Hauptteilen: Einem Server und einem oder
   mehreren Clients. Der Client greift u:ber das Netzwerk auf die
   Daten zu, die auf dem Server gespeichert sind. Damit dies korrekt
   funktioniert, mu:ssen einige Prozesse konfiguriert und gestartet
   werden:

   Der Server beno:tigt folgende Daemonen:

   Daemon                         Beschreibung                        
   nfsd    Der NFS-Daemon. Er bearbeitet Anfragen der NFS-Clients.    
   mountd  Der NFS-Mount-Daemon. Er bearbeitet die Anfragen, die      
           nfsd(8) an ihn weitergibt.                                 
   rpcbind Der Portmapper-Daemon. Durch ihn erkennen die NFS-Clients, 
           welchen Port der NFS-Server verwendet.                     

   Der Client kann ebenfalls einen Daemon aufrufen, und zwar den
   nfsiod-Daemon. Der nfsiod-Daemon bearbeitet Anfragen vom
   NFS-Server. Er ist optional und verbessert die Leistung des
   Netzwerks. Fu:r eine normale und korrekte Arbeit ist er allerdings
   nicht erforderlich. Mehr erfahren Sie in der Hilfeseite nfsiod(8).

     --------------------------------------------------------------

  30.3.2. NFS einrichten

   NFS la:sst sich leicht einrichten. Die no:tigen Prozesse werden
   durch einige A:nderungen in /etc/rc.conf bei jedem Systemstart
   gestartet.

   Stellen Sie sicher, dass auf dem NFS-Server folgende Optionen in
   der Datei /etc/rc.conf gesetzt sind:

 rpcbind_enable="YES"
 nfs_server_enable="YES"
 mountd_flags="-r"

   mountd la:uft automatisch, wenn der NFS-Server aktiviert ist.

   Auf dem Client muss in /etc/rc.conf folgende Option gesetzt sein:

 nfs_client_enable="YES"

   /etc/exports legt fest, welche Dateisysteme NFS exportieren
   (manchmal auch als "teilen" bezeichnet) soll. Jede Zeile in
   /etc/exports legt ein Dateisystem sowie die Arbeitsstationen, die
   darauf Zugriff haben, fest. Ausserdem ist es mo:glich,
   Zugriffsoptionen festzulegen. Es gibt viele verschiedene Optionen,
   allerdings werden hier nur einige von ihnen erwa:hnt. Wenn Sie
   Informationen zu weiteren Optionen beno:tigen, lesen Sie
   exports(5).

   Nun folgen einige Beispieleintra:ge fu:r /etc/exports:

   Die folgenden Beispiele geben Ihnen Anhaltspunkte zum Exportieren
   von Dateisystemen, obwohl diese Einstellungen natu:rlich von Ihrer
   Arbeitsumgebung und Ihrer Netzwerkkonfiguration abha:ngen. Das
   na:chste Beispiel exportiert das Verzeichnis /cdrom fu:r drei
   Rechner, die sich in derselben Doma:ne wie der Server befinden
   oder fu:r die entsprechende Eintra:ge in /etc/hosts existieren.
   Die Option -ro kennzeichnet das exportierte Dateisystem als
   schreibgeschu:tzt. Durch dieses Flag ist das entfernte System
   nicht in der Lage, das exportierte Dateisystem zu vera:ndern.

 /cdrom -ro host1 host2 host3

   Die na:chste Zeile exportiert /home auf drei durch IP-Adressen
   bestimmte Rechner. Diese Einstellung ist nu:tzlich, wenn Sie u:ber
   ein privates Netzwerk ohne DNS-Server verfu:gen. Optional ko:nnten
   interne Rechnernamen auch in /etc/hosts konfiguriert werden.
   Beno:tigen Sie hierzu weitere Informationen, lesen Sie bitte
   hosts(5). Durch das Flag -alldirs wird es mo:glich, auch
   Unterverzeichnisse als Mountpunkte festzulegen. Dies bedeutet aber
   nicht, dass alle Unterverzeichnisse eingeha:ngt werden, vielmehr
   wird es dem Client ermo:glicht, nur diejenigen Verzeichnisse
   einzuha:ngen, die auch beno:tigt werden.

 /home  -alldirs  10.0.0.2 10.0.0.3 10.0.0.4

   Die na:chste Zeile exportiert /a, damit Clients von verschiedenen
   Doma:nen auf das Dateisystem zugreifen ko:nnen. Das
   -maproot=root-Flag erlaubt es dem Benutzer root des entfernten
   Systems, als root auf das exportierte Dateisystem zu schreiben.
   Wenn dieses Flag nicht gesetzt ist, kann selbst root nicht auf das
   exportierte Dateisystem schreiben.

 /a  -maproot=root  host.example.com box.example.org

   Damit ein Client auf ein exportiertes Dateisystem zugreifen kann,
   muss ihm dies explizit gestattet werden. Stellen Sie also sicher,
   dass der Client in /etc/exports aufgefu:hrt wird.

   Jede Zeile in /etc/exports entspricht der Exportinformation fu:r
   ein Dateisystem auf einen Rechner. Ein entfernter Rechner kann
   fu:r jedes Dateisystem nur einmal festgelegt werden, und kann auch
   nur einen Standardeintrag haben. Nehmen wir an, dass /usr ein
   einziges Dateisystem ist. Dann wa:ren folgende Zeilen ungu:ltig:

 #Nicht erlaubt, wenn /usr ein einziges Dateisystem ist
 /usr/src   client
 /usr/ports client

   Das Dateisystem /usr wird hier zweimal auf den selben Rechner
   (client) exportiert. Dies ist aber nicht zula:ssig. Der korrekte
   Eintrag sieht daher so aus:

 /usr/src /usr/ports  client

   Die Eigenschaften eines auf einen anderen Rechner exportierten
   Dateisystems mu:ssen alle in einer Zeile stehen. Zeilen, in denen
   kein Rechner festgelegt wird, werden als einzelner Rechner
   behandelt. Dies schra:nkt die Mo:glichkeiten zum Export von
   Dateisystemen ein, fu:r die meisten Anwender ist dies aber kein
   Problem.

   Eine gu:ltige Exportliste, in der /usr und /exports lokale
   Dateisysteme sind, sieht so aus:

 # Export src and ports to client01 and client02, but only
 # client01 has root privileges on it
 /usr/src /usr/ports -maproot=root    client01
 /usr/src /usr/ports                  client02
 # The client machines have root and can mount anywhere
 # on /exports. Anyone in the world can mount /exports/obj read-only
 /exports -alldirs -maproot=root      client01 client02
 /exports/obj -ro

   Der Daemon mountd muss die Datei /etc/exports nach jeder A:nderung
   neu einlesen, damit die A:nderungen wirksam werden. Dies kann
   durch das Senden des HUP-Signals an den mountd-Prozess erfolgen:

 # kill -HUP `cat /var/run/mountd.pid`

   Alternativ ko:nnen Sie das mountd-rc(8)-Skript auch mit dem
   passenden Parameter aufrufen:

 # /etc/rc.d/mountd onereload

   Lesen Sie bitte Abschnitt 12.7 des Handbuchs fu:r Informationen
   zum Einsatz der rc-Skripte.

   Eine weitere Mo:glichkeit, diese A:nderungen zu u:bernehmen, wa:re
   der Neustart des Systems. Dies ist allerdings nicht no:tig. Wenn
   Sie die folgenden Befehle als root ausfu:hren, sollte alles
   korrekt gestartet werden.

   Auf dem NFS-Server:

 # rpcbind
 # nfsd -u -t -n 4
 # mountd -r

   Auf dem NFS-Client:

 # nfsiod -n 4

   Nun sollte alles bereit sein, um ein entferntes Dateisystem
   einha:ngen zu ko:nnen. In unseren Beispielen nennen wir den Server
   server, den Client client. Wenn Sie ein entferntes Dateisystem nur
   zeitweise einha:ngen wollen, oder nur Ihre Konfiguration testen
   mo:chten, fu:hren Sie auf dem Client als root einen Befehl
   a:hnlich dem folgenden aus:

 # mount server:/home /mnt

   Dadurch wird das Verzeichnis /home des Servers auf dem Client
   unter /mnt eingeha:ngt. Wenn alles korrekt konfiguriert wurde,
   sehen Sie auf dem Client im Verzeichnis /mnt alle Dateien des
   Servers.

   Wenn Sie ein entferntes Dateisystem nach jedem Systemstart
   automatisch einha:ngen wollen, fu:gen Sie das Dateisystem in
   /etc/fstab ein. Dazu ein Beispiel:

 server:/home    /mnt    nfs     rw      0       0

   Eine Beschreibung aller Optionen entha:lt die Hilfeseite fstab(5).

     --------------------------------------------------------------

  30.3.3. Dateien sperren (Locking)

   Einige Anwendungen (beispielsweise mutt) erfordern die Sperrung
   von Dateien, damit sie korrekt arbeiten. Verwenden Sie NFS, so
   ko:nnen Sie fu:r die Sperrung von Dateien rpc.lockd einsetzen. Um
   diesen Daemon zu aktivieren, mu:ssen Sie in /etc/rc.conf (sowohl
   auf Client- als auch auf Serverseite) folgende Zeilen aufnehmen
   (wobei vorausgesetzt wird, dasss NFS auf beiden Systemen bereits
   konfiguriert ist):

 rpc_lockd_enable="YES"
 rpc_statd_enable="YES"

   Danach starten Sie die Anwendung zur Verwaltung der Dateisperren
   durch folgenden Befehl:

 # /etc/rc.d/lockd start
 # /etc/rc.d/statd start

   Beno:tigen Sie keine echten Dateisperren zwischen den NFS-Clients
   und dem NFS-Server, ko:nnen Sie den NFS-Client durch die U:bergabe
   der Option -L an mount_nfs(8) zu einer lokalen Sperrung von
   Dateien zwingen. Lesen Sie dazu auch die Manualpage mount_nfs(8).

     --------------------------------------------------------------

  30.3.4. Praktische Anwendungen

   NFS ist in vielen Situationen nu:tzlich. Einige Anwendungsbereiche
   finden Sie in der folgenden Liste:

     * Mehrere Maschinen ko:nnen sich ein CD-ROM-Laufwerk oder andere
       Medien teilen. Dies ist billiger und ausserdem praktischer, um
       Programme auf mehreren Rechnern zu installieren.

     * In gro:sseren Netzwerken ist es praktisch, einen zentralen
       NFS-Server einzurichten, auf dem die Heimatverzeichnisse der
       Benutzer gespeichert werden. Diese Heimatverzeichnisse werden
       u:ber das Netzwerk exportiert. Dadurch haben die Benutzer
       immer das gleiche Heimatverzeichnis zur Verfu:gung,
       unabha:ngig davon, an welchem Arbeitsplatz sie sich anmelden.

     * Verschiedene Rechner ko:nnen auf ein gemeinsames Verzeichnis
       /usr/ports/distfiles zugreifen. Wenn Sie nun einen Port auf
       mehreren Rechnern installieren wollen, greifen Sie einfach auf
       dieses Verzeichnis zu, ohne die Quelldateien auf jede Maschine
       zu kopieren.

     --------------------------------------------------------------

  30.3.5. AMD

   Beigetragen von Wylie Stilwell. U:berarbeitet von Chern Lee.

   amd(8) (Automatic Mounter Daemon) ha:ngt ein entferntes
   Dateisystem automatisch ein, wenn auf eine Datei oder ein
   Verzeichnis in diesem Dateisystem zugegriffen wird. Dateisysteme,
   die u:ber einen gewissen Zeitraum inaktiv sind, werden von amd
   automatisch abgeha:ngt. amd ist eine einfache Alternative zum
   dauerhaften Einha:ngen von Dateisystemen in /etc/fstab.

   In der Voreinstellung stellt amd die Verzeichnisse /host und /net
   als NFS-Server bereit. Wenn auf eine Datei in diesen
   Verzeichnissen zugegriffen wird, sucht amd den entsprechenden
   Mountpunkt und ha:ngt das Dateisystem automatisch ein. /net wird
   zum Einha:ngen von exportierten Dateisystemen von einer IP-Adresse
   verwendet, wa:hrend /host zum Einha:ngen von exportierten
   Dateisystemen eines durch seinen Namen festgelegten Rechners
   dient.

   Ein Zugriff auf eine Datei in /host/foobar/usr wu:rde amd
   veranlassen, das von foobar exportierte Dateisystem /usr
   einzuha:ngen.

   Beispiel 30-2. Ein exportiertes Dateisystem mit amd in den
   Verzeichnisbaum einha:ngen

   Sie ko:nnen sich die verfu:gbaren Mountpunkte eines entfernten
   Rechners mit showmount ansehen. Wollen Sie sich die Mountpunkte
   des Rechners foobar ansehen, so verwenden Sie:

 % showmount -e foobar
 Exports list on foobar:
 /usr                               10.10.10.0
 /a                                 10.10.10.0
 % cd /host/foobar/usr

   Wie Sie an diesem Beispiel erkennen ko:nnen, zeigt showmount /usr
   als exportiertes Dateisystem an. Wenn man in das Verzeichnis
   /host/foobar/usr wechselt, versucht amd den Rechnernamen foobar
   aufzulo:sen und den gewu:nschten Export in den Verzeichnisbaum
   einzuha:ngen.

   amd kann durch das Einfu:gen der folgenden Zeile in /etc/rc.conf
   automatisch gestartet werden:

 amd_enable="YES"

   Mit der Option amd_flags kann amd angepasst werden. Die
   Voreinstellung fu:r amd_flags sieht so aus:

 amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"

   /etc/amd.map legt die Standardoptionen fest, mit denen exportierte
   Dateisysteme in den Verzeichnisbaum eingeha:ngt werden.
   /etc/amd.conf hingegen legt einige der erweiterten Optionen von
   amd fest.

   Weitere Informationen finden Sie in den Hilfeseiten amd(8) und
   amd.conf(5).

     --------------------------------------------------------------

  30.3.6. Integrationsprobleme mit anderen Systemen

   Beigetragen von John Lind.

   Bestimmte ISA-Ethernetadapter haben Beschra:nkungen, die zu
   ernsthaften Netzwerkproblemen, insbesondere mit NFS fu:hren
   ko:nnen. Es handelt sich dabei nicht um ein FreeBSD-spezifisches
   Problem, aber FreeBSD-Systeme sind davon ebenfalls betroffen.

   Das Problem tritt fast ausschliesslich dann auf, wenn
   (FreeBSD)-PC-Systeme mit Hochleistungsrechnern verbunden werden,
   wie Systemen von Silicon Graphics, Inc. oder Sun Microsystems,
   Inc. Das Einha:ngen via NFS funktioniert problemlos, auch einige
   Dateioperationen ko:nnen erfolgreich sein. Plo:tzlich aber wird
   der Server nicht mehr auf den Client reagieren, obwohl Anfragen
   von anderen Rechnern weiterhin bearbeitet werden. Dieses Problem
   betrifft stets den Client, egal ob es sich beim Client um das
   FreeBSD-System oder den Hochleistungsrechner handelt. Auf vielen
   Systemen gibt es keine Mo:glichkeit mehr, den Client
   ordnungsgema:ss zu beenden. Die einzige Lo:sung ist es oft, den
   Rechner neu zu starten, da dieses NFS-Problem nicht mehr behoben
   werden kann.

   Die "korrekte" Lo:sung fu:r dieses Problem ist es, sich eine
   schnellere Ethernetkarte fu:r FreeBSD zu kaufen. Allerdings gibt
   es auch eine einfache und meist zufriedenstellende Lo:sung, um
   dieses Problem zu umgehen. Wenn es sich beim FreeBSD-System um den
   Server handelt, verwenden Sie beim Einha:ngen in den
   Verzeichnisbaum auf der Clientseite zusa:tzlich die Option -w=1024
   . Wenn es sich beim FreeBSD-System um den Client handelt, dann
   ha:ngen Sie das NFS-Dateisystem mit der zusa:tzlichen Option
   -r=1024 ein. Diese Optionen ko:nnen auf der Clientseite auch durch
   das vierte Feld der Eintra:ge in /etc/fstab festgelegt werden,
   damit die Dateisysteme automatisch eingeha:ngt werden. Um die
   Dateisysteme manuell einzuha:ngen, verwendet man bei mount(8)
   zusa:tzlich die Option -o.

   Es gibt ein anderes Problem, das oft mit diesem verwechselt wird.
   Dieses andere Problem tritt auf, wenn sich u:ber NFS verbundene
   Server und Clients in verschiedenen Netzwerken befinden. Wenn dies
   der Fall ist, stellen Sie sicher, dass Ihre Router die no:tigen
   UDP-Informationen weiterleiten, oder Sie werden nirgends
   hingelangen, egal was Sie machen.

   In den folgenden Beispielen ist fastws der Name des
   Hochleistungsrechners (bzw. dessen Schnittstelle), freebox
   hingegen ist der Name des FreeBSD-Systems, das u:ber eine
   Netzkarte mit geringer Leistung verfu:gt. /sharedfs ist das
   exportierte NFS -Dateisystem (lesen Sie dazu auch exports(5)). Bei
   /project handelt es sich um den Mountpunkt, an dem das exportierte
   Dateisystem auf der Clientseite eingeha:ngt wird. In allen Fa:llen
   ko:nnen zusa:tzliche Optionen, wie z.B. hard, soft oder bg
   wu:nschenswert sein.

   FreeBSD als Client (eingetragen in /etc/fstab auf freebox):

 fastws:/sharedfs /project nfs rw,-r=1024 0 0

   Manuelles Einha:ngen auf freebox:

 # mount -t nfs -o -r=1024 fastws:/sharedfs /project

   FreeBSD als Server (eingetragen in /etc/fstab auf fastws):

 freebox:/sharedfs /project nfs rw,-w=1024 0 0

   Manuelles Einha:ngen auf fastws:

 # mount -t nfs -o -w=1024 freebox:/sharedfs /project

   Nahezu alle 16-bit Ethernetadapter erlauben Operationen ohne
   obengenannte Einschra:nkungen auf die Lese- oder Schreibgro:sse.

   Fu:r alle technisch Interessierten wird nun beschrieben, was
   passiert, wenn dieser Fehler auftritt, und warum er irreversibel
   ist. NFS arbeitet u:blicherweise mit einer "Blockgro:sse" von
   8 kByte (obwohl es kleinere Fragmente zulassen wu:rde). Da die
   maximale Rahmengro:sse von Ethernet 1500 Bytes betra:gt, wird der
   NFS-"Block" in einzelne Ethernetrahmen aufgeteilt, obwohl es sich
   nach wie vor um eine Einheit handelt, die auch als Einheit
   empfangen, verarbeitet und besta:tigt werden muss. Der
   Hochleistungsrechner verschickt die Pakete, aus denen der
   NFS-Block besteht, so eng hintereinander, wie es der Standard
   erlaubt. Auf der anderen Seite (auf der sich die langsamere
   Netzkarte befindet), u:berschreiben die spa:teren Pakete ihre
   Vorga:nger, bevor diese vom System verarbeitet werden
   (U:berlauf!). Dies hat zur Folge, dass der NFS-Block nicht mehr
   rekonstruiert und besta:tigt werden kann. Als Folge davon glaubt
   der Hochleistungsrechner, dass der andere Rechner nicht erreichbar
   ist (Timeout!) und versucht die Sendung zu wiederholen. Allerdings
   wird wiederum der komplette NFS-Block verschickt, so dass sich der
   ganze Vorgang wiederholt, und zwar immer wieder (oder bis zum
   Systemneustart).

   Indem wir die Einheitengro:sse unter der maximalen Gro:sse der
   Ethernetpakete halten, ko:nnen wir sicherstellen, dass jedes
   vollsta:ndig erhaltene Ethernetpaket individuell angesprochen
   werden kann und vermeiden die Blockierung des Systems.

   U:berla:ufe ko:nnen zwar nach wie vor auftreten, wenn ein
   Hochleistungsrechner Daten auf ein PC-System transferiert. Durch
   die besseren (und schnelleren) Netzkarten treten solche
   U:berla:ufe allerdings nicht mehr zwingend auf, wenn
   NFS-"Einheiten" u:bertragen werden. Tritt nun ein U:berlauf auf,
   wird die betroffene Einheit erneut verschickt, und es besteht eine
   gute Chance, dass sie nun erhalten, verarbeitet und besta:tigt
   werden kann.

     --------------------------------------------------------------

30.4. NIS/YP - Network Information Service

   Beigetragen von Bill Swingle. Erweitert von Eric Ogren und Udo
   Erdelhoff.

  30.4.1. Was ist NIS?

   NIS wurde von Sun Microsystems entwickelt, um UNIX-Systeme
   (urspru:nglich SunOS) zentral verwalten zu ko:nnen. Mittlerweile
   hat es sich zu einem Industriestandard entwickelt, der von allen
   wichtigen UNIX-Systemen (Solaris, HP-UX, AIX(R), Linux, NetBSD,
   OpenBSD, FreeBSD und anderen) unterstu:tzt wird.

   NIS war urspru:nglich als Yellow Pages bekannt, aus
   markenrechtlichen Gru:nden wurde der Name aber gea:ndert. Die alte
   Bezeichnung (sowie die Abku:rzung YP) wird aber nach wie vor
   ha:ufig verwendet.

   Bei NIS handelt es sich um ein RPC-basiertes Client/Server-System.
   Eine Gruppe von Rechnern greift dabei innerhalb einer NIS-Doma:ne
   auf gemeinsame Konfigurationsdateien zu. Ein Systemadministrator
   wird dadurch in die Lage versetzt, NIS-Clients mit minimalem
   Aufwand einzurichten, sowie A:nderungen an der Systemkonfiguration
   von einem zentralen Ort aus durchzufu:hren.

   Die Funktion entspricht dem Doma:nensystem von Windows NT(R); auch
   wenn sich die interne Umsetzung unterscheidet, sind die
   Basisfunktionen vergleichbar.

     --------------------------------------------------------------

  30.4.2. Wichtige Prozesse und Begriffe

   Es gibt verschiedene Begriffe und Anwenderprozesse, auf die Sie
   stossen werden, wenn Sie NIS unter FreeBSD einrichten, egal ob Sie
   einen Server oder einen Client konfigurieren:

       Begriff                        Beschreibung                    
                    Ein NIS-Masterserver sowie alle Clients           
   NIS-Doma:nenname (inklusive der Slaveserver) haben einen           
                    NIS-Doma:nennamen. Dieser hat (a:hnlich den       
                    Windows NT-Doma:nennamen) nichts mit DNS zu tun.  
                    Muss laufen, damit RPC (Remote Procedure Call,    
   rpcbind          ein von NIS verwendetes Netzwerkprotokoll)        
                    funktioniert. NIS-Server sowie Clients            
                    funktionieren ohne rpcbind nicht.                 
                    "Bindet" einen NIS-Client an seinen NIS-Server.   
                    Der Client bezieht den NIS-Doma:nennamen vom      
                    System und stellt u:ber das RPC-Protokoll eine    
                    Verbindung zum NIS-Server her. ypbind ist der     
   ypbind           zentrale Bestandteil der                          
                    Client-Server-Kommunikation in einer              
                    NIS-Umgebung. Wird >ypbind auf einem Client       
                    beendet, ist dieser nicht mehr in der Lage, auf   
                    den NIS-Server zuzugreifen.                       
                    Sollte nur auf dem NIS-Server laufen, da es sich  
                    um den Serverprozess selbst handelt. Wenn         
                    ypserv(8) nicht mehr la:uft, kann der Server      
                    nicht mehr auf NIS-Anforderungen reagieren (wenn  
                    ein Slaveserver existiert, kann dieser als Ersatz 
                    fungieren). Einige NIS-Systeme (allerdings nicht  
   ypserv           das von FreeBSD) versuchen allerdings erst gar    
                    nicht, sich mit einem anderen Server zu           
                    verbinden, wenn der bisher verwendete Server      
                    nicht mehr reagiert. Die einzige Lo:sung dieses   
                    Problems besteht dann darin, den Serverprozess    
                    (oder gar den Server selbst) oder den             
                    ypbind-Prozess auf dem Client neu zu starten.     
                    Ein weiterer Prozess, der nur auf dem             
                    NIS-Masterserver laufen sollte. Es handelt sich   
   rpc.yppasswdd    um einen Daemonprozess, der es NIS-Clients        
                    ermo:glicht, sich auf dem NIS-Masterserver        
                    anzumelden, um ihr Passwort zu a:ndern.           

     --------------------------------------------------------------

  30.4.3. Wie funktioniert NIS?

   In einer NIS-Umgebung gibt es drei Rechnerarten: Masterserver,
   Slaveserver und Clients. Server dienen als zentraler Speicherort
   fu:r Rechnerkonfigurationen. Masterserver speichern die
   massgebliche Kopie dieser Informationen, wa:hrend Slaveserver
   diese Informationen aus Redundanzgru:nden spiegeln. Die Clients
   beziehen ihre Informationen immer vom Server.

   Auf diese Art und Weise ko:nnen Informationen aus verschiedenen
   Dateien von mehreren Rechnern gemeinsam verwendet werden.
   master.passwd, group, und hosts werden oft gemeinsam u:ber NIS
   verwendet. Immer, wenn ein Prozess auf einem Client auf
   Informationen zugreifen will, die normalerweise in lokalen Dateien
   vorhanden wa:ren, wird stattdessen eine Anfrage an den NIS-Server
   gestellt, an den der Client gebunden ist.

     --------------------------------------------------------------

    30.4.3.1. Arten von NIS-Rechnern

     * Ein NIS-Masterserver verwaltet, a:hnlich einem
       Windows NT-Doma:nencontroller, die von allen NIS-Clients
       gemeinsam verwendeten Dateien. passwd, group, sowie
       verschiedene andere von den Clients verwendete Dateien
       existieren auf dem Masterserver.

         Anmerkung: Ein Rechner kann auch fu:r mehrere NIS-Doma:nen
         als Masterserver fungieren. Dieser Abschnitt konzentriert
         sich im Folgenden allerdings auf eine relativ kleine
         NIS-Umgebung.

     * NIS-Slaveserver. A:hnlich einem
       Windows NT-Backupdoma:nencontroller, verwalten NIS-Slaveserver
       Kopien der Daten des NIS-Masterservers. NIS-Slaveserver bieten
       die Redundanz, die fu:r kritische Umgebungen beno:tigt wird.
       Zusa:tzlich entlasten Slaveserver den Masterserver:
       NIS-Clients verbinden sich immer mit dem NIS-Server, der
       zuerst reagiert. Dieser Server kann auch ein Slaveserver sein.

     * NIS-Clients. NIS-Clients identifizieren sich gegenu:ber dem
       NIS-Server (a:hnlich den Windows NT-Workstations), um sich am
       Server anzumelden.

     --------------------------------------------------------------

  30.4.4. NIS/YP konfigurieren

   Dieser Abschnitt beschreibt an Hand eines Beispiels die
   Einrichtung einer NIS-Umgebung.

     --------------------------------------------------------------

    30.4.4.1. Planung

   Nehmen wir an, Sie seien der Administrator eines kleinen
   Universita:tsnetzes. Dieses Netz besteht aus fu:nfzehn
   FreeBSD-Rechnern, fu:r die derzeit keine zentrale Verwaltung
   existiert, jeder Rechner hat also eine eigene Version von
   /etc/passwd und /etc/master.passwd. Diese Dateien werden manuell
   synchron gehalten; legen Sie einen neuen Benutzer an, so muss dies
   auf allen fu:nfzehn Rechnern manuell erledigt werden (unter
   Verwendung von adduser). Da diese Lo:sung sehr ineffizient ist,
   soll das Netzwerk in Zukunft NIS verwenden, wobei zwei der Rechner
   als Server dienen sollen.

   In Zukunft soll das Netz also wie folgt aussehen:

     Rechnername       IP-Adresse             Rechneraufgabe          
   ellington        10.0.0.2          NIS-Master                      
   coltrane         10.0.0.3          NIS-Slave                       
   basie            10.0.0.4          Workstation der Fakulta:t       
   bird             10.0.0.5          Clientrechner                   
   cli[1-11]        10.0.0.[6-17]     Verschiedene andere Clients     

   Wenn Sie NIS das erste Mal einrichten, ist es ratsam, sich zuerst
   u:ber die Vorgangsweise Gedanken zu machen. Unabha:ngig von der
   Gro:sse Ihres Netzwerks mu:ssen Sie stets einige Entscheidungen
   treffen.

     --------------------------------------------------------------

      30.4.4.1.1. Einen NIS-Doma:nennamen wa:hlen

   Dies muss nicht der "Domainname" sein. Es handelt sich vielmehr um
   den "NIS-Domainnamen". Wenn ein Client Informationen anfordert,
   ist in dieser Anforderung der Name der NIS-Doma:ne enthalten.
   Dadurch weiss jeder Server im Netzwerk, auf welche Anforderung er
   antworten muss. Stellen Sie sich den NIS-Doma:nennamen als den
   Namen einer Gruppe von Rechnern vor, die etwas gemeinsam haben.

   Manchmal wird der Name der Internetdoma:ne auch fu:r die
   NIS-Doma:ne verwendet. Dies ist allerdings nicht empfehlenswert,
   da dies bei der Behebung von Problemen verwirrend sein kann. Der
   Name der NIS-Doma:ne sollte innerhalb Ihres Netzwerks einzigartig
   sein. Hilfreich ist es, wenn der Name die Gruppe der in ihr
   zusammengefassten Rechner beschreibt. Die Kunstabteilung von Acme
   Inc. ha:tte daher die NIS-Doma:ne "acme-art". Fu:r unser Beispiel
   verwenden wir den NIS-Doma:nennamen test-domain.

   Es gibt jedoch auch Betriebssysteme (vor allem SunOS), die als
   NIS-Doma:nennamen den Name der Internetdoma:ne verwenden. Wenn
   dies fu:r einen oder mehrere Rechner Ihres Netzwerks zutrifft,
   mu:ssen Sie den Namen der Internetdoma:ne als Ihren
   NIS-Doma:nennamen verwenden.

     --------------------------------------------------------------

      30.4.4.1.2. Anforderungen an den Server

   Wenn Sie einen NIS-Server einrichten wollen, mu:ssen Sie einige
   Dinge beachten. Eine unangenehme Eigenschaft von NIS ist die
   Abha:ngigkeit der Clients vom Server. Wenn sich der Client nicht
   u:ber den Server mit seiner NIS-Doma:ne verbinden kann, wird der
   Rechner oft unbenutzbar, da das Fehlen von Benutzer- und
   Gruppeninformationen zum Einfrieren des Clients fu:hrt. Daher
   sollten Sie fu:r den Server einen Rechner auswa:hlen, der nicht
   regelma:ssig neu gestartet werden muss und der nicht fu:r
   Testversuche verwendet wird. Idealerweise handelt es sich um einen
   alleinstehenden Rechner, dessen einzige Aufgabe es ist, als
   NIS-Server zu dienen. Wenn Sie ein Netzwerk haben, das nicht zu
   stark ausgelastet ist, ist es auch mo:glich, den NIS-Server als
   weiteren Dienst auf einem anderen Rechner laufen zu lassen. Denken
   Sie aber daran, dass ein Ausfall des NIS-Servers alle NIS-Clients
   betrifft.

     --------------------------------------------------------------

    30.4.4.2. NIS-Server

   Die verbindlichen Kopien aller NIS-Informationen befinden sich auf
   einem einzigen Rechner, dem NIS-Masterserver. Die Datenbanken, in
   denen die Informationen gespeichert sind, bezeichnet man als
   NIS-Maps. Unter FreeBSD werden diese Maps unter
   /var/yp/[domainname] gespeichert, wobei [domainname] der Name der
   NIS-Doma:ne ist. Ein einzelner NIS-Server kann gleichzeitig
   mehrere NIS-Doma:nen verwalten, daher ko:nnen auch mehrere
   Verzeichnisse vorhanden sein. Jede Doma:ne verfu:gt u:ber ein
   eigenes Verzeichnis sowie einen eigenen, von anderen Doma:nen
   unabha:ngigen Satz von NIS-Maps.

   NIS-Master- und Slaveserver verwenden den ypserv-Daemon, um
   NIS-Anfragen zu bearbeiten. ypserv empfa:ngt eingehende Anfragen
   der NIS-Clients, ermittelt aus der angeforderten Doma:ne und Map
   einen Pfad zur entsprechenden Datenbank, und sendet die
   angeforderten Daten von der Datenbank zum Client.

     --------------------------------------------------------------

      30.4.4.2.1. Einen NIS-Masterserver einrichten

   Abha:ngig von Ihren Anforderungen ist die Einrichtung eines
   NIS-Masterservers relativ einfach, da NIS von FreeBSD bereits in
   der Standardkonfiguration unterstu:tzt wird. Sie mu:ssen nur
   folgende Zeilen in /etc/rc.conf einfu:gen:

    1. nisdomainname="test-domain"

       Diese Zeile setzt den NIS-Doma:nennamen auf test-domain, wenn
       Sie das Netzwerk initialisieren (beispielsweise nach einem
       Systemstart).

    2. nis_server_enable="YES"

       Dadurch werden die NIS-Serverprozesse gestartet.

    3. nis_yppasswdd_enable="YES"

       Durch diese Zeile wird der rpc.yppasswdd-Daemon aktiviert,
       der, wie bereits erwa:hnt, die A:nderung von NIS-Passwo:rtern
       von einem Client aus ermo:glicht.

     Anmerkung: In Abha:ngigkeit von Ihrer NIS-Konfiguration ko:nnen
     weitere Eintra:ge erforderlich sein. Weitere Informationen
     finden Sie im Abschnitt NIS-Server, die auch als NIS-Clients
     arbeiten.

   Nachdem Sie obige Parameter konfiguriert haben, mu:ssen Sie nur
   noch /etc/netstart als Superuser ausfu:hren, um alles entsprechend
   Ihren Vorgaben in der Datei /etc/rc.conf einzurichten. Bevor Sie
   die NIS-Maps einrichten ko:nnen, mu:ssen Sie nun noch den
   ypserv-Daemon manuell starten:

 # /etc/rc.d/ypserv start

     --------------------------------------------------------------

      30.4.4.2.2. Die NIS-Maps initialisieren

   NIS-Maps sind Datenbanken, die sich im Verzeichnis /var/yp
   befinden. Sie werden am NIS-Masterserver aus den
   Konfigurationsdateien unter /etc erzeugt. Einzige Ausnahme:
   /etc/master.passwd. Dies ist auch sinnvoll, da Sie die Passwo:rter
   fu:r Ihr root- oder andere Administratorkonten nicht an alle
   Server der NIS-Doma:ne verteilen wollen. Bevor Sie also die
   NIS-Maps des Masterservers einrichten, sollten Sie Folgendes tun:

 # cp /etc/master.passwd /var/yp/master.passwd
 # cd /var/yp
 # vi master.passwd

   Entfernen Sie alle Systemkonten (wie bin, tty, kmem oder games),
   sowie alle Konten, die Sie nicht an die NIS-Clients weitergeben
   wollen (beispielsweise root und alle Konten mit der UID 0
   (=Superuser).

     Anmerkung: Stellen Sie sicher, dass /var/yp/master.passwd weder
     von der Gruppe noch von der Welt gelesen werden kann
     (Zugriffsmodus 600)! Ist dies nicht der Fall, a:ndern Sie dies
     mit chmod.

   Nun ko:nnen Sie die NIS-Maps initialisieren. FreeBSD verwendet
   dafu:r das Skript ypinit (lesen Sie dazu auch ypinit(8)). Dieses
   Skript ist auf fast allen UNIX-Betriebssystemen verfu:gbar. Bei
   Digitals Unix/Compaq Tru64 UNIX nennt es sich allerdings ypsetup.
   Da wir Maps fu:r einen NIS-Masterserver erzeugen, verwenden wir
   ypinit mit der Option -m. Nachdem Sie die beschriebenen Aktionen
   durchgefu:hrt haben, erzeugen Sie nun die NIS-Maps:

 ellington# ypinit -m test-domain
 Server Type: MASTER Domain: test-domain
 Creating an YP server will require that you answer a few questions.
 Questions will all be asked at the beginning of the procedure.
 Do you want this procedure to quit on non-fatal errors? [y/n: n] n
 Ok, please remember to go back and redo manually whatever fails.
 If you don't, something might not work.
 At this point, we have to construct a list of this domains YP servers.
 rod.darktech.org is already known as master server.
 Please continue to add any slave servers, one per line. When you are
 done with the list, type a <control D>.
 master server   :  ellington
 next host to add:  coltrane
 next host to add:  ^D
 The current list of NIS servers looks like this:
 ellington
 coltrane
 Is this correct?  [y/n: y] y

 [..output from map generation..]

 NIS Map update completed.
 ellington has been setup as an YP master server without any errors.

   Dadurch erzeugt ypinit /var/yp/Makefile aus der Datei
   /var/yp/Makefile.dist. Durch diese Datei wird festgelegt, dass Sie
   in einer NIS-Umgebung mit nur einem Server arbeiten und dass alle
   Clients unter FreeBSD laufen. Da test-domain aber auch u:ber einen
   Slaveserver verfu:gt, mu:ssen Sie /var/yp/Makefile entsprechend
   anpassen:

 ellington# vi /var/yp/Makefile

   Sie sollten die Zeile

 NOPUSH = "True"

   auskommentieren (falls dies nicht bereits der Fall ist).

     --------------------------------------------------------------

      30.4.4.2.3. Einen NIS-Slaveserver einrichten

   Ein NIS-Slaveserver ist noch einfacher einzurichten als ein
   Masterserver. Melden Sie sich am Slaveserver an und a:ndern Sie
   /etc/rc.conf analog zum Masterserver. Der einzige Unterschied
   besteht in der Verwendung der Option -s, wenn Sie ypinit aufrufen.
   Die Option -s erfordert den Namen des NIS-Masterservers, daher
   sieht unsere Ein- und Ausgabe wie folgt aus:

 coltrane# ypinit -s ellington test-domain

 Server Type: SLAVE Domain: test-domain Master: ellington

 Creating an YP server will require that you answer a few questions.
 Questions will all be asked at the beginning of the procedure.

 Do you want this procedure to quit on non-fatal errors? [y/n: n]  n

 Ok, please remember to go back and redo manually whatever fails.
 If you don't, something might not work.
 There will be no further questions. The remainder of the procedure
 should take a few minutes, to copy the databases from ellington.
 Transferring netgroup...
 ypxfr: Exiting: Map successfully transferred
 Transferring netgroup.byuser...
 ypxfr: Exiting: Map successfully transferred
 Transferring netgroup.byhost...
 ypxfr: Exiting: Map successfully transferred
 Transferring master.passwd.byuid...
 ypxfr: Exiting: Map successfully transferred
 Transferring passwd.byuid...
 ypxfr: Exiting: Map successfully transferred
 Transferring passwd.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring group.bygid...
 ypxfr: Exiting: Map successfully transferred
 Transferring group.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring services.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring rpc.bynumber...
 ypxfr: Exiting: Map successfully transferred
 Transferring rpc.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring protocols.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring master.passwd.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring networks.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring networks.byaddr...
 ypxfr: Exiting: Map successfully transferred
 Transferring netid.byname...
 ypxfr: Exiting: Map successfully transferred
 Transferring hosts.byaddr...
 ypxfr: Exiting: Map successfully transferred
 Transferring protocols.bynumber...
 ypxfr: Exiting: Map successfully transferred
 Transferring ypservers...
 ypxfr: Exiting: Map successfully transferred
 Transferring hosts.byname...
 ypxfr: Exiting: Map successfully transferred

 coltrane has been setup as an YP slave server without any errors.
 Don't forget to update map ypservers on ellington.

   Sie sollten nun u:ber das Verzeichnis /var/yp/test-domain
   verfu:gen. Die Kopien der NIS-Masterserver-Maps sollten sich in
   diesem Verzeichnis befinden. Allerdings mu:ssen Sie diese auch
   aktuell halten. Die folgenden Eintra:ge in /etc/crontab erledigen
   diese Aufgabe:

 20      *       *       *       *       root   /usr/libexec/ypxfr passwd.byname
 21      *       *       *       *       root   /usr/libexec/ypxfr passwd.byuid

   Diese zwei Zeilen zwingen den Slaveserver, seine Maps mit denen
   des Masterservers zu synchronisieren. Diese Eintra:ge sind nicht
   zwar nicht unbedingt no:tig, da der Masterserver automatisch
   versucht, alle A:nderungen seiner NIS-Maps an seine Slaveserver
   weiterzugeben. Da Passwortinformationen aber auch fu:r nur vom
   Slaveserver abha:ngige Systeme vital sind, ist es eine gute Idee,
   diese Aktualisierungen zu erzwingen. Besonders wichtig ist dies in
   stark ausgelasteten Netzen, in denen Map-Aktualisierungen
   unvollsta:ndig sein ko:nnten.

   Fu:hren Sie nun /etc/netstart auch auf dem Slaveserver aus, um den
   NIS-Server erneut zu starten.

     --------------------------------------------------------------

    30.4.4.3. NIS-Clients

   Ein NIS-Client bindet sich unter Verwendung des ypbind-Daemons an
   einen NIS-Server. ypbind pru:ft die Standarddoma:ne des Systems
   (die durch domainname gesetzt wird), und beginnt RPCs u:ber das
   lokale Netzwerk zu verteilen (broadcast). Diese Anforderungen
   legen den Namen der Doma:ne fest, fu:r die ypbind eine Bindung
   erzeugen will. Wenn der Server der entsprechenden Doma:ne eine
   solche Anforderung erha:lt, schickt er eine Antwort an ypbind.
   ybind speichert daraufhin die Adresse des Servers. Wenn mehrere
   Server verfu:gbar sind (beispielsweise ein Master- und mehrere
   Slaveserver), verwendet ypbind die erste erhaltene Adresse. Ab
   diesem Zeitpunkt richtet der Client alle Anfragen an genau diesen
   Server. ypbind "pingt" den Server gelegentlich an, um
   sicherzustellen, dass der Server funktioniert. Antwortet der
   Server innerhalb eines bestimmten Zeitraums nicht (Timeout),
   markiert ypbind die Doma:ne als ungebunden und beginnt erneut,
   RPCs u:ber das Netzwerk zu verteilen, um einen anderen Server zu
   finden.

     --------------------------------------------------------------

      30.4.4.3.1. Einen NIS-Client konfigurieren

   Einen FreeBSD-Rechner als NIS-Client einzurichten, ist recht
   einfach.

    1. Fu:gen Sie folgende Zeilen in /etc/rc.conf ein, um den
       NIS-Doma:nennamen festzulegen, und um ypbind bei der
       Initialisierung des Netzwerks zu starten:

 nisdomainname="test-domain"
 nis_client_enable="YES"

    2. Um alle Passworteintra:ge des NIS-Servers zu importieren,
       lo:schen Sie alle Benutzerkonten in /etc/master.passwd und
       fu:gen mit vipw folgende Zeile am Ende der Datei ein:

 +:::::::::

         Anmerkung: Diese Zeile legt fu:r alle gu:ltigen
         Benutzerkonten der NIS-Server-Maps einen Zugang an. Es gibt
         verschiedene Wege, Ihren NIS-Client durch A:nderung dieser
         Zeile zu konfigurieren. Lesen Sie dazu auch den Abschnitt
         u:ber Netzgruppen weiter unten. Weitere detaillierte
         Informationen finden Sie im Buch Managing NFS and NIS von
         O'Reilly.

         Anmerkung: Sie sollten zumindest ein lokales Benutzerkonto,
         das nicht u:ber NIS importiert wird, in Ihrer
         /etc/master.passwd behalten. Dieser Benutzer sollte
         ausserdem ein Mitglied der Gruppe wheel sein. Wenn es mit
         NIS Probleme gibt, ko:nnen Sie diesen Zugang verwenden, um
         sich anzumelden, root zu werden und das Problem zu beheben.

    3. Um alle mo:glichen Gruppeneintra:ge vom NIS-Server zu
       importieren, fu:gen sie folgende Zeile in /etc/group ein:

 +:*::

   Um den NIS-Client sofort zu starten, fu:hren Sie als Superuser die
   folgenden Befehle aus:

 # /etc/netstart
 # /etc/rc.d/ypbind start

   Nachdem Sie diese Schritte erledigt haben, sollten Sie mit ypcat
   passwd die passwd-Map des NIS-Servers anzeigen ko:nnen.

     --------------------------------------------------------------

  30.4.5. Sicherheit unter NIS

   Im Allgemeinen kann jeder entfernte Anwender einen RPC an
   ypserv(8) schicken, um den Inhalt Ihrer NIS-Maps abzurufen, falls
   er Ihren NIS-Doma:nennamen kennt. Um solche unautorisierten
   Transaktionen zu verhindern, unterstu:tzt ypserv(8) "securenets",
   durch die man den Zugriff auf bestimmte Rechner beschra:nken kann.
   ypserv(8) versucht, beim Systemstart die Informationen u:ber
   securenets aus der Datei /var/yp/securenets zu laden.

     Anmerkung: Die Datei securenets kann auch in einem anderen
     Verzeichnis stehen, das mit der Option -p angegeben wird. Diese
     Datei entha:lt Eintra:ge, die aus einer Netzwerkadresse und
     einer Netzmaske bestehen, die durch Leerzeichen getrennt werden.
     Kommentarzeilen beginnen mit "#". /var/yp/securnets ko:nnte
     beispielsweise so aussehen:

 # allow connections from local host -- mandatory
 127.0.0.1     255.255.255.255
 # allow connections from any host
 # on the 192.168.128.0 network
 192.168.128.0 255.255.255.0
 # allow connections from any host
 # between 10.0.0.0 to 10.0.15.255
 # this includes the machines in the testlab
 10.0.0.0      255.255.240.0

   Wenn ypserv(8) eine Anforderung von einer zu diesen Regeln
   passenden Adresse erha:lt, wird die Anforderung bearbeitet. Gibt
   es keine passende Regel, wird die Anforderung ignoriert und eine
   Warnmeldung aufgezeichnet. Wenn /var/yp/securenets nicht vorhanden
   ist, erlaubt ypserv Verbindungen von jedem Rechner aus.

   ypserv unterstu:tzt auch das TCP-Wrapper-Paket von Wietse Venema.
   Mit diesem Paket kann der Administrator fu:r Zugriffskontrollen
   die Konfigurationsdateien von TCP-Wrapper anstelle von
   /var/yp/securenets verwenden.

     Anmerkung: Wa:hrend beide Kontrollmechanismen einige Sicherheit
     gewa:hren, beispielsweise durch privilegierte Ports, sind sie
     gegenu:ber "IP spoofing"-Attacken verwundbar. Jeder NIS-Verkehr
     sollte daher von Ihrer Firewall blockiert werden.

     Server, die /var/yp/securenets verwenden, ko:nnen
     Schwierigkeiten bei der Anmeldung von Clients haben, die ein
     veraltetes TCP/IP-Subsystem besitzen. Einige dieser
     TCP/IP-Subsysteme setzen alle Rechnerbits auf Null, wenn Sie
     einen Broadcast durchfu:hren und/oder ko:nnen die Subnetzmaske
     nicht auslesen, wenn sie die Broadcast-Adresse berechnen. Einige
     Probleme ko:nnen durch A:nderungen der Clientkonfiguration
     behoben werden. Andere hingegen lassen sich nur durch das
     Entfernen des betreffenden Rechners aus dem Netzwerk oder den
     Verzicht auf /var/yp/securenets umgehen.

     Die Verwendung von /var/yp/securenets auf einem Server mit einem
     solch veralteten TCP/IP-Subsystem ist eine sehr schlechte Idee,
     die zu einem Verlust der NIS-Funktionalita:t fu:r grosse Teile
     Ihres Netzwerks fu:hren kann.

     Die Verwendung der TCP-Wrapper verlangsamt die Reaktion Ihres
     NIS-Servers. Diese zusa:tzliche Reaktionszeit kann in
     Clientprogrammen zu Timeouts fu:hren. Dies vor allem in
     Netzwerken, die stark ausgelastet sind, oder nur u:ber langsame
     NIS-Server verfu:gen. Wenn ein oder mehrere Ihrer Clientsysteme
     dieses Problem aufweisen, sollten Sie die betreffenden Clients
     in NIS-Slaveserver umwandeln, und diese an sich selbst binden.

     --------------------------------------------------------------

  30.4.6. Bestimmte Benutzer an der Anmeldung hindern

   In unserem Labor gibt es den Rechner basie, der nur fu:r
   Mitarbeiter der Fakulta:t bestimmt ist. Wir wollen diesen Rechner
   nicht aus der NIS-Doma:ne entfernen, obwohl passwd des
   NIS-Masterservers Benutzerkonten sowohl fu:r Fakulta:tsmitarbeiter
   als auch fu:r Studenten entha:lt. Was ko:nnen wir also tun?

   Es gibt eine Mo:glichkeit, bestimmte Benutzer an der Anmeldung an
   einem bestimmten Rechner zu hindern, selbst wenn diese in der
   NIS-Datenbank vorhanden sind. Dazu mu:ssen Sie lediglich an diesem
   Rechner den Eintrag -Benutzername an das Ende von
   /etc/master.passwd setzen, wobei Benutzername der zu blockierende
   Benutzername ist. Diese A:nderung sollte bevorzugt durch vipw
   erledigt werden, da vipw Ihre A:nderungen an /etc/master.passwd
   auf Plausibilita:t u:berpru:ft und nach erfolgter A:nderung die
   Passwortdatenbank automatisch aktualisiert. Um also den Benutzer
   bill an der Anmeldung am Rechner basie zu hindern, gehen wir wie
   folgt vor:

 basie# vipw
 [add -bill to the end, exit]
 vipw: rebuilding the database...
 vipw: done

 basie# cat /etc/master.passwd

 root:[password]:0:0::0:0:The super-user:/root:/bin/csh
 toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
 daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
 operator:*:2:5::0:0:System &:/:/sbin/nologin
 bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
 tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
 kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
 games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
 news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
 man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
 bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
 uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
 xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
 pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
 nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
 +:::::::::
 -bill

 basie#

     --------------------------------------------------------------

  30.4.7. Netzgruppen verwenden

   Beigetragen von Udo Erdelhoff.

   Die im letzten Abschnitt beschriebene Methode eignet sich
   besonders, wenn Sie spezielle Regeln fu:r wenige Benutzer oder
   wenige Rechner beno:tigen. In grossen Netzwerken werden Sie
   allerdings mit Sicherheit vergessen, einige Benutzer von der
   Anmeldung an bestimmten Rechnern auszuschliessen. Oder Sie werden
   gezwungen sein, jeden Rechner einzeln zu konfigurieren. Dadurch
   verlieren Sie aber den Hauptvorteil von NIS, die zentrale
   Verwaltung.

   Die Lo:sung fu:r dieses Problem sind Netzgruppen. Ihre Aufgabe und
   Bedeutung ist vergleichbar mit normalen, von UNIX-Dateisystemen
   verwendeten Gruppen. Die Hauptunterschiede sind das Fehlen einer
   numerischen ID sowie die Mo:glichkeit, Netzgruppen zu definieren,
   die sowohl Benutzer als auch andere Netzgruppen enthalten.

   Netzgruppen wurden entwickelt, um grosse, komplexe Netzwerke mit
   Hunderten Benutzern und Rechnern zu verwalten. Sie sind also von
   Vorteil, wenn Sie von dieser Situation betroffen sind.
   Andererseits ist es dadurch beinahe unmo:glich, Netzgruppen mit
   einfachen Beispielen zu erkla:ren. Das hier verwendete Beispiel
   veranschaulicht dieses Problem.

   Nehmen wir an, dass Ihre erfolgreiche Einfu:hrung von NIS die
   Aufmerksamkeit Ihrer Vorgesetzten geweckt hat. Ihre na:chste
   Aufgabe besteht nun darin, Ihre NIS-Doma:ne um zusa:tzliche
   Rechner zu erweitern. Die folgenden Tabellen enthalten die neuen
   Benutzer und Rechner inklusive einer kurzen Beschreibung.

         Benutzername(n)                    Beschreibung              
   alpha, beta                 Bescha:ftigte der IT-Abteilung         
   charlie, delta              Die neuen Lehrlinge der IT-Abteilung   
   echo, foxtrott, golf, ...   Normale Mitarbeiter                    
   able, baker, ...            Externe Mitarbeiter                    

         Rechnername(n)                    Beschreibung               
   war, death, famine,        Ihre wichtigsten Server. Nur            
   pollution                  IT-Fachleute du:rfen sich an diesen     
                              Rechnern anmelden.                      
   pride, greed, envy, wrath, Weniger wichtige Server. Alle           
   lust, sloth                Mitarbeiter der IT-Abteilung du:rfen    
                              sich auf diesen Rechnern anmelden.      
                              Gewo:hnliche Arbeitsrechner. Nur die    
   one, two, three, four, ... wirklichen Mitarbeiter du:rfen diese    
                              Rechner verwenden.                      
                              Ein sehr alter Rechner ohne kritische   
   trashcan                   Daten. Sogar externe Mitarbeiter        
                              du:rfen diesen Rechner verwenden.       

   Wollten Sie diese Einschra:nkungen umsetzen, indem Sie jeden
   Benutzer einzeln blockieren, mu:ssten Sie auf jedem System fu:r
   jeden Benutzer eine entsprechende Zeile in passwd einfu:gen. Wenn
   Sie nur einen Eintrag vergessen, haben Sie ein Problem. Es mag
   noch angehen, dies wa:hrend der ersten Installation zu erledigen,
   im ta:glichen Betrieb werden Sie allerdings mit Sicherheit einmal
   vergessen, die entsprechenden Eintra:ge anzulegen. Vergessen Sie
   nicht: Murphy war Optimist.

   Die Verwendung von Netzgruppen hat in dieser Situation mehrere
   Vorteile. Sie mu:ssen nicht jeden Benutzer einzeln verwalten;
   weisen Sie stattdessen den Benutzer einer Netzgruppe zu und
   erlauben oder verbieten Sie allen Mitglieder dieser Gruppe die
   Anmeldung an einem Server. Wenn Sie einen neuen Rechner
   hinzufu:gen, mu:ssen Sie Zugangsbeschra:nkungen nur fu:r die
   Netzgruppen festlegen. Legen Sie einen neuen Benutzer an, mu:ssen
   Sie ihn nur einer oder mehrere Netzgruppen zuweisen. Diese
   Vera:nderungen sind voneinander unabha:ngig; Anweisungen der Form
   "fu:r diese Kombination aus Benutzer und Rechner mache Folgendes
   ..." sind nicht mehr no:tig. Wenn Sie die Einrichtung von NIS
   sorgfa:ltig geplant haben, mu:ssen Sie nur noch eine zentrale
   Konfigurationsdatei bearbeiten, um den Zugriff auf bestimmte
   Rechner zu erlauben oder zu verbieten.

   Der erste Schritt ist die Initialisierung der NIS-Maps der
   Netzgruppe. ypinit(8) kann dies unter FreeBSD nicht automatisch
   durchfu:hren. Sind die Maps aber erst einmal erzeugt, werden sie
   jedoch von NIS problemlos unterstu:tzt. Um eine leere Map zu
   erzeugen, geben Sie Folgendes ein:

 ellington# vi /var/yp/netgroup

   Danach legen Sie die Eintra:ge an. Fu:r unser Beispiel beno:tigen
   wir mindestens vier Netzgruppen: IT-Bescha:ftige, IT-Lehrlinge,
   normale Bescha:ftigte sowie Externe.

 IT_EMP  (,alpha,test-domain)    (,beta,test-domain)
 IT_APP  (,charlie,test-domain)  (,delta,test-domain)
 USERS   (,echo,test-domain)     (,foxtrott,test-domain) \
         (,golf,test-domain)
 INTERNS (,able,test-domain)     (,baker,test-domain)

   Bei IT_EMP, IT_APP usw. handelt es sich um Netzgruppennamen. In
   den Klammern werden diesen Netzgruppen jeweils ein oder mehrere
   Benutzerkonten hinzugefu:gt. Die drei Felder in der Klammer haben
   folgende Bedeutung:

    1. Der Name des Rechners, auf dem die folgenden Werte gu:ltig
       sind. Legen Sie keinen Rechnernamen fest, ist der Eintrag auf
       allen Rechnern gu:ltig. Dadurch gehen Sie vielen Problemen aus
       dem Weg.

    2. Der Name des Benutzerkontos, der zu dieser Netzgruppe geho:rt.

    3. Die NIS-Doma:ne fu:r das Benutzerkonto. Sie ko:nnen
       Benutzerkonten von anderen NIS-Doma:nen in Ihre Netzgruppe
       importieren, wenn Sie mehrere NIS-Doma:nen verwalten.

   Jedes Feld kann Wildcards enthalten. Die Einzelheiten entnehmen
   Sie bitte netgroup(5).

     Anmerkung: Netzgruppennamen sollten nicht la:nger als 8 Zeichen
     sein, vor allem dann, wenn Sie Rechner mit verschiedenen
     Betriebssystemen in Ihrer NIS-Doma:ne haben. Es wird zwischen
     Gross- und Kleinschreibung unterschieden. Die Verwendung von
     Grossbuchstaben fu:r Netzgruppennamen ermo:glicht eine leichte
     Unterscheidung zwischen Benutzern, Rechnern und Netzgruppen.

     Einige NIS-Clients (dies gilt nicht fu:r FreeBSD) ko:nnen keine
     Netzgruppen mit einer grossen Anzahl von Eintra:gen verwalten.
     Einige a:ltere Versionen von SunOS haben beispielsweise
     Probleme, wenn Netzgruppen mehr als fu:nfzehn Eintra:ge
     enthalten. Sie ko:nnen dieses Problem umgehen, indem Sie mehrere
     Subnetzgruppen mit weniger als fu:nfzehn Benutzern anlegen und
     diese Subnetzgruppen wiederum in einer Netzgruppe
     zusammenfassen:

 BIGGRP1  (,joe1,domain)  (,joe2,domain)  (,joe3,domain) [...]
 BIGGRP2  (,joe16,domain)  (,joe17,domain) [...]
 BIGGRP3  (,joe31,domain)  (,joe32,domain)
 BIGGROUP  BIGGRP1 BIGGRP2 BIGGRP3

     Sie ko:nnen diesen Vorgang wiederholen, wenn Sie mehr als 255
     Benutzer in einer einzigen Netzgruppe beno:tigen.

   Das Aktivieren und Verteilen Ihre neuen NIS-Map ist einfach:

 ellington# cd /var/yp
 ellington# make

   Dadurch werden die NIS-Maps netgroup, netgroup.byhost und
   netgroup.byuser erzeugt. Pru:fen Sie die Verfu:gbarkeit Ihrer
   neuen NIS-Maps mit ypcat(1).

 ellington% ypcat -k netgroup
 ellington% ypcat -k netgroup.byhost
 ellington% ypcat -k netgroup.byuser

   Die Ausgabe des ersten Befehls gibt den Inhalt von
   /var/yp/netgroup wieder. Der zweite Befehl erzeugt nur dann eine
   Ausgabe, wenn Sie rechnerspezifische Netzgruppen erzeugt haben.
   Der dritte Befehl gibt die Netzgruppen nach Benutzern sortiert
   aus.

   Die Einrichtung der Clients ist einfach. Sie mu:ssen lediglich auf
   dem Server war vipw(8) aufrufen und die Zeile

 +:::::::::

   durch

 +@IT_EMP:::::::::

   ersetzen.

   Ab sofort werden nur noch die Daten der in der Netzgruppe IT_EMP
   vorhandenen Benutzer in die Passwortdatenbank von war importiert.
   Nur diese Benutzer du:rfen sich am Server anmelden.

   Unglu:cklicherweise gilt diese Einschra:nkung auch fu:r die
   ~-Funktion der Shell und fu:r alle Routinen, die auf Benutzernamen
   und numerische Benutzer-IDs zugreifen. Oder anders formuliert, cd
   ~user ist nicht mo:glich, ls -l zeigt die numerische Benutzer-ID
   statt dem Benutzernamen und find . -user joe -print erzeugt die
   Fehlermeldung "No such user". Um dieses Problem zu beheben,
   mu:ssen Sie alle Benutzereintra:ge importieren, ohne ihnen jedoch
   zu erlauben, sich an Ihrem Server anzumelden.

   Dazu fu:gen Sie eine weitere Zeile in /etc/master.passwd ein.
   Diese Zeile sollte a:hnlich der folgenden aussehen:

   +:::::::::/sbin/nologin, was in etwa "Importiere alle Eintra:ge,
   aber ersetze die Shell in den importierten Eintra:gen durch
   /sbin/nologin" entspricht. Sie ko:nnen jedes Feld dieses Eintrages
   ersetzen, indem Sie einen Standardwert in /etc/master.passwd
   eintragen.

     Warnung: Stellen Sie sicher, dass die Zeile
     +:::::::::/sbin/nologin nach der Zeile +@IT_EMP:::::::::
     eingetragen ist. Sonst haben alle via NIS importierten
     Benutzerkonten /sbin/nologin als Loginshell.

   Danach mu:ssen Sie nur mehr eine einzige NIS-Map a:ndern, wenn ein
   neuer Mitarbeiter beru:cksichtigt werden muss. Fu:r weniger
   wichtige Server gehen Sie analog vor, indem Sie den alten Eintrag
   +::::::::: in den lokalen Versionen von /etc/master.passwd durch
   folgende Eintra:ge ersetzen:

 +@IT_EMP:::::::::
 +@IT_APP:::::::::
 +:::::::::/sbin/nologin

   Die entsprechenden Zeilen fu:r normale Arbeitspla:tze lauten:

 +@IT_EMP:::::::::
 +@USERS:::::::::
 +:::::::::/sbin/nologin

   Ab jetzt wa:re alles wunderbar, allerdings a:ndert sich kurz
   darauf die Firmenpolitik: Die IT-Abteilung beginnt damit, externe
   Mitarbeiter zu bescha:ftigen. Externe du:rfen sich an normalen
   Arbeitspla:tzen sowie an den weniger wichtigen Servern anmelden.
   Die IT-Lehrlinge du:rfen sich nun auch an den Hauptservern
   anmelden. Sie legen also die neue Netzgruppe IT_INTERN an, weisen
   Ihr die neuen IT-Externen als Benutzer zu und beginnen damit, die
   Konfiguration auf jedem einzelnen Rechner zu a:ndern ... Halt. Sie
   haben gerade die alte Regel "Fehler in der zentralisierten Planung
   fu:hren zu globaler Verwirrung." besta:tigt.

   Da NIS in der Lage ist, Netzgruppen aus anderen Netzgruppen zu
   bilden, lassen sich solche Situationen leicht vermeiden. Eine
   Mo:glichkeit ist die Erzeugung rollenbasierter Netzgruppen. Sie
   ko:nnten eine Netzgruppe BIGSRV erzeugen, um den Zugang zu den
   wichtigsten Servern zu beschra:nken, eine weitere Gruppe SMALLSRV
   fu:r die weniger wichtigen Server und eine dritte Netzgruppe
   USERBOX fu:r die normalen Arbeitsplatzrechner. Jede dieser
   Netzgruppen entha:lt die Netzgruppen, die sich auf diesen Rechnern
   anmelden du:rfen. Die Eintra:ge der Netzgruppen in der NIS-Map
   sollten a:hnlich den folgenden aussehen:

 BIGSRV    IT_EMP  IT_APP
 SMALLSRV  IT_EMP  IT_APP  ITINTERN
 USERBOX   IT_EMP  ITINTERN USERS

   Diese Methode funktioniert besonders gut, wenn Sie Rechner in
   Gruppen mit identischen Beschra:nkungen einteilen ko:nnen.
   Unglu:cklicherweise ist dies die Ausnahme und nicht die Regel.
   Meistens werden Sie die Mo:glichkeit zur rechnerspezischen
   Zugangsbeschra:nkung beno:tigen.

   Rechnerspezifische Netzgruppen sind die zweite Mo:glichkeit, um
   mit den oben beschriebenen A:nderungen umzugehen. In diesem
   Szenario entha:lt /etc/master.passwd auf jedem Rechner zwei mit
   "+" beginnende Zeilen. Die erste Zeile legt die Netzgruppe mit den
   Benutzern fest, die sich auf diesem Rechner anmelden du:rfen. Die
   zweite Zeile weist allen anderen Benutzern /sbin/nologin als Shell
   zu. Verwenden Sie auch hier (analog zu den Netzgruppen)
   Grossbuchstaben fu:r die Rechnernamen. Die Zeilen sollten also
   a:hnlich den folgenden aussehen:

 +@BOXNAME:::::::::
 +:::::::::/sbin/nologin

   Wenn Sie dies fu:r alle Rechner erledigt haben, werden Sie die
   lokalen Versionen von /etc/master.passwd nie mehr vera:ndern
   mu:ssen. Alle weiteren A:nderungen geschehen u:ber die NIS-Maps.
   Nachfolgend ein Beispiel fu:r eine mo:gliche Netzgruppen-Map, die
   durch einige Besonderheiten erweitert wurde:

 # Define groups of users first
 IT_EMP    (,alpha,test-domain)    (,beta,test-domain)
 IT_APP    (,charlie,test-domain)  (,delta,test-domain)
 DEPT1     (,echo,test-domain)     (,foxtrott,test-domain)
 DEPT2     (,golf,test-domain)     (,hotel,test-domain)
 DEPT3     (,india,test-domain)    (,juliet,test-domain)
 ITINTERN  (,kilo,test-domain)     (,lima,test-domain)
 D_INTERNS (,able,test-domain)     (,baker,test-domain)
 #
 # Now, define some groups based on roles
 USERS     DEPT1   DEPT2     DEPT3
 BIGSRV    IT_EMP  IT_APP
 SMALLSRV  IT_EMP  IT_APP    ITINTERN
 USERBOX   IT_EMP  ITINTERN  USERS
 #
 # And a groups for a special tasks
 # Allow echo and golf to access our anti-virus-machine
 SECURITY  IT_EMP  (,echo,test-domain)  (,golf,test-domain)
 #
 # machine-based netgroups
 # Our main servers
 WAR       BIGSRV
 FAMINE    BIGSRV
 # User india needs access to this server
 POLLUTION  BIGSRV  (,india,test-domain)
 #
 # This one is really important and needs more access restrictions
 DEATH     IT_EMP
 #
 # The anti-virus-machine mentioned above
 ONE       SECURITY
 #
 # Restrict a machine to a single user
 TWO       (,hotel,test-domain)
 # [...more groups to follow]
      

   Wenn Sie eine Datenbank verwenden, um Ihre Benutzerkonten zu
   verwalten, sollten Sie den ersten Teil der NIS-Map mit Ihren
   Datenbanktools erstellen ko:nnen. Auf diese Weise haben neue
   Benutzer automatisch Zugriff auf die Rechner.

   Eine letzte Warnung: Es ist nicht immer ratsam, rechnerbasierte
   Netzgruppen zu verwenden. Wenn Sie Dutzende oder gar Hunderte
   identische Rechner einrichten mu:ssen, sollten Sie rollenbasierte
   Netzgruppen verwenden, um die Gro:sse der NISs-Maps in Grenzen zu
   halten.

     --------------------------------------------------------------

  30.4.8. Weitere wichtige Punkte

   Nachdem Sie Ihre NIS-Umgebung eingerichtet haben, mu:ssen Sie
   einige Dinge anders als bisher erledigen.

     * Jedes Mal, wenn Sie einen neuen Benutzer anlegen wollen, tun
       Sie dies ausschliesslich am NIS-Masterserver. Ausserdem
       mu:ssen Sie anschliessend die NIS-Maps neu erzeugen. Wenn Sie
       diesen Punkt vergessen, kann sich der neue Benutzer nur am
       NIS-Masterserver anmelden. Wenn Sie also den neuen Benutzer
       jsmith anlegen, gehen Sie folgerndermassen vor:

 # pw useradd jsmith
 # cd /var/yp
 # make test-domain

       Statt pw useradd jsmith ko:nnten Sie auch adduser jsmith
       verwenden.

     * Tragen Sie die Administratorkonten nicht in die NIS-Maps ein.
       Administratorkonten und Passwo:rter du:rfen nicht auf Rechnern
       verbreitet werden, auf denen sich Benutzer anmelden ko:nnen,
       die auf diese Konten keine Zugriff haben sollen.

     * Sichern Sie die NIS-Master- und Slaveserver und minimieren Sie
       die Ausfallzeiten. Wenn diese Rechner gehackt oder einfach nur
       ausgeschaltet werden, haben viele Leute keinen Netzwerkzugriff
       mehr.

       Dies ist die gro:sste Schwa:che jeder zentralen Verwaltung.
       Wenn Sie Ihre NIS-Server nicht schu:tzen, werden Sie viele
       vera:rgerte Anwender haben.

     --------------------------------------------------------------

  30.4.9. Kompatibilita:t zu NIS v1

   ypserv unterstu:tzt NIS v1 unter FreeBSD nur eingeschra:nkt. Die
   NIS-Implementierung von FreeBSD verwendet nur NIS v2, andere
   Implementierungen unterstu:tzen aus Gru:nden der
   Abwa:rtskompatibilita:t mit a:lteren Systemen auch NIS v1. Die mit
   diesen Systemen gelieferten ypbind-Daemonen versuchen, sich an
   einen NIS-v1-Server zu binden (Dies selbst dann, wenn sie ihn nie
   beno:tigen. Ausserdem versuchen Sie auch dann, einen v1-Server zu
   erreichen, wenn Sie zuvor eine Antwort von einem v2-Server
   erhalten.). Wa:hrend normale Clientaufrufe unter FreeBSD
   unterstu:tzt werden, sind Anforderungen zum Transfer von v1-Maps
   nicht mo:glich. Daher kann FreeBSD nicht als Client oder Server
   verwendet werden, wenn ein NIS-Server vorhanden ist, der nur NIS
   v1 unterstu:tzt. Glu:cklicherweise sollte es heute keine Server
   mehr geben, die nur NIS v1 unterstu:tzen.

     --------------------------------------------------------------

  30.4.10. NIS-Server, die auch als NIS-Clients arbeiten

   Wenn Sie ypserv in einer Multi-Serverdoma:ne verwenden, in der
   NIS-Server gleichzeitig als NIS-Clients arbeiten, ist es eine gute
   Idee, diese Server zu zwingen, sich an sich selbst zu binden.
   Damit wird verhindert, dass Bindeanforderungen gesendet werden und
   sich die Server gegenseitig binden. Sonst ko:nnten seltsame Fehler
   auftreten, wenn ein Server ausfa:llt, auf den andere Server
   angewiesen sind. Letztlich werden alle Clients einen Timeout
   melden, und versuchen, sich an andere Server zu binden. Die
   dadurch entstehende Verzo:gerung kann betra:chtlich sein.
   Ausserdem kann der Fehler erneut auftreten, da sich die Server
   wiederum aneinander binden ko:nnten.

   Sie ko:nnen einen Rechner durch die Verwendung von ypbind sowie
   der Option -S zwingen, sich an einen bestimmten Server zu binden.
   Um diesen Vorgang zu automatisieren, ko:nnen Sie folgende Zeilen
   in /etc/rc.conf einfu:gen:

 nis_client_enable="YES" # run client stuff as well
 nis_client_flags="-S NIS domain,server"

   Lesen Sie ypbind(8), wenn Sie weitere Informationen beno:tigen.

     --------------------------------------------------------------

  30.4.11. Passwortformate

   Unterschiedliche Passwortformate sind das Hauptproblem, das beim
   Einrichten eines NIS-Servers auftreten kann. Wenn der NIS-Server
   mit DES verschlu:sselte Passwo:rter verwendet, werden nur Clients
   unterstu:tzt, die ebenfalls DES benutzen. Wenn sich auf Ihrem
   Netzwerk beispielsweise Solaris NIS-Clients befinden, mu:ssen die
   Passwo:rter mit DES verschlu:sselt werden.

   Welches Format die Server und Clients verwenden, steht in
   /etc/login.conf. Wenn ein System Passwo:rter mit DES
   verschlu:sselt, entha:lt die default-Klasse einen Eintrag wie den
   folgenden:

 default:\
         :passwd_format=des:\
         :copyright=/etc/COPYRIGHT:\
         [weitere Eintra:ge]

   Mo:gliche Werte fu:r passwd_format sind unter anderem blf und md5
   (mit Blowfish und MD5 verschlu:sselte Passwo:rter).

   Wenn die Datei /etc/login.conf gea:ndert wird, muss die
   Login-Capability Datenbank neu erstellt werden. Geben Sie dazu als
   root den folgenden Befehl ein:

 # cap_mkdb /etc/login.conf

     Anmerkung: Das Format der schon in /etc/master.passwd
     befindlichen Passwo:rter wird erst aktualisiert, wenn ein
     Benutzer sein Passwort a:ndert, nachdem die Datenbank neu
     erstellt wurde.

   Damit die Passwo:rter auch im gewa:hlten Format abgespeichert
   werden, muss mit crypt_default in der Datei /etc/auth.conf die
   richtige Priorita:t der Formate eingestellt werden. Das gewa:hlte
   Format sollte als Erstes in der Liste stehen. Sollen die
   Passwo:rter mit DES verschlu:sselt werden, verwenden Sie den
   folgenden Eintrag:

 crypt_default   =       des blf md5

   Wenn Sie alle FreeBSD NIS-Server und NIS-Clients entsprechend den
   obigen Schritten eingestellt haben, wird im ganzen Netzwerk
   dasselbe Passwortformat verwendet. Falls Sie Probleme mit der
   Authentifizierung eines NIS-Clients haben, kontrollieren Sie die
   verwendeten Passwortformate. In einer heterogenen Umgebung werden
   Sie DES benutzen mu:ssen, da dies der meist unterstu:tzte Standard
   ist.

     --------------------------------------------------------------

30.5. Automatische Netzwerkkonfiguration mit DHCP

   Geschrieben von Greg Sutter.

  30.5.1. Was ist DHCP?

   U:ber DHCP, das Dynamic Host Configuration Protocol, kann sich ein
   System mit einem Netzwerk verbinden und die fu:r die Kommunikation
   mit diesem Netzwerk no:tigen Informationen beziehen. FreeBSD
   verwendet den von OpenBSD 3.7 stammenden dhclient. Die
   Informationen in diesem Abschnitt beziehen sich daher sowohl auf
   den dhclient von ISC als auch auf den von OpenBSD. Als DHCP-Server
   wird in beiden Fa:llen der DHCP-Server der ISC-Distribution
   verwendet.

     --------------------------------------------------------------

  30.5.2. U:bersicht

   Dieser Abschnitt beschreibt sowohl die Clientseite des ISC- als
   auch des OpenBSD-Clients sowie die Serverseite des DHCP-Systems
   von ISC. Das Clientprogramm dhclient ist in FreeBSD integriert,
   das Serverprogramm kann u:ber den Port net/isc-dhcp42-server
   installiert werden. Weiter Informationen finden Sie in
   dhclient(8), dhcp-options(5) sowie dhclient.conf(5).

     --------------------------------------------------------------

  30.5.3. Wie funktioniert DHCP?

   Der DHCP-Client dhclient beginnt von einem Clientrechner aus u:ber
   den UDP-Port 68 Konfigurationsinformationen anzufordern. Der
   Server antwortet auf dem UDP-Port 67, indem er dem Client eine
   IP-Adresse zuweist und ihm weitere wichtige Informationen u:ber
   das Netzwerk, wie Netzmasken, Router und DNS-Server mitteilt.
   Diese Informationen werden als DHCP-Lease bezeichnet und sind nur
   fu:r eine bestimmte Zeit, die vom Administrator des DHCP-Servers
   vorgegeben wird, gu:ltig. Dadurch fallen verwaiste IP-Adressen,
   deren Clients nicht mehr mit dem Netzwerk verbunden sind,
   automatisch an den Server zuru:ck.

   DHCP-Clients ko:nnen sehr viele Informationen von einem
   DHCP-Server erhalten. Eine ausfu:hrliche Liste finden Sie in
   dhcp-options(5).

     --------------------------------------------------------------

  30.5.4. Integration in FreeBSD

   FreeBSD verwendet den DHCP-Client von OpenBSD. Sowohl wa:hrend der
   Installation als auch im Basissystem steht der DHCP-Client zur
   Verfu:gung. In Netzen mit DHCP-Servern wird dadurch die
   Konfiguration von Systemen erheblich vereinfacht.

   DHCP wird von sysinstall unterstu:tzt. Wenn Sie eine Netzwerkkarte
   mit sysinstall konfigurieren, lautet die zweite Frage "Do you want
   to try DHCP configuration of the interface?". Wenn Sie diese Frage
   bejahen, wird dhclient aufgerufen, und die Netzkarte wird
   automatisch eingerichtet.

   Um DHCP beim Systemstart zu aktivieren, mu:ssen Sie zwei Dinge
   erledigen:

     * Stellen Sie sicher, dass bpf in Ihren Kernel kompiliert ist.
       Dazu fu:gen Sie die Zeile device bpf in Ihre
       Kernelkonfigurationsdatei ein und erzeugen einen neuen Kernel.
       Weitere Informationen zur Kernelkonfiguration finden Sie in
       Kapitel 9 des Handbuchs.

       Das Gera:t bpf ist im GENERIC-Kernel bereits enthalten. Fu:r
       die Nutzung von DHCP muss also kein angepasster Kernel erzeugt
       werden.

         Anmerkung: Wenn Sie um die Sicherheit Ihres Systems besorgt
         sind, sollten Sie wissen, dass bpf auch zur Ausfu:hrung von
         Paketsniffern erforderlich ist (obwohl diese dennoch als
         root ausgefu:hrt werden mu:ssen). bpf muss vorhanden sein,
         damit DHCP funktioniert. Sind Sie sehr sicherheitsbewusst,
         sollten Sie bpf aus Ihrem Kernel entfernen, wenn Sie DHCP
         nicht verwenden.

     * Standardma:ssig la:uft die DHCP-Konfiguration bei FreeBSD im
       Hintergrund oder auch asynchron. Andere Startskripte laufen
       weiter, wa:hrend DHCP fertig abgearbeitet wird, was den
       Systemstart beschleunigt.

       DHCP im Hintergrund funktioniert gut, wenn der DHCP-Server
       schnell auf Anfragen antwortet und der
       DHCP-Konfigurationsprozess ebenso schnell abla:uft. Jedoch
       kann DHCP eine lange Zeit beno:tigen, um auf manchen Systemen
       fertig zu werden. Falls Netzwerkdienste versuchen, vor DHCP
       zum Ende zu kommen, werden diese fehlschlagen. Durch die
       Verwendung von DHCP im asynchronen-Modus wird das Problem
       verhindert, so dass die Startskripte pausiert werden, bis die
       DHCP-Konfiguration abgeschlossen ist.

       Um sich zu einem DHCP-Server im Hintergrund zu verbinden,
       wa:hrend andere Startskripte fortfahren (asynchroner Modus),
       benutzen Sie den "DHCP"-Wert in /etc/rc.conf:

 ifconfig_fxp0="DHCP"

       Um den Start zu pausieren, damit DHCP vorher abgeschlossen
       werden kann, benutzen Sie den synchronen Modus mit dem Eintrag
       "SYNCDHCP":

 ifconfig_fxp0="SYNCDHCP"

         Anmerkung: Ersetzen Sie fxp0, das in diesen Beispielen
         verwendet wurde, durch den Namen Ihrer
         Netzwerkschnittstelle, so wie es in Abschnitt 12.8
         beschrieben ist.

       Wenn Sie dhclient an einem anderen Ort installiert haben, oder
       zusa:tzliche Flags an dhclient u:bergeben wollen, fu:gen Sie
       auch folgende (entsprechend angepasste) Zeilen ein:

 dhclient_program="/sbin/dhclient"
 dhclient_flags=""

   Der DHCP-Server dhcpd ist als Teil des Ports net/isc-dhcp42-server
   verfu:gbar. Dieser Port entha:lt die komplette
   ISC-DHCP-Distribution, inklusive der Dokumentation.

     --------------------------------------------------------------

  30.5.5. Dateien

     * /etc/dhclient.conf

       dhclient beno:tigt die Konfigurationsdatei /etc/dhclient.conf.
       Diese Datei entha:lt normalerweise nur Kommentare, da die
       Vorgabewerte zumeist ausreichend sind. Lesen Sie dazu auch
       dhclient.conf(5).

     * /sbin/dhclient

       dhclient ist statisch gelinkt und befindet sich in /sbin.
       Weitere Informationen finden Sie in dhclient(8).

     * /sbin/dhclient-script

       Bei dhclient-script handelt es sich um das FreeBSD-spezifische
       Konfigurationsskript des DHCP-Clients. Es wird in
       dhclient-script(8) beschrieben und kann meist unvera:ndert
       u:bernommen werden.

     * /var/db/dhclient.leases

       Der DHCP-Client verfu:gt u:ber eine Datenbank, die alle
       derzeit gu:ltigen Leases entha:lt und als Logdatei erzeugt
       wird. Weitere Informationen finden Sie in dhclient(8).

     --------------------------------------------------------------

  30.5.6. Weitere Informationen

   Das DHCP-Protokoll wird vollsta:ndig im RFC 2131 beschrieben. Eine
   weitere, lehrreiche Informationsquelle existiert unter
   http://www.dhcp.org/.

     --------------------------------------------------------------

  30.5.7. Einen DHCP-Server installieren und einrichten

    30.5.7.1. U:bersicht

   Dieser Abschnitt beschreibt die Einrichtung eines FreeBSD-Systems
   als DHCP-Server. Dazu wird die DHCP-Implementation von ISC
   (Internet Systems Consortium) verwendet.

   Der DHCP-Server ist nicht im Basissystem von FreeBSD enthalten,
   daher mu:ssen Sie als Erstes den Port net/isc-dhcp42-server
   installieren. Lesen Sie Kapitel 5, wenn Sie weitere Informationen
   zur Ports-Sammlung beno:tigen.

     --------------------------------------------------------------

    30.5.7.2. Den DHCP-Server installieren

   Stellen Sie sicher, dass bpf(4) in Ihren Kernel kompiliert ist.
   Dazu fu:gen Sie die Zeile device bpf Ihre
   Kernelkonfigurationsdatei ein und erzeugen einen neuen Kernel. Die
   Kernelkonfiguration wird in Kapitel 9 beschrieben.

   Das Gera:t bpf ist im GENERIC-Kernel bereits enthalten. Fu:r die
   Nutzung von DHCP muss also kein angepasster Kernel erzeugt werden.

     Anmerkung: Wenn Sie um die Sicherheit Ihres Systems besorgt
     sind, sollten Sie wissen, dass bpf auch zur Ausfu:hrung von
     Paketsniffern erforderlich ist (obwohl diese dennoch als root
     ausgefu:hrt werden mu:ssen). bpf muss vorhanden sein, damit DHCP
     funktioniert. Sind Sie sehr sicherheitsbewusst, sollten Sie bpf
     aus Ihrem Kernel entfernen, wenn Sie DHCP nicht verwenden.

   Danach mu:ssen Sie die vom Port net/isc-dhcp42-server erzeugte
   Vorlage fu:r dhcpd.conf anpassen. Die bei der Installation
   erzeugte Datei /usr/local/etc/dhcpd.conf.sample sollten Sie nach
   /usr/local/etc/dhcpd.conf kopieren, bevor Sie Vera:nderungen
   vornehmen.

     --------------------------------------------------------------

    30.5.7.3. Den DHCP-Server einrichten

   dhcpd.conf besteht aus Festlegungen zu Subnetzen und Rechnern und
   la:sst sich am besten an einem Beispiel erkla:ren:

 option domain-name "example.com";(1)
 option domain-name-servers 192.168.4.100;(2)
 option subnet-mask 255.255.255.0;(3)

 default-lease-time 3600;(4)
 max-lease-time 86400;(5)
 ddns-update-style none;(6)

 subnet 192.168.4.0 netmask 255.255.255.0 {
   range 192.168.4.129 192.168.4.254;(7)
   option routers 192.168.4.1;(8)
 }

 host mailhost {
   hardware ethernet 02:03:04:05:06:07;(9)
   fixed-address mailhost.example.com;(10)
 }

   (1)
           Diese Option beschreibt die Doma:ne, die den Clients als
           Standardsuchdoma:ne zugewiesen wird. Weitere Informationen
           finden Sie in man.resolv.conf.5;.
   (2)
           Diese Option legt eine, durch Kommata getrennte Liste von
           DNS-Servern fest, die von den Clients verwendet werden
           sollen.
   (3)
           Die den Clients zugewiesene Netzmaske.
   (4)
           Ein Client kann eine Lease einer bestimmten Dauer
           anfordern. Geschieht dies nicht, weist der Server eine
           Lease mit einer vorgegebenen Ablaufdauer (in Sekunden) zu.
   (5)
           Die maximale Zeitdauer, fu:r die der Server
           Konfigurationsinformationen vergibt. Sollte ein Client
           eine la:ngere Zeitspanne anfordern, wird dennoch nur der
           Wert max-lease-time in Sekunden zugewiesen.
   (6)
           Diese Option legt fest, ob der DHCP-Server eine
           DNS-Aktualisierung versuchen soll, wenn
           Konfigurationsdateien vergeben oder zuru:ckgezogen werden.
           In der ISC-Implementation muss diese Option gesetzt sein.
   (7)
           Dadurch werden die IP-Adressen festgelegt, die den Clients
           zugewiesen werden ko:nnen. IP-Adressen zwischen diesen
           Grenzen sowie die einschliessenden Adressen werden den
           Clients zugewiesen.
   (8)
           Legt das Standard-Gateway fest, das den Clients zugewiesen
           wird.
   (9)
           Die (Hardware-)MAC-Adresse eines Rechners (durch die der
           DHCP-Server den Client erkennt, der eine Anforderung an
           ihn stellt).
   (10)
           Einem Rechner soll immer die gleiche IP-Adresse zugewiesen
           werden. Beachten Sie, dass hier auch ein Rechnername
           gu:ltig ist, da der DHCP-Server den Rechnernamen auflo:st,
           bevor er die Konfigurationsinformationen zuweist.

   Nachdem Sie dhcpd.conf fertig konfiguriert haben, sollten Sie den
   DHCP-Server aktivieren, indem Sie folgende Zeilen in /etc/rc.conf
   aufnehmen:

 dhcpd_enable="YES"
 dhcpd_ifaces="dc0"

   Dabei mu:ssen Sie den Gera:teeintrag dc0 durch die Gera:tedatei
   (mehrere Gera:tedateien mu:ssen durch Leerzeichen getrennt werden)
   ersetzen, die Ihr DHCP-Server auf Anfragen von DHCP-Clients hin
   u:berwachen soll.

   Danach ko:nnen Sie den Server durch Eingabe des folgenden Befehls
   starten:

 # /usr/local/etc/rc.d/isc-dhcpd start

   Sollten Sie die Konfiguration Ihres Servers einmal vera:ndern
   mu:ssen, reicht es nicht aus, ein SIGHUP-Signal an dhcpd zu
   senden, weil damit die Konfiguration nicht erneut geladen wird (im
   Gegensatz zu den meisten Daemonen). Sie mu:ssen den Prozess
   vielmehr mit dem Signal SIGTERM stoppen, um ihn anschliessend neu
   zu starten.

     --------------------------------------------------------------

    30.5.7.4. Dateien

     * /usr/local/sbin/dhcpd

       dhcpd ist statisch gelinkt und befindet sich in
       /usr/local/sbin. Lesen Sie auch die mit dem Port installierte
       Hilfeseite dhcpd(8), wenn Sie weitere Informationen zu dhcpd
       beno:tigen.

     * /usr/local/etc/dhcpd.conf

       dhcpd beno:tigt die Konfigurationsdatei
       /usr/local/etc/dhcpd.conf, damit der Server den Clients seine
       Dienste anbieten kann. Diese Datei muss alle Informationen
       enthalten, die an die Clients weitergegeben werden soll.
       Ausserdem sind hier Informationen zur Konfiguration des
       Servers enthalten. Die mit dem Port installierte Hilfeseite
       dhcpd.conf(5) entha:lt weitere Informationen.

     * /var/db/dhcpd.leases

       Der DHCP-Server hat eine Datenbank, die alle vergebenen Leases
       entha:lt. Diese wird als Logdatei erzeugt. Weitere
       Informationen finden Sie in der vom Port installierten
       Hilfeseite dhcpd.leases(5).

     * /usr/local/sbin/dhcrelay

       dhcrelay wird in komplexen Umgebungen verwendet, in denen ein
       DHCP-Server eine Anfrage eines Clients an einen DHCP-Server in
       einem separaten Netzwerk weiterleitet. Wenn Sie diese Funktion
       beno:tigen, mu:ssen Sie den Port net/isc-dhcp42-relay
       installieren. Weitere Informationen zu diesem Thema finden Sie
       in dhcrelay(8).

     --------------------------------------------------------------

30.6. DNS - Domain Name Service

   Beigetragen von Chern Lee, Tom Rhodes und Daniel Gerzo.

  30.6.1. U:berblick

   DNS ist das fu:r die Umwandlung von Rechnernamen in IP-Adressen
   zusta:ndige Protokoll. FreeBSD verwendet dazu BIND (Berkeley
   Internet Name Domain), die am ha:ufigsten verwendete
   Implementierung von DNS). Eine Anfrage nach www.FreeBSD.org gibt
   die IP-Adresse des FreeBSD-Webservers, eine Anfrage nach
   ftp.FreeBSD.org die IP-Adresse des entsprechenden FTP-Servers
   zuru:ck. Der umgekehrte Weg ist ebenso mo:glich, eine IP-Adresse
   kann also auch in ihren Rechnernamen aufgelo:st werden. Um eine
   DNS-Abfrage durchzufu:hren, muss auf dem jeweiligen Rechner kein
   Nameserver installiert sein.

   FreeBSD verwendet derzeit in der Voreinstellung BIND9 als
   DNS-Serversoftware. Unsere Installation bietet Ihnen eine erho:hte
   Sicherheit, ein neues Dateisystemlayout sowie eine automatisierte
   chroot(8)-Konfiguration.

   Im Internet wird DNS durch ein komplexes System von autoritativen
   Root-Nameservern, Top Level Domain-Servern (TLD) sowie anderen
   kleineren Nameservern verwaltet, die individuelle
   Rechnerinformationen speichern und untereinander abgleichen.

   Derzeit wird BIND vom Internet Systems Consortium
   (https://www.isc.org/) verwaltet.

     --------------------------------------------------------------

  30.6.2. Begriffsbestimmungen

   Um dieses Dokument besser verstehen zu ko:nnen, mu:ssen einige
   DNS-spezifische Begriffe genauer definiert werden.

     Begriff                         Bedeutung                        
   Forward-DNS Rechnernamen in IP-Adressen umwandeln.                 
   Origin      Die in einer bestimmten Zonendatei beschriebene        
   (Ursprung)  Doma:ne.                                               
   named, BIND Gebra:uchliche Namen fu:r das unter FreeBSD verwendete 
               BIND-Nameserverpaket.                                  
   Resolver    Ein Systemprozess, durch den ein Rechner               
               Zoneninformationen von einem Nameserver anfordert.     
   Reverse-DNS die Umwandlung von IP-Adressen in Rechnernamen         
               Der Beginn der Internet-Zonenhierarchie. Alle Zonen    
               befinden sich innerhalb der Root-Zone. Dies ist analog 
   Root-Zone   zu einem Dateisystem, in dem sich alle Dateien und     
               Verzeichnisse innerhalb des Wurzelverzeichnisses       
               befinden.                                              
               Eine individuelle Doma:ne, Unterdoma:ne, oder ein Teil 
   Zone        von DNS, der von der gleichen Autorita:t verwaltet     
               wird.                                                  

   Es folgen nun einige Zonenbeispiele:

     * Innerhalb der Dokumentation wird die Root-Zone in der Regel
       mit . bezeichnet.

     * org. ist eine Top level Domain (TLD) innerhalb der Root-Zone.

     * example.org. ist eine Zone innerhalb der org.-TLD.

     * 1.168.192.in-addr.arpa. ist die Zone mit allen IP-Adressen des
       192.168.1.*-IP-Bereichs.

   Wie man an diesen Beispielen erkennen kann, befindet sich der
   spezifischere Teil eines Rechnernamens auf der linken Seite der
   Adresse. example.org. beschreibt einen Rechner also genauer als
   org., wa:hrend org. genauer als die Root-Zone ist. Jeder Teil des
   Rechnernamens hat A:hnlichkeiten mit einem Dateisystem, in dem
   etwa /dev dem Wurzelverzeichnis untergeordnet ist.

     --------------------------------------------------------------

  30.6.3. Gru:nde fu:r die Verwendung eines Nameservers

   Es gibt zwei Arten von Nameservern: Autoritative Nameserver sowie
   zwischenspeichernde (cachende, auch bekannt als auflo:sende)
   Nameserver.

   Ein autoritativer Nameserver ist notwendig, wenn

     * Sie anderen verbindliche DNS-Ausku:nfte erteilen wollen.

     * eine Domain, beispielsweise example.org, registriert wird, und
       den zu dieser Domain geho:renden Rechnern IP-Adressen
       zugewiesen werden mu:ssen.

     * ein IP-Adressblock reverse-DNS-Eintra:ge beno:tigt, um
       IP-Adressen in Rechnernamen auflo:sen zu ko:nnen.

     * ein Backup-Nameserver (auch Slaveserver genannt) oder ein
       zweiter Nameserver auf Anfragen antworten soll.

   Ein cachender Nameserver ist notwendig, weil

     * ein lokaler DNS-Server Daten zwischenspeichern und daher
       schneller auf Anfragen reagieren kann als ein entfernter
       Server.

   Wird nach www.FreeBSD.org gesucht, leitet der Resolver diese
   Anfrage an den Nameserver des ISPs weiter und nimmt danach das
   Ergebnis der Abfrage entgegen. Existiert ein lokaler,
   zwischenspeichernder DNS-Server, muss dieser die Anfrage nur
   einmal nach aussen weitergeben. Fu:r alle weiteren Anfragen ist
   dies nicht mehr no:tig, da diese Information nun lokal gespeichert
   ist.

     --------------------------------------------------------------

  30.6.4. Wie funktioniert DNS?

   Unter FreeBSD wird der BIND-Daemon als named bezeichnet.

           Datei                         Beschreibung                 
   named                  Der BIND-Daemon.                            
   rndc(8)                Das Steuerprogramm fu:r named.              
   /etc/namedb            Das Verzeichnis, in dem sich die            
                          Zoneninformationen fu:r BIND befinden.      
   /etc/namedb/named.conf Die Konfigurationsdatei fu:r named.         

   Je nachdem, wie eine Zone auf dem Server konfiguriert wurde,
   finden sich die zur Zone geho:rendenden Dateien in den
   Unterverzeichnissen master, slave, oder dynamic des Verzeichnisses
   /etc/namedb. Diese Dateien enthalten die DNS-Informationen, die
   der Nameserver fu:r die Beantwortung von Anfragen beno:tigt.

     --------------------------------------------------------------

  30.6.5. BIND starten

   Da BIND automatisch installiert wird, ist die Konfiguration
   relativ einfach.

   In der Voreinstellung wird ein in einer chroot(8)-Umgebung
   betriebener named-Server zur einfachen Namensauflo:sung
   eingerichtet, der nur im lokalen IPv4-Loopback-Adressbereich
   (127.0.0.1) lauscht. Um den Server manuell zu starten, verwenden
   Sie den folgenden Befehl:

 # /etc/rc.d/named onestart

   Um den named-Daemon beim Systemstart automatisch zu starten,
   fu:gen Sie folgende Zeile in /etc/rc.conf ein:

 named_enable="YES"

   /etc/namedb/named.conf bietet zahlreiche Konfigurationsoptionen,
   die in diesem Dokument nicht alle beschrieben werden ko:nnen.
   Wollen Sie die Startoptionen von named unter FreeBSD anpassen,
   sollten Sie sich die named_*-Flags in der Datei
   /etc/defaults/rc.conf sowie die Manualpage zu rc.conf(5) na:her
   ansehen. Zusa:tzliche Informationen bietet Ihnen auch der
   Abschnitt Abschnitt 12.7 des Handbuchs.

     --------------------------------------------------------------

  30.6.6. Konfigurationsdateien

   Die Konfigurationsdateien von named finden sich unter /etc/namedb
   und mu:ssen in der Regel an Ihre Bedu:rfnisse angepasst werden. Es
   sei denn, Sie beno:tigen nur einen einfachen Resolver. Ein
   Grossteil der Konfigurationsarbeiten erfolgt dabei in diesem
   Verzeichnis.

     --------------------------------------------------------------

    30.6.6.1. /etc/namedb/named.conf

 // $FreeBSD$
 //
 // Refer to the named.conf(5) and named(8) man pages, and the documentation
 // in /usr/share/doc/bind9 for more details.
 //
 // If you are going to set up an authoritative server, make sure you
 // understand the hairy details of how DNS works.  Even with
 // simple mistakes, you can break connectivity for affected parties,
 // or cause huge amounts of useless Internet traffic.

 options {
 // All file and path names are relative to the chroot directory,
 // if any, and should be fully qualified.
     directory   "/etc/namedb/working";
         pid-file        "/var/run/named/pid";
         dump-file       "/var/dump/named_dump.db";
         statistics-file "/var/stats/named.stats";

 // If named is being used only as a local resolver, this is a safe default.
 // For named to be accessible to the network, comment this option, specify
 // the proper IP address, or delete this option.
         listen-on       { 127.0.0.1; };

 // If you have IPv6 enabled on this system, uncomment this option for
 // use as a local resolver.  To give access to the network, specify
 // an IPv6 address, or the keyword "any".
 //      listen-on-v6    { ::1; };

 // These zones are already covered by the empty zones listed below.
 // If you remove the related empty zones below, comment these lines out.
         disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
         disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
         disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";

 // If you've got a DNS server around at your upstream provider, enter
 // its IP address here, and enable the line below.  This will make you
 // benefit from its cache, thus reduce overall DNS traffic in the Internet.
 /*
         forwarders {
                 127.0.0.1;
         };
 */

 // If the 'forwarders' clause is not empty the default is to 'forward first'
 // which will fall back to sending a query from your local server if the name
 // servers in 'forwarders' do not have the answer.  Alternatively you can
 // force your name server to never initiate queries of its own by enabling the
 // following line:
 //      forward only;

 // If you wish to have forwarding configured automatically based on
 // the entries in /etc/resolv.conf, uncomment the following line and
 // set named_auto_forward=yes in /etc/rc.conf.  You can also enable
 // named_auto_forward_only (the effect of which is described above).
 //      include "/etc/namedb/auto_forward.conf";
        

   Um vom Cache Ihres Internetproviders zu profitieren, ko:nnen hier
   forwarders aktiviert werden. Normalerweise sucht ein Nameserver
   das Internet rekursiv ab, bis er die gesuchte Antwort findet.
   Durch diese Option wird stets der Nameserver Ihres
   Internetproviders zuerst abgefragt, um von dessen Cache zu
   profitieren. Wenn es sich um einen schnellen, viel benutzten
   Nameserver handelt, kann dies zu einer Geschwindigkeitssteigerung
   fu:hren.

     Warnung: 127.0.0.1 funktioniert hier nicht. A:ndern Sie diese
     Adresse in einen Nameserver Ihres Einwahlproviders.

         /*
            Modern versions of BIND use a random UDP port for each outgoing
            query by default in order to dramatically reduce the possibility
            of cache poisoning.  All users are strongly encouraged to utilize
            this feature, and to configure their firewalls to accommodate it.

            AS A LAST RESORT in order to get around a restrictive firewall
            policy you can try enabling the option below.  Use of this option
            will significantly reduce your ability to withstand cache poisoning
            attacks, and should be avoided if at all possible.

            Replace NNNNN in the example with a number between 49160 and 65530.
         */
         // query-source address * port NNNNN;
 };

 // If you enable a local name server, don't forget to enter 127.0.0.1
 // first in your /etc/resolv.conf so this server will be queried.
 // Also, make sure to enable it in /etc/rc.conf.

 // The traditional root hints mechanism. Use this, OR the slave zones below.
 zone "." { type hint; file "/etc/namedb/named.root"; };

 /*      Slaving the following zones from the root name servers has some
         significant advantages:
         1. Faster local resolution for your users
         2. No spurious traffic will be sent from your network to the roots
         3. Greater resilience to any potential root server failure/DDoS

         On the other hand, this method requires more monitoring than the
         hints file to be sure that an unexpected failure mode has not
         incapacitated your server.  Name servers that are serving a lot
         of clients will benefit more from this approach than individual
         hosts.  Use with caution.

         To use this mechanism, uncomment the entries below, and comment
         the hint zone above.
        
         As documented at http://dns.icann.org/services/axfr/ these zones:
         "." (the root), ARPA, IN-ADDR.ARPA, IP6.ARPA, and ROOT-SERVERS.NET
         are availble for AXFR from these servers on IPv4 and IPv6:
         xfr.lax.dns.icann.org, xfr.cjr.dns.icann.org
 */
 /*
 zone "." {
         type slave;
         file "/etc/namedb/slave/root.slave";
         masters {
                 192.5.5.241;    // F.ROOT-SERVERS.NET.
         };
         notify no;
 };
 zone "arpa" {
         type slave;
         file "/etc/namedb/slave/arpa.slave";
         masters {
                 192.5.5.241;    // F.ROOT-SERVERS.NET.
         };
         notify no;
 };
 */

 /*      Serving the following zones locally will prevent any queries
         for these zones leaving your network and going to the root
         name servers.  This has two significant advantages:
         1. Faster local resolution for your users
         2. No spurious traffic will be sent from your network to the roots
 */
 // RFCs 1912 and 5735 (and BCP 32 for localhost)
 zone "localhost"        { type master; file "/etc/namedb/master/localhost-forward.db"; };
 zone "127.in-addr.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; };
 zone "255.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // RFC 1912-style zone for IPv6 localhost address
 zone "0.ip6.arpa"       { type master; file "/etc/namedb/master/localhost-reverse.db"; };

 // "This" Network (RFCs 1912 and 5735)
 zone "0.in-addr.arpa"   { type master; file "/etc/namedb/master/empty.db"; };

 // Private Use Networks (RFCs 1918 and 5735)
 zone "10.in-addr.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
 zone "16.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "17.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "18.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "19.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "20.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "21.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "22.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "23.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "24.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "25.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "26.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "27.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "28.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "29.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "30.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // Link-local/APIPA (RFCs 3927 and 5735)
 zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // IETF protocol assignments (RFCs 5735 and 5736)
 zone "0.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // TEST-NET-[1-3] for Documentation (RFCs 5735 and 5737)
 zone "2.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "100.51.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "113.0.203.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // IPv6 Range for Documentation (RFC 3849)
 zone "8.b.d.0.1.0.0.2.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; };


 // Domain Names for Documentation and Testing (BCP 32)
 zone "test" { type master; file "/etc/namedb/master/empty.db"; };
 zone "example" { type master; file "/etc/namedb/master/empty.db"; };
 zone "invalid" { type master; file "/etc/namedb/master/empty.db"; };
 zone "example.com" { type master; file "/etc/namedb/master/empty.db"; };
 zone "example.net" { type master; file "/etc/namedb/master/empty.db"; };
 zone "example.org" { type master; file "/etc/namedb/master/empty.db"; };


 // Router Benchmark Testing (RFCs 2544 and 5735)
 zone "18.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "19.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // IANA Reserved - Old Class E Space (RFC 5735)
 zone "240.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "241.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "242.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "243.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "244.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "245.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "246.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "247.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "248.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "249.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "250.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "251.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "252.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "253.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
 zone "254.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };

 // IPv6 Unassigned Addresses (RFC 4291)
 zone "1.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
 zone "3.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
 zone "4.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
 zone "5.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "6.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "7.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "8.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "9.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "a.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "b.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "c.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "d.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "e.ip6.arpa"               { type master; file "/etc/namedb/master/empty.db"; };
 zone "0.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "1.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "2.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "3.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "4.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "5.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "6.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "7.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "8.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "9.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "a.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "b.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "0.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "1.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "2.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "3.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "4.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "5.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "6.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "7.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };

 // IPv6 ULA (RFC 4193)
 zone "c.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };
 zone "d.f.ip6.arpa"             { type master; file "/etc/namedb/master/empty.db"; };

 // IPv6 Link Local (RFC 4291)
 zone "8.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "9.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "a.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "b.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };

 // IPv6 Deprecated Site-Local Addresses (RFC 3879)
 zone "c.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "d.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "e.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };
 zone "f.e.f.ip6.arpa"           { type master; file "/etc/namedb/master/empty.db"; };

 // IP6.INT is Deprecated (RFC 4159)
 zone "ip6.int"                  { type master; file "/etc/namedb/master/empty.db"; };

 // NB: Do not use the IP addresses below, they are faked, and only
 // serve demonstration/documentation purposes!
 //
 // Example slave zone config entries.  It can be convenient to become
 // a slave at least for the zone your own domain is in.  Ask
 // your network administrator for the IP address of the responsible
 // master name server.
 //
 // Do not forget to include the reverse lookup zone!
 // This is named after the first bytes of the IP address, in reverse
 // order, with ".IN-ADDR.ARPA" appended, or ".IP6.ARPA" for IPv6.
 //
 // Before starting to set up a master zone, make sure you fully
 // understand how DNS and BIND work.  There are sometimes
 // non-obvious pitfalls.  Setting up a slave zone is usually simpler.
 //
 // NB: Don't blindly enable the examples below. :-)  Use actual names
 // and addresses instead.

 /* An example dynamic zone
 key "exampleorgkey" {
         algorithm hmac-md5;
         secret "sf87HJqjkqh8ac87a02lla==";
 };
 zone "example.org" {
         type master;
         allow-update {
                 key "exampleorgkey";
         };
         file "/etc/named/dynamic/example.org";
 };
 */

 /* Example of a slave reverse zone
 zone "1.168.192.in-addr.arpa" {
         type slave;
         file "/etc/namedb/slave/1.168.192.in-addr.arpa";
         masters {
                 192.168.1.1;
         };
 };
 */

   Hierbei handelt es sich um Slave-Eintra:ge fu:r eine Reverse- und
   Forward-DNS-Zone, die in der Datei named.conf definiert sind.

   Fu:r jede neue Zone muss ein zusa:tzlicher Eintrag in named.conf
   erstellt werden.

   Ein einfacher Eintrag fu:r eine Zone example.org ko:nnte
   beispielsweise so aussehen:

 zone "example.org" {
         type master;
         file "master/example.org";
 };     

   Die Option type legt fest, dass es sich um eine Master-Zone
   handelt, deren Zoneninformationen sich in der Datei
   /etc/namedb/master/example.org befinden. Diese Datei wird durch
   die Option file festgelegt.

 zone "example.org" {
         type slave;
         file "slave/example.org";
 };     

   Hier handelt es sich um einen Slaveserver, der seine Informationen
   vom Masterserver der betreffenden Zone bezieht und diese in der
   angegebenen Datei speichert. Wenn der Masterserver nicht
   erreichbar ist, verfu:gt der Slaveserver u:ber die transferierten
   Zoneninformationen und kann diese an andere Rechner weitergeben.

     --------------------------------------------------------------

    30.6.6.2. Zonendateien

   Die in der Datei /etc/namedb/master/example.org definierte
   Zonendatei fu:r example.org ko:nnte etwa so aussehen:

 $TTL 3600        ; 1 hour default TTL
 example.org.    IN      SOA      ns1.example.org. admin.example.org. (
                                 2006051501      ; Serial
                                 10800           ; Refresh
                                 3600            ; Retry
                                 604800          ; Expire
                                 300             ; Negative Response TTL
                         )

 ; DNS Servers
                 IN      NS      ns1.example.org.
                 IN      NS      ns2.example.org.

 ; MX Records
                 IN      MX 10   mx.example.org.
                 IN      MX 20   mail.example.org.

                 IN      A       192.168.1.1

 ; Machine Names
 localhost       IN      A       127.0.0.1
 ns1             IN      A       192.168.1.2
 ns2             IN      A       192.168.1.3
 mx              IN      A       192.168.1.4
 mail            IN      A       192.168.1.5

 ; Aliases
 www             IN      CNAME   example.org.

   Beachten Sie, dass jeder mit einem "." endende Rechnername ein
   exakter Rechnername ist, wa:hrend sich alles ohne einen
   abschliessenden "." relativ auf den Ursprung bezieht. ns1 steht
   daher beispielsweise fu:r ns1.example.org..

   Eine Zonendatei hat folgenden Aufbau:

 recordname      IN recordtype   value

   Die am ha:ufigsten verwendeten DNS-Eintra:ge sind:

   SOA

           Start der Zonenautorita:t

   NS

           Ein autoritativer Nameserver

   A

           Eine Rechneradresse

   CNAME

           Der kanonische Name eines Alias

   MX

           Mail Exchanger

   PTR

           Ein (bei Reverse-DNS verwendeter) Domain Name Pointer

 example.org. IN SOA ns1.example.org. admin.example.org. (
                         2006051501      ; Serial
                         10800           ; Refresh after 3 hours
                         3600            ; Retry after 1 hour
                         604800          ; Expire after 1 week
                         300 )           ; Negative Response TTL

   example.org.

           Der Name der Doma:ne und damit der Ursprung dieser
           Zonendatei.

   ns1.example.org.

           Der prima:re/autoritative Nameserver dieser Zone.

   admin.example.org.

           Die fu:r diese Zone verantwortliche Person. Das Zeichen
           "@" wird dabei ersetzt (<admin@example.org> wird also zu
           admin.example.org).

   2006051501

           Die Seriennummer der Datei. Sie muss stets inkrementiert
           werden, wenn die Zonendatei gea:ndert wird. Viele
           Administratoren bevorzugen ein JJJJMMTTRR-Format, um die
           Seriennummer festzulegen. 2006051501 steht also fu:r den
           15.05.2006, die beiden letzten Stellen fu:r die erste
           Modifikation der Zonendatei an diesem Tag. Die
           Seriennummer ist von grosser Bedeutung, da Slaveserver
           daran eine aktualisierte Zonendatei erkennen ko:nnen.

           IN NS           ns1.example.org.

   Ein NS-Eintrag. Jeder Nameserver, der fu:r eine Zone
   verantwortlich ist, muss u:ber einen solchen Eintrag verfu:gen.

           localhost       IN      A       127.0.0.1
           ns1             IN      A       192.168.1.2
           ns2             IN      A       192.168.1.3
           mx              IN      A       192.168.1.4
           mail            IN      A       192.168.1.5

   Der Eintrag A bezieht sich auf Rechnernamen. ns1.example.org
   wu:rde also zu 192.168.1.2 aufgelo:st werden.

           IN      A       192.168.1.1

   Diese Zeile weist die IP-Adresse 192.168.1.1 dem aktuellen
   Ursprung, in unserem Fall also example.org, zu.

           www             IN CNAME        @

   Der Eintrag fu:r den kanonischen Namen wird dazu verwendet, Aliase
   fu:r einen Rechner zu vergeben. Im Beispiel ist www ein Alias fu:r
   den "Master"-Rechner, dessen Name dem Domainnamen example.org
   (oder 192.168.1.1) entspricht. CNAMEs ko:nnen daher niemals
   gleichzeitig mit einem anderen Eintrag fu:r denselben Hostname
   eingerichtet werden.

           IN MX   10      mail.example.org.

   Die Option MX legt fest, welcher Mailserver fu:r eintreffende
   Mails der Zone verantwortlich ist. mail.example.org ist der
   Rechnername des Mailservers, der eine Priorita:t von 10 hat.

   Es ko:nnen auch mehrere Mailserver mit verschiedener Priorita:t
   (10, 20, ...) vorhanden sein. Ein Mailserver, der eine Mail an
   example.org verschicken will, verwendet zuerst den MX mit der
   ho:chsten Priorita:t (das heisst den mit der niedrigsten
   Priorita:tsnummer), danach den mit der na:chstho:heren Priorita:t.
   Und dies solange, bis die E-Mail zugestellt werden kann.

   Fu:r (bei Reverse-DNS verwendete) in-addr.arpa-Zonendateien wird
   das gleiche Format verwendet. Der einzige Unterschied besteht in
   der Verwendung der Option PTR an Stelle der Optionen A und CNAME.

 $TTL 3600

 1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
                         2006051501      ; Serial
                         10800           ; Refresh
                         3600            ; Retry
                         604800          ; Expire
                         300 )           ; Negative Response TTL

         IN      NS      ns1.example.org.
         IN      NS      ns2.example.org.

 1       IN      PTR     example.org.
 2       IN      PTR     ns1.example.org.
 3       IN      PTR     ns2.example.org.
 4       IN      PTR     mx.example.org.
 5       IN      PTR     mail.example.org.

   Durch diese Datei werden den Rechnernamen der fiktiven Doma:ne
   IP-Adressen zugewiesen.

   Beachten Sie bitte, dass es sich bei allen Namen auf der rechten
   Seite eines PTR-Eintrags um absolute (fully qualified) Domainnamen
   handeln muss, die mit "." enden.

     --------------------------------------------------------------

  30.6.7. Zwischenspeichernde (cachende) Nameserver

   Ein cachender Nameserver hat prima:r die Aufgabe, rekursive
   Abfragen aufzulo:sen. Er stellt lediglich eigene Anfragen und
   speichert deren Ergebnisse ab.

     --------------------------------------------------------------

  30.6.8. DNSSEC

   Domain Name System Security Extensions, oder kurz DNSSEC, ist eine
   Sammlung von Spezifikationen, um auflo:sende Nameserver von
   gefa:lschten DNS-Daten, wie beispielsweise vorgeta:uschte
   DNS-Eintra:ge, zu schu:tzen. Durch die Verwendung von digitalen
   Signaturen kann ein Resolver die Integrita:t des Eintrages
   u:berpru:fen. Wichtig dabei ist, dass DNSSEC nur die Integrita:t
   u:ber digital signierte Resource Records (RRe) bereitstellt. Weder
   wird die Vertraulichkeit noch der Schutz vor falschen Annahmen des
   Endbenutzers sichergestellt. Dies bedeutet, dass es Leute nicht
   davor schu:tzen kann, zu example.net anstatt zu example.com zu
   gelangen. Das einzige, was DNSSEC tut, ist die Authentifizierung,
   dass die Daten wa:hrend der U:bertragung nicht vera:ndert wurden.
   Die Sicherheit von DNS ist ein wichtiger Schritt in der generellen
   Absicherung des Internets. Fu:r weitere, tiefergehende Details
   u:ber die Funktionsweise von DNSSEC sind die dazugeho:rigen RFCs
   ein guter Einstieg in die Thematik. Sehen Sie sich dazu die Liste
   in Abschnitt 30.6.10 an.

   Der folgende Abschnitt wird zeigen, wie man DNSSEC fu:r einen
   autoritativen DNS-Server und einen rekursiven (oder cachenden)
   DNS-Server, der jeweils BIND 9 verwenden, einrichten kann. Obwohl
   alle Versionen von BIND 9 DNSSEC unterstu:tzen, ist es notwendig,
   mindestens die Version 9.6.2 zu verwenden, um in der Lage zu sein,
   die signierten Root-Zonen zu benutzen, wenn DNS-Abfragen gepru:ft
   werden. Der Grund dafu:r ist, dass fru:heren Versionen die
   Algorithmen fehlen, um die U:berpru:fung des Root-Zonenschlu:ssels
   zu aktivieren. Es wird dringend empfohlen, die letzte Version von
   BIND 9.7 oder ho:her einzusetzen, um von den Vorteilen der
   automatischen Schlu:sselaktualisierung des Root-Zonenschlu:ssels
   Gebrauch zu machen, genauso wie andere Eigenschaften, um
   automatisch Zonen signieren zu lassen und Signaturen aktuell zu
   halten. Unterschiede zwischen den Versionen 9.6.2 und 9.7 und
   ho:her werden an den betreffenden Stellen angesprochen.

     --------------------------------------------------------------

    30.6.8.1. Rekursive DNS-Server Konfiguration

   Die Aktivierung der DNSSEC-U:berpru:fung von Anfragen, die von
   einem rekursiven DNS-Server stammen, beno:tigt ein paar
   A:nderungen in der named.conf. Bevor man jedoch diese A:nderungen
   durchfu:hrt, muss der Root-Zonenschlu:ssel oder Vertrauensanker
   erworben werden. Momentan ist der Root-Zonenschlu:ssel nicht in
   einem Dateiformat verfu:gbar, dass von BIND benutzt werden kann,
   so dass dieser manuell in das richtige Format konvertiert werden
   muss. Der Schlu:ssel selbst kann durch Abfrage an die Root-Zone
   erhalten werden, indem man dazu dig verwendet. Durch Aufruf von

 % dig +multi +noall +answer DNSKEY . > root.dnskey

   wird der Schlu:ssel in root.dnskey abgelegt. Der Inhalt sollte so
   a:hnlich wie folgt aussehen:

 . 93910 IN DNSKEY 257 3 8 (
         AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ
         bSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh
         /RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWA
         JQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXp
         oY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3
         LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGO
         Yl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGc
         LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=
         ) ; key id = 19036
 . 93910 IN DNSKEY 256 3 8 (
         AwEAAcaGQEA+OJmOzfzVfoYN249JId7gx+OZMbxy69Hf
         UyuGBbRN0+HuTOpBxxBCkNOL+EJB9qJxt+0FEY6ZUVjE
         g58sRr4ZQ6Iu6b1xTBKgc193zUARk4mmQ/PPGxn7Cn5V
         EGJ/1h6dNaiXuRHwR+7oWh7DnzkIJChcTqlFrXDW3tjt
 ) ; key id = 34525

   Seien Sie nicht alarmiert, wenn der von Ihnen bezogene Schlu:ssel
   anders als in diesem Beispiel aussieht. Diese ko:nnten sich in der
   Zwischenzeit gea:ndert haben. In dieser Ausgabe sind eigentlich
   zwei Schlu:ssel enthalten. Der erste Schu:ssel mit dem Wert 257
   nach dem DNSKEY-Eintrag ist derjenige, der beno:tigt wird. Der
   Wert zeigt an, dass es sich um einen sicheren Einstiegspunkt
   (SEP), gemein auch als Schlu:sselsignierungsschlu:ssel (KSK)
   bekannt, handelt. Der zweite Schu:ssel mit dem Wert 256 ist der
   untergeordnete Schlu:ssel, im allgemeinen auch als
   Zonen-Signaturschlu:ssel (ZSK) bezeichnet. Weitere Schlu:sselarten
   werden spa:ter in Abschnitt 30.6.8.2 erla:utert.

   Nun muss der Schlu:ssel verifiziert und so formatiert werden, dass
   BIND diesen verwenden kann. Um den Schlu:ssel zu verifizieren,
   erzeugen Sie einen DS RR-Satz. Erstellen Sie eine Datei, welche
   die RRs entha:lt, mittels

 % dnssec-dsfromkey -f root-dnskey . > root.ds

   Diese Eintra:ge verwenden SHA-1 sowie SHA-256 und sollten a:hnlich
   zu folgendem Beispiel aussehen, in dem der la:ngere, SHA-256,
   benutzt wird.

 . IN DS 19036 8 1 B256BD09DC8DD59F0E0F0D8541B8328DD986DF6E
 . IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5

   Der SHA-256 RR kann nun mit dem Abriss in
   https://data.iana.org/root-anchors/root-anchors.xml verglichen
   werden. Um absolut sicher zu sein, dass der Schlu:ssel nicht
   zusammen mit den XML-Daten vera:ndert wurde, kann die Datei
   mittels der PGP Signatur in
   https://data.iana.org/root-anchors/root-anchors.asc u:berpru:ft
   werden.

   Als na:chstes muss der Schlu:ssel in das passende Format gebracht
   werden. Dies unterscheidet sich ein bisschen von den BIND
   Versionen 9.6.2 und 9.7 und ho:here. In Version 9.7 wurde die
   U:nterstu:tzung zur automatischen Verfolgung und notwendigen
   Aktualisierung von A:nderungen am Schlu:ssel eingebaut. Dies wird
   durch den Einsatz von managed-keys erreicht, wie in dem Beispiel
   unten gezeigt ist. Wenn die a:ltere Version eingesetzt wird, kann
   der Schlu:ssel durch eine trusted-keys-Anweisung eingebaut werden
   und die Aktualisierung muss ha:ndisch erfolgen. In BIND 9.6.2
   sollte das Format folgendermassen aussehen:

 trusted-keys {
         "." 257 3 8
         "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
         FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
         bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
         X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
         W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
         Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
         QxA+Uk1ihz0=";
 };

   In 9.7 wird das Format stattdessen wie folgt aussehen:

 managed-keys {
         "." initial-key 257 3 8
         "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
         FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
         bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
         X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
         W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
         Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
         QxA+Uk1ihz0=";
 };

   Der Root-Schlu:ssel kann nun zu named.conf hinzugefu:gt werden,
   entweder direkt oder durch Inkludierung der Datei, die den
   Schlu:ssel entha:lt. Nachdem diese Schritte absolviert sind, muss
   BIND konfiguriert werden, um DNSSEC-Validierung fu:r Anfragen
   durchzufu:hren, indem named.conf bearbeitet und die folgende
   options-Direktive hinzugefu:gt wird:

 dnssec-enable yes;
 dnssec-validation yes;

   Um zu pru:fen, dass es tatsa:chlich funktioniert, benutzen Sie
   dig, um eine Anfrage zu einer signierten Zone durch den Resolver,
   der gerade konfiguriert wurde, zu stellen. Eine erfolgreiche
   Antwort wird den AD-Eintrag aufweisen, um anzudeuten, dass die
   Daten authentisiert sind. Eine Anfrage wie

 % dig @resolver +dnssec se ds

   sollte den DS RR fu:r die .se-Zone zuru:ckgeben. In dem Abschnitt
   flags: sollte der AD-Eintrag gesetzt sein, wie im folgenden zu
   sehen ist:

 ...
 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
 ...

   Der Resolver ist nun in der Lage, Anfragen ans DNS zu
   authentisieren.

     --------------------------------------------------------------

    30.6.8.2. Autoritative DNS-Server Konfiguration

   Um einen autoritativen Nameserver dazu zu bringen, als eine
   DNSSEC-signierte Zone zu fungieren, ist ein wenig mehr Aufwand
   no:tig. Eine Zone ist durch kryptographische Schlu:ssel signiert,
   die erzeugt werden mu:ssen. Es ist mo:glich, nur einen Schlu:ssel
   dazu zu verwenden. Die vorgeschlagene Methode ist jedoch, einen
   starken, gut geschu:tzten Schlu:sselsignierungsschlu:ssel (KSK)
   einzusetzen, der nicht oft gewechselt wird und einen
   Zonensignierungsschlu:ssel (ZSK), der o:fter ausgewechselt wird.
   Informationen zu vorgeschlagenen Einsatzarten ko:nnen in RFC 4641:
   DNSSEC Operational Practices nachgelesen werden. Einsatzszenarien,
   welche die Root-Zone betreffen, finden Sie in DNSSEC Practice
   Statement for the Root Zone KSK operator sowie DNSSEC Practice
   Statement for the Root Zone ZSK operator. Der KSK wird dazu
   verwendet, um eine Kette von Autorita:t fu:r die Daten, die diese
   Validierung beno:tigen, zu erschaffen und wird als solche auch als
   sicherer Einstiegspunkt (SEP)-Schlu:ssel bezeichnet. Ein
   Nachrichtenabriss dieses Schlu:ssels, der auch Delegation Signer
   (DS)-Eintrag genannt wird, muss in der Elternzone vero:ffentlicht
   werden, um die Vertrauenskette herzustellen. Wie dies erreicht
   wird, ha:ngt von dem Besitzer der Elternzone ab. Der ZSK wird
   verwendet, um die Zone zu signieren und muss nur dort o:ffentlich
   zuga:nglich gemacht werden.

   Um DNSSEC fu:r die example.com-Zone, welche in den vorherigen
   Beispielen verwendet wird, zu aktivieren, muss als erster Schritt
   dnssec-keygen benutzt werden, um das KSK und ZSK Schlu:sselpaar zu
   generieren. Dieses Schlu:sselpaar kann unterschiedliche
   kryptographische Algorithmen nutzen. Es wird empfohlen, RSA/SHA256
   fu:r die Schlu:ssel zu nutzen. Eine Schlu:ssella:nge von 2048 Bits
   sollte genu:gen. Um den KSK fu:r example.com zu generieren, geben
   Sie

 % dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE example.com

   ein und um den ZSK zu erzeugen, setzen Sie folgenden Befehl ab:

 % dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com

   dnssec-keygen gibt zwei Dateien aus, den o:ffentlichen und den
   privaten Schlu:ssel und zwar in Dateinamen, die a:hnlich lauten
   wie Kexample.com.+005+nnnnn.key (o:ffentlich) und
   Kexample.com.+005+nnnnn.private (privat). Der nnnnn-Teil des
   Dateinamens ist eine fu:nfstellige Schlu:sselkennung. Passen Sie
   genau auf, welche Kennung zu welchem Schlu:ssel geho:rt. Das ist
   besonders wichtig, wenn mehrere Schlu:ssel in einer Zone
   vorliegen. Es ist auch mo:glich, die Schlu:ssel umzubenennen. Fu:r
   jede KSK-Datei tun Sie folgendes:

 % mv Kexample.com.+005+nnnnn.key Kexample.com.+005+nnnnn.KSK.key
 % mv Kexample.com.+005+nnnnn.private Kexample.com.+005+nnnnn.KSK.private

   Fu:r die ZSK-Dateien ersetzen Sie KSK fu:r ZSK wenn no:tig. Die
   Dateien ko:nnen nun in der Zonendatei inkludiert werden, indem die
   $include Anweisung verwendet wird. Es sollte folgendermassen
   aussehen:

 $include Kexample.com.+005+nnnnn.KSK.key    ; KSK
 $include Kexample.com.+005+nnnnn.ZSK.key    ; ZSK

   Schliesslich signieren Sie die Zone und weisen BIND an, die
   signierte Zonendatei zu benutzen. Um eine Zone zu signieren, wird
   dnssec-signzone eingesetzt. Der Befehl, um eine Zone example.com
   zu signieren, die in example.com.db liegt, sollte wie folgt
   aussehen:

 % dnssec-signzone -o example.com -k Kexample.com.+005+nnnnn.KSK example.com.db Kexample.com.+005+nnnnn.ZSK.key

   Der Schlu:ssel, welcher mit dem Argument -k u:bergeben wird, ist
   der KSK und die andere Schlu:sseldatei ist der ZSK, welcher fu:r
   die Signatur benutzt werden soll. Es ist mo:glich, mehr als einen
   KSK und ZSK anzugeben, was das Ergebnis zur Folge hat, dass die
   Zone mit allen u:bergebenen Schlu:sseln signiert wird. Dies kann
   dann beno:tigt werden, um Zonendaten mit mehr als einem
   Algorithmus zur Signierung zu verwenden. Die Ausgabe von
   dnssec-signzone ist eine Zonendatei mit allen signierten RRs.
   Diese Ausgabe wird in einer Datei mit der Endung .signed abgelegt,
   wie beispielsweise example.com.db.signed. Die DS-Eintra:ge werden
   ebenfalls in eine separate Datei dsset-example.com geschrieben. Um
   diese signierte Zone zu verwenden, a:ndern Sie die Zonendirektive
   in named.conf, so dass example.com.db.signed benutzt wird.
   Standardma:ssig sind die Signaturen nur 30 Tage gu:ltig, was
   bedeutet, dass die Zone in etwa 15 Tagen erneut signiert werden
   muss, um sicher zu stellen, dass Resolver keine Eintra:ge mit
   veralteten Signaturen zwischenspeichern. Es ist mo:glich, ein
   Skript und einen cron-Job zu schreiben, um dies zu erledigen.
   Lesen Sie dazu die relevanten Anleitungen, um Details zu erfahren.

   Stellen Sie sicher, dass die privaten Schlu:ssel vertraulich
   bleiben, genau wie mit allen anderen kryptographischen Schlu:sseln
   auch. Wenn ein Schlu:ssel gea:ndert wird, ist es gute Praxis den
   neuen Schlu:ssel in die Zone zu inkludieren, noch wa:hrend der
   alte Schlu:ssel noch zum signieren eingesetzt wird, um dann auf
   den neuen Schlu:ssel zum signieren zu wechseln. Nachdem diese
   Schritte erfolgt sind, kann der alte Schlu:ssel aus der Zone
   entfernt werden. Wenn das nicht geschieht, ko:nnen DNS-Daten fu:r
   einige Zeit nicht verfu:gbar sein, bis der neue Schlu:ssel durch
   die DNS-Hierarchie propagiert wurde. Fu:r weitere Informationen
   bezu:glich Schlu:sselu:bergabe und andere DNSSEC-Einsatzszenarien
   lesen Sie RFC 4641: DNSSEC Operational practices.

     --------------------------------------------------------------

    30.6.8.3. Automatisierung mittels BIND 9.7 oder ho:her

   Beginnend mit der Version 9.7 von BIND wurde eine neue Eigenschaft
   vorgestellt, die Smart Signing genannt wird. Diese zielt darauf
   ab, das Schlu:sselmanagement und den Signierungsprozess einfacher
   zu gestalten und zu automatisieren. Durch ablegen der Schlu:ssel
   in ein Verzeichnis, genannt key repository und die Verwendung der
   neuen Option auto-dnssec, ist es mo:glich eine dynamische Zone zu
   erzeugen, welche dann erneut signiert wird, wenn dazu der Bedarf
   besteht. Um diese Zone zu aktualisieren, benutzen Sie nsupdate mit
   der neuen Option -l. Es hat also rndc die Fa:higkeit gewonnen,
   Zonen mit Schlu:sseln im Key Repository zu verwenden, indem die
   Option sign eingesetzt wird. Um BIND anzuweisen, diese
   automatische Signierung und Zonenaktualisierung fu:r example.com
   zu nutzen, fu:gen Sie die folgenden Zeilen zur named.conf hinzu:

 zone example.com {
         type master;
         key-directory "/etc/named/keys";
         update-policy local;
         auto-dnssec maintain;
         file "/etc/named/dynamic/example.com.zone";
 };

   Nachdem diese A:nderungen durchgefu:hrt wurden, erzeugen Sie die
   Schlu:ssel fu:r die Zone wie in Abschnitt 30.6.8.2 beschrieben
   wird, legen diese Schlu:ssel im Key Repository ab, dass als
   Argument key-directory in der Zonenkonfiguration steht und die
   Zone wird automatisch signiert. Aktualisierungen fu:r eine Zone,
   die auf diese Art und Weise konfiguriert wurde, muss mittels
   nsupdate erfolgen, dass sich um die erneute Signierung der Zone
   mit den hinzugefu:gten Daten ku:mmern wird. Fu:r weitere Details,
   lesen Sie Abschnitt 30.6.10 und die Dokumentation von BIND.

     --------------------------------------------------------------

  30.6.9. Sicherheit

   Obwohl BIND die am meisten verwendete (und kontrollierte)
   Implementierung von DNS darstellt, werden dennoch manchmal neue
   Sicherheitsprobleme entdeckt.

   Zwar startet FreeBSD named automatisch in einer
   chroot(8)-Umgebung, es gibt aber noch weitere
   Sicherheitsmechanismen, mit denen Sie potentielle
   DNS-Serviceattacken erschweren ko:nnen.

   Es ist daher eine gute Idee, die Sicherheitshinweise von CERT zu
   lesen sowie die Mailingliste FreeBSD security notifications zu
   abonnieren, um sich u:ber Sicherheitsprobleme im Zusammenhang mit
   dem Internet und FreeBSD zu informieren.

     Tipp: Tritt ein Problem auf, kann es nie schaden, die Quellen zu
     aktualisieren und named neu zu kompilieren.

     --------------------------------------------------------------

  30.6.10. Weitere Informationsquellen

   Hilfeseiten zu BIND/named: rndc(8) named(8) named.conf(5)
   nsupdate(8) dnssec-signzone(8) dnssec-keygen(8)

     * Offizielle ISC-Seite zu BIND

     * Offizielles Forum zu ISC- BIND

     * O'Reilly DNS and BIND 5th Edition

     * Root DNSSEC

     * DNSSEC Vertrauensanker-Publikation fu:r die Root-Zone

     * RFC1034 - Domain Names - Concepts and Facilities

     * RFC1035 - Domain Names - Implementation and Specification

     * RFC4033 - DNS Security Introduction and Requirements

     * RFC4034 - Resource Records for the DNS Security Extensions

     * RFC4035 - Protocol Modifications for the DNS Security
       Extensions

     * RFC4641 - DNSSEC Operational Practices

     * RFC 5011 - Automated Updates of DNS Security (DNSSEC) Trust
       Anchors

     --------------------------------------------------------------

30.7. Der Apache HTTP-Server

   Beigetragen von Murray Stokely.

     --------------------------------------------------------------

  30.7.1. U:berblick

   Einige der weltgro:ssten Internetauftritte laufen unter FreeBSD.
   Die Mehrzahl der Webserver im Internet nutzt den Apache
   HTTP-Server. Die Installationspakete fu:r den Apache sollten auf
   Ihrem Installationsmedium vorhanden sein. Wenn Sie den Apache noch
   nicht installiert haben, ko:nnen Sie dies jederzeit u:ber den Port
   www/apache13 oder www/apache22 nachholen.

   Nachdem der Apache erfolgreich installiert wurde, muss er noch
   konfiguriert werden.

     Anmerkung: Dieser Abschnitt beschreibt die Version 1.3.X des
     Apache HTTP-Servers, da diese Version unter FreeBSD am
     ha:ufigsten verwendet wird. Apache 2.X bringt zwar viele
     Verbesserungen mit sich, wird hier aber nicht beschrieben.
     Sollten Sie an Apache 2.X interessiert sein, informieren Sie
     sich bitte auf http://httpd.apache.org/.

     --------------------------------------------------------------

  30.7.2. Konfiguration

   Der Apache HTTP-Server wird unter FreeBSD prima:r u:ber die Datei
   /usr/local/etc/apache/httpd.conf konfiguriert. Bei dieser Datei
   handelt es sich um eine typische UNIX-Konfigurationsdatei, in der
   Kommentarzeilen mit einem #-Zeichen beginnen. Eine komplette
   Beschreibung aller Optionen wu:rde den Rahmen dieses Handbuchs
   sprengen, daher beschreiben wir hier nur die am ha:ufigsten
   verwendeten Optionen.

   ServerRoot "/usr/local"

           Legt das Standardwurzelverzeichnis fu:r die
           Apache-Installation fest. Bina:rdateien werden in die
           Verzeichnisse bin und sbin unterhalb des
           Serverwurzelverzeichnisses installiert, wa:hrend sich
           Konfigurationsdateien im Verzeichnis etc/apache befinden.

   ServerAdmin you@your.address

           Die E-Mail-Adresse, an die Mitteilungen u:ber
           Serverprobleme geschickt werden sollen. Diese Adresse
           erscheint auf vom Server erzeugten Seiten, beispielsweise
           auf Fehlerseiten.

   ServerName www.example.com

           U:ber die Option ServerName ko:nnen Sie einen Rechnernamen
           festlegen, den Ihr Server an die Clients sendet, wenn sich
           dieser von tatsa:chlichen Rechnernamen unterscheidet (sie
           ko:nnten etwa www statt des richtigen Rechnernamens
           verwenden).

   DocumentRoot "/usr/local/www/data"

           DocumentRoot: Das Verzeichnis, in dem Sie Ihre Dokumente
           ablegen. In der Voreinstellung befinden sich alle Seiten
           in diesem Verzeichnis, durch symbolische Links oder Aliase
           lassen sich aber auch andere Orte festlegen.

   Es ist empfehlenswert, eine Sicherungskopie Ihrer
   Konfigurationsdatei anzulegen, bevor Sie A:nderungen durchfu:hren.
   Nachdem Sie die Konfiguration beendet haben, ko:nnen Sie den
   Apache starten.

     --------------------------------------------------------------

  30.7.3. Den Apache betreiben

   Der Apache wird, im Gegensatz zu vielen anderen Netzwerkservern,
   nicht vom inetd-Super-Server verwaltet, sondern wird als
   eigensta:ndiger Server betrieben, um die Leistung fu:r
   eintreffende HTTP-Anfragen von den Clients (also von
   Internetbrowsern) zu verbessern. Gestartet, beendet oder neu
   gestartet wird der Server u:ber einen Shellskript-Wrapper. Um den
   Apache erstmals zu starten, geben Sie einfach Folgendes ein:

 # /usr/local/sbin/apachectl start

   Wenn Sie den Server beenden wollen, geben Sie Folgendes ein:

 # /usr/local/sbin/apachectl stop

   Wenn Sie die Konfigurationsdatei vera:ndern, mu:ssen Sie den
   Server neu starten:

 # /usr/local/sbin/apachectl restart

   Um den Apache ohne den Abbruch bestehender Verbindungen neu zu
   starten, geben Sie Folgendes ein:

 # /usr/local/sbin/apachectl graceful

   Diese und weitere Optionen werden in apachectl(8) beschrieben.

   Um den Apache beim Systemstart zu starten, fu:gen Sie folgende
   Zeile in /etc/rc.conf ein:

 apache_enable="YES"

   Um Apache 2.2 zu starten, fu:gen Sie hingegen folgende Zeile ein:

 apache22_enable="YES"

   Wenn Sie wa:hrend des Systemstarts weitere Parameter an den
   Apache-httpd-Daemon u:bergeben wollen, ko:nnen Sie diese durch
   eine zusa:tzliche Zeile in rc.conf angeben:

 apache_flags=""

   Nachdem der Webserver gestartet ist, ko:nnen Sie sich Ihre
   Internetseite ansehen, indem Sie in Ihren Browser die Adresse
   http://localhost/ eingeben. Die vordefinierte Standardstartseite
   ist /usr/local/www/data/index.html.

     --------------------------------------------------------------

  30.7.4. Virtual Hosting

   Der Apache unterstu:tzt zwei Formen des Virtual Hostings. Die
   erste Mo:glichkeit bezeichnet man als namenbasiertes virtuelles
   Hosting. Dabei wird der HTTP/1.1-Header der Clients dazu
   verwendet, den Rechnernamen zu bestimmen. Dadurch wird es
   mo:glich, mehrere Domains unter der gleichen IP-Adresse zu
   betreiben.

   Damit der Apache namenbasierte virtuelle Domains verwalten kann,
   fu:gen Sie die folgende Zeile in httpd.conf ein:

 NameVirtualHost *

   Wenn Ihr Webserver www.domain.tld heisst und Sie die virtuelle
   Domain www.someotherdomain.tld einrichten wollen, erga:nzen Sie
   httpd.conf um folgende Eintra:ge:

 <VirtualHost *>
 ServerName www.domain.tld
 DocumentRoot /www/domain.tld
 </VirtualHost>

 <VirtualHost *>
 ServerName www.someotherdomain.tld
 DocumentRoot /www/someotherdomain.tld
 </VirtualHost>

   Ersetzen Sie dabei die Adressen sowie den Pfad zu den Dokumenten
   durch Ihre eigenen Einstellungen.

   Ausfu:hrliche Informationen zum Einrichten von virtuellen Domains
   finden Sie in der offiziellen Apache-Dokumentation unter
   http://httpd.apache.org/docs/vhosts/.

     --------------------------------------------------------------

  30.7.5. Ha:ufig verwendete Apache-Module

   Es gibt viele verschiedene Apache-Module, die den Server um
   zusa:tzliche Funktionen erweitern. Die FreeBSD-Ports-Sammlung
   ermo:glicht es Ihnen, den Apache gemeinsam mit einigen der
   beliebtesten Zusatzmodule zu installieren.

     --------------------------------------------------------------

    30.7.5.1. mod_ssl

   Das Modul mod_ssl verwendet die OpenSSL-Bibliothek, um, unter
   Nutzung der Protokolle Secure Sockets Layer (SSL v2/v3) sowie
   Transport Layer Security (TLS v1) starke Verschlu:sselung zu
   ermo:glichen. Durch dieses Modul ko:nnen Sie ein signiertes
   Zertifikat von einer Zertifizierungsstelle anfordern, damit Sie
   einen sicheren Webserver unter FreeBSD betreiben ko:nnen.

   Wenn Sie den Apache 1.3.X noch nicht installiert haben, ko:nnen
   Sie u:ber den Port www/apache13-modssl eine Apache-Version
   installieren, in die mod_ssl als Modul einkompiliert wurde.
   Bevorzugen Sie den Apache 2.X, installieren Sie stattdessen den
   Port www/apache22, bei dem die SSL-Unterstu:tzung bereits in der
   Voreinstellung aktiviert ist.

     --------------------------------------------------------------

    30.7.5.2. Skriptsprachen

   Fu:r die wichtigsten Skriptsprachen existieren Module, die es
   erlauben, Apache-Module nahezu vollsta:ndig in einer Skriptsprache
   zu programmieren. Derartige Module dienen oft dazu, einen
   Sprach-Interpreter in den Webserver einzubetten. Dadurch wird ein
   zusa:tzlicher externer Interpreter u:berflu:ssig, was die
   Startzeit von dynamischen Internetseiten deutlich verringert.

     --------------------------------------------------------------

  30.7.6. Dynamische Webseiten

   In den vergangenen Jahren haben immer mehr Unternehmen das
   Internet als Mittel fu:r die Steigerung ihrer Einnahmen sowie fu:r
   die Erho:hung ihrer Reichweite entdeckt. Dadurch stieg auch die
   Nachfrage nach interaktiven Internetinhalten. Neben einigen
   Unternehmen, darunter Microsoft, die dafu:r proprieta:re Produkte
   entwickelt haben, hat auch die Open Source Community auf diesen
   Umstand reagiert und unter anderem mit Django, Ruby on Rails,
   mod_perl, und mod_php Mo:glichkeiten zur Generierung dynamischer
   Internetseiten geschaffen.

     --------------------------------------------------------------

    30.7.6.1. Django

   Bei Django handelt es sich um ein unter der BSD-Lizenz
   verfu:gbares Framework zur schnellen Erstellung von ma:chtigen
   Internet-Applikationen. Es beinhaltet einen objekt-relationalen
   Mapper (wodurch Datentypen als Phyton-Objekte entwickelt werden
   ko:nnen) sowie eine API fu:r den dynamischen Datenbankzugriff auf
   diese Objekte, ohne dass Entwickler jemals SQL-Code schreiben
   mu:ssen. Zusa:tzlich existiert ein umfangreiches Template-System,
   wodurch die Programmlogik von der HTML-Pra:sentation getrennt
   werden kann.

   Django setzt das Modul mod_python, den Apache-Webserver sowie eine
   SQL-Datenbank voraus. Fu:r FreeBSD gibt es einen Port, der alle
   Abha:ngigkeiten mit sinnvollen Optionen konfiguriert und
   installiert.

   Beispiel 30-3. Django mit Apache2, mod_python3, und PostgreSQL
   installieren

 # cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL

   Nachdem Django (sowie die abha:ngigen Pakete) installiert ist,
   mu:ssen Sie ein Projektverzeichnis erstellen. Danach konfigurieren
   Sie Apache so, dass der eingebettete Python-Interpreter
   spezifische URLs Ihrer Seiten aufruft.

   Beispiel 30-4. Apache-Konfiguration fu:r Django/mod_python

   Sie mu:ssen die Apache-Konfigurationsdatei httpd.conf anpassen,
   damit Apache Anfragen fu:r bestimmte URLs an Ihre
   Internet-Applikation u:bergibt:

 <Location "/">
     SetHandler python-program
     PythonPath "['/dir/to/your/django/packages/'] + sys.path"
     PythonHandler django.core.handlers.modpython
     SetEnv DJANGO_SETTINGS_MODULE mysite.settings
     PythonAutoReload On
     PythonDebug On
 </Location>

     --------------------------------------------------------------

    30.7.6.2. Ruby on Rails

   Bei Ruby on Rails handelt es sich um ein weiteres, als Open Source
   verfu:gbares Webframework. Es bietet einen kompletten
   Entwicklungsstack und erlaubt es Webentwicklern, umfangreiche und
   ma:chtige Applikationen in kurzer Zeit zu programmieren. Das
   Framework kann u:ber die Ports-Sammlung installiert werden.

 # cd /usr/ports/www/rubygem-rails; make all install clean

     --------------------------------------------------------------

    30.7.6.3. mod_perl

   Die Kombination Apache/Perl vereinigt die Vorteile der
   Programmiersprache Perl und des Apache HTTP-Servers. Durch das
   Modul mod_perl ist es mo:glich, vollsta:ndig in Perl geschriebene
   Apache-Module zu erzeugen. Da der Perl-Interpreter in den Server
   eingebettet wird, mu:ssen Sie weder einen externen Interpreter
   noch Perl zusa:tzlich aufrufen.

   mod_perl ist in verschiedenen Versionen erha:ltlich. Bevor Sie
   mod_perl einsetzen,denken Sie bitte daran, dass mod_perl 1.0 nur
   mit Apache 1.3 und mod_perl 2.0 nur mit Apache 2.X
   zusammenarbeitet. mod_perl 1.0 kann u:ber den Port www/mod_perl,
   eine statisch kompilierte Version hingegen u:ber den Port
   www/apache13-modperl installiert werden. Fu:r die Installation von
   mod_perl 2.0 schliesslich verwenden Sie den Port www/mod_perl2.

     --------------------------------------------------------------

    30.7.6.4. mod_php

   Geschrieben von Tom Rhodes.

   Bei PHP, dem "Hypertext Preprocessor", handelt es sich um eine
   vielseitig verwendbare Skriptsprache, die besonders fu:r die
   Internetprogrammierung geeignet ist. PHP kann in HTML eingebettet
   werden und a:hnelt von der Syntax her Sprachen wie C, Java und
   Perl. Das Hauptanliegen von PHP ist es, Internetprogrammierern die
   rasche Erstellung von dynamisch erzeugten Internetseiten zu
   ermo:glichen.

   Damit Ihr System PHP5 unterstu:tzt, mu:ssen Sie als Erstes den
   Apache Webserver u:ber den Port lang/php5 installieren.

   Wenn Sie den Port lang/php5 das erste Mal installieren, werden die
   verfu:gbaren Optionen (OPTIONS) automatisch angezeigt. Erscheint
   das Konfigurationsmenu: bei Ihnen nicht, so liegt dies daran, dass
   Sie den Port lang/php5 schon einmal auf Ihrem System installiert
   hatten. Es ist aber jederzeit mo:glich, dieses Menu: aus dem
   Ports-Verzeichnis heraus u:ber folgenden Befehl erneut aufzurufen:

 # make config

   In diesem Konfigurationsmenu: mu:ssen Sie die Option APACHE
   auswa:hlen, damit mod_php5 als ein vom Apache-Webserver ladbares
   Modul gebaut wird.

     Anmerkung: Viele Seiten verwenden nach wie vor (beispielsweise
     wegen der beno:tigten Kompatibilita:t zu bereits vorhandenen
     Web-Applikationen) PHP4. Ist dies bei Ihnen der Fall, so mu:ssen
     Sie statt mod_php5 mod_php4 u:ber den Port lang/php4
     installieren. Der Port lang/php4 unterstu:tzt viele der
     Konfigurations- und Laufzeitoptionen von lang/php5.

   Dieser Port installiert und konfiguriert die Module, die fu:r die
   Unterstu:tzung von dynamischen PHP-Anwendungen beno:tigt werden.
   Stellen Sie danach sicher, dass Ihre
   /usr/local/etc/apache/httpd.conf die folgenden Abschnitte
   entha:lt:

 LoadModule php5_module        libexec/apache/libphp5.so

 AddModule mod_php5.c
     <IfModule mod_php5.c>
         DirectoryIndex index.php index.html
     </IfModule>
     <IfModule mod_php5.c>
         AddType application/x-httpd-php .php
         AddType application/x-httpd-php-source .phps
     </IfModule>

   Nachdem dies erledigt ist, rufen Sie apachectl auf, um das
   PHP-Modul zu laden:

 # apachectl graceful

   Bei ku:nftigen Upgrades von PHP wird make config nicht mehr
   beno:tigt, da die von Ihnen urspru:nglich ausgewa:hlten Optionen
   (OPTIONS) vom FreeBSD-Ports-Framework automatisch gespeichert
   werden.

   Die PHP-Unterstu:tzung von FreeBSD ist stark modular aufgebaut,
   daher verfu:gt eine Basisinstallation nur u:ber wenige Funktionen.
   Eine Erweiterung um zusa:tzliche Funktionen ist allerdings sehr
   einfach u:ber den Port lang/php5-extensions mo:glich. Der Port
   bietet Ihnen ein Auswahlmenu:, u:ber das Sie verschiedene
   PHP-Erweiterungen installieren ko:nnen. Alternativ ko:nnen Sie
   einzelne Erweiterungen aber weiterhin direkt u:ber den jeweiligen
   Port installieren.

   Um beispielsweise die Unterstu:tzung des Datenbankservers MySQL in
   PHP5 zu aktivieren, installieren Sie den Port
   databases/php5-mysql.

   Nachdem Sie eine Erweiterung installiert haben, mu:ssen Sie den
   Apache-Server neu starten, damit die Erweiterung auch erkannt
   wird:

 # apachectl graceful

   Ab nun wird MySQL von PHP unterstu:tzt.

     --------------------------------------------------------------

30.8. FTP - File Transfer Protocol

   Beigetragen von Murray Stokely.

     --------------------------------------------------------------

  30.8.1. U:berblick

   Das File Transfer Protocol (FTP) ermo:glicht auf einfache Art und
   Weise den Dateiaustausch mit einem FTP-Server. Der FTP-Server ftpd
   ist bei FreeBSD bereits im Basisystem enthalten. Daher sind
   Konfiguration und Betrieb eines FTP-Servers unter FreeBSD relativ
   einfach.

     --------------------------------------------------------------

  30.8.2. Konfiguration

   Der wichtigste Punkt ist hier die Entscheidung daru:ber, welche
   Benutzer auf Ihren FTP-Server zugreifen du:rfen. Ein
   FreeBSD-System verfu:gt u:ber diverse Systembenutzerkonten, um
   einzelnen Daemonen den Zugriff auf das System zu ermo:glichen.
   Anonyme Benutzer sollten sich allerdings nicht u:ber diese
   Benutzerkonten anmelden du:rfen. Die Datei /etc/ftpusers entha:lt
   alle Benutzer, die vom FTP-Zugriff ausgeschlossen sind. In der
   Voreinstellung gilt dies auch die gerade erwa:hnten
   Systembenutzerkonten. Sie ko:nnen u:ber diese Datei weitere
   Benutzer vom FTP-Zugriff ausschliessen.

   Sie ko:nnen den Zugriff fu:r einige Benutzer einschra:nken, ohne
   FTP komplett zu verbieten. Dazu passen Sie /etc/ftpchroot
   entsprechend an. Diese Datei entha:lt Benutzer und Gruppen sowie
   die fu:r sie geltenden FTP-Einschra:nkungen und wird in
   ftpchroot(5) ausfu:hrlich beschrieben.

   Wenn Sie einen anonymen FTP-Zugriff auf Ihren Server ermo:glichen
   wollen, mu:ssen Sie den Benutzer ftp auf Ihrem FreeBSD-System
   anlegen. Danach ko:nnen sich Benutzer mit dem Benutzernamen ftp
   oder anonymous auf Ihrem FTP-Server anmelden. Das Passwort ist
   dabei beliebig (allerdings wird dazu in der Regel eine
   E-Mail-Adresse verwendet). Meldet sich ein anonymer Benutzer an,
   aktiviert der FTP-Server chroot(2), um den Zugriff auf das
   Heimatverzeichnis des Benutzers ftp zu beschra:nken.

   Es gibt zwei Textdateien, deren Inhalt Sie bei der Anmeldung an
   Ihrem FTP-Server anzeigen lassen ko:nnen. Der Inhalt von
   /etc/ftpwelcome wird angezeigt, bevor der Login-Prompt erscheint.
   Nach einer erfolgreichen Anmeldung wird der Inhalt von
   /etc/ftpmotd angezeigt. Beachten Sie aber, dass es dabei um einen
   Pfad relativ zur Umgebung des anzumeldenden Benutzers handelt. Bei
   einer anonymen Anmeldung wu:rde also die Datei ~ftp/etc/ftpmotd
   angezeigt.

   Nachdem Sie den FTP-Server konfiguriert haben, mu:ssen Sie Ihn in
   /etc/inetd.conf aktivieren. Dazu mu:ssen Sie lediglich das
   Kommentarsymbol "#" am Beginn der bereits vorhandenen ftpd-Zeile
   entfernen:

 ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l

   Nachdem Sie diese A:nderung durchgefu:hrt haben, mu:ssen Sie, wie
   in Beispiel 30-1 beschrieben, die inetd-Konfiguration neu
   einlesen. Lesen Sie bitte Abschnitt Abschnitt 30.2.2 des Handbuchs
   fu:r weitere Informationen zur Aktivierung von inetd auf Ihren
   System.

   Alternativ ko:nnen Sie auch nur den ftpd-Server starten. In diesem
   Fall ist es ausreichend, die entsprechende Variable in der Datei
   /etc/rc.conf zu setzen:

 ftpd_enable="YES"

   Nachdem Sie diese Variable gesetzt haben, wird ku:nftig beim
   Systemstart nur der FTP-Server gestartet. Alternativ ko:nnen Sie
   den Server auch manuell starten, indem Sie als Benutzer root den
   folgenden Befehl ausfu:hren:

 # /etc/rc.d/ftpd start

   Danach ko:nnen Sie sich auf Ihrem FTP-Server anmelden:

 % ftp localhost

     --------------------------------------------------------------

  30.8.3. Wartung

   Der ftpd-Daemon verwendet syslog(3), um Protokolldateien zu
   erstellen. In der Voreinstellung werden alle FTP betreffenden
   Nachrichten in die Datei /var/log/xferlog geschrieben. Dies la:sst
   sich aber durch das Einfu:gen der folgenden Zeile in
   /etc/syslog.conf a:ndern:

 ftp.info      /var/log/xferlog

   Beachten Sie, dass mit dem Betrieb eines anonymen FTP-Servers
   verschiedene Sicherheitsrisiken verbunden sind. Problematisch ist
   hier vor allem die Erlaubnis zum anonymen Upload von Dateien.
   Dadurch ko:nnte Ihr Server zur Verbreitung von illegaler oder
   nicht lizensierter Software oder noch Schlimmeren missbraucht
   werden. Wollen Sie anonyme Uploads dennoch erlauben, sollten Sie
   die Zugriffsrechte so setzen, dass solche Dateien erst nach Ihrer
   Zustimmung von anderen Benutzern heruntergeladen werden ko:nnen.

     --------------------------------------------------------------

30.9. Mit Samba einen Datei- und Druckserver fu:r
Microsoft Windows-Clients einrichten

   Beigetragen von Murray Stokely.

     --------------------------------------------------------------

  30.9.1. U:berblick

   Samba ist ein beliebtes Open Source-Softwarepaket, das es Ihnen
   ermo:glicht, einen Datei- und Druckserver fu:r
   Microsoft Windows-Clients einzurichten. Clients ko:nnen sich
   dadurch mit einem FreeBSD-System verbinden und dessen
   Speicherplatz oder dessen Drucker verwenden. Dies genauso, als
   wenn es sich um lokale Drucker oder Festplatten handeln wu:rde.

   Samba sollte als Softwarepaket auf Ihren Installationsmedien
   vorhanden sein. Wenn Sie Samba noch nicht installiert haben,
   ko:nnen Sie dies jederzeit u:ber den Port oder das Paket
   net/samba34 nachholen.

     --------------------------------------------------------------

  30.9.2. Konfiguration

   Die Standardkonfigurationsdatei von Samba heisst
   /usr/local/share/examples/samba34/smb.conf.default. Diese Datei
   muss nach /usr/local/etc/smb.conf kopiert und angepasst werden,
   bevor Samba verwendet werden kann.

   Die Datei smb.conf entha:lt Laufzeitinformationen fu:r Samba,
   beispielsweise Druckerdefinitionen oder filesystem shares, also
   Bereiche des Dateisystems, die Sie mit Windows-Clients teilen
   wollen. Die Konfiguration der Datei smb.conf erfolgt webbasiert
   u:ber das im Samba-Paket enthaltene Programm swat.

     --------------------------------------------------------------

    30.9.2.1. Das Samba Web Administration Tool (SWAT) verwenden

   Das Samba Web Administration Tool (SWAT) wird als Daemon von inetd
   aktiviert. Daher mu:ssen Sie den Kommentar vor der folgenden Zeile
   in /etc/inetd.conf entfernen, bevor Sie swat zur Konfiguration von
   Samba verwenden ko:nnen:

 swat   stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat

   Wie bereits in Beispiel 30-1 beschrieben, mu:ssen Sie die
   inetd-Konfiguration neu einlesen, nachdem Sie diese A:nderung
   durchgefu:hrt haben.

   Nachdem swat in der Datei inetd.conf aktiviert wurde, rufen Sie in
   Ihrem Internetbrowser die Adresse http://localhost:901 auf und
   melden sich mit dem root-Benutzerkonto an.

   Nachdem Sie sich erfolgreich angemeldet haben, wird die
   Hauptkonfigurationseite von Samba geladen. Sie ko:nnen nun die
   Dokumentation lesen, oder durch einen Klick auf die
   Globals-Karteikarte mit der Konfiguration beginnen. Die
   Einstellungen, die Sie hier vornehmen ko:nnen, entsprechen denen
   des Abschnitts [global] von /usr/local/etc/smb.conf.

     --------------------------------------------------------------

    30.9.2.2. Globale Einstellungen

   Unabha:ngig davon, ob Sie swat verwenden, oder
   /usr/local/etc/smb.conf direkt editieren, sollten Sie zuerst
   folgende Einstellungen anpassen:

   workgroup

           Der NT-Doma:nenname oder der Arbeitsgruppenname der
           Rechner, die auf den Server Zugriff haben sollen.

   netbios name

           Legt den NetBIOS-Namen fest, unter dem der Samba-Server
           bekannt ist. In der Regel handelt es sich dabei um den
           ersten Teil des DNS-Namens des Servers.

   server string

           Legt die Beschreibung fest, die angezeigt werden soll,
           wenn mit net view oder u:ber andere Netzwerkprogramme
           Informationen u:ber den Server angefordert werden.

     --------------------------------------------------------------

    30.9.2.3. Samba absichern

   Zwei der wichtigsten Einstellungen in /usr/local/etc/smb.conf
   betreffen das zu verwendende Sicherheitsmodell sowie das
   Backend-Passwortformat fu:r die Benutzer der Samba-Clients.
   Folgende Optionen sind dafu:r verantwortlich:

   security

           Die ha:ufigsten Optionen sind security = share und
           security = user. Wenn Ihre Clients Benutzernamen
           verwenden, die den Benutzernamen auf Ihrem FreeBSD-Rechner
           entsprechen, dann sollten Sie die Einstellung user level
           verwenden. Dies ist auch die Standardeinstellung.
           Allerdings ist es dazu erforderlich, dass sich die Clients
           auf Ihrem Rechner anmelden, bevor sie auf gemeinsame
           Ressourcen zugreifen ko:nnen.

           In der Einstellung share level mu:ssen sich Clients nicht
           unter Verwendung eines gu:ltigen Logins auf Ihrem Rechner
           anmelden, bevor sie auf gemeinsame Ressourcen zugreifen
           ko:nnen. In fru:heren Samba-Versionen war dies die
           Standardeinstellung.

   passdb backend

           Samba erlaubt verschiedene
           Backend-Authentifizierungsmodelle. Sie ko:nnen Clients
           durch LDAP, NIS+, eine SQL-Datenbank oder eine
           Passwortdatei authentifizieren. In der Voreinstellung wird
           smbpasswd verwendet. Diese Methode wird im folgenden
           Abschnitt na:her beschrieben.

   Wenn Sie smbpasswd verwenden, mu:ssen Sie die Datei
   /usr/local/etc/samba/smbpasswd erzeugen, damit Samba in der Lage
   ist, Clients zu authentifizieren. Wenn Sie auf Ihrem UNIX-Rechner
   vorhandenen Benutzern den Zugriff von einem Windows-Client aus
   ermo:glichen wollen, verwenden Sie den folgenden Befehl:

 # smbpasswd -a username

     Anmerkung: Als Backend wird inzwischen tdbsam empfohlen. Mit dem
     folgenden Befehl legen Sie neue Benutzerkonten an:

 # pdbedit -a -u username

   Ausfu:hrliche Informationen zur Konfiguration von Samba finden Sie
   im Official Samba HOWTO. Sie sollten aber bereits nach dem Lesen
   dieses Abschnitts in der Lage sein, Samba zu starten.

     --------------------------------------------------------------

  30.9.3. Samba starten

   Der Port net/samba34 legt ein neues Startskript an, mit dem Samba
   gesteuert (also etwa gestartet oder beendet) werden kann. Um
   dieses Skript zu aktivieren, fu:gen Sie folgende Zeile in
   /etc/rc.conf ein:

 samba_enable="YES"

   Alternativ ko:nnen Sie auch die folgenden beiden Eintra:ge
   verwenden:

 nmbd_enable="YES"

 smbd_enable="YES"

     Anmerkung: Durch diese Eintra:ge wird Samba beim Systemstart
     automatisch aktiviert.

   Danach ko:nnen Sie Samba jederzeit durch folgenden Befehl starten:

 # /usr/local/etc/rc.d/samba start
 Starting SAMBA: removing stale tdbs :
 Starting nmbd.
 Starting smbd.

   Weitere Informationen zu den rc-Startskripten finden Sie im
   Abschnitt 12.7 des Handbuchs.

   Samba verwendet drei Daemonen. Beachten Sie, dass sowohl nmbd als
   auch smbd durch das Skript samba gestartet werden. Wenn Sie die
   winbind name resolution services in smb.conf aktiviert haben, wird
   zusa:tzlich der winbindd-Daemon gestartet.

   Sie ko:nnen Samba jederzeit durch den folgenden Befehl beenden:

 # /usr/local/etc/rc.d/samba stop

   Samba ist ein komplexes Softwarepaket mit umfassenden Funktionen,
   die eine weitreichende Integration von
   Microsoft Windows-Netzwerken ermo:glichen. Fu:r eine Beschreibung
   dieser Zusatzfunktionen sollten Sie sich auf http://www.samba.org
   umsehen.

     --------------------------------------------------------------

30.10. Die Uhrzeit mit NTP synchronisieren

   Beigetragen von Tom Hukins.

     --------------------------------------------------------------

  30.10.1. U:berblick

   Da die interne Uhrzeit eines Computers nie ganz exakt ist, wurde
   mit NTP (Network Time Protocol) eine Mo:glichkeit geschaffen, die
   exakte Uhrzeit zu ermitteln und festzulegen.

   Viele Internetdienste sind von einer exakten Uhrzeit abha:ngig.
   Ein Webserver ko:nnte beispielsweise die Anforderung erhalten,
   eine Datei zu versenden, wenn sich diese in einer bestimmten
   Zeitspanne gea:ndert hat. In einem lokalen Netzwerk ist es
   unbedingt notwendig, dass Rechner, die Dateien von einem
   gemeinsamen Dateiserver beziehen, ihre Uhrzeit synchronisieren,
   damit die Zeitstempel der Dateien konstistent bleiben. Dienste wie
   cron(8) fu:hren Befehle zu einem bestimmten Zeitpunkt aus. Ist die
   Uhrzeit nicht korrekt, kann dies zu Problemen fu:hren.

   FreeBSD verwendet den ntpd(8)- NTP-Server, um die genaue Uhrzeit
   von anderen NTP-Servern abzufragen, die eigene Systemzeit zu
   setzen, oder um diese anderen Rechnern anzubieten.

     --------------------------------------------------------------

  30.10.2. Einen passenden NTP-Server auswa:hlen

   Um die Uhrzeit zu synchronisieren, mu:ssen Sie sich mit einem
   NTP-Server verbinden. Ihr Netzwerkadministrator oder Ihr
   Internetprovider haben vielleicht schon einen NTP-Server
   eingerichtet. Lesen Sie deren Dokumentation, um dies zu
   u:berpru:fen. Es gibt im Internet eine Liste mit frei
   zuga:nglichen NTP-Servern, aus der Sie sich einen in Ihrer Na:he
   gelegenen Server auswa:hlen ko:nnen. Beachten Sie aber auf jeden
   Fall die Nutzungsbedingungen des entsprechenden Servers, und
   fragen Sie um Erlaubnis, wenn dies no:tig ist.

   Die Auswahl von mehreren NTP-Servern kann sinnvoll sein, wenn ein
   Server ausfa:llt oder falsche Zeiten liefert. ntpd(8) verwendet
   die Antworten anderer Server, um zuverla:ssige Server zu
   bestimmen, die dann bevorzugt abgefragt werden.

     --------------------------------------------------------------

  30.10.3. NTP unter FreeBSD einrichten

     --------------------------------------------------------------

    30.10.3.1. NTP aktivieren

   Wenn Sie Ihre Uhrzeit nur beim Systemstart synchronisieren wollen,
   ko:nnen Sie ntpdate(8) verwenden. Fu:r Desktoprechner, die
   regelma:ssig neu gestartet werden und keine sta:ndige
   Synchronisation beno:tigen, ist dies akzeptabel. In allen anderen
   Fa:llen sollten Sie jedoch ntpd(8) verwenden.

   Die Ausfu:hrung von ntpdate(8) wa:hrend des Systemstarts ist aber
   auch fu:r Rechner, die ntpd(8) verwenden, sinnvoll. ntpd(8) passt
   die Systemzeit nur bei gro:sseren Abweichungen an, wa:hrend
   ntpdate(8) die Zeit immer synchronisiert, egal wie gross die
   Differenz zwischen Systemzeit und korrekter Zeit ist.

   Um ntpdate(8) beim Systemstart zu aktivieren, fu:gen Sie den
   Eintrag ntpdate_enable="YES" in /etc/rc.conf ein. Ausserdem
   mu:ssen Sie alle Server, mit denen Sie sich synchronisieren
   wollen, sowie alle an ntpdate(8) zu u:bergebenden Optionen in den
   ntpdate_flags angeben.

     --------------------------------------------------------------

    30.10.3.2. NTP einrichten

   Die Konfiguration von NTP erfolgt u:ber die Datei /etc/ntp.conf,
   und wird in der Hilfeseite ntp.conf(5) beschrieben. Dazu ein
   einfaches Beispiel:

 server ntplocal.example.com prefer
 server timeserver.example.org
 server ntp2a.example.net

 driftfile /var/db/ntp.drift

   Die Option server legt die zu verwendenden Server fest, wobei
   jeder Server in einer eigenen Zeile steht. Wenn ein Server mit der
   Option prefer versehen ist, wie dies hier bei ntplocal.example.com
   der Fall ist, wird dieser Server bevorzugt verwendet. Eine Antwort
   von einem bevorzugten Server wird nur dann verworfen, wenn sie
   signifikant von denen anderer Server abweicht, ansonsten wird sie
   ohne Abfrage weiterer Server verwendet. Die Option prefer wird
   gewo:hnlich nur fu:r sehr zuverla:ssige und genaue Server
   verwendet, die u:ber eine spezielle Hardware zur Zeitu:berwachung
   verfu:gen.

   Die Option driftfile legt fest, in welcher Datei die Abweichungen
   der Systemuhr protokolliert werden. ntpd(8) verwendet diese Datei,
   um die Systemzeit automatisch anzupassen, selbst wenn kurzzeitig
   kein NTP-Server zur Synchronisation verfu:gbar ist.

   Weiterhin legt die Option driftfile fest, wo Informationen u:ber
   fru:here Antworten des von Ihnen verwendeten NTP-Servers
   gespeichert werden sollen. Diese Datei entha:lt NTP-interne
   Informationen, sie sollte daher von anderen Prozessen nicht
   vera:ndert werden.

     --------------------------------------------------------------

    30.10.3.3. Den Zugang zu Ihrem NTP-Server beschra:nken

   In der Voreinstellung ist Ihr NTP-Server fu:r alle Rechner im
   Internet erreichbar. U:ber die Option restrict in der Datei
   /etc/ntp.conf ko:nnen Sie den Zugang zu Ihrem Server beschra:nken.

   Wenn Sie alle Rechner vom Zugriff auf Ihren NTP-Server
   ausschliessen wollen, fu:gen Sie folgende Zeile in /etc/ntp.conf
   ein:

 restrict default ignore

     Anmerkung: Durch diesen Eintrag verhindern Sie den Zugriff Ihres
     Servers auf alle auf Ihrem System konfigurierten Server. Mu:ssen
     Sie Ihren NTP-Server mit einem externen NTP-Server
     synchronisieren, mu:ssen Sie dies daher dezidiert zulassen.
     Lesen Sie in diesem Fall die Manualpage ntp.conf(5).

   Wenn Sie nur Rechnern Ihres eigenen Netzwerks die Synchronisation
   mit Ihrem NTP-Server erlauben, gleichzeitig aber verhindern
   wollen, dass diese den NTP-Server konfigurieren oder als Server
   fu:r andere Rechner dienen ko:nnen, fu:gen Sie folgende Zeile ein:

 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

   Bei 192.168.1.0 handelt es sich um einen Rechner Ihres Netzwerks.
   255.255.255.0 ist die Netzmaske Ihres Netzwerks.

   /etc/ntp.conf kann verschiedene restrict-Optionen enthalten.
   Weiteres erfahren Sie im Abschnitt Access Control Support der
   Hilfeseite ntp.conf(5).

     --------------------------------------------------------------

  30.10.4. Den NTP-Server starten

   Damit der NTP-Server beim Systemstart automatisch gestartet wird,
   fu:gen Sie den Eintrag ntpd_enable="YES" in /etc/rc.conf ein. Wenn
   Sie weitere Argumente an ntpd(8) u:bergeben wollen, passen Sie die
   Option ntpd_flags in der Datei /etc/rc.conf entsprechend an.

   Um den NTP-Server ohne einen Systemneustart zu starten, rufen Sie
   ntpd mit den unter ntpd_flags in /etc/rc.conf festgelegten
   Parametern auf. Hierzu ein Beispiel:

 # ntpd -p /var/run/ntpd.pid

     --------------------------------------------------------------

  30.10.5. ntpd mit einer Einwahlverbindung verwenden

   ntpd(8) beno:tigt keine sta:ndige Internetverbindung. Wenn Sie
   sich ins Internet einwa:hlen, ist es sinnvoll, zu verhindern, dass
   NTP-Verkehr eine Verbindung aufbauen oder aufrechterhalten kann.
   Wenn Sie user-PPP verwenden, ko:nnen Sie dies in den
   filter-Direktiven von /etc/ppp/ppp.conf festlegen. Sehen Sie sich
   dazu das folgende Beispiel ein:

 set filter dial 0 deny udp src eq 123
 # Prevent NTP traffic from initiating dial out
 set filter dial 1 permit 0 0
 set filter alive 0 deny udp src eq 123
 # Prevent incoming NTP traffic from keeping the connection open
 set filter alive 1 deny udp dst eq 123
 # Prevent outgoing NTP traffic from keeping the connection open
 set filter alive 2 permit 0/0 0/0

   Weitere Informationen finden Sie im Abschnitt PACKET FILTERING von
   ppp(8) sowie in den Beispielen unter /usr/share/examples/ppp/.

     Anmerkung: Einige Internetprovider blockieren Ports mit
     niedrigen Nummern. In solchen Fa:llen funktioniert NTP leider
     nicht, da Antworten eines NTP-Servers Ihren Rechner nicht
     erreichen werden.

     --------------------------------------------------------------

  30.10.6. Weitere Informationen

   Weiterfu:hrende Dokumentation (im HTML-Format) zum NTP-Server
   finden Sie unter /usr/share/doc/ntp/.

     --------------------------------------------------------------

30.11. Protokollierung von anderen Hosts mittels syslogd

   Beigetragen von Tom Rhodes. U:bersetzt von Benedict Reuschling.

   Die Interaktion mit Systemprotokollen ist ein wichtiger Aspekt,
   sowohl was Sicherheit als auch Systemadministration anbelangt.
   U:berwachen der Protokolldateien von mehreren Hosts kann sehr
   unhandlich werden, wenn diese Hosts u:ber mittlere oder grosse
   Netze verteilt sind oder wenn sie Teile von unterschiedlichen
   Netzwerken sind. In diesen Fa:llen macht die Konfiguration der
   Protokollierung von anderen Hosts diesen Prozess wesentlich
   komfortabler.

   Die zentralisierte Protokollierung auf einen bestimmten
   Protokollierungshost kann manche der administrativen Belastungen
   der Protokolldateiadministration reduzieren.
   Protokolldateiaggregation, -zusammenfu:hrung und -rotation kann an
   einer zentralen Stelle mit den FreeBSD-eigenen Werkzeugen wie
   syslogd(8) und newsyslog(8) konfiguriert werden. In der folgenden
   Beispielkonfiguration sammelt Host A, genannt logserv.example.com,
   Protokollinformationen fu:r das lokale Netzwerk. Host B, genannt
   logclient.example.com wird seine Protokollinformationen an den
   Server weiterleiten. In realen Konfigurationen beno:tigen beide
   Hosts passende Vorwa:rts- und Umkehr-Eintra:ge im DNS oder in
   /etc/hosts. Andernfalls werden die Daten vom Server abgelehnt.

     --------------------------------------------------------------

  30.11.1. Konfiguration des Protokollierungs-Servers

   Protokollierungs-Server sind Maschinen, die konfiguriert sind,
   Protokollinformationen von anderen Hosts zu akzeptieren. In den
   meisten Fa:llen wird dies zur Vereinfachung der Konfiguration
   eingesetzt, in anderen Fa:llen ist es einfach nur ein Schritt in
   eine bessere Verwaltung. Was auch immer die Gru:nde sind, ein paar
   Anforderungen mu:ssen vorher erfu:llt sein.

   Ein richtig konfigurierter Protokollierungs-Server muss minimal
   die folgenden Anforderungen erfu:llen:

     * Das Regelwerk der Firewall muss UDP auf Port 514 sowohl auf
       Client- als auch auf Serverseite erlauben;

     * syslogd wurde so konfiguriert, dass es Nachrichten von anderen
       Clientrechnern akzeptiert;

     * Der syslogd-Server und alle Clientrechner mu:ssen gu:ltige
       Eintra:ge fu:r sowohl Vorwa:rts- als auch Umkehr-DNS besitzen,
       oder in /etc/hosts korrekt eingetragen sein.

   Um den Protokollierungs-Server zu konfigurieren, muss der Client
   in /etc/syslog.conf eingetragen sein und der Verbindungsweg der
   Protokollierung muss spezifiziert sein:

 +logclient.example.com
 *.*     /var/log/logclient.log

     Anmerkung: Weitere Informationen zu den verschiedenen
     unterstu:tzten und verfu:gbaren Verbindungswegen finden sich in
     der Manualpage syslog.conf(5).

   Einmal hinzugefu:gt, werden alle Nachrichten u:ber den
   Verbindungsweg in die zuvor angegebene Datei,
   /var/log/logclient.log protokolliert.

   Der Server beno:tigt ausserdem die folgenden Zeilen in der
   /etc/rc.conf:

 syslogd_enable="YES"
 syslogd_flags="-a logclient.example.com -v -v"

   Die erste Option aktiviert den syslogd-Dienst wa:hrend des
   Systemstarts und die zweite Option erlaubt es, Daten von dem
   spezifizierten Client auf diesem Server zu akzeptieren. Die
   Verwendung von -v -v im letzten Teil erho:ht die Anzahl von
   Protokollnachrichten. Dies ist sehr hilfreich fu:r die
   Feineinstellung der Verbindungspfade, da Administratoren auf diese
   Weise erkennen, welche Arten von Nachrichten unter welchen
   Einstellungen protokolliert werden.

   Mehrere -a-Optionen ko:nnen angegeben werden, um die
   Protokollierung von mehreren Clients zu erlauben. IP-Adressen und
   ganze Netzblo:cke ko:nnen ebenfalls spezifiziert werden. Lesen Sie
   dazu die syslog(3)-Manualpage, um eine vollsta:ndige Liste von
   mo:glichen Optionen zu erhalten.

   Zum Schluss muss noch die Protokolldatei erstellt werden. Auf
   welche Weise dies geschieht ist nicht wichtig, aber in den meisten
   Fa:llen funktioniert touch(1) grossartig, wie hier dargestellt:

 # touch /var/log/logclient.log

   Zu diesem Zeitpunkt sollte der syslogd-Dienst neu gestartet und
   u:berpru:ft werden:

 # /etc/rc.d/syslogd restart
 # pgrep syslog

   Wenn eine PID zuru:ckgegeben wird, wurde der Server erfolgreich
   neu gestartet und die Clientkonfiguration kann beginnen. Wenn der
   Server nicht neu gestartet wurde, suchen Sie im
   /var/log/messages-Protokoll nach eventuellen Fehlermeldungen.

     --------------------------------------------------------------

  30.11.2. Konfiguration des Protokollierungs-Clients

   Ein Protokollierungs-Client ist eine Maschine, die
   Protokollinformationen an einen Protokollierungs-Server sendet,
   zusa:tzlich zu ihren lokalen Kopien.

   A:hnlich wie Protokollierungs-Server mu:ssen Clients auch ein paar
   minimale Anforderungen erfu:llen:

     * syslogd(8) muss so konfiguriert sein, dass es Nachrichten
       eines bestimmten Typs an einen Protokollierungs-Server
       schickt, welcher diese akzeptieren muss;

     * Die Firewall muss UDP-Pakete durch Port 514 erlauben;

     * Sowohl Vorwa:rts- als auch Umkehr-DNS muss konfiguriert sein
       oder es mu:ssen passende Eintra:ge in /etc/hosts vorhanden
       sein.

   Die Clientkonfiguration ist ein bisschen entspannter, verglichen
   mit der des Servers. Der Clientrechner muss ebenfalls die
   folgenden Eintra:ge in der /etc/rc.conf besitzen:

 syslogd_enable="YES"
 syslogd_flags="-s -v -v"

   Wie zuvor aktivieren diese Eintra:ge den syslogd-Dienst wa:hrend
   des Systemstarts und erho:hen die Anzahl der Protokollnachrichten.
   Die Option -s verhindert, dass dieser Client Protokolle von
   anderen Hosts akzeptiert.

   Verbindungspfade beschreiben den Systemteil, fu:r den eine
   Nachricht generiert wird. Beispielsweise sind ftp und ipfw beides
   Verbindungspfade. Wenn Protokollnachrichten fu:r diese beiden
   Dienste generiert werden, sind diese beiden Werkzeuge
   normalerweise in jeder Protokollnachricht enthalten.
   Verbindungspfade sind mit einer Priorita:t oder Stufe verbunden,
   die dazu verwendet wird, zu markieren, wie wichtig eine Nachricht
   im Protokoll ist. Die Ha:ftigste ist warning und info. Bitte lesen
   Sie die syslog(3) Manualpage, um eine komplette Liste der
   verfu:gbaren Verbindungspfade und Priorita:ten zu erhalten.

   Der Protokollierungs-Server muss in der /etc/syslog.conf des
   Clients eingetragen sein. In diesem Beispiel wird das @-Symbol
   benutzt, um Protokolldaten an einen anderen Server zu senden. Der
   Eintrag sieht wie folgt aus:

 *.*               @logserv.example.com

   Einmal hinzugefu:gt, muss syslogd neu gestartet werden, damit
   diese A:nderungen wirksam werden:

 # /etc/rc.d/syslogd restart

   Um zu testen, ob Protokollnachrichten u:ber das Netzwerk gesendet
   werden, kann logger(1) auf dem Client benutzt werden, um eine
   Nachricht an syslogd zu schicken:

 # logger "Test message from logclient"

   Diese Nachricht sollte jetzt sowohl in /var/log/messages auf dem
   Client, als auch in /var/log/logclient.log auf dem Server
   vorhanden sein.

     --------------------------------------------------------------

  30.11.3. Fehlerbehebung beim Protokollierungs-Server

   In bestimmten Fa:llen ist die Fehlerbehebung notwendig, wenn
   Nachrichten nicht auf dem Protokollierungs-Server empfangen
   werden. Es gibt mehrere Gru:nde dafu:r, jedoch treten am
   ha:ufigsten Probleme bei der Netzwerkverbindung und beim DNS auf.
   Um diese Fa:lle zu u:berpru:fen, stellen Sie sicher, dass beide
   Hosts in der Lage sind, sich gegenseitig u:ber den Hostnamen zu
   erreichen, der in /etc/rc.conf angegeben ist. Wenn das
   funktioniert, ist mo:glicherweise eine A:nderung der
   syslogd_flags-Option in /etc/rc.conf notwendig.

   Im folgenden Beispiel ist /var/log/logclient.log leer und die
   /var/log/messages-Dateien enthalten keine Gru:nde fu:r den Fehler.
   Um die Fehlerausgabe zu erho:hen, a:ndern Sie die
   syslogd_flags-Option so, dass diese wie in dem folgenden Beispiel
   aussieht und initiieren Sie dann einen Neustart:

 syslogd_flags="-d -a logclien.example.com -v -v"

 # /etc/rc.d/syslogd restart

   Fehlerausgabedaten a:hnlich der Folgenden werden sofort nach dem
   Neustart auf dem Bildschirm erscheinen:

 logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
 syslogd: restarted
 logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
 Logging to FILE /var/log/messages
 syslogd: kernel boot file is /boot/kernel/kernel
 cvthname(192.168.1.10)
 validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
 rejected in rule 0 due to name mismatch.

   Es scheint klar zu sein, dass die Nachrichten aufgrund eines
   fehlerhaften Namens abgewiesen werden. Nach genauer Untersuchung
   der Konfiguration, kommt ein Tippfehler in der folgenden Zeile der
   /etc/rc.conf als Fehler in Betracht:

 syslogd_flags="-d -a logclien.example.com -v -v"

   Die Zeile sollte logclient und nicht logclien enthalten. Nachdem
   die entsprechenden Vera:nderungen gemacht wurden, ist ein Neustart
   fa:llig, mit den entsprechenden Ergebnissen:

 # /etc/rc.d/syslogd restart
 logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
 syslogd: restarted
 logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
 syslogd: kernel boot file is /boot/kernel/kernel
 logmsg: pri 166, flags 17, from logserv.example.com,
 msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2
 cvthname(192.168.1.10)
 validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
 accepted in rule 0.
 logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2
 Logging to FILE /var/log/logclient.log
 Logging to FILE /var/log/messages

   Zu diesem Zeitpunkt werden die Nachrichten korrekt empfangen und
   in die richtige Datei geschrieben.

     --------------------------------------------------------------

  30.11.4. Sicherheitsbedenken

   Wie mit jedem Netzwerkdienst, mu:ssen Sicherheitsanforderungen in
   Betracht gezogen werden, bevor diese Konfiguration umgesetzt wird.
   Manchmal enthalten Protokolldateien sensitive Daten u:ber
   aktivierte Dienste auf dem lokalen Rechner, Benutzerkonten und
   Konfigurationsdaten. Daten, die vom Client an den Server geschickt
   werden, sind weder verschlu:sselt noch mit einem Passwort
   geschu:tzt. Wenn ein Bedarf fu:r Verschlu:sselung besteht, ist es
   mo:glich, security/stunnel zu verwenden, welches die Daten u:ber
   einen verschlu:sselten Tunnel versendet.

   Lokale Sicherheit ist ebenfalls ein Thema. Protokolldateien sind
   wa:hrend der Verwendung oder nach ihrer Rotation nicht
   verschlu:sselt. Lokale Benutzer versuchen vielleicht, auf diese
   Dateien zuzugreifen, um zusa:tzliche Einsichten in die
   Systemkonfiguration zu erlangen. In diesen Fa:llen ist es absolut
   notwendig, die richtigen Berechtigungen auf diesen Dateien zu
   setzen. Das newsyslog(8)-Werkzeug unterstu:tzt das Setzen von
   Berechtigungen auf gerade erstellte oder rotierte
   Protokolldateien. Protokolldateien mit Zugriffsmodus 600 sollten
   verhindern, dass lokale Benutzer darin herumschnu:ffeln.

     --------------------------------------------------------------

                         Kapitel 31. Firewalls

   Beigetragen von Joseph J. Barbish. Nach SGML konvertiert und
   aktualisiert von Brad Davis. U:bersetzt von Michael Bunzel, Johann
   Kois und Benjamin Lukas.

     --------------------------------------------------------------

31.1. Einfu:hrung

   Firewalls ermo:glichen es, den ein- und ausgehenden
   Netzwerkverkehr Ihres Systems zu filtern. Dazu verwendet eine
   Firewall eine oder mehrere Gruppen von "Regeln", um ankommende
   Netzwerkpakete zu untersuchen und entweder durchzulassen oder zu
   blockieren. Die Regeln einer Firewall untersuchen
   charakteristische Eigenschaften von Datenpaketen, darunter den
   Protokolltyp, die Quell- und Zieladresse sowie den Quell- und
   Zielport.

   Firewalls ko:nnen die Sicherheit eines Rechners oder eines
   Netzwerks erho:hen, indem sie folgende Aufgaben u:bernehmen:

     * Den Schutz der Anwendungen, Dienste und Rechner Ihres internen
       Netzwerks vor unerwu:nschtem Datenverkehr aus dem Internet.

     * Die Beschra:nkung des Zugriffs von Rechnern des internen
       Netzwerk auf Rechner oder Dienste des externen Internets.

     * Den Einsatz von Network Address Translation (NAT), die es
       Ihnen durch die Verwendung von privaten IP-Adressen
       ermo:glicht, eine einzige gemeinsame Internetverbindung fu:r
       mehrere Rechner zu nutzen (entweder u:ber eine einzige Adresse
       oder u:ber eine Gruppe von jeweils automatisch zugewiesenen
       o:ffentlichen IP-Adressen).

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie:

     * Wissen, wie man korrekte Paketfilterregeln erstellt.

     * Die Unterschiede zwischen den in FreeBSD eingebauten Firewalls
       kennen.

     * Wissen, wie man die PF-Firewall von OpenBSD konfiguriert und
       einsetzt.

     * IPFILTER konfigurieren und einsetzen ko:nnen.

     * Wissen, wie man IPFW konfiguriert und einsetzt.

   Bevor Sie dieses Kapitel lesen, sollten Sie:

     * Die grundlegenden Konzepte von FreeBSD und dem Internet
       verstehen.

     --------------------------------------------------------------

31.2. Firewallkonzepte

   Es gibt zwei grundlegende Arten, Regelgruppen fu:r Firewalls zu
   erstellen: "einschliessend" (inclusive firewall) sowie
   "auschliessend" (exclusive Firewall). Eine auschliessende Firewall
   la:sst jeden Datenverkehr durch, der nicht durch eine Regel
   ausgeschlossen wurde. Eine einschliessende Firewall macht das
   genaue Gegenteil. Sie la:sst Datenverkehr nur dann durch, wenn er
   einer der definierten Regeln entspricht.

   Eine inclusive Firewall bietet eine wesentlich bessere Kontrolle
   des ausgehenden Verkehrs, macht sie zur besseren Wahl fu:r
   Systeme, die Services fu:r das Internet anbieten. Sie kontrolliert
   auch den Verkehr vom Internet zu ihrem privaten Netzwerk. Jeder
   Verkehr, der keiner Regel entspricht wird geblockt und geloggt.
   Inclusive Firewalls sind generell sicherer als exclusive
   Firewalls, da sie das Risiko, dass unerwu:nschter Verkehr hindurch
   geht, drastisch reduzieren.

     Anmerkung: Wenn nicht anders vermerkt, verwenden alle
     Konfigurationen und Beispielregelsets dieses Kapitels inclusive
     Firewalls.

   Die Sicherheit einer Firewall kann durch den Einsatz einer
   "zustandsabha:ngigen Firewall" (stateful firewall) weiter erho:ht
   werden. Dieser Typ einer Firewall u:berwacht alle durch die
   Firewall gehenden offenen Verbindungen und erlaubt nur schon
   bestehenden Verkehr oder Datenverkehr, der eine neue Verbindung
   o:ffnet. Der Nachteil einer zustandsabha:ngigen Firewall ist
   allerdings, dass sie anfa:llig fu:r Denial of Service (DoS)
   -Attacken ist, wenn sehr schnell sehr viele neue Verbindungen
   erstellt werden. Bei den meisten Firewalls ko:nnen Sie eine
   Kombination aus zustandsabha:ngigem und nicht zustandsabha:ngigem
   Verhalten verwenden, um eine fu:r Ihre Bedu:rfnisse optimale
   Firewall einzurichten.

     --------------------------------------------------------------

31.3. Firewallpakete

   Das Basissystem von FreeBSD entha:lt bereits drei Firewallpakete:
   IPFILTER (auch als IPF bekannt), IPFIREWALL (auch als IPFW
   bezeichnet) sowie das von OpenBSD u:bernommene PacketFilter (das
   auch als PF bezeichnet wird). Zusa:tzlich verfu:gt FreeBSD u:ber
   zwei eingebaute Pakete fu:r das sogenannte traffic shaping (dabei
   handelt es sich die Steuerung des Bandbreitenverbrauchs): altq(4)
   sowie dummynet(4). Dummynet steht traditionell in enger Verbindung
   mit IPFW, wa:hrend ALTQ gemeinsam mit PF eingesetzt wird. Traffic
   Shaping fu:r IPFILTER ist derzeit mit IPFILTER fu:r NAT sowie
   Filterung und mit IPFW und dummynet(4) oder durch die Kombination
   von PF mit ALTQ mo:glich. Gemeinsam ist allen Firewallpaketen
   (IPF, IPFW sowie PF), dass sie Regeln einsetzen, um den Transfer
   von Datenpaketen auf und von Ihrem System zu regeln.
   Unterschiedlich sind aber die Art und Weise, wie dies realisiert
   wird. Auch die fu:r diese Regeln verwendete Syntax ist
   unterschiedlich.

   FreeBSD u:berla:sst es dem Anwender, das Firewallsystem zu
   wa:hlen, dass seinen Anforderungen und Vorlieben am Besten
   entspricht. Keines der im Basissystem enthaltenen Firewallpakete
   wird dabei als "das beste" angesehen.

   IPFILTER hat etwa den Vorteil, dass dessen zustandsabha:ngige
   Regeln relativ einfach in einer NAT-Umgebung implementiert werden
   ko:nnen. Ausserdem verfu:gt es u:ber einen eigenen FTP-Proxy, der
   die Erstellung von sicheren Regeln fu:r ausgehende
   FTP-Verbindungen vereinfacht.

   Da alle Firewalls auf der Untersuchung der Werte ausgewa:hlter
   Kontrollfelder von Datenpaketen basieren, ist es fu:r die
   Erstellung von Firewallregeln notwendig, die Funktionsweise von
   TCP/IP zu verstehen. Ausserdem muss man dazu wissen, was die Werte
   der einzelnen Kontrollfelder bedeuten und wie diese wa:hrend einer
   Verbindung eingesetzt werden. Eine gute Erkla:rung dieser Thematik
   finden Sie unter http://www.ipprimer.com/overview.cfm.

     --------------------------------------------------------------

31.4. Paket Filter (PF) von OpenBSD und ALTQ

   Revised and updated by John Ferrell.

   Im Juli 2003 wurde PF, die Standard-Firewall von OpenBSD, nach
   FreeBSD portiert und in die FreeBSD-Ports-Sammlung aufgenommen.
   2004 war PF in FreeBSD 5.3 Teil des Basissystems. Bei PF handelt
   es sich um eine komplette, vollausgestattete Firewall, die
   optional auch ALTQ (Alternatives Queuing) unterstu:tzt. ALTQ
   bietet Ihnen Quality of Service (QoS)-Bandbreitenformung.

   Das OpenBSD-Projekt leistet bereits hervorragende
   Dokumentationsarbeit mit der PF FAQ. Aus diesem Grund konzentriert
   sich dieser Handbuchabschnitt nur auf diejenigen Besonderheiten
   von PF, die FreeBSD betreffen, sowie ein paar allgemeine
   Informationen hinsichtlich der Verwendung. Genauere Informationen
   zum Einsatz erhalten Sie in der PF FAQ.

   Weitere Informationen zu PF fu:r FreeBSD finden Sie unter
   http://pf4freebsd.love2party.net/.

     --------------------------------------------------------------

  31.4.1. Verwendung der PF-Kernelmodule

   Um die PF Kernel Module zu laden, fu:gen Sie folgende Zeile in
   ihre /etc/rc.conf ein:

 pf_enable="YES"

   Danach starten Sie das Startup Script um die Module zu laden:

 # /etc/rc.d/pf start

   Das PF Modul wird nicht geladen, falls es die Ruleset
   Konfigurationsdatei nicht findet. Standardma:ssig befindet sich
   diese Datei in /etc/pf.conf. Falls das PF Ruleset sich an einem
   anderen Platz befindet, ko:nnen Sie das durch Hinzufu:gen einer
   Zeile a:hnlich der folgenden, in ihrer /etc/rc.conf a:ndern:

 pf_rules="/path/to/pf.conf"

     Anmerkung: Ein Beispiel fu:r die Datei pf.conf finden Sie im
     Verzeichnis /usr/share/examples/pf/.

   Das PF-Modul kann auch manuell u:ber die Kommandozeile geladen
   werden:

 # kldload pf.ko

   Protokollierungsfunktionen fu:r PF werden durch das Modul pflog.ko
   zur Verfu:gung gestellt und ko:nnen durch folgenden Eintrag in der
   /etc/rc.conf aktiviert werden:

 pflog_enable="YES"

   Danach starten Sie das Startup Script, um das Modul zu laden:

 # /etc/rc.d/pflog start

   Falls Sie noch weitere Features fu:r PF beno:tigen, mu:ssen Sie
   diese in den Kernel einbauen.

     --------------------------------------------------------------

  31.4.2. PF Kernel-Optionen

   Es ist nicht zwingend no:tig, dass Sie PF-Unterstu:tzung in den
   FreeBSD-Kernel kompilieren. Sie werden dies tun mu:ssen, um eine
   von PFs fortgeschritteneren Eigenschaften nutzen zu ko:nnen, die
   nicht als Kernelmodul verfu:gbar ist. Genauer handelt es sich
   dabei um pfsync(4), ein Pseudo-Gera:t, welches bestimmte
   A:nderungen der PF-Zustandstabelle offenlegt. Es kann mit carp(4)
   kombiniert werden, um ausfallsichere Firewalls mit PF zu
   realisieren. Weitere Informationen zu CARP erhalten Sie in
   Abschnitt 32.13 des Handbuchs.

   Die Kernelkonfigurationsoptionen von PF befinden sich in
   /usr/src/sys/conf/NOTES und sind im Folgenden wiedergegeben:

 device pf
 device pflog
 device pfsync

   Die Option device pf aktiviert die Unterstu:tzung fu:r die "Packet
   Filter"-Firewall (pf(4)).

   Die Option device pflog aktiviert das optionale
   pflog(4)-Pseudonetzwerkgera:t, das zum Protokollieren des
   Datenverkehrs u:ber einen bpf(4)-Deskriptor dient. pflogd(8) ist
   in der Lage, diese Protokolldateien auf Ihre Platte zu speichern.

   Die Option device pfsync aktiviert das optionale
   pfsync(4)-Pseudonetzwerkgera:t fu:r die U:berwachung von
   "Statusa:nderungen".

     --------------------------------------------------------------

  31.4.3. Verfu:gbare rc.conf-Optionen

   Die folgenden rc.conf(5)-Eintra:ge konfigurieren PF und pflog(4)
   beim Systemstart:

 pf_enable="YES"                 # PF aktivieren (Modul, wenn no:tig, aktivieren)
 pf_rules="/etc/pf.conf"         # Datei mit Regeldefinitionen fu:r pf
 pf_flags=""                     # zusa:tzliche Parameter fu:r den Start von pfctl
 pflog_enable="YES"              # starte pflogd(8)
 pflog_logfile="/var/log/pflog"  # wo soll pflogd die Protokolldatei speichern
 pflog_flags=""                  # zusa:tzliche Parameter fu:r den Start von pflogd

   Wenn Sie ein lokales Netzwerk hinter dieser Firewall betreiben und
   Pakete fu:r dessen Rechner weiterleiten oder NAT verwenden wollen,
   beno:tigen Sie zusa:tzlich die folgende Option:

 gateway_enable="YES"            # LAN Gateway aktivieren

     --------------------------------------------------------------

  31.4.4. Filterregeln erstellen

   PF liest seine konfigurierten Regeln aus pf.conf(5)
   (standardma:ssig /etc/pf.conf) und modifiziert, verwirft oder
   la:sst Pakete passieren anhand der Regeln oder Definitionen, die
   in dieser Datei gespeichert sind. FreeBSD entha:lt dazu nach der
   Installation mehrere Beispieldateien, die in
   /usr/share/examples/pf/ abgelegt sind. Fu:r eine ausfu:hrliche
   Behandlung des PF-Regelwerks lesen Sie bitte die PF FAQ.

     Warnung: Beim Lesen der PF FAQ wollten Sie darauf achten, dass
     verschiedene Versionen von FreeBSD auch unterschiedliche
     Versionen von PF enthalten. FreeBSD 8.X (und a:lter)
     FreeBSD-Versionen benutzen PF aus OpenBSD 4.1. FreeBSD 9.X (und
     neuer) benutzen hingegen PF aus OpenBSD 4.5.

   Die FreeBSD packet filter mailing list ist eine erste Anlaufstelle
   fu:r Fragen zur Konfiguration und dem Einsatz der PF Firewall.
   Vergessen Sie nicht, vorher die Mailinglistenarchive zu
   durchsuchen, bevor Sie dort eine Frage stellen!

     --------------------------------------------------------------

  31.4.5. Arbeiten mit PF

   Benutzen Sie pfctl(8), um PF zu steuern. Unten finden Sie ein paar
   nu:tzliche Befehle (lesen Sie auch die Manualpage zu pfctl(8), um
   alle verfu:gbaren Optionen nachzuschlagen):

            Befehl                            Zweck                   
   pfctl -e                  PF aktivieren                            
   pfctl -d                  PF deaktivieren                          
                             Alle Filterregeln zuru:cksetzen (NAT,    
   pfctl -F all -f           Filter, Zustand, Tabelle, etc.) und      
   /etc/pf.conf              erneut aus der Datei /etc/pf.conf        
                             auslesen                                 
   pfctl -s [ Regeln | NAT | Bericht u:ber die Filterregeln,          
   Zustand ]                 NAT-Regeln, oder Zustandstabellen        
   pfctl -vnf /etc/pf.conf   u:berpru:ft /etc/pf.conf auf Fehler,     
                             la:dt aber das Regelwerk nicht neu       

     --------------------------------------------------------------

  31.4.6. ALTQ aktivieren

   ALTQ muss vor der Verwendung in den FreeBSD-Kernel kompiliert
   werden. Beachten Sie, dass ALTQ nicht von allen verfu:gbaren
   Netzwerkkartentreibern unterstu:tzt wird. Sehen Sie daher zuerst
   in altq(4) nach, ob Ihre Netzwerkkarte diese Funktion unter Ihrer
   FreeBSD-Version unterstu:tzt.

   Die folgenden Kerneloptionen aktivieren ALTQ sowie alle
   Zusatzfunktionen:

 options         ALTQ
 options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
 options         ALTQ_RED        # Random Early Detection (RED)
 options         ALTQ_RIO        # RED In/Out
 options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
 options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
 options         ALTQ_NOPCC      # Wird von SMP beno:tigt

   options ALTQ aktiviert das ALTQ-Framework.

   options ALTQ_CBQ aktiviert das Class Based Queuing (CBQ). CBQ
   erlaubt es, die Bandbreite einer Verbindung in verschiedene
   Klassen oder Warteschlangen zu unterteilen, um die Priorita:t von
   Datenpaketen basierend auf Filterregeln zu a:ndern.

   options ALTQ_RED aktiviert Random Early Detection (RED). RED wird
   zur Vermeidung einer Netzwerkverstopfung verwendet. Dazu ermittelt
   RED die Gro:sse der Warteschlange und vergleicht diesen Wert mit
   den minimalen und maximalen Grenzwerten der Warteschlange. Ist die
   Warteschlange gro:sser als das erlaubte Maximum, werden alle neuen
   Pakete verworfen. Getreu seinem Namen verwirft RED Pakete
   unterschiedlicher Verbindungen nach dem Zufallsprinzip.

   options ALTQ_RIO aktiviert Random Early Detection In and Out.

   options ALTQ_HFSC aktiviert den Hierarchical Fair Service
   Curve-Paketplaner. Weitere Informationen zu HFSC finden Sie unter
   http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html.

   options ALTQ_PRIQ aktiviert Priority Queuing (PRIQ). PRIQ la:sst
   Verkehr einer Warteschlange mit ho:herer Priorita:t zuerst durch.

   options ALTQ_NOPCC aktiviert die SMP Unterstu:tzung von ALTQ.
   Diese Option ist nur auf SMP-System erforderlich.

     --------------------------------------------------------------

31.5. Die IPFILTER-Firewall (IPF)

   Geschrieben wurde IPFILTER von Darren Reed. IPFILTER ist vom
   Betriebssystem unabha:ngig: Es ist eine Open Source Anwendung, die
   auf die Betriebssysteme FreeBSD, NetBSD, OpenBSD, SunOS, HP/UX und
   Solaris portiert wurde. IPFILTER wird aktiv betreut und gepflegt.
   Es werden regelma:ssig neue Versionen herausgegeben.

   IPFILTER basiert auf einer kernelseitigen Firewall und einem NAT
   Mechanismus, der durch Anwenderprogramme betreut und gesteuert
   werden kann. Die Regeln der Firewall werden mit dem Programm
   ipf(8) gesetzt oder gelo:scht. Fu:r die Manipulation der NAT
   Regeln verwendet man ipnat(1). Mit ipfstat(8) werden
   Laufzeitstatistiken der kernelseitigen Anteile von IPFILTER
   aufgelistet. Und mit dem Programm ipmon(8) kann man die Aktionen
   von IPFILTER in die Protokolldateien des Systems speichern.

   IPF funktionierte urspru:nglich mit einer Regel-Prozess-Logik `a
   la "die letzte Regel, die passt, entscheidet" und verwendete
   ausschliesslich Regeln ohne feste Zusta:nde. Inzwischen wurde die
   Regel-Prozess-Logik drastisch modernisiert: Es gibt eine quick und
   eine zustandsorientierte keep-state Option. Die offizielle
   Dokumentation beinhaltet leider nur die veralteten Parameter zur
   Regelerstellung - die neuen Funktionen werden nur als
   Zusatzoptionen aufgelistet, was ihre Vorteile beim Erstellen einer
   weit u:berlegenen und viel sichereren Firewall vo:llig
   untergra:bt.

   Die Anweisungen in diesem Kapitel basieren darauf, Regeln mit den
   Optionen quick und keep-state zu erstellen. Mit diesem Grundwissen
   wird man einen kompletten einschliessenden Regelsatz erstellen
   ko:nnen.

   Fu:r eine ausfu:hrliche Erla:uterung der alten Methode zur
   Regelverarbeitung schauen Sie bitte auf
   http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1 oder
   http://coombs.anu.edu.au/~avalon/ip-filter.html.

   Antworten auf ha:ufige Fragen finden Sie unter
   http://www.phildev.net/ipf/index.html.

   Und ein durchsuchbares Archiv der Mailingliste zu IPFILTER gibt es
   unter http://marc.theaimsgroup.com/?l=ipfilter.

     --------------------------------------------------------------

  31.5.1. Aktivieren von IPF

   FreeBSD entha:lt IPF in der Standardversion als ladbares
   Kernelmodul. Dieses Modul wird vom System automatisch geladen,
   wenn in der rc.conf der Eintrag ipfilter_enable="YES" angelegt
   wird. In dieser urspru:nglichen Konfiguration ist die
   Protokollierung aktiv und die Option default pass all ("Pakete
   passieren lassen") als Standard gesetzt. Um die block all ("alles
   Blockieren") Option zu setzen, muss man nicht gleich einen neuen
   Kernel bauen - es reicht, block all als letzte Position des
   Regelsatzes aufzulisten.

     --------------------------------------------------------------

  31.5.2. Kernel-Optionen

   Es ist nicht unbedingt notwendig, IPF durch die folgenden Optionen
   direkt in der Kernel einzubinden. Diese Mo:glichkeit der
   Verwendung von IPF wird hier mehr als Hintergrundwissen angeboten.
   Man sollte nur wissen, dass dadurch nicht mehr das Kernelmodul
   geladen wird - und dementsprechend auch nicht mehr entladen werden
   kann.

   Die Beschreibung der einzelnen Optionen von IPF fu:r die
   Verwendung in der Kernelkonfiguration finden Sie auch in der Datei
   /usr/src/sys/conf/NOTES.

 options IPFILTER
 options IPFILTER_LOG
 options IPFILTER_DEFAULT_BLOCK

   options IPFILTER aktiviert die Verwendung der "IPFILTER" Firewall.

   options IPFILTER_LOG aktiviert den Logging-Mechanismus. Das
   bedeutet, dass jedes Paket geloggt wird, auf das eine Regel passt,
   die das Schlu:sselwort log entha:lt. Dazu wird der Pseudo--Device
   ipl verwendet.

   options IPFILTER_DEFAULT_BLOCK a:ndert das Verhalten der Firewall
   dahingehend, dass jedes Paket, dass nicht explizit von einer pass
   Regel Zugang erha:lt, abgewiesen, bzw. geblockt, wird.

   Diese Einstellungen werden erst aktiv, wenn der Kernel, in den sie
   eingebunden wurden, kompiliert, installiert und gebootet wurde.

     --------------------------------------------------------------

  31.5.3. Optionen in rc.conf

   Um IPF wa:hrend des Bootvorgangs einzubinden, braucht man
   lediglich die folgenden Zeilen der Datei /etc/rc.conf anzufu:gen:

 ipfilter_enable="YES"             # Startet IPF
 ipfilter_rules="/etc/ipf.rules"   # liest den Regelsatz aus einer Datei
 ipmon_enable="YES"                # Startet das IP-Monitor Log
 ipmon_flags="-Ds"                 # D = Als Da:mon starten
                                   # s = Protokollierung via syslog
                                   # v = Protokollierung von tcp window, ack, seq
                                   # n = Namen statt IP & port ausgeben
      

   Falls sich hinter der Firewall ein lokales Netzwerk befindet, das
   den reservierten privaten Adressbereich verwendet, mu:ssen die
   folgenden Zeilen zur Aktivierung von NAT ebenfalls in /etc/rc.conf
   eingetragen werden:

 gateway_enable="YES"              # Aktivierung des LAN-Gateways
 ipnat_enable="YES"                # Startet die ipnat Funktion
 ipnat_rules="/etc/ipnat.rules"    # Liest die ipnat-Regeldefinitionen aus einer Datei
      

     --------------------------------------------------------------

  31.5.4. Der Befehl ipf

   Mit dem Befehl ipf(8) liest man die Datei, die den Regelsatz
   entha:lt ein. Mit dem folgenden Befehl ko:nnen Sie Ihre eigenen,
   fu:r Ihr System massgeschneiderten Regeln einlesen und so in einem
   Schritt alle Regeln der laufenden Firewall ersetzen:

 # ipf -Fa -f /etc/ipf.rules

   -Fa bedeutet, dass alle intern gespeicherten Tabellen mit Regeln
   gelo:scht werden.

   -f gibt die Datei an, aus der die neuen Regeln gelesen werden
   sollen.

   Mit diesen beiden Optionen erhalten Sie die Mo:glichkeit,
   A:nderungen an der Datei mit Ihrem Regelsatz vorzunehmen und
   gleich die Firewall mit den neuen Regeln zu bestu:cken, ohne den
   Rechner neu starten zu mu:ssen. Da dieser Vorgang beliebig
   wiederholt werden kann, ist es ein sehr bequemer Weg, neue Regeln
   einzuarbeiten und zu testen.

   Um mehr u:ber diese und weitere Optionen von ipf(8) zu erfahren,
   konsultieren Sie bitte die Manpage.

   ipf(8) erwartet, dass es sich bei der Datei mit dem Regelsatz um
   eine Standard-Textdatei handelt. Eine Datei, die ein Skript oder
   Variablen entha:lt, wird nicht verarbeitet.

   Es gibt allerdings doch einen Weg, IPF Regeln mit Hilfe von
   Skripten und Variablen zu erstellen. Weitere Informationen dazu
   finden Sie unter Abschnitt 31.5.9.

     --------------------------------------------------------------

  31.5.5. IPFSTAT

   Das normale Verhalten von ipfstat(8) ist, die Zusammenfassung der
   angefallenen Statistiken, die als Resultat der Anwendung von
   nutzerspezifischen Regeln auf ein- und ausgehende Pakete seit dem
   letzten Start der Firewall oder seit dem letzten Zuru:cksetzen der
   Za:hler auf Null durch das Kommando ipf -Z angesammelt wurden,
   abzurufen und anzuzeigen.

   Fu:r weiterfu:hrende Informationen schauen Sie bitte auf die
   Manpage von ipfstat(8)!

   Die Ausgabe von ipfstat(8), wenn keine Parameter u:bergeben
   wurden, sieht etwa so aus:

 input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
 output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
 input packets logged: blocked 99286 passed 0
 output packets logged: blocked 0 passed 0
 packets logged: input 0 output 0
 log failures: input 3898 output 0
 fragment state(in): kept 0 lost 0
 fragment state(out): kept 0 lost 0
 packet state(in): kept 169364 lost 0
 packet state(out): kept 431395 lost 0
 ICMP replies: 0 TCP RSTs sent: 0
 Result cache hits(in): 1215208 (out): 1098963
 IN Pullups succeeded: 2 failed: 0
 OUT Pullups succeeded: 0 failed: 0
 Fastroute successes: 0 failures: 0
 TCP cksum fails(in): 0 (out): 0
 Packet log flags set: (0)

   Wenn die Option -i fu:r "eingehend" oder -o fu:r "ausgehend"
   u:bergeben wird, liefert das Kommando eine entsprechende Liste von
   Filter-Regeln, die gerade installiert sind und vom Kernel
   verwendet werden.

   ipfstat -in zeigt alle aktive Regeln fu:r eingehende Verbindungen
   zusammen mit ihren Nummern.

   ipfstat -on erledigt dasselbe fu:r die ausgehenden Verbindungen.

   Die Ausgabe sieht in etwa folgendermassen aus:

 @1 pass out on xl0 from any to any
 @2 block out on dc0 from any to any
 @3 pass out quick on dc0 proto tcp/udp from any to any keep state

   ipfstat -ih zeigt die Tabelle der aktiven Regeln fu:r eingehende
   Verbindungen zusammen mit der Anzahl, wie oft jeder einzelnen
   Regel entsprochen wurde.

   ipfstat -oh zeigt das Gleiche fu:r die ausgehenden Verbindungen.

   Hier wird die Ausgabe so oder so a:hnlich aussehen:

 2451423 pass out on xl0 from any to any
 354727 block out on dc0 from any to any
 430918 pass out quick on dc0 proto tcp/udp from any to any keep state

   Einer der wichtigsten Funktionen von ipfstat wird u:ber die Option
   -t bereitgestellt. Mit ihr wird eine Statustabelle vergleichbar
   der Prozess-Tabelle von top(1) ausgegeben. Mit dieser Funktion
   erhalten Sie im Falle eines Angriffs die Mo:glichkeit, die
   angreifenden Pakete zu identifizieren, abzufangen und auszuwerten.
   Weitere Unteroptionen ero:ffnen, die IP-Adresse, den Port oder das
   Protokoll, geteilt nach Herkunft und Ziel, auszuwa:hlen und dann
   in Echtzeit zu beobachten. Lesen Sie dazu bitte auch die Manpage
   von ipfstat(8).

     --------------------------------------------------------------

  31.5.6. IPMON

   Damit der Befehl ipmon korrekt arbeiten kann, muss die Option
   IPFILTER_LOG in die Kernelkonfiguration eingearbeitet werden. Das
   Kommando selbst arbeitet in zwei verschiedenen Modi. Fu:r den
   nativen Modus startet man ipmon auf der Kommandozeile ohne die
   Option -D.

   Der Hintergrundmodus (daemon mode) dient der Erstellung eines
   stetigen Systemprotokolls, so dass Eintra:ge vergangener
   Ereignisse inspiziert werden ko:nnen. So sollen FreeBSD und
   IPFILTER entsprechend ihrer Konfiguration zusammen arbeiten.
   FreeBSD kann mit einem eingebauten Mechanismus Systemprotokolle
   turnusma:ssig abspeichern. Aus diesem Grund sollte man besser
   syslogd(8) verwenden anstatt die Protokollinformationen in eine
   Datei zu schreiben, wie es als Standard vorgesehen ist. In der
   Standard-rc.conf-Datei (im Ordner /etc/defaults/) wird dem Eintrag
   ipmon_flags die Option -Ds u:bergeben:

 ipmon_flags="-Ds" # D = Als Da:mon starten
 # s = Protokollierung via syslog
 # v = Protokollierung von tcp window, ack, seq
 # n = Namen statt IP & port ausgeben

   Die Vorteile des Protokollierens liegen auf der Hand: Sie
   versetzen den Administrator in die Lage, nach einem Vorfall
   Informationen abzurufen, etwa welche Pakete aussortiert wurden,
   welche Adressen diese Pakete gesendet haben oder wohin sie
   gesendet werden sollten. Alles in allem erha:lt er ein sehr gutes
   Werkzeug zum Aufspu:ren von Angreifern.

   Jedoch, auch wenn die Protokollierung aktiviert ist, wird IPF
   keine einzige Regel zum Protokollieren von alleine entwerfen und
   umsetzen. Der Administrator der Firewall entscheidet, welche
   Regeln in seinem Regelsatz mitgeschrieben werden sollen und er
   muss dementsprechend das Schlu:sselword log in dieser Regel
   angeben. Normalerweise werden nur Treffer auf abweisende Regeln
   protokolliert.

   Es ist u:blich, als letzte Regel eine alles blockierende Regel mit
   dem Schlu:sselwort log in den Regelsatz einzutragen. Dadurch
   erkennt man alle Pakete, die keiner Regel im Regelsatz
   entsprachen.

     --------------------------------------------------------------

  31.5.7. IPMON Logging

   Syslogd verwendet seine eigene Methode zum Sortieren der
   gesammtelten Protokolldaten - spezielle Gruppierungen namens
   "facility" und "level". IPMON verwendet im daemon-Modus als
   "facility" den Wert security. Die folgenden "level" ko:nnen fu:r
   eine genauere Trennung der Protokolldaten verwendet werden:

 LOG_INFO - Alle zu protokollierenden Pakete
 LOG_NOTICE - Protokollierte Pakete, die passieren durften
 LOG_WARNING - Protokollierte Pakete, die blockiert wurden
 LOG_ERR - Protokollierte Pakete, deren Headerdaten nicht komplett vorlagen

   Damit IPFILTER angewiesen werden kann, alle Protokolldaten in die
   Datei /var/log/ipfilter.log zu schreiben, muss diese erst erstellt
   werden. Folgendes Kommando u:bernimmt diese Aufgabe:

 # touch /var/log/ipfilter.log

   Die Funktionen von syslogd(8) werden durch Definition in der Datei
   /etc/syslog.conf gesteuert. In dieser Datei kann sehr weitla:fig
   eingestellt werden, wie syslog mit den Systemnachrichten umgehen
   soll, die ihm von Anwendungen wie IPF u:bergeben werden.

   Fu:gen Sie folgende Definition in die Datei /etc/syslog.conf ein,
   um die Protokollierung fu:r IPF via syslog zu aktivieren:

 security.* /var/log/ipfilter.log

   security.* bedeutet, dass alle Nachrichten der Klasse security.*
   am angegebenen Ort (hier eine Datei) geschrieben werden sollen.

   Um A:nderungen an der Datei /etc/syslog.conf zu aktivieren mu:ssen
   Sie den Rechner neu starten, oder den Befehl

 # /etc/rc.d/syslogd reload

   ausfu:hren.

   Vergessen Sie nicht, /etc/newsyslog.conf anzupassen, damit die
   neuen Protokolldateien, die eben konfiguriert wurden, auch in den
   Rotationsturnus eingefu:gt werden!

     --------------------------------------------------------------

  31.5.8. Die Formatierung der Logdatei

   Nachrichten, die durch ipmon erzeugt werden, bestehen aus durch
   Leerstellen getrennten Datenfeldern. Folgende Felder sind in allen
   Nachrichten enthalten:

    1. Das Datum der Paketerstellung.

    2. Die Uhrzeit der Paketerstellung in der Form HH:MM:SS.F, mit
       Stunden, Minuten, Sekunden und Sekundenbruchteilen, wobei
       letztere mehrere Stellen lang sein ko:nnen.

    3. Der Name der Schnittstelle, die das Paket verarbeitet hat,
       bspw. dc0.

    4. Die Gruppe und die Nummer der angewandten Regel, bspw. @0:17.

    5. Die ausgefu:hrte Aktion: p fu:r passed (zugelassen), b fu:r
       blockiert, S fu:r short packet (unvollsta:ndiger Header), n
       fu:r no match (gar keine Regel wurde beru:hrt) und L fu:r
       Log-Regel. Die Reihe, in der die Flags angezeigt werden ist:
       S, p, b, n, L. Ein gross geschriebenes P oder B bedeutet, dass
       das Paket aufgrund einer globalen Einstellung protokolliert
       wurde und nicht wegen einer einzelnen Regel.

    6. Die Adressen. Diese bestehen aus drei Feldern: Der
       Quelladresse mit Port (getrennt durch ein Komma), dem Symbol
       "->" und der Zieladresse. Also bspw. 209.53.15.22,80 ->
       198.64.221.18,1722.

    7. PR gefolgt vom Namen eines Netzwerk-Protokolls oder dessen
       Nummer. Bspw. PR tcp.

    8. len gefolgt von der La:nge des Headers und der Gesamtla:nge
       des Paketes, beispielsweise len 20 40.

   Wenn es sich um ein TCP-Paket handelt, wird ein weiteres Feld,
   beginnend mit einem Querstrich und gefolgt von Buchstaben, die den
   gesetzten Flags entsprechen, angezeigt. Lesen Sie bitte die
   Manpage ipmon(8) fu:r eine Liste der Buchstaben und deren
   Bedeutungen.

   Falls das Paket ein ICMP-Paket ist, werden zwei Felder am Ende
   hinzugefu:gt - das erstere ist immer "ICMP", das zweite entha:lt
   die ICMP-Nachricht und den Nachrichtentyp, getrennt durch einen
   Schra:gstrich. ICMP 3/3 steht beispielsweise fu:r "Port nicht
   erreichbar".

     --------------------------------------------------------------

  31.5.9. Die Erstellung eines Regelsatzes mit Variablen

   Erfahrenere IPF Anwender erstellen sich eine Datei, die die Regeln
   entha:lt und gestalten diese als ein Skript, in dem Variablen
   verwendet werden. Der wichtigste Vorteil besteht darin, dass man
   lediglich den Wert der Variablen anpassen muss und diese, sobald
   das Skript gestartet wird, durch die entsprechenden Werte ersetzt
   und die Regeln entsprechend formuliert werden. In Skripten kann
   man so ha:ufig verwendete Werte einfach als Variable in mehreren
   Regeln zuweisen. Am folgenden Beispiel soll das verdeutlicht
   werden.

   Die Syntax dieses Skriptes ist kompatibel mit den Shells sh(1),
   csh(1) und tcsh(1).

   Variablen beginnen mit einem Dollar-Zeichen: $Variablenname. Im
   Beispiel unten steht $oif fu:r die Variable, in der der Name der
   Schnittstelle abgelegt wird, u:ber die der Verkehr nach aussen
   erfolgt.

   In Variablenzuweisungen fehlt das beginnende $-Zeichen. Alleine
   der Name der Variable wird angegeben, gefolgt von einem
   Gleichheitszeichen, und dem Wert, der der Variablen zugewiesen
   werden soll. Dieser muss in doppelten Anfu:hrungszeichen ("")
   stehen. Also folgt eine Zuweisung dem Schema Variablenname =
   "Wert".

 ############# Start of IPF rules script ########################

 oif="dc0"            # Name der Internet-Schnittstelle
 odns="192.0.2.11"    # IP des DNS-Servers unseres ISPs
 myip="192.0.2.7"     # die statische IP, die uns der ISP zugeteilt hat
 ks="keep state"
 fks="flags S keep state"

 # Sie haben die Wahl, aus diesem Skript eine eigene
 # /etc/ipf.rules erstellen zu lassen oder es einfach
 # direkt als Skript laufen zu lassen.
 #
 # Entfernen Sie dazu das eine Kommentarzeichen
 # und kommentieren Sie die andere Zeile aus!
 #
 # 1) Diese Zeile verwenden Sie zur Erstellung von /etc/ipf.rules
 #cat > /etc/ipf.rules << EOF
 #
 # 2) Diese Zeile, wenn Sie direkt mit dem Skript arbeiten wollen
 /sbin/ipf -Fa -f - << EOF

 # Erlaubnis ausgehenden Verkehrs an den Nameserver des ISPs
 pass out quick on $oif proto tcp from any to $odns port = 53 $fks
 pass out quick on $oif proto udp from any to $odns port = 53 $ks

 # Erlaubnis ausgehenden unsicheren www-Verkehrs
 pass out quick on $oif proto tcp from $myip to any port = 80 $fks

 # Erlaubnis ausgehenden sicheren www-Verkehrs https via TLS SSL
 pass out quick on $oif proto tcp from $myip to any port = 443 $fks
 EOF
 ################## End of IPF rules script ########################

   Das ist schon alles. Die Regeln selbst sind im Beispiel nicht so
   wichtig - achten Sie auf die Anwendung der Variablenzuweisung am
   Anfang und die Verwendung der Variablen im Skript. Falls das obige
   Beispiel in einer Datei namens /etc/ipf.rules.script gespeichert
   wurde, ko:nnen die Regeln mit folgenden Kommando neu geladen
   werden:

 # sh /etc/ipf.rules.script

   Es gibt ein Problem mit Regelsatz-Dateien, die Variablen
   verwenden: IPF kann mit Variablen nichts anfangen - und kann
   derartige Skripte nicht direkt einlesen.

   Unser kleines Skript kann daher nur auf eine der beiden folgenden
   Weisen verwendet werden:

     * Entfernen Sie das Kommentarzeichen der Zeile, die mit cat
       beginnt. Kommentieren Sie die Zeile aus, die mit /sbin/ipf
       beginnt. Schreiben Sie die Zeile ipfilter_enable="YES" in die
       Datei /etc/rc.conf und rufen Sie dann das Skript auf, um
       /etc/ipf.rules zu erstellen oder zu erneuern.

     * Deaktivieren Sie IPFILTER in den Systemstart-Skripten, indem
       Sie die Zeile ipfilter_enable="NO" in die Datei /etc/rc.conf
       eintragen (was auch der Standard-Einstellung entspricht).

       Fu:gen Sie ein Skript a:hnlich dem folgenden in Ihr
       Verzeichnis /usr/local/etc/rc.d/. Es sinnvoll, dem Skript
       einen offensichtlichen Namen zu geben, wie etwa
       ipf.loadrules.sh. Die Endung .sh ist dabei verbindlich.

 #!/bin/sh
 sh /etc/ipf.rules.script

       Die Zugriffsrechte fu:r die Datei, die das Skript entha:lt,
       mu:ssen fu:r den Eigentu:mer root auf Lesen, Schreiben und
       Ausfu:hren gesetzt werden.

 # chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh

   Wenn nun Ihr System startet, werden Ihre IPF-Regeln geladen.

     --------------------------------------------------------------

  31.5.10. IPF Regelsa:tze

   Ein Regelsatz ist eine Gruppe von IPF-Regeln, die anhand der Werte
   eines Netzwerkpaketes entscheiden, ob dieses Paket durchgelassen
   oder blockiert wird. Der Austausch von Paketen erfolgt immer
   zweiseitig in Form einer sogenannten Session. Der Regelsatz der
   Firewall verarbeitet sowohl die eingehenden Pakete aus dem
   o:ffentlichen Internet als auch die Pakete, die vom System als
   Antwort auf die Ersteren gesendet werden. Jeder Dienst, der via
   TCP/IP arbeitet, zum Beispiel telnet, www oder mail, ist
   vordefiniert durch sein Protokoll und seinen privilegierten Port,
   an dem er auf Anfragen wartet und reagieren kann. Pakete, die
   gezielt einen Dienst ansprechen sollen, werden von einem
   unprivilegierten Port des Senders an einen konkreten
   privilegierten Port des Zielsystems geschickt. Alle genannten
   Parameter (Ports, Adressen usw.) ko:nnen als Auswahlkriterien zum
   erstellen von Regeln eingesetzt werden, die Dienste erlauben oder
   blockieren.

   IPF wurde urspru:nglich mit einer Regel-Prozess-Logik geschrieben,
   die ausschliesslich statusfreie Regeln zuliess und nach dem
   Prinzip "die letzte Regel, die passt, entscheidet" arbeitete. Mit
   der Zeit erhielt IPF eine quick Option sowie keep-state Option
   fu:r die Anwendung von zustandsorientierten Regeln, was die
   Regel-Prozess-Logik signifikant modernisierte.

   Die Anweisungen in diesem Kapitel basieren auf der Verwendung von
   Regeln, die diese beiden neuen Optionen verarbeiten. Dies ist das
   Framework zur Entwicklung eines Firewallregelsatzes.

     Warnung: Wenn Sie mit einer Firewall arbeiten, seien Sie sehr
     vorsichtig. Durch wenige Einstellungen ko:nnen Sie sich aus
     Ihrem System aussperren. Wenn Sie auf der sicheren Seite sein
     wollen, fu:hren Sie die Firewall-Konfiguration direkt am
     entsprechenden Gera:t aus und nicht u:ber eine
     Netzwerkverbindung wie bspw. ssh.

     --------------------------------------------------------------

  31.5.11. IPF Regel-Syntax

   Die Syntax zur Erstellung der Regeln, die hier vorgestellt wird,
   ist dahingehend vereinfacht worden, dass sie ausschliesslich auf
   den modernen Regelkontext, mit statusbehafteten Regeln und einer
   "die erste Regel, die passt, gewinnt"-Logik, zuru:ckgreift. Um
   alles u:ber die veraltete Syntax zu erfahren, lesen Sie bitte die
   Man-Page von ipf(8).

   Ein #-Zeichen markiert den Beginn eines Kommentars. Es darf nach
   nach einer Regel stehen oder als erstes Zeichen einer Zeile. Leere
   Zeilen werden von der Regel-Prozess-Logik ignoriert.

   Regeln enthalten Schlu:sselwo:rter. Diese Schlu:sselwo:rter
   mu:ssen in einer bestimmten Reihenfolge von links nach rechts in
   einer Zeile erscheinen. Als solche identifizierte
   Schlu:sselwo:rter werden fett wiedergegeben. Einige
   Schlu:sselwo:rter haben Unteroptionen, die wiederum selbst
   Schlu:sselwo:rter sein und ebenfalls weiter Unteroptionen
   einschliessen ko:nnen.

   ACTION IN-OUT OPTIONS SELECTION STATEFUL PROTO SRC_ADDR,DST_ADDR
   OBJECT PORT_NUM TCP_FLAG STATEFUL

   ACTION = block | pass

   IN-OUT = in | out

   OPTIONS = log | quick | on interface-name

   SELECTION = proto value | source/destination IP | port = number |
   flags flag-value

   PROTO = tcp/udp | udp | tcp | icmp

   SRC_ADD,DST_ADDR = all | from object to object

   OBJECT = IP address | any

   PORT_NUM = port number

   TCP_FLAG = S

   STATEFUL = keep state

     --------------------------------------------------------------

    31.5.11.1. ACTION

   Die "ACTION" bestimmt, was mit dem Paket passieren soll, wenn der
   Rest der Regel zutrifft. Dieser Teil muss fu:r jede Regel
   angegeben werden.

   Das Schlu:sselwort block gibt an, dass das Paket verfallen soll,
   wenn die Auswahlparameter zutreffen.

   Das Schlu:sselwort pass gibt an, dass das Paket durch die Firewall
   durchgelassen werden soll, wenn die Auswahlparameter zutreffen.

     --------------------------------------------------------------

    31.5.11.2. IN-OUT

   Ebenfalls verbindlich ist die Angabe, welchen Teil der Verbindung,
   Ein- oder Ausgang, die Regel beeinflussen soll. Das na:chste
   Schlu:sselwort muss daher entweder in, fu:r eingehend, oder out,
   fu:r ausgehend, lauten - oder die Regel wird aufgrund eines
   Syntaxfehlers nicht umgesetzt.

   in bedeutet, dass diese Regel auf eingehende Pakete angewendet
   wird, die gerade an der dem o:ffentlichen Internet zugewandten
   Schnittstelle empfangen wurden.

   out bedeutet, das diese Regel auf ausgehende Pakete angewendet
   wird, also Pakete die gerade gesendet werden und deren Zieladresse
   im o:ffentlichen Internet liegt.

     --------------------------------------------------------------

    31.5.11.3. OPTIONS

     Anmerkung: Die Optionen mu:ssen in der hier aufgefu:hrten
     Reihenfolge verwendet werden.

   log bestimmt, dass die Kopfdaten des Paketes an die
   Systemschnittstelle ipl(4) geschrieben werden sollen. Genaueres
   dazu weiter unten im Abschnitt LOGGING.

   quick bestimmt, dass, wenn die Auswahlkriterien der Regel auf das
   Paket zutreffen, keine weiteren Regeln ausgewertet werden. So
   vermeidet man das Abarbeiten des gesamten Regelsatzes. Diese
   Option ist eine verbindliche Vorraussetzung der modernen
   Regel-Prozess-Logik.

   on bestimmt den Namen der Schnittstelle, der als Auswahlkriterium
   hinzugefu:gt werden soll. Die Namen aller verfu:gbaren
   Schnittstellen werden durch den Befehl ifconfig(8) angezeigt. wenn
   man diese Option verwendet, passt die Regeln nur auf Pakete, die
   durch diese Schnittstelle empfangen (in) oder gesendet (out)
   wurden. Fu:r die modernisierte Regel-Prozess-Logik ist die
   Verwendung dieser Option verbindlich.

   Wenn ein Paket protokolliert wird, werden die Kopfdaten in die
   Pseudo-Schnittstelle ipl(4) geschrieben. Folgende Parameter
   ko:nnen zusa:tzlich u:bergeben werden, mu:ssen dazu aber direkt
   nach dem Schlu:sselwort log und in gleicher Reihenfolge stehen:

   body bestimmt, dass die ersten 128 Bytes des Paketinhaltes
   zusa:tzlich zu den Kopfdaten protokolliert werden.

   first trifft nur zu, wenn das Schlu:sselwort log zusammen mit
   keep-state verwendet wird. Es bestimmt, dass nur das auslo:sende
   Paket protokolliert wird und nicht jedes weitere Paket, dass von
   der gespeicherten Status-Regel betroffen ist.

     --------------------------------------------------------------

    31.5.11.4. SELECTION

   Die Schlu:sselwo:rter, die in diesem Abschnitt vorgestellt werden,
   dienen zur Beschreibung von Attributen, anhand derer gepru:ft und
   entschieden wird, ob eine Regel zutrifft oder nicht. Es gibt ein
   Schlu:sselwort, und das hat mehrere Optionen, von denen eine
   ausgewa:hlt werden muss. Die folgenden allgemeinen Attribute
   ko:nnen beliebig zum Erstellen einer Regel verwendet werden,
   allerdings nur in der vorgestellten Reihenfolge:

     --------------------------------------------------------------

    31.5.11.5. PROTO

   proto ist das Schlu:sselwort fu:r das im Paket angewendete
   Protokoll. Als Option ein Protokoll aus Auswahlkriterium
   u:bergeben. Diese Option ist verbindlich, wenn man die moderne
   Regel-Prozess-Logik verwendet.

   tcp/udp | udp | tcp | icmp oder irgendein Protokollname, der in
   der Datei /etc/protocols zu finden ist, kann u:bergeben werden.
   Ausserdem kann das Schlu:sselwort tcp/udp verwendet werden, wenn
   sowohl TCP als auch UDP von der Regel betroffen sein sollen.
   Dieses Schlu:sselwort wurde eingefu:hrt, um Duplikate sonst
   identischer Regeln zu vermeiden.

     --------------------------------------------------------------

    31.5.11.6. SRC_ADDR/DST_ADDR

   Das Schlu:sselwort all ist ein Synonym fu:r "from any to any" ohne
   weitere Auswahlkriterien.

   from src to dst: Die Schlu:sselwo:rter from und to dienen zur
   Angabe von Quelle und Ziel in Form von IP-Adressen oder
   -Bereichen. Innerhalb einer Regel muss immer beides angegeben
   werden. Statt einer Adresse kann auch das Schlu:sselwort any
   u:bergeben werden, das fu:r jede beliebige IP-Adresse steht. Zum
   Beispiel: from any to any oder from 0.0.0.0/0 to any oder from any
   to 0.0.0.0/0 oder from 0.0.0.0 to any oder from any to 0.0.0.0
   bedeuten alle das Gleiche.

   IP-Bereiche ko:nnen nur in der CIDR-Notation angegeben werden. Der
   Port net-mgmt/ipcalc hilft Ihnen bei der Berechnung der richtigen
   Angaben. Weiterfu:hrende Informationen zu CIDR finden Sie auf der
   Webseite von ipcalc.

     --------------------------------------------------------------

    31.5.11.7. PORT

   Wenn ein Port als Auswahlkriterium u:bergeben wurde, bei Quelle
   und/oder Ziel, wird er nur bei TCP und UDP Paketen verwendet.
   Angegeben werden kann entweder die Portnummer oder der Dienstname
   aus /etc/services. Die Verwendung der Portoption mit dem to-Objekt
   ist verbindlich fu:r die Verwendung der modernisierten
   Regel-Prozess-Logik. Ein Beispiel fu:r die Filterung Paketen von
   allen Quell-IPs mit beliebiger Portnummer auf beliebige Ziel-IPs
   mit der Portnummer 80 (dem www-Port): from any to any port = 80.

   Einfache Portvergleiche ko:nnen auf verschiedenen Wegen erfolgen.
   Mehrere Vergleichsoperatoren stehen dafu:r zur Verfu:gung. Genauso
   ko:nnen Bereiche angegeben werden.

   port "=" | "!=" | "<" | ">" | "<=" | ">=" | "eq" | "ne" | "lt" |
   "gt" | "le" | "ge".

   Um einen Bereich anzugeben: port "<>" | "><"

     Warnung: Genau wie die Trefferspezifikation fu:r Quelle und Ziel
     sind auch die beiden folgenden Parameter obligatorisch bei der
     Verwendung der modernen Regel-Prozess-Logik.

     --------------------------------------------------------------

    31.5.11.8. TCP_FLAG

   Flags spielen nur beim Filtern von TCP eine Rolle. Die Buchstaben
   entsprechen jeweils einem mo:glichen Flag, dass in den Kopfdaten
   der TCP-Pakete geprueft werden soll.

   Die moderne Regel-Prozess-Logik verwendet den Parameter flags S um
   eine Anfrage zum Start einer TCP-Session zu identifizieren.

     --------------------------------------------------------------

    31.5.11.9. STATEFUL

   keep state zeigt bei einer Passage-Regel an, dass fu:r alle
   Pakete, die die Selektion erfolgreich durchlaufen, Stateful
   Filtering eingerichtet werden soll.

     Anmerkung: Diese Option ist obligatorisch fu:r die Verwendung
     der modernen Prozess-Regel-Logik.

     --------------------------------------------------------------

  31.5.12. Stateful Filtering

   Stateful filtering treats traffic as a bi-directional exchange of
   packets comprising a session conversation. When activated,
   keep-state dynamically generates internal rules for each
   anticipated packet being exchanged during the bi-directional
   session conversation. It has sufficient matching capabilities to
   determine if the session conversation between the originating
   sender and the destination are following the valid procedure of
   bi-directional packet exchange. Any packets that do not properly
   fit the session conversation template are automatically rejected
   as impostors.

   Keep state will also allow ICMP packets related to a TCP or UDP
   session through. So if you get ICMP type 3 code 4 in response to
   some web surfing allowed out by a keep state rule, they will be
   automatically allowed in. Any packet that IPF can be certain is
   part of an active session, even if it is a different protocol,
   will be let in.

   What happens is:

   Packets destined to go out through the interface connected to the
   public Internet are first checked against the dynamic state table.
   If the packet matches the next expected packet comprising an
   active session conversation, then it exits the firewall and the
   state of the session conversation flow is updated in the dynamic
   state table. Packets that do not belong to an already active
   session, are simply checked against the outbound ruleset.

   Packets coming in from the interface connected to the public
   Internet are first checked against the dynamic state table. If the
   packet matches the next expected packet comprising an active
   session conversation, then it exits the firewall and the state of
   the session conversation flow is updated in the dynamic state
   table. Packets that do not belong to an already active session,
   are simply checked against the inbound ruleset.

   When the conversation completes it is removed from the dynamic
   state table.

   Stateful filtering allows you to focus on blocking/passing new
   sessions. If the new session is passed, all its subsequent packets
   will be allowed through automatically and any impostors
   automatically rejected. If a new session is blocked, none of its
   subsequent packets will be allowed through. Stateful filtering has
   technically advanced matching abilities capable of defending
   against the flood of different attack methods currently employed
   by attackers.

     --------------------------------------------------------------

  31.5.13. Inclusive Ruleset Example

   The following ruleset is an example of how to code a very secure
   inclusive type of firewall. An inclusive firewall only allows
   services matching pass rules through, and blocks all others by
   default. Firewalls intended to protect other machines, also called
   "network firewalls", should have at least two interfaces, which
   are generally configured to trust one side (the LAN) and not the
   other (the public Internet). Alternatively, a firewall might be
   configured to protect only the system it is running on--this is
   called a "host based firewall", and is particularly appropriate
   for servers on an untrusted network.

   All UNIX flavored systems including FreeBSD are designed to use
   interface lo0 and IP address 127.0.0.1 for internal communication
   within the operating system. The firewall rules must contain rules
   to allow free unmolested movement of these special internally used
   packets.

   The interface which faces the public Internet is the one to place
   the rules that authorize and control access of the outbound and
   inbound connections. This can be your user PPP tun0 interface or
   your NIC that is connected to your DSL or cable modem.

   In cases where one or more NICs are cabled to private network
   segments, those interfaces may require rules to allow packets
   originating from those LAN interfaces transit to each other and/or
   to the outside (Internet).

   The rules should be organized into three major sections: first
   trusted interfaces, then the public interface outbound, and last
   the public untrusted interface inbound.

   The rules in each of the public interface sections should have the
   most frequently matched rules placed before less commonly matched
   rules, with the last rule in the section blocking and logging all
   packets on that interface and direction.

   The Outbound section in the following ruleset only contains pass
   rules which contain selection values that uniquely identify the
   service that is authorized for public Internet access. All the
   rules have the quick, on, proto, port, and keep state options set.
   The proto tcp rules have the flag option included to identify the
   session start request as the triggering packet to activate the
   stateful facility.

   The Inbound section has all the blocking of undesirable packets
   first, for two different reasons. The first is that malicious
   packets may be partial matches for legitimate traffic. These
   packets have to be discarded rather than allowed in, based on
   their partial matches against allow rules. The second reason is
   that known and uninteresting rejects may be blocked silently,
   rather than being caught and logged by the last rules in the
   section. The final rule in each section, blocks and logs all
   packets and can be used to create the legal evidence needed to
   prosecute the people who are attacking your system.

   Another thing that should be taken care of, is to ensure there is
   no response returned for any of the undesirable traffic. Invalid
   packets should just get dropped and vanish. This way the attacker
   has no knowledge if his packets have reached your system. The less
   the attackers can learn about your system, the more time they must
   invest before actually doing something bad. Rules that include a
   log first option, will only log the event the first time they are
   triggered. This option is included in the sample nmap OS
   fingerprint rule. The security/nmap utility is commonly used by
   attackers who attempt to identify the operating system of your
   server.

   Any time there are logged messages on a rule with the log first
   option, an ipfstat -hio command should be executed to evaluate how
   many times the rule has actually matched. Large number of matches
   usually indicate that the system is being flooded (i.e.: under
   attack).

   The /etc/services file may be used to lookup unknown port numbers.
   Alternatively, visit
   http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers and
   do a port number lookup to find the purpose of a particular port
   number.

   Check out this link for port numbers used by Trojans
   http://www.sans.org/security-resources/idfaq/oddports.php.

   The following ruleset creates a complete and very secure inclusive
   type of firewall ruleset that has been tested on production
   systems. It can be easily modified for your own system. Just
   comment out any pass rules for services that should not be
   authorized.

   To avoid logging unwanted messages, just add a block rule in the
   inbound section.

   The dc0 interface name has to be changed in every rule to the real
   interface name of the NIC card that connects your system to the
   public Internet. For user PPP it would be tun0.

   Add the following statements to /etc/ipf.rules:

 #################################################################
 # No restrictions on Inside LAN Interface for private network
 # Not needed unless you have LAN
 #################################################################

 #pass out quick on xl0 all
 #pass in quick on xl0 all

 #################################################################
 # No restrictions on Loopback Interface
 #################################################################
 pass in quick on lo0 all
 pass out quick on lo0 all

 #################################################################
 # Interface facing Public Internet (Outbound Section)
 # Match session start requests originating from behind the
 # firewall on the private network
 # or from this gateway server destined for the public Internet.
 #################################################################

 # Allow out access to my ISP's Domain name server.
 # xxx must be the IP address of your ISP's DNS.
 # Dup these lines if your ISP has more than one DNS server
 # Get the IP addresses from /etc/resolv.conf file
 pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
 pass out quick on dc0 proto udp from any to xxx port = 53 keep state

 # Allow out access to my ISP's DHCP server for cable or DSL networks.
 # This rule is not needed for 'user ppp' type connection to the
 # public Internet, so you can delete this whole group.
 # Use the following rule and check log for IP address.
 # Then put IP address in commented out rule & delete first rule
 pass out log quick on dc0 proto udp from any to any port = 67 keep state
 #pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state


 # Allow out non-secure standard www function
 pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state

 # Allow out secure www function https over TLS SSL
 pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state

 # Allow out send & get email function
 pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state
 pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state

 # Allow out Time
 pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state

 # Allow out nntp news
 pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state

 # Allow out gateway & LAN users' non-secure FTP ( both passive & active modes)
 # This function uses the IPNAT built in FTP proxy function coded in
 # the nat rules file to make this single rule function correctly.
 # If you want to use the pkg_add command to install application packages
 # on your gateway system you need this rule.
 pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state

 # Allow out ssh/sftp/scp (telnet/rlogin/FTP replacements)
 # This function is using SSH (secure shell)
 pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state

 # Allow out insecure Telnet
 pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state

 # Allow out FreeBSD CVSup
 pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state

 # Allow out ping to public Internet
 pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state

 # Allow out whois from LAN to public Internet
 pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state

 # Block and log only the first occurrence of everything
 # else that's trying to get out.
 # This rule implements the default block
 block out log first quick on dc0 all

 #################################################################
 # Interface facing Public Internet (Inbound Section)
 # Match packets originating from the public Internet
 # destined for this gateway server or the private network.
 #################################################################

 # Block all inbound traffic from non-routable or reserved address spaces
 block in quick on dc0 from 192.168.0.0/16 to any    #RFC 1918 private IP
 block in quick on dc0 from 172.16.0.0/12 to any     #RFC 1918 private IP
 block in quick on dc0 from 10.0.0.0/8 to any        #RFC 1918 private IP
 block in quick on dc0 from 127.0.0.0/8 to any       #loopback
 block in quick on dc0 from 0.0.0.0/8 to any         #loopback
 block in quick on dc0 from 169.254.0.0/16 to any    #DHCP auto-config
 block in quick on dc0 from 192.0.2.0/24 to any      #reserved for docs
 block in quick on dc0 from 204.152.64.0/23 to any   #Sun cluster interconnect
 block in quick on dc0 from 224.0.0.0/3 to any       #Class D & E multicast

 ##### Block a bunch of different nasty things. ############
 # That I do not want to see in the log

 # Block frags
 block in quick on dc0 all with frags

 # Block short tcp packets
 block in quick on dc0 proto tcp all with short

 # block source routed packets
 block in quick on dc0 all with opt lsrr
 block in quick on dc0 all with opt ssrr

 # Block nmap OS fingerprint attempts
 # Log first occurrence of these so I can get their IP address
 block in log first quick on dc0 proto tcp from any to any flags FUP

 # Block anything with special options
 block in quick on dc0 all with ipopts

 # Block public pings
 block in quick on dc0 proto icmp all icmp-type 8

 # Block ident
 block in quick on dc0 proto tcp from any to any port = 113

 # Block all Netbios service. 137=name, 138=datagram, 139=session
 # Netbios is MS/Windows sharing services.
 # Block MS/Windows hosts2 name server requests 81
 block in log first quick on dc0 proto tcp/udp from any to any port = 137
 block in log first quick on dc0 proto tcp/udp from any to any port = 138
 block in log first quick on dc0 proto tcp/udp from any to any port = 139
 block in log first quick on dc0 proto tcp/udp from any to any port = 81

 # Allow traffic in from ISP's DHCP server. This rule must contain
 # the IP address of your ISP's DHCP server as it's the only
 # authorized source to send this packet type. Only necessary for
 # cable or DSL configurations. This rule is not needed for
 # 'user ppp' type connection to the public Internet.
 # This is the same IP address you captured and
 # used in the outbound section.
 pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state

 # Allow in standard www function because I have apache server
 pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state

 # Allow in non-secure Telnet session from public Internet
 # labeled non-secure because ID/PW passed over public Internet as clear text.
 # Delete this sample group if you do not have telnet server enabled.
 #pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state

 # Allow in secure FTP, Telnet, and SCP from public Internet
 # This function is using SSH (secure shell)
 pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state

 # Block and log only first occurrence of all remaining traffic
 # coming into the firewall. The logging of only the first
 # occurrence avoids filling up disk with Denial of Service logs.
 # This rule implements the default block.
 block in log first quick on dc0 all
 ################### End of rules file #####################################

     --------------------------------------------------------------

  31.5.14. NAT

   NAT stands for Network Address Translation. To those familiar with
   Linux, this concept is called IP Masquerading; NAT and IP
   Masquerading are the same thing. One of the many things the IPF
   NAT function enables is the ability to have a private Local Area
   Network (LAN) behind the firewall sharing a single ISP assigned IP
   address on the public Internet.

   You may ask why would someone want to do this. ISPs normally
   assign a dynamic IP address to their non-commercial users. Dynamic
   means that the IP address can be different each time you dial in
   and log on to your ISP, or for cable and DSL modem users, when the
   modem is power cycled. This dynamic IP address is used to identify
   your system to the public Internet.

   Now lets say you have five PCs at home and each one needs Internet
   access. You would have to pay your ISP for an individual Internet
   account for each PC and have five phone lines.

   With NAT only a single account is needed with your ISP. The other
   four PCs may then be cabled to a switch and the switch to the NIC
   in your FreeBSD system which is going to service your LAN as a
   gateway. NAT will automatically translate the private LAN IP
   address for each separate PC on the LAN to the single public IP
   address as it exits the firewall bound for the public Internet. It
   also does the reverse translation for returning packets.

   There is a special range of IP addresses reserved for NATed
   private LANs. According to RFC 1918, the following IP ranges may
   be used for private nets which will never be routed directly to
   the public Internet:

   Start IP 10.0.0.0     -                  Ending IP 10.255.255.255  
   Start IP 172.16.0.0   -                  Ending IP 172.31.255.255  
   Start IP 192.168.0.0  -                  Ending IP 192.168.255.255 

     --------------------------------------------------------------

  31.5.15. IPNAT

   NAT rules are loaded by using the ipnat command. Typically the NAT
   rules are stored in /etc/ipnat.rules. See ipnat(1) for details.

   When changing the NAT rules after NAT has been started, make your
   changes to the file containing the NAT rules, then run the ipnat
   command with the -CF flags to delete the internal in use NAT rules
   and flush the contents of the translation table of all active
   entries.

   To reload the NAT rules issue a command like this:

 # ipnat -CF -f /etc/ipnat.rules

   To display some statistics about your NAT, use this command:

 # ipnat -s

   To list the NAT table's current mappings, use this command:

 # ipnat -l

   To turn verbose mode on, and display information relating to rule
   processing and active rules/table entries:

 # ipnat -v

     --------------------------------------------------------------

  31.5.16. IPNAT Rules

   NAT rules are very flexible and can accomplish many different
   things to fit the needs of commercial and home users.

   The rule syntax presented here has been simplified to what is most
   commonly used in a non-commercial environment. For a complete rule
   syntax description see the ipnat(5) manual page.

   The syntax for a NAT rule looks something like this:

 map IF LAN_IP_RANGE -> PUBLIC_ADDRESS

   The keyword map starts the rule.

   Replace IF with the external interface.

   The LAN_IP_RANGE is what your internal clients use for IP
   Addressing, usually this is something like 192.168.1.0/24.

   The PUBLIC_ADDRESS can either be the external IP address or the
   special keyword 0/32, which means to use the IP address assigned
   to IF.

     --------------------------------------------------------------

  31.5.17. How NAT works

   A packet arrives at the firewall from the LAN with a public
   destination. It passes through the outbound filter rules, NAT gets
   its turn at the packet and applies its rules top down, first
   matching rule wins. NAT tests each of its rules against the
   packet's interface name and source IP address. When a packet's
   interface name matches a NAT rule then the source IP address
   (i.e.: private LAN IP address) of the packet is checked to see if
   it falls within the IP address range specified to the left of the
   arrow symbol on the NAT rule. On a match the packet has its source
   IP address rewritten with the public IP address obtained by the
   0/32 keyword. NAT posts an entry in its internal NAT table so when
   the packet returns from the public Internet it can be mapped back
   to its original private IP address and then passed to the filter
   rules for processing.

     --------------------------------------------------------------

  31.5.18. Enabling IPNAT

   To enable IPNAT add these statements to /etc/rc.conf.

   To enable your machine to route traffic between interfaces:

 gateway_enable="YES"

   To start IPNAT automatically each time:

 ipnat_enable="YES"

   To specify where to load the IPNAT rules from:

 ipnat_rules="/etc/ipnat.rules"

     --------------------------------------------------------------

  31.5.19. NAT for a very large LAN

   For networks that have large numbers of PC's on the LAN or
   networks with more than a single LAN, the process of funneling all
   those private IP addresses into a single public IP address becomes
   a resource problem that may cause problems with the same port
   numbers being used many times across many NATed LAN PC's, causing
   collisions. There are two ways to relieve this resource problem.

     --------------------------------------------------------------

    31.5.19.1. Assigning Ports to Use

   A normal NAT rule would look like:

 map dc0 192.168.1.0/24 -> 0/32

   In the above rule the packet's source port is unchanged as the
   packet passes through IPNAT. By adding the portmap keyword, IPNAT
   can be directed to only use source ports in the specified range.
   For example the following rule will tell IPNAT to modify the
   source port to be within the range shown:

 map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp 20000:60000

   Additionally we can make things even easier by using the auto
   keyword to tell IPNAT to determine by itself which ports are
   available to use:

 map dc0 192.168.1.0/24 -> 0/32 portmap tcp/udp auto

     --------------------------------------------------------------

    31.5.19.2. Using a Pool of Public Addresses

   In very large LANs there comes a point where there are just too
   many LAN addresses to fit into a single public address. If a block
   of public IP addresses is available, these addresses can be used
   as a "pool", and IPNAT may pick one of the public IP addresses as
   packet-addresses are mapped on their way out.

   For example, instead of mapping all packets through a single
   public IP address, as in:

 map dc0 192.168.1.0/24 -> 204.134.75.1

   A range of public IP addresses can be specified either with a
   netmask:

 map dc0 192.168.1.0/24 -> 204.134.75.0/255.255.255.0

   or using CIDR notation:

 map dc0 192.168.1.0/24 -> 204.134.75.0/24

     --------------------------------------------------------------

  31.5.20. Port Redirection

   A very common practice is to have a web server, email server,
   database server and DNS server each segregated to a different PC
   on the LAN. In this case the traffic from these servers still have
   to be NATed, but there has to be some way to direct the inbound
   traffic to the correct LAN PCs. IPNAT has the redirection
   facilities of NAT to solve this problem. For example, assuming a
   web server operating on LAN address 10.0.10.25 and using a single
   public IP address of 20.20.20.5 the rule would be coded as
   follows:

 rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80

   or:

 rdr dc0 0.0.0.0/0 port 80 -> 10.0.10.25 port 80

   or for a LAN DNS Server on LAN address of 10.0.10.33 that needs to
   receive public DNS requests:

 rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udp

     --------------------------------------------------------------

  31.5.21. FTP and NAT

   FTP is a dinosaur left over from the time before the Internet as
   it is known today, when research universities were leased lined
   together and FTP was used to share files among research
   Scientists. This was a time when data security was not a
   consideration. Over the years the FTP protocol became buried into
   the backbone of the emerging Internet and its username and
   password being sent in clear text was never changed to address new
   security concerns. FTP has two flavors, it can run in active mode
   or passive mode. The difference is in how the data channel is
   acquired. Passive mode is more secure as the data channel is
   acquired by the ordinal ftp session requester. For a real good
   explanation of FTP and the different modes see
   http://www.slacksite.com/other/ftp.html.

     --------------------------------------------------------------

    31.5.21.1. IPNAT Rules

   IPNAT has a special built in FTP proxy option which can be
   specified on the NAT map rule. It can monitor all outbound packet
   traffic for FTP active or passive start session requests and
   dynamically create temporary filter rules containing only the port
   number really in use for the data channel. This eliminates the
   security risk FTP normally exposes the firewall to from having
   large ranges of high order port numbers open.

   This rule will handle all the traffic for the internal LAN:

 map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcp

   This rule handles the FTP traffic from the gateway:

 map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcp

   This rule handles all non-FTP traffic from the internal LAN:

 map dc0 10.0.10.0/29 -> 0/32

   The FTP map rule goes before our regular map rule. All packets are
   tested against the first rule from the top. Matches on interface
   name, then private LAN source IP address, and then is it a FTP
   packet. If all that matches then the special FTP proxy creates
   temp filter rules to let the FTP session packets pass in and out,
   in addition to also NATing the FTP packets. All LAN packets that
   are not FTP do not match the first rule and fall through to the
   third rule and are tested, matching on interface and source IP,
   then are NATed.

     --------------------------------------------------------------

    31.5.21.2. IPNAT FTP Filter Rules

   Only one filter rule is needed for FTP if the NAT FTP proxy is
   used.

   Without the FTP Proxy, the following three rules will be needed:

 # Allow out LAN PC client FTP to public Internet
 # Active and passive modes
 pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state

 # Allow out passive mode data channel high order port numbers
 pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state

 # Active mode let data channel in from FTP server
 pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state

     --------------------------------------------------------------

31.6. IPFW

   Die IPFIREWALL (IPFW) ist eine vom FreeBSD Project gesponserte
   Software-Firewall. Sie wurde und wird freiwillig von Mitgliedern
   des FreeBSD Projects geschrieben und gewartet. Mit zustandslosen
   Regeln und einer Grammatik fu:r Regeln implementiert sie eine
   sogenannte "Einfache Zustandsgesteuerte Logik".

   Die Standardinstallation von IPFW entha:lt einen beispielhaften
   Regelsatz (/etc/rc.firewall und /etc/rc.firewall6). Dieser ist
   eher einfach gehalten; es ist nicht zu erwarten, dass dieser ohne
   Modifikationen angewandt werden kann. Dieses Beispiel nutzt keine
   zustandsorientierte Filterung, von der allerdings die meisten
   Installationen profitieren sollten. Deshalb wird sich dieser
   Abschnitt auch nicht auf diese Beispiele stu:tzen.

   Die zustandslose IPFW Regel-Syntax ist durch ihre technisch
   ausgefeilten Selektions-Fa:higkeiten, die u:ber das Niveau der
   gebra:chlichen Firewall-Installationsprogramme weit hinausgehen,
   sehr ma:chtig. IPFW richtet sich an professionelle oder technisch
   versierte Nutzer mit weitergehenden Anforderungen an die
   Paket-Auswahl. Um die Ausdruckssta:rke der IPFW zu nutzen, ist
   sehr detailliertes Wissen u:ber die Art und Weise, wie
   verschiedene Protokolle ihre jeweilige Paket-Header-Information
   erzeugen und nutzen, erforderlich. Im Rahmen dieses Abschnitts ist
   es nicht mo:glich, auf alle diese Punkte detailliert einzugehen.

   IPFW besteht aus sieben Komponenten: Hauptbestandteil ist der
   Kernel Firewall Filter, ein Regel-Prozessor mit integrierter
   Paket-Buchfu:hrung. Ausserdem enthalten ist eine Komponente zur
   Protokollierung der Aktivita:ten der Firewall (also ein
   Logfunktion). Weiters besteht die IPFW aus einer Regel zum
   Umleiten des Datenverkehrs (divert), die auch Network Address
   Translation (NAT) unterstu:tzt. Die restlichen Bestandteile dienen
   verschiedenen fortgeschrittenen Zwecken. Der Traffic Shaper
   dummynet(4) gestattet es beispielsweise, den Datenverkehr zu
   lenken, wa:hrend die fwd-Regel zum Weiterleiten von Datenpaketen
   dient. Komplettiert wird IPFW durch Funktionen zum U:berbru:cken
   von Netzwerkgrenzen (Bridge-Funktion) sowie ipstealth, das es
   gestattet, bridging-Funktionen durchzufu:hren, ohne dabei das
   TTL-Feld im IP-Paket zu erho:hen. IPFW unterstu:tzt IPv4 und IPv6.

     --------------------------------------------------------------

  31.6.1. IPFW aktivieren

   IPFW ist in der FreeBSD-Installation standardma:ssig als ein zur
   Laufzeit ladbares Kernelmodul enthalten, das vom System
   automatisch geladen wird, wenn in der Datei rc.conf die Option
   firewall_enable="YES" gesetzt wird. Es ist daher in der Regel
   nicht notwendig, IPFW statisch in den Kernel zu kompilieren. Es
   sei denn, man beno:tigt die NAT-Funktionalita:t.

   Wa:hrend des Systemstart wird bei gesetzter Option
   firewall_enable="YES" (in der Datei rc.conf) folgende Nachricht
   ausgegeben:

 ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabled

   Das Kernelmodul hat eine Protokollierungsfunktion. Um diese zu
   aktivieren und einen Schwellwert fu:r die Protokollierung zu
   definieren, ist es erforderlich, folgende Ausdru:cke der
   /etc/sysctl.conf hinzuzufu:gen:

 net.inet.ip.fw.verbose=1
 net.inet.ip.fw.verbose_limit=5

     --------------------------------------------------------------

  31.6.2. Kerneloptionen

   IPFW muss nicht durch einkompilieren bestimmter, im folgenden
   konkretisierter Optionen in den Kernel aktiviert werden, es sei
   denn, man beno:tigt NAT-Funktionalita:t. Die erforderlichen
   Optionen werden deshalb hier lediglich als Hintergrundinformation
   aufgefu:hrt.

 options IPFIREWALL

   Diese Option aktiviert IPFW als Bestandteil des Kernels.

 options IPFIREWALL_VERBOSE

   Diese Option aktiviert die Funktion, alle Pakete, die durch IPFW
   verarbeitet werden und bei denen das Schlu:sselwort log gesetzt
   ist, zu protokollieren.

 options IPFIREWALL_VERBOSE_LIMIT=5

   Diese Option limitiert die Anzahl der durch syslogd(8)
   protokollierten Pakete auf das angegebene Maximum. Sie wird in
   feindlichen Umgebungen verwandt, in denen die Protokollierung der
   Firewall-Aktivita:t erwu:nscht ist. Dadurch wird ein mo:glicher
   Denial-of-Service-Angriff durch U:berflutung von syslogd(8)
   verhindert.

 options IPFIREWALL_DEFAULT_TO_ACCEPT

   Diese Option erlaubt allen Paketen, die Firewall zu passieren.
   Diese Einstellung kann beispielsweise bei der ersten Konfiguration
   der Firewall hilfreich sein.

 options IPDIVERT

   Dies aktiviert die Nutzung der NAT-Funktionalita:t.

     Anmerkung: Die Firewall wird alle eingehenden oder ausgehenden
     Pakete blockieren, wenn entweder die Kernel-Option
     IPFIREWALL_DEFAULT_TO_ACCEPT fehlt oder aber keine Regel, die
     die betreffenden Verbindungen explizit gestattet, existiert.
     Dies enstpricht im Wesentlichen der Einstellung "default to
     deny"

     --------------------------------------------------------------

  31.6.3. Optionen in /etc/rc.conf

   Der Eintrag

 firewall_enable="YES"

   aktiviert die Firewall wa:hrend des Systemstarts.

   Die Auswahl einer fu:r FreeBSD verfu:gbaren Firewall erfolgt durch
   einen entsprechenden Eintrag in der Datei /etc/rc.firewall, durch
   den der Firewalltyp festgelegt wird.

 firewall_type="open"

   Konkret sind folgende Eintra:ge erlaubt:

     * open -- gestattet jeglichen Datenverkehr

     * client -- schu:tzt nur die jeweilige Maschine (Client/Mandant)

     * simple -- schu:tzt das gesamte Netzwerk

     * closed -- unterbindet jeglichen IP-Datenverkehr mit Ausnahme
       des Verkehrs u:ber die Loopback-Schnittstelle.

     * UNKNOWN -- deaktiviert das Laden von Firewallregeln

     * filename -- absoluter Pfad zu einer Datei, in der die
       Firewallregeln definiert sind

   Angepasste Regeln fu:r ipfw(8) ko:nnen auf zwei verschiedene Arten
   geladen werden. Einerseits kann man durch die Variable
   firewall_type den absoluten Pfad der Datei angeben, welche die
   Firewallregeln (ohne weitere Optionen) fu:r ipfw(8) entha:lt. Ein
   einfaches Beispiel fu:r einen Regelsatz, der jeglichen eingehenden
   und ausgehenden Datenverkehr blockiert, ko:nnte beispielsweise so
   aussehen:

 add deny in add deny out

   Andererseits ist es mo:glich, den Wert der firewall_type-Variable
   mit dem absoluten Pfad einer Datei zu belegen, die (als
   ausfu:hrbares Skript) die ipfw(8)-Kommandos entha:lt, die beim
   Booten ausgefu:hrt werden sollen. Ein gu:ltiges Skript (das die
   gleiche Funktion hat wie die Zeile im letzten Beispiel) ko:nnte
   beispielsweise so aussehen:

 #!/bin/sh

 ipfw -q flush

 ipfw add deny in
 ipfw add deny out

     Anmerkung: Wenn die Variable firewall_type entweder auf client
     oder simple gesetzt ist, sollten die Standardregeln in der Datei
     /etc/rc.firewall gepru:ft und an die Konfiguration der gegebenen
     Maschine angepasst werden. Beachten Sie dabei bitte, dass die
     Beispiele dieses Kapitels davon ausgehen, dass das
     firewall_script auf /etc/ipfw.rules gesetzt ist.

   Das Logging wird durch folgenden Eintrag aktiviert:

 firewall_logging="YES"

     Warnung: Die Variable firewall_logging definiert lediglich die
     sysctl-Variable als net.inet.ip.fw.verbose = 1 (lesen Sie dazu
     bitte auch den Abschnitt Abschnitt 31.6.1 des Handbuchs). Es
     gibt keine rc.conf-Variable, mit der man
     Protokollierungsschwellen setzen ko:nnte. Dies kann lediglich
     u:ber sysctl(8) geschehen, wobei Sie in der Datei
     /etc/sysctl.conf nur Werte > 1 angeben sollten:

 net.inet.ip.fw.verbose_limit=5

   Sollte Ihre Maschinen als Gateway fungieren (also mittels natd(8)
   Network Address Translation (NAT) durchfu:hren), finden Sie in
   Abschnitt Abschnitt 32.9 weitere Optionen fu:r die /etc/rc.conf.

     --------------------------------------------------------------

  31.6.4. Der Befehl IPFW

   Mit ipfw(8) ist es mo:glich, im laufenden Betrieb einzelne Regeln
   hinzuzufu:gen oder zu entfernen. Problematisch ist allerdings,
   dass diese A:nderungen verloren gehen, wenn das System neu
   gestartet wird. Daher ist es empfehlenswert, eigene Regeln in
   einer Datei zu definieren und diese zu laden, um die Regeln der
   Firewall im laufenden Betrieb anzupassen.

   ipfw(8) ist jedoch hilfreich, um die Regeln der laufenden Firewall
   in der Konsole auszugeben. IPFW erzeugt dynamisch einen Za:hler,
   der jedes Paket, auf das eine Regel zutrifft, za:hlt. Dadurch wird
   es mo:glich, die Funktion einer Regel zu u:berpru:fen.

   Eine sequentielle Liste aller Regeln erhalten Sie mit:

 # ipfw list

   Eine Liste aller Regeln inklusive des letzten Treffers erhalten
   Sie durch den folgenden Befehl:

 # ipfw -t list

   Um eine Liste aller Regeln inklusive der Anzahl der Pakete, die
   von einer Regel gefiltert wurden, zu erhalten, geben Sie den
   folgenden Befehl ein:

 # ipfw -a list

   Eine Liste, die zusa:tzlich allen dynamischen Regeln entha:lt,
   erhalten Sie mit:

 # ipfw -d list

   Um diese Liste um alle "abgelaufenen" Regeln zu erweitern, a:dern
   Sie diesen Befehl wie folgt ab:

 # ipfw -d -e list

   Alle Za:hler auf Null zuru:cksetzen:

 # ipfw zero

   Es ist auch mo:glich, einen spezifischen Za:hler auszuwa:hlen und
   zuru:ckzusetzen:

 # ipfw zero NUM

     --------------------------------------------------------------

  31.6.5. IPFW-Regeln

   Ein Regelwerk ist eine Menge von IPFW-Regeln, die in Abha:ngigkeit
   von bestimmten Paketeigenschaften Pakete entweder passieren lassen
   oder abweisen. Der zustandshafte bidirektionale Transfer von
   Paketen zwischen Rechnern wird als Sitzung bezeichnet. Das
   Regelwerk der Firewall verarbeitet sowohl ankommende Pakete (aus
   dem o:ffentlichen Internet) als auch Pakete, deren Ursprung in
   einer Antwort des Systems auf empfangene Pakete liegt. Jeder
   TCP/IP-Dienst (wie telnet, www, mail) ist durch sein Protokoll und
   durch den priveligierten (eingehenden) Port definiert. An einen
   spezifischen Dienst adressierte Pakete kommen von einer
   Quelladresse und einem unprivilegierten (high order) Port. Sie
   adressieren den spezifischen Port des Dienstes an der Zieladresse.
   Alle weiter oben aufgefu:hrten Parameter (also Ports und Adressen)
   ko:nnen als Selektionskriterium zur Erzeugung von Regeln genutzt
   werden, die ein Passieren der Firewall fu:r oder ein Blockieren
   von Diensten bewirken.

   Wenn ein Paket die Firewall "betritt", also von der Firewall
   gepru:ft und verarbeitet wird, wird die erste Regel des
   Regelwerkes auf das Paket angewandt. Auf diese Weise wird in
   aufsteigender Reihenfolge der Regelnummer mit allen weiteren
   Regeln verfahren. Falls die Selektionsparameter einer Regel auf
   ein Paket zutreffen, wird das Aktionsfeld der Regel ausgefu:hrt
   und die Pru:fung des Pakets beendet, nachfolgende Regeln werden
   also nicht mehr gepru:ft. Diese Suchmethode wird als "erster
   Treffer gewinnt" bezeichnet. Falls keine Regel auf das betreffende
   Paket zutrifft, wird die obligatorische IPFW-Ru:ckfallregel (also
   Regel 65535) angewendet und das Paket wird ohne Ru:ckantwort
   verworfen.

     Anmerkung: Die Pru:fung der Regeln wird nach Treffern von mit
     count, skipto und tee parametrisierten Regeln ungeachtet des
     "erster Treffer gewinnt"-Prinzips weiter fortgefu:hrt.

   Die Anweisungen basieren auf der Nutzung von Regeln mit den
   zustandsgesteuerten Optionen keep, state, limit, in und out. Diese
   bilden die Basis fu:r die Spezifikation von Firewallregeln.

     Warnung: Bei der Arbeit mit Firewallregeln ist Vorsicht geboten.
     Es ist sehr einfach, sich selbst auszuschliessen.

     --------------------------------------------------------------

    31.6.5.1. Syntax der Firewallregeln

   Mit der in diesem Abschnitt dargestellten Syntax der Regeln kann
   ein Standardregelsatz fu:r eine "einschliessende" Firewall
   erstellt werden. Fu:r eine vollsta:ndige Beschreibung der
   Regelsyntax lesen Sie bitte die Manualpage ipfw(8)

   Regelausdru:cke werden "von links nach rechts" ausgewertet.
   Schlu:sselwo:rter werden in fetter Schrift dargestellt. Manche
   Schlu:sselworte beinhalten Unteroptionen, die wiederum selbst aus
   Schlu:sselworten samt Optionen bestehen ko:nnen.

   Kommentare sind mit einen fu:hrenden Doppelkreuz (#)
   ausgezeichnet. Sie ko:nnen am Ende einer Regel oder in einzelnen,
   separaten Zeilen stehen. Leerzeilen werden ignoriert.

   CMD RULE_NUMBER ACTION LOGGING SELECTION STATEFUL

     --------------------------------------------------------------

      31.6.5.1.1. CMD

   Jede neue Regel beno:tigt das Pra:fix add, um die Regel der
   internen Tabelle hinzuzfu:gen.

     --------------------------------------------------------------

      31.6.5.1.2. RULE_NUMBER

   Zu jeder Regel geho:rt eine Regelnummer zwischen 1 und 65535.

     --------------------------------------------------------------

      31.6.5.1.3. ACTION

   Eine Regel kann mit einer der vier folgenden Aktionen verbunden
   sein, die ausgefu:hrt werden, wenn ein Paket den
   Selektionskriterien der Regel entspricht.

   allow | accept | pass | permit

   Alle diese Aktionen bewirken das Gleiche: Pakete, die den
   Selektionskriterien der Regel entsprechen, verlassen den
   Regelpru:fungsabschnitt der Firewall und die Regelpru:fung wird
   beendet.

   check-state

   Diese Aktion pru:ft das Paket gegen die Regeln aus den dynamischen
   Regeltabellen. Trifft ein Selektionskriterium zu, wird die zur
   dynamischen Regel geho:rende Aktion ausgefu:hrt. Anderenfalls wird
   gegen die na:chste Regel gepru:ft. Die check-state-Regel selbst
   hat kein Selektionskriterium. Sollte eine check-state-Regel im
   Regelwerk fehlen, wird gegen die erste keep-state- oder
   limit-Regel in den dynamischen Regeln gepru:ft.

   deny | drop

   Beide Schlu:sselworte bewirken dieselbe Aktion: Ein Paket, dass
   die Selektionskriterien der Regel erfu:llt, wird verworfen und die
   Regelpru:fung wird beendet.

     --------------------------------------------------------------

      31.6.5.1.4. Protokollierung

   log oder logamount

   Erfu:llt ein Paket die Selektionskriterien mit dem Schlu:sselwort
   log, wird dies von syslogd(8) mit der Annotation SECURITY
   protokolliert. Dies erfolgt allerdings nur, wenn die Anzahl der
   protokollierten Pakete der betreffenden Regel die im
   logamount-Parameter definierte Schwelle nicht u:bersteigt. Ist der
   Parameter logamount nicht definiert, wird diese Grenze aus der
   sysctl-Variable net.inet.ip.fw.verbose_limit ermittelt. Ist einer
   dieser beiden Werte auf "Null" gesetzt, wird unbegrenzt
   protokolliert. Wurde hingegen ein definierter Schwellenwert
   erreicht, wird die Protokollierung deaktiviert. Um sie zu
   reaktivieren, ko:nnen Sie entweder den Protokoll- oder den
   Paketza:hler ru:cksetzen (und zwar u:ber den Befehl ipfw reset
   log).

     Anmerkung: Die Protokollierung findet statt, nachdem alle
     Paketselektionskriterien gepru:ft und bevor die daraus folgende,
     endgu:ltige Aktion (accept oder deny) auf das Paket ausgefu:hrt
     wird. Die Entscheidung, welche Regel protokolliert werden soll,
     bleibt Ihnen u:berlassen.

     --------------------------------------------------------------

      31.6.5.1.5. Selektion

   Die in diesem Abschnitt beschriebenen Schlu:sselwo:rter
   beschreiben die Attribute eines Pakets, durch die bestimmt wird,
   ob eine Regel auf ein Paket zutrifft. Die folgenden Attribute
   dienen der Bestimmung des Protokolls und mu:ssen in der
   angegebenen Reihenfolge verwendet werden.

   udp | tcp | icmp

   Weitere in /etc/protocols angegebene Protokolle werden ebenfalls
   erkannt und ko:nnen daher verwendet werden, um das Protokoll zu
   definieren, gegen das Pakete gepru:ft werden. Die Angabe des
   Protokolls ist verpflichtend.

   from src to dst

   Die Schlu:sselwo:rter from und to beziehen sich auf IP-Adressen
   und definieren sowohl Ursprungs- als auch Zieladresse einer
   Datenverbindung. Firewallregeln mu:ssen Parameter fu:r den
   Ursprung und das Ziel enthalten. Das Schlu:sselwort any steht fu:r
   beliebige IP-Adressen. Bei me handelt es sich um ein spezielles
   Schlu:sselwort, das alle IP-Adressen beschreibt, die einer
   bestimmten Netzwerkschnittstelle Ihres Systems (auf dem die
   Firewall la:uft) zugeordnet sind. Beispiele hierfu:r sind from me
   to any, from any to me, from 0.0.0.0/0 to any , from any to
   0.0.0.0/0, from 0.0.0.0 to any, from any to 0.0.0.0 oder from me
   to 0.0.0.0. IP-Adressen werden entweder in CIDR-Notation oder
   durch Punkte getrennt mit Suffixen (192.168.2.101/24) fu:r die
   Netzmaske oder als einzelne numerische, durch Punkte getrennte
   Adressen (192.168.2.101) angegeben. Die dafu:r notwendigen
   Berechnungen erleichtert der Port net-mgmt/ipcalc. Weiterfu:hrende
   Informationen finden sich auf http://jodies.de/ipcalc.

   port number

   Bei der Verarbeitung von Protokollen wie TCP oder UDP, die
   Portnummern verwenden, muss die Portnummer des betreffenden
   Dienstes angegeben werden. Anstelle der Portnummer kann auch der
   in der Datei /etc/services definierte Name des Dienstes angegeben
   werden.

   in | out

   Diese Schlu:sselwo:rter beziehen sich auf die Richtung des
   Datenverkehrs. Jede Regel muss eines dieser beiden
   Schlu:sselwo:rter enthalten.

   via IF

   Eine Regel mit dem Schlu:sselwort via IF betrifft nur Pakete, die
   u:ber die angegebene Schnittstellte geroutet werden (ersetzen Sie
   IF durch den Namen Ihrer Netzwerkschnittstelle). Die Angabe des
   Schlu:sselwortes via bewirkt, dass die Netzwerkschnittstelle in
   die Regelpru:fung aufgenommen wird.

   setup

   Dieses obligatorische Schlu:sselwort bezeichnet die Anforderung
   des Sitzungsstarts fu:r TCP-Pakete.

   keep-state

   Dieses obligatorische Schlu:sselwort bewirkt, dass die Firewall
   eine dynamische Regel erzeugt, die bidirektionalen Datenverkehr
   zwischen Ursprungs- und Zieladresse sowie Ursprungs- und Zielport
   pru:ft, der das gleiche Protokoll verwendet.

   limit {src-addr | src-port | dst-addr | dst-port}

   Wird das Schlu:sselwort limit verwendet, sind nur N durch diese
   Regel definierte Verbindungen erlaubt. Es ko:nnen dabei ein oder
   mehrere Ursprungs- und Zieladressen sowie ein oder mehrere Ports
   angegeben werden. Die Schlu:sselwo:rter limit und keep-state
   ko:nnen nicht in derselben Regel verwendet werden. Die Option
   limit bewirkt dieselbe Zustandsteuerung wie die Option keep-state,
   erweitert diese jedoch um eigene Regeln.

     --------------------------------------------------------------

    31.6.5.2. Optionen fu:r zustandsgesteuerte Regeln

   Eine zustandsgesteuerte Filterung behandelt Datenverkehr als einen
   bidirektionalen Austausch von Datenpaketen (die eine sogenannte
   Konversation innerhalb einer Sitzung darstellen). Sie ist in der
   Lage, zu bestimmen, ob die Konversation von origina:rem Sender und
   Empfa:nger gu:ltigen Prozeduren des bidirektionalen Pakettausches
   entspricht. Pakete, die dem Muster von Konversationen in Sitzungen
   nicht folgen, werden automatisch als "Betru:ger" abgelehnt.

   Die check-state-Option wird verwendet, wo genau innerhalb des
   IPFW-Regelwerks die Pru:fung dynamischer Regeln stattfinden soll.
   Erfu:llt ein Datenpaket die Selektionskriterien der Regel,
   verla:sst das Paket die Firewall. Gleichzeitig wird eine neue
   dynamische Regel erzeugt, die fu:r das na:chste Paket der
   bidirektionalen Konversation in der Sitzung vorgesehen ist. Falls
   ein Paket die (dyanmische) Regel nicht erfu:llt, wird es gegen die
   na:chste Regel im Regelwerk gepru:ft.

   Dynamische Regeln sind fu:r einem sogenannten SYN-flood-Angriff
   anfa:llig, bei dem eine riesige Anzahl "schwebender" dynamischer
   Regelpru:fungungsinstanzen erzeugt wird. Um einem solchen Angriff
   zu begegnen, wurde in FreeBSD die neue Option limit geschaffen.
   Diese Option begrenzt die Anzahl der gleichzeitig mo:glichen
   Sitzungen und/oder Konversationen. Es handelt sich dabei um einen
   Za:hler, der die Anzahl von Instanzen dynamischer Regelpru:fungen
   in Abha:ngigkeit von einer eindeutigen Urspungs- und
   Quelladresskombination za:hlt. U:bersteigt der Za:hler den durch
   limit definierten Schwellenwert, wird das Paket verworfen.

     --------------------------------------------------------------

    31.6.5.3. Protokollierung von Firewall-Nachrichten

   Die Vorteile einer Protokollierung sind offensichtlich. Sie
   ermo:glicht nach Aktivierung von Regeln zu untersuchen, welche
   Pakete verworfen wurden, von wo diese stammen und fu:r welche
   Systeme sie bestimmt waren. Diese Informationen sind sehr
   nu:tzlich bei der Erkennung eventueller Angriffe sowie bei deren
   Abwehr.

   IPFW protokolliert nur jene Regeln, fu:r die ein Administrator
   dies explizit aktiviert. Ein Aktivieren der Protolllfunktion
   fu:hrt also nicht dazu, dass automatisch alle Regeln protokolliert
   werden. Vielmehr entscheidet der Administrator der Firewall,
   welche Regeln protokolliert werden sollen. Dazu wird die Option
   log fu:r diese Regeln aktiviert. Im Regelfall werden nur
   deny-Regeln protokolliert, beispielsweise die deny-Regel fu:r
   eintreffende ICMP-Nachrichten. U:blicherweise wird die "ipfw
   default deny everything"-Regel doppelt angelegt. Einmal mit und
   einmal ohne aktivierte Option log. Dadurch erha:lt man eine
   Auflistung aller Pakete, auf die keine Regel zutraf.

   Protokollierung ist allerdings ein zweischneidiges Schwert, bei
   mangelnder Vorsicht wird man mit einer enormen Flut von
   Protokollierungsdaten fo:rmlich u:berschwemmt und belastet
   zusa:tzlich die Festplatte des Systems durch rasch wachsende
   Protokolldateien. DoS-Angriffe, die auf diese Art und Weise
   Festplatten an die Kapazita:tsgrenze treiben, geho:ren zu den
   a:ltesten Angriffen u:berhaupt. Ausserdem werden
   Protokollnachrichten nicht nur an syslogd(8) geschickt, sondern
   auch auf einem root-Terminal angezeigt.

   Die Kerneloption IPFIREWALL_VERBOSE_LIMIT=5 begrenzt die Anzahl
   gleicher Nachrichten an syslogd(8) fu:r eine gegebene Regel auf
   fu:nf Nachrichten. Ist diese Option im Kernel aktiviert, wird nach
   Erreichen der festgelegten Anzahl die Protokollierung einer (sich
   unmittelbar hintereinander wiederholenden) Nachricht auf den
   angegebenen Schwellenwert begrenzt, da beispielsweise die
   Speicherung von 200 gleichen Protokollnachrichten durch syslogd(8)
   sinnlos ist. Daher werden durch diesen nur fu:f derartige
   Nachrichten protokolliert. Alle weiteren derartigen Nachrichten
   werden nur geza:hlt und deren Gesamtzahl wird schliesslich von
   syslogd(8) durch folgenden Ausdruck ausgegeben:

 last message repeated 45 times

   Alle protokollierten Nachrichten fu:r Datenpakete werden in der
   Voreinstellung in die Datei /var/log/security (die in der Datei
   /etc/syslog.conf definiert wird), geschrieben.

     --------------------------------------------------------------

    31.6.5.4. Skripte zur Regeldefinition erstellen

   Die meisten fortgeschrittenen IPFW-Nutzer erzeugen eine Datei, die
   die Regeln fu:r die Firewall entha:lt, um diese als Skript
   ausfu:hren zu ko:nnen. Der Hauptvorteil einer derartigen
   Konfiguration ist es, dass dadurch mehrere Regeln gleichzeitig
   gea:ndert und (re-)aktiviert werden ko:nnen, ohne dass dazu das
   System neu gestartet werden muss. Dies ist auch beim Testen von
   Regela:nderungen sehr hilfreich. Weil es sich bei der Datei, in
   der die Regeln gespeichert sind, um ein Skript handelt, ist es
   auch mo:glich, ha:ufig verwendete Werte/Befehle durch Aliase zu
   ersetzen und diese so in mehreren Regeln zu nutzen. Diese Funktion
   wird im folgenden Beispiel na:her vorgestellt.

   Die Syntax des folgenden Skripts entspricht der Syntax von sh(1),
   csh(1) sowie tcsh(1). Felder, die symbolisch substituiert werden,
   haben das Pra:fix $ (das Dollarzeichen). Symbolische Felder haben
   dieses $-Praefix nicht. Der Wert, mit dem das symbolische Feld
   belegt wird, muss in "doppelten Anfu:hrungszeichen" eingeschlossen
   sein.

   Beginnen Sie Ihre Regeldatei wie folgt:

 ############### start of example ipfw rules script #############
 #
 ipfw -q -f flush       # Delete all rules
 # Set defaults
 oif="tun0"             # out interface
 odns="192.0.2.11"      # ISP's DNS server IP address
 cmd="ipfw -q add "     # build rule prefix
 ks="keep-state"        # just too lazy to key this each time
 $cmd 00500 check-state
 $cmd 00502 deny all from any to any frag
 $cmd 00501 deny tcp from any to any established
 $cmd 00600 allow tcp from any to any 80 out via $oif setup $ks
 $cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks
 $cmd 00611 allow udp from any to $odns 53 out via $oif $ks
 ################### End of example ipfw rules script ############

   Die Regeln in diesem Beispiel sind nicht wichtig. Wichtig ist es,
   zu zeigen, wie die symbolische Substitution innerhalb der Regeln
   verwendet wird.

   Wurde dieses Beispiel in der Datei /etc/ipfw.rules gespeichert, so
   ko:nnen alle Regeln durch die Ausfu:hrung des folgenden Befehls
   neu geladen werden:

 # sh /etc/ipfw.rules

   Statt /etc/ipfw.rules ko:nnen Sie auch einen beliebigen anderen
   Namen und/oder Speicherort verwenden.

   Alternativ ko:nnten Sie die einzelnen Befehle dieses Skripts auch
   manuell starten:

 # ipfw -q -f flush
 # ipfw -q add check-state
 # ipfw -q add deny all from any to any frag
 # ipfw -q add deny tcp from any to any established
 # ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state
 # ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state
 # ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state

     --------------------------------------------------------------

    31.6.5.5. Zustandsgesteuertes Regelwerk

   Das folgende Regelwerk (ohne NAT-Funktionalita:t) ist ein Beispiel
   dafu:r, wie man eine sehr sichere "einschliessende" Firewall
   aufsetzen kann. Eine einschliessende Firewall erlaubt es nur
   Diensten, fu:r die explizite Regeln existieren, die Firewall zu
   passieren. Alle anderen Dienste und Pakete werden hingegen
   blockiert. Firewalls, die ganze Netzwerksegmente schu:tzen sollen,
   beno:tigen mindestens zwei Netzwerkschnittstellen, fu:r die
   jeweils eigene Regeln definiert werden mu:ssen, damit die Firewall
   ordnungsgema:ss funktioniert.

   Alle unixoiden Betriebssysteme (aber auch solche, die Konzepte aus
   UNIX implementieren), darunter auch FreeBSD, verwenden die
   Schnittstelle lo0 mit der IP-Adresse 127.0.0.1 zur internen
   Kommunikation mit dem Betriebssystem. Die Firewall muss so
   eingestellt sein, dass sie den Datenverkehr dieser speziellen (und
   nur intern genutzten) Pakete ungehindert durchla:sst.

   Die Regeln, die den Zugriff auf eingehene und ausgehende
   Verbindungen regeln, autorisieren und kontrollieren, mu:ssen mit
   der fu:r die Verbindung zum o:ffentlichen Internet
   verantwortlichen Schnittstelle assoziiert werden. Bei dieser
   Schnittstelle kann es sich beispielsweise um PPP/tun0 oder die
   Netzwerkkarte handelt, u:ber, die mit Ihrem DSL- oder Kabelmodem
   verbunden ist.

   Falls mehr als eine Netzwerkkarte mit einem privaten Netzwerk
   (hinter der Firewall) verbunden sind, mu:ssen die Firewallregeln
   fu:r alle diese Schnittstellen entstammenden Datenpakete freien
   und ungehinderten Datenverkehr erlauben.

   Es ist sinnvoll, die Regeln in drei Abschnitte aufzuteilen. Der
   erste Abschnitt entha:lt die freien, von der Firewall nicht zu
   u:berwachenden Netzwerkschnittstellen. Danach folgen die
   o:ffentlichen, fu:r den ausgehenden Verkehr verantwortlichen
   Schnittstellen. Zuletzt kommen dann die Schnittstellen, die fu:r
   den eingehenden Datenverkehr verantwortlich sind.

   Innerhalb der einzelnen Abschnitte ist es sinnvoll, die am
   ha:ufigsten verwendeten Regeln vor den seltener verwendeten Regel
   zu platzieren. Jeder Abschnitt sollte mit einer letzten Regel (die
   alle Pakete, auf die keine Regel zutraf, verwirft) abgeschlossen
   werden.

   Der Abschnitt fu:r den ausgehenden Datenverkehr des folgenden
   Beispiels entha:t nur allow)-Regeln, in denen der Dienst, dem der
   Zugriff auf das o:ffentliche Internet gewa:hrt wird, eindeutig
   definiert ist. Alle Regeln verwenden die Optionen proto, port,
   in/out, via sowie keep state kodiert. Die Regeln mit proto tcp
   verwenden zusa:tzlich die Option setup, damit die initiale, eine
   Sitzung beginnende Anfrage identifiziert werden kann, damit die
   die Zustandsttabelle gefu:llt werden kann.

   Der Abschnitt fu:r den eingehenden Datenverkehr beginnt mit allen
   Regeln, die zur Blockierung unerwu:nschten Datenverkehrs beno:tigt
   werden. Fu:r diese Vorgehensweise gibt es zwei Gru:nde: Zum einen
   ko:nnten bo:sartige Pakete legtitimen Datenverker so sehr a:hneln,
   dass sie die Bedingungen von allow-Regeln erfu:llen und daher die
   Firewall passieren du:rfen. Daher sollten derartige Pakete direkt
   verworden werden. Zum anderen sollten unerwu:nschte Pakete mit
   bekannten (und somit uninteressanten Mustern) sofort ohne
   Ru:ckmeldung blockiert werden, anstatt erst von der letzten,
   generischen Regel blockiert (und, was noch wichtiger ist, auch
   noch protokolliert). Die letzte Regel jedes Abschnittes blockiert
   und protokolliert; sie kann daher dazu verwendet werden, vor
   Gericht haltbare Beweise zu erhalten, damit sie gegen Personen
   vorgehen ko:nnen, die versuchen, Ihre Systeme anzugreifen.

   Achten Sie darauf, dass Sie keine Netwerkantworten fu:r geblockte
   Pakete senden. Diese mu:ssen ohne Ru:ckmeldung verworfen werden,
   damit ein Angreifer keine Informationen daru:ber erha:lt, ob seine
   Datenpakete Ihr System erreicht hat. Je weniger Information ein
   Angreifer u:ber Ihr System erha:lt, desto sicherer ist Ihr System.
   Datenpakete an Ports, die nicht bekannten Diensten zugeordnet
   werden ko:nnen, ko:nnen u:ber die Datei /etc/services
   identifiziert werden. Alternativ kann eine Anfrage an
   http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
   Klarheit u:ber die Aufgabe/Funktion einer bestimmten Portnummer
   bringen. Auf der Seite
   http://www.sans.org/security-resources/idfaq/oddports.php kann man
   Information u:ber bekannte Trojaner und von diesen verwendete
   Portnummern erhalten.

     --------------------------------------------------------------

    31.6.5.6. Ein Beispiel fu:r einschliessende Regeln

   Das folgende Regelwerk (ohne NAT-Funktionalita:t) beschreibt ein
   vollsta:ndiges, einschliessendes Regelwerk. Dieses Regelwerk kann
   direkt auf Ihren eigenen Systemen eingesetzt werden, wenn alle
   pass-Regeln fu:r von Ihnen nicht beno:tigten Dienste
   auskommentiert werden. Falls Sie keine Protokollierung beno:tigen,
   ko:nnen Sie diese im Abschnitt fu:r den eingehenden Datenverkehr
   durch eine deny deaktivieren. Die im Beispiel verwendete
   Netzwerkschnittstelle dc0 mu:ssen Sie durch die auf Ihrem System
   fu:r ausgehenden Datenverkehr vorgesehenen Netzwerkschnittstelle
   ersetzen. Im Falle von benutzergesteuertem PPPs wa:re dies
   beispielsweise tun0.

   Alle Regeln folgen einem bestimmten Muster.

     * Alle Ausdru:cke, die eine Anfrage zum Beginn einer
       zustandsgesteuerten darstellen, beinhalten den Ausdruck
       keep-state.

     * Alle Dienste aus dem o:ffentlichen Internet beinhalten die
       Option limit, um gegebenenfalls flooding zu unterbinden.

     * Alle Regeln bezeichnen die Richtung durch der Ausdru:cke in
       oder out.

     * Alle Regeln legen die verwendete Netzwerkschnittstelle die
       Ausdru:cke via und interface-name fest.

   Die folgenden Regeln werden in der Datei /etc/ipfw.rules
   definiert.

 ################ Start of IPFW rules file ###############################
 # Flush out the list before we begin.
 ipfw -q -f flush

 # Set rules command prefix
 cmd="ipfw -q add"
 pif="dc0"     # public interface name of NIC
               # facing the public Internet

 #################################################################
 # No restrictions on Inside LAN Interface for private network
 # Not needed unless you have LAN.
 # Change xl0 to your LAN NIC interface name
 #################################################################
 #$cmd 00005 allow all from any to any via xl0

 #################################################################
 # No restrictions on Loopback Interface
 #################################################################
 $cmd 00010 allow all from any to any via lo0

 #################################################################
 # Allow the packet through if it has previous been added to the
 # the "dynamic" rules table by a allow keep-state statement.
 #################################################################
 $cmd 00015 check-state

 #################################################################
 # Interface facing Public Internet (Outbound Section)
 # Interrogate session start requests originating from behind the
 # firewall on the private network or from this gateway server
 # destined for the public Internet.
 #################################################################

 # Allow out access to my ISP's Domain name server.
 # x.x.x.x must be the IP address of your ISP.s DNS
 # Dup these lines if your ISP has more than one DNS server
 # Get the IP addresses from /etc/resolv.conf file
 $cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep-state
 $cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep-state

 # Allow out access to my ISP's DHCP server for cable/DSL configurations.
 # This rule is not needed for .user ppp. connection to the public Internet.
 # so you can delete this whole group.
 # Use the following rule and check log for IP address.
 # Then put IP address in commented out rule & delete first rule
 $cmd 00120 allow log udp from any to any 67 out via $pif keep-state
 #$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep-state

 # Allow out non-secure standard www function
 $cmd 00200 allow tcp from any to any 80 out via $pif setup keep-state

 # Allow out secure www function https over TLS SSL
 $cmd 00220 allow tcp from any to any 443 out via $pif setup keep-state

 # Allow out send & get email function
 $cmd 00230 allow tcp from any to any 25 out via $pif setup keep-state
 $cmd 00231 allow tcp from any to any 110 out via $pif setup keep-state

 # Allow out FBSD (make install & CVSUP) functions
 # Basically give user root "GOD" privileges.
 $cmd 00240 allow tcp from me to any out via $pif setup keep-state uid root

 # Allow out ping
 $cmd 00250 allow icmp from any to any out via $pif keep-state

 # Allow out Time
 $cmd 00260 allow tcp from any to any 37 out via $pif setup keep-state

 # Allow out nntp news (i.e. news groups)
 $cmd 00270 allow tcp from any to any 119 out via $pif setup keep-state

 # Allow out secure FTP, Telnet, and SCP
 # This function is using SSH (secure shell)
 $cmd 00280 allow tcp from any to any 22 out via $pif setup keep-state

 # Allow out whois
 $cmd 00290 allow tcp from any to any 43 out via $pif setup keep-state

 # deny and log everything else that.s trying to get out.
 # This rule enforces the block all by default logic.
 $cmd 00299 deny log all from any to any out via $pif

 #################################################################
 # Interface facing Public Internet (Inbound Section)
 # Check packets originating from the public Internet
 # destined for this gateway server or the private network.
 #################################################################

 # Deny all inbound traffic from non-routable reserved address spaces
 $cmd 00300 deny all from 192.168.0.0/16 to any in via $pif  #RFC 1918 private IP
 $cmd 00301 deny all from 172.16.0.0/12 to any in via $pif     #RFC 1918 private IP
 $cmd 00302 deny all from 10.0.0.0/8 to any in via $pif          #RFC 1918 private IP
 $cmd 00303 deny all from 127.0.0.0/8 to any in via $pif        #loopback
 $cmd 00304 deny all from 0.0.0.0/8 to any in via $pif            #loopback
 $cmd 00305 deny all from 169.254.0.0/16 to any in via $pif   #DHCP auto-config
 $cmd 00306 deny all from 192.0.2.0/24 to any in via $pif       #reserved for docs
 $cmd 00307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster interconnect
 $cmd 00308 deny all from 224.0.0.0/3 to any in via $pif         #Class D & E multicast

 # Deny public pings
 $cmd 00310 deny icmp from any to any in via $pif

 # Deny ident
 $cmd 00315 deny tcp from any to any 113 in via $pif

 # Deny all Netbios service. 137=name, 138=datagram, 139=session
 # Netbios is MS/Windows sharing services.
 # Block MS/Windows hosts2 name server requests 81
 $cmd 00320 deny tcp from any to any 137 in via $pif
 $cmd 00321 deny tcp from any to any 138 in via $pif
 $cmd 00322 deny tcp from any to any 139 in via $pif
 $cmd 00323 deny tcp from any to any 81 in via $pif

 # Deny any late arriving packets
 $cmd 00330 deny all from any to any frag in via $pif

 # Deny ACK packets that did not match the dynamic rule table
 $cmd 00332 deny tcp from any to any established in via $pif

 # Allow traffic in from ISP's DHCP server. This rule must contain
 # the IP address of your ISP.s DHCP server as it.s the only
 # authorized source to send this packet type.
 # Only necessary for cable or DSL configurations.
 # This rule is not needed for .user ppp. type connection to
 # the public Internet. This is the same IP address you captured
 # and used in the outbound section.
 #$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep-state

 # Allow in standard www function because I have apache server
 $cmd 00400 allow tcp from any to me 80 in via $pif setup limit src-addr 2

 # Allow in secure FTP, Telnet, and SCP from public Internet
 $cmd 00410 allow tcp from any to me 22 in via $pif setup limit src-addr 2

 # Allow in non-secure Telnet session from public Internet
 # labeled non-secure because ID & PW are passed over public
 # Internet as clear text.
 # Delete this sample group if you do not have telnet server enabled.
 $cmd 00420 allow tcp from any to me 23 in via $pif setup limit src-addr 2

 # Reject & Log all incoming connections from the outside
 $cmd 00499 deny log all from any to any in via $pif

 # Everything else is denied by default
 # deny and log all packets that fell through to see what they are
 $cmd 00999 deny log all from any to any
 ################ End of IPFW rules file ###############################

     --------------------------------------------------------------

    31.6.5.7. Ein Beispiel fu:r zustandshafte NAT-Regeln

   Es mu:ssen einige zusa:tzliche Konfigurationseinstellungen
   vorgenommen werden, um die die NAT-Funktion von IPFW zu nutzen.
   Die Kernelquellen mu:ssen mit der Option IPDIVERT (im
   IPFIREWALL-Abschnitt der Kernelkonfigurationsdatei) neu gebaut
   werden, um den beno:tigten angepassten Kernel zu erzeugen.

   Zusa:tzlich werden folgende Optionen in der /etc/rc.conf
   beno:tigt:

 natd_enable="YES"                   # Enable NATD function
 natd_interface="rl0"                # interface name of public Internet NIC
 natd_flags="-dynamic -m"            # -m = preserve port numbers if possible

   Zustandshafte Regeln bei aktiviertem divert natd (Network Address
   Translation) verkomplizieren die Formulierung des Regelwerkes
   betra:chtlich. Damit Ihre Firewall funktioniert, kommt es
   insbesondere auf die Position der Ausdru:cke check-state sowie
   divert natd an. Sie ko:nnen nicht la:nger einen einfachen,
   kaskadierenden Ablauf verwenden (also einen Regelsatz, bei dem
   einfach auf eine Regel nach der anderen gepru:ft wird. Vielmehr
   wird der neue Aktionstyp skipto beno:tigt. Dies erfordert, dass
   jede Regel u:ber eine eindeutige Nummer verfu:gt, um so eindeutige
   Sprungziele zu erhalten.

   Im Folgenden wird anhand eines umkommentierten Beispiels der
   Paketfluss durch das Regelwerk verdeutlicht.

   Die Verarbeitung beginnt mit der ersten Regel (also am Anfang der
   Regeldatei. Sie setzt sich Regel fu:r Regel weiter fort, bis das
   Ende der Datei erreicht ist oder eine Regel fu:r das Paket einen
   Treffer erzielt und das Paket so die Firewall verlassen kann.
   Achten Sie besonders auf die Position der Regeln mit den Nummern
   100, 101, 450, 500 sowie 510. Diese Regeln steuern die
   Adressumsetzung ausgehender und eingehender Pakete, so dass deren
   entsprechende Eintra:ge in der Zustandstabelle immer die private
   LAN-Adressen abbilden. Zusa:tzlich werden in allen Regeln die
   Richtung des Pakets (eingehend oder ausgehend) so die vom Paket zu
   verwendende Netzwerkschnittstelle definiert. Ausgehende Anfragen,
   die eine Sitzung starten, rufen immer skipto rule 500, damit NAT
   verwendet werden kann.

   Nehmen wir nun an, dass ein Nutzer einen Webbrowser verwendet, um
   eine Internetseite aufzurufen. Derartige Anfragen werden in der
   Regel u:ber Port 80 geleitet. Die zugeho:rigen Pakete werden durch
   die Firewall verarbeitet. Regel 100 trifft nicht zu, denn das
   Paket geht nach aussen, nicht nach innen. Regel 101 trifft
   ebenfalls nicht zu, denn es handelt sich um das erste Paket.
   Folglich wird die Sitzung erst initiiert und kann somit noch nicht
   in der Zustandstabelle enthalten sein kann. Die erste Regel, die
   zutrifft, ist Regel 125. Das Paket will das lokale Netzwerk u:ber
   die Schnittstelle zum o:ffentlichen Internet (das heisst nach
   aussen) verlassen, es hat aber noch die Quelladresse des privaten
   lokalen Netzwerks. Da Regel 125 zutrifft, werden zwei Aktionen
   ausgefu:hrt: Die Option keep-state bewirkt, dass das Paket in der
   internen Tabelle fu:r zustandshafte, dynamische Regeln registriert
   wird. Danach wird der Aktionsteil der Regel ausgefu:hrt. Dieser
   ist Bestandteil der Informationen, die in die in der Tabelle fu:r
   dynamische Regeln aufgenommen wird und lautet skipto rule 500. Die
   Regel 500 fu:hrt NATs auf die IP-Adresse des Paketes durch. Danach
   verla:sst das Paket das LAN nach aussen in Richtung des
   o:ffentlichen Internets. Dieser letzte Teil ist fu:r
   funktionierendes NAT von entscheidender Bedeutung. Nachdem dieses
   Paket am Bestimmungsort angekommen ist, wird dort eine Antwort
   generiert und zuru:ckgeschickt. Dieses Paket wird auf die gleiche
   Art und Weise durch das gegebene Regelwerk verarbeitet. Dieses Mal
   trifft Regel 100 auf das Paket zu, damit wird die
   Bestimmungsadresse auf die zugeho:rige (lokale) LAN-Adresse
   (ru:ck-)abgebildet. Danach wird es von der check-state-Regel
   verarbeitet, die Zustandstabelle erkennt, dass eine zugeho:rige
   aktive Sitzung vorliegt und das Paket wird freigegeben und in das
   LAN geleitet. Es wird innerhalb des LANs von dem PC, der die
   zugeho:rige Sitzung ha:lt, empfangen, der ein neues Paket absendet
   und ein weiteres Datensegment vom entfernten Server anfordert.
   Dieses Mal wird bei der Pru:fung der check-state-Regel ein nach
   aussen gehender zugeho:riger Eintrag in der Zustandstabelle
   gefunden und die entsprechende Aktion (also skipto 500) wird
   ausgefu:hrt. Das Paket springt zu Regel 500 und wird durch diese
   Regel fu:r das o:ffentliche Internet freigegeben.

   Innerhalb des durch die Firewall geschu:tzten Netzwerks werden
   alle eingehenden Pakete, die zu einer existierenden Sitzung
   geho:ren, durch die Regel check-state sowie entsprechend
   platzierte divert natd-Regeln verarbeitet. Die notwendige Arbeit
   beschra:nkt sich darauf, alle "schlechten" Pakete zu blockieren
   und nur authorisierten Diensten zugeho:rige Pakete durchzulassen.
   In Umkehrung des bisherigen Beispiels nehmen wir nun, dass auf dem
   Rechner, auf dem die Firewall la:uft, auch ein Apache Webserver
   la:uft, auf den von aussen, also aus dem o:ffentlichen Internet,
   zugegriffen werden kann. Das erste von aussen eintreffende Paket
   (das auch eine neue Sitzung startet) erfu:llt Regel 100. Die
   Zieladresse des Paketes wird daher auf die LAN-Adresse des
   Firewallrechners abgebildet. Das Paket wird dann weiter auf alle
   in der Firewall definierten Regeln gepru:ft und trifft
   schliesslich auf Regel 425. Durch diese Regel werden zwei Aktionen
   ausgelo:sst: Erstens wird aus dem Paket eine dynamische Regel
   generiert und in die Zustandstabelle geschrieben. Zusa:tzlich wird
   jedoch die Anzahl neuer Sitzungsanfragen (von der gleichen
   Quell-IP-Adresse) auf 2 begrenzt, um so DoS-Angriffe auf Dienste,
   die auf diesem Port laufen, zu verhindern. Die Aktion dieser Regel
   ist allow, daher wird das Paket freigegeben und in das LAN
   weitergeleitet. Das als Antwort generierte Paket wird durch die
   check-state-Regel als zu einer Sitzung geho:rend erkannt. Damit
   wird es der Regel 500 zugefu:hrt, NAT wird durchgefu:hrt und u:ber
   die Schnittstelle zum o:ffentlichen Internet nach aussen geroutet.

   Beispiel 1 fu:r einen Regelsatz:

 #!/bin/sh
 cmd="ipfw -q add"
 skip="skipto 500"
 pif=rl0
 ks="keep-state"
 good_tcpo="22,25,37,43,53,80,443,110,119"

 ipfw -q -f flush

 $cmd 002 allow all from any to any via xl0  # exclude LAN traffic
 $cmd 003 allow all from any to any via lo0  # exclude loopback traffic

 $cmd 100 divert natd ip from any to any in via $pif
 $cmd 101 check-state

 # Authorized outbound packets
 $cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks
 $cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks
 $cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks
 $cmd 130 $skip icmp from any to any out via $pif $ks
 $cmd 135 $skip udp from any to any 123 out via $pif $ks


 # Deny all inbound traffic from non-routable reserved address spaces
 $cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
 $cmd 301 deny all from 172.16.0.0/12   to any in via $pif  #RFC 1918 private IP
 $cmd 302 deny all from 10.0.0.0/8      to any in via $pif  #RFC 1918 private IP
 $cmd 303 deny all from 127.0.0.0/8     to any in via $pif  #loopback
 $cmd 304 deny all from 0.0.0.0/8       to any in via $pif  #loopback
 $cmd 305 deny all from 169.254.0.0/16  to any in via $pif  #DHCP auto-config
 $cmd 306 deny all from 192.0.2.0/24    to any in via $pif  #reserved for docs
 $cmd 307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster
 $cmd 308 deny all from 224.0.0.0/3     to any in via $pif  #Class D & E multicast

 # Authorized inbound packets
 $cmd 400 allow udp from xx.70.207.54 to any 68 in $ks
 $cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1


 $cmd 450 deny log ip from any to any

 # This is skipto location for outbound stateful rules
 $cmd 500 divert natd ip from any to any out via $pif
 $cmd 510 allow ip from any to any

 ######################## end of rules  ##################

   Das folgende Beispiel ist praktisch identisch mit dem ersten
   Regelsatz. Allerdings wurden die Regel umfassend kommentiert und
   umgeschrieben, damit sie fu:r weniger erfahrene Benutzer leichter
   versta:ndlich werden.

   Beispiel 2 fu:r einen Regelsatz:

 #!/bin/sh
 ################ Start of IPFW rules file ###############################
 # Flush out the list before we begin.
 ipfw -q -f flush

 # Set rules command prefix
 cmd="ipfw -q add"
 skip="skipto 800"
 pif="rl0"     # public interface name of NIC
               # facing the public Internet

 #################################################################
 # No restrictions on Inside LAN Interface for private network
 # Change xl0 to your LAN NIC interface name
 #################################################################
 $cmd 005 allow all from any to any via xl0

 #################################################################
 # No restrictions on Loopback Interface
 #################################################################
 $cmd 010 allow all from any to any via lo0

 #################################################################
 # check if packet is inbound and nat address if it is
 #################################################################
 $cmd 014 divert natd ip from any to any in via $pif

 #################################################################
 # Allow the packet through if it has previous been added to the
 # the "dynamic" rules table by a allow keep-state statement.
 #################################################################
 $cmd 015 check-state

 #################################################################
 # Interface facing Public Internet (Outbound Section)
 # Check session start requests originating from behind the
 # firewall on the private network or from this gateway server
 # destined for the public Internet.
 #################################################################

 # Allow out access to my ISP's Domain name server.
 # x.x.x.x must be the IP address of your ISP's DNS
 # Dup these lines if your ISP has more than one DNS server
 # Get the IP addresses from /etc/resolv.conf file
 $cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state


 # Allow out access to my ISP's DHCP server for cable/DSL configurations.
 $cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state

 # Allow out non-secure standard www function
 $cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state

 # Allow out secure www function https over TLS SSL
 $cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state

 # Allow out send & get email function
 $cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
 $cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state

 # Allow out FreeBSD (make install & CVSUP) functions
 # Basically give user root "GOD" privileges.
 $cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root

 # Allow out ping
 $cmd 080 $skip icmp from any to any out via $pif keep-state

 # Allow out Time
 $cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state

 # Allow out nntp news (i.e. news groups)
 $cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state

 # Allow out secure FTP, Telnet, and SCP
 # This function is using SSH (secure shell)
 $cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state

 # Allow out whois
 $cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state

 # Allow ntp time server
 $cmd 130 $skip udp from any to any 123 out via $pif keep-state

 #################################################################
 # Interface facing Public Internet (Inbound Section)
 # Check packets originating from the public Internet
 # destined for this gateway server or the private network.
 #################################################################

 # Deny all inbound traffic from non-routable reserved address spaces
 $cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
 $cmd 301 deny all from 172.16.0.0/12   to any in via $pif  #RFC 1918 private IP
 $cmd 302 deny all from 10.0.0.0/8      to any in via $pif  #RFC 1918 private IP
 $cmd 303 deny all from 127.0.0.0/8     to any in via $pif  #loopback
 $cmd 304 deny all from 0.0.0.0/8       to any in via $pif  #loopback
 $cmd 305 deny all from 169.254.0.0/16  to any in via $pif  #DHCP auto-config
 $cmd 306 deny all from 192.0.2.0/24    to any in via $pif  #reserved for docs
 $cmd 307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster
 $cmd 308 deny all from 224.0.0.0/3     to any in via $pif  #Class D & E multicast

 # Deny ident
 $cmd 315 deny tcp from any to any 113 in via $pif

 # Deny all Netbios service. 137=name, 138=datagram, 139=session
 # Netbios is MS/Windows sharing services.
 # Block MS/Windows hosts2 name server requests 81
 $cmd 320 deny tcp from any to any 137 in via $pif
 $cmd 321 deny tcp from any to any 138 in via $pif
 $cmd 322 deny tcp from any to any 139 in via $pif
 $cmd 323 deny tcp from any to any 81  in via $pif

 # Deny any late arriving packets
 $cmd 330 deny all from any to any frag in via $pif

 # Deny ACK packets that did not match the dynamic rule table
 $cmd 332 deny tcp from any to any established in via $pif

 # Allow traffic in from ISP's DHCP server. This rule must contain
 # the IP address of your ISP's DHCP server as it's the only
 # authorized source to send this packet type.
 # Only necessary for cable or DSL configurations.
 # This rule is not needed for 'user ppp' type connection to
 # the public Internet. This is the same IP address you captured
 # and used in the outbound section.
 $cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state

 # Allow in standard www function because I have Apache server
 $cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2

 # Allow in secure FTP, Telnet, and SCP from public Internet
 $cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2

 # Allow in non-secure Telnet session from public Internet
 # labeled non-secure because ID & PW are passed over public
 # Internet as clear text.
 # Delete this sample group if you do not have telnet server enabled.
 $cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2

 # Reject & Log all unauthorized incoming connections from the public Internet
 $cmd 400 deny log all from any to any in via $pif

 # Reject & Log all unauthorized out going connections to the public Internet
 $cmd 450 deny log all from any to any out via $pif

 # This is skipto location for outbound stateful rules
 $cmd 800 divert natd ip from any to any out via $pif
 $cmd 801 allow ip from any to any

 # Everything else is denied by default
 # deny and log all packets that fell through to see what they are
 $cmd 999 deny log all from any to any
 ################ End of IPFW rules file ###############################

     --------------------------------------------------------------

               Kapitel 32. Weiterfu:hrende Netzwerkthemen

   U:bersetzt von Johann Kois.

32.1. U:bersicht

   Dieses Kapitel beschreibt verschiedene weiterfu:hrende
   Netzwerkthemen.

   Nachdem Sie dieses Kapitel gelesen haben, werden Sie

     * Die Grundlagen von Gateways und Routen kennen.

     * Bluetooth- sowie drahtlose, der Norm IEEE(R) 802.11
       entsprechende, Gera:te mit FreeBSD verwenden ko:nnen.

     * Eine Bridge unter FreeBSD einrichten ko:nnen.

     * Einen plattenlosen Rechner u:ber das Netzwerk starten ko:nnen.

     * Wissen, wie man NAT (Network Address Translation) einrichtet.

     * Zwei Computer u:ber PLIP verbinden ko:nnen.

     * IPv6 auf einem FreeBSD-Rechner einrichten ko:nnen.

     * ATM einrichten ko:nnen.

     * CARP, das Common Address Redundancy Protocol, unter FreeBSD
       einsetzen ko:nnen.

   Bevor Sie dieses Kapitel lesen, sollten Sie

     * Die Grundlagen der /etc/rc-Skripte verstanden haben.

     * Mit der grundlegenden Netzwerkterminologie vertraut sein.

     * Einen neuen FreeBSD-Kernel konfigurieren und installieren
       ko:nnen (Kapitel 9).

     * Wissen, wie man zusa:tzliche Softwarepakete von
       Drittherstellern installiert (Kapitel 5).

     --------------------------------------------------------------

32.2. Gateways und Routen

   Beigetragen von Coranth Gryphon.

   Damit ein Rechner einen anderen u:ber ein Netzwerk finden kann,
   muss ein Mechanismus vorhanden sein, der beschreibt, wie man von
   einem Rechner zum anderen gelangt. Dieser Vorgang wird als Routing
   bezeichnet. Eine "Route" besteht aus einem definierten
   Adressenpaar: Einem "Ziel" und einem "Gateway". Dieses Paar zeigt
   an, dass Sie u:ber das Gateway zum Ziel gelangen wollen. Es gibt
   drei Arten von Zielen: Einzelne Rechner (Hosts), Subnetze und das
   "Standard"ziel. Die "Standardroute" wird verwendet, wenn keine
   andere Route zutrifft. Wir werden Standardrouten spa:ter etwas
   genauer behandeln. Ausserdem gibt es drei Arten von Gateways:
   Einzelne Rechner (Hosts), Schnittstellen (Interfaces, auch als
   "Links" bezeichnet), sowie Ethernet Hardware-Adressen
   (MAC-Adressen).

     --------------------------------------------------------------

  32.2.1. Ein Beispiel

   Um die verschiedenen Aspekte des Routings zu veranschaulichen,
   verwenden wir folgende Ausgaben von netstat:

 % netstat -r
 Routing tables

 Destination               Gateway            Flags       Refs     Use     Netif Expire

 default                   outside-gw         UGSc        37       418     ppp0
 localhost                 localhost          UH          0        181     lo0
 test0                     0:e0:b5:36:cf:4f   UHLW        5        63288   ed0    77
 10.20.30.255              link#1             UHLW        1        2421
 example.com               link#1             UC          0        0
 host1                     0:e0:a8:37:8:1e    UHLW        3        4601    lo0
 host2                     0:e0:a8:37:8:1e    UHLW        0        5       lo0 =>
 host2.example.com         link#1             UC          0        0
 224                       link#1             UC          0        0

   Die ersten zwei Zeilen geben die Standardroute (die wir im
   na:chsten Abschnitt behandeln), sowie die localhost Route an.

   Das in der Routingtabelle fu:r localhost festgelegte Interface
   (Netif-Spalte) lo0, ist auch als loopback-Gera:t (Pru:fschleife)
   bekannt. Das heisst, dass der ganze Datenverkehr fu:r dieses Ziel
   intern (innerhalb des Gera:tes) bleibt, anstatt ihn u:ber ein
   Netzwerk (LAN) zu versenden, da das Ziel dem Start entspricht.

   Der na:chste auffa:llige Punkt sind die mit 0:e0: beginnenden
   Adressen. Es handelt sich dabei um Ethernet Hardwareadressen, die
   auch als MAC-Adressen bekannt sind. FreeBSD identifiziert Rechner
   im lokalen Netz automatisch (im Beispiel test0) und fu:gt eine
   direkte Route zu diesem Rechner hinzu. Dies passiert u:ber die
   Ethernet-Schnittstelle ed0. Ausserdem existiert ein Timeout (in
   der Spalte Expire) fu:r diese Art von Routen, der verwendet wird,
   wenn dieser Rechner in einem definierten Zeitraum nicht reagiert.
   Wenn dies passiert, wird die Route zu diesem Rechner automatisch
   gelo:scht. Rechner im lokalen Netz werden durch einen als RIP
   (Routing Information Protocol) bezeichneten Mechanismus
   identifiziert, der den ku:rzesten Weg zu den jeweiligen Rechnern
   bestimmt.

   FreeBSD fu:gt ausserdem Subnetzrouten fu:r das lokale Subnetz
   hinzu (10.20.30.255 ist die Broadcast-Adresse fu:r das Subnetz
   10.20.30, example.com ist der zu diesem Subnetz geho:rige
   Domainname). Das Ziel link#1 bezieht sich auf die erste
   Ethernet-Karte im Rechner. Sie ko:nnen auch feststellen, dass
   keine zusa:tzlichen Schnittstellen angegeben sind.

   Routen fu:r Rechner im lokalen Netz und lokale Subnetze werden
   automatisch durch den routed Daemon konfiguriert. Ist dieser nicht
   gestartet, sind nur statisch definierte (explizit eingegebene)
   Routen vorhanden.

   Die Zeile host1 bezieht sich auf unseren Rechner, der durch seine
   Ethernetadresse bekannt ist. Da unser Rechner der Sender ist,
   verwendet FreeBSD automatisch das Loopback-Gera:t (lo0), anstatt
   den Datenverkehr u:ber die Ethernetschnittstelle zu senden.

   Die zwei host2 Zeilen sind ein Beispiel dafu:r, was passiert, wenn
   wir ein ifconfig(8) Alias verwenden (Lesen Sie dazu den Abschnitt
   u:ber Ethernet, wenn Sie wissen wollen, warum wir das tun
   sollten.). Das Symbol => (nach der lo0-Schnittstelle) sagt aus,
   dass wir nicht nur das Loopbackgera:t verwenden (da sich die
   Adresse auf den lokalen Rechner bezieht), sondern dass es sich
   zusa:tzlich auch um ein Alias handelt. Solche Routen sind nur auf
   Rechnern vorhanden, die den Alias bereitstellen; alle anderen
   Rechner im lokalen Netz haben fu:r solche Routen nur eine einfache
   link#1 Zeile.

   Die letzte Zeile (Zielsubnetz 224) behandelt das Multicasting, das
   wir in einem anderen Abschnitt besprechen werden.

   Schliesslich gibt es fu:r Routen noch verschiedene Attribute, die
   Sie in der Spalte Flags finden. Nachfolgend finden Sie eine kurze
   U:bersicht von einigen dieser Flags und ihrer Bedeutung:

   U Up: Die Route ist aktiv.                                         
   H Host: Das Ziel der Route ist ein einzelner Rechner (Host).       
   G Gateway: Alle Daten, die an dieses Ziel gesendet werden, werden  
     von diesem System an ihr jeweiliges Ziel weitergeleitet.         
   S Static: Diese Route wurde manuell konfiguriert, das heisst sie   
     wurde nicht automatisch vom System erzeugt.                      
     Clone: Erzeugt eine neue Route, basierend auf der Route fu:r den 
   C Rechner, mit dem wir uns verbinden. Diese Routenart wird         
     normalerweise fu:r lokale Netzwerke verwendet.                   
   W WasCloned: Eine Route, die automatisch konfiguriert wurde. Sie   
     basiert auf einer lokalen Netzwerkroute (Clone).                 
   L Link: Die Route beinhaltet einen Verweis auf eine Ethernetkarte  
     (MAC-Adresse).                                                   

     --------------------------------------------------------------

  32.2.2. Standardrouten

   Wenn sich der lokale Rechner mit einem entfernten Rechner
   verbinden will, wird die Routingtabelle u:berpru:ft, um
   festzustellen, ob bereits ein bekannter Pfad vorhanden ist.
   Geho:rt dieser entfernte Rechner zu einem Subnetz, dessen Pfad uns
   bereits bekannt ist (Cloned route), dann versucht der lokale
   Rechner u:ber diese Schnittstelle eine Verbindung herzustellen.

   Wenn alle bekannten Pfade nicht funktionieren, hat der lokale
   Rechner eine letzte Mo:glichkeit: Die Standardroute
   (Defaultroute). Bei dieser Route handelt es sich um eine spezielle
   Gateway-Route (gewo:hnlich die einzige im System vorhandene), die
   im Flags-Feld immer mit C gekennzeichnet ist. Fu:r Rechner im
   lokalen Netzwerk ist dieses Gateway auf welcher Rechner auch immer
   eine Verbindung nach aussen hat gesetzt (entweder u:ber eine
   PPP-Verbindung, DSL, ein Kabelmodem, T1 oder eine beliebige andere
   Netzwerkverbindung).

   Wenn Sie die Standardroute fu:r einen Rechner konfigurieren, der
   selbst als Gateway zur Aussenwelt funktioniert, wird die
   Standardroute zum Gateway-Rechner Ihres Internetanbieter (ISP)
   gesetzt.

   Sehen wir uns ein Beispiel fu:r Standardrouten an. So sieht eine
   u:bliche Konfiguration aus:

 [Local2]  <--ether-->  [Local1]  <--PPP--> [ISP-Serv]  <--ether-->  [T1-GW]
          

   Die Rechner Local1 und Local2 befinden sich auf Ihrer Seite.
   Local1 ist mit einem ISP u:ber eine PPP-Verbindung verbunden.
   Dieser PPP-Server ist u:ber ein lokales Netzwerk mit einem anderen
   Gateway-Rechner verbunden, der u:ber eine Schnittstelle die
   Verbindung des ISP zum Internet herstellt.

   Die Standardrouten fu:r Ihre Maschinen lauten:

         Host            Standard Gateway          Schnittstelle      
   Local2           Local1                     Ethernet               
   Local1           T1-GW                      PPP                    

   Eine ha:ufig gestellte Frage lautet: "Warum (oder wie) sollten wir
   T1-GW als Standard-Gateway fu:r Local1 setzen, statt den (direkt
   verbundenen) ISP-Server zu verwenden?".

   Bedenken Sie, dass die PPP-Schnittstelle fu:r die Verbindung eine
   Adresse des lokalen Netzes des ISP verwendet. Daher werden Routen
   fu:r alle anderen Rechner im lokalen Netz des ISP automatisch
   erzeugt. Daraus folgt, dass Sie bereits wissen, wie Sie T1-GW
   erreichen ko:nnen! Es ist also unno:tig, einen Zwischenschritt
   u:ber den ISP-Server zu machen.

   Es ist u:blich, die Adresse X.X.X.1 als Gateway-Adresse fu:r ihr
   lokales Netzwerk zu verwenden. Fu:r unser Beispiel bedeutet dies
   Folgendes: Wenn Ihr lokaler Klasse-C-Adressraum 10.20.30 ist und
   Ihr ISP 10.9.9 verwendet, sehen die Standardrouten so aus:

               Rechner (Host)                    Standardroute        
   Local2 (10.20.30.2)                    Local1 (10.20.30.1)         
   Local1 (10.20.30.1, 10.9.9.30)         T1-GW (10.9.9.1)            

   Sie ko:nnen die Standardroute ganz einfach in der Datei
   /etc/rc.conf festlegen. In unserem Beispiel wurde auf dem Rechner
   Local2 folgende Zeile in /etc/rc.conf eingefu:gt:

 defaultrouter="10.20.30.1"

   Die Standardroute kann u:ber route(8) auch direkt gesetzt werden:

 # route add default 10.20.30.1

   Weitere Informationen zum Bearbeiten von Netzwerkroutingtabellen
   finden Sie in route(8).

     --------------------------------------------------------------

  32.2.3. Rechner mit zwei Heimatnetzen

   Es gibt noch eine Konfigurationsmo:glichkeit, die wir besprechen
   sollten, und zwar Rechner, die sich in zwei Netzwerken befinden.
   Technisch gesehen, za:hlt jeder als Gateway arbeitende Rechner zu
   den Rechnern mit zwei Heimatnetzen (im obigen Beispiel unter
   Verwendung einer PPP-Verbindung). In der Praxis meint man damit
   allerdings nur Rechner, die sich in zwei lokalen Netzen befinden.

   Entweder verfu:gt der Rechner u:ber zwei Ethernetkarten und jede
   dieser Karten hat eine Adresse in einem separaten Subnetz, oder
   der Rechner hat nur eine Ethernetkarte und verwendet ifconfig(8)
   Aliasing. Die erste Mo:glichkeit wird verwendet, wenn zwei
   physikalisch getrennte Ethernet-Netzwerke vorhanden sind, die
   zweite, wenn es nur ein physikalisches Ethernet-Netzwerk gibt, das
   aber aus zwei logisch getrennten Subnetzen besteht.

   In beiden Fa:llen werden Routingtabellen erstellt, damit jedes
   Subnetz weiss, dass dieser Rechner als Gateway zum anderen Subnetz
   arbeitet (inbound route). Diese Konfiguration (der Gateway-Rechner
   arbeitet als Router zwischen den Subnetzen) wird ha:ufig
   verwendet, wenn es darum geht, Paketfilterung oder eine Firewall
   (in eine oder beide Richtungen) zu implementieren.

   Soll dieser Rechner Pakete zwischen den beiden Schnittstellen
   weiterleiten, mu:ssen Sie diese Funktion manuell konfigurieren und
   aktivieren. Lesen Sie den na:chsten Abschnitt, wenn Sie weitere
   Informationen zu diesem Thema beno:tigen.

     --------------------------------------------------------------

  32.2.4. Einen Router konfigurieren

   Ein Netzwerkrouter ist einfach ein System, das Pakete von einer
   Schnittstelle zur anderen weiterleitet. Internetstandards und gute
   Ingenieurspraxis sorgten dafu:r, dass diese Funktion in FreeBSD in
   der Voreinstellung deaktiviert ist. Sie ko:nnen diese Funktion
   aktivieren, indem Sie in rc.conf(5) folgende A:nderung
   durchfu:hren:

 gateway_enable="YES"          # Auf YES setzen, wenn der Rechner als Gateway arbeiten soll

   Diese Option setzt die sysctl(8)-Variable net.inet.ip.forwarding
   auf 1. Wenn Sie das Routing kurzzeitig unterbrechen wollen,
   ko:nnen Sie die Variable auf 0 setzen.

   Ihr neuer Router beno:tigt nun noch Routen, um zu wissen, wohin er
   den Verkehr senden soll. Haben Sie ein (sehr) einfaches Netzwerk,
   ko:nnen Sie statische Routen verwenden. FreeBSD verfu:gt u:ber den
   Standard BSD-Routing-Daemon routed(8), der RIP (sowohl Version 1
   als auch Version 2) und IRDP versteht. BGP v4, OSPF v2 und andere
   Protokolle werden von net/zebra unterstu:tzt. Es stehen auch
   kommerzielle Produkte wie gated zur Verfu:gung.

     --------------------------------------------------------------

  32.2.5. Statische Routen einrichten

   Beigetragen von Al Hoang.

    32.2.5.1. Manuelle Konfiguration

   Nehmen wir an, dass wir u:ber folgendes Netzwerk verfu:gen:

     INTERNET
       | (10.0.0.1/24) Default Router to Internet
       |
       |Interface xl0
       |10.0.0.10/24
    +------+
    |      | RouterA
    |      | (FreeBSD gateway)
    +------+
       | Interface xl1
       | 192.168.1.1/24
       |
   +--------------------------------+
    Internal Net 1      | 192.168.1.2/24
                        |
                    +------+
                    |      | RouterB
                    |      |
                    +------+
                        | 192.168.2.1/24
                        |
                      Internal Net 2
            

   RouterA, ein FreeBSD-Rechner, dient als Router fu:r den Zugriff
   auf das Internet. Die Standardroute ist auf 10.0.0.1 gesetzt,
   damit ein Zugriff auf das Internet mo:glich wird. Wir nehmen nun
   an, dass RouterB bereits konfiguriert ist und daher weiss, wie er
   andere Rechner erreichen kann. Dazu wird die Standardroute von
   RouterB auf 192.168.1.1 gesetzt, da dieser Rechner als Gateway
   fungiert.

   Sieht man sich die Routingtabelle fu:r RouterA an, erha:lt man
   folgende Ausgabe:

 % netstat -nr
 Routing tables

 Internet:
 Destination        Gateway            Flags    Refs      Use  Netif  Expire
 default            10.0.0.1           UGS         0    49378    xl0
 127.0.0.1          127.0.0.1          UH          0        6    lo0
 10.0.0/24          link#1             UC          0        0    xl0
 192.168.1/24       link#2             UC          0        0    xl1

   Mit dieser Routingtabelle kann RouterA unser internes Netz 2 nicht
   erreichen, da keine Route zum Rechner 192.168.2.0/24 vorhanden
   ist. Um dies zu korrigieren, kann die Route manuell gesetzt
   werden. Durch den folgenden Befehl wird das interne Netz 2 in die
   Routingtabelle des Rechners RouterA aufgenommen, indem 192.168.1.2
   als na:chster Zwischenschritt verwenden wird:

 # route add -net 192.168.2.0/24 192.168.1.2

   Ab sofort kann RouterA alle Rechner des Netzwerks 192.168.2.0/24
   erreichen.

     --------------------------------------------------------------

    32.2.5.2. Routen dauerhaft einrichten

   Das obige Beispiel ist fu:r die Konfiguration einer statischen
   Route auf einem laufenden System geeignet. Diese Information geht
   jedoch verloren, wenn der FreeBSD-Rechner neu gestartet werden
   muss. Um dies zu verhindern, wird diese Route in /etc/rc.conf
   eingetragen:

 # Add Internal Net 2 as a static route
 static_routes="internalnet2"
 route_internalnet2="-net 192.168.2.0/24 192.168.1.2"

   Die Variable static_routes entha:lt eine Reihe von Strings, die
   durch Leerzeichen getrennt sind. Jeder String bezieht sich auf den
   Namen einer Route. In unserem Beispiel hat static_routes
   internalnet2 als einzigen String. Zusa:tzlich verwendet man die
   Konfigurationsvariable route_internalnet2, in der alle sonstigen
   an route(8) zu u:bergebenden Parameter festgelegt werden. In
   obigen Beispiel ha:tte man folgenden Befehl verwendet:

 # route add -net 192.168.2.0/24 192.168.1.2

   Daher wird "-net 192.168.2.0/24 192.168.1.2" als Parameter der
   Variable route_ angegeben.

   Wie bereits erwa:hnt, ko:nnen bei static_routes auch mehrere
   Strings angegeben werden. Dadurch lassen sich mehrere statische
   Routen anlegen. Durch folgende Zeilen werden auf einem imagina:ren
   Rechner statische Routen zu den Netzwerken 192.168.0.0/24 sowie
   192.168.1.0/24 definiert:

 static_routes="net1 net2"
 route_net1="-net 192.168.0.0/24 192.168.0.1"
 route_net2="-net 192.168.1.0/24 192.168.1.1"

     --------------------------------------------------------------

  32.2.6. Verteilung von Routing-Informationen

   Wir haben bereits daru:ber gesprochen, wie wir unsere Routen zur
   Aussenwelt definieren, aber nicht daru:ber, wie die Aussenwelt uns
   finden kann.

   Wir wissen bereits, dass Routing-Tabellen so erstellt werden
   ko:nnen, dass sa:mtlicher Verkehr fu:r einen bestimmten Adressraum
   (in unserem Beispiel ein Klasse-C-Subnetz) zu einem bestimmten
   Rechner in diesem Netzwerk gesendet wird, der die eingehenden
   Pakete im Subnetz verteilt.

   Wenn Sie einen Adressraum fu:r Ihre Seite zugewiesen bekommen,
   richtet Ihr Diensteanbieter seine Routingtabellen so ein, dass der
   ganze Verkehr fu:r Ihr Subnetz entlang Ihrer PPP-Verbindung zu
   Ihrer Seite gesendet wird. Aber woher wissen die Seiten in der
   Aussenwelt, dass sie die Daten an Ihren ISP senden sollen?

   Es gibt ein System (a:hnlich dem verbreiteten DNS), das alle
   zugewiesenen Adressra:ume verwaltet und ihre Verbindung zum
   Internet-Backbone definiert und dokumentiert. Der "Backbone" ist
   das Netz aus Hauptverbindungen, die den Internetverkehr in der
   ganzen Welt transportieren und verteilen. Jeder Backbone-Rechner
   verfu:gt u:ber eine Kopie von Haupttabellen, die den Verkehr fu:r
   ein bestimmtes Netzwerk hierarchisch vom Backbone u:ber eine Kette
   von Diensteanbietern bis hin zu Ihrer Seite leiten.

   Es ist die Aufgabe Ihres Diensteanbieters, den Backbone-Seiten
   mitzuteilen, dass sie mit Ihrer Seite verbunden wurden. Durch
   diese Mitteilung der Route ist nun auch der Weg zu Ihnen bekannt.
   Dieser Vorgang wird als Bekanntmachung von Routen (routing
   propagation) bezeichnet.

     --------------------------------------------------------------

  32.2.7. Problembehebung

   Manchmal kommt es zu Problemen bei der Bekanntmachung von Routen,
   und einige Seiten sind nicht in der Lage, Sie zu erreichen.
   Vielleicht der nu:tzlichste Befehl, um festzustellen, wo das
   Routing nicht funktioniert, ist traceroute(8). Er ist ausserdem
   sehr nu:tzlich, wenn Sie einen entfernten Rechner nicht erreichen
   ko:nnen (lesen Sie dazu auch ping(8)).

   traceroute(8) wird mit dem zu erreichenden Rechner (Host)
   ausgefu:hrt. Angezeigt werden die Gateway-Rechner entlang des
   Verbindungspfades. Schliesslich wird der Zielrechner erreicht oder
   es kommt zu einem Verbindungsabbruch (beispielsweise durch
   Nichterreichbarkeit eines Gateway-Rechners).

   Weitere Informationen finden Sie in traceroute(8).

     --------------------------------------------------------------

  32.2.8. Multicast-Routing

   FreeBSD unterstu:tzt sowohl Multicast-Anwendungen als auch
   Multicast-Routing. Multicast-Anwendungen mu:ssen nicht
   konfiguriert werden, sie laufen einfach. Multicast-Routing muss in
   der Kernelkonfiguration aktiviert werden:

 options MROUTING

   Zusa:tzlich muss mrouted(8), der Multicast-Routing-Daemon, u:ber
   die Datei /etc/mrouted.conf eingerichtet werden, um Tunnel und
   DVMRP zu aktivieren. Weitere Informationen zu diesem Thema finden
   Sie in mrouted(8).

     Anmerkung: mrouted(8), der Multicast Routing Daemon, verwendet
     das DVMRP Multicast Routing Protocol, das inzwischen in den
     meisten Multicast-Installationen durch pim(4) ersetzt wurde.
     mrouted(8) sowie die damit in Verbindung stehenden Werkzeuge
     map-mbone(8) und mrinfo(8)ko:nnen u:ber die
     FreeBSD-Ports-Sammlung (genauer den Port net/mrouted)
     installiert werden.

     --------------------------------------------------------------

32.3. Drahtlose Netzwerke

   Loader, Marc Fonvieille und Murray Stokely.

     --------------------------------------------------------------

  32.3.1. Grundlagen

   Die meisten drahtlosen Netzwerke basieren auf dem Standard
   IEEE 802.11. Sie bestehen aus Stationen, die in der Regel im
   2,4 GHz- oder im 5 GHz-Band miteinander kommunizieren. Es ist aber
   auch mo:glich, dass regional andere Frequenzen, beispielsweise im
   2,3 GHz- oder 4,9 GHz-Band, verwendet werden.

   802.11-Netzwerke ko:nnen auf zwei verschiedene Arten aufgebaut
   sein: Im Infrastruktur-Modus agiert eine Station als Master, mit
   dem sich alle anderen Stationen verbinden. Die Summe aller
   Stationen wird als BSS (Basic Service Set), die Master-Station
   hingegen als Access Point (AP) bezeichnet. In einem BSS la:uft
   jedwede Kommunikation u:ber den Access Point. Die zweite Form
   drahtloser Netzwerke sind die sogenannten Ad-hoc-Netzwerke (auch
   als IBSS bezeichnet), in denen es keinen Access Point gibt und in
   denen die Stationen direkt miteinander kommunizieren.

   Die ersten 802.11-Netzwerke arbeiteten im 2,4 GHz-Band und nutzten
   dazu Protokolle der IEEE-Standards 802.11 sowie 802.11b. Diese
   Standards legen unter anderem Betriebsfrequenzen sowie Merkmale
   des MAC-Layers (wie Frames und Transmissionsraten) fest. Spa:ter
   kam der Standard 802.11a hinzu, der im 5 GHz-Band, im Gegensatz zu
   den ersten beiden Standards aber mit unterschiedlichen
   Signalmechanismen und ho:heren Transmissionsraten arbeitet. Der
   neueste Standard 802.11g implementiert die Signal- und
   Transmissionsmechanismen von 802.11a im 2,4 GHz-Band, ist dabei
   aber abwa:rtskompatibel zu 802.11b-Netzwerken.

   Unabha:ngig von den zugrundeliegenden Transportmechanismen
   verfu:gen 802.11-Netzwerke u:ber diverse Sicherheitsmechanismen.
   Der urspru:ngliche 802.11-Standard definierte lediglich ein
   einfaches Sicherheitsprotokoll namens WEP. Dieses Protokoll
   verwendet einen fixen (gemeinsam verwendeten) Schlu:ssel sowie die
   RC4-Kryptografie-Chiffre, um Daten verschlu:sselt u:ber das
   drahtlose Netzwerk zu senden. Alle Stationen des Netzwerks mu:ssen
   sich auf den gleichen fixen Schlu:ssel einigen, um miteinander
   kommunizieren zu ko:nnen. Dieses Schema ist sehr leicht zu knacken
   und wird deshalb heute kaum mehr eingesetzt. Aktuelle
   Sicherheitsmechanismen bauen auf dem Standard IEEE 802.11i auf,
   der neue kryptografische Schlu:ssel (Chiffren), ein neues
   Protokoll fu:r die Anmeldung von Stationen an einem Access Point,
   sowie Mechanismen zum Austausch von Schlu:sseln als Vorbereitung
   der Kommunikation zwischen verschiedenen Gera:ten festlegt.
   Kryptografische Schlu:ssel werden regelma:ssig getauscht.
   Ausserdem gibt es Mechanismen, um Einbruchsversuche zu entdecken
   (und Gegenmassnahmen ergreifen zu ko:nnen). Ein weiteres ha:ufig
   verwendetes Sicherheitsprotokoll ist WPA. Dabei handelt es sich um
   einen Vorla:ufer von 802.11i, der von einem Industriekonsortium
   als Zwischenlo:sung bis zur endgu:ltigen Verabschiedung von
   802.11i entwickelt wurde. WPA definiert eine Untergruppe der
   Anforderungen des 802.11i-Standards und ist fu:r den Einsatz in
   a:lterer Hardware vorgesehen. WPA beno:tigt nur den (auf dem
   urspru:nglichen WEP-Code basierenden) TKIP-Chiffre. 802.11i
   erlaubt zwar auch die Verwendung von TKIP, fordert aber
   zusa:tzlich eine sta:rkere Chiffre (AES-CCM) fu:r die
   Datenverschlu:sselung. (AES war fu:r WPA nicht vorgesehen, weil
   man es als zu rechenintensiv fu:r den Einsatz in a:lteren Gera:ten
   ansah.)

   Neben den weiter oben erwa:hnten Standards ist auch der Standard
   802.11e von grosser Bedeutung. Dieser definiert Protokolle zur
   U:bertragung von Multimedia-Anwendungen wie das Streaming von
   Videodateien oder Voice-over-IP (VoIP) in einem 802.11-Netzwerk.
   Analog zu 802.11i verfu:gt auch 802.11e u:ber eine vorla:ufige
   Spezifikation namens WMM (urspru:nglich WME), die von einem
   Industriekonsortium als Untergruppe von 802.11e spezifiziert
   wurde, um Multimedia-Anwendungen bereits vor der endgu:ltigen
   Verabschiedung des 802.11e-Standards implementieren zu ko:nnen.
   802.11e sowie WME/WMM erlauben eine Priorita:tenvergabe beim
   Datentransfer im einem drahtlosen Netzwerk. Mo:glich wird dies
   durch den Einsatz von Quality of Service-Protokollen (QoS) und
   erweiterten Medienzugriffsprotokollen. Werden diese Protokolle
   korrekt implementiert, erlauben sie daher hohe
   Datenu:bertragungsraten und einen priorisierten Datenfluss.

   FreeBSD unterstu:tzt die Standards 802.11a, 802.11b, sowie
   802.11g. Ebenfalls unterstu:tzt werden WPA sowie die
   Sicherheitsprotokolle gema:ss 802.11i (dies sowohl fu:r 11a, 11b
   als auch 11g). QoS und Verkehrspriorisierung, die von den
   WME/WMM-Protokollen beno:tigt werden, werden ebenfalls (allerdings
   nicht fu:r alle drahtlosen Gera:te) unterstu:tzt.

     --------------------------------------------------------------

  32.3.2. Basiskonfiguration

    32.3.2.1. Kernelkonfiguration

   Um ein drahtloses Netzwerk zu nutzen, beno:tigen Sie eine
   drahtlose Netzwerkkarte und einen Kernel, der drahtlose Netzwerke
   unterstu:tzt. Der FreeBSD-Kernel unterstu:tzt den Einsatz von
   Kernelmodulen. Daher mu:ssen Sie nur die Unterstu:tzung fu:r die
   von Ihnen verwendeten Gera:te aktivieren.

   Als Erstes beno:tigen Sie ein drahtloses Gera:t. Die meisten
   drahtlosen Gera:te verwenden Bauteile von Atheros und werden
   deshalb vom ath(4)-Treiber unterstu:tzt. Um diesen Treiber zu
   verwenden, nehmen Sie die folgende Zeile in die Datei
   /boot/loader.conf auf:

 if_ath_load="YES"

   Der Atheros-Treiber besteht aus drei Teilen: dem Treiber selbst
   (ath(4)), dem Hardware-Support-Layer fu:r die chip-spezifischen
   Funktionen (ath_hal(4)) sowie einem Algorithmus zur Auswahl der
   korrekten Frame-U:bertragungsrate (ath_rate_sample). Wenn Sie die
   Unterstu:tzung fu:r diesen Treiber als Kernelmodul laden, ku:mmert
   sich dieses automatisch um diese Aufgaben. Verwenden Sie ein
   Nicht-Atheros-Gera:t, so mu:ssen Sie hingegen das fu:r dieses
   Gera:t geeignete Modul laden, beispielsweise

 if_wi_load="YES"

   fu:r Gera:te, die auf Bauteilen von Intersil Prism basieren und
   daher den Treiber wi(4) voraussetzen.

     Anmerkung: In den folgenden Abschnitten wird der ath(4)-Treiber
     verwendet. Verwenden Sie ein anderes Gera:t, mu:ssen Sie diesen
     Wert daher an Ihre Konfiguration anpassen. Eine Liste aller
     verfu:gbaren Treiber und unterstu:tzten drahtlosen Gera:te
     finden sich in den FreeBSD Hardware Notes. Diese sind fu:r
     verschiedene Releases und Architekturen auf der Seite Release
     Information der FreeBSD Homepage. Gibt es keinen nativen
     FreeBSD-Treiber fu:r Ihr drahtloses Gera:t, ko:nnen Sie
     mo:glicherweise mit NDIS einen Windows-Treiber verwenden.

   Unter FreeBSD 7.X beno:tigen Sie zusa:tlich zum korrekten Treiber
   auch die Unterstu:tzung fu:r 802.11-Netzwerke. Fu:r den
   ath(4)-Treiber werden dazu mindestens die Module wlan(4),
   wlan_scan_ap sowie wlan_scan_sta beno:tigt. Das
   wlan(4)-Kernelmodul wird automatisch mit dem Treiber des
   drahtlosen Gera:ts geladen, die beiden anderen Module werden
   jeweils durch einen Eintrag in der Datei /boot/loader.conf beim
   Systemstart geladen:

 wlan_scan_ap_load="YES"
 wlan_scan_sta_load="YES"

   Ab FreeBSD 8.0 sind diese Module Teil des wlan(4)-Treibers und
   werden bei Bedarf automatisch geladen.

   Zusa:tzlich beno:tigen Sie noch Module zur Verschlu:sselung ihres
   drahtlosen Netzwerks. Diese werden normalerweise dynamisch vom
   wlan(4)-Modul geladen. Im folgenden Beispiel erfolgt allerdings
   eine manuelle Konfiguration. Folgende Module sind verfu:gbar:
   wlan_wep(4), wlan_ccmp(4) sowie wlan_tkip(4). Sowohl wlan_ccmp(4)
   als auch wlan_tkip(4) werden nur beno:tigt, wenn Sie WPA und/oder
   die Sicherheitsprotokolle von 802.11i verwenden wollen. Wollen Sie
   Ihr Netzwerk hingegen ohne Verschlu:sselung betreiben, beno:tigen
   Sie nicht einmal die wlan_wep(4)-Unterstu:tzung. Um alle drei
   Module beim Systemstart zu laden, fu:gen Sie folgende Zeilen in
   die Datei /boot/loader.conf ein:

 wlan_wep_load="YES"
 wlan_ccmp_load="YES"
 wlan_tkip_load="YES"

   Um diese neuen Eintra:ge in der Datei /boot/loader.conf zu
   aktivieren, mu:ssen Sie Ihr FreeBSD-System neu starten. Alternativ
   ko:nnen Sie die Kernelmodule aber auch manuell mit kldload(8)
   laden.

     Anmerkung: Wollen Sie keine Kernelmodule verwenden, ko:nnen Sie
     die beno:tigten Treiber auch in Ihren Kernel kompilieren. Daz
     nehmen Sie folgende Zeilen in Ihre Kernelkonfigurationsdatei
     auf:

 device wlan              # 802.11 support
 device wlan_wep          # 802.11 WEP support
 device wlan_ccmp         # 802.11 CCMP support
 device wlan_tkip         # 802.11 TKIP support
 device wlan_amrr         # AMRR transmit rate control algorithm
 device ath               # Atheros pci/cardbus NIC's
 device ath_hal           # pci/cardbus chip support
 options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
 device ath_rate_sample   # SampleRate tx rate control for ath

     Verwenden Sie FreeBSD 7.X, mu:ssen Sie auch die beiden Module
     wlan_scan_ap und wlan_scan_sta in den Kernel aufnehmen (unter
     FreeBSD 8.X ist dies hingegen nicht mehr notwendig):

 device wlan_scan_ap      # 802.11 AP mode scanning
 device wlan_scan_sta     # 802.11 STA mode scanning

     Danach bauen Sie den neuen Kernel und starten Ihr FreeBSD-System
     neu.

   Wa:hrend des Systemstarts sollten nun einige Informationen
   a:hnlich den folgenden u:ber das von Ihnen verwendete drahtlose
   Gera:t ausgegeben werden:

 ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1
 ath0: [ITHREAD]
 ath0: AR2413 mac 7.9 RF2413 phy 4.5

     --------------------------------------------------------------

  32.3.3. Infrastruktur-Modus

   Drahtlose Netzwerke werden in der Regel im Infrastruktur-Modus
   (auch BSS-Modus genannt) betrieben. Dazu werden mehrere drahtlose
   Access Points zu einem gemeinsamen drahtlosen Netzwerk verbunden.
   Jedes dieser drahtlosen Netzwerke hat einen eigenen Namen, der als
   SSID bezeichnet wird. Alle Clients eines drahtlosen Netzwerks
   verbinden sich in diesem Modus mit einem Access Point.

     --------------------------------------------------------------

    32.3.3.1. FreeBSD-Clients

      32.3.3.1.1. Einen Access Point finden

   Um nach drahtlosen Netzwerken zu suchen verwenden Sie ifconfig.
   Dieser Scanvorgang kann einige Zei in Anspruch nehmen, da dazu
   jede verfu:gbare Frequenz auf verfu:gbare Access Points hin
   u:berpru:ft werden muss. Um die Suche zu starten, mu:ssen Sie als
   Super-User angemeldet sein:

 # ifconfig wlan0 create wlandev ath0
 # ifconfig wlan0 up scan
 SSID/MESH ID    BSSID              CHAN RATE   S:N     INT CAPS
 dlinkap         00:13:46:49:41:76   11   54M -90:96   100 EPS  WPA WME
 freebsdap       00:11:95:c3:0d:ac    1   54M -83:96   100 EPS  WPA

     Anmerkung: Ihre Netzwerkkarte muss in den Status up versetzt
     werden, bevor Sie den ersten Scanvorgang starten ko:nnen. Fu:r
     spa:tere Scans ist dies aber nicht mehr erforderlich.

     Anmerkung: Unter FreeBSD 7.X wird der Gera:tetreiber,
     beispielsweise ath0, direkt verwendet, anstatt auf das
     allgemeine Gera:t wlan0 zuzugreifen. Verwenden Sie also
     FreeBSD 7.X, mu:ssen Sie die beiden Befehle im vorigen Beispiel
     durch den folgenden Befehl ersetzen:

 # ifconfig ath0 up scan

     Dies gilt auch fu:r alle weiteren Ausfu:hrungen in diesem
     Kapitel. Unter FreeBSD 7.X mu:ssen analog alle Befehle und
     Konfigurationsdateien/Zeilen entsprechend angepasst werden.

   Als Ergebnis erhalten Sie eine Liste mit allen gefundenen
   BSS/IBSS-Netzwerken. Zusa:tzlich zur SSID (dem Namen des
   Netzwerks) wird auch die BSSID ausgegeben. Dabei handelt es sich
   um MAC-Adresse des Access Points. Das Feld CAPS gibt den Typ des
   Netzwerks sowie die Fa:higkeiten der Stationen innerhalb des
   Netzwerks an:

   E

           Extended Service Set (ESS). Zeigt an, dass die Station
           Teil eines Infrastruktur-Netzwerks ist (und nicht eines
           IBSS/Ad-hoc-Netzwerks).

   I

           IBSS/Ad-hoc-Netzwerk. Die Station ist Teil eines
           Ad-hoc-Netzwerks (und nicht eines ESS-Netzwerks).

   P

           Privacy. Alle Datenframes, die innerhalb des BSS
           ausgetauscht werden, sind verschlu:sselt. Dieses BSS
           verwendet dazu kryptografische Verfahren wie WEP, TKIP
           oder AES-CCMP.

   S

           Short Preamble. Das Netzwerk verwendet eine kurze
           Pra:ambel (definiert in 802.11b High Rate/DSSS PHY). Eine
           kurze Pra:ambel verwendet ein 56 Bit langes Sync-Feld (im
           Gegensatz zu einer langen Pra:ambel, die ein 128 Bit
           langes Sync-Feld verwendet).

   s

           Short slot time. Das 802.11g-Netzwerk verwendet eine kurze
           Slotzeit, da es in diesem Netzwerk keine veralteten
           (802.11b) Gera:te gibt.

   Um eine Liste der bekannten Netzwerke auszugeben, verwenden Sie
   den folgenden Befehl:

 # ifconfig wlan0 list scan

   Diese Liste kann entweder automatisch durch das drahtlose Gera:t
   oder manuell durch eine scan-Aufforderung aktualisiert werden.
   Veraltete Informationen werden dabei automatisch entfernt.

     --------------------------------------------------------------

      32.3.3.1.2. Basiseinstellungen

   Dieser Abschnitt beschreibt, wie Sie ein einfaches drahtloses
   Netzerk ohne Verschlu:sselung unter FreeBSD einrichten. Nachdem
   Sie sich mit den Informationen dieses Abschnitts vertraut gemacht
   haben, sollten Sie Ihr drahtloses Netzwerk mit WPA verschlu:sseln.

   Das Einrichten eines drahtlosen Netzwerks erfolgt in drei
   Schritten: Der Auswahl eines Access Points, der Anmeldung Ihrer
   Station sowie der Konfiguration Ihrer IP-Adresse.

     --------------------------------------------------------------

        32.3.3.1.2.1. Einen Access Point auswa:hlen

   Im Normalfall wird sich Ihre Station automatisch mit einem der zur
   Verfu:gung stehenden Access Points verbinden. Sie mu:ssen dazu
   lediglich Ihr drahtloses Gera:t aktivieren. Alternativ ko:nnen Sie
   auch einen Eintrag a:hnlich dem folgenden in /etc/rc.conf
   aufnehmen:

 wlans_ath0="wlan0"
 ifconfig_wlan0="DHCP"

     Anmerkung: Wie bereits erwa:hnt, beno:tigen Sie unter
     FreeBSD 7.X anstelle dieser beiden Zeilen nur eine Zeile (mit
     dem entsprechenden Gera:tetreiber):

 ifconfig_ath0="DHCP"

   Wollen Sie sich hingegen mit einem bestimmten Access Point
   verbinden, mu:ssen Sie dessen SSID angeben:

 wlans_ath0="wlan0"
 ifconfig_wlan0="ssid Ihre_SSID DHCP"

   Gibt es in Ihrem Netzwerk mehrere Access Points mit der gleichen
   SSID (was der Einfachheit wegen ha:ufig der Fall ist), ko:nnen Sie
   sich dennoch mit einem bestimmten Access Point verbinden. Dazu
   mu:ssen Sie lediglich die BSSID des Access Points angeben (die
   Angabe der SSID ist in diesem Fall nicht erforderlich):

 wlans_ath0="wlan0"
 ifconfig_wlan0="ssid Ihre_SSID bssid xx:xx:xx:xx:xx:xx DHCP"

   Es gibt noch weitere Mo:glichkeiten, den Zugriff auf bestimmte
   Access Point zu beschra:nken, beispielsweise durch die Begrenzung
   der Frequenzen, auf denen eine Station nach einem Access Point
   sucht. Sinnvoll ist ein solches Vorgehen beispielsweise, wenn Ihr
   drahtloses Gera:t in verschiedenen Frequenzbereichen arbeiten
   kann, da in diesem Fall das Pru:fen aller Frequenzen sehr
   zeitintensiv ist. Um nur innerhalb eines bestimmten
   Frequenzbereichs nach einem Access Point zu suchen, verwenden Sie
   die Option mode:

 wlans_ath0="wlan0"
 ifconfig_wlan0="mode 11g ssid Ihre_SSID DHCP"

   Dadurch sucht Ihr drahtloses Gera:t nur im 2,4 GHz-Band (802.11g),
   aber nicht innerhalb des 5 GHz-Bandes nach einem Access Point. Mit
   der Option channel ko:nnen Sie eine bestimmte Frequenz vorgeben,
   auf der gesucht werden soll. Die Option chanlist erlaubt die
   Angabe mehrerer erlaubter Frequenzen. Eine umfassende Beschreibung
   dieser Optionen finden Sie in der Manualpage ifconfig(8).

     --------------------------------------------------------------

        32.3.3.1.2.2. Authentifizierung

   Wenn Sie einen Access Point gefunden haben, muss sich Ihrem
   Station am Access Point anmelden, bevor Sie Daten u:bertragen
   kann. Dazu gibt es verschiedene Mo:glichkeiten. Am ha:ufigsten
   wird nach wie vor die sogenannte offene Authentifizierung
   verwendet. Dabei wird es jeder Station erlaubt, sich mit einem
   Netzwerk zu verbinden und Daten zu u:bertragen. Aus
   Sicherheitsgru:nden sollte diese Methode allerdings nur zu
   Testzwecken bei der erstmaligen Einrichtung eines drahtlosen
   Netzwerks verwendet werden. Andere Authentifizierungsmechanismen
   erfordern den Austausch kryptografischer Informationen, bevor Sie
   die U:bertragung von Daten erlauben. Dazu geho:ren der Austausch
   fixer (vorher vereinbarter) Schlu:ssel oder Kennwo:rter sowie der
   Einsatz komplexerer Verfahren mit Backend-Diensten wie RADIUS. Die
   meisten Netzwerke nutzen allerdings nach wie vor die offene
   Authentifizierung, da dies die Voreinstellung ist. Am
   zweitha:ufigsten kommt das weiter unten beschriebene WPA-PSK (das
   auch als WPA Personal bezeichnet wird) zum Einsatz.

     Anmerkung: Verwenden Sie eine Apple AirPort(R)
     Extreme-Basisstation als Access Point, beno:tigen Sie
     wahrscheinlich sowohl die Shared-Key-Authentifizierung als auch
     einen WEP-Schlu:ssel. Die entsprechende Konfiguration erfolgt
     entweder in der Datei /etc/rc.conf oder u:ber das Programm
     wpa_supplicant(8). Verwenden Sie nur eine einzige
     AirPort-Basisstation, beno:tigen Sie einen Eintrag a:hnlich dem
     folgenden:

 wlans_ath0="wlan0"
 ifconfig_wlan0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"

     Normalerweise sollten Sie Shared-Key-Authentifizierung aber
     nicht verwenden, da diese die Sicherheit des WEP-Schlu:ssel noch
     weiter verringert. Mu:ssen Sie WEP einsetzen (beispielsweise
     weil Sie zu veralteten Gera:ten kompatibel bleiben mu:ssen),
     sollten Sie WEP nur zusammen mit der offenen Authentifizierung
     (open authentication) verwenden. WEP wird im Abschnitt
     32.3.3.1.4 na:her beschrieben.

     --------------------------------------------------------------

        32.3.3.1.2.3. Eine IP-Adresse u:ber DHCP beziehen

   Nachdem Sie einen Access Point gefunden und sich authentifiziert
   haben, beno:tigen Sie noch eine IP-Adresse, die Sie in der Regel
   u:ber DHCP zugewiesen bekommen. Dazu mu:ssen Sie lediglich die
   Option DHCP in Ihre in der Datei /etc/rc.conf vorhandene
   Konfiguration Ihres drahtlosen Gera:ts aufnehmen:

 wlans_ath0="wlan0"
 ifconfig_wlan0="DHCP"

   Nun ko:nnen Sie Ihr drahtloses Gera:t starten:

 # /etc/rc.d/netif start

   Nachdem Sie das Gera:t aktiviert haben, ko:nnen Sie mit ifconfig
   den Status des Gera:ts ath0 abfragen:

 # ifconfig wlan0
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         ether 00:11:95:d5:43:62
         inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
         media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
         status: associated
         ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76
         country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
         scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
         roam:rate 5 protmode CTS wme burst

   status: associated besagt, dass sich Ihr Gera:t mit dem drahtlosen
   Netzwerk verbunden hat (konkret mit dem Netzwerk dlinkap). bssid
   00:13:46:49:41:76 gibt die MAC-Adresse Ihres Access Points aus und
   die Zeile mit authmode OPEN informiert Sie daru:ber, dass Ihre
   Kommunikation nicht verschlu:sselt wird.

     --------------------------------------------------------------

        32.3.3.1.2.4. Statische IP-Adressen

   Alternativ zu dynamischen IP-Adressen ko:nnen Sie auch eine
   statische IP-Adresse verwenden. Dazu ersetzen Sie in Ihrer
   Konfiguration DHCP durch die zu verwendende IP-Adresse. Beachten
   Sie dabei, dass Sie die anderen Konfigurationsparameter nicht
   versehentlich vera:ndern:

 wlans_ath0="wlan0"
 ifconfig_wlan0="inet 192.168.1.100 netmask 255.255.255.0 ssid your_ssid_here"

     --------------------------------------------------------------

      32.3.3.1.3. WPA

   Bei WPA (Wi-Fi Protected Access) handelt es sich um ein
   Sicherheitsprotokoll, das in 802.11-Netzwerken verwendet wird, um
   die Nachteile von WEP (fehlende Authentifizierung und schwache
   Verschlu:sselung) zu vermeiden. WPA stellt das aktuelle
   802.1X-Authentifizierungsprotokoll dar und verwendet eine von
   mehreren Chiffren, um die Datensicherheit zu gewa:hrleisten. Die
   einzige Chiffre, die von WPA verlangt wird, ist TKIP (Temporary
   Key Integrity Protocol), eine Chiffre, die die von WEP verwendete
   RC4-Chiffre um Funktionen zur Pru:fung der Datenintegrita:t und
   zur Erkennung und Beka:mpfung von Einbruchsversuchen erweitert.
   TKIP ist durch Softwaremodifikationen auch unter veralteter
   Hardware lauffa:hig. Im Vergleich zu WEP ist WPA zwar sehr viel
   sicherer, es ist aber dennoch nicht vo:llig immun gegen Angriffe.
   WPA definiert mit AES-CCMP noch eine weitere Chiffre als
   Alternative zu TKIP. AES-CCMP (das ha:ufig als WPA2 oder RSN
   bezeichnet wird) sollte, wenn mo:glich, eingesetzt werden.

   WPA definiert Authentifizierungs- und Verschlu:sselungsprotokolle.
   Die Authentifizierung erfolgt in der Regel u:ber eine der
   folgenden Techniken: 802.1X gemeinsam mit einem
   Backend-Authentifizierungsdienst wie RADIUS, oder durch einen
   Minimal-Handshake zwischen der Station und dem Access Point mit
   einem vorher vereinbarten gemeinsamen Schlu:ssel. Die erste
   Technik wird als WPA Enterprise, die zweite hingegen als WPA
   Personal bezeichnet. Da sich der Aufwand fu:r das Aufsetzen eines
   RADIUS-Backend-Servers fu:r die meisten drahtlosen Netzwerke nicht
   lohnt, wird WPA in der Regel als WPA-PSK (WPA, Pre-Shared-Key)
   konfiguriert.

   Die Kontrolle der drahtlosen Verbindung sowie die vorangehende
   Authentifizierung (u:ber Schlu:ssel oder durch die Kommunikation
   mit einem Server) erfolgt u:ber das Programm wpa_supplicant(8),
   das u:ber die Datei /etc/wpa_supplicant.conf eingerichtet wird.
   Ausfu:hrliche Informationen zur Konfiguration des Programms finden
   sich in der Manualpage wpa_supplicant.conf(5).

     --------------------------------------------------------------

        32.3.3.1.3.1. WPA-PSK

   WPA-PSK oder WPA-Personal basiert auf einem gemeinsamen (vorher
   vereinbarten) Schlu:ssel (PSK), der aus einem Passwort generiert
   und danach als Master-Key des drahtlosen Netzwerks verwendet wird.
   Jeder Benutzer des drahtlosen Netzwerks verwendet daher den
   gleichen Schlu:ssel. WPA-PSK sollte nur in kleinen Netzwerken
   eingesetzt werden, in denen die Konfiguration eines
   Authentifizierungsservers nicht mo:glich oder erwu:nscht ist.

     Warnung: Achten Sie darauf, dass Sie immer starke Passwo:rter
     verwenden, die ausreichend lang sind und, wenn mo:glich, auch
     Sonderzeichen enthalten, damit diese nicht leicht erraten
     und/oder umgangen werden ko:nnen.

   Der erste Schritt zum Einsatz von WPA-PSK ist die Konfiguration
   der SSID und des gemeinsamen Schlu:ssels Ihres Netzwerks in der
   Datei /etc/wpa_supplicant.conf:

 network={
   ssid="freebsdap"
   psk="freebsdmall"
 }

   Danach geben Sie in /etc/rc.conf an, dass WPA zur Verschlu:sselung
   eingesetzt werden soll und dass die IP-Adresse u:ber DHCP bezogen
   wird:

 wlans_ath0="wlan0"
 ifconfig_wlan0="WPA DHCP"

   Nun ko:nnen Sie Ihr Netzgera:t aktivieren:

 # /etc/rc.d/netif start
 Starting wpa_supplicant.
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
 DHCPOFFER from 192.168.0.1
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67
 DHCPACK from 192.168.0.1
 bound to 192.168.0.254 -- renewal in 300 seconds.
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
       AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
       bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
       wme burst roaming MANUAL

   Alternativ ko:nnen Sie die Konfiguration von WPA-PSK auch manuell
   durchfu:hren, wobei Sie wiederum die Konfigurationsdatei
   /etc/wpa_supplicant.conf verwenden:

 # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
 Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
 Associated with 00:11:95:c3:0d:ac
 WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP]
 CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 id_str=]

   Im zweiten Schritt starten Sie nun dhclient, um eine IP-Adresse
   vom DHCP-Server zu beziehen:

 # dhclient wlan0
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67
 DHCPACK from 192.168.0.1
 bound to 192.168.0.254 -- renewal in 300 seconds.
 # ifconfig wlan0
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
       AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
       bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
       wme burst roaming MANUAL

     Anmerkung: Entha:lt Ihre /etc/rc.conf bereits die Zeile
     ifconfig_wlan0="DHCP", mu:ssen Sie dhclient nicht mehr manuell
     aufrufen, da dhclient in diesem Fall automatisch gestartet wird,
     nachdem wpa_supplicant die Schlu:ssel u:bergibt.

   Sollte der Einsatz von DHCP nicht mo:glich sein, ko:nnen Sie auch
   eine statische IP-Adresse angeben, nachdem wpa_supplicant Ihre
   Station authentifiziert hat:

 # ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
 # ifconfig wlan0
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
       AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
       bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
       wme burst roaming MANUAL

   Verwenden Sie DHCP nicht, mu:ssen Sie zusa:tzlich noch das
   Standard-Gateway sowie den/die Nameserver manuell festlegen:

 # route add default your_default_router
 # echo "nameserver your_DNS_server" >> /etc/resolv.conf

     --------------------------------------------------------------

        32.3.3.1.3.2. WPA und EAP-TLS

   Die zweite Mo:glichkeit, WPA einzusetzen, ist die Verwendung eines
   802.1X-Backend-Authentifizierungsservers. Diese Variante wird als
   WPA-Enterprise bezeichnet, um sie vom weniger sicheren
   WPA-Personal abzugrenzen, das auf dem Austausch gemeinsamer (und
   vorher vereinbarter Schlu:ssel) basiert. Die bei WPA-Enterprise
   verwendete Authentifizierung basiert auf EAP (Extensible
   Authentication Protocol).

   EAP selbst bietet keine Verschlu:sselung, sondern operiert in
   einem verschlu:sselten Tunnel. Es gibt verschiedene, auf EAP
   basierende Authentifizierungsmethoden, darunter EAP-TLS, EAP-TTLS
   sowie EAP-PEAP.

   Bei EAP-TLS (EAP with Transport Layers Security) handelt es sich
   um sehr gut unterstu:tztes Authentifizierungsprotokoll, da es sich
   dabei um die erste EAP-Methode handelt, die von der Wi-Fi Alliance
   zertifiziert wurde. EAP-TLS erfordert drei Zertifikate: Das (auf
   allen Rechnern installierte) CA-Zertifikat, das Server-Zertifikat
   Ihres Authentifizierungsservers, sowie ein Client-Zertifikat fu:r
   jeden drahtlosen Client. Sowohl der Authentifizierungsservers als
   auch die drahtlosen Clients authentifizieren sich gegenseitig
   durch ihre Zertifikate, wobei sie u:berpru:fen, ob diese
   Zertifikate auch von der Zertifizierungs-Authorita:t (CA) des
   jeweiligen Unternehmens signiert wurden.

   Die Konfiguration erfolgt (analog zu WPA-PSK) u:ber die Datei
   /etc/wpa_supplicant.conf:

 network={
   ssid="freebsdap" (1)
   proto=RSN  (2)
   key_mgmt=WPA-EAP (3)
   eap=TLS (4)
   identity="loader" (5)
   ca_cert="/etc/certs/cacert.pem" (6)
   client_cert="/etc/certs/clientcert.pem" (7)
   private_key="/etc/certs/clientkey.pem" (8)
   private_key_passwd="freebsdmallclient" (9)
 }

   (1)
           Der Name des Netzwerks (die SSID).
   (2)
           Das RSN/WPA2-Protokoll (IEEE 802.11i) wird verwendet.
   (3)
           Die key_mgmt-Zeile bezieht sich auf das verwendete
           Key-Management-Protokoll. In diesem Beispiel wird WPA
           gemeinsam mit der EAP-Authentifizierung verwendet
           (WPA-EAP).
   (4)
           Die fu:r die Verbindung verwendete EAP-Methode.
   (5)
           Das identity-Feld entha:lt den von EAP verwendeten
           Identifizierungsstring.
   (6)
           Das Feld ca_cert gibt den Pfad zum CA-Zertifikat an.
           Dieses Datei wird beno:tigt, um das Server-Zertifikat zu
           verifizieren.
   (7)
           Die client_cert-Zeile gibt den Pfad zum Client-Zertifikat
           an. Jeder Client hat ein eigenes, innerhalb des Netzwerks
           eindeutiges, Zertifikat.
   (8)
           Das Feld private_key gibt den Pfad zum privaten Schlu:ssel
           des Client-Zertifikat an.
   (9)
           Das Feld private_key_passwd entha:lt die Passphrase fu:r
           den privaten Schlu:ssel.

   Danach fu:gen Sie die folgende Zeile in /etc/rc.conf ein:

 wlans_ath0="wlan0"
 ifconfig_wlan0="WPA DHCP"

   Nun ko:nnen Sie Ihr drahtloses Gera:t u:ber das rc.d-System
   aktivieren:

 # /etc/rc.d/netif start
 Starting wpa_supplicant.
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
 DHCPACK from 192.168.0.20
 bound to 192.168.0.254 -- renewal in 300 seconds.
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
       AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
       bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
       wme burst roaming MANUAL

   Alternativ ko:nnen Sie Ihr drahtloses Gera:lt wiederum manuell
   u:ber wpa_supplicant und ifconfig aktivieren.

     --------------------------------------------------------------

        32.3.3.1.3.3. WPA und EAP-TTLS

   Bei EAP-TLS mu:ssen sowohl der Authentifizierungsserver als auch
   die Clients jeweils ein eigenes Zertifikat aufweisen. Setzen Sie
   hingegen EAP-TTLS (EAP-Tunneled Transport Layer Security) ein, ist
   das Client-Zertifikat optional. EAP-TTLS geht dabei a:hnlich vor
   wie verschlu:sselte Webseiten, bei denen der Webserver einen
   sicheren SSL-Tunnel erzeugen kann, ohne dass der Besucher dabei
   u:ber ein client-seitiges Zertifikat verfu:gen muss. EAP-TTLS
   verwendet einen verschlu:sselten TLS-Tunnel zum sicheren Transport
   der Authentifizierungsdaten.

   Die Konfiguration von EAP-TTLS erfolgt in der Datei
   /etc/wpa_supplicant.conf:

 network={
   ssid="freebsdap"
   proto=RSN
   key_mgmt=WPA-EAP
   eap=TTLS (1)
   identity="test" (2)
   password="test" (3)
   ca_cert="/etc/certs/cacert.pem" (4)
   phase2="auth=MD5" (5)
 }

   (1)
           Die fu:r die Verbindung verwendete EAP-Methode.
   (2)
           Das identity-Feld entha:lt den Identifizierungsstring fu:r
           die EAP-Authentifizierung innerhalb des verschlu:sselten
           TlS-Tunnels.
   (3)
           Das password-Feld entha:lt die Passphrase fu:r die
           EAP-Authentifizierung.
   (4)
           Das Feld ca_cert gibt den Pfad zum CA-Zertifikat an, das
           beno:tigt wird, um das Server-Zertifikat zu verifizieren.
   (5)
           Die innerhalb des verschlu:sselten TLS-Tunnels verwendete
           Authentifizierungsmethode. In unserem Beispiel handelt es
           sich dabei um EAP und MD5. Diese Phase der "inneren
           Authentifizierung" wird oft als "phase2" bezeichnet.

   Folgende Zeilen mu:ssen zusa:tzlich in die Datei /etc/rc.conf
   aufgenommen werden:

 wlans_ath0="wlan0"
 ifconfig_wlan0="WPA DHCP"

   Nun ko:nnen Sie Ihr drahtloses Gera:t aktivieren:

 # /etc/rc.d/netif start
 Starting wpa_supplicant.
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
 DHCPACK from 192.168.0.20
 bound to 192.168.0.254 -- renewal in 300 seconds.
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
       AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
       bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
       wme burst roaming MANUAL

     --------------------------------------------------------------

        32.3.3.1.3.4. WPA und EAP-PEAP

   PEAP (Protected EAP) wurde als Alternative zu EAP-TTLS entwickelt.
   Es gibt zwei verschiedene PEAP-Methoden, wobei es sich bei
   PEAPv0/EAP-MSCHAPv2 um die ha:ufiger verwendete Methode handelt.
   In den folgenden Ausfu:hrungen wird der Begriff PEAP synonym fu:r
   diese EAP-Methode verwendet. PEAP ist nach EAP-TLS der am
   ha:ufigsten verwendete und am besten unterstu:tzte EAP-Standard.

   PEAP arbeitet a:hnlich wie EAP-TTLS: Es verwendet ein
   server-seitiges Zertifikat, um einen verschlu:sselten TLS-Tunnel
   zu erzeugen, u:ber den die sichere Authentifizierung zwischen den
   Clients und dem Authentifizierungsserver erfolgt. In Sachen
   Sicherheit unterscheiden sich EAP-TTLS und PEAP allerdings: PEAP
   u:bertra:gt den Benutzernamen im Klartext und verschlu:sselt nur
   das Passwort, wa:hrend EAP-TTLS sowohl den Benutzernamen als auch
   das Passwort u:ber den TLS-Tunnel u:bertra:gt.

   Um EAP-PEAP einzurichten, mu:ssen Sie die Konfigurationsdatei
   /etc/wpa_supplicant.conf anpassen:

 network={
   ssid="freebsdap"
   proto=RSN
   key_mgmt=WPA-EAP
   eap=PEAP (1)
   identity="test" (2)
   password="test" (3)
   ca_cert="/etc/certs/cacert.pem" (4)
   phase1="peaplabel=0" (5)
   phase2="auth=MSCHAPV2" (6)
 }

   (1)
           Die fu:r die Verbindung verwendete EAP-Methode.
   (2)
           Das identity-Feld entha:lt den Identifizierungsstring fu:r
           die innerhalb des verschlu:sselten TLS-Tunnels erfolgende
           EAP-Authentifizierung.
   (3)
           Das Feld password entha:lt die Passphrase fu:r die
           EAP-Authentifizierung.
   (4)
           Das Feld ca_cert gibt den Pfad zum CA-Zertifikat an, das
           zur Verifizierung des Server-Zertifikats beno:tigt wird.
   (5)
           Dieses Feld entha:lt die Parameter fu:r die erste Phase
           der Authentifizierung (also den TLS-Tunnel). Je nach dem,
           welchen Authentifizierungsserver Sie verwenden, mu:ssen
           Sie hier einen unterschiedlichen Wert angeben. In den
           meisten Fa:llen wird dieses Feld den Wert "client EAP
           encryption" aufweisen, der durch die Angabe von
           peaplabel=0 gesetzt wird. Weitere Informationen zur
           Konfiguration von PEAP finden Sie in der Manualpage
           wpa_supplicant.conf(5).
   (6)
           Das innerhalb des verschlu:sselten TLS-Tunnels verwendete
           Authentifizierungsprotokoll. In unserem Beispiel handelt
           es sich dabei um auth=MSCHAPV2.

   Danach fu:gen Sie die folgende Zeile in /etc/rc.conf ein:

 ifconfig_ath0="WPA DHCP"

   Zuletzt mu:ssen Sie die Netzwerkkarte noch aktivieren:

 # /etc/rc.d/netif start
 Starting wpa_supplicant.
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
 DHCPACK from 192.168.0.20
 bound to 192.168.0.254 -- renewal in 300 seconds.
 wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
       AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
       bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
       wme burst roaming MANUAL

     --------------------------------------------------------------

      32.3.3.1.4. WEP

   WEP (Wired Equivalent Privacy) ist Teil des urspru:nglichen
   802.11-Standards. Es entha:lt keinen Authentifzierungsmechanismus
   und verfu:gt lediglich u:ber eine schwache Zugriffskontrolle, die
   sehr leicht umgangen werden kann.

   WEP kann u:ber ifconfig aktiviert werden:

 # ifconfig wlan0 create wlandev ath0
 # ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \
             ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012

     * Mit weptxkey geben Sie an, welcher WEP-Schlu:ssel fu:r fu:r
       die Datenu:bertragung verwendet wird (in unserem Beispiel ist
       dies der dritte Schlu:ssel). Der gleiche Schlu:ssel muss auch
       am Access Point eingestellt sein. Kennen Sie den vom Access
       Point verwendeten Schlu:ssel nciht, sollten Sie zuerst den
       Wert 1 (d.h. den ersten Schlu:ssel) fu:r diese Variable
       verwenden.

     * Mit wepkey legen Sie den zu verwendenden WEP-Schlu:ssel in der
       Form Nummer:Schlu:ssel fest. Ist der Schlu:ssel "Nummer" nicht
       vorhanden, wird automatisch Schlu:ssel 1 verwendet. Die Angabe
       von "Nummer" ist zwingend no:tig, wenn Sie einen anderen als
       den ersten Schlu:ssel verwenden wollen.

         Anmerkung: In Ihrer Konfiguration mu:ssen Sie 0x3456789012
         durch den an Ihrem Access Point konfigurierten Schlu:ssel
         ersetzen.

   Weitere Informationen finden Sie in der Manualpage ifconfig(8).

   Das Programm wpa_supplicant eignet sich ebenfalls dazu, WEP fu:r
   Ihr drahtloses Gera:t zu aktivieren. Obige Konfiguration la:sst
   sich dabei durch die Aufnahme der folgenden Zeilen in die Datei
   /etc/wpa_supplicant.conf realisieren:

 network={
   ssid="my_net"
   key_mgmt=NONE
   wep_key3=3456789012
   wep_tx_keyidx=3
 }

   Danach mu:ssen Sie das Programm noch aufrufen:

 # wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
 Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
 Associated with 00:13:46:49:41:76

     --------------------------------------------------------------

  32.3.4. Ad-hoc-Modus

   Der IBSS-Modus (auch als Ad-hoc-Modus bezeichnet), ist fu:r
   Punkt-zu-Punkt-Verbindungen vorgesehen. Um beispielsweise eine
   Ad-hoc-Verbindung zwischen den Rechnern A und B aufzubauen,
   beno:tigen Sie lediglich zwei IP-Adressen und eine SSID.

   Auf dem Rechner A geben Sie Folgendes ein:

 # ifconfig wlan0 create wlandev ath0 wlanmode adhoc
 # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
 # ifconfig wlan0
   wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       ether 00:11:95:c3:0d:ac
       inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
       status: running
       ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
       country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
       protmode CTS wme burst

   Der adhoc-Parameter gibt an, dass die Schnittstelle im IBSS-Modus
   la:uft.

   Rechner B sollte nun in der Lage sein, Rechner A zu finden:

 # ifconfig wlan0 create wlandev ath0 wlanmode adhoc
 # ifconfig wlan0 up scan
   SSID/MESH ID    BSSID              CHAN RATE   S:N     INT CAPS
   freebsdap       02:11:95:c3:0d:ac    2   54M -64:-96  100 IS   WME

   Der Wert I (Spalte CAPS) gibt an, dass sich Rechner A im
   Ad-hoc-Modus befindet. Nun mu:ssen Sie nur noch Rechner B eine
   unterschiedliche IP-Adresse zuweisen:

 # ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
 # ifconfig wlan0
   wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
       status: running
       ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
       country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
       protmode CTS wme burst

   Damit sind die Rechner A und B bereit und ko:nnen untereinander
   Daten austauschen.

     --------------------------------------------------------------

  32.3.5. FreeBSD Host Access Points

   FreeBSD kann als Access Point (AP) agieren. Dies verhindert, dass
   man sich einen Hardware AP kaufen oder ein ad-hoc Netzwerk laufen
   lassen muss. Dies kann sinnvoll sein, falls Ihre FreeBSD-Computer
   als Gateway zu einem anderen Netzwerk (z.B. Internet) fungiert.

     --------------------------------------------------------------

    32.3.5.1. Grundeinstellungen

   Bevor Sie ihren FreeBSD-Computer als einen AP konfigurieren, muss
   der Kernel mit dem fu:r ihre Wireless-Karte entsprechenden
   Treibern konfiguriert werden. Sie mu:ssen ebenfalls die
   Sicherheitsprotokolle, die Sie nutzen wollen, dem Kernel
   hinzufu:gen. Fu:r weitere Informationen siehe: Abschnitt 32.3.2.

     Anmerkung: Die Verwendung der NDIS und Windows Treiber erlauben
     zur Zeit keinen AP-Modus. Nur die nativen
     FreeBSD-Wireless-Treiber unterstu:ten den AP Modus.

   Nachdem die Unterstu:tzung fu:r ihr drahtloses Netzwerk geladen
   ist, ko:nnen Sie u:berpru:fen, ob Ihr Wireless-Gera:t den
   hostbasierenden Access-Point Modus (auch bekannt als hostap Modus)
   unterstu:tzt:

 # ifconfig wlan0 create wlandev ath0
 # ifconfig wlan0 list caps
 drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
 cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>

   Diese Ausgabe zeigt die Mo:glichkeiten der Karte. Das Wort HOSTAP
   besta:tigt, dass diese Wireless-Karte als Access Point agieren
   kann. Die verschiedenen unterstu:tzten Algorithmen (z.B. WEP,
   TKIP, AES usw.) werden ebenfalls angezeigt. Diese Informationen
   sind wichtig, wenn Sie wissen wollen, welche Sicherheitsprotokolle
   auf diesem Access Point verwendbar sind.

   Das Wireless-Gera:t kann nur wa:hrend der Erzeugung des
   Pseudo-Gera:ts in den hostap-Modus gesetzt werden. Zuvor erstellte
   Pseudo-Gera:te mu:ssen also vorher zersto:rt werden:

 # ifconfig wlan0 destroy

   Danach muss das Gera:t erneut erstellt werden, bevor die
   restlichen Netzwerkparameter konfiguriert werden ko:nnen:

 # ifconfig wlan0 create wlandev ath0 wlanmode hostap
 # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1

   Benutzen Sie danach erneut den Befehl ifconfig, um den Status der
   wlan0-Schnittstelle abzufragen:

 # ifconfig wlan0
   wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       ether 00:11:95:c3:0d:ac
       inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
       status: running
       ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
       protmode CTS wme burst dtimperiod 1 -dfs

   Die hostap-Parameter geben die Schnittstelle an, die im
   hostbasierenden Access Point Modus la:uft.

   Die Konfiguration der Schnittstelle kann durch Hinzufu:gen der
   folgenden Zeilen in die Datei /etc/rc.conf automatisch wa:hrend
   des Bootvorganges erfolgen:

 wlans_ath0="wlan0"
 create_args_wlan0="wlanmode hostap"
 ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1"

     --------------------------------------------------------------

    32.3.5.2. Hostbasierender Access Point ohne Authentifizierung oder
    Verschlu:sselung

   Obwohl es nicht empfohlen wird, einen AP ohne jegliche
   Authentifizierung oder Verschlu:sselung laufen zu lassen, ist es
   eine einfache Art zu testen, ob der AP funktioniert. Diese
   Konfiguration ist auch wichtig fu:r die Fehlersuche bei
   Client-Problemen.

   Nachdem Sie den AP, wie oben beschrieben, konfiguriert haben, ist
   es mo:glich von einem anderen drahtlosen Computer eine Suche nach
   dem AP zu starten:

 # ifconfig wlan0 create wlandev ath0
 # ifconfig wlan0 up scan
 SSID/MESH ID    BSSID              CHAN RATE   S:N     INT CAPS
 freebsdap       00:11:95:c3:0d:ac    1   54M -66:-96  100 ES   WME

   Der Client-Rechner fand den Access Point und kann mit ihm
   verbunden werden:

 # ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
 # ifconfig wlan0
   wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       ether 00:11:95:d5:43:62
       inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
       status: associated
       ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
       scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
       roam:rate 5 protmode CTS wme burst

     --------------------------------------------------------------

    32.3.5.3. WPA-basierender Host-Access Point

   Dieser Abschnitt bescha:ftigt sich mit dem Konfigurieren eines
   FreeBSD-Access-Points mit dem WPA-Sicherheitsprotokoll. Weitere
   Einzelheiten zu WPA und der Konfiguration von Clients mit WPA
   finden Sie im Abschnitt 32.3.3.1.3.

   Der hostapd-Dienst wird genutzt, um die Client-Authentifizierung
   und das Schlu:sselmanagement auf dem Access Point mit aktiviertem
   WPA zu nutzen.

   In den folgenden Abschnitten werden allen Konfigurationen auf dem
   FreeBSD-Computer ausgefu:hrt, der als AP agiert. Nachdem der AP
   korrekt arbeitet, sollte hostapd automatisch beim Booten durch
   folgende Zeile in der /etc/rc.conf aktiviert werden:

 hostapd_enable="YES"

   Bevor Sie versuchen hostapd zu konfigurieren, stellen Sie sicher,
   dass die Grundeinstellungen, wie in Abschnitt 32.3.5.1
   beschrieben, ausgefu:hrt wurden.

     --------------------------------------------------------------

      32.3.5.3.1. WPA-PSK

   WPA-PSK ist fu:r kleine Netzwerke gedacht, in denen die Verwendung
   eines Authentifizierungs-Backend-Server nicht mo:glich oder
   erwu:nscht ist.

   Die Konfiguration wird in /etc/hostapd.conf durchgefu:hrt:

 interface=wlan0 (1)
 debug=1 (2)
 ctrl_interface=/var/run/hostapd (3)
 ctrl_interface_group=wheel (4)
 ssid=freebsdap (5)
 wpa=1 (6)
 wpa_passphrase=freebsdmall (7)
 wpa_key_mgmt=WPA-PSK (8)
 wpa_pairwise=CCMP TKIP (9)

   (1)
           Dieses Feld zeigt die Wireless-Schnittstelle an, die fu:r
           den Access Point verwendet wird an.
   (2)
           Dieses Feld legt den debuglevel von hostapd wa:hrend der
           Ausfu:hrung fest. Ein Wert von 1 ist der kleinste
           zula:ssige Wert.
   (3)
           Das ctrl_interface-Feld gibt den Pfadnamen des
           Verzeichnisses an, der von hostapd dazu genutzt wird, um
           die domain socket Dateien zu speichern, die fu:r die
           Kommunikation mit externen Programmen, wie z.B.
           hostapd_cli(8), benutzt werden. Hier wurden die
           Standardwerte benutzt.
   (4)
           Die Zeile ctrl_interface_group legt fest, welche Gruppe
           (hier ist es die wheel-Gruppe) die Erlaubnis hat, die
           Schnittstellendateien zu kontrollieren.
   (5)
           Dieses Feld setzt den Netzwerknamen.
   (6)
           Das wpa-Feld aktiviert WPA und gibt an welches
           WPA-Authentifizierungprotokoll beno:tigt wird. Ein Wert
           von 1 konfiguriert den AP mit WPA-PSK.
   (7)
           Das wpa_passphrase-Feld beinhaltet das ASCII-Passwort fu:r
           die WPA-Authentifikation.

             Warnung: Verwenden Sie immer sichere Passwo:rter, die
             ausreichend lang sind und aus vielen unterschiedlichen
             Zeichen bestehen, damit sie nicht erraten werden oder
             umgangen werden ko:nnen.

   (8)
           Die wpa_key_mgmt Zeile bestimmt das
           Schlu:sselmanagement-Protokoll, das benutzt wird. In
           unserem Fall ist es WPA-PSK.
   (9)
           Das wpa_pairwise Feld zeigt die zula:ssigen
           Verschlu:sselungs-Algorithmen des Access Points. Hier
           werden beide, TKIP (WPA) und CCMP (WPA2), akzeptiert.
           CCMP-Verschlu:sselung ist eine Alternative zu TKIP und
           sollte wenn mo:glich eingesetzt werden. TKIP sollte nur da
           eingesetzt werden, wo kein CCMP mo:glich ist.

   Als na:chstes wird der hostapd gestartet:

 # /etc/rc.d/hostapd forcestart

 # ifconfig wlan0
   wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290
       inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
       inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
       ether 00:11:95:c3:0d:ac
       media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
       status: associated
       ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
       authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100

   Der Access Point la:ft nun, die Clients ko:nnen mit ihm verbunden
   werden. Weitere Informationen finden Sie im Abschnitt 32.3.3.1.3.
   Es ist mo:glich zu sehen, welche Stationen mit dem AP verbunden
   sind. Dazu geben Sie den Befehl ifconfig wlan0 list sta ein.

     --------------------------------------------------------------

    32.3.5.4. WEP hostbasierender Access Point

   Es ist nicht empfehlenswert, einen Access Point mit WEP zu
   konfigurieren, da es keine Authentifikationsmechanismen gibt und
   WEP leicht zu knacken ist. Einige a:ltere WLAN-Karten
   unterstu:tzen nur WEP als Sicherheitsprotokoll. Fu:r solche Karten
   ist es notwendig den AP ohne Authentifikation, Verschlu:sselung
   oder mit dem WEP-Protokoll zu konfigurieren.

   Das Wireless-Gera:t kann nun in den hostap-Modus versetzt werden
   und mit der korrekten SSID und IP-Adresse konfiguriert werden:

 # ifconfig wlan0 create wlandev ath0 wlanmode hostap
 # ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \
       ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g

     * Der weptxkey gibt an, welcher WEP-Schlu:ssel bei der
       U:bertragung benutzt wird. Hier nutzen wir den 3. Schlu:ssel
       (die Nummerierung der Schlu:ssel beginnt bei 1). Dieses
       Parameter muss angegeben sein, damit die Daten wirklich
       verschlu:sselt werden.

     * Der wepkey gibt den gewa:hlten WEP-Schlu:ssel an. Er sollte im
       folgenden Format index:key vorliegen. Wenn kein Index
       vorhanden ist, wird der Schlu:ssel 1 benutzt. Das bedeutet wir
       brauchen einen Index, falls wir einen anderen Schlu:ssel als
       den ersten nutzen wollen.

   Benutzen Sie den Befehl ifconfig noch einmal um den Status der
   wlan0-Schnittstelle zu sehen:

 # ifconfig wlan0
   wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       ether 00:11:95:c3:0d:ac
       inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
       media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
       status: running
       ssid freebsdap channel 4 (2427 Mhz 11g) bssid 00:11:95:c3:0d:ac
       country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit
       txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs

   Es ist mo:glich, von einem anderen drahtlosen Computer eine Suche
   nach dem AP zu starten:

 # ifconfig wlan0 create wlandev ath0
 # ifconfig wlan0 up scan
 SSID            BSSID              CHAN RATE  S:N   INT CAPS
 freebsdap       00:11:95:c3:0d:ac    1   54M 22:1   100 EPS

   Der Client-Rechner fand den Access Point und kann mit den
   korrekten Parametern (Schlu:ssel usw.) mit ihm verbunden werden.
   Weitere Informationen gibt es in folgendem Abschnitt 32.3.3.1.4

     --------------------------------------------------------------

  32.3.6. Benutzung von drahtgebundenen und drahtlosen Verbindungen

   Eine Verbindung per Kabel bietet eine bessere Leistung und eine
   ho:here Zuverla:ssigkeit, wa:hrend die Wireless-Verbindung eine
   ho:here Flexibilita:t und Mobilita:t bietet. Benutzer von Laptops
   wollen normalerweise beides nutzen und zwischen beiden hin und her
   schalten.

   Unter FreeBSD ist es mo:glich zwei oder mehr
   Netzwerkschnittstellen in einem "failover"-Mode zu kombinieren, so
   dass automatisch die beste verfu:gbare Verbindung aus der Gruppe
   ausgewa:hlt wird, sobald der Linkstatus wechselt.

   Wir behandeln Link-Aggregation und Failover in dem Kapitel
   Abschnitt 32.6. Dort gibt es auch ein Beispiel (Beispiel 32-3)
   fu:r die Verwendung von sowohl kabelgebundenen wie auch drahtlosen
   Verbindungen.

     --------------------------------------------------------------

  32.3.7. Problembehandlung

   Die folgenden Auflistung zeigt, wie Sie einige ha:ufig auftretende
   Probleme bei der Einrichtung Ihres drahtlosen Netzwerks beheben
   ko:nnen.

     * Wird Ihr Access Point bei der Suche nicht gefunden, sollten
       Sie u:berpru:fen, ob Sie bei Konfiguration Ihres drahtlosen
       Gera:ts die Anzahl der Kana:le beschra:nkt haben.

     * Wenn Sie sich nicht mit Ihrem Access Point verbinden ko:nnen,
       sollten Sie u:berpru:fen, ob die Konfiguration Ihrer Station
       auch der des Access Points entspricht. Achten Sie dabei
       speziell auf die Authentifzierungsmethode und die
       Sicherheitsprotokolle. Halten Sie Ihre Konfiguration so
       einfach wie mo:glich. Verwenden Sie ein Sicherheitsprotokoll
       wie WPA oder WEP, sollten Sie testweise Ihren Access Point auf
       offene Authentifizierung und keine Sicherheit einstellen.
       Danach versuchen Sie sich erneut mit Ihren Access Point zu
       verbinden.

     * Nachdem Sie sich mit dem Access Point verbinden ko:nnen,
       pru:fen Sie die Sicherheitseinstellungen, beginnend mit
       einfachen Werkzeugen wie ping(8).

       Das Programm wpa_supplicant kann Ihnen bei der Fehlersuche
       helfen. Dazu starten Sie es manuell mit der Option -dd und
       durchsuchen anschliessend die Protokollinformationen nach
       eventuellen Fehlermeldungen.

     * Zusa:tzlich gibt es auch zahlreiche
       Low-Level-Debugging-Werkzeuge. Die Ausgabe von
       Debugging-Informationen des 802.11 Protocol Support Layers
       lassen sich mit dem Programm wlandebug (das sich unter
       /usr/src/tools/tools/net80211 befindet) aktivieren. Um
       beispielsweise wa:hrend der Suche nach Access Points und des
       Aufbaus von 802.11-Verbindungen (Handshake) auftretende
       Systemmeldungen auf die Konsole auszugeben, verwenden Sie den
       folgenden Befehl:

 # wlandebug -i ath0 +scan+auth+debug+assoc
   net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>

       Der 802.11-Layer liefert umfangreiche Statistiken, die Sie mit
       dem Werkzeug wlanstats abrufen ko:nnen. Diese Statistiken
       sollten alle Fehler identifizieren, die im 802.11-Layer
       auftreten. Beachten Sie aber, dass einige Fehler bereits im
       darunterliegenden Gera:tetreiber auftreten und daher in diesen
       Statistiken nicht enthalten sind. Wie Sie Probleme des
       Gera:tetreibers identifizieren, entnehmen Sie bitte der
       Dokumentation Ihres Gera:tetreibers.

   Ko:nnen Sie Ihr Problem durch diese Massnahmen nicht lo:sen,
   sollten Sie einen Problembericht (PR) erstellen und die Ausgabe
   der weiter oben genannten Werkzeuge in den Bericht aufnehmen.

     --------------------------------------------------------------

32.4. Bluetooth

   Beigetragen von Pav Lucistnik.

     --------------------------------------------------------------

  32.4.1. U:bersicht

   Bluetooth ermo:glicht die Bildung von perso:nlichen Netzwerken
   u:ber drahtlose Verbindungen bei einer maximalen Reichweite von 10
   Metern und operiert im unlizensierten 2,4-GHz-Band. Solche
   Netzwerke werden normalerweise spontan gebildet, wenn sich mobile
   Gera:te, wie Mobiltelefone, Handhelds oder Notebooks miteinander
   verbinden. Im Gegensatz zu Wireless LAN ermo:glicht Bluetooth auch
   ho:herwertige Dienste, wie FTP-a:hnliche Dateiserver, Filepushing,
   Sprachu:bertragung, Emulation von seriellen Verbindungen und
   andere mehr.

   Der Bluetooth-Stack von FreeBSD verwendet das Netgraph-Framework
   (netgraph(4)). Viele Bluetooth-USB-Adapter werden durch den
   ng_ubt(4)-Treiber unterstu:tzt. Auf dem Chip BCM2033 von Broadcom
   basierende Bluetooth-Gera:te werden von den Treibern ubtbcmfw(4)
   sowie ng_ubt(4) unterstu:tzt. Die Bluetooth-PC-Card 3CRWB60-A von
   3Com verwendet den ng_bt3c(4)-Treiber. Serielle sowie auf UART
   basierende Bluetooth-Gera:te werden von sio(4), ng_h4(4) sowie
   hcseriald(8) unterstu:tzt. Dieses Kapitel beschreibt die
   Verwendung von USB-Bluetooth-Adaptern.

     --------------------------------------------------------------

  32.4.2. Die Bluetooth-Unterstu:tzung aktivieren

   Bluetooth-Unterstu:tzung ist in der Regel als Kernelmodul
   verfu:gbar. Damit ein Gera:t funktioniert, muss der entsprechende
   Treiber im Kernel geladen werden:

 # kldload ng_ubt

   Ist das Bluetooth-Gera:t beim Systemstart angeschlossen, kann das
   entsprechende Modul auch von /boot/loader.conf geladen werden:

 ng_ubt_load="YES"

   Schliessen Sie Ihren USB-Adapter an, sollte eine Meldung a:hnlich
   der folgenden auf der Konsole (oder in syslog) erscheinen:

 ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
 ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
       wMaxPacketSize=49, nframes=6, buffer size=294

   Zum Starten und Beenden des Bluetooth-Stacks verwenden Sie das
   Skript /etc/rc.d/bluetooth. Es ist empfehlenswert, den
   Bluetooth-Stack zu beenden, bevor Sie den Adapter entfernen.
   Selbst wenn Sie dies nicht tun, kommt es (normalerweise) zu keinem
   fatalen Fehler. Wenn Sie den Bluetooth-Stack starten, erhalten Sie
   eine Meldung a:hnlich der folgenden:

 # /etc/rc.d/bluetooth start ubt0
 BD_ADDR: 00:02:72:00:d4:1a
 Features: 0xff 0xff 0xf 00 00 00 00 00
 <3-Slot> <5-Slot> <Encryption> <Slot offset>
 <Timing accuracy> <Switch> <Hold mode> <Sniff mode>
 <Park mode> <RSSI> <Channel quality> <SCO link>
 <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
 <Paging scheme> <Power control> <Transparent SCO data>
 Max. ACL packet size: 192 bytes
 Number of ACL packets: 8
 Max. SCO packet size: 64 bytes
 Number of SCO packets: 8

     --------------------------------------------------------------

  32.4.3. Das Host Controller Interface (HCI)

   Das Host Controller Interface (HCI) bietet eine
   Befehlsschnittstelle zum Basisbandcontroller und Linkmanager,
   sowie Zugriff auf den Hardwarestatus und die Kontrollregister.
   Dadurch wird ein einheitlicher Zugriff auf die Fa:higkeiten des
   Bluetooth-Basisbands mo:glich. Die HCI-Layer des Rechners tauschen
   Daten und Befehle mit der HCI-Firmware der Bluetooth-Gera:te aus.
   U:ber den Host Controller Transport Layer-Treiber (also den
   physikalischen Bus) ko:nnen beide HCI-Layer miteinander
   kommunizieren.

   Eine einzelne Netgraph-Gera:tedatei vom Typ hci wird fu:r ein
   einzelnes Bluetooth-Gera:t erzeugt. Die HCI-Gera:tedatei ist
   normalerweise mit der Bluetooth-Gera:tetreiberdatei (downstream)
   sowie der L2CAP-Gera:tedatei (upstream) verbunden. Alle
   HCI-Operationen mu:ssen u:ber die HCI-Gera:tedatei und nicht u:ber
   die Treiberdatei erfolgen. Der Standardname fu:r die
   HCI-Gera:tedatei (die in ng_hci(4) beschrieben wird) lautet
   "devicehci".

   Eine der wichtigsten Aufgaben ist das Auffinden von sich in
   Reichweite befindenden Bluetooth-Gera:ten. Diese Funktion wird als
   inquiry bezeichnet. Inquiry sowie andere mit HCI in Verbindung
   stehende Funktionen werden von hccontrol(8) zur Verfu:gung
   gestellt. Das folgende Beispiel zeigt, wie man herausfindet,
   welche Bluetooth-Gera:te sich in Reichweite befinden. Eine solche
   Abfrage dauert nur wenige Sekunden. Beachten Sie, dass ein Gera:t
   nur dann antwortet, wenn es sich im Modus discoverable befindet.

 % hccontrol -n ubt0hci inquiry
 Inquiry result, num_responses=1
 Inquiry result #0
        BD_ADDR: 00:80:37:29:19:a4
        Page Scan Rep. Mode: 0x1
        Page Scan Period Mode: 00
        Page Scan Mode: 00
        Class: 52:02:04
        Clock offset: 0x78ef
 Inquiry complete. Status: No error [00]

   BD_ADDR stellt, a:hnlich der MAC-Adresse einer Netzwerkkarte, die
   eindeutige Adresse eines Bluetooth-Gera:tes dar. Diese Adresse ist
   fu:r die Kommunikation mit dem Gera:t no:tig. Es ist aber auch
   mo:glich, BD_ADDR einen Klartextnamen zuzuweisen. Die Datei
   /etc/bluetooth/hosts entha:lt Informationen u:ber die bekannten
   Bluetooth-Rechner. Das folgende Beispiel zeigt, wie man den
   Klartextnamen eines entfernten Gera:ts in Erfahrung bringen kann:

 % hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
 BD_ADDR: 00:80:37:29:19:a4
 Name: Pav's T39

   Wenn Sie ein entferntes Bluetooth-Gera:t abfragen, wird dieses
   Ihren Rechner unter dem Namen "your.host.name (ubt0)" finden.
   Dieser Name kann aber jederzeit gea:ndert werden.

   Bluetooth ermo:glicht Punkt-zu-Punkt-Verbindungen (an denen nur
   zwei Bluetooth-Gera:te beteiligt sind), aber auch
   Punkt-zu-Multipunkt-Verbindungen, bei denen eine Verbindung von
   mehreren Bluetooth-Gera:ten gemeinsam genutzt wird. Das folgende
   Beispiel zeigt, wie man die aktiven Basisbandverbindungen des
   lokalen Gera:tes anzeigen kann:

 % hccontrol -n ubt0hci read_connection_list
 Remote BD_ADDR    Handle Type Mode Role Encrypt Pending Queue State
 00:80:37:29:19:a4     41  ACL    0 MAST    NONE       0     0 OPEN

   Ein connection handle ist fu:r die Beendigung einer
   Basisbandverbindung nu:tzlich. Im Normalfall werden inaktive
   Verbindungen aber automatisch vom Bluetooth-Stack getrennt.

 # hccontrol -n ubt0hci disconnect 41
 Connection handle: 41
 Reason: Connection terminated by local host [0x16]

   Rufen Sie hccontrol help auf, wenn Sie eine komplette Liste aller
   verfu:gbaren HCI-Befehle beno:tigen. Die meisten dieser Befehle
   mu:ssen nicht als root ausgefu:hrt werden.

     --------------------------------------------------------------

  32.4.4. Das Logical Link Control and Adaptation Protocol (L2CAP)

   Das Logical Link Control and Adaptation Protocol (L2CAP) bietet
   ho:herwertigen Protokollen verbindungsorientierte und
   verbindungslose Datendienste an. Dazu geho:ren auch
   Protokollmultiplexing, Segmentierung und Reassemblierung. L2CAP
   erlaubt ho:herwertigen Protokollen und Programmen den Versand und
   Empfang von L2CAP-Datenpaketen mit einer La:nge von bis zu 64
   Kilobytes.

   L2CAP arbeitet kanalbasiert. Ein Kanal ist eine logische
   Verbindung innerhalb einer Basisbandverbindung. Jeder Kanal ist
   dabei an ein einziges Protokoll gebunden. Mehrere Gera:te ko:nnen
   an das gleiche Protokoll gebunden sein, es ist aber nicht
   mo:glich, einen Kanal an mehrere Protokolle zu binden. Jedes u:ber
   einen Kanal ankommende L2CAP-Paket wird an das entsprechende
   ho:herwertige Protokoll weitergeleitet. Mehrere Kana:le ko:nnen
   sich die gleiche Basisbandverbindung teilen.

   Eine einzelne Netgraph-Gera:tedatei vom Typ l2cap wird fu:r ein
   einzelnes Bluetooth-Gera:t erzeugt. Die L2CAP-Gera:tedatei ist
   normalerweise mit der Bluetooth-HCI-Gera:tedatei (downstream)
   sowie der Bluetooth-Socket-Gera:tedatei (upstream) verbunden. Der
   Standardname fu:r die L2CAP-Gera:tedatei, die in ng_l2cap(4)
   beschrieben wird, lautet "devicel2cap".

   Ein nu:tzlicher Befehl zum Anpingen von anderen Gera:ten ist
   l2ping(8). Einige Bluetooth-Gera:te senden allerdings nicht alle
   erhaltenen Daten zuru:ck. Die Ausgabe 0 bytes ist also kein
   Fehler:

 # l2ping -a 00:80:37:29:19:a4
 0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
 0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
 0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
 0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0

   Das Programm l2control(8) liefert Informationen u:ber
   L2CAP-Dateien. Das folgende Beispiel zeigt, wie man die Liste der
   logischen Verbindungen (Kana:le) sowie die Liste der
   Basisbandverbindungen abfragen kann:

 % l2control -a 00:02:72:00:d4:1a read_channel_list
 L2CAP channels:
 Remote BD_ADDR     SCID/ DCID   PSM  IMTU/ OMTU State
 00:07:e0:00:0b:ca    66/   64     3   132/  672 OPEN
 % l2control -a 00:02:72:00:d4:1a read_connection_list
 L2CAP connections:
 Remote BD_ADDR    Handle Flags Pending State
 00:07:e0:00:0b:ca     41 O           0 OPEN

   btsockstat(1) ist ein weiteres Diagnoseprogramm. Es funktioniert
   analog zu netstat(1), arbeitet aber mit Bluetooth-Datenstrukturen.
   Das folgende Beispiel zeigt die gleiche Liste der logischen
   Verbindungen wie l2control(8) im vorherigen Beispiel.

 % btsockstat
 Active L2CAP sockets
 PCB      Recv-Q Send-Q Local address/PSM       Foreign address   CID   State
 c2afe900      0      0 00:02:72:00:d4:1a/3     00:07:e0:00:0b:ca 66    OPEN
 Active RFCOMM sessions
 L2PCB    PCB      Flag MTU   Out-Q DLCs State
 c2afe900 c2b53380 1    127   0     Yes  OPEN
 Active RFCOMM sockets
 PCB      Recv-Q Send-Q Local address     Foreign address   Chan DLCI State
 c2e8bc80      0    250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3    6    OPEN

     --------------------------------------------------------------

  32.4.5. Das RFCOMM-Protokoll

   Das RFCOMM-Protokoll emuliert serielle Verbindungen u:ber das
   L2CAP-Protokoll. Es basiert auf dem ETSI-Standard TS 07.10. Bei
   RFCOMM handelt es sich um ein einfaches Transportprotokoll, das um
   Funktionen zur Emulation der 9poligen Schaltkreise von mit RS-232
   (EIATIA-232-E) kompatiblen seriellen Ports erga:nzt wurde. RFCOMM
   erlaubt bis zu 60 simultane Verbindungen (RFCOMM-Kana:e) zwischen
   zwei Bluetooth-Gera:ten.

   Eine RFCOMM-Kommunikation besteht aus zwei Anwendungen (den
   Kommunikationsendpunkten), die u:ber das Kommunikationssegment
   miteinander verbunden sind. RFCOMM unterstu:tzt Anwendungen, die
   auf serielle Ports angewiesen sind. Das Kommunikationssegment
   entspricht der (direkten) Bluetooth-Verbindung zwischen den beiden
   Gera:ten.

   RFCOMM ku:mmert sich um die direkte Verbindung von zwei Gera:ten,
   oder um die Verbindung zwischen einem Gera:t und einem Modem
   (Netzwerkverbindung). RFCOMM unterstu:tzt auch andere
   Konfigurationen. Ein Beispiel dafu:r sind Module, die drahtlose
   Bluetooth-Gera:te mit einer verkabelten Schnittstelle verbinden
   ko:nnen.

   Unter FreeBSD wurde das RFCOMM-Protokoll im Bluetooth Socket-Layer
   implementiert.

     --------------------------------------------------------------

  32.4.6. Erstmaliger Verbindungsaufbau zwischen zwei Bluetooth-Gera:ten
  (Pairing)

   In der Voreinstellung nutzt Bluetooth keine Authentifizierung,
   daher kann sich jedes Bluetoothgera:t mit jedem anderen Gera:t
   verbinden. Ein Bluetoothgera:t (beispielsweise ein Mobiltelefon)
   kann jedoch fu:r einen bestimmten Dienst (etwa eine
   Einwa:hlverbindung) eine Authentifizierung anfordern. Bluetooth
   verwendet zu diesem Zweck PIN-Codes. Ein PIN-Code ist ein maximal
   16 Zeichen langer ASCII-String. Damit eine Verbindung zustande
   kommt, muss auf beiden Gera:ten der gleiche PIN-Code verwendet
   werden. Nachdem der Code eingegeben wurde, erzeugen beide Gera:te
   einen link key, der auf den Gera:ten gespeichert wird. Beim
   na:chsten Verbindungsaufbau wird der zuvor erzeugte Link Key
   verwendet. Diesen Vorgang bezeichnet man als Pairing. Geht der
   Link Key auf einem Gera:t verloren, muss das Pairing wiederholt
   werden.

   Der hcsecd(8)-Daemon verarbeitet alle
   Bluetooth-Authentifzierungsanforderungen und wird u:ber die Datei
   /etc/bluetooth/hcsecd.conf konfiguriert. Der folgende Ausschnitt
   dieser Datei zeigt die Konfiguration fu:r ein Mobiltelefon, das
   den PIN-Code "1234" verwendet:

 device {
         bdaddr  00:80:37:29:19:a4;
         name    "Pav's T39";
         key     nokey;
         pin     "1234";
       }

   Von der La:nge abgesehen, unterliegen PIN-Codes keinen
   Einschra:nkungen. Einige Gera:te, beispielsweise
   Bluetooth-Headsets, haben einen festen PIN-Code eingebaut. Die
   Option -d sorgt dafu:r, dass der hcsecd(8)-Daemon im Vordergrund
   la:uft. Dadurch kann der Ablauf einfach verfolgt werden. Stellen
   Sie das entfernte Gera:t auf receive pairing und initiieren Sie
   die Bluetoothverbindung auf dem entfernten Gera:t. Sie erhalten
   die Meldung, dass Pairing akzeptiert wurde und der PIN-Code
   beno:tigt wird. Geben Sie den gleichen PIN-Code ein, den Sie in
   hcsecd.conf festgelegt haben. Ihr Computer und das entfernte
   Gera:t sind nun miteinander verbunden. Alternativ ko:nnen Sie das
   Pairing auch auf dem entfernten Gera:t initiieren.

   hcsecd kann durch das Einfu:gen der folgenden Zeile in
   /etc/rc.conf beim Systemstart automatisch aktiviert werden:

 hcsecd_enable="YES"

   Es folgt nun eine beispielhafte Ausgabe des hcsecd-Daemons:

 hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
 hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
 hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
 hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4

     --------------------------------------------------------------

  32.4.7. Das Service Discovery Protocol (SDP)

   Das Service Discovery Protocol (SDP) erlaubt es Clientanwendungen,
   von Serveranwendungen angebotene Dienste sowie deren Eigenschaften
   abzufragen. Zu diesen Eigenschaften geho:ren die Art oder die
   Klasse der angebotenen Dienste sowie der Mechanismus oder das
   Protokoll, die zur Nutzung des Dienstes notwendig sind.

   SDP ermo:glicht Verbindungen zwischen einem SDP-Server und einem
   SDP-Client. Der Server entha:lt eine Liste mit den Eigenschaften
   der vom Server angebotenen Dienste. Jeder Eintrag beschreibt
   jeweils einen einzigen Serverdienst. Ein Client kann diese
   Informationen durch eine SDP-Anforderung vom SDP-Server beziehen.
   Wenn der Client oder eine Anwendung des Clients einen Dienst
   nutzen will, muss eine seperate Verbindung mit dem Dienstanbieter
   aufgebaut werden. SDP bietet einen Mechanismus zum Auffinden von
   Diensten und deren Eigenschaften an, es bietet aber keine
   Mechanismen zur Verwendung dieser Dienste.

   Normalerweise sucht ein SDP-Client nur nach Diensten, die
   bestimmte geforderte Eigenschaften erfu:llen. Es ist aber auch
   mo:glich, anhand der Dienstbeschreibungen eine allgemeine Suche
   nach den von einem Server angebotenen Diensten durchzufu:hren.
   Diesen Vorgang bezeichnet man als Browsing.

   Der Bluetooth-SDP-Server sdpd(8) und der Kommandozeilenclient
   sdpcontrol(8) sind bereits in der Standardinstallation von FreeBSD
   enthalten. Das folgende Beispiel zeigt, wie eine SDP-Abfrage
   durchgefu:hrt wird:

 % sdpcontrol -a 00:01:03:fc:6e:ec browse
 Record Handle: 00000000
 Service Class ID List:
         Service Discovery Server (0x1000)
 Protocol Descriptor List:
         L2CAP (0x0100)
                 Protocol specific parameter #1: u/int/uuid16 1
                 Protocol specific parameter #2: u/int/uuid16 1

 Record Handle: 0x00000001
 Service Class ID List:
         Browse Group Descriptor (0x1001)

 Record Handle: 0x00000002
 Service Class ID List:
         LAN Access Using PPP (0x1102)
 Protocol Descriptor List:
         L2CAP (0x0100)
         RFCOMM (0x0003)
                 Protocol specific parameter #1: u/int8/bool 1
 Bluetooth Profile Descriptor List:
         LAN Access Using PPP (0x1102) ver. 1.0

   ... und so weiter. Beachten Sie, dass jeder Dienst eine Liste
   seiner Eigenschaften (etwa den RFCOMM-Kanal) zuru:ckgibt. Je nach
   dem, welche Dienste Sie beno:tigen, sollten Sie sich einige dieser
   Eigenschaften notieren. Einige Bluetooth-Implementationen
   unterstu:tzen kein Service Browsing und geben daher eine leere
   Liste zuru:ck. Ist dies der Fall, ist es dennoch mo:glich, nach
   einem bestimmten Dienst zu suchen. Das folgende Beispiel
   demonstriert die Suche nach dem OBEX Object Push (OPUSH) Dienst:

 % sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH

   Unter FreeBSD ist es die Aufgabe des sdpd(8)-Servers,
   Bluetooth-Clients verschiedene Dienste anzubieten. Sie ko:nnen
   diesen Server durch das Einfu:gen der folgenden Zeile in die Datei
   /etc/rc.conf aktivieren:

 sdpd_enable="YES"

   Nun kann der sdpd-Daemon durch folgene Eingabe gestartet werden:

 # /etc/rc.d/sdpd start

   Der lokale Server, der den entfernten Clients Bluetooth-Dienste
   anbieten soll, bindet diese Dienste an den lokalen SDP-Daemon. Ein
   Beispiel fu:r eine solche Anwendung ist rfcomm_pppd(8). Einmal
   gestartet, wird der Bluetooth-LAN-Dienst an den lokalen SDP-Daemon
   gebunden.

   Die Liste der vorhandenen Dienste, die am lokalen SDP-Server
   registriert sind, la:sst sich durch eine SDP-Abfrage u:ber einen
   lokalen Kontrollkanal abfragen:

 # sdpcontrol -l browse

     --------------------------------------------------------------

  32.4.8. Einwahlverbindungen (Dial-Up Networking (DUN)) oder
  Netzwerkverbindungen mit PPP (LAN)-Profilen einrichten

   Das Dial-Up Networking (DUN)-Profil wird vor allem fu:r Modems und
   Mobiltelefone verwendet. Dieses Profil ermo:glicht folgende
   Szenarien:

     * Die Verwendung eines Mobiltelefons oder eines Modems durch
       einen Computer als drahtloses Modem, um sich u:ber einen
       Einwahlprovider mit dem Internet zu verbinden oder andere
       Einwahldienste zu benutzen.

     * Die Verwendung eines Mobiltelefons oder eines Modems durch
       einen Computers, um auf Datenabfragen zu reagieren.

   Der Zugriff auf ein Netzwerk u:ber das PPP (LAN)-Profil kann in
   folgenden Situationen verwendet werden:

     * Den LAN-Zugriff fu:r ein einzelnes Bluetooth-Gera:t

     * Den LAN-Zugriff fu:r mehrere Bluetooth-Gera:te

     * Eine PC-zu-PC-Verbindung (unter Verwendung einer
       PPP-Verbindung u:ber eine emulierte serielle Verbindung)

   Beide Profile werden unter FreeBSD durch ppp(8) sowie
   rfcomm_pppd(8) implementiert - einem Wrapper, der RFCOMM
   Bluetooth-Verbindungen unter PPP nutzbar macht. Bevor ein Profil
   verwendet werden kann, muss ein neuer PPP-Abschnitt in
   /etc/ppp/ppp.conf erzeugt werden. Beispielkonfigurationen zu
   diesem Thema finden Sie in rfcomm_pppd(8).

   Im folgenden Beispiel verwenden wir rfcomm_pppd(8), um eine
   RFCOMM-Verbindung zu einem entfernten Gera:t mit der BD_ADDR
   00:80:37:29:19:a4 auf dem RFCOMM-Kanal DUN aufzubauen. Die
   aktuelle RFCOMM-Kanalnummer erhalten Sie vom entfernten Gera:t
   u:ber SDP. Es ist auch mo:glich, manuell einen RFCOMM-Kanal
   festzulegen. In diesem Fall fu:hrt rfcomm_pppd(8) keine
   SDP-Abfrage durch. Verwenden Sie sdpcontrol(8), um die
   RFCOMM-Kana:le des entfernten Gera:ts herauszufinden.

 # rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup

   Der sdpd(8)-Server muss laufen, damit ein Netzzugriff mit dem PPP
   (LAN)-Profil mo:glich ist. Ausserdem muss fu:r den LAN-Client ein
   neuer Eintrag in /etc/ppp/ppp.conf erzeugt werden.
   Beispielkonfigurationen zu diesem Thema finden Sie in
   rfcomm_pppd(8). Danach starten Sie den RFCOMM PPP-Server u:ber
   eine gu:ltige RFCOMM-Kanalnummer. Der RFCOMM PPP-Server bindet
   dadurch den Bluetooth-LAN-Dienst an den lokalen SDP-Daemon. Das
   folgende Beispiel zeigt Ihnen, wie man den RFCOMM PPP-Server
   startet.

 # rfcomm_pppd -s -C 7 -l rfcomm-server

     --------------------------------------------------------------

  32.4.9. Das Profil OBEX-Push (OPUSH)

   OBEX ist ein ha:ufig verwendetes Protokoll fu:r den Dateitransfer
   zwischen Mobilgera:ten. Sein Hauptzweck ist die Kommunikation
   u:ber die Infrarotschnittstelle. Es dient daher zum Datentransfer
   zwischen Notebooks oder PDAs sowie zum Austausch von Visitenkarten
   oder Kalendereintra:gen zwischen Mobiltelefonen und anderen
   Gera:ten mit PIM-Funktionen.

   Server und Client von OBEX werden durch das Softwarepaket obexapp
   bereitgestellt, das als Port comms/obexapp verfu:gbar ist.

   Mit dem OBEX-Client werden Objekte zum OBEX-Server geschickt oder
   angefordert. Ein Objekt kann etwa eine Visitenkarte oder ein
   Termin sein. Der OBEX-Client fordert u:ber SDP die Nummer des
   RFCOMM-Kanals vom entfernten Gera:t an. Dies kann auch durch die
   Verwendung des Servicenamens anstelle der RFCOMM-Kanalnummer
   erfolgen. Folgende Dienste werden unterstu:tzt: IrMC, FTRN und
   OPUSH. Es ist mo:glich, den RFCOMM-Kanal als Nummer anzugeben. Es
   folgt nun ein Beispiel fu:r eine OBEX-Sitzung, bei der ein
   Informationsobjekt vom Mobiltelefon angefordert und ein neues
   Objekt (hier eine Visitenkarte) an das Telefonbuch des
   Mobiltelefons geschickt wird:

 % obexapp -a 00:80:37:29:19:a4 -C IrMC
 obex> get telecom/devinfo.txt
 Success, response: OK, Success (0x20)
 obex> put new.vcf
 Success, response: OK, Success (0x20)
 obex> di
 Success, response: OK, Success (0x20)

   Um OBEX-Push-Dienste anbieten zu ko:nnen, muss der sdpd-Server
   gestartet sein. Ein Wurzelverzeichnis, in dem alle ankommenden
   Objekt gespeichert werden, muss zusa:tzlich angelegt werden. In
   der Voreinstellung ist dies /var/spool/obex. Starten Sie den
   OBEX-Server mit einer gu:ltigen Kanalnummer. Der OBEX-Server
   registriert nun den OBEX-Push-Dienst mit dem lokalen SDP-Daemon.
   Um den OBEX-Server zu starten, geben Sie Folgendes ein:

 # obexapp -s -C 10

     --------------------------------------------------------------

  32.4.10. Das Profil Serial-Port (SPP)

   Durch dieses Profil ko:nnen Bluetooth-Gera:te RS232- (oder damit
   kompatible) serielle Kabelverbindungen emulieren. Anwendungen sind
   dadurch in der Lage, u:ber eine virtuelle serielle Verbindung
   Bluetooth als Ersatz fu:r eine Kabelverbindung zu nutzen.

   Das Profil Serial-Port wird durch rfcomm_sppd(1) verwirklicht.
   Pseudo-tty wird hier als virtuelle serielle Verbindung verwendet.
   Das folgende Beispiel zeigt, wie man sich mit einem entfernten
   Serial-Port-Dienst verbindet. Beachten Sie, dass Sie den
   RFCOMM-Kanal nicht angeben mu:ssen, da rfcomm_sppd(1) diesen u:ber
   SDP vom entfernten Gera:t abfragen kann. Wenn Sie dies nicht
   wollen, ko:nnen Sie einen RFCOMM-Kanal auch manuell festlegen.

 # rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
 rfcomm_sppd[94692]: Starting on /dev/ttyp6...

   Sobald die Verbindung hergestellt ist, kann pseudo-tty als
   serieller Port verwenden werden.

 # cu -l ttyp6

     --------------------------------------------------------------

  32.4.11. Problembehandlung

    32.4.11.1. Ein entferntes Gera:t kann keine Verbindung aufbauen

   Einige a:ltere Bluetooth-Gera:te unterstu:tzen keinen
   Rollentausch. Wenn FreeBSD eine neue Verbindung akzeptiert, wird
   versucht, die Rolle zu tauschen, um zum Master zu werden. Gera:te,
   die dies nicht unterstu:tzen, ko:nnen keine Verbindung aufbauen.
   Beachten Sie, dass der Rollentausch ausgefu:hrt wird, sobald eine
   neue Verbindung aufgebaut wird, daher ist es nicht mo:glich, das
   entfernte Gera:t zu fragen, ob es den Rollentausch unterstu:tzt.
   Dieses Verhalten von FreeBSD kann aber durch eine HCI-Option
   gea:ndert werden:

 # hccontrol -n ubt0hci write_node_role_switch 0

     --------------------------------------------------------------

    32.4.11.2. Wo finde ich genaue Informationen daru:ber, was
    schiefgelaufen ist?

   Verwenden Sie hcidump, das Sie u:ber den Port comms/hcidump
   installieren ko:nnen. hcidump hat A:hnlichkeiten mit tcpdump(1).
   Es dient zur Anzeige der Bluetooth-Pakete in einem Terminal oder
   zur Speicherung der Pakete in einer Datei (Dump).

     --------------------------------------------------------------

32.5. LAN-Kopplung mit einer Bridge

   Geschrieben von Andrew Thompson.

  32.5.1. Einfu:hrung

   Manchmal ist es nu:tzlich, ein physikalisches Netzwerk (wie ein
   Ethernetsegment) in zwei separate Netzwerke aufzuteilen, ohne
   gleich IP-Subnetze zu erzeugen, die u:ber einen Router miteinander
   verbunden sind. Ein Gera:t, das zwei Netze auf diese Weise
   verbindet, wird als Bridge bezeichnet. Jedes FreeBSD-System mit
   zwei Netzwerkkarten kann als Bridge fungieren.

   Die Bridge arbeitet, indem sie die MAC Layeradressen (Ethernet
   Adressen) der Gera:te in ihren Netzwerksegmenten lernt. Der
   Verkehr wird nur dann zwischen zwei Segmenten weitergeleitet, wenn
   sich Sender und Empfa:nger in verschiedenen Netzwerksegmenten
   befinden.

   In vielerlei Hinsicht entspricht eine Bridge daher einem
   Ethernet-Switch mit sehr wenigen Ports.

     --------------------------------------------------------------

  32.5.2. Situationen, in denen Bridging angebracht ist

   Es gibt zahlreiche Situationen, in denen der Einsatz einer Bridge
   sinnvoll ist:

     --------------------------------------------------------------

    32.5.2.1. Verbinden von Netzwerken

   Die Hauptaufgabe einer Bridge ist die Verbindung von zwei oder
   mehreren Netzwerksegmenten zu einem gemeinsamen Netzwerk. Es ist
   oft sinnvoller, eine hostbasierte Bridge anstelle normaler
   Netzwerkkomponenten (wie Kabelverbindungen), Firewalls oder
   Pseudonetzwerken u:ber die Schnittstelle einer virtuellen Maschine
   einzusetzen. Eine Bridge kann ausserdem ein drahtloses Gera:t mit
   einem Kabelnetzwerk verbinden. Diese Fa:higkeit der Bridge wird
   als HostAP-Modus bezeichnet. Die Bridge agiert in diesem Fall als
   Access Point fu:r das drahtlose Gera:t.

     --------------------------------------------------------------

    32.5.2.2. Filtering/Traffic Shaping Firewall

   Ha:ufig kommt es vor, dass Firewallfunktionen beno:tigt werden,
   ohne dass Routing oder Network Adress Translation (NAT) verwendet
   werden soll.

   Ein Beispiel dafu:r wa:re ein kleines Unternehmen, das u:ber DSL
   oder ISDN an seinen ISP angebunden ist. Es verfu:gt u:ber 13
   weltweit erreichbare IP-Adressen, sein Netzwerk besteht aus 10
   Rechnern. In dieser Situation ist der Einsatz von Subnetzen sowie
   einer routerbasierten Firewall schwierig.

   Eine brigdebasierte Firewall kann konfiguriert und in den
   ISDN/DSL-Downstreampfad ihres Routers eingebunden werden, ohne
   dass Sie sich um IP-Adressen ku:mmern mu:ssen.

     --------------------------------------------------------------

    32.5.2.3. Netzwerku:berwachung

   Eine Bridge kann zwei Netzwerksegmente miteinander verbinden und
   danach alle Ethernet-Rahmen u:berpru:fen, die zwischen den beiden
   Netzwerksegmenten ausgetauscht werden. Dazu verwendet man entweder
   bpf(4)/tcpdump(1) auf dem Netzgera:t der Bridge oder schickt
   Kopien aller Rahmen an ein zusa:tzliches Netzgera:t (den
   sogenannten Span Port).

     --------------------------------------------------------------

    32.5.2.4. Layer 2-VPN

   Zwei Ethernetnetzwerke ko:nnen u:ber einen IP-Link miteinander
   verbunden werden, indem Sie die beiden Netzwerke u:ber einen
   EtherIP-Tunnel koppeln oder eine tap(4)-basierte Lo:sung wie
   OpenVPN einsetzen.

     --------------------------------------------------------------

    32.5.2.5. Layer 2-Redundanz

   Die Systeme eines Netzwerks ko:nnen redundant miteinander
   verbunden sein. In diesem Fall verwenden Sie das Spanning Tree
   Protocol, um redundante Pfade zu blockieren. Damit ein
   Ethernetnetzwerk korrekt arbeitet, darf immer nur ein aktiver Pfad
   zwischen zwei Gera:ten des Netzwerks existieren. Aufgabe des
   Spanning Tree Protocols ist es daher, Schleifen zu entdecken und
   redundante Links in den Status blockiert zu versetzen. Fa:llt ein
   aktiver Link aus, so berechnet das Protokoll einen neuen Pfad.
   Dazu wird ein blockierter Pfad in den Status aktiv versetzt, damit
   alle Systeme des Netzwerks wieder miteinander kommunizieren
   ko:nnen.

     --------------------------------------------------------------

  32.5.3. Kernelkonfiguration

   Dieser Abschnitt beschreibt nur die
   if_bridge(4)-Bridge-Implementierung. Ein Netgraph-Bridge-Treiber
   ist ebenfalls verfu:gbar, wird hier aber nicht behandelt. Lesen
   Sie die Manualpage ng_bridge(4), wenn Sie diesen Treiber einsetzen
   wollen.

   Bei diesem Treiber handelt es sich um ein Kernelmodul, das von
   ifconfig(8) automatisch geladen wird, wenn ein Bridge-Interface
   erzeugt wird. Alternativ ist es aber auch mo:glich, die
   Unterstu:tzung fu:r den Treiber in Ihren Kernel zu kompilieren.
   Dazu fu:gen Sie die Zeile device if_bridge in Ihre
   Kernelkonfigurationsdatei ein und bauen danach den Kernel neu.

   Paketfilter ko:nnen mit allen Firewallpaketen verwendet werden,
   die das pfil(9)-Framework benutzen. Die Firewall kann dabei
   entweder als Kernelmodul geladen oder in den Kernel kompiliert
   werden.

   Eine Bridge kann auch als Traffic Shaper verwendet werden, wenn
   Sie altq(4) oder dummynet(4) einsetzen.

     --------------------------------------------------------------

  32.5.4. Die LAN-Kopplung aktivieren

   Eine Bridge wird durch das Klonen von Schnittstellen erzeugt. Um
   eine Bridge zu erzeugen, verwenden Sie den Befehl ifconfig(8). Ist
   der Bridge-Treiber nicht in Ihren Kernel kompiliert, wird er
   automatisch geladen.

 # ifconfig bridge create
 bridge0
 # ifconfig bridge0
 bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
         ether 96:3d:4b:f1:79:7a
         id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
         maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
         root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0

   Im obigen Beispiel wird die Bridge erzeugt und erha:lt automatisch
   eine zufa:llig generierte Ethernet-Adresse zugewiesen. Die
   Parameter maxaddr sowie timeout legen fest, wie viele MAC-Adressen
   die Bridge in ihrer Forward-Tabelle halten kann beziehungsweise
   wie viele Sekunden jeder Eintrag erhalten bleiben soll, nachdem er
   zuletzt verwendet wurde. Die restlichen Parameter sind fu:r die
   Konfiguration von Spanning Tree notwendig.

   Im na:chsten Schritt werden die Schnittstellen, die die Bridge
   verbinden soll, zugewiesen. Damit die Bridge Datenpakete
   weiterleiten kann, mu:ssen sowohl die Bridge als auch die
   Schnittstellen (der zu verbindenden Netzwerksegmente) aktiviert
   sein:

 # ifconfig bridge0 addm fxp0 addm fxp1 up
 # ifconfig fxp0 up
 # ifconfig fxp1 up

   Danach ist die Bridge in der Lage, Ethernet-Rahmen zwischen den
   Schnittstellen fxp0 und fxp1 weiterzuleiten. Um diese
   Konfiguration beim Systemstart automatisch zu aktivieren, mu:ssen
   Sie folgende Eintra:ge in die Datei /etc/rc.conf aufnehmen:

 cloned_interfaces="bridge0"
 ifconfig_bridge0="addm fxp0 addm fxp1 up"
 ifconfig_fxp0="up"
 ifconfig_fxp1="up"

   Beno:tigen Sie fu:r die Bridge eine IP-Adresse, mu:ssen Sie diese
   der Schnittstelle der Bridge zuweisen (und nicht einer der
   Schnittstellen der gekoppelten Netzwerksegmente). Dabei ko:nnen
   Sie die IP-Adresse sowohl statisch als auch dynamisch u:ber DHCP
   zuweisen:

 # ifconfig bridge0 inet 192.168.0.1/24

   Sie ko:nnen der Bridge-Schnittstelle auch eine IPv6-Adresse
   zuweisen.

     --------------------------------------------------------------

  32.5.5. Firewalls

   Nachdem ein Paketfilter aktiviert wurde, ko:nnen Datenpakete, die
   von den Schnittstellen der gekoppelten Netzwerksegmente gesendet
   und empfangen werden, u:ber die Bridge weitergeleitet oder nach
   bestimmten Regeln gefiltert oder auch komplett geblockt werden.
   Ist die Richtung des Paketflusses wichtig, ist es am besten, eine
   Firewall auf den Schnittstellen der einzelnen Netzwerksegmente
   einzurichten und nicht auf der Bridge selbst.

   Eine Bridge verfu:gt u:ber verschiedene Optionen, u:ber die Sie
   die Weiterleitung von Nicht-IP- und ARP-Paketen sowie den Einsatz
   von Layer 2-Firewalls (mit IPFW) steuern ko:nnen. Lesen Sie die
   Manualpage if_bridge(4), wenn Sie diese Funktionen beno:tigen.

     --------------------------------------------------------------

  32.5.6. Spanning Tree

   Der Bridge-Treiber implementiert das Rapid Spanning Tree Protocol
   (RSTP oder 802.1w), das abwa:rtskompatibel zum veralteten Spanning
   Tree Protocol (STP) ist. Spanning Tree dient dazu, Schleifen in
   einer Netzwerktopologie zu entdecken und zu entfernen. RSTP
   arbeitet dabei schneller als das veraltete STP. RSTP tauscht
   Informationen mit benachbarten Switchen aus, um Pakete korrekt
   weiterzuleiten und eine Schleifenbildung zu verhindern.

   FreeBSD unterstu:tzt die Betriebsmode RSTP sowie STP, von denen
   RSTP als Standardmodus voreingestellt ist.

   Spanning Tree kann auf den Schnittstellen der durch die Bridge
   verbundenen Netzwerksegmente u:ber die Option stp aktiviert
   werden. Fu:r eine Bridge, die die Schnittstellen fxp0 und fxp1
   verbindet, aktivieren Sie STP wie folgt:

 # ifconfig bridge0 stp fxp0 stp fxp1
 bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         ether d6:cf:d5:a0:94:6d
         id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
         maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
         root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
         member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
                 port 3 priority 128 path cost 200000 proto rstp
                 role designated state forwarding
         member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
                 port 4 priority 128 path cost 200000 proto rstp
                 role designated state forwarding

   Diese Bridge hat die Spanning-Tree-ID 00:01:02:4b:d4:50 und die
   Priorita:t 32768. Da diese ID mit der Root-ID identisch ist,
   handelt es sich um die Root-Bridge dieses Netzwerks.

   Auf einer anderen Bridge des Netzwerks ist Spanning Tree ebenfalls
   aktiviert:

 bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         ether 96:3d:4b:f1:79:7a
         id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
         maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
         root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
         member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
                 port 4 priority 128 path cost 200000 proto rstp
                 role root state forwarding
         member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
                 port 5 priority 128 path cost 200000 proto rstp
                 role designated state forwarding

   Die Zeile root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000
   port 4 zeigt an, dass die Root-Bridge wie im obigen Beispiel die
   ID 00:01:02:4b:d4:50 hat. Die Pfadkosten hin zur Root-Bridge
   betragen 400000, wobei der Pfad zur Root-Bridge u:ber Port 4 geht
   (der wiederum der Schnittstelle fxp0 entspricht).

     --------------------------------------------------------------

  32.5.7. Fortgeschrittene Funktionen

    32.5.7.1. Den Datenfluss rekonstruieren

   Die Bridge unterstu:tzt den Monitormodus. Dabei werden alle Pakete
   verworfen, nachdem sie von bpf(4) verarbeitet wurden. In diesem
   Modus erfolgt keine weitere Bearbeitung und auch keine
   Weiterleitung von Datenpaketen. Es ist daher mo:glich, die Eingabe
   von zwei oder mehr Netzwerkschnittstellen in einen einzigen
   gemeinsamen bpf(4)-Stream zu vereinen. Ein solcher Datenstrom ist
   beispielsweise nu:tzlich, um den Datenverkehr fu:r ""network
   taps"" zu rekonstruieren, die ihre RX/TX-Signale u:ber
   verschiedene Schnittstellen senden.

   Um die Eingabe von vier Netzwerkschnittstellen in einzigen
   gemeinsamen Datenstrom zu vereinen, geben Sie Folgendes ein:

 # ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
 # tcpdump -i bridge0

     --------------------------------------------------------------

    32.5.7.2. Span Ports

   Eine Kopie jedes Ethernet-Rahmens, der an der Bridge ankommt, wird
   u:ber einen festgelegten Span Port verschickt. Auf einer Bridge
   ko:nnen beliebig viele Span Ports festgelegt werden. Wird eine
   Schnittstelle als Span Port konfiguriert, kann sie nicht mehr als
   normaler Bridge-Port verwendet werden. Eine derartige
   Konfiguration ist beispielsweise sinnvoll, um den Datenverkehr,
   der in einem Netzwerk u:ber die Bridge la:uft, auf einen Rechner
   zu u:bertragen, der mit einem Span Port der Bridge verbunden ist.

   Um eine Kopie aller Ethernet-Rahmen u:ber die Schnittstelle fxp4
   zu verschicken, geben Sie Folgendes ein:

 # ifconfig bridge0 span fxp4

     --------------------------------------------------------------

    32.5.7.3. Private Schnittstellen

   Eine private Schnittstelle leitet keine Daten an einen Port
   weiter, bei dem es sich ebenfalls um eine private Schnittstelle
   handelt. Der Datenverkehr wird dabei komplett blockiert, auch
   Ethernet-Rahmen und ARP-Pakete werden nicht weitergeleitet. Wollen
   Sie hingegen nur spezifische Datenpakete blockieren, sollten Sie
   eine Firewall einsetzen.

     --------------------------------------------------------------

    32.5.7.4. Schnittstellen als sticky kennzeichnen

   Wenn die Schnittstelle eines u:ber eine Bridge verbundenen
   Netzwerksegments als sticky gekennzeichnet wird, werden alle
   dynamisch gelernten Adressen als statische Adressen behandelt,
   sobald sie in den Forward-Cache der Bridge aufgenommen wurden.
   Sticky-Eintra:ge werden niemals aus dem Cache entfernt oder
   ersetzt. Selbst dann nicht, wenn die Adresse von einer anderen
   Schnittstelle verwendet wird. Sie ko:nnen dadurch die Vorteile
   statischer Adresseintra:ge nutzen, ohne die Forward-Tabelle vor
   dem Einsatz der Bridge mit statischen Eintra:gen fu:llen zu
   mu:ssen. Clients, die sich in einem bestimmten von der Bridge
   verwalteten Segmente befinden, ko:nnen dabei nicht in ein anderes
   Segment wechseln.

   Ein weiteres Beispiel fu:r den Einsatz von Sticky-Adressen wa:re
   die Kombination einer Bridge mit mehreren VLANs, um einen Router
   zu konfigurieren, der in in der Lage ist, einzelne Kundennetzwerke
   voneinander zu trennen, ohne IP-Adressbereiche zu verschwenden.
   Fu:r das folgende Beispiel nehmen wir an, dass sich der Client
   CustomerA im VLAN vlan100 und der Client CustomerB im VLAN vlan101
   befinden. Die Bridge hat die IP-Adresse 192.168.0.1 und ist als
   Internet-Router konfiguriert.

 # ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
 # ifconfig bridge0 inet 192.168.0.1/24

   Beide Clients sehen 192.168.0.1 als Ihr Default-Gateway. Da der
   Bru:cken-Cache sticky ist, sind Sie nicht dazu in der Lage, die
   MAC-Adresse des anderen Kunden zu spoofen und dessen Datenverkehr
   abzufangen.

   Sie ko:nnen die Kommunikation zwischen den VLANs vollsta:ndig
   unterbinden, wenn Sie private Schnittstellen (oder eine Firewall)
   einsetzen:

 # ifconfig bridge0 private vlan100 private vlan101

   Die Kunden sind nun komplett voneinander isoliert und der
   komplette /24-Adressbereich kann zugewiesen werden, ohne dass Sie
   Subnetze einsetzen mu:ssen.

     --------------------------------------------------------------

    32.5.7.5. Adressen-Limitierung

   Die maximale mo:gliche Anzahl an eindeutigen MAC-Adressen hinter
   einer Schnittstelle kann festgelegt werden. Sobald das Limit
   erreicht ist, werden Pakete mit einer unbekannten Quell-Adresse
   solange verworfen, bis ein exisitierender Eintrag gelo:scht wird
   oder abla:uft.

   Das folgende Beispiel setzt die maximale Anzahl von Netzgera:ten
   fu:r CustomerA fu:r das VLAN vlan100 auf 10.

 # ifconfig bridge0 ifmaxaddr vlan100 10

     --------------------------------------------------------------

    32.5.7.6. SNMP-Monitoring

   Die Schnittstelle der Bridge sowie die STP-Parameter ko:nnen durch
   den bereits im Basissystem enthaltenen SNMP-Daemon u:berwacht
   werden. Die exportierten Bridge-MIBs entsprechen den
   IETF-Standards, daher ko:nnen Sie einen beliebigen SNMP-Client
   oder ein beliebiges Monitoring-Werkzeug einsetzen, um die
   beno:tigten Daten zu erhalten.

   Auf dem Rechner, auf dem die Bridge konfiguriert ist, aktivieren
   Sie die Zeile begemotSnmpdModulePath."bridge" =
   "/usr/lib/snmp_bridge.so" in der Datei /etc/snmp.config und
   starten danach den bsnmpd-Daemon. Eventuell beno:tigen Sie noch
   weitere Konfigurationsparameter wie Community-Namen und
   Zugriffslisten. Die Konfiguration dieser Parameter wird in den
   Manualpages bsnmpd(1) sowie snmp_bridge(3) beschrieben.

   Die folgenden Beispiele verwenden das Softwarepaket Net-SNMP
   (net-mgmt/net-snmp), um die Bridge abzufragen. Alternativ ko:nnen
   Sie dafu:r auch den Port net-mgmt/bsnmptools einsetzen. Auf dem
   SNMP-Client fu:gen Sie danach die folgenden Zeilen in die Datei
   $HOME/.snmp/snmp.conf ein, um die MIB-Definitionen der Bridge in
   Net-SNMP zu importieren:

 mibdirs +/usr/share/snmp/mibs
 mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB

   Um eine einzelne Bridge u:ber den IETF BRIDGE-MIB (RFC4188) zu
   u:berwachen, geben Sie Folgendes ein:

 % snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
 BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
 BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
 BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
 BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
 BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
 ...
 BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
 BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
 BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
 BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
 BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
 BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
 BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
 BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
 RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)

   Der Wert der Variable dot1dStpTopChanges.0 ist hier 2, die
   STP-Topologie der Bridge wurde also bereits zweimal gea:ndert.
   Unter einer A:nderung versteht man dabei die Anpassung eines oder
   mehrerer Links und die Kalkulation eines neuen Baums. Der Wert der
   Variable dot1dStpTimeSinceTopologyChange.0 gibt an, wann dies
   zuletzt geschah.

   Um mehrere Bridge-Schnittstellen zu u:berwachen, ko:nnen Sie den
   privaten BEGEMOT-BRIDGE-MIB einsetzen:

 % snmpwalk -v 2c -c public bridge1.example.com
 enterprises.fokus.begemot.begemotBridge
 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
 BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
 ...
 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
 BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
 BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
 BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9

   Um die u:ber den mib-2.dot1dBridge-Subtree u:berwachte
   Bridge-Schnittstelle zu a:ndern, geben Sie Folgendes ein:

 % snmpset -v 2c -c private bridge1.example.com
 BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2

     --------------------------------------------------------------

32.6. Link-Aggregation und Failover

   Geschrieben von Andrew Thompson. U:bersetzt von Benedict
   Reuschling und Sharon Bahagi.

     --------------------------------------------------------------

  32.6.1. Einleitung

   Die lagg(4)-Schnittstelle erlaubt die Aggregation von mehreren
   Netzwerkadaptern als eine virtuelle Schnittstelle mit dem Ziel,
   Ausfallsicherheit (Failover) und Hochgeschwindigkeitsverbindungen
   bereitzustellen.

     --------------------------------------------------------------

  32.6.2. Anwendungsoptionen

   Ausfallsicherheit (Failover)

           Sendet und empfa:ngt Netzwerkverkehr nur auf dem
           Masterport. Sollte der Masterport nicht zur Verfu:gung
           stehen, wird der na:chste aktive Port verwendet. Der
           zuerst hinzugefu:gte Adapter wird zum Masterport, jeder
           weitere Adapter dient als Gera:t zur Ausfallsicherheit.

   Cisco(R) Fast EtherChannel(R)

           Cisco Fast EtherChannel (FEC), ist eine statische
           Konfiguration und handelt weder Aggregation mit der
           Gegenstelle aus, noch werden Frames zur U:berwachung der
           Verbindung ausgetauscht. Wenn der Switch LACP
           unterstu:tzt, sollte diese Option auch verwendet werden.

           FEC balanciert den ausgehenden Verkehr u:ber die aktiven
           Ports, basierend auf gehashten
           Protokollheaderinformationen und akzeptiert eingehenden
           Verkehr auf jedem aktiven Port. Der Hash entha:lt die
           Ethernet-Quell- und Zieladresse, und, falls verfu:gbar,
           den VLAN-Tag, sowie die IPv4/IPv6 Quell- und Zieladresse.

   LACP

           Das IEEE 802.3ad Link-Aggregation Control Protokoll (LACP)
           und das Marker Protocol. LACP wird eine Menge von
           aggregierbaren Verbindungen mit der Gegenstelle in einer
           oder mehreren Link Aggregated Groups (LAG) aushandeln.
           Jede LAG besteht aus Ports der gleichen Geschwindigkeit,
           eingestellt auf Voll-Duplex-Betrieb. Der Verkehr wird
           u:ber die Ports in der LAG mit der gro:ssten
           Gesamtgeschwindigkeit balanciert, in den meisten Fa:llen
           wird es nur eine LAG geben, die alle Ports entha:lt. Im
           Falle von A:nderungen in der physischen Anbindung wird die
           Link-Aggregation schnell zu einer neuen Konfiguration
           konvergieren.

           LACP balanciert ausgehenden Verkehr u:ber die aktiven
           Ports basierend auf der gehashten
           Protokollheaderinformation und akzeptiert eingehenden
           Verkehr auf jedem aktiven Port. Der Hash beinhaltet die
           Ethernet-Quell- und Zieladresse, und, soweit verfu:gbar,
           den VLAN-Tag, sowie die IPv4/IPv6 Quell- und Zieladresse.

   Lastverteilung (Loadbalance)

           Dabei handelt es sich um einen Alias des FEC-Modus.

   Round-Robin

           Verteilt ausgehenden Verkehr mittels einer
           Round-Robin-Zuteilung u:ber alle aktiven Ports und
           akzeptiert eingehenden Verkehr auf jedem aktiven Port.
           Dieser Modus verletzt die Reihenfolge von Ethernet-Frames
           und sollte mit Vorsicht eingesetzt werden.

     --------------------------------------------------------------

  32.6.3. Beispiele

   Beispiel 32-1. LACP Aggregation mit einem Switch von Cisco(R)

   Dieses Beispiel verbindet zwei Adapter auf einer FreeBSD-Maschine
   mit dem Switch als eine einzelne, lastverteilte und ausfallsichere
   Verbindung. Weitere Adapter ko:nnen hinzugefu:gt werden, um den
   Durchsatz zu erho:hen und die Ausfallsicherheit zu steigern. Da
   die Reihenfolge der Frames bei Ethernet zwingend eingehalten
   werden muss, fliesst auch jeglicher Verkehr zwischen zwei
   Stationen u:ber den gleichen physischen Kanal, was die maximale
   Geschwindigkeit der Verbindung auf die eines einzelnen Adapters
   beschra:nkt. Der U:bertragungsalgorithmus versucht, so viele
   Informationen wie mo:glich zu verwenden, um die verschiedenen
   Verkehrsflu:sse zu unterscheiden und balanciert diese u:ber die
   verfu:gbaren Adapter.

   Fu:gen Sie auf dem Cisco-Switch die Adapter FastEthernet0/1 und
   FastEthernet0/2 zu der channel-group 1 hinzu:

 interface FastEthernet0/1
  channel-group 1 mode active
  channel-protocol lacp
 !
 interface FastEthernet0/2
  channel-group 1 mode active
  channel-protocol lacp

   Auf der Maschine mit FreeBSD erstellen Sie die
   lagg(4)-Schnittstelle unter Verwendung von fxp0 und fxp1:

 # ifconfig lagg0 create
 # ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1

   U:berpru:fen Sie den Status der Schnittstelle, indem Sie folgendes
   eingeben:

 # ifconfig lagg0

   Ports, die als ACTIVE markiert sind, sind Teil der aktiven
   Aggregations-Gruppe, die mit dem Switch ausgehandelt wurde und der
   Verkehr wird u:ber diese u:bertragen und empfangen. Benutzen Sie
   die ausfu:hrliche Ausgabe von ifconfig(8), um sich die
   LAG-Identifikatoren anzeigen zu lassen.

 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=8<VLAN_MTU>
         ether 00:05:5d:71:8d:b8
         media: Ethernet autoselect
         status: active
         laggproto lacp
         laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
         laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>

   Um den Status der Ports auf dem Switch anzuzeigen, geben Sie show
   lacp neighbor ein:

 switch# show lacp neighbor
 Flags:  S - Device is requesting Slow LACPDUs
         F - Device is requesting Fast LACPDUs
         A - Device is in Active mode       P - Device is in Passive mode

 Channel group 1 neighbors

 Partner's information:

                   LACP port                        Oper    Port     Port
 Port      Flags   Priority  Dev ID         Age     Key     Number   State
 Fa0/1     SA      32768     0005.5d71.8db8  29s    0x146   0x3      0x3D
 Fa0/2     SA      32768     0005.5d71.8db8  29s    0x146   0x4      0x3D

   Benutzen Sie das Kommando show lacp neighbor detail, um weitere
   Informationen zu erhalten.

   Beispiel 32-2. Ausfallsicherer Modus

   Der ausfallsichere Modus kann verwendet werden, um zu einer
   zweiten Schnittstelle zu wechseln, sollte die Verbindung mit der
   Master-Schnittstelle ausfallen. Erstellen und konfigurieren Sie
   die lagg0-Schnittstelle mit fxp0 als Master und fxp1 als die
   sekunda:re Schnittstelle:

 # ifconfig lagg0 create
 # ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1

   Die Schnittstelle wird so a:hnlich wie im folgenden aussehen, mit
   dem grossen Unterschied, dass die MAC-Adresse und die Gera:tenamen
   unterschiedlich sein werden:

 # ifconfig lagg0
 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=8<VLAN_MTU>
         ether 00:05:5d:71:8d:b8
         media: Ethernet autoselect
         status: active
         laggproto failover
         laggport: fxp1 flags=0<>
         laggport: fxp0 flags=5<MASTER,ACTIVE>

   Der Verkehr wird auf fxp0 u:bertragen und empfangen. Wenn die
   Verbindung auf fxp0 abbricht, so wird fxp1 die Verbindung
   u:bernehmen. Sobald die Verbindung auf der Master-Schnittstelle
   wiederhergestellt ist, wird diese auch wieder als aktive
   Schnittstelle genutzt.

   Beispiel 32-3. Failover Modus zwischen drahtgebundenen und
   drahtlosen Schnittstellen

   Fu:r Laptop-Benutzer ist es normalerweise wu:nschenswert, wireless
   als sekunda:re Schnittstelle einzurichten, die verwendet wird,
   wenn die Verbindung via Kabel nicht verfu:gbar ist. Mit lagg(4)
   ist es mo:glich, eine IP-Adresse fu:r die Kabelverbindung zu
   verwenden. Sie ist leistungsfa:hig und sicher. Gleichzeitig haben
   Sie die Mo:glichkeit Daten u:ber die drahtlose Verbindung zu
   u:bertragen.

   In dieser Konfiguration, mu:ssen wir die zugrunde liegenden
   MAC-Adresse der WLAN-Schnittstelle u:berschreiben, damit sie zur
   Adresse von lagg(4) passt, welche von der drahtgebundenen
   Masterschnittstelle vererbt wurde.

   In dieser Konfiguration behandeln wir die drahtgebundene
   Schnittstelle bge0 als die Master und die drahtlose Schnittstelle
   wlan0 als die Failover-Schnittstelle. Die wlan0 wurde von der iwn0
   mit der MAC-Adresse der kabelgebundenen eingerichtet. Im ersten
   Schritt erhalten wir die MAC-Adresse der kabelgebundenen
   Schnittstelle:

 # ifconfig bge0
 bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
  options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
  ether 00:21:70:da:ae:37
  inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
  nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
  media: Ethernet autoselect (1000baseT <full-duplex>)
  status: active

   Sie ko:nnen bge0 in ihre tatsa:chliche a:ndern und werden eine
   andere ether-Zeile mit der MAC-Adresse ihrer kabelgebundenen
   Schnittstelle erhalten. Nun a:ndern wir die zugrunde liegende
   drahtlose Schnittstelle iwn0:

 # ifconfig iwn0 ether 00:21:70:da:ae:37

   Starten Sie den Wireless-Schnittstelle, aber ohne IP-Adresse:

 # ifconfig wlan0 create wlandev iwn0 ssid my_router up

   Erstellen Sie die lagg(4) Schnittstelle mit bge0 als Master und
   wlan0 als Failover falls notwendig:

 # ifconfig lagg0 create
 # ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0

   Die Schnittstelle sieht a:nhlich aus, die Hauptunterschiede werden
   die MAC-Adresse und die Gera:tenamen sein:

 # ifconfig lagg0
 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
         options=8<VLAN_MTU>
         ether 00:21:70:da:ae:37
         media: Ethernet autoselect
         status: active
         laggproto failover
         laggport: wlan0 flags=0<>
         laggport: bge0 flags=5<MASTER,ACTIVE>

   Um zu vermeiden, dass Sie dies nach jedem Neustart machen mu:ssen,
   ko:nnen Sie etwas in der Art in ihre /etc/rc.conf Datei schreiben:

 ifconfig_bge0="up"
 ifconfig_iwn0="ether 00:21:70:da:ae:37"
 wlans_iwn0="wlan0"
 ifconfig_wlan0="WPA"
 cloned_interfaces="lagg0"
 ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"
        

     --------------------------------------------------------------

32.7. Start und Betrieb von FreeBSD u:ber ein Netzwerk

   Aktualisiert von Jean-Franc,ois Dockes. Reorganisiert und
   erweitert von Alex Dupre.

   FreeBSD kann u:ber ein Netzwerk starten und arbeiten, ohne eine
   lokale Festplatte zu verwenden, indem es Dateisysteme eines
   NFS-Servers in den eigenen Verzeichnisbaum einha:ngt. Dazu sind,
   von den Standardkonfigurationsdateien abgesehen, keine
   Systema:nderungen no:tig. Ein solches System kann leicht
   installiert werden, da alle notwendigen Elemente bereits vorhanden
   sind:

     * Es gibt mindestens zwei Mo:glichkeiten, den Kernel u:ber das
       Netzwerk zu laden:

          * PXE: Das "Preboot eXecution Environment System" von Intel
            ist eine Art intelligentes Boot-ROM, das in einigen
            Netzwerkkarten oder Hauptplatinen verwendet wird. Weitere
            Informationen finden Sie in pxeboot(8).

          * Der Port Etherboot (net/etherboot) erzeugt ROM-fa:higen
            Code, um einen Kernel u:ber das Netzwerk zu laden. Dieser
            Code kann entweder auf ein Boot-PROM einer Netzwerkkarte
            gebrannt werden, was von vielen Netzwerkkarten
            unterstu:tzt wird. Oder er kann von einer lokalen
            Diskette, Festplatte oder von einem laufenden
            MS-DOS-System geladen werden.

     * Das Beispielskript /usr/share/examples/diskless/clone_root
       erleichtert die Erzeugung und die Wartung des
       root-Dateisystems auf dem Server. Das Skript muss
       wahrscheinlich angepasst werden, dennoch werden Sie schnell zu
       einem Ergebnis kommen.

     * Die Startdateien, die einen plattenlosen Systemstart erkennen
       und unterstu:tzen, sind nach der Installation in /etc
       vorhanden.

     * Dateiauslagerungen ko:nnen sowohl via NFS als auch auf die
       lokale Platte erfolgen.

   Es gibt verschiedene Wege, einen plattenlosen Rechner
   einzurichten. Viele Elemente sind daran beteiligt, die fast immer
   an den perso:nlichen Geschmack angepasst werden ko:nnen. Im
   folgenden Abschnitt wird die Installation eines kompletten Systems
   beschrieben, wobei der Schwerpunkt auf Einfachheit und
   Kompatibilita:t zu den Standardstartskripten von FreeBSD liegt.
   Das beschriebene System hat folgende Eigenschaften:

     * Die plattenlosen Rechner haben ein gemeinsames /- sowie ein
       gemeinsames /usr-Dateisystem, die jeweils schreibgeschu:tzt
       sind.

       Das root-Dateisystem ist eine Kopie eines
       Standardwurzelverzeichnisses von FreeBSD (u:blicherweise das
       des Servers), bei dem einige Konfigurationsdateien durch fu:r
       den plattenlosen Betrieb geeignete Versionen ersetzt wurden.

       Fu:r die Bereiche des root-Dateisystems, die beschreibbar sein
       mu:ssen, werden mit md(4) virtuelle Dateisysteme erzeugt. Dies
       bedeutet aber auch, dass alle Vera:nderungen verloren gehen,
       wenn das System neu gestartet wird.

     * Der Kernel wird, in Abha:ngigkeit von der jeweiligen
       Situation, entweder von Etherboot oder von PXE transferiert
       und geladen.

     Achtung: Das hier beschriebene System ist nicht sicher. Es
     sollte nur in einem gesicherten Bereich eines Netzwerks
     verwendet werden und fu:r andere Rechner nicht erreichbar sein.

   Alle Informationen in diesem Abschnitt wurden unter
   FreeBSD 5.2.1-RELEASE getestet.

     --------------------------------------------------------------

  32.7.1. Hintergrundinformationen

   Die Einrichtung von plattenlosen Rechnern ist einfach, aber auch
   fehleranfa:llig. Der Grund dafu:r sind auftretende Fehler, die
   sich oft nur schwer zuordnen lassen. Unter anderem sind dafu:r
   folgende Umsta:nde verantwortlich:

     * Kompilierte Optionen haben zur Laufzeit unterschiedliche
       Auswirkungen.

     * Fehlermeldungen sind oft kryptisch oder fehlen vollsta:ndig.

   Daher ist es nu:tzlich, u:ber die im Hintergrund ablaufenden
   Mechanismen Bescheid zu wissen. Dadurch wird es einfacher,
   eventuell auftretende Fehler zu beheben.

   Verschiedene Operationen mu:ssen ausgefu:hrt werden, um ein System
   erfolgreich zu starten:

     * Der Rechner beno:tigt einige Startparameter, wie seine
       IP-Adresse, die Namen ausfu:hrbarer Dateien, den Servernamen
       sowie den root-Pfad. Fu:r die U:bermittlung dieser
       Informationen wird entweder das DHCP- oder das BOOTP-Protokoll
       verwendet. Bei DHCP handelt es sich um eine abwa:rtskompatible
       Erweiterung von BOOTP, die die gleichen Portnummern und das
       gleiche Paketformat verwendet.

       Es ist mo:glich, das System so zu konfigurieren, dass es nur
       BOOTP verwendet. Das Serverprogramm bootpd(8) ist bereits im
       FreeBSD-Basissystem enthalten.

       DHCP hat im Vergleich zu BOOTP allerdings mehrere Vorteile
       (bessere Konfigurationsdateien, die Mo:glichkeit zur
       Verwendung von PXE, sowie viele andere, die nicht in direktem
       Zusammenhang mit dem plattenlosen Betrieb stehen). Dieser
       Abschnitt beschreibt die Konfiguration mittels DHCP. Wenn
       mo:glich, werden aber entsprechende Beispiele fu:r bootpd(8)
       angefu:hrt. Die Beispielkonfiguration nutzt das Softwarepaket
       ISC DHCP.

     * Der Rechner muss ein oder mehrere Programme in den lokalen
       Speicher laden. Dazu wird entweder TFTP oder NFS verwendet.
       Die Auswahl zwischen TFTP und NFS erfolgt u:ber das Setzen von
       verschiedenen Kompilieroptionen. Ein ha:ufig gemachter Fehler
       ist es, Dateinamen fu:r das falsche Protokoll anzugeben: TFTP
       transferiert normalerweise alle Dateien aus einem einzigen
       Verzeichnis des Servers, und erwartet einen Pfad relativ zu
       diesem Verzeichnis. NFS verlangt hingegen absolute Dateipfade.

     * Die mo:glichen Bootstrap-Programme und der Kernel mu:ssen
       initialisiert und ausgefu:hrt werden. Dabei gibt es zwei
       Mo:glichkeiten:

          * PXE la:dt pxeboot(8). Dabei handelt es sich um eine
            modifizierte Version des FreeBSD-Laders der Boot-Phase
            drei. Der loader(8) beschafft alle fu:r den Systemstart
            notwendigen Parameter, und hinterlegt diese in der
            Kernelumgebung, bevor er die Kontrolle u:bergibt. Es ist
            hier mo:glich, den GENERIC-Kernel zu verwenden.

          * Etherboot la:dt den Kernel hingegen direkt. Dafu:r
            mu:ssen Sie allerdings einen Kernel mit spezifischen
            Optionen erzeugen.

       PXE und Etherboot sind zwar im Grossen und Ganzen
       gleichwertig, da der Kernel aber viele Aufgaben an loader(8)
       u:bergibt, sollte bevorzugt PXE eingesetzt werden.

       Wenn Ihr BIOS und Ihre Netzwerkkarten PXE unterstu:tzen,
       sollten Sie es auch verwenden.

     * Zuletzt muss der Rechner auf seine Dateisysteme zugreifen
       ko:nnen. Dafu:r wird stets NFS verwendet.

   Weitere Informationen finden Sie in diskless(8).

     --------------------------------------------------------------

  32.7.2. Installationsanweisungen

    32.7.2.1. Konfiguration unter Verwendung von ISC DHCP

   Der ISC DHCP-Server kann Anfragen sowohl von BOOTP als auch von
   DHCP beantworten.

   isc-dhcp 3.1 ist nicht Teil des Basissystems. Sie mu:ssen es daher
   zuerst installieren. Verwenden Sie dazu den Port
   net/isc-dhcp31-server oder das entsprechende Paket.

   Nachdem ISC DHCP installiert ist, muss das Programm konfiguriert
   werden (normalerweise in /usr/local/etc/dhcpd.conf). Im folgenden
   Beispiel verwendet Rechner margaux Etherboot, wa:hrend Rechner
   corbieres PXE verwendet:

           default-lease-time 600;
           max-lease-time 7200;
           authoritative;

           option domain-name "example.com";
           option domain-name-servers 192.168.4.1;
           option routers 192.168.4.1;

           subnet 192.168.4.0 netmask 255.255.255.0 {
             use-host-decl-names on; (1)
             option subnet-mask 255.255.255.0;
             option broadcast-address 192.168.4.255;

             host margaux {
               hardware ethernet 01:23:45:67:89:ab;
               fixed-address margaux.example.com;
               next-server 192.168.4.4;(2)
               filename "/tftpboot/kernel.diskless";(3)
               option root-path "192.168.4.4:/data/misc/diskless";(4)
             }
            host corbieres {
              hardware ethernet 00:02:b3:27:62:df;
               fixed-address corbieres.example.com;
               next-server 192.168.4.4;
               filename "pxeboot";
               option root-path "192.168.4.4:/data/misc/diskless";
             }
           }
        

   (1)
           Diese Option weist dhcpd an, den Wert der host-Deklaration
           als Rechnernamen des plattenlosen Rechners zu senden.
           Alternativ kann man der host-Deklaration Folgendes
           hinzufu:gen: option host-name margaux
   (2)
           Die Anweisung next-server bestimmt den TFTP- oder
           NFS-Server, von dem der Loader oder der Kernel geladen
           werden (in der Voreinstellung ist das der DHCP-Server
           selbst).
   (3)
           Die Anweisung filename bestimmt die Datei, die Etherboot
           als na:chstes la:dt. Das genaue Format ha:ngt von der
           gewa:hlten Transfermethode ab. Etherboot kann sowohl mit
           NFS als auch mit TFTP kompiliert werden. In der
           Voreinstellung wird der FreeBSD-Port mit
           NFS-Unterstu:tzung kompiliert. PXE verwendet TFTP, daher
           wird im Beispiel ein relativer Dateipfad verwendet. Dies
           kann aber, je nach Konfiguration des TFTP-Servers, auch
           anders sein. Beachten Sie, dass PXE pxeboot la:dt, und
           nicht den Kernel. Es ist auch mo:glich, das Verzeichnis
           /boot einer FreeBSD-CD-ROM von pxeboot laden zu lassen.
           pxeboot(8) kann einen GENERIC-Kernel laden, dadurch ist es
           mo:glich, PXE von einer entfernten CD-ROM zu starten.
   (4)
           Die Option root-path bestimmt den Pfad des
           root-Dateisystems in normaler NFS-Schreibweise. Wird PXE
           verwendet, ist es mo:glich, die IP-Adresse des Rechners
           wegzulassen, solange nicht die Kerneloption BOOTP
           aktiviert wird. Der NFS-Server entspricht in diesem Fall
           dem TFTP-Server.

     --------------------------------------------------------------

    32.7.2.2. Konfiguration bei Verwendung von BOOTP

   Es folgt nun eine der Konfiguration von DHCP entsprechende
   Konfiguration (fu:r einen Client) fu:r bootpd. Zu finden ist die
   Konfigurationsdatei unter /etc/bootptab.

   Beachten Sie bitte, dass Etherboot mit der Option NO_DHCP_SUPPORT
   kompiliert werden muss, damit BOOTP verwendet werden kann. PXE
   hingegen beno:tigt DHCP. Der einzige offensichtliche Vorteil von
   bootpd ist, dass es bereits im Basissystem vorhanden ist.

 .def100:\
   :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
   :sm=255.255.255.0:\
   :ds=192.168.4.1:\
   :gw=192.168.4.1:\
   :hd="/tftpboot":\
   :bf="/kernel.diskless":\
   :rp="192.168.4.4:/data/misc/diskless":

 margaux:ha=0123456789ab:tc=.def100

     --------------------------------------------------------------

    32.7.2.3. Ein Startprogramm unter Verwendung von Etherboot erstellen

   Die Internetseite von Etherboot entha:lt ausfu:hrliche
   Informationen, die zwar vor allem fu:r Linux gedacht sind, aber
   dennoch nu:tzliche Informationen enthalten. Im Folgenden wird
   daher nur grob beschrieben, wie Sie Etherboot auf einem
   FreeBSD-System einsetzen ko:nnen.

   Als Erstes mu:ssen Sie net/etherboot als Paket oder als Port
   installieren.

   Sie ko:nnen Etherboot so konfigurieren, dass TFTP anstelle von NFS
   verwendet wird, indem Sie die Datei Config im Quellverzeichnis von
   Etherboot bearbeiten.

   Fu:r unsere Installation verwenden wir eine Startdiskette. Fu:r
   Informationen zu anderen Methoden (PROM oder MS-DOS-Programme)
   lesen Sie bitte die Dokumentation zu Etherboot.

   Um eine Startdiskette zu erzeugen, legen Sie eine Diskette in das
   Laufwerk des Rechners ein, auf dem Sie Etherboot installiert
   haben. Danach wechseln Sie in das Verzeichnis src des
   Etherboot-Verzeichnisbaums und geben Folgendes ein:

 # gmake bin32/devicetype.fd0

   devicetype ha:ngt vom Typ der Ethernetkarte ab, u:ber die der
   plattenlose Rechner verfu:gt. Lesen Sie dazu NIC im gleichen
   Verzeichnis, um den richtigen Wert fu:r devicetype zu bestimmen.

     --------------------------------------------------------------

    32.7.2.4. Das System mit PXE starten

   In der Voreinstellung la:dt der pxeboot(8)-Loader den Kernel u:ber
   NFS. Soll stattdessen TFTP verwendet werden, muss beim Kompilieren
   die Option LOADER_TFTP_SUPPORT in der Datei /etc/make.conf
   eingetragen sein. Sehen Sie sich die Datei
   /usr/share/examples/etc/make.conf fu:r weitere Anweisungen an.

   Es gibt zwei Optionen fu:r make.conf, die nu:tzlich sein ko:nnen,
   wenn Sie eine plattenlose serielle Konsole einrichten wollen:
   BOOT_PXELDR_PROBE_KEYBOARD, und BOOT_PXELDR_ALWAYS_SERIAL.

   Um PXE beim Systemstart zu verwenden, mu:ssen Sie im BIOS des
   Rechner die Option U:ber das Netzwerk starten aktivieren.
   Alternativ ko:nnen Sie wa:hrend der PC-Initialisierung auch eine
   Funktionstaste dru:cken.

     --------------------------------------------------------------

    32.7.2.5. Serverkonfiguration - TFTP und NFS

   Wenn Sie PXE oder Etherboot so konfiguriert haben, dass diese TFTP
   verwenden, mu:ssen Sie auf dem Dateiserver tftpd aktivieren:

    1. Erzeugen Sie ein Verzeichnis, in dem tftpd seine Dateien
       ablegt, beispielsweise /tftpboot.

    2. Fu:gen Sie folgende Zeile in /etc/inetd.conf ein:

 tftp    dgram   udp     wait    root  /usr/libexec/tftpd    tftpd -s /tftpboot

         Anmerkung: Anscheinend beno:tigen zumindest einige
         PXE-Versionen die TCP-Version von TFTP. Sollte dies bei
         Ihnen der Fall sein, fu:gen Sie eine zweite Zeile ein, in
         der Sie dgram udp durch stream tcp ersetzen.

    3. Weisen Sie inetd an, seine Konfiguration erneut einzulesen
       (Damit der folgende Befehl funktioniert, muss die Option
       inetd_enable="YES" in der Datei /etc/rc.conf vorhanden sein.):

 # /etc/rc.d/inetd restart

   Sie ko:nnen das Verzeichnis /tftpboot an einem beliebigen Ort auf
   dem Server ablegen. Stellen Sie aber sicher, dass Sie diesen Ort
   sowohl in inetd.conf als auch in dhcpd.conf eingetragen haben.

   Ausserdem mu:ssen Sie NFS aktivieren und die entsprechenden
   Verzeichnisse exportieren.

    1. Fu:gen Sie folgende Zeile in /etc/rc.conf ein:

 nfs_server_enable="YES"

    2. Exportieren Sie das Verzeichnis, in dem sich das
       Wurzelverzeichnis fu:r den plattenlosen Betrieb befindet,
       indem Sie folgende Zeile in /etc/exports einfu:gen (passen Sie
       dabei den mountpoint an und ersetzen Sie margaux corbieres
       durch den Namen Ihres plattenlosen Rechners):

 /data/misc -alldirs -ro margaux

    3. Weisen sie nun mountd an, seine Konfigurationsdatei erneut
       einzulesen. Wenn Sie NFS erst in der Datei /etc/rc.conf
       aktivieren mussten, sollten Sie stattdessen den Rechner neu
       starten. Dadurch wird die Konfigurationsdatei ebenfalls neu
       eingelesen.

 # /etc/rc.d/mountd restart

     --------------------------------------------------------------

    32.7.2.6. Einen plattenlosen Kernel erzeugen

   Wenn Sie Etherboot verwenden, mu:ssen Sie in die
   Kernelkonfigurationsdatei Ihres plattenlosen Clients zusa:tzlich
   folgende Optionen einfu:gen:

 options     BOOTP          # Use BOOTP to obtain IP address/hostname
 options     BOOTP_NFSROOT  # NFS mount root file system using BOOTP info

   Ausserdem ko:nnen Sie die Optionen BOOTP_NFSV3, BOOT_COMPAT sowie
   BOOTP_WIRED_TO verwenden (sehen Sie sich dazu auch die Datei NOTES
   an).

   Die Namen dieser Optionen sind historisch bedingt. Sie
   ermo:glichen eine unterschiedliche Verwendung von DHCP und BOOTP
   innerhalb des Kernels. Es ist auch mo:glich, eine strikte
   Verwendung von BOOTP oder DHCP zu erzwingen.

   Erzeugen Sie den neuen Kernel (lesen Sie dazu auch Kapitel 9) und
   kopieren Sie ihn an den in dhcpd.conf festgelegten Ort.

     Anmerkung: Wenn Sie PXE verwenden, ist die Erzeugung eines
     Kernels zwar nicht unbedingt no:tig, sie wird allerdings dennoch
     empfohlen. Die Aktivierung dieser Optionen bewirkt, dass die
     Anzahl der mo:glichen DHCP-Anforderungen wa:hrend des
     Kernelstarts erho:ht wird. Ein kleiner Nachteil sind eventuell
     auftretende Inkonsistenzen zwischen den neuen Werten und den von
     pxeboot(8) erhaltenen Werten. Der grosse Vorteil dieser Variante
     ist es, dass dabei der Rechnername gesetzt wird, den Sie
     ansonsten durch eine andere Methode, beispielsweise in einer
     clientspezifischen rc.conf-Datei festlegen mu:ssten.

     Anmerkung: Damit der Kernel von Etherboot geladen werden kann,
     mu:ssen device hints im Kernel einkompiliert sein. Dazu setzen
     Sie normalerweise folgende Option in die
     Kernelkonfigurationsdatei (sehen Sie sich dazu auch die
     kommentierte Datei NOTES an):

 hints         "GENERIC.hints"

     --------------------------------------------------------------

    32.7.2.7. Das root-Dateisystem erzeugen

   Sie mu:ssen fu:r den plattenlosen Rechner ein root-Dateisystem
   erzeugen, und zwar an dem in dhcpd.conf als root-path festgelegten
   Ort.

     --------------------------------------------------------------

      32.7.2.7.1. make world zum Fu:llen des Dateisystems einsetzen

   Diese schnelle Methode installiert ein komplettes
   "jungfra:uliches" System (und nicht nur ein root-Dateisystem) nach
   DESTDIR. Dazu mu:ssen Sie lediglich das folgende Skript
   ausfu:hren:

 #!/bin/sh
 export DESTDIR=/data/misc/diskless
 mkdir -p ${DESTDIR}
 cd /usr/src; make buildworld && make buildkernel
 make installworld && make installkernel
 cd /usr/src/etc; make distribution

   Danach mu:ssen Sie noch die dadurch in DESTDIR erzeugten Dateien
   /etc/rc.conf sowie /etc/fstab Ihren Wu:nschen anpassen.

     --------------------------------------------------------------

    32.7.2.8. Den Auslagerungsbereich konfigurieren

   Falls no:tig, kann eine auf dem NFS-Server liegende Datei als
   Auslagerungsdatei eingerichtet werden.

     --------------------------------------------------------------

      32.7.2.8.1. Eine NFS-Auslagerungsdatei einrichten

   Der Kernel unterstu:tzt beim Systemstart keine
   NFS-Auslagerungsdatei. Diese muss daher in den Startskripten
   aktiviert werden, indem ein beschreibbares Dateisystem eingeha:ngt
   wird, um dort die Auslagerungsdatei zu erzeugen und zu aktivieren.
   Um eine Auslagerungsdatei zu erzeugen, gehen Sie wie folgt vor:

 # dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000

   Um die Auslagerungsdatei zu aktivieren, fu:gen Sie folgende Zeile
   in rc.conf ein:

 swapfile=/path/to/swapfile

     --------------------------------------------------------------

    32.7.2.9. Verschiedenes

      32.7.2.9.1. Schreibgeschu:tztes Dateisystem /usr

   Wenn am plattenlosen Rechner X la:uft, mu:ssen Sie die
   Konfigurationsdatei von XDM anpassen, da Fehlermeldungen in der
   Voreinstellung auf /usr geschrieben werden.

     --------------------------------------------------------------

      32.7.2.9.2. Der Server la:uft nicht unter FreeBSD

   Wenn das root-Dateisystem nicht auf einem FreeBSD-Rechner liegt,
   muss das Dateisystem zuerst unter FreeBSD erzeugt werden.
   Anschliessend wird es beispielsweise mit tar oder cpio an den
   gewu:nschten Ort kopiert.

   Dabei kann es Probleme mit den Gera:tedateien in /dev geben, die
   durch eine unterschiedliche Darstellung der Major- und
   Minor-Number von Gera:ten auf beiden Systemen hervorgerufen
   werden. Eine Problemlo:sung besteht darin, das root-Verzeichnis
   auf einem FreeBSD-Rechner einzuha:ngen und die Gera:tedateien dort
   mit devfs(5) zu erzeugen.

     --------------------------------------------------------------

32.8. ISDN - diensteintegrierendes digitales Netzwerk

   Eine gute Quelle fu:r Informationen zu ISDN ist die ISDN-Seite von
   Dan Kegel.

   Welche Informationen finden Sie in diesem Abschnitt?

     * Wenn Sie in Europa leben, ko:nnte der Abschnitt u:ber
       ISDN-Karten fu:r Sie interessant sein.

     * Wenn Sie ISDN hauptsa:chlich dazu verwenden wollen, um sich
       u:ber einen Anbieter ins Internet einzuwa:hlen, sollten Sie
       den Abschnitt u:ber Terminaladapter lesen. Dies ist die
       flexibelste Methode, die auch die wenigsten Probleme
       verursacht.

     * Wenn Sie zwei Netzwerke miteinander verbinden, oder sich u:ber
       eine ISDN-Standleitung mit dem Internet verbinden wollen,
       finden Sie entsprechende Informationen im Abschnitt u:ber
       Router und Bridges.

   Bei der Wahl der gewu:nschten Lo:sung sind die entstehenden Kosten
   ein entscheidender Faktor. Die folgenden Beschreibungen reichen
   von der billigsten bis zur teuersten Variante.

     --------------------------------------------------------------

  32.8.1. ISDN-Karten

   Beigetragen von Hellmuth Michaelis.

   Das ISDN-Subsystem von FreeBSD unterstu:tzt den DSS1/Q.931- (oder
   Euro-ISDN)-Standard nur fu:r passive Karten. Zusa:tzlich werden
   aber auch einige aktive Karten unterstu:tzt, bei denen die
   Firmware auch andere Signalprotokolle unterstu:tzt; dies schliesst
   auch die erste ISDN-Karte mit Prima:rmultiplex-Unterstu:tzung mit
   ein.

   isdn4bsd ermo:glicht es Ihnen, sich unter Nutzung von IP over raw
   HDLC oder synchronem PPP mit anderen ISDN-Routern zu verbinden.
   Dazu verwenden Sie entweder Kernel-ppp(8) (via isppp, einem
   modifizierten sppp-Treiber), oder Sie benutzen User-ppp(8). Wenn
   Sie User-ppp(8) verwenden, ko:nnen Sie zwei oder mehrere
   ISDN-B-Kana:le bu:ndeln. Im Paket enthalten ist auch ein Programm
   mit Anrufbeantworterfunktion sowie verschiedene Werkzeuge, wie ein
   Softwaremodem, das 300 Baud unterstu:tzt.

   FreeBSD unterstu:tzt eine sta:ndig wachsende Anzahl von
   PC-ISDN-Karten, die weltweit erfolgreich eingesetzt werden.

   Von FreeBSD unterstu:tzte passive ISDN-Karten enthalten fast immer
   den ISAC/HSCX/IPAC ISDN-Chipsatz von Infineon (ehemals Siemens).
   Unterstu:tzt werden aber auch Karten mit Cologne Chip (diese
   allerdings nur fu:r den ISA-Bus), PCI-Karten mit Winbond W6692
   Chipsatz, einige Karten mit dem Tiger 300/320/ISAC Chipsatz sowie
   einige Karten mit einem herstellerspezifischen Chipsatz, wie
   beispielsweise die Fritz!Card PCI V.1.0 und die Fritz!Card PnP von
   AVM.

   An aktiven ISDN-Karten werden derzeit die AVM B1 BRI-Karten (ISA
   und PCI-Version) sowie die AVM T1 PRI-Karten (PCI-Version)
   unterstu:tzt.

   Informationen zu isdn4bsd finden Sie auf der Internetseite von
   isdn4bsd. Dort finden Sie auch Verweise zu Tipps, Korrekturen,
   sowie weiteren Informationen, wie dem isdn4bsd-Handbuch.

   Falls Sie an der Unterstu:tzung eines zusa:tzlichen
   ISDN-Protokolls, einer weiteren ISDN-Karte oder an einer anderen
   Erweiterung von isdn4bsd interessiert sind, wenden Sie sich bitte
   an Hellmuth Michaelis <hm@FreeBSD.org>.

   Fu:r Fragen zur Installation, Konfiguration und zu sonstigen
   Problemen von isdn4bsd gibt es die Mailingliste freebsd-isdn.

     --------------------------------------------------------------

  32.8.2. ISDN-Terminaladapter

   Terminaladapter (TA) sind fu:r ISDN, was Modems fu:r analoge
   Telefonleitungen sind.

   Die meisten Terminaladapter verwenden den Standardbefehlssatz fu:r
   Modems von Hayes (AT-Kommandos) und ko:nnen daher als Modemersatz
   verwendet werden.

   Ein Terminaladapter funktioniert prinzipiell wie ein Modem,
   allerdings erfolgt der Verbindungsaufbau um einiges schneller. Die
   Konfiguration von PPP entspricht dabei exakt der eines Modems.
   Stellen Sie dabei allerdings die serielle Geschwindigkeit so hoch
   wie mo:glich ein.

   Der Hauptvorteil bei der Verwendung eines Terminaladapters zur
   Verbindung mit einem Internetanbieter ist die Mo:glichkeit zur
   Nutzung von dynamischem PPP. Da IP-Adressen immer knapper werden,
   vergeben die meisten Provider keine statischen IP-Adressen mehr.
   Die meisten Router unterstu:tzen allerdings keine dynamische
   Zuweisung von IP-Adressen.

   Der PPP-Daemon bestimmt die Stabilita:t und Eigenschaften der
   Verbindung, wenn Sie einen Terminaladapter verwenden. Daher
   ko:nnen Sie unter FreeBSD einfach von einer Modemverbindung auf
   eine ISDN-Verbindung wechseln, wenn Sie PPP bereits konfiguriert
   haben. Allerdings bedeutet dies auch, das bereits bestehende
   Probleme mit PPP auch unter ISDN auftreten werden.

   Wenn Sie an maximaler Stabilita:t interessiert sind, verwenden Sie
   Kernel-PPP, und nicht das User-PPP.

   Folgende Terminaladapter werden von FreeBSD unterstu:tzt:

     * Motorola BitSurfer und Bitsurfer Pro

     * Adtran

   Die meisten anderen Terminaladapter werden wahrscheinlich
   ebenfalls funktionieren, da die Hersteller von Terminaladaptern
   darauf achten, dass ihre Produkte den Standardbefehlssatz
   mo:glichst gut unterstu:tzen.

   Das wirkliche Problem mit einem externen Terminaladapter ist,
   dass, a:hnlich wie bei Modems, eine gute serielle Karte eine
   Grundvoraussetzung ist.

   Sie sollten sich die Anleitung fu:r die Nutzung serieller Gera:te
   unter FreeBSD ansehen, wenn Sie detaillierte Informationen u:ber
   serielle Gera:te und die Unterschiede zwischen asynchronen und
   synchronen seriellen Ports beno:tigen.

   Ein Terminaladapter, der an einem (asynchronen) seriellen
   Standardport angeschlossen ist, beschra:nkt Sie auf 115,2 Kbs.
   Dies selbst dann, wenn Sie eine Verbindung mit 128 Kbs haben. Um
   die volle Leistungsfa:higkeit von ISDN (128 Kbs) nutzen zu
   ko:nnen, mu:ssen Sie den Terminaladapter daher an eine synchrone
   serielle Karte anschliessen.

   Kaufen Sie keinen internen Terminaladapter in der Hoffnung, damit
   das synchron/asynchron-Problem vermeiden zu ko:nnen. Interne
   Terminaladapter haben einen (asynchronen) seriellen
   Standardportchip eingebaut. Der einzige Vorteil interner
   Terminaladapter ist es, dass Sie ein serielles sowie ein
   Stromkabel weniger beno:tigen.

   Eine synchrone Karte mit einem Terminaladapter ist mindestens so
   schnell wie ein autonomer ISDN-Router, und, in Kombination mit
   einem einfachen 386-FreeBSD-System, wahrscheinlich flexibler.

   Die Entscheidung zwischen synchroner Karte/Terminaladapter und
   einem autonomen ISDN-Router ist beinahe eine religio:se
   Angelegenheit. Zu diesem Thema gibt es viele Diskussionen in den
   Mailinglisten. Suchen Sie in den Archiven danach, wenn Sie an der
   kompletten Diskussion interessiert sind.

     --------------------------------------------------------------

  32.8.3. ISDN-Bridges und Router

   ISDN-Bridges und Router sind keine Eigenheit von FreeBSD oder
   eines anderen Betriebssystems. Fu:r eine vollsta:ndigere
   Beschreibung von Routing und Netzwerkkopplungen mit einer Bridge
   informieren Sie sich bitte durch weiterfu:hrende Literatur.

   In diesem Abschnitt werden die Begriffe Router und Bridge synonym
   verwendet.

   ISDN-Router und Bridges werden immer gu:nstiger und damit auch
   immer beliebter. Ein ISDN-Router ist eine kleine Box, die direkt
   an Ihr lokales Ethernet-Netzwerk angeschlossen wird und sich mit
   einem Router oder einer Bridge verbindet. Die eingebaute Software
   ermo:glicht die Kommunikation u:ber PPP oder andere beliebte
   Protokolle.

   Ein Router ermo:glicht einen deutlich ho:heren Datendurchsatz als
   ein herko:mmlicher Terminaladapter, da er eine vollsynchrone
   ISDN-Verbindung nutzt.

   Das Hauptproblem mit ISDN-Routern und Bridges ist, dass die
   Zusammenarbeit zwischen Gera:ten verschiedener Hersteller nach wie
   vor ein Problem ist. Wenn Sie sich auf diese Weise mit einem
   Internetanbieter verbinden wollen, kla:ren Sie daher vorher ab,
   welche Anforderungen Ihre Gera:te erfu:llen mu:ssen.

   Eine ISDN-Bridge ist eine einfache und wartungsarme Lo:sung, zwei
   Netze, beispielsweise Ihr privates Netz und Ihr Firmennetz,
   miteinander zu verbinden. Da Sie die technische Ausstattung fu:r
   beide Seiten kaufen mu:ssen, ist sichergestellt, dass die
   Verbindung funktionieren wird.

   Um beispielsweise einen privaten Computer oder eine Zweigstelle
   mit dem Hauptnetzwerk zu verbinden, ko:nnte folgende Konfiguration
   verwendet werden:

   Beispiel 32-4. Kleines Netzwerk (Privatnetz)

   Das Netzwerk basiert auf der Bustopologie mit 10base2 Ethernet
   ("Thinnet"). Falls no:tig, stellen Sie die Verbindung zwischen
   Router und Netzwerkkabel mit einem AUI/10BT-Transceiver her.

 ---Sun Workstation
 |
 ---FreeBSD Rechner
 |
 ---Windows 95
 |
 Autonomer Router
    |
 ISDN BRI Verbindung
            

   Wenn Sie nur einen einzelnen Rechner verbinden wollen, ko:nnen Sie
   auch ein Twisted-Pair-Kabel (Cross-Over) verwenden, das direkt an
   den Router angeschlossen wird.

   Beispiel 32-5. Grosses Netzwerk (Firmennetz)

   Dieses Netzwerk basiert auf der Sterntopologie und 10baseT
   Ethernet ("Twisted Pair").

 -------Novell Server
     | H |
     |   ---Sun
     |   |
     | U ---FreeBSD
     |   |
     |   ---Windows 95
     | B |
     |___---Autonomer Router
                 |
         ISDN BRI Verbindung
            

   Ein grosser Vorteil der meisten Router und Bridges ist es, dass
   man gleichzeitig zwei unabha:ngige PPP-Verbindungen zu zwei
   verschiedenen Zielen aufbauen kann. Diese Funktion bieten die
   meisten Terminaladapter nicht. Die Ausnahme sind spezielle (meist
   teure) Modelle, die u:ber zwei getrennte serielle Ports verfu:gen.
   Verwechseln Sie dies aber nicht mit Kanalbu:ndelung oder MPP.

   Dies kann sehr nu:tzlich sein, wenn Sie eine ISDN-Standleitung in
   Ihrem Bu:ro haben, die sie aufteilen wollen, ohne eine
   zusa:tzliche ISDN-Leitung zu installieren. Ein ISDN-Router kann
   u:ber einen B-Kanal (64 Kbps) eine dedizierte Verbindung ins
   Internet aufbauen, und gleichzeitig den anderen B-Kanal fu:r eine
   separate Datenverbindung nutzen. Der zweite B-Kanal kann
   beispielsweise fu:r ein- oder ausgehende Verbindungen verwendet
   werden. Sie ko:nnen ihn aber auch dynamisch mit dem ersten B-Kanal
   bu:ndeln, um Ihre Bandbreite zu erho:hen.

   Eine Ethernet-Bridge kann Daten nicht nur im IP-Protokoll, sondern
   auch in beliebigen anderen Protokollen versenden.

     --------------------------------------------------------------

32.9. NAT - Network Address Translation

   Beigetragen von Chern Lee.

  32.9.1. U:berblick

   natd(8), der Network-Address-Translation-Daemon von FreeBSD,
   akzeptiert ankommende Raw-IP-Pakete, a:ndert den Sender der Daten
   in den eigenen Rechner und leitet diese Pakete in den ausgehenden
   IP-Paketstrom um, indem IP-Adresse und Port des Senders so
   gea:ndert werden, dass bei einer Antwort der urspru:ngliche Sender
   wieder bestimmt und die Daten an ihn weitergeleitet werden
   ko:nnen.

   Der ha:ufigste Grund fu:r die Verwendung von NAT ist die
   gemeinsame Nutzung einer Internetverbindung.

     --------------------------------------------------------------

  32.9.2. Einrichtung

   Wegen der begrenzten Verfu:gbarkeit von IPv4-Adressen und der
   gestiegenen Anzahl von Breitbandverbindungen u:ber Kabelmodem oder
   DSL, wird die gemeinsame Nutzung von Internetverbindungen immer
   wichtiger. Der natd(8)-Daemon ermo:glicht die Anbindung von
   mehreren Rechnern an das Internet unter Nutzung einer gemeinsamen
   Verbindung und einer IP-Adresse.

   Ha:ufig soll ein u:ber Kabelmodem oder DSL und eine IP-Adresse an
   das Internet angebundener Rechner mehreren Rechnern eines lokalen
   Netzwerks Internetdienste anbieten.

   Um dies zu ermo:glichen, muss der FreeBSD-Rechner als Gateway
   fungieren. Dazu sind zwei Netzwerkkarten notwendig. Eine fu:r die
   Verbindung zum Internet, die zweite fu:r die Verbindung mit dem
   lokalen Netzwerk. Sa:mtliche Rechner des lokalen Netzwerks sind
   u:ber einen Hub oder einen Switch miteinander verbunden.

     Anmerkung: Es gibt verschiedene Mo:glichkeiten, ein LAN u:ber
     ein FreeBSD-Gateway an das Internet anzubinden. Das folgende
     Beispiel beschreibt ein Gateway, das zumindest zwei
     Netzwerkkarten entha:lt.

   _______       __________       ________
  |       |     |          |     |        |
  |  Hub  |-----| Client B |-----| Router |----- Internet
  |_______|     |__________|     |________|
      |
  ____|_____
 |          |
 | Client A |
 |__________|

   Eine derartige Netzwerkkonfiguration wird vor allem zur
   gemeinsamen Nutzung einer Internetverbindung verwendet. Ein
   Rechner des lokalen Netzwerks (LAN) ist mit dem Internet
   verbunden. Alle anderen Rechner des lokalen Netzwerks haben nur
   u:ber diesen "Gateway"-Rechner Zugriff auf das Internet.

     --------------------------------------------------------------

  32.9.3. Boot Loader Konfiguration

   Die Kerneleigenschaften fu:r Network Address Translation mit
   natd(8) sind im GENERIC-Kernel nicht aktiviert, ko:nnen aber
   bereits zur Bootzeit geladen werden, indem ein paar Zeilen in die
   Datei /boot/loader.conf hinzugefu:gt werden:

 ipfw_load="YES"
 ipdivert_load="YES"

   Zusa:tzlich kann die Option net.inet.ip.fw.default_to_accept auf 1
   gesetzt werden:

 net.inet.ip.fw.default_to_accept="1"

     Anmerkung: Es ist eine gute Idee, diese Option wa:hrend den
     ersten Versuchen, eine Firewall und ein NAT-Gateway aufzusetzen,
     zu aktivieren. Damit ist die Standardvorgehensweise von ipfw(8)
     diejenige, allow ip from any to any, anstatt der weniger
     freizu:gigen deny ip from any to any. Es wird dadurch etwas
     schwieriger, sich aus Versehen nach einem Neustart aus dem
     System auszusperren.

     --------------------------------------------------------------

  32.9.4. Kernelkonfiguration

   Wenn Module nicht in Frage kommen oder Sie bevorzugen, alle
   notwendigen Eigenschaften in den laufenden Kernel einzubauen,
   mu:ssen die folgenden Optionen in die Kernelkonfigurationsdatei
   eingetragen werden:

 options IPFIREWALL
 options IPDIVERT

   Die folgende Optionen ko:nnen ebenfalls eingetragen werden:

 options IPFIREWALL_DEFAULT_TO_ACCEPT
 options IPFIREWALL_VERBOSE

     --------------------------------------------------------------

  32.9.5. System Bootkonfiguration

   Um Firewall- und NAT-Unterstu:tzung zur Bootzeit zu aktivieren,
   tragen Sie Folgendes in /etc/rc.conf ein:

 gateway_enable="YES" (1)
 firewall_enable="YES" (2)
 firewall_type="OPEN" (3)
 natd_enable="YES"
 natd_interface="fxp0" (4)
 natd_flags="" (5)

   (1)
           Richtet den Rechner als Gateway ein. Die Ausfu:hrung von
           sysctl net.inet.ip.forwarding=1 ha:tte den gleichen
           Effekt.
   (2)
           Aktiviert die Firewallregeln in /etc/rc.firewall beim
           Systemstart.
   (3)
           Ein vordefinierter Satz von Firewallregeln, der alle
           Pakete durchla:sst. Sehen Sie sich /etc/rc.firewall an,
           wenn Sie diese Option verwenden wollen.
   (4)
           Die Netzwerkkarte, die Pakete weiterleitet (und mit dem
           Internet verbunden ist).
   (5)
           Zusa:tzliche Konfigurationsoptionen, die beim Systemstart
           an natd(8) u:bergeben werden.

   Durch die Definition dieser Optionen in /etc/rc.conf wird die
   Anweisung natd -interface fxp0 beim Systemstart ausgefu:hrt. Dies
   kann aber auch manuell erfolgen.

     Anmerkung: Falls Sie viele Optionen an natd(8) u:bergeben
     mu:ssen, ko:nnen Sie auch eine Konfigurationsdatei verwenden.
     Dazu fu:gen Sie folgende Zeile in /etc/rc.conf ein:

 natd_flags="-f /etc/natd.conf"

     Die Datei /etc/natd.conf entha:lt verschiedene
     Konfigurationsoptionen, wobei jede Option in einer Zeile steht.
     Das Beispiel im na:chsten Abschnitt wu:rde folgende
     Konfigurationsdatei verwenden:

 redirect_port tcp 192.168.0.2:6667 6667
 redirect_port tcp 192.168.0.3:80 80

     Wenn Sie eine Konfigurationsdatei verwenden wollen, sollten Sie
     sich die Handbuchseite zu natd(8) durchlesen, insbesondere den
     Abschnitt u:ber die Nutzung der Option -f.

   Jedem Rechner und jeder Schnittstelle des lokalen Netzwerks sollte
   eine IP-Adresse des im RFC 1918 definierten privaten Adressraums
   zugewiesen werden. Der Standardgateway entspricht der internen
   IP-Adresse des natd-Rechners.

   Im Beispiel werden den LAN-Clients A und B die IP-Adressen
   192.168.0.2 und 192.168.0.3 zugewiesen, wa:hrend die
   LAN-Netzwerkkarte des natd-Rechners die IP-Adresse 192.168.0.1
   erha:lt. Der natd-Rechner mit der IP-Adresse 192.168.0.1 wird als
   Standardgateway fu:r die Clients A und B gesetzt. Die externe
   Netzwerkkarte des natd-Rechners muss fu:r die korrekte Funktion
   von natd(8) nicht konfiguriert werden.

     --------------------------------------------------------------

  32.9.6. Ports umleiten

   Wenn Sie natd(8) verwenden, sind Ihre LAN-Clients von aussen nicht
   erreichbar. LAN-Clients ko:nnen zwar Verbindungen nach aussen
   aufbauen, sind aber fu:r ankommende Verbindungen nicht erreichbar.
   Wenn Sie Internetdienste auf einem LAN-Client anbieten wollen,
   haben Sie daher ein Problem. Eine einfache Lo:sung ist die
   Umleitung von bestimmten Internetports des natd-Rechners auf einen
   LAN-Client.

   Beispielsweise ko:nnte ein IRC-Server auf Client A und ein
   Webserver auf Client B laufen. Damit diese Konfiguration
   funktioniert, mu:ssen Verbindungen, die auf den Ports 6667 (IRC)
   und 80 (Web) ankommen, auf die entsprechenden Clients umgeleitet
   werden.

   Dazu wird die Option -redirect_port unter Nutzung folgender Syntax
   an natd(8) u:bergeben:

      -redirect_port proto targetIP:targetPORT[-targetPORT]
                  [aliasIP:]aliasPORT[-aliasPORT]
                  [remoteIP[:remotePORT[-remotePORT]]]

   Fu:r unser Beispiel heisst das:

     -redirect_port tcp 192.168.0.2:6667 6667
     -redirect_port tcp 192.168.0.3:80 80

   Dadurch werden die entsprechenden tcp-Ports auf die jeweiligen
   LAN-Clients umgeleitet.

   Mit -redirect_port ko:nnen auch ganze Portbereiche statt einzelner
   Ports umgeleitet werden. So werden mit tcp 192.168.0.2:2000-3000
   2000-3000 alle Verbindungen, die auf den Ports 2000 bis 3000
   ankommen, auf die entsprechenden Ports des Clients A umgeleitet.

   Diese Optionen ko:nnen wa:hrend des Betriebs von natd(8) oder
   u:ber die Option natd_flags="" in /etc/rc.conf gesetzt werden.

   Eine ausfu:hrliche Konfigurationsanleitung finden Sie in natd(8).

     --------------------------------------------------------------

  32.9.7. Adressen umleiten

   Die Umleitung von Adressen ist nu:tzlich, wenn mehrere IP-Adressen
   verfu:gbar sind, die aber alle auf einem Rechner verbleiben
   sollen. In diesem Fall kann natd(8) jedem LAN-Client eine eigene
   externe IP-Adresse zuweisen. Ausgehende Pakete eines LAN-Clients
   werden so der entsprechenden externen IP-Adresse des Clients
   zugeordnet. Ankommender Verkehr fu:r diese IP-Adresse wird
   automatisch an den entsprechenden LAN-Client weitergeleitet.
   Diesen Vorgang bezeichnet man auch als statisches NAT. Dem
   natd-Gatewayrechner ko:nnten beispielsweise die IP-Adressen
   128.1.1.1, 128.1.1.2 sowie 128.1.1.3 zugewiesen werden. 128.1.1.1
   wird als die externe IP-Adresse des natd-Gatewayrechners
   verwendet, wa:hrend 128.1.1.2 und 128.1.1.3 an die LAN-Clients A
   und B weitergegeben werden.

   -redirect_address benutzt folgende Syntax:

 -redirect_address localIP publicIP

   localIP            Die interne IP-Adresse des LAN-Clients          
   publicIP           Die externe IP-Adresse des LAN-Clients          

   Fu:r unser Beispiel hiesse dies:

 -redirect_address 192.168.0.2 128.1.1.2
 -redirect_address 192.168.0.3 128.1.1.3

   Analog zur Option -redirect_port ko:nnen Sie diese Argumente auch
   in der Option natd_flags="" in /etc/rc.conf angeben. Bei der
   Nutzung der Adressumleitung ist die Portumleitung u:berflu:ssig,
   weil alle fu:r eine bestimmte IP-Adresse ankommenden Daten
   umgeleitet werden.

   Die externe IP-Adresse des natd-Rechners muss aktiv sein und der
   externen Netzwerkkarte zugewiesen sein. Weitere Informationen zu
   diesem Thema finden Sie in rc.conf(5).

     --------------------------------------------------------------

32.10. PLIP - Parallel Line IP

   PLIP ermo:glicht TCP/IP-Verbindungen zwischen zwei Rechnern, die
   u:ber ihre parallelen Schnittstellen verbunden sind. Eine solche
   Verbindung ist nu:tzlich, wenn zwei Rechner nicht mit
   Netzwerkkarten ausgestattet sind, oder wenn eine Installation auf
   einem Laptop erfolgen soll. Dieser Abschnitt behandelt folgende
   Themen:

     * Die Herstellung eines parallelen (Laplink-) Kabels

     * Die Verbindung von zwei Computern u:ber PLIP

     --------------------------------------------------------------

  32.10.1. Ein paralleles Kabel herstellen

   Ein paralleles (Laplink-)Kabel ko:nnen Sie in fast jedem
   Computergescha:ft kaufen. Falls dies nicht mo:glich sein sollte,
   oder Sie einfach wissen wollen, wie ein solches Kabel aufgebaut
   ist, sollten Sie sich die folgende Tabelle ansehen. Sie beschreibt
   die Herstellung eines parallelen Netzwerkkabels aus einem
   gewo:hnlichen parallelen Druckerkabel.

   Tabelle 32-1. Die Netzwerk-Verdrahtung eines parallelen Kabels

   A-Name A-Ende B-Ende Beschreibung Post/Bit 
   DATA0  2      15     Data         0/0x01   
   -ERROR 15     2                   1/0x08   
   DATA1  3      13     Data         0/0x02   
   +SLCT  13     3                   1/0x10   
   DATA2  4      12     Data         0/0x04   
   +PE    12     4                   1/0x20   
   DATA3  5      10     Strobe       0/0x08   
   -ACK   10     5                   1/0x40   
   DATA4  6      11     Data         0/0x10   
   BUSY   11     6                   1/0x80   
   GND    18-25  18-25  GND          -        

     --------------------------------------------------------------

  32.10.2. PLIP einrichten

   Als Erstes beno:tigen Sie ein Laplink-Kabel. Danach mu:ssen Sie
   sicherstellen, dass beide Computerkernel den lpt(4)-Treiber
   unterstu:tzen:

 # grep lp /var/run/dmesg.boot
 lpt0: <Printer> on ppbus0
 lpt0: Interrupt-driven port

   Der Parallelport muss Interrupt-gesteuert sein, daher sollte die
   Datei /boot/device.hints zwei Zeilen a:hnlich den folgenden
   enthalten:

 hint.ppc.0.at="isa"
 hint.ppc.0.irq="7"

   Danach u:berpru:fen Sie, ob die Kernelkonfigurationsdatei die
   Zeile device plip entha:lt, oder ob das Kernelmodul plip.ko
   geladen wurde. In beiden Fa:llen sollte die parallele
   Schnittstelle von ifconfig(8) angezeigt werden:

 # ifconfig plip0
 plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500

   Verbinden Sie die parallelen Schnittstellen der beiden Computer
   u:ber das (Laplink-)Kabel.

   Konfigurieren Sie die Netzwerkparameter auf beiden Rechnern als
   root. Wenn Sie beispielsweise den Rechner host1 mit dem Rechner
   host2 verbinden wollen, gehen Sie folgendermassen vor:

                  host1 <-----> host2
 IP Address    10.0.0.1      10.0.0.2

   Richten Sie die parallele Schnittstelle von host1 ein, indem Sie
   Folgendes eingeben:

 # ifconfig plip0 10.0.0.1 10.0.0.2

   Danach richten Sie die parallele Schnittstelle von host2 ein:

 # ifconfig plip0 10.0.0.2 10.0.0.1

   Sie sollten nun u:ber eine funktionierende Verbindung verfu:gen.
   Bei Problemen lesen Sie bitte die Hilfeseiten lp(4) sowie lpt(4).

   Zusa:tzlich sollten beide Rechner in /etc/hosts eingetragen
   werden:

 127.0.0.1               localhost.my.domain localhost
 10.0.0.1                host1.my.domain host1
 10.0.0.2                host2.my.domain host2

   Um die Verbindung zu u:berpru:fen, pingen Sie jeden Rechner vom
   anderen Rechner aus an. Auf host1 gehen Sie dazu folgendermassen
   vor:

 # ifconfig plip0
 plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
         inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
 # netstat -r
 Routing tables

 Internet:
 Destination        Gateway          Flags     Refs     Use      Netif Expire
 host2              host1              UH          0       0       plip0
 # ping -c 4 host2
 PING host2 (10.0.0.2): 56 data bytes
 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms

 --- host2 ping statistics ---
 4 packets transmitted, 4 packets received, 0% packet loss
 round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms

     --------------------------------------------------------------

32.11. IPv6 - Internet Protocol Version 6

   Beigetragen von Aaron Kaplan. U:berarbeitet und erweitert von Tom
   Rhodes. Erweitert von Brad Davis.

   Bei IPv6 (auch als IPng oder IP next generation bekannt) handelt
   es sich um die neueste Version des bekannten IP-Protokolls (das
   auch als IPv4 bezeichnet wird). FreeBSD entha:lt, genauso wie die
   anderen frei erha:ltlichen BSD-Systeme, die
   IPv6-Referenzimplementation von KAME. FreeBSD erfu:llt damit
   bereits alle fu:r die Nutzung von IPv6 no:tigen Voraussetzungen.
   Dieser Abschnitt konzentriert sich daher auf die Konfiguration und
   den Betrieb von IPv6.

   Anfang der 90er Jahre wurde man auf den stark steigenden Verbrauch
   von IPv4-Adressen aufmerksam. Im Hinblick auf das Wachstums des
   Internets gab es zwei Hauptsorgen:

     * Die drohende Knappheit von IPv4-Adressen. Dieses Problem
       konnte durch die Einfu:hrung von privaten Adressra:umen
       gema:ss RFC1918 (mit Adressen wie 10.0.0.0/8, 172.16.0.0/12,
       oder 192.168.0.0/16) sowie der Entwicklung von Network Address
       Translation (NAT) weitestgehend entscha:rft werden.

     * Die immer gro:sser werdenden Eintra:ge in Router-Tabellen.
       Dieses Problem ist auch heute noch aktuell.

   IPv6 ist in der Lage, diese, aber auch viele andere Probleme zu
   lo:sen:

     * IPv6 hat einen 128 Bit grossen Adressraum. Es sind also
       theoretisch
       340.282.366.920.938.463.463.374.607.431.768.211.456 Adressen
       verfu:gbar. In anderen Worten: Fu:r jeden Quadratmeter der
       Erdoberfla:che sind etwa 6,67 * 10^27 IPv6-Adressen
       verfu:gbar.

     * Router speichern nur noch Netzwerk-Aggregationsadressen in
       Ihren Routingtabellen. Dadurch reduziert sich die
       durchschnittliche Gro:sse einer Routingtabelle auf
       8192 Eintra:ge.

   Weitere nu:tzliche Eigenschaften von IPv6 sind:

     * Die automatische Konfiguration von Adressen, die im RFC2462
       beschrieben wird.

     * Anycast-Adressen ("eine-von-vielen")

     * Verpflichtende Multicast-Adressen

     * Die Unterstu:tzung von IPsec (IP-Security)

     * Eine vereinfachte Headerstruktur

     * Mobile IP-Adressen

     * Die Umwandlung von IPv4- in IPv6-Adressen

   Weitere Informationsquellen:

     * Beschreibung von IPv6 auf playground.sun.com

     * KAME.net

     --------------------------------------------------------------

  32.11.1. Hintergrundinformationen zu IPv6-Adressen

   Es gibt verschiedene Arten von IPv6-Adressen: Unicast-, Anycast-
   und Multicast-Adressen.

   Unicast-Adressen sind die herko:mlichen Adressen. Ein Paket, das
   an eine Unicast-Adresse gesendet wird, kommt nur an der
   Schnittstelle an, die dieser Adresse zugeordnet ist.

   Anycast-Adressen unterscheiden sich in ihrer Syntax nicht von
   Unicast-Adressen, sie wa:hlen allerdings aus mehreren
   Schnittstellen eine Schnittstelle aus. Ein fu:r eine
   Anycast-Adresse bestimmtes Paket kommt an der na:chstgelegenen
   (entsprechend der Router-Metrik) Schnittstelle an.
   Anycast-Adressen werden nur von Routern verwendet.

   Multicast-Adressen bestimmen Gruppen, denen mehrere Schnittstellen
   angeho:ren. Ein Paket, das an eine Multicast-Adresse geschickt
   wird, kommt an allen Schnittstellen an, die zur Multicast-Gruppe
   geho:ren.

     Anmerkung: Die von IPv4 bekannte Broadcast-Adresse
     (normalerweise xxx.xxx.xxx.255) wird bei IPv6 durch
     Multicast-Adressen verwirklicht.

   Tabelle 32-2. Reservierte IPv6-Adressen

     IPv6-Adresse   Pra:fixla:nge   Beschreibung      Anmerkungen     
   ::               128 Bit       nicht festgelegt entspricht 0.0.0.0 
                                                   bei IPv4           
   ::1              128 Bit       Loopback-Adresse entspricht         
                                                   127.0.0.1 bei IPv4 
                                                   Die niedrigen      
                                                   32 Bit entsprechen 
                                  Eingebettete     der IPv4-Adresse.  
   ::00:xx:xx:xx:xx 96 Bit        IPv4-Adresse     Wird auch als      
                                                   "IPv4-kompatible   
                                                   IPv6-Adresse       
                                                   bezeichnet".       
                                                   Die niedrigen      
                                                   32 Bit entsprechen 
                                  Eine auf IPv6    der IPv4-Adresse.  
   ::ff:xx:xx:xx:xx 96 Bit        abgebildete      Notwendig fu:r     
                                  IPv4-Adresse     Rechner, die IPv6  
                                                   nicht              
                                                   unterstu:tzen.     
                                                   Entspricht der     
   fe80:: - feb::   10 Bit        link-local       Loopback-Adresse   
                                                   bei IPv4           
   fec0:: - fef::   10 Bit        site-local                          
   ff::             8 Bit         Multicast                           
                                                   Alle globalen      
                                                   Unicastadressen    
   001 (im          3 Bit         Globaler Unicast stammen aus diesem 
   Dualsystem)                                     Pool. Die ersten   
                                                   3 Bit lauten       
                                                   "001".             

     --------------------------------------------------------------

  32.11.2. IPv6-Adressen verstehen

   Die kanonische Form von IPv6-Adressen lautet x:x:x:x:x:x:x:x,
   jedes "x" steht dabei fu:r einen 16-Bit-Hexadezimalwert. Ein
   Beispiel fu:r eine IPv6-Adresse wa:re etwa
   FEBC:A574:382B:23C1:AA49:4592:4EFE:9982.

   Eine IPv6-Adresse entha:lt oft Teilzeichenfolgen aus lauter
   Nullen. Eine solche Zeichenfolge kann zu "::" verku:rzt werden.
   Bis zu drei fu:hrende Nullen eines Hexquads ko:nnen ebenfalls
   weggelassen werden. fe80::1 entspricht also der Adresse
   fe80:0000:0000:0000:0000:0000:0000:0001.

   Eine weitere Mo:glichkeit ist die Darstellung der letzten 32 Bit
   in der bekannten (dezimalen) IPv4-Darstellung, bei der Punkte
   (".") zur Trennung verwendet werden. 2002::10.0.0.1 ist also nur
   eine andere Schreibweise fu:r die (hexadezimale) kanonische Form
   2002:0000:0000:0000:0000:0000:0a00:0001, die wiederum der Adresse
   2002::a00:1 entspricht.

   Sie sollten nun in der Lage sein, die folgende Ausgabe zu
   verstehen:

 # ifconfig
 rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
          inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
          inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
          ether 00:00:21:03:08:e1
          media: Ethernet autoselect (100baseTX )
          status: active

   Bei fe80::200:21ff:fe03:8e1%rl0 handelt es sich um eine
   automatisch konfigurierte link-local-Adresse. Sie wird im Rahmen
   der automatischen Konfiguration aus der MAC-Adresse erzeugt.

   Weitere Informationen zum Aufbau von IPv6-Adressen finden Sie im
   RFC3513.

     --------------------------------------------------------------

  32.11.3. Eine IPv6-Verbindung herstellen

   Es gibt derzeit vier Mo:glichkeiten, sich mit anderen
   IPv6-Rechnern oder Netzwerken zu verbinden:

     * Fragen Sie Ihren Internetprovider, ob er IPv6 bereits
       unterstu:tzt.

     * SixXS bietet weltweit IPv6-Tunnelverbindungen an.

     * Die Verwendung eines 6-nach-4-Tunnels (RFC3068).

     * Die Verwendung des Ports /usr/ports/net/freenet6 bei der
       Einwahl ins Internet.

     --------------------------------------------------------------

  32.11.4. DNS in der IPv6-Welt

   Urspru:nglich gab es zwei verschiedene DNS-Eintra:ge fu:r IPv6. Da
   A6-Eintra:ge von der IETF fu:r obsolet erkla:rt wurden, sind
   AAAA-Eintra:ge nun Standard.

   Weisen Sie die erhaltene IPv6-Adresse Ihrem Rechnernamen zu, indem
   Sie den Eintrag

 MYHOSTNAME           AAAA    MYIPv6ADDR

   in Ihre prima:re DNS-Zonendatei einfu:gen. Falls Sie nicht fu:r
   Ihre DNS-Zone verantwortlich sind, bitten Sie den dafu:r
   Zusta:ndigen, diese A:nderung durchzufu:hren. Die aktuellen
   Versionen von bind (Version 8.3 oder 9) sowie dns/djbdns (bei
   Verwendung des IPv6-Patches) unterstu:tzen AAAA-Eintra:ge.

     --------------------------------------------------------------

  32.11.5. /etc/rc.conf fu:r die Nutzung von IPv6 anpassen

    32.11.5.1. Einen Client unter IPv6 einrichten

   Dieser Abschnitt beschreibt die Konfiguration eines Rechners, der
   in Ihrem LAN als Client, aber nicht als Router verwendet wird. Um
   die Schnittstelle wa:hrend des Systemstarts mit rtsol(8)
   automatisch einzurichten, fu:gen Sie folgende Zeile in
   /etc/rc.conf ein:

 ipv6_enable="YES"

   Durch die folgende Zeile weisen Sie Ihrer Schnittstelle fxp0 die
   statische IP-Adresse 2001:471:1f11:251:290:27ff:fee0:2093 zu:

 ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"

   Um 2001:471:1f11:251::1 als Standardrouter festzulegen, fu:gen Sie
   folgende Zeile in /etc/rc.conf ein:

 ipv6_defaultrouter="2001:471:1f11:251::1"

     --------------------------------------------------------------

    32.11.5.2. Gateways und Router unter IPv6 einrichten

   Dieser Abschnitt beschreibt, wie Sie Ihren Rechner mit Hilfe der
   von Ihrem Tunnel-Anbieter erhaltenen Anweisungen dauerhaft fu:r
   die Nutzung von IPv6 einrichten. Um den Tunnel beim Systemstart
   wiederherzustellen, passen Sie /etc/rc.conf wie folgt an:

   Listen Sie die einzurichtenden Tunnelschnittstellen (hier gif0)
   auf:

 gif_interfaces="gif0"

   Um den lokalen Endpunkt MY_IPv4_ADDR u:ber diese Schnittstelle mit
   dem entfernten Endpunkt REMOTE_IPv4_ADDR zu verbinden, verwenden
   Sie folgende Zeile:

 gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"

   Um die Ihnen zugewiesene IPv6-Adresse als Endpunkt Ihres
   IPv6-Tunnels zu verwenden, fu:gen Sie folgende Zeile ein:

 ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"

   Nun mu:ssen Sie nur noch die IPv6-Standardroute angeben. Diese
   legt das andere Ende des IPv6-Tunnels fest.

 ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"

     --------------------------------------------------------------

    32.11.5.3. Einen IPv6-Tunnel einrichten

   Wenn Ihr Server IPv6-Verkehr zwischen Ihrem Netzwerk und der
   Aussenwelt routen muss, beno:tigen Sie zusa:tzlich die folgenden
   Zeilen in Ihrer /etc/rc.conf:

 ipv6_gateway_enable="YES"

     --------------------------------------------------------------

  32.11.6. Bekanntmachung von Routen und automatische
  Rechnerkonfiguration

   Dieser Abschnitt beschreibt die Einrichtung von rtadvd(8), das Sie
   bei der Bekanntmachung der IPv6-Standardroute unterstu:tzt.

   Um rtadvd(8) zu aktivieren, fu:gen Sie folgende Zeile in
   /etc/rc.conf ein:

 rtadvd_enable="YES"

   Es ist wichtig, die Schnittstelle anzugeben, u:ber die IPv6-Routen
   bekanntgemacht werden sollen. Soll rtadvd(8) fxp0 verwenden, ist
   folgender Eintrag no:tig:

 rtadvd_interfaces="fxp0"

   Danach erzeugen Sie die Konfigurationsdatei /etc/rtadvd.conf. Dazu
   ein Beispiel:

 fxp0:\
     :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:

   Ersetzen Sie dabei fxp0 durch die zu verwendende Schnittstelle.

   Anschliessend ersetzen Sie 2001:471:1f11:246:: durch das Pra:fix
   der Ihnen zugewiesenen Verbindung.

   Wenn Sie eine /64-Netzmaske verwenden, mu:ssen Sie keine weiteren
   Anpassungen vornehmen. Anderenfalls mu:ssen Sie prefixlen# auf den
   korrekten Wert setzen.

     --------------------------------------------------------------

32.12. ATM - Asynchronous Transfer Mode

   Beigetragen von Harti Brandt.

  32.12.1. Classical IP over ATM als PVC-Verbindung einrichten

   Classical IP over ATM (CLIP) ist die einfachste Mo:glichkeit, um
   IP-Verkehr u:ber ATM (Asynchronous Transfer Mode-Verbindungen zu
   u:bertragen. CLIP kann sowohl mit geschalteten Verbindungen (SVCs)
   als auch mit permanenten Verbindungen (PVCs) verwendet werden.
   Dieser Abschnitt beschreibt die Einrichtung eines PVC-basierten
   Netzwerks.

     --------------------------------------------------------------

    32.12.1.1. Ein vollsta:ndig vermaschtes Netzwerk aufbauen

   Bei einem vollsta:ndig vermaschten (fully meshed) Netzwerk ist
   jeder Rechner u:ber eine dezidierte Verbindung mit jedem anderen
   Rechner des Netzwerks verbunden. Die Konfiguration ist - vor allem
   fu:r kleinere Netzwerke - relativ einfach. Unser Beispielnetzwerk
   besteht aus vier Rechnern, die jeweils u:ber eine ATM-Adapterkarte
   mit dem ATM-Netzwerk verbunden sind. Als ersten
   Konfigurationsschritt planen wir die Vergabe von IP-Adressen sowie
   die anzulegenden ATM-Verbindungen:

               Rechner                         IP-Adresse             
   hostA                            192.168.173.1                     
   hostB                            192.168.173.2                     
   hostC                            192.168.173.3                     
   hostD                            192.168.173.4                     

   Um ein vollsta:ndiges Netz aufzubauen, beno:tigen wir fu:r jedes
   Rechnerpaar eine eigene ATM-Verbindung:

              Rechnerpaar                      VPI.VCI-Paar           
   hostA - hostB                     0.100                            
   hostA - hostC                     0.101                            
   hostA - hostD                     0.102                            
   hostB - hostC                     0.103                            
   hostB - hostD                     0.104                            
   hostC - hostD                     0.105                            

   Die Werte VPI und VCI an den Verbindungsenden ko:nnen natu:rlich
   unterschiedlich sein. Wir nehmen hier aber an, dass sie gleich
   sind. Nun mu:ssen wir die ATM-Schnittstellen auf jedem Rechner
   einrichten:

 hostA# ifconfig hatm0 192.168.173.1 up
 hostB# ifconfig hatm0 192.168.173.2 up
 hostC# ifconfig hatm0 192.168.173.3 up
 hostD# ifconfig hatm0 192.168.173.4 up

   Dabei setzen wir voraus, dass hatm0 auf allen Rechnern die
   ATM-Schnittstelle darstellt. Danach werden, beginnend mit hostA,
   die PVCs auf den einzelnen Rechnern eingerichtet (Wir nehmen an,
   dass die PVCs auf den ATM-Switches bereits eingerichet sind. Lesen
   Sie die entsprechenden Handbu:cher, wenn Sie einen Switch
   einrichten mu:ssen.):

 hostA# atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
 hostA# atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
 hostA# atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr

 hostB# atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
 hostB# atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
 hostB# atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr

 hostC# atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
 hostC# atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
 hostC# atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr

 hostD# atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
 hostD# atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
 hostD# atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr

   Statt UBR ko:nnen auch andere traffic contracts verwendet werden.
   Voraussetzung ist allerdings, dass diese von Ihrem ATM-Adapter
   unterstu:tzt werden. Ist dies der Fall, folgen auf den Namen des
   traffic contracts die entsprechenden Konfigurationsparameter.
   Weitere Informationen zur Konfiguration von ATM-Adapterkarten
   erhalten Sie u:ber den Befehl

 # atmconfig help natm add

   oder durch das Lesen von atmconfig(8).

   Die Konfiguration von ATM-Adaptern kann auch u:ber die Datei
   /etc/rc.conf erfolgen. Fu:r hostA sa:he die Konfiguration so aus:

 network_interfaces="lo0 hatm0"
 ifconfig_hatm0="inet 192.168.173.1 up"
 natm_static_routes="hostB hostC hostD"
 route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
 route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
 route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"

   Mit dem folgenden Befehl la:sst sich der derzeitige Status aller
   CLIP-Routen anzeigen:

 hostA# atmconfig natm show

     --------------------------------------------------------------

32.13. CARP - Common Address Redundancy Protocol

   Beigetragen von Tom Rhodes.

   Das Common Address Redundancy Protocol (CARP) erlaubt es, mehreren
   Rechnern die gleiche IP-Adresse zuzuweisen. Durch ein solches
   Vorgehen la:sst sich beispielsweise die Verfu:gbarkeit bestimmter
   Dienste verbessern oder die Last zwischen einzelnen Systemen
   besser verteilen. Den auf diese Art und Weise konfigurierten
   Systemen kann zusa:tzlich eine eigene (im Netzwerk eindeutige)
   IP-Adresse zugewiesen werden (wie dies auch im folgenden Beispiel
   erfolgt).

   Um CARP zu aktivieren, mu:ssen Sie die
   FreeBSD-Kernelkonfigurationsdatei um die folgende Option erweitern
   und danach den FreeBSD-Kernel (wie in Kapitel 9 beschrieben) neu
   bauen:

 device  carp

   Alternativ ko:nnen Sie aber auch das Kernelmodul if_carp.ko beim
   Systemstart automatisch laden. Dazu nehmen Sie die folgende Zeile
   in die Datei /boot/loader.conf auf:

 if_carp_load="YES"

   Danach ist CARP auf Ihrem System verfu:gbar und kann u:ber
   verschiedene sysctl-Optionen (OIDs) gesteuert werden.

                OID                          Beschreibung             
   net.inet.carp.allow            Akzeptiert ankommende CARP-Pakete.  
                                  In der Voreinstellung aktiviert.    
                                  Diese Option deaktiviert alle       
   net.inet.carp.preempt          CARP-Gera:te, sobald eines von      
                                  ihnen ausfa:llt. In der             
                                  Voreinstellung deaktiviert.         
                                  Hat diese Variable den Wert 0, wird 
                                  kein Protokoll generiert, wa:hrend  
                                  mit dem Wert 1 nur inkorrekte       
                                  CARP-Pakete protokolliert werden.   
   net.inet.carp.log              Hat die Variable einen Wert         
                                  gro:sser 1, werden nur die          
                                  Statuswechsel von CARP-Gera:ten     
                                  protokolliert. In der               
                                  Voreinstellung hat diese Variable   
                                  den Wert 1.                         
                                  Gleicht die Netzwerklast im lokalen 
   net.inet.carp.arpbalance       Netzwerk durch den Einsatz von ARP  
                                  aus. In der Voreinstellung          
                                  deaktiviert.                        
                                  Eine nur lesbare OID, die den       
                                  Preemption Suppression-Status       
                                  anzeigt. Preemption kann verhindert 
                                  werden. Dies auch dann, wenn ein    
   net.inet.carp.suppress_preempt Gera:t ausfa:llt. Hat die Variable  
                                  den Wert 0, bedeutet dies, dass     
                                  Preemption nicht verhindert wird.   
                                  Tritt ein Problem auf, wird der     
                                  Wert dieser OID um 1 erho:ht.       

   Das CARP-Gera:t selbst erzeugen Sie mit dem ifconfig-Befehl:

 # ifconfig carp0 create

   Damit Sie dieses Protokoll in Ihrem Netzwerk einsetzen ko:nnen,
   muss jede Netzwerkkarte eine eindeutige Identifikationsnummer, die
   sogenannte VHID (Virtual Host Identification), besitzen, da sich
   ansonsten die Rechner Ihres Netzwerks nicht voneinander
   unterscheiden lassen.

     --------------------------------------------------------------

  32.13.1. Die Serververfu:gbarkeit mit CARP verbessern

   Wie bereits weiter oben erwa:hnt wurde, ko:nnen Sie CARP dazu
   verwenden, die Verfu:barkeit Ihrer Server zu verbessern. Im
   folgenden Bespiel werden insgesamt drei Server (mit jeweils
   eigener, eindeutiger IP-Adresse), die alle den gleichen Inhalt
   anbieten, in einer Round Robin DNS-Konfiguration eingerichtet. Der
   Backup-Server verfu:gt u:ber zwei CARP-Schnittstellen (fu:r die
   beiden IP-Adressen der Content-Server). Tritt bei einem
   Content-Server ein Problem auf, u:bernimmt der Backup-Server die
   IP-Adresse des ausgefallenen Servers. Dadurch sollte die Auswahl
   eines Servers vom Anwender nicht bemerkt werden. Der Backup-Server
   muss identisch konfiguriert sein und die gleichen Daten und
   Dienste anbieten wie das System, das er ersetzen soll.

   Die beiden Content-Server werden (abgesehen von ihren jeweiligen
   Hostnamen und VHIDs) identisch konfiguriert und heissen in unserem
   Beispiel hosta.example.org beziehungsweise hostb.example.org.
   Damit Sie CARP einsetzen ko:nnen, mu:ssen Sie als Erstes die Datei
   rc.conf auf beiden Systemen anpassen. Fu:r das System
   hosta.example.org nehmen Sie dazu folgende Zeilen in rc.conf auf:

 hostname="hosta.example.org"
 ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
 cloned_interfaces="carp0"
 ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"

   Fu:r das System hostb.example.org beno:tigen Sie zusa:tzlich
   folgende Zeilen in rc.conf:

 hostname="hostb.example.org"
 ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
 cloned_interfaces="carp0"
 ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"

     Anmerkung: Achten Sie unbedingt darauf, dass die durch die
     Option pass an ifconfig u:bergebenen Passwo:rter auf beiden
     Systemen identisch sind, da carp-Gera:te nur mit Systemen
     kommunizieren ko:nnen, die u:ber ein korrektes Passwort
     verfu:gen. Beachten Sie weiters, dass sich die VHIDs der beiden
     Systeme unterscheiden mu:ssen.

   Nun richten Sie noch das dritte System, provider.example.org, ein,
   das aktiviert wird, wenn eines der beiden zuvor konfigurierten
   Systeme ausfa:llt. Dieses dritte System beno:tigt zwei
   carp-Gera:te, um bei Bedarf eines der beiden anderen Systeme
   ersetzen zu ko:nnen. Dazu konfigurieren Sie rc.conf analog zur
   folgenden Beispielkonfiguration:

 hostname="provider.example.org"
 ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
 cloned_interfaces="carp0 carp1"
 ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
 ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"

   Durch die beiden carp-Gera:te ist es provider.example.org
   mo:glich, festzustellen, ob eines der beiden anderen Systeme nicht
   mehr reagiert. In diesem Fall u:bernimmt provider.example.org die
   IP-Adresse des betroffenen Systems.

     Anmerkung: Ist im installierten FreeBSD-Kernel die Option
     "preemption" aktiviert, kann es sein, dass provider.example.org
     die u:bernommene IP-Adresse nicht mehr an den Content-Server
     zuru:ckgibt (wenn dieser wieder funktioniert). In diesem Fall
     muss ein Administrator die entsprechende Schnittstelle dazu
     zwingen, dies zu tun. Dazu gibt er auf dem Rechner
     provider.example.org den folgenden Befehl ein:

 # ifconfig carp0 down && ifconfig carp0 up

     Dieser Befehl muss auf das carp-Gera:t ausgefu:hrt werden, das
     dem betroffenen System zugeordnet ist.

   Damit ist CARP vollsta:ndig konfiguriert und der Testbetrieb kann
   beginnen. Zuvor mu:ssen Sie allerdings noch alle Systeme neu
   starten (beziehungsweise die Netzwerkkonfiguration auf allen
   Systemen neu einlesen), um die Einstelllungen zu u:bernehmen.

   Fu:r weitere Informtionen lesen Sie bitte die Manualpage carp(4).

                               V. Anhang

   Inhaltsverzeichnis

   A. Bezugsquellen fu:r FreeBSD

   B. Bibliografie

   C. Ressourcen im Internet

   D. PGP Schlu:ssel

     --------------------------------------------------------------

                  Anhang A. Bezugsquellen fu:r FreeBSD

A.1. CD-ROM und DVD Verleger

  A.1.1. FreeBSD-Pakete

   FreeBSD-Pakete (FreeBSD-CDs, zusa:tzliche Software und gedruckte
   Dokumentation) erhalten Sie von mehreren Ha:ndlern:

     *     CompUSA
           WWW: http://www.compusa.com/
         

     *     Frys Electronics
           WWW: http://www.frys.com/
         

     --------------------------------------------------------------

  A.1.2. FreeBSD-CDs und -DVDs

   Die FreeBSD-CDs und -DVDs werden von vielen Online-Ha:ndlern
   angeboten:

     *     FreeBSD Mall, Inc.
           700 Harvest Park Ste F
           Brentwood, CA  94513
           USA
           Telefon: +1 925 240-6652
           Fax: +1 925 674-0821
           E-Mail: <info@freebsdmall.com>
           WWW: http://www.freebsdmall.com/
         

     *     Dr. Hinner EDV
           St. Augustinus-Str. 10
           D-81825 Mu:nchen
           Germany
           Telefon: (089) 428 419
           WWW: http://www.hinner.de/linux/freebsd.html
                 

     *     Ikarios
           22-24 rue Voltaire
           92000 Nanterre
           France
           WWW: http://ikarios.com/form/#freebsd
         

     *     JMC Software
           Ireland
           Telefon: 353 1 6291282
           WWW: http://www.thelinuxmall.com
         

     *     The Linux Emporium
           Hilliard House, Lester Way
           Wallingford
           OX10 9TA
           United Kingdom
           Telefon: +44 1491 837010
           Fax: +44 1491 837016
           WWW: http://www.linuxemporium.co.uk/products/bsd/
         

     *     Linux+ DVD Magazine
           Lewartowskiego 6
           Warsaw
           00-190
           Poland
           Telefon: +48 22 860 18 18
           E-Mail: <editors@lpmagazine.org>
           WWW: http://www.lpmagazine.org/
         

     *     Linux System Labs Australia
           21 Ray Drive
           Balwyn North
           VIC - 3104
           Australia
           Telefon: +61 3 9857 5918
           Fax: +61 3 9857 8974
           WWW: http://www.lsl.com.au/
                 

     *     LinuxCenter.Ru
           Galernaya Street, 55
           Saint-Petersburg
           190000
           Russia
           Telefon: +7-812-3125208
           E-Mail: <info@linuxcenter.ru>
           WWW: http://linuxcenter.ru/shop/freebsd
         

     --------------------------------------------------------------

  A.1.3. Lieferanten

   Wenn Sie FreeBSD-CD-ROM-Produkte weiterverkaufen mo:chten,
   kontaktieren Sie einen der folgenden Lieferanten:

     *     Cylogistics
           809B Cuesta Dr., #2149
           Mountain View, CA 94040
           USA
           Telefon: +1 650 694-4949
           Fax: +1 650 694-4953
           E-Mail: <sales@cylogistics.com>
           WWW: http://www.cylogistics.com/
         

     *     Ingram Micro
           1600 E. St. Andrew Place
           Santa Ana, CA 92705-4926
           USA
           Telefon: 1 (800) 456-8000
           WWW: http://www.ingrammicro.com/
         

     *     Kudzu, LLC
           7375 Washington Ave. S.
           Edina, MN 55439
           USA
           Telefon: +1 952 947-0822
           Fax: +1 952 947-0876
           E-Mail: <sales@kudzuenterprises.com>
         

     *     LinuxCenter.Kz
           Ust-Kamenogorsk
           Kazakhstan
           Telefon: +7-705-501-6001
           E-Mail: <info@linuxcenter.kz>
           WWW:  http://linuxcenter.kz/page.php?page=fr
         

     *     LinuxCenter.Ru
           Galernaya Street, 55
           Saint-Petersburg
           190000
           Russia
           Telefon: +7-812-3125208
           E-Mail: <info@linuxcenter.ru>
           WWW:  http://linuxcenter.ru/freebsd
         

     *     Navarre Corp
           7400 49th Ave South
           New Hope, MN 55428
           USA
           Telefon: +1 763 535-8333
           Fax: +1 763 535-0341
           WWW: http://www.navarre.com/
         

     --------------------------------------------------------------

A.2. FTP-Server

   Die offiziellen Quellen von FreeBSD sind mit anonymous FTP u:ber
   ein weltweites Netz von FTP-Spiegeln erha:ltlich. Obwohl
   ftp://ftp.FreeBSD.org/pub/FreeBSD/ u:ber eine gute Anbindung
   verfu:gt, sollten Sie einen Spiegel in Ihrer Na:he verwenden
   (insbesondere, wenn Sie selber einen Spiegel einrichten wollen).

   Sie ko:nnen FreeBSD auch u:ber anonymous FTP von den folgenden
   Spiegeln beziehen. Wenn Sie FreeBSD u:ber anonymous FTP beziehen
   wollen, wa:hlen Sie bitte einen Spiegel in Ihrer Na:he. Die unter
   "Haupt-Spiegel" aufgefu:hrten Spiegel stellen normalerweise das
   komplette FreeBSD-Archiv (alle momentan erha:ltlichen Versionen
   fu:r jede unterstu:tzte Architektur) zur Verfu:gung.
   Wahrscheinlich geht es aber schneller, wenn Sie einen Spiegel in
   Ihrer Na:he benutzen. Die La:nder-Spiegel stellen die neusten
   Versionen fu:r die beliebtesten Architekturen bereit, sie stellen
   aber unter Umsta:nden nicht das komplette FreeBSD-Archiv bereit.
   Auf alle Server kann mit anonymous FTP zugegriffen werden, einige
   Server bieten auch andere Zugriffsmethoden an. Die zur Verfu:gung
   stehenden Zugriffsmethoden sind bei jedem Server in Klammern
   angegeben.

   Hauptserver, Hauptspiegel, Argentinien, Armenien, Australien,
   Brasilien, Bulgarien, China, Da:nemark, Deutschland, Estland,
   Finnland, Frankreich, Griechenland, Grossbritannien, Hong Kong,
   Irland, Island, Israel, Italien, Japan, Kanada, Korea, Lettland,
   Litauen, Neuseeland, Niederlande, Norwegen, O:sterreich, Polen,
   Portugal, Ruma:nien, Russland, Saudi Arabien, Schweden, Schweiz,
   Singapur, Slowakische Republik, Slowenien, Spanien, Su:dafrika,
   Taiwan, Tschechische Republik, Tu:rkei, Ukraine, Ungarn, USA.

   (aktualisiert am: 2012/03/27 22:06:38 UTC)

   Hauptserver

              * ftp://ftp.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

   Hauptspiegel

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <mirror-admin@FreeBSD.org> dieser Domain.

              * ftp://ftp1.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

              * ftp://ftp5.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp9.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp10.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

              * ftp://ftp11.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp12.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp13.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp14.FreeBSD.org/pub/FreeBSD/ (ftp / http)

   Argentinien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ar.FreeBSD.org> dieser Domain.

              * ftp://ftp.ar.FreeBSD.org/pub/FreeBSD/ (ftp)

   Armenien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@am.FreeBSD.org> dieser Domain.

              * ftp://ftp1.am.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

   Australien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@au.FreeBSD.org> dieser Domain.

              * ftp://ftp.au.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.au.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.au.FreeBSD.org/pub/FreeBSD/ (ftp)

   Brasilien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@br.FreeBSD.org> dieser Domain.

              * ftp://ftp.br.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp2.br.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp3.br.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp4.br.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp5.br.FreeBSD.org

              * ftp://ftp6.br.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.br.FreeBSD.org/pub/FreeBSD/ (ftp)

   Bulgarien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@bg.FreeBSD.org> dieser Domain.

              * ftp://ftp.bg.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp2.bg.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

   China

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@cn.FreeBSD.org> dieser Domain.

              * ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ (ftp)

   Da:nemark

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@dk.FreeBSD.org> dieser Domain.

              * ftp://ftp.dk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

   Deutschland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <de-bsd-hubs@de.FreeBSD.org> dieser Domain.

              * ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp1.de.FreeBSD.org/freebsd/ (ftp / http /
                rsync)

              * ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp3.de.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.de.FreeBSD.org/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.de.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp8.de.FreeBSD.org/pub/FreeBSD/ (ftp)

   Estland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ee.FreeBSD.org> dieser Domain.

              * ftp://ftp.ee.FreeBSD.org/pub/FreeBSD/ (ftp)

   Finnland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@fi.FreeBSD.org> dieser Domain.

              * ftp://ftp.fi.FreeBSD.org/pub/FreeBSD/ (ftp)

   Frankreich

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@fr.FreeBSD.org> dieser Domain.

              * ftp://ftp.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp1.fr.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp2.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.fr.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp5.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.fr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp7.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.fr.FreeBSD.org/pub/FreeBSD/ (ftp)

   Griechenland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@gr.FreeBSD.org> dieser Domain.

              * ftp://ftp.gr.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.gr.FreeBSD.org/pub/FreeBSD/ (ftp)

   Grossbritannien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@uk.FreeBSD.org> dieser Domain.

              * ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.uk.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp3.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.uk.FreeBSD.org/pub/FreeBSD/ (ftp)

   Hong Kong

              * ftp://ftp.hk.FreeBSD.org/pub/FreeBSD/ (ftp)

   Irland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ie.FreeBSD.org> dieser Domain.

              * ftp://ftp.ie.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.ie.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp3.ie.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

   Island

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@is.FreeBSD.org> dieser Domain.

              * ftp://ftp.is.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

   Israel

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@il.FreeBSD.org> dieser Domain.

              * ftp://ftp.il.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6)

   Italien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@it.FreeBSD.org> dieser Domain.

              * ftp://ftp.it.FreeBSD.org/pub/FreeBSD/ (ftp)

   Japan

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@jp.FreeBSD.org> dieser Domain.

              * ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp9.jp.FreeBSD.org/pub/FreeBSD/ (ftp)

   Kanada

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ca.FreeBSD.org> dieser Domain.

              * ftp://ftp.ca.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.ca.FreeBSD.org/ (ftp)

              * ftp://ftp3.ca.FreeBSD.org/pub/FreeBSD/ (ftp)

   Korea

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@kr.FreeBSD.org> dieser Domain.

              * ftp://ftp.kr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp2.kr.FreeBSD.org/pub/FreeBSD/ (ftp / http)

   Lettland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@lv.FreeBSD.org> dieser Domain.

              * ftp://ftp.lv.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp2.lv.FreeBSD.org/pub/FreeBSD/ (ftp)

   Litauen

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@lt.FreeBSD.org> dieser Domain.

              * ftp://ftp.lt.FreeBSD.org/pub/FreeBSD/ (ftp / http)

   Neuseeland

              * ftp://ftp.nz.FreeBSD.org/pub/FreeBSD/ (ftp / http)

   Niederlande

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@nl.FreeBSD.org> dieser Domain.

              * ftp://ftp.nl.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp2.nl.FreeBSD.org/pub/FreeBSD/ (ftp)

   Norwegen

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@no.FreeBSD.org> dieser Domain.

              * ftp://ftp.no.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp3.no.FreeBSD.org/pub/FreeBSD/ (ftp)

   O:sterreich

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@at.FreeBSD.org> dieser Domain.

              * ftp://ftp.at.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

   Polen

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@pl.FreeBSD.org> dieser Domain.

              * ftp://ftp.pl.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.pl.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6 / rsync / rsyncv6)

   Portugal

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@pt.FreeBSD.org> dieser Domain.

              * ftp://ftp.pt.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.pt.FreeBSD.org/pub/freebsd/ (ftp)

              * ftp://ftp4.pt.FreeBSD.org/pub/ISO/FreeBSD/ (ftp)

   Ruma:nien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ro.FreeBSD.org> dieser Domain.

              * ftp://ftp.ro.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp1.ro.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

   Russland

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ru.FreeBSD.org> dieser Domain.

              * ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp2.ru.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp3.ru.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.ru.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.ru.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp6.ru.FreeBSD.org/pub/FreeBSD/ (ftp)

   Saudi Arabien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <ftpadmin@isu.net.sa> dieser Domain.

              * ftp://ftp.isu.net.sa/pub/ftp.freebsd.org/ (ftp)

   Schweden

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@se.FreeBSD.org> dieser Domain.

              * ftp://ftp.se.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.se.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp3.se.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.se.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6 / rsync / rsyncv6)

              * ftp://ftp5.se.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

   Schweiz

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@ch.FreeBSD.org> dieser Domain.

              * ftp://ftp.ch.FreeBSD.org/pub/FreeBSD/ (ftp / http)

   Singapur

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@sg.FreeBSD.org> dieser Domain.

              * ftp://ftp.sg.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

   Slowakische Republik

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@sk.FreeBSD.org> dieser Domain.

              * ftp://ftp.sk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6 / rsync / rsyncv6)

              * ftp://ftp2.sk.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

   Slowenien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@si.FreeBSD.org> dieser Domain.

              * ftp://ftp.si.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.si.FreeBSD.org/pub/FreeBSD/ (ftp)

   Spanien

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@es.FreeBSD.org> dieser Domain.

              * ftp://ftp.es.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp2.es.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.es.FreeBSD.org/pub/FreeBSD/ (ftp)

   Su:dafrika

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@za.FreeBSD.org> dieser Domain.

              * ftp://ftp.za.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.za.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.za.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.za.FreeBSD.org/pub/FreeBSD/ (ftp)

   Taiwan

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@tw.FreeBSD.org> dieser Domain.

              * ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                rsync / rsyncv6)

              * ftp://ftp2.tw.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6 / rsync / rsyncv6)

              * ftp://ftp3.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp5.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp6.tw.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp7.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp9.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp10.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp11.tw.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp12.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp13.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp14.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp15.tw.FreeBSD.org/pub/FreeBSD/ (ftp)

   Tschechische Republik

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@cz.FreeBSD.org> dieser Domain.

              * ftp://ftp.cz.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6 / rsync / rsyncv6)

              * ftp://ftp2.cz.FreeBSD.org/pub/FreeBSD/ (ftp / http)

   Tu:rkei

              * ftp://ftp.tr.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp2.tr.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

   Ukraine

              * ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp2.ua.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp8.ua.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp11.ua.FreeBSD.org/pub/FreeBSD/ (ftp)

   Ungarn

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@hu.FreeBSD.org> dieser Domain.

              * ftp://ftp.hu.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

   USA

           Bei Problemen wenden Sie sich bitte an den Betreuer
           <hostmaster@us.FreeBSD.org> dieser Domain.

              * ftp://ftp1.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp2.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp3.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp4.us.FreeBSD.org/pub/FreeBSD/ (ftp / ftpv6 /
                http / httpv6)

              * ftp://ftp5.us.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp6.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp7.us.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp8.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp9.us.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp10.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp11.us.FreeBSD.org/pub/FreeBSD/ (ftp)

              * ftp://ftp12.us.FreeBSD.org/pub/FreeBSD/ (ftp / rsync)

              * ftp://ftp13.us.FreeBSD.org/pub/FreeBSD/ (ftp / http /
                rsync)

              * ftp://ftp14.us.FreeBSD.org/pub/FreeBSD/ (ftp / http)

              * ftp://ftp15.us.FreeBSD.org/pub/FreeBSD/ (ftp)

     --------------------------------------------------------------

A.3. BitTorrent

   Die ISO-Images fu:r die Release-CDs sind via BitTorrent abrufbar.
   Eine Sammlung von Torrent-Dateien zum Herunterladen der Images ist
   unter http://torrents.freebsd.org:8080 verfu:gbar.

   Die BitTorrent Client-Software ist als Port net-p2p/py-bittorrent
   oder als vorkompiliertes Paket erha:ltlich.

   Nach dem Herunterladen der ISO-Images mit BitTorrent ko:nnen Sie
   diese auf CD oder DVD brennen, so wie im burncd-Abschnitt 19.6.3
   beschrieben.

     --------------------------------------------------------------

A.4. Anonymous CVS

  A.4.1. Einfu:hrung

   Anonymous CVS (oder anoncvs) dient zum Synchronisieren mit
   entfernten Repositories und steht mit den CVS Werkzeugen, die im
   FreeBSD Basissystem enthalten sind, zur Verfu:gung. Benutzer von
   FreeBSD ko:nnen damit unter anderem lesende Operationen auf den
   Anoncvs Servern des FreeBSD Projects durchfu:hren, ohne u:ber
   besondere Berechtigungen zu verfu:gen. Um es zu benutzen, setzen
   Sie einfach die CVSROOT Umgebungsvariable auf einen Anoncvs Server
   und geben beim Login mit cvs login das Passwort anoncvs an. Danach
   ko:nnen Sie mit cvs(1) wie auf jedes lokale Repository (allerdings
   nur lesend) zugreifen.

     Anmerkung: cvs login speichert Passwo:rter zur Authentifizierung
     an einem CVS Server in der Datei .cvspass in Ihrem
     HOME-Verzeichnis. Wenn diese Datei beim ersten Benutzen von cvs
     login nicht existiert, erhalten Sie vielleicht eine
     Fehlermeldung. In diesem Fall legen Sie einfach eine leere
     .cvspass Datei an und melden sich erneut an.

   CVSup und Anoncvs bieten dieselbe Funktionalita:t, die folgenden
   Kriterien helfen Ihnen zu entscheiden, welche Methode Sie benutzen
   sollen. CVSup geht wesentlich effizienter mit Netzwerk-Ressourcen
   um und ist auch technisch ausgereifter. Allerdings mu:ssen Sie
   zuerst einen speziellen Client installieren und konfigurieren,
   bevor Sie CVSup benutzen ko:nnen. Weiterhin ko:nnen Sie mit CVSup
   nur relativ grosse Teile der Quellen, die Sammlungen genannt
   werden, synchronisieren.

   Im Gegensatz dazu ko:nnen Sie mit Anoncvs jede beliebige Datei
   oder indem Sie einfach den CVS Namen des Moduls angeben, ein
   beliebiges Programm, wie ls oder grep, bearbeiten. Natu:rlich
   ko:nnen Sie mit Anoncvs nur lesend auf ein CVS Repository
   zugreifen. Wenn Sie lokal mit dem FreeBSD-Repository entwickeln
   wollen, dann ist CVSup die einzige Wahl.

     --------------------------------------------------------------

  A.4.2. Benutzen von Anonymous CVS

   Setzen Sie einfach die CVSROOT Umgebungsvariable, um cvs(1) das
   CVS Repository eines FreeBSD Anoncvs-Servers bekannt zu geben.
   Zurzeit stehen folgende Server zur Verfu:gung:

     * Frankreich: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
       (Das Passwort fu:r pserver ist anoncvs, SSH-Zugriffe verwenden
       kein Passwort.)

     * Taiwan: :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
       (pserver: Benutzen Sie cvs login und ein beliebiges Passwort.
       SSH-Zugriffe erfordern kein Passwort.)

 SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
 SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub

     * USA: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (nur SSH2 ohne
       Passwort).

 SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub

   Mit CVS ko:nnen Sie praktisch jede Version von FreeBSD, die schon
   einmal existiert hat (oder in manchen Fa:llen existieren wird)
   auschecken. Sie sollten daher damit vertraut sein, wie Sie mit
   Tags unter cvs(1) arbeiten (die -r Option). Zudem mu:ssen Sie die
   Namen der Tags im FreeBSD-Repository kennen.

   Es gibt zwei verschiedene Tags[19]: Tags, die Revisionen
   bezeichnen und Tags, die Zweige bezeichnen. Die Ersten sind
   statisch und fest an eine Revision gebunden. Ein Tag, das einen
   Zweig bezeichnet, bezieht sich dagegen zu einem gegebenen
   Zeitpunkt immer auf die aktuellste Revision. Da ein Tag eines
   Zweiges nicht an eine bestimmte Revision gebunden ist, kann sich
   dessen Bedeutung von heute auf morgen a:ndern.

   In Abschnitt A.7 finden Sie eine Liste der gu:ltigen Tags.
   Beachten Sie bitte, dass keines der Tags auf die Ports-Sammlung
   anwendbar ist, da diese nicht u:ber Zweige verfu:gt.

   Wenn Sie ein Tag eines Zweiges verwenden, erhalten Sie die
   aktuellsten Dateien dieses Entwicklungszweiges. Wenn Sie eine
   fru:here Revision erhalten mo:chten, ko:nnen Sie zum Beispiel
   einen Zeitpunkt mit der -D Option angeben. Weitere Informationen
   dazu entnehmen Sie bitte cvs(1).

     --------------------------------------------------------------

  A.4.3. Beispiele

   Im Folgenden finden Sie einige Beispiele fu:r den Umgang mit
   Anonymous CVS. Sie sollten sich aber die Manualpage von cvs(1)
   sorgfa:ltig durchlesen, bevor Sie anfangen.

   Beispiel A-1. ls(1) von -CURRENT auschecken

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 Wenn Sie dazu aufgefordert werden, benutzen Sie ein beliebiges "Passwort".
 % cvs co ls
          

   Beispiel A-2. Den src/-Baum u:ber SSH auschecken

 % cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src
 The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
 DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.

   Beispiel A-3. ls(1) aus dem 8-STABLE-Zweig auschecken

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 Wenn Sie dazu aufgefordert werden, benutzen Sie ein beliebiges "Passwort".
 % cvs co -rRELENG_8 ls
          

   Beispiel A-4. A:nderungen in ls(1) zwischen 5.3 RELEASE und
   5.4 RELEASE (als unified diff)

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 Wenn Sie dazu aufgefordert werden, benutzen Sie ein beliebiges "Passwort".
 % cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls
          

   Beispiel A-5. Gu:ltige Modulnamen herausfinden

 % setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
 % cvs login
 Wenn Sie dazu aufgefordert werden, benutzen Sie ein beliebiges "Passwort".
 % cvs co modules
 % more modules/modules
          

     --------------------------------------------------------------

  A.4.4. Weitere Ressourcen

   Die folgenden Ressourcen sind nu:tzlich, um den Umgang mit CVS zu
   lernen:

     * CVS Tutorial von der California Polytechnic State University.

     * CVS Home, die Homepage des CVS-Projekts.

     * CVSweb das Web Interface zu CVS des FreeBSD Projekts.

     --------------------------------------------------------------

A.5. CTM

   Mit CTM[20] ko:nnen Sie einen entfernten Verzeichnisbaum mit einem
   zentralen Baum synchronisieren. Es wurde extra zum Synchronisieren
   der FreeBSD Quellen entwickelt, obwohl es mit der Zeit vielleicht
   auch andere Anwendungen geben wird. Zurzeit existiert leider so
   gut wie keine Dokumentation zum Erstellen der Deltas. Wenn Sie
   Hilfe beno:tigen oder CTM fu:r andere Zwecke einsetzen wollen,
   wenden Sie sich bitte an die Mailingliste ctm-users.

     --------------------------------------------------------------

  A.5.1. Warum soll ich CTM benutzen?

   Mit CTM erhalten Sie eine lokale Kopie des FreeBSD-Quellbaums, den
   es in mehreren "Varianten" gibt. Sie ko:nnen das ganze Repository
   oder nur einen Zweig spiegeln. Wenn Sie ein aktiver
   FreeBSD-Entwickler mit einer schlechten oder gar keiner TCP/IP
   Verbindung sind, oder die A:nderungen einfach automatisch
   zugesandt bekommen wollen, dann ist CTM das Richtige fu:r Sie.
   Fu:r die Zweige mit der meisten Aktivita:t mu:ssen Sie sich
   ta:glich bis zu drei Deltas beschaffen, Sie sollten allerdings
   erwa:gen, die Deltas automatisch u:ber E-Mail zu beziehen. Die
   Gro:sse der Updates wird so klein wie mo:glich gehalten.
   Normalerweise sind sie kleiner als 5 kB, manchmal sind sie
   10-50 kB gross (etwa jedes 10. Update) und ab und an werden Sie
   auch einmal ein Update mit 100 kB oder mehr erhalten.

   Sie sollten sich u:ber die Vorbehalte gegen die Verwendung der
   Quellen anstelle eines offiziellen Releases bewusst sein. Das
   trifft besonders auf FreeBSD-CURRENT zu, lesen Sie dazu bitte den
   Abschnitt FreeBSD-CURRENT.

     --------------------------------------------------------------

  A.5.2. Was brauche ich, um CTM zu benutzen?

   Zwei Sachen: Das CTM Programm und die initialen Deltas, von denen
   aus Sie auf die "aktuellen" Sta:nde kommen.

   CTM ist schon seit der Version 2.0 Teil des FreeBSD-Basissystems.
   Sie finden es in /usr/src/usr.sbin/ctm, wenn Sie eine Kopie der
   Quellen besitzen.

   Die Deltas, die CTM verarbeitet, ko:nnen Sie u:ber FTP oder E-Mail
   beziehen. Wenn Sie u:ber einen FTP Zugang zum Internet verfu:gen,
   erhalten Sie die Deltas unter der folgenden URL:

   ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/

   Die Deltas werden auch von CTM Spiegeln bereitgehalten.

   Wechseln Sie in das passende Verzeichnisse zum Beispiel src-cur
   fu:r FreeBSD-CURRENT und laden Sie sich von dort die Deltas
   herunter.

   Sie ko:nnen die Deltas auch u:ber E-Mail beziehen.

   Abonnieren Sie dazu eine der CTM-Verteilerlisten. U:ber
   ctm-cvs-cur erhalten Sie den kompletten CVS-Baum, u:ber
   ctm-src-cur erhalten Sie FreeBSD-CURRENT und u:ber ctm-src-7
   erhalten Sie den FreeBSD 7.X-Zweig. Wenn Sie nicht wissen, wie Sie
   eine der Mailinglisten abonnieren, folgen Sie einem der Verweise
   von oben oder besuchen Sie die Seite
   http://lists.FreeBSD.org/mailman/listinfo. Weitere Informationen
   erhalten Sie, wenn Sie dort auf die gewu:nschte Liste klicken.

   Benutzen Sie ctm_rmail, um die CTM Updates, die Sie per E-Mail
   empfangen, auszupacken und anzuwenden. Wenn Sie diesen Prozess
   automatisiert ablaufen lassen mo:chten, ko:nnen Sie dazu einen
   Eintrag in /etc/aliases verwenden. Genauere Informationen finden
   Sie in der Manualpage von ctm_rmail.

     Anmerkung: Sie sollten die Mailingliste ctm-announce abonnieren,
     egal wie Sie die CTM-Deltas erhalten. Anku:ndigungen, die den
     Betrieb des CTM-Systems betreffen, werden nur auf dieser Liste
     bekannt gegeben. Klicken Sie auf den Namen der Liste oder
     besuchen Sie die Seite
     http://lists.FreeBSD.org/mailman/listinfo, um diese Liste zu
     abonnieren.

     --------------------------------------------------------------

  A.5.3. Initialisieren von CTM

   Bevor Sie die CTM Deltas benutzen ko:nnen, brauchen Sie einen
   Startpunkt, auf den die nachfolgenden Deltas angewendet werden.

   Sie ko:nnen natu:rlich mit einem leeren Verzeichnis beginnen. In
   diesem Fall beno:tigen Sie ein XEmpty-Delta, mit dem Sie den
   CTM-Verzeichnisbaum initialisieren. Wenn Sie Glu:ck haben, finden
   Sie ein XEmpty-Delta, mit dem sie beginnen ko:nnen, auf einer der
   CDs Ihrer Distribution.

   Da die Verzeichnisba:ume mehrere Megabyte gross sind, sollten Sie
   nach Mo:glichkeit etwas schon vorhandenes benutzen. Wenn Sie eine
   -RELEASE CD besitzen, ko:nnen Sie die Quellen von dieser CD
   benutzen. Sie ersparen sich damit das U:bertragen grosser
   Datenmengen.

   Die Deltas, mit denen Sie beginnen ko:nnen, enthalten ein X in
   ihrem Namen, wie in src-cur.3210XEmpty.gz. Hinter dem X wird der
   Startpunkt der Deltas angegeben, in diesem Fall steht Empty fu:r
   ein leeres Verzeichnis. Nach etwa 100 Deltas wird ein neues
   XEmpty-Delta erstellt. Mit ungefa:hr 75 Megabyte komprimierter
   Daten sind diese XEmpty-Deltas u:brigens sehr gross.

   Nachdem Sie Ihren Startpunkt festgelegt haben, beno:tigen Sie alle
   Deltas mit einer ho:heren Nummer.

     --------------------------------------------------------------

  A.5.4. Benutzen von CTM

   Um ein Delta einzuspielen, benutzen Sie das folgende Kommando:

 # cd /Pfad/zu/den/Quellen
 # ctm -v -v /Pfad/zu/den/Deltas/src-xxx.*

   CTM kann mit Deltas arbeiten, die mit gzip komprimiert wurden. Sie
   brauchen die Deltas vorher nicht mit gunzip zu dekomprimieren und
   sparen damit Plattenplatz.

   Ihr Quellbaum wird erst dann vera:ndert, wenn CTM die Deltas
   sauber verarbeiten kann. Die Integrita:t der Deltas und ihre
   Anwendbarkeit auf den Quellbaum lassen sich durch die Angabe des
   Schalters -c u:berpru:fen, CTM a:ndert in diesem Fall Ihren
   Quellbaum nicht.

   CTM verfu:gt u:ber weitere Kommandozeilenoptionen, Informationen
   dazu finden Sie in der Manualpage oder dem Quellcode.

   Das war schon alles. Um Ihre Quellen aktuell zu halten, verwenden
   Sie CTM jedes Mal, wenn Sie neue Deltas bekommen.

   Lo:schen Sie die Deltas nicht, wenn Sie diese nur schwer wieder
   beschaffen ko:nnen. Behalten Sie sie fu:r den Fall, das etwas
   passiert. Auch wenn Sie nur Disketten besitzen, sollten Sie
   erwa:gen, die Deltas mit fdwrite zu sichern.

     --------------------------------------------------------------

  A.5.5. Umgang mit lokalen A:nderungen

   Entwickler wollen mit den Dateien im Quellbaum experimentieren und
   diese vera:ndern. In beschra:nkter Weise werden lokale A:nderungen
   von CTM unterstu:tzt. Wenn CTM die Datei foo bearbeiten will,
   u:berpru:ft es zuerst ob die Datei foo.ctm existiert. Wenn diese
   Datei existiert, werden A:nderungen in ihr anstatt in foo
   vorgenommen.

   Mit diesem Verfahren ist eine leichte Handhabung lokaler
   A:nderungen mo:glich. Kopieren Sie die Dateien, die Sie a:ndern
   mo:chten, in Dateien, die das Suffix .ctm tragen. Sie ko:nnen dann
   ungesto:rt mit dem Quellcode arbeiten, wa:hrend CTM die .ctm
   Dateien aktualisiert.

     --------------------------------------------------------------

  A.5.6. Weitere CTM-Optionen

    A.5.6.1. Was wird aktualisiert?

   Eine Liste der A:nderungen, die CTM an Ihrem Quellbaum vornehmen
   wird, erhalten Sie, wenn Sie die Option -l angeben.

   Das ist nu:tzlich, wenn Sie Logs u:ber die A:nderungen fu:hren
   wollen, gea:nderte Dateien vor- oder nachbearbeiten wollen, oder
   einfach ein bisschen paranoid sind.

     --------------------------------------------------------------

    A.5.6.2. Sicherungen vor einer Aktualisierung erstellen

   Sie wollen vielleicht die Dateien, die durch eine CTM
   Aktualisierung vera:ndert werden, sichern.

   Mit -B backup-file weisen Sie CTM an, alle Dateien, die durch ein
   CTM Delta vera:ndert wu:rden, nach backup-file zu sichern.

     --------------------------------------------------------------

    A.5.6.3. Dateien ausschliessen

   Manchmal wollen Sie nur bestimmte Teile aktualisieren oder nur
   bestimmte Dateien aus einer Folge von Deltas extrahieren.

   Sie ko:nnen die Liste der Dateien, mit denen CTM arbeitet,
   einschra:nken, indem Sie regula:re Ausdru:cke mit den Optionen -e
   und -x angeben.

   Wenn Sie eine aktuelle Kopie von lib/libc/Makefile aus den
   gesicherten CTM Deltas erhalten wollen, setzen Sie das folgende
   Kommando ab:

 # cd /wo/Sie/es/auspacken/wollen/
 # ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*

   Die Optionen -e und -x werden in der Reihenfolge angewandt, in der
   sie auf der Kommandozeile angegeben wurden. Eine Datei wird nur
   dann von CTM verarbeitet, wenn dies nach der Anwendung der
   Optionen -e und -x noch erlaubt ist.

     --------------------------------------------------------------

  A.5.7. Pla:ne fu:r CTM

   Mehrere:

     * Hinzufu:gen eines Authentifizierungsmechanismus, damit
       gefa:lschte CTM-Deltas erkannt werden ko:nnen.

     * Aufra:umen der CTM-Optionen, die mit der Zeit unu:bersichtlich
       und irrefu:hrend wurden.

     --------------------------------------------------------------

  A.5.8. Verschiedenes

   Es gibt Deltas fu:r die Ports-Sammlung, die aber nicht intensiv
   genutzt werden.

     --------------------------------------------------------------

  A.5.9. CTM-Spiegel

   Die CTM-Deltas ko:nnen Sie mit anonymous FTP von den folgenden
   Spiegeln beziehen. Versuchen Sie bitte einen Spiegel in Ihrer
   Na:he zu benutzen.

   Bei Problemen wenden Sie sich bitte an die Mailingliste ctm-users.

   Kalifornien, Bay Area, Offizieller Server

              * ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/

   Su:dafrika, Backup-Server fu:r alte Deltas

              * ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/

   Taiwan/R.O.C.

              * ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

              * ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

              * ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/

   Wenn die Liste keinen Spiegel in Ihrer Na:he entha:lt oder Sie
   Probleme mit dem ausgewa:hlten Spiegel haben, versuchen Sie einen
   Spiegel mit einer Suchmaschine, wie alltheweb, zu finden.

     --------------------------------------------------------------

A.6. Benutzen von CVSup

  A.6.1. Einfu:hrung

   CVSup ist eine Anwendung, die Verzeichnisba:ume von einem
   entfernten CVS-Server bereitstellt und aktualisiert. Die Quellen
   von FreeBSD werden in einem CVS-Repository auf einer
   Entwicklungsmaschine in Kalifornien gepflegt. Mit CVSup ko:nnen
   sich FreeBSD-Benutzer den eigenen Quellbaum auf aktuellem Stand
   halten.

   Zum Aktualisieren benutzt CVSup die Pull-Methode, bei der die
   Aktualisierungen vom Client angefragt werden. Der Server wartet
   dabei passiv auf Anfragen von Clients, das heisst er verschickt
   nicht unaufgefordert Aktualisierungen. Somit gehen alle Anfragen
   vom Client aus und die Benutzer mu:ssen CVSup entweder manuell
   starten oder einen cron Job einrichten, um regelma:ssig
   Aktualisierungen zu erhalten.

   CVSup in genau dieser Schreibweise bezeichnet die Anwendung, die
   aus dem Client cvsup und dem Server cvsupd besteht. cvsup la:uft
   auf den Maschinen der Benutzer, cvsupd la:uft auf jedem der
   FreeBSD-Spiegel.

   Wenn Sie die FreeBSD-Dokumentation und die Mailinglisten lesen,
   werden Sie oft auf Sup, dem Vorga:nger von CVSup stossen. CVSup
   wird in gleicher Weise wie Sup benutzt und verfu:gt sogar u:ber
   Konfigurationsdateien, die kompatibel zu denen von Sup sind. Da
   CVSup schneller und flexibler als Sup ist, wird Sup vom FreeBSD
   Project nicht mehr benutzt.

     Anmerkung: Mit csup gibt es in inzwischen auch eine in C
     geschriebene Neuimplementierung von CVSup. Der gro:sste Vorteil
     dieser neuen Version ist neben einer ho:heren Geschwindigkeit
     der, dass dieses Programm nicht von der Sprache Modula-3
     abha:ngig ist und Sie daher dieses Paket nicht mitinstallieren
     mu:ssen. csup ist bereits im Basissystem enthalten und kann
     sofort verwendet werden. Wollen Sie ku:nftig csup einsetzen,
     u:berspringen Sie in den folgenden Ausfu:hrungen einfach den
     Abschnitt zur Installation von CVSup und ersetzen alle Vorkommen
     von CVSup durch csup.

     --------------------------------------------------------------

  A.6.2. Installation von CVSup

   CVSup ko:nnen Sie leicht installieren, wenn Sie das vorkompilierte
   Paket net/cvsup aus der Ports-Sammlung benutzen. Alternativ
   ko:nnen Sie net/cvsup auch ausgehend von den Quellen bauen, doch
   seien Sie gewarnt: net/cvsup ha:ngt vom Modula-3 System ab, das
   viel Zeit und Platz zum Herunterladen und Bauen braucht.

     Anmerkung: Wenn Sie CVSup auf einer Maschine ohne Xorg (also
     beispielsweise auf einem Server), benutzen, stellen Sie bitte
     sicher, dass Sie den Port ohne das CVSup-GUI,
     (net/cvsup-without-gui) verwenden.

     --------------------------------------------------------------

  A.6.3. Konfiguration von CVSup

   Das Verhalten von CVSup wird mit einer Konfigurationsdatei
   gesteuert, die supfile genannt wird. Beispiele fu:r
   Konfigurationsdateien finden Sie in dem Verzeichnis
   file://localhost/usr/share/examples/cvsup/.

   Ein supfile entha:lt die folgenden Informationen:

     * Welche Dateien Sie erhalten wollen.

     * Welche Versionen der Dateien Sie beno:tigen.

     * Woher Sie die Dateien beziehen wollen.

     * Wo Sie die erhaltenen Dateien speichern.

     * Wo Sie die Status-Dateien aufbewahren wollen.

   In den folgenden Abschnitten erstellen wir ein typisches supfile
   indem wir nach und nach diese Punkte kla:ren. Zuerst beschreiben
   wir aber den Aufbau dieser Konfigurationsdatei.

   Ein supfile ist eine Textdatei. Kommentare beginnen mit einem #
   und gelten bis zum Zeilenende. Leerzeilen und Zeilen, die nur
   Kommentare enthalten, werden ignoriert.

   Die anderen Zeilen legen die Dateien fest, die ein Benutzer
   erhalten will. Der Server organisiert verschiedene Dateien in
   einer "Sammlung", deren Name auf einer Zeile angegeben wird. Nach
   dem Namen der Sammlung ko:nnen mehrere durch Leerzeichen getrennte
   Felder folgen, die die oben angesprochenen Informationen
   festlegen. Es gibt zwei Arten von Feldern: Felder, die Optionen
   festlegen und Felder mit Parametern. Optionen bestehen aus einem
   Schlu:sselwort, wie delete oder compress und stehen alleine. Ein
   Parameterfeld beginnt mit einem Schlu:sselwort, dem = und ein
   Parameter, wie in release=cvs, folgt. Dieses Feld darf keine
   Leerzeichen enthalten.

   In einem supfile werden normalerweise mehrere Sammlungen
   angefordert. Die erforderlichen Felder ko:nnen explizit fu:r jede
   Sammlung angegeben werden, dann werden jedoch die Zeilen ziemlich
   lang. Ausserdem ist dieses Vorgehen sehr unhandlich, da die
   meisten Felder fu:r alle Sammlungen gleich sind. CVSup bietet die
   Mo:glichkeit, Vorgaben fu:r die Felder der Sammlungen festzulegen.
   Zeilen, die mit der Pseudo-Sammlung *default beginnen, legen
   Optionen und Parameter fu:r nachfolgende Sammlungen im supfile
   fest. Der Vorgabewert kann in der Zeile einer bestimmten Sammlung
   u:berschrieben werden. Durch Hinzufu:gen weiterer *default Zeilen
   ko:nnen die Vorgaben auch mitten im supfile u:berschrieben oder
   erweitert werden.

   Mit diesem Wissen ko:nnen wir nun ein supfile erstellen, das den
   Quellbaum von FreeBSD-CURRENT anfordert und aktualisiert.

     * Welche Dateien wollen Sie empfangen?

       Dateien werden von CVSup in "Sammlungen" organisiert. Die
       erha:ltlichen Sammlungen werden spa:ter beschrieben. Wir
       wollen den Quellbaum von FreeBSD empfangen, der in der
       Sammlung src-all enthalten ist. Das supfile entha:lt pro Zeile
       eine Sammlung, in diesem Fall also nur eine einzige Zeile:

 src-all

     * Welche Versionen der Dateien werden beno:tigt?

       Mit CVSup ko:nnen Sie jede Version der Quellen bekommen, da
       der cvsupd-Server seine Daten direkt aus dem CVS-Repository
       bezieht. Sie ko:nnen die beno:tigten Versionen in den
       Parameterfeldern tag= und date= angeben.

         Warnung: Achten Sie darauf, dass Sie das richtige tag=-Feld
         angeben. Einige Tags sind nur fu:r spezielle Sammlungen
         gu:ltig. Wenn Sie ein falsches Tag angeben oder sich
         verschreiben, wird CVSup Dateien lo:schen, die Sie
         wahrscheinlich gar nicht lo:schen wollten. Achten Sie
         insbesondere bei den ports-*-Sammlungen darauf,
         ausschliesslich tag=. zu verwenden.

       Mit tag= wird ein symbolischer Name aus dem Repository
       angegeben. Es gibt zwei verschiedene Tags: Tags, die
       Revisionen bezeichnen und Tags, die Zweige bezeichnen. Die
       ersteren sind statisch und fest an eine Revision gebunden. Ein
       Tag, das einen Zweig bezeichnet, bezieht sich dagegen zu einem
       gegebenen Zeitpunkt immer auf die aktuellste Revision. Da ein
       Tag eines Zweiges nicht an eine bestimmte Revision gebunden
       ist, kann sich dessen Bedeutung von heute auf morgen a:ndern.

       Abschnitt A.7 za:hlt fu:r Benutzer relevante Tags auf. Wenn
       Sie in der Konfigurationsdatei ein Tag, wie RELENG_8, angeben,
       mu:ssen Sie diesem tag= vorstellen: tag=RELENG_8. Denken Sie
       daran, dass es fu:r die Ports-Sammlung nur tag=. gibt.

         Warnung: Achten Sie darauf, dass Sie den Namen eines Tags
         richtig angeben. CVSup kann nicht zwischen richtigen und
         falschen Tags unterscheiden. Wenn Sie sich bei der Angabe
         eines Tags vertippen, nimmt CVSup an, Sie ha:tten ein
         gu:ltiges Tag angegeben, dem nur keine Dateien zugeordnet
         sind. Die Folge davon ist, dass Ihre vorhandenen Quellen
         gelo:scht werden.

       Wenn Sie ein Tag angeben, das sich auf einen Zweig bezieht,
       erhalten Sie die aktuellsten Revisionen der Dateien auf diesem
       Zweig. Wenn Sie eine fru:here Revision erhalten mo:chten,
       ko:nnen Sie diese im date= Feld angeben. Einzelheiten dazu
       finden Sie in der Manualpage von cvsup.

       Wir mo:chten gerne FreeBSD-CURRENT beziehen und fu:gen die
       folgende Zeile am Anfang der Konfigurationsdatei ein:

 *default tag=.

       Eine wichtige Ausnahme ist wenn Sie weder ein tag=-Feld noch
       ein date=-Feld angeben. In diesem Fall erhalten Sie anstelle
       einer speziellen Revision die wirklichen RCS-Dateien aus dem
       CVS-Repository des Servers. Diese Vorgehensweise wird von
       Entwicklern bevorzugt, da sie mit einem eigenen Repository
       leicht die Entwicklungsgeschichte und Vera:nderungen von
       Dateien verfolgen ko:nnen. Dieser Vorteil muss allerdings mit
       sehr viel Plattenplatz bezahlt werden.

     * Woher sollen die Dateien bezogen werden?

       Im host=-Feld wird angegeben, woher cvsup die Dateien holen
       soll. Sie ko:nnen hier jeden der CVSup-Spiegel angeben, doch
       sollten Sie einen Server in Ihrer Na:he auswa:hlen. Fu:r
       dieses Beispiel wollen wir den erfundenen Server
       cvsup99.FreeBSD.org verwenden:

 *default host=cvsup99.FreeBSD.org

       Bevor Sie CVSup laufen lassen, sollten Sie hier einen
       existierenden Server einsetzen. Den zu verwendenden Server
       ko:nnen Sie auf der Kommandozeile mit -h hostname
       u:berschreiben.

     * Wo sollen die Dateien gespeichert werden?

       Im prefix=-Feld teilen Sie cvsup mit, wo die Dateien
       gespeichert werden sollen. In diesem Beispiel werden wir die
       Quelldateien direkt im Verzeichnisbaum fu:r Quellen /usr/src
       ablegen. Das Verzeichnis src ist schon in der Sammlung, die
       wir beziehen enthalten, so dass wir die folgende Zeile
       angeben:

 *default prefix=/usr

     * Wo sollen die Statusinformationen von cvsup gespeichert
       werden?

       cvsup legt in einem Verzeichnis Statusinformationen ab, die
       festhalten, welche Versionen schon empfangen wurden. Wir
       verwenden das Verzeichnis /var/db:

 *default base=/var/db

       Wenn das Verzeichnis fu:r die Statusinformationen nicht
       existiert, sollten Sie es jetzt anlegen, da cvsup ohne dieses
       Verzeichnis nicht startet.

     * Verschiedene Einstellungen:

       Eine weitere Zeile sollte normalerweise in jedem supfile sein:

 *default release=cvs delete use-rel-suffix compress

       Mit release=cvs wird angegeben, dass der Server das
       FreeBSD-Haupt-Repository abfragen soll, was praktisch immer
       der Fall ist (die Ausnahmen werden in diesem Text nicht
       diskutiert).

       delete erlaubt es CVSup, Dateien zu lo:schen. Diese Option
       sollten Sie immer angeben, damit CVSup Ihren Quellbaum auch
       wirklich aktuell halten kann. CVSup lo:scht nur Dateien fu:r
       die es auch verantwortlich ist. Andere Dateien, die sich in
       einem Baum unter Kontrolle von CVSup befinden, werden nicht
       vera:ndert.

       Wenn Sie wirklich etwas u:ber das obskure use-rel-suffix
       erfahren wollen, lesen Sie bitte in der Manualpage nach,
       ansonsten geben Sie es einfach an und vergessen es.

       Wenn Sie compress angeben, werden Daten auf dem
       Kommunikationskanal komprimiert. Wenn Sie u:ber eine
       T1-Leitung oder eine schnellere Netzanbindung verfu:gen,
       brauchen Sie diese Option vielleicht nicht. In allen anderen
       Fa:llen beschleunigt sie aber den Ablauf.

     * Zusammenfassung:

       Das vollsta:ndige supfile unseres Beispiels sieht nun so aus:

 *default tag=.
 *default host=cvsup99.FreeBSD.org
 *default prefix=/usr
 *default base=/var/db
 *default release=cvs delete use-rel-suffix compress

 src-all

     --------------------------------------------------------------

    A.6.3.1. Die refuse Datei

   CVSup benutzt die Pull-Methode, das heisst wenn sich ein Client
   mit einem Server verbindet, erha:lt er eine Liste der verfu:gbaren
   Sammlungen und wa:hlt aus diesen die herunterzuladenden Dateien
   aus. In der Voreinstellung wa:hlt der Client alle Dateien aus, die
   zu einer gegebenen Sammlung und zu einem gegebenen Tag passen.
   Dieses Verhalten ist aber nicht immer erwu:nscht, besonders wenn
   Sie die doc, ports oder www Verzeichnisba:ume synchronisieren. Die
   wenigsten Leute beherrschen vier oder fu:nf Sprachen und
   beno:tigen Dateien mit speziellen Anpassungen fu:r eine Sprache.
   Wenn Sie die Ports-Sammlung synchronisieren, ko:nnen Sie anstelle
   von ports-all einzelne Ports, wie ports-astrology oder
   ports-biology angeben. Die doc und www Verzeichnisba:ume verfu:gen
   aber nicht u:ber Sammlungen fu:r spezielle Sprachen. In diesem
   Fall mu:ssen Sie eines der vielen eleganten Merkmale von CVSup
   benutzen: Die refuse Datei.

   Mit einer refuse Datei ko:nnen Sie bestimmte Dateien einer
   Sammlung von der U:bertragung ausschliessen. Der Ort der refuse
   ist base/sup/refuse, wobei base in Ihrem supfile festgelegt wurde.
   Wir verwenden das Verzeichnis /var/db, der Ort der refuse Datei
   ist daher /var/db/sup/refuse.

   Das Format der refuse Datei ist einfach: Sie entha:lt eine Liste
   der Dateien und Verzeichnisse, die Sie nicht herunterladen wollen.
   Wenn Sie zum Beispiel die Dokumentation nicht in anderen Sprachen
   als Englisch lesen wollen, ko:nnte Ihre refuse-Datei wie folgt
   aussehen:

 doc/bn_*
 doc/da_*
 doc/de_*
 doc/el_*
 doc/es_*
 doc/fr_*
 doc/hu_*
 doc/it_*
 doc/ja_*
 doc_mn_*
 doc/nl_*
 doc/no_*
 doc/pl_*
 doc/pt_*
 doc/ru_*
 doc/sr_*
 doc/tr_*
 doc/zh_*

   Die Aufza:hlung setzt sich fu:r andere Sprachen fort. Eine
   vollsta:ndige Liste finden Sie im FreeBSD CVS Repository.

   Die refuse Datei spart Anwendern von CVSup, die u:ber eine
   langsame Internetanbindung verfu:gen oder deren Internetverbindung
   zeitlich abgerechnet wird, wertvolle Zeit, da sie Dateien, die sie
   nicht beno:tigen, nicht mehr herunterladen mu:ssen. Weitere
   Informationen zu refuse Dateien und anderen Eigenschaften von
   CVSup entnehmen Sie bitte der Manualpage.

     --------------------------------------------------------------

  A.6.4. Ausfu:hren von CVSup

   Wir ko:nnen nun eine Aktualisierung mit der folgenden
   Kommandozeile starten:

 # cvsup supfile

   supfile gibt dabei das eben erstelle supfile an. Wenn Sie X11
   benutzen, wird cvsup ein GUI starten. Dru:cken Sie go und schauen
   Sie zu.

   Das Beispiel aktualisiert die Dateien im Verzeichnisbaum /usr/src.
   Sie mu:ssen cvsup als root starten, damit Sie die no:tigen Rechte
   haben, die Dateien zu aktualisieren. Sie sind vielleicht ein
   bisschen nervo:s weil Sie das Programm zum ersten Mal anwenden und
   mo:chten zuerst einmal einen Testlauf durchfu:hren. Legen Sie dazu
   ein tempora:res Verzeichnis an und u:bergeben es auf der
   Kommandozeile von cvsup:

 # mkdir /var/tmp/dest
 # cvsup supfile /var/tmp/dest

   Aktualisierungen werden dann nur in dem angegebenen Verzeichnis
   vorgenommen. CVSup untersucht die Dateien in /usr/src, wird aber
   keine dieser Dateien vera:ndern. Die vera:nderten Dateien finden
   Sie stattdessen in /var/tmp/dest/usr/src. Die Statusdateien von
   CVSup werden ebenfalls nicht gea:ndert, sondern in dem angegebenen
   Verzeichnis abgelegt. Wenn Sie Leseberechtigung in /usr/src haben,
   brauchen Sie das Programm noch nicht einmal unter root laufen zu
   lassen.

   Wenn Sie X11 nicht benutzen wollen oder keine GUIs mo:gen, sollten
   Sie cvsup wie folgt aufrufen:

 # cvsup -g -L 2 supfile

   -g verhindert den Start des GUIs. Wenn Sie kein X11 laufen haben,
   passiert das automatisch, ansonsten mu:ssen Sie diesen Schalter
   angeben.

   Mit -L 2 gibt CVSup Einzelheiten zu jeder Aktualisierung aus. Die
   Wortfu:lle der Meldungen ko:nnen Sie von -L 0 bis -L 2 einstellen.
   In der Voreinstellung -L 0 werden nur Fehlermeldungen ausgegeben.

   Eine Zusammenfassung der Optionen von CVSup erhalten Sie mit cvsup
   -H. Genauere Informationen finden Sie in der Manualpage von CVSup.

   Wenn Sie mit dem Ablauf der Aktualisierung zufrieden sind, ko:nnen
   Sie CVSup regelma:ssig aus cron(8) ausfu:hren. In diesem Fall
   sollten Sie natu:rlich nicht das GUI benutzen.

     --------------------------------------------------------------

  A.6.5. CVSup Sammlungen

   Die CVSup Sammlungen sind hierarchisch organisiert. Es gibt wenige
   grosse Sammlungen, die in kleinere Teilsammlungen unterteilt sind.
   Wenn Sie eine grosse Sammlung beziehen, entspricht das dem
   Beziehen aller Teilsammlungen. Der Hierarchie der Sammlung wird in
   der folgenden Aufza:hlung durch Einru:ckungen dargestellt.

   Die am ha:ufigsten benutzen Sammlungen sind src-all und ports-all.
   Die anderen Sammlungen werden von wenigen Leuten zu speziellen
   Zwecken benutzt und es kann sein, dass diese nicht auf allen
   Spiegeln zur Verfu:gung stehen.

   cvs-all release=cvs

           Das FreeBSD-Haupt-Repository einschliesslich der
           Kryptographie-Module.

                distrib release=cvs

                        Dateien, die zum Verteilen und Spiegeln von
                        FreeBSD beno:tigt werden.

                doc-all release=cvs

                        Quellen des FreeBSD-Handbuchs und weiterer
                        Dokumentation. Diese Sammlung entha:lt nicht
                        die FreeBSD-Webseite.

                ports-all release=cvs

                        Die FreeBSD-Ports-Sammlung.

                          Wichtig: Wenn Sie nicht die gesamte
                          Ports-Sammlung (ports-all) aktualisieren
                          wollen, sondern nur eine der nachstehend
                          aufgefu:hrten Teilsammlungen, aktualisieren
                          Sie immer die Teilsammlung ports-base.
                          Diese Teilsammlung entha:lt das Bausystem
                          der Ports. Immer wenn ports-base gea:ndert
                          wird, ist es so gut wie sicher, dass diese
                          A:nderung auch tatsa:chlich von einem Port
                          benutzt wird. Der Bau eines Ports, der auf
                          A:nderungen im Bausystem angewiesen wird,
                          wird fehlschlagen, wenn das Bausystem noch
                          auf einem alten Stand ist. Aktualisieren
                          Sie vor allen Dingen ports-base, wenn Sie
                          bei einem Bau merkwu:rdige Fehlermeldungen
                          erhalten und kein aktuelles Bausystem
                          benutzen.

                          Wichtig: Wenn Sie die Datei ports/INDEX
                          selbst erzeugen, brauchen Sie unbedingt die
                          Sammlung ports-all (den ganzen Ports-Baum).
                          Es ist nicht mo:glich, ports/INDEX nur mit
                          einem Teilbaum zu erstellen. Lesen Sie dazu
                          bitte die FAQ.

                             ports-accessibility release=cvs

                                    Werkzeuge fu:r behinderte
                                    Benutzer.

                             ports-arabic release=cvs

                                    Arabische Sprachunterstu:tzung.

                             ports-archivers release=cvs

                                    Werkzeuge zum Archivieren.

                             ports-astro release=cvs

                                    Astronomie-Programme.

                             ports-audio release=cvs

                                    Audio-Programme.

                             ports-base release=cvs

                                    Das Bausystem der Ports-Sammlung.
                                    Dazu geho:ren verschiedene
                                    Dateien in den
                                    Unterverzeichnissen Mk/ und
                                    Tools/ von /usr/ports.

                                      Anmerkung: Aktualisieren Sie
                                      diese Teilsammlung jedes Mal,
                                      wenn Sie einen Teil der
                                      Ports-Sammlung aktualisieren.
                                      Lesen Sie dazu auch den obigen
                                      Hinweis zur Ports-Sammlung.

                             ports-benchmarks release=cvs

                                    Benchmarks.

                             ports-biology release=cvs

                                    Biologie.

                             ports-cad release=cvs

                                    Computer Aided Design Werkzeuge.

                             ports-chinese release=cvs

                                    Chinesische Sprachunterstu:tzung.

                             ports-comms release=cvs

                                    Programme zur Datenkommunikation.

                             ports-converters release=cvs

                                    Zeichensatz Konvertierer.

                             ports-databases release=cvs

                                    Datenbanken.

                             ports-deskutils release=cvs

                                    Sachen, die sich vor dem
                                    Computer-Zeitalter auf dem
                                    Schreibtisch befanden.

                             ports-devel release=cvs

                                    Werkzeuge fu:r Entwickler.

                             ports-dns release=cvs

                                    Software fu:r DNS.

                             ports-editors release=cvs

                                    Editoren.

                             ports-emulators release=cvs

                                    Programme, die andere
                                    Betriebssysteme emulieren.

                             ports-finance release=cvs

                                    Finanz-Anwendungen.

                             ports-ftp release=cvs

                                    Werkzeuge fu:r FTP Clients und
                                    Server.

                             ports-games release=cvs

                                    Spiele.

                             ports-german release=cvs

                                    Deutsche Sprachunterstu:tzung.

                             ports-graphics release=cvs

                                    Graphik-Programme.

                             ports-hebrew release=cvs

                                    Hebra:ische Sprachunterstu:tzung.

                             ports-hungarian release=cvs

                                    Ungarische Sprachunterstu:tzung.

                             ports-irc release=cvs

                                    Internet Relay Chat Werkzeuge.

                             ports-japanese release=cvs

                                    Japanische Sprachunterstu:tzung.

                             ports-java release=cvs

                                    Java Werkzeuge.

                             ports-korean release=cvs

                                    Koreanische Sprachunterstu:tzung.

                             ports-lang release=cvs

                                    Programmiersprachen.

                             ports-mail release=cvs

                                    E-Mail Programme.

                             ports-math release=cvs

                                    Programme zur numerischen
                                    Mathematik.

                             ports-misc release=cvs

                                    Verschiedene Werkzeuge.

                             ports-multimedia release=cvs

                                    Multimedia-Anwendungen.

                             ports-net release=cvs

                                    Netzwerk-Programme.

                             ports-net-im release=cvs

                                    Diverse Instant-Messenger.

                             ports-net-mgmt release=cvs

                                    Software zum Verwalten von
                                    Netzwerken.

                             ports-net-p2p release=cvs

                                    Software fu:r die Nutzung von
                                    Peer-to-Peer-Netzwerken.

                             ports-news release=cvs

                                    USENET News Werkzeuge.

                             ports-palm release=cvs

                                    Programme fu:r den Palm(TM).

                             ports-polish release=cvs

                                    Polnische Sprachunterstu:tzung.

                             ports-ports-mgmt release=cvs

                                    Werkzeuge zum Management von
                                    Ports und Paketen.

                             ports-portuguese release=cvs

                                    Portugiesische
                                    Sprachunterstu:tzung.

                             ports-print release=cvs

                                    Druckprogramme.

                             ports-russian release=cvs

                                    Russische Sprachunterstu:tzung.

                             ports-science release=cvs

                                    Wissenschaft.

                             ports-security release=cvs

                                    Werkzeuge zum Thema Sicherheit.

                             ports-shells release=cvs

                                    Kommandozeilen-Shells.

                             ports-sysutils release=cvs

                                    System-Werkzeuge.

                             ports-textproc release=cvs

                                    Programme zur Textverarbeitung
                                    (ohne Desktop Publishing).

                             ports-ukrainian release=cvs

                                    Ukrainische Sprachunterstu:tzung.

                             ports-vietnamese release=cvs

                                    Vietnamesische
                                    Sprachunterstu:tzung.

                             ports-www release=cvs

                                    Software rund um das World Wide
                                    Web.

                             ports-x11 release=cvs

                                    X-Window Programme.

                             ports-x11-clocks release=cvs

                                    X11-Uhren.

                             ports-x11-drivers release=cvs

                                    X11-Treiber.

                             ports-x11-fm release=cvs

                                    X11-Dateiverwalter.

                             ports-x11-fonts release=cvs

                                    X11-Zeichensa:tze und Werkzeuge
                                    dazu.

                             ports-x11-toolkits release=cvs

                                    X11-Werkzeuge.

                             ports-x11-servers release=cvs

                                    X11-Server.

                             ports-x11-themes release=cvs

                                    X11-Themes.

                             ports-x11-wm release=cvs

                                    X11-Fensterverwalter.

                projects-all release=cvs

                        Quelltexte der verschiedenen
                        FreeBSD-Projekte.

                src-all release=cvs

                        Die FreeBSD-Quellen einschliesslich der
                        Kryptographie-Module.

                             src-base release=cvs

                                    Verschiedene Dateien unter
                                    /usr/src.

                             src-bin release=cvs

                                    Benutzer-Werkzeuge die im
                                    Einzelbenutzermodus gebraucht
                                    werden (/usr/src/bin).

                             src-cddl release=cvs

                                    Werkzeuge und Bibliotheken, die
                                    der CDDL-Lizenz unterliegen
                                    (/usr/src/cddl).

                             src-contrib release=cvs

                                    Werkzeuge und Bibliotheken, die
                                    nicht aus dem FreeBSD Project
                                    stammen und wenig vera:ndert
                                    u:bernommen werden.
                                    (/usr/src/contrib).

                             src-crypto release=cvs

                                    Kryptographische Werkzeuge und
                                    Bibliotheken, die nicht aus dem
                                    FreeBSD Project stammen und wenig
                                    vera:ndert u:bernommen werden.
                                    (/usr/src/crypto).

                             src-eBones release=cvs

                                    Kerberos und DES
                                    (/usr/src/eBones). Wird in
                                    aktuellen Releases von FreeBSD
                                    nicht benutzt.

                             src-etc release=cvs

                                    Konfigurationsdateien des Systems
                                    (/usr/src/etc).

                             src-games release=cvs

                                    Spiele (/usr/src/games).

                             src-gnu release=cvs

                                    Werkzeuge, die unter der GNU
                                    Public License stehen
                                    (/usr/src/gnu).

                             src-include release=cvs

                                    Header Dateien
                                    (/usr/src/include).

                             src-kerberos5 release=cvs

                                    Kerberos5 (/usr/src/kerberos5).

                             src-kerberosIV release=cvs

                                    KerberosIV (/usr/src/kerberosIV).

                             src-lib release=cvs

                                    Bibliotheken (/usr/src/lib).

                             src-libexec release=cvs

                                    Systemprogramme, die von anderen
                                    Programmen ausgefu:hrt werden
                                    (/usr/src/libexec).

                             src-release release=cvs

                                    Dateien, die zum Erstellen eines
                                    FreeBSD Releases notwendig sind
                                    (/usr/src/release).

                             src-rescue release=cvs

                                    Statisch gelinkte Programme zur
                                    Wiederherstellung eines defekten
                                    Systems. Lesen Sie dazu auch die
                                    Manualpage rescue(8)
                                    (/usr/src/rescue).

                             src-sbin release=cvs

                                    Werkzeuge fu:r den
                                    Einzelbenutzermodus
                                    (/usr/src/sbin).

                             src-secure release=cvs

                                    Kryptographische Bibliotheken und
                                    Befehle (/usr/src/secure).

                             src-share release=cvs

                                    Dateien, die von mehreren
                                    Systemen gemeinsam benutzt werden
                                    ko:nnen (/usr/src/share).

                             src-sys release=cvs

                                    Der Kernel (/usr/src/sys).

                             src-sys-crypto release=cvs

                                    Kryptographie Quellen des Kernels
                                    (/usr/src/sys/crypto).

                             src-tools release=cvs

                                    Verschiedene Werkzeuge zur Pflege
                                    von FreeBSD (/usr/src/tools).

                             src-usrbin release=cvs

                                    Benutzer-Werkzeuge
                                    (/usr/src/usr.bin).

                             src-usrsbin release=cvs

                                    System-Werkzeuge
                                    (/usr/src/usr.sbin).

                www release=cvs

                        Die Quellen der FreeBSD-WWW-Seite.

   distrib release=self

           Die Konfigurationsdateien des CVSup Servers. Diese werden
           von den CVSup benutzt.

   gnats release=current

           Die GNATS Datenbank, in der Problemberichte verwaltet
           werden.

   mail-archive release=current

           Das Archiv der FreeBSD-Mailinglisten.

   www release=current

           Die formatierten Dateien der FreeBSD-WWW-Seite (nicht die
           Quellen). Diese werden von den WWW-Spiegeln benutzt.

     --------------------------------------------------------------

  A.6.6. Weiterfu:hrende Informationen

   Die CVSup FAQ und weitere Informationen u:ber CVSup finden Sie auf
   The CVSup Home Page.

   FreeBSD spezifische Diskussionen u:ber CVSup finden auf der
   Mailingliste FreeBSD technical discussions statt. Dort und auf der
   Liste FreeBSD announcements werden neue Versionen von CVSup
   angeku:ndigt.

   Bei Fragen und Problemberichten zu CVSup lesen Sie bitte die CVSup
   FAQ.

     --------------------------------------------------------------

  A.6.7. CVSup-Server

   Die folgende Aufza:hlung entha:lt CVSup Server fu:r FreeBSD:

   Hauptserver, Hauptspiegel, Argentinien, Armenien, Australien,
   Brasilien, Bulgarien, China, Costa Rica, Da:nemark, Deutschland,
   Estland, Finnland, Frankreich, Griechenland, Grossbritannien,
   Irland, Island, Israel, Italien, Japan, Kanada, Kirgisistan,
   Korea, Kuwait, Lettland, Litauen, Neuseeland, Niederlande,
   Norwegen, O:sterreich, Philippinen, Polen, Portugal, Ruma:nien,
   Russland, San Marino, Schweden, Schweiz, Singapur, Slowakische
   Republik, Slowenien, Spanien, Su:dafrika, Taiwan, Thailand,
   Tschechische Republik, Tu:rkei, Ukraine, Ungarn, USA.

   (aktualisiert am: 2012/03/27 22:06:38 UTC)

   Hauptserver

              * cvsup.FreeBSD.org

   Hauptspiegel

              * cvsup1.FreeBSD.org

              * cvsup2.FreeBSD.org

              * cvsup3.FreeBSD.org

              * cvsup4.FreeBSD.org

              * cvsup5.FreeBSD.org

              * cvsup6.FreeBSD.org

              * cvsup7.FreeBSD.org

              * cvsup8.FreeBSD.org

              * cvsup9.FreeBSD.org

              * cvsup10.FreeBSD.org

              * cvsup11.FreeBSD.org

              * cvsup12.FreeBSD.org

              * cvsup13.FreeBSD.org

              * cvsup14.FreeBSD.org

              * cvsup15.FreeBSD.org

              * cvsup16.FreeBSD.org

              * cvsup18.FreeBSD.org

   Argentinien

              * cvsup.ar.FreeBSD.org

   Armenien

              * cvsup1.am.FreeBSD.org

   Australien

              * cvsup.au.FreeBSD.org

   Brasilien

              * cvsup.br.FreeBSD.org

              * cvsup2.br.FreeBSD.org

              * cvsup3.br.FreeBSD.org

              * cvsup4.br.FreeBSD.org

              * cvsup5.br.FreeBSD.org

   Bulgarien

              * cvsup.bg.FreeBSD.org

   China

              * cvsup.cn.FreeBSD.org

              * cvsup2.cn.FreeBSD.org

   Costa Rica

              * cvsup1.cr.FreeBSD.org

   Da:nemark

              * cvsup.dk.FreeBSD.org

              * cvsup2.dk.FreeBSD.org

   Deutschland

              * cvsup.de.FreeBSD.org

              * cvsup2.de.FreeBSD.org

              * cvsup3.de.FreeBSD.org

              * cvsup4.de.FreeBSD.org

              * cvsup5.de.FreeBSD.org

              * cvsup6.de.FreeBSD.org

              * cvsup7.de.FreeBSD.org

              * cvsup8.de.FreeBSD.org

   Estland

              * cvsup.ee.FreeBSD.org

   Finnland

              * cvsup.fi.FreeBSD.org

              * cvsup2.fi.FreeBSD.org

   Frankreich

              * cvsup.fr.FreeBSD.org

              * cvsup1.fr.FreeBSD.org

              * cvsup2.fr.FreeBSD.org

              * cvsup3.fr.FreeBSD.org

              * cvsup4.fr.FreeBSD.org

              * cvsup5.fr.FreeBSD.org

              * cvsup8.fr.FreeBSD.org

   Griechenland

              * cvsup.gr.FreeBSD.org

              * cvsup2.gr.FreeBSD.org

   Grossbritannien

              * cvsup.uk.FreeBSD.org

              * cvsup2.uk.FreeBSD.org

              * cvsup3.uk.FreeBSD.org

              * cvsup4.uk.FreeBSD.org

   Irland

              * cvsup.ie.FreeBSD.org

              * cvsup2.ie.FreeBSD.org

   Island

              * cvsup.is.FreeBSD.org

   Israel

              * cvsup.il.FreeBSD.org

   Italien

              * cvsup.it.FreeBSD.org

   Japan

              * cvsup.jp.FreeBSD.org

              * cvsup2.jp.FreeBSD.org

              * cvsup3.jp.FreeBSD.org

              * cvsup4.jp.FreeBSD.org

              * cvsup5.jp.FreeBSD.org

              * cvsup6.jp.FreeBSD.org

   Kanada

              * cvsup1.ca.FreeBSD.org

   Kirgisistan

              * cvsup.kg.FreeBSD.org

   Korea

              * cvsup.kr.FreeBSD.org

              * cvsup2.kr.FreeBSD.org

              * cvsup3.kr.FreeBSD.org

   Kuwait

              * cvsup1.kw.FreeBSD.org

   Lettland

              * cvsup.lv.FreeBSD.org

              * cvsup2.lv.FreeBSD.org

   Litauen

              * cvsup.lt.FreeBSD.org

              * cvsup2.lt.FreeBSD.org

              * cvsup3.lt.FreeBSD.org

   Neuseeland

              * cvsup.nz.FreeBSD.org

   Niederlande

              * cvsup.nl.FreeBSD.org

              * cvsup2.nl.FreeBSD.org

              * cvsup3.nl.FreeBSD.org

   Norwegen

              * cvsup.no.FreeBSD.org

   O:sterreich

              * cvsup.at.FreeBSD.org

   Philippinen

              * cvsup1.ph.FreeBSD.org

   Polen

              * cvsup.pl.FreeBSD.org

              * cvsup2.pl.FreeBSD.org

              * cvsup3.pl.FreeBSD.org

   Portugal

              * cvsup.pt.FreeBSD.org

              * cvsup2.pt.FreeBSD.org

              * cvsup3.pt.FreeBSD.org

   Ruma:nien

              * cvsup.ro.FreeBSD.org

              * cvsup1.ro.FreeBSD.org

              * cvsup2.ro.FreeBSD.org

              * cvsup3.ro.FreeBSD.org

   Russland

              * cvsup.ru.FreeBSD.org

              * cvsup2.ru.FreeBSD.org

              * cvsup3.ru.FreeBSD.org

              * cvsup4.ru.FreeBSD.org

              * cvsup5.ru.FreeBSD.org

              * cvsup6.ru.FreeBSD.org

              * cvsup7.ru.FreeBSD.org

   San Marino

              * cvsup.sm.FreeBSD.org

   Schweden

              * cvsup.se.FreeBSD.org

              * cvsup2.se.FreeBSD.org

   Schweiz

              * cvsup.ch.FreeBSD.org

   Singapur

              * cvsup.sg.FreeBSD.org

   Slowakische Republik

              * cvsup.sk.FreeBSD.org

   Slowenien

              * cvsup.si.FreeBSD.org

              * cvsup2.si.FreeBSD.org

   Spanien

              * cvsup.es.FreeBSD.org

              * cvsup2.es.FreeBSD.org

              * cvsup3.es.FreeBSD.org

   Su:dafrika

              * cvsup.za.FreeBSD.org

              * cvsup2.za.FreeBSD.org

   Taiwan

              * cvsup.tw.FreeBSD.org

              * cvsup3.tw.FreeBSD.org

              * cvsup4.tw.FreeBSD.org

              * cvsup5.tw.FreeBSD.org

              * cvsup6.tw.FreeBSD.org

              * cvsup7.tw.FreeBSD.org

              * cvsup8.tw.FreeBSD.org

              * cvsup9.tw.FreeBSD.org

              * cvsup10.tw.FreeBSD.org

              * cvsup11.tw.FreeBSD.org

              * cvsup12.tw.FreeBSD.org

              * cvsup13.tw.FreeBSD.org

              * cvsup14.tw.FreeBSD.org

   Thailand

              * cvsup.th.FreeBSD.org

   Tschechische Republik

              * cvsup.cz.FreeBSD.org

   Tu:rkei

              * cvsup.tr.FreeBSD.org

              * cvsup2.tr.FreeBSD.org

   Ukraine

              * cvsup2.ua.FreeBSD.org

              * cvsup3.ua.FreeBSD.org

              * cvsup5.ua.FreeBSD.org

              * cvsup6.ua.FreeBSD.org

              * cvsup7.ua.FreeBSD.org

   Ungarn

              * cvsup.hu.FreeBSD.org

   USA

              * cvsup1.us.FreeBSD.org

              * cvsup2.us.FreeBSD.org

              * cvsup3.us.FreeBSD.org

              * cvsup4.us.FreeBSD.org

              * cvsup5.us.FreeBSD.org

              * cvsup6.us.FreeBSD.org

              * cvsup7.us.FreeBSD.org

              * cvsup8.us.FreeBSD.org

              * cvsup9.us.FreeBSD.org

              * cvsup10.us.FreeBSD.org

              * cvsup11.us.FreeBSD.org

              * cvsup12.us.FreeBSD.org

              * cvsup13.us.FreeBSD.org

              * cvsup14.us.FreeBSD.org

              * cvsup15.us.FreeBSD.org

              * cvsup16.us.FreeBSD.org

              * cvsup18.us.FreeBSD.org

     --------------------------------------------------------------

A.7. CVS-Tags

   Wenn Sie Quellen mit CVS oder CVSup erhalten oder aktualisieren
   wollen, mu:ssen Sie ein Tag angeben. Ein Tag kann einen bestimmten
   FreeBSD-Zweig oder einen bestimmten Zeitpunkt (Release-Tag)
   bestimmen.

     --------------------------------------------------------------

  A.7.1. Tags fu:r Zweige

   Mit Ausnahme von HEAD (das immer ein gu:ltiges Tag ist), ko:nnen
   die folgenden Tags nur im src/-Quellbaum verwendet werden. Die
   Quellba:ume ports/, doc/ und www/ sind nicht verzweigt.

   HEAD

           Symbolischer Name fu:r den Hauptzweig, auch
           FreeBSD-CURRENT genannt. Dies ist die Vorgabe, wenn keine
           Revision angegeben wird.

           In CVSup wird dieses Tag mit einem . (Punkt) bezeichnet.

             Anmerkung: In CVS ist das die Vorgabe, wenn Sie kein Tag
             oder eine Revision angeben. Ausser Sie wollen einen
             -STABLE Rechner auf -CURRENT aktualisieren, ist es nicht
             ratsam, die -CURRENT Quellen auf einem -STABLE Rechner
             einzuspielen.

   RELENG_8

           Der Entwicklungszweig fu:r FreeBSD-8.X, auch bekannt als
           FreeBSD 8-STABLE.

   RELENG_8_2

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 8.2 durchgefu:hrt werden.

   RELENG_8_1

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 8.1 durchgefu:hrt werden.

   RELENG_8_0

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 8.0 durchgefu:hrt werden.

   RELENG_7

           Der Entwicklungszweig fu:r FreeBSD-7.X, auch als FreeBSD
           7-STABLE bekannt.

   RELENG_7_4

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 7.4 durchgefu:hrt werden.

   RELENG_7_3

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 7.3 durchgefu:hrt werden.

   RELENG_7_2

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 7.2 durchgefu:hrt werden.

   RELENG_7_1

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 7.1 durchgefu:hrt werden.

   RELENG_7_0

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 7.0 durchgefu:hrt werden.

   RELENG_6

           Der Entwicklungszweig fu:r FreeBSD-6.X, auch als FreeBSD
           6-STABLE bekannt.

   RELENG_6_4

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 6.4 durchgefu:hrt werden.

   RELENG_6_3

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 6.3 durchgefu:hrt werden.

   RELENG_6_2

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 6.2 durchgefu:hrt werden.

   RELENG_6_1

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 6.1 durchgefu:hrt werden.

   RELENG_6_0

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 6.0 durchgefu:hrt werden.

   RELENG_5

           Der FreeBSD 5.X Entwicklungszweig, der auch FreeBSD
           5-STABLE genannt wird.

   RELENG_5_5

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 5.5 durchgefu:hrt werden.

   RELENG_5_4

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 5.4 durchgefu:hrt werden.

   RELENG_5_3

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 5.3 durchgefu:hrt werden.

   RELENG_5_2

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 5.2 und FreeBSD 5.2.1
           durchgefu:hrt werden.

   RELENG_5_1

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 5.1 durchgefu:hrt werden.

   RELENG_5_0

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 5.0 durchgefu:hrt werden.

   RELENG_4

           Der FreeBSD 4.X Entwicklungszweig, der auch FreeBSD
           4-STABLE genannt wird.

   RELENG_4_11

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.11 durchgefu:hrt werden.

   RELENG_4_10

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.10 durchgefu:hrt werden.

   RELENG_4_9

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.9 durchgefu:hrt werden.

   RELENG_4_8

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.8 durchgefu:hrt werden.

   RELENG_4_7

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.7 durchgefu:hrt werden.

   RELENG_4_6

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.6 und FreeBSD 4.6.2
           durchgefu:hrt werden.

   RELENG_4_5

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.5 durchgefu:hrt werden.

   RELENG_4_4

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.4 durchgefu:hrt werden.

   RELENG_4_3

           Der Zweig, auf dem sicherheitsrelevante oder kritische
           Fehlerbehebungen fu:r FreeBSD 4.3 durchgefu:hrt werden.

   RELENG_3

           Der FreeBSD-3.X Entwicklungszweig, der auch 3.X-STABLE
           genannt wird.

   RELENG_2_2

           Der FreeBSD-2.2.X Entwicklungszweig, der auch 2.2-STABLE
           genannt wird.

     --------------------------------------------------------------

  A.7.2. Release-Tags

   Diese Tags geben den Zeitpunkt an, an dem eine bestimme
   FreeBSD-Version vero:ffentlicht wurde. Das Erstellen einer Release
   ist in den Dokumenten Release Engineering Information und Release
   Process beschrieben. Der src-Baum benutzt Tags, deren Namen mit
   RELENG_ anfangen. Die Ba:ume ports und doc benutzen Tags, deren
   Namen mit RELEASE anfangen. Im Baum www werden keine Release-Tags
   verwendet.

   RELENG_8_2_0_RELEASE

           FreeBSD 8.2

   RELENG_8_1_0_RELEASE

           FreeBSD 8.1

   RELENG_8_0_0_RELEASE

           FreeBSD 8.0

   RELENG_7_4_0_RELEASE

           FreeBSD 7.4

   RELENG_7_3_0_RELEASE

           FreeBSD 7.3

   RELENG_7_2_0_RELEASE

           FreeBSD 7.2

   RELENG_7_1_0_RELEASE

           FreeBSD 7.1

   RELENG_7_0_0_RELEASE

           FreeBSD 7.0

   RELENG_6_4_0_RELEASE

           FreeBSD 6.4

   RELENG_6_3_0_RELEASE

           FreeBSD 6.3

   RELENG_6_2_0_RELEASE

           FreeBSD 6.2

   RELENG_6_1_0_RELEASE

           FreeBSD 6.1

   RELENG_6_0_0_RELEASE

           FreeBSD 6.0

   RELENG_5_5_0_RELEASE

           FreeBSD 5.5

   RELENG_5_4_0_RELEASE

           FreeBSD 5.4

   RELENG_4_11_0_RELEASE

           FreeBSD 4.11

   RELENG_5_3_0_RELEASE

           FreeBSD 5.3

   RELENG_4_10_0_RELEASE

           FreeBSD 4.10

   RELENG_5_2_1_RELEASE

           FreeBSD 5.2.1

   RELENG_5_2_0_RELEASE

           FreeBSD 5.2

   RELENG_4_9_0_RELEASE

           FreeBSD 4.9

   RELENG_5_1_0_RELEASE

           FreeBSD 5.1

   RELENG_4_8_0_RELEASE

           FreeBSD 4.8

   RELENG_5_0_0_RELEASE

           FreeBSD 5.0

   RELENG_4_7_0_RELEASE

           FreeBSD 4.7

   RELENG_4_6_2_RELEASE

           FreeBSD 4.6.2

   RELENG_4_6_1_RELEASE

           FreeBSD 4.6.1

   RELENG_4_6_0_RELEASE

           FreeBSD 4.6

   RELENG_4_5_0_RELEASE

           FreeBSD 4.5

   RELENG_4_4_0_RELEASE

           FreeBSD 4.4

   RELENG_4_3_0_RELEASE

           FreeBSD 4.3

   RELENG_4_2_0_RELEASE

           FreeBSD 4.2

   RELENG_4_1_1_RELEASE

           FreeBSD 4.1.1

   RELENG_4_1_0_RELEASE

           FreeBSD 4.1

   RELENG_4_0_0_RELEASE

           FreeBSD 4.0

   RELENG_3_5_0_RELEASE

           FreeBSD-3.5

   RELENG_3_4_0_RELEASE

           FreeBSD-3.4

   RELENG_3_3_0_RELEASE

           FreeBSD-3.3

   RELENG_3_2_0_RELEASE

           FreeBSD-3.2

   RELENG_3_1_0_RELEASE

           FreeBSD-3.1

   RELENG_3_0_0_RELEASE

           FreeBSD-3.0

   RELENG_2_2_8_RELEASE

           FreeBSD-2.2.8

   RELENG_2_2_7_RELEASE

           FreeBSD-2.2.7

   RELENG_2_2_6_RELEASE

           FreeBSD-2.2.6

   RELENG_2_2_5_RELEASE

           FreeBSD-2.2.5

   RELENG_2_2_2_RELEASE

           FreeBSD-2.2.2

   RELENG_2_2_1_RELEASE

           FreeBSD-2.2.1

   RELENG_2_2_0_RELEASE

           FreeBSD-2.2.0

     --------------------------------------------------------------

A.8. AFS-Server

   Die folgende Aufza:hlung entha:lt AFS Server fu:r FreeBSD:

   Schweden

           Die Dateien sind unter dem Pfad
           /afs/stacken.kth.se/ftp/pub/FreeBSD/ erreichbar.

 stacken.kth.se         # Stacken Computer Club, KTH, Sweden
 130.237.234.43         #hot.stacken.kth.se
 130.237.237.230        #fishburger.stacken.kth.se
 130.237.234.3          #milko.stacken.kth.se

           Betreuer <ftp@stacken.kth.se>

     --------------------------------------------------------------

A.9. rsync-Server

   rsync wird a:hnlich wie rcp(1) verwendet, besitzt aber mehr
   Optionen und verwendet das "rsync remote-update" Protokoll, das
   nur gea:nderte Dateien u:bertra:gt und damit viel schneller als
   ein normaler Kopiervorgang ist. rsync ist sehr nu:tzlich, wenn Sie
   einen FreeBSD-FTP-Spiegel oder einen CVS-Spiegel betreiben. Das
   Programm ist fu:r viele Betriebssysteme erha:ltlich, mit FreeBSD
   ko:nnen Sie den Port net/rsync oder das fertige Paket benutzen.
   Die folgenden Server stellen FreeBSD u:ber das rsync Protokoll zur
   Verfu:gung:

   Grossbritannien

           rsync://rsync.mirrorservice.org/

           Verfu:gbare Sammlungen:

              * sites/ftp.freebsd.org: Kompletter Spiegel des
                FreeBSD-FTP-Servers.

   Niederlande

           rsync://ftp.nl.FreeBSD.org/

           Verfu:gbare Sammlungen:

              * FreeBSD: Kompletter Spiegel des FreeBSD-FTP-Servers.

   Russland

           rsync://ftp.mtu.ru/

           Verfu:gbare Sammlungen:

              * FreeBSD: Kompletter Spiegel des FreeBSD-FTP-Servers.

              * FreeBSD-gnats: Die GNATS-Datenbank zur Verwaltung von
                Problemberichten.

              * FreeBSD-Archive: Ein Spiegel des
                FreeBSD-Archive-FTP-Servers.

   Schweden

           rsync://ftp4.se.freebsd.org/

           Verfu:gbare Sammlungen:

              * FreeBSD: Kompletter Spiegel des FreeBSD-FTP-Servers.

   Taiwan

           rsync://ftp.tw.FreeBSD.org/

           rsync://ftp2.tw.FreeBSD.org/

           rsync://ftp6.tw.FreeBSD.org/

           Verfu:gbare Sammlungen:

              * FreeBSD: Kompletter Spiegel des FreeBSD-FTP-Servers.

   Tschechische Republik

           rsync://ftp.cz.FreeBSD.org/

           Verfu:gbare Sammlungen:

              * ftp: Unvollsta:ndiger Spiegel des
                FreeBSD-FTP-Servers.

              * FreeBSD: Vollsta:ndiger Spiegel des
                FreeBSD-FTP-Servers.

   USA

           rsync://ftp-master.FreeBSD.org/

           Dieser Server darf nur von prima:ren Spiegeln benutzt
           werden.

           Verfu:gbare Sammlungen:

              * FreeBSD: Das Hauptarchiv des FreeBSD FTP Servers.

              * acl: Die prima:re ACL-Liste.

           rsync://ftp13.FreeBSD.org/

           Verfu:gbare Sammlungen:

              * FreeBSD: Kompletter Spiegel des FreeBSD-FTP-Servers.

     --------------------------------------------------------------

                         Anhang B. Bibliografie

   U:bersetzt von Frank Gru:nder <elwood@mc5sys.in-berlin.de>

   Wa:hrend die Manualpages die endgu:ltige Auskunft u:ber bestimmte
   Teile des FreeBSD-Betriebssystems geben, so ko:nnen sie jedoch
   nicht darstellen, wie man die einzelnen Teile zusammenfu:gt, um
   ein vollsta:ndig laufendes Betriebssystem herzustellen. Daher gibt
   es keinen Ersatz fu:r ein gutes Buch u:ber die Administration von
   UNIX Systemen und ein gutes Benutzerhandbuch.

   In der Regel handelt es sich im folgenden Kapitel um englische
   Ausgaben der genannten Werke. U:bersetzungen oder Ausgaben in
   anderen Sprachen sind mit entsprechenden Hinweisen versehen.

     --------------------------------------------------------------

B.1. Bu:cher und Magazine speziell fu:r FreeBSD

   Internationale Bu:cher und Magazine:

     * Using FreeBSD, herausgegeben von Drmaster, 1997 (in
       traditionellem Chinesisch). ISBN 9-578-39435-7.

     * FreeBSD Unleashed (in vereinfachtem Chinesisch), herausgegeben
       von China Press. ISBN 7-111-10201-0.

     * FreeBSD From Scratch First Edition (in vereinfachtem
       Chinesisch), herausgegeben von China Press. ISBN
       7-111-07482-3.

     * FreeBSD From Scratch Second Edition (in vereinfachtem
       Chinesisch), herausgegeben von China Press. ISBN
       7-111-10286-X.

     * FreeBSD Handbook Second Edition (in vereinfachtem Chinesisch),
       herausgegeben von Posts & Telecom Press. ISBN 7-115-10541-3.

     * FreeBSD 3.x Internet (in vereinfachtem Chinesisch),
       herausgegeben von Tsinghua University Press. ISBN
       7-900625-66-6.

     * FreeBSD & Windows (in vereinfachtem Chinesisch), herausgegeben
       von China Railway Publishing House. ISBN 7-113-03845-X.

     * FreeBSD Internet Services HOWTO (in vereinfachtem Chinesisch),
       herausgegeben von China Railway Publishing House. ISBN
       7-113-03423-3.

     * FreeBSD for PC 98'ers (in japanischer Sprache), herausgegeben
       von SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.

     * FreeBSD (in japanischer Sprache), herausgegeben von CUTT. ISBN
       4-906391-22-2 C3055 P2400E.

     * Complete Introduction to FreeBSD (in Japanese), published by
       Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E.

     * Personal UNIX Starter Kit FreeBSD (in japanischer Sprache),
       herausgegeben von ASCII. ISBN 4-7561-1733-3 P3000E.

     * FreeBSD Handbook (japanische U:bersetzung), herausgegeben von
       ASCII. ISBN 4-7561-1580-2 P3800E.

     * FreeBSD mit Methode (in deutscher Sprache), herausgegeben von
       Computer und Literatur Verlag /Vertrieb Hanser, 1998. ISBN
       3-932311-31-0.

     * FreeBSD 4 - Installieren, Konfigurieren, Administrieren (in
       deutscher Sprache), herausgegeben von Computer und Literatur
       Verlag, 2001. ISBN 3-932311-88-4.

     * FreeBSD 5 - Installieren, Konfigurieren, Administrieren (in
       deutscher Sprache), herausgegeben von Computer und Literatur
       Verlag, 2001. ISBN 3-936546-06-1.

     * FreeBSD de Luxe (in German), published by Verlag Modere
       Industrie, 2003. ISBN 3-8266-1343-0.

     * FreeBSD Install and Utilization Manual (in japanischer
       Sprache), herausgegeben von Mainichi Communications Inc.,
       1998. ISBN 4-8399-0112-0.

     * Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
       Building Internet Server with FreeBSD (in indonesischer
       Sprache), herausgegeben von Elex Media Komputindo.

     * Absolute BSD: The Ultimate Guide to FreeBSD (in traditionellem
       Chinesisch), herausgegeben von GrandTech Press, 2003. ISBN
       986-7944-92-5.

     * The FreeBSD 6.0 Book (in traditionellem Chinesisch,
       herausgegeben von Drmaster, 2006. ISBN 9-575-27878-X.

   Englischsprachige Bu:cher und Magazine:

     * Absolute FreeBSD, 2nd Edition: The Complete Guide to FreeBSD,
       herausgegeben von No Starch Press, 2007. ISBN:
       978-1-59327-151-0

     * The Complete FreeBSD, herausgegeben von O'Reilly, 2003. ISBN:
       0596005164

     * The FreeBSD Corporate Networker's Guide, herausgegeben von
       Addison-Wesley, 2002. ISBN: 0201704811

     * FreeBSD: An Open-Source Operating System for Your Personal
       Computer, herausgegeben von The Bit Tree Press, 2001. ISBN:
       0971204500

     * Teach Yourself FreeBSD in 24 Hours, herausgegeben von Sams,
       2002. ISBN: 0672324245

     * FreeBSD6 Unleashed, herausgegeben von Sams, 2006. ISBN:
       0672328755

     * FreeBSD: The Complete Reference, herausgegeben von McGrawHill,
       2003. ISBN: 0072224096

     * BSD Magazine, herausgegeben von Software Press Sp. z o.o. SK.
       ISBN: 1898-9144

     --------------------------------------------------------------

B.2. Handbu:cher

     * Computer Systems Research Group, UC Berkeley. 4.4BSD User's
       Reference Manual. O'Reilly & Associates, Inc., 1994. ISBN
       1-56592-075-9

     * Computer Systems Research Group, UC Berkeley. 4.4BSD User's
       Supplementary Documents. O'Reilly & Associates, Inc., 1994.
       ISBN 1-56592-076-7

     * UNIX in a Nutshell. O'Reilly & Associates, Inc., 1990. ISBN
       093717520X

     * Mui, Linda. What You Need To Know When You Can't Find Your
       UNIX System Administrator. O'Reilly & Associates, Inc., 1995.
       ISBN 1-56592-104-6

     * Die Ohio State University hat ein UNIX Introductory Course
       vero:ffentlicht, welcher auch online im HTML- und
       PostScriptformat verfu:gbar ist.

       Eine italienische U:bersetzung ist Teil des FreeBSD Italian
       Documentation Projects.

     * Jpman Project, Japan FreeBSD Users Group. FreeBSD User's
       Reference Manual (japanische U:bersetzung). Mainichi
       Communications Inc., 1998. ISBN4-8399-0088-4 P3800E.

     * Edinburgh University hat einen Online Guide fu:r Anfa:nger in
       Sachen UNIX geschrieben.

     --------------------------------------------------------------

B.3. Administrations-Anleitungen

     * Albitz, Paul and Liu, Cricket. DNS and BIND, 4th Ed. O'Reilly
       & Associates, Inc., 2001. ISBN 1-59600-158-4

     * Computer Systems Research Group, UC Berkeley. 4.4BSD System
       Manager's Manual. O'Reilly & Associates, Inc., 1994. ISBN
       1-56592-080-5

     * Costales, Brian, et al. Sendmail, 2nd Ed. O'Reilly &
       Associates, Inc., 1997. ISBN 1-56592-222-0

     * Frisch, AEleen. Essential System Administration, 2nd Ed.
       O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5

     * Hunt, Craig. TCP/IP Network Administration, 2nd Ed. O'Reilly &
       Associates, Inc., 1997. ISBN 1-56592-322-7

     * Nemeth, Evi. UNIX System Administration Handbook. 3rd Ed.
       Prentice Hall, 2000. ISBN 0-13-020601-6

     * Stern, Hal Managing NFS and NIS O'Reilly & Associates, Inc.,
       1991. ISBN 0-937175-75-7

     * Jpman Project, Japan FreeBSD Users Group. FreeBSD System
       Administrator's Manual (japanische U:bersetzung). Mainichi
       Communications Inc., 1998. ISBN4-8399-0109-0 P3300E.

     * Dreyfus, Emmanuel. Cahiers de l'Admin: BSD 2nd Ed. (in
       French), Eyrolles, 2004. ISBN 2-212-11463-X.

     --------------------------------------------------------------

B.4. Programmierhandbu:cher

     * Asente, Paul, Paul, Converse, Diana, and Swick, Ralph. X
       Window System Toolkit. Digital Press, 1998. ISBN 1-55558-178-1

     * Computer Systems Research Group, UC Berkeley. 4.4BSD
       Programmer's Reference Manual. O'Reilly & Associates, Inc.,
       1994. ISBN 1-56592-078-3

     * Computer Systems Research Group, UC Berkeley. 4.4BSD
       Programmer's Supplementary Documents. O'Reilly & Associates,
       Inc., 1994. ISBN 1-56592-079-1

     * Harbison, Samuel P. and Steele, Guy L. Jr. C: A Reference
       Manual. 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3

     * Kernighan, Brian and Dennis M. Ritchie. The C Programming
       Language. 2nd Ed., PTR Prentice Hall, 1988. ISBN 0-13-110362-9

     * Lehey, Greg. Porting UNIX Software. O'Reilly & Associates,
       Inc., 1995. ISBN 1-56592-126-7

     * Plauger, P. J. The Standard C Library. Prentice Hall, 1992.
       ISBN 0-13-131509-9

     * Spinellis, Diomidis. Code Reading: The Open Source
       Perspective. Addison-Wesley, 2003. ISBN 0-201-79940-5

     * Spinellis, Diomidis. Code Quality: The Open Source
       Perspective. Addison-Wesley, 2006. ISBN 0-321-16607-8

     * Stevens, W. Richard and Stephen A. Rago. Advanced Programming
       in the UNIX Environment. 2nd Ed. Reading, Mass. :
       Addison-Wesley, 2005. ISBN 0-201-43307-9

     * Stevens, W. Richard. UNIX Network Programming. 2nd Ed, PTR
       Prentice Hall, 1998. ISBN 0-13-490012-X

     * Wells, Bill. "Writing Serial Drivers for UNIX". Dr. Dobb's
       Journal. 19(15), December 1994. pp68-71, 97-99.

     --------------------------------------------------------------

B.5. Betriebssystem-Interna

     * Andleigh, Prabhat K. UNIX System Architecture. Prentice-Hall,
       Inc., 1990. ISBN 0-13-949843-5

     * Jolitz, William. "Porting UNIX to the 386". Dr. Dobb's
       Journal. January 1991-July 1992.

     * Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels
       and John Quarterman The Design and Implementation of the
       4.3BSD UNIX Operating System. Reading, Mass. : Addison-Wesley,
       1989. ISBN 0-201-06196-1

       Kapitel 2 dieses Buchs ist Teil des FreeBSD Documentation
       Projects und online erha:ltlich.

     * Leffler, Samuel J., Marshall Kirk McKusick, The Design and
       Implementation of the 4.3BSD UNIX Operating System: Answer
       Book. Reading, Mass. : Addison-Wesley, 1991. ISBN
       0-201-54629-9

     * McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
       John Quarterman. The Design and Implementation of the 4.4BSD
       Operating System. Reading, Mass. : Addison-Wesley, 1996. ISBN
       0-201-54979-4

     * Marshall Kirk McKusick, George V. Neville-Neil. The Design and
       Implementation of the FreeBSD Operating System. Boston, Mass.
       : Addison-Wesley, 2004. ISBN 0-201-70245-2

     * Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The
       Protocols. Reading, Mass. : Addison-Wesley, 1996. ISBN
       0-201-63346-9

     * Schimmel, Curt. Unix Systems for Modern Architectures.
       Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8

     * Stevens, W. Richard. TCP/IP Illustrated, Volume 3: TCP for
       Transactions, HTTP, NNTP and the UNIX Domain Protocols.
       Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3

     * Vahalia, Uresh. UNIX Internals -- The New Frontiers. Prentice
       Hall, 1996. ISBN 0-13-101908-2

     * Wright, Gary R. and W. Richard Stevens. TCP/IP Illustrated,
       Volume 2: The Implementation. Reading, Mass. : Addison-Wesley,
       1995. ISBN 0-201-63354-X

     --------------------------------------------------------------

B.6. Sicherheits-Anleitung

     * Cheswick, William R. and Steven M. Bellovin. Firewalls and
       Internet Security: Repelling the Wily Hacker. Reading, Mass. :
       Addison-Wesley, 1995. ISBN 0-201-63357-4

     * Garfinkel, Simson and Gene Spafford. Practical UNIX & Internet
       Security. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
       1-56592-148-8

     * Garfinkel, Simson. PGP Pretty Good Privacy O'Reilly &
       Associates, Inc., 1995. ISBN 1-56592-098-8

     --------------------------------------------------------------

B.7. Hardware-Anleitung

     * Anderson, Don and Tom Shanley. Pentium Processor System
       Architecture. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995.
       ISBN 0-201-40992-5

     * Ferraro, Richard F. Programmer's Guide to the EGA, VGA, and
       Super VGA Cards. 3rd ed. Reading, Mass. : Addison-Wesley,
       1995. ISBN 0-201-62490-7

     * Die Intel Corporation vero:ffentlicht Dokumentationen Ihrer
       CPUs, Chipsets und Standards auf ihrer developer web site,
       normalerweise als PDF-Dateien.

     * Shanley, Tom. 80486 System Architecture. 3rd ed. Reading,
       Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1

     * Shanley, Tom. ISA System Architecture. 3rd ed. Reading, Mass.
       : Addison-Wesley, 1995. ISBN 0-201-40996-8

     * Shanley, Tom. PCI System Architecture. 4th ed. Reading, Mass.
       : Addison-Wesley, 1999. ISBN 0-201-30974-2

     * Van Gilluwe, Frank. The Undocumented PC, 2nd Ed. Reading,
       Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8

     * Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th
       Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
       0-201-59616-4

     --------------------------------------------------------------

B.8. UNIX(R) Geschichte

     * Lion, John Lion's Commentary on UNIX, 6th Ed. With Source
       Code. ITP Media Group, 1996. ISBN 1573980137

     * Raymond, Eric S. The New Hacker's Dictionary, 3rd edition. MIT
       Press, 1996. ISBN 0-262-68092-0. Auch bekannt als das Jargon
       File

     * Salus, Peter H. A quarter century of UNIX. Addison-Wesley
       Publishing Company, Inc., 1994. ISBN 0-201-54777-5

     * Simon Garfinkel, Daniel Weise, Steven Strassmann. The
       UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN
       1-56884-203-1. Online verfu:gbar.

     * Don Libes, Sandy Ressler Life with UNIX -- special edition.
       Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7

     * The BSD family tree.
       http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree
       oder unter /usr/share/misc/bsd-family-tree auf einem
       FreeBSD-System.

     * Networked Computer Science Technical Reports Library.
       http://www.ncstrl.org/

     * Old BSD releases from the Computer Systems Research group
       (CSRG). http://www.mckusick.com/csrg/: Das Paket mit 4 CD-ROMs
       entha:lt alle BSD-Versionen von 1BSD bis 4.4BSD und
       4.4BSD-Lite2 (nicht aber 2.11BSD). Die letzte CD beinhaltet
       auch die finalen Sourcen inklusive den SCCS Dateien.

     --------------------------------------------------------------

B.9. Magazine und Journale

     * The C/C++ Users Journal. R&D Publications Inc. ISSN 1075-2838

     * Sys Admin -- The Journal for UNIX System Administrators Miller
       Freeman, Inc., ISSN 1061-2688

     * freeX - Das Magazin fu:r Linux - BSD - UNIX (in deutscher
       Sprache), Computer- und Literaturverlag GmbH, ISSN 1436-7033

     --------------------------------------------------------------

                    Anhang C. Ressourcen im Internet

   Gedruckte Medien ko:nnen mit der schnellen Entwicklung von FreeBSD
   nicht Schritt halten. Elektronische Medien sind ha:ufig die
   einzige Mo:glichkeit, u:ber aktuelle Entwicklungen informiert zu
   sein. Da FreeBSD ein Projekt von Freiwilligen ist, gibt die
   Benutzergemeinde selbst auch technische Unterstu:tzung. Die
   Benutzergemeinde erreichen Sie am besten u:ber E-Mail,
   Internetforen oder Usenet-News.

   Die wichtigsten Wege, auf denen Sie die FreeBSD-Benutzergemeinde
   erreichen ko:nnen, sind unten dargestellt. Wenn Sie weitere
   Ressourcen kennen, die hier fehlen, schicken Sie diese bitte an
   die Mailingliste des FreeBSD documentation project, damit sie hier
   aufgenommen werden ko:nnen.

     --------------------------------------------------------------

C.1. Mailinglisten

   Die Mailinglisten sind der direkteste Weg, um Fragen an das
   gesamte FreeBSD Publikum zu stellen oder eine technische
   Diskussion zu beginnen. Es existiert eine grosse Vielfalt von
   Listen mit einer Reihe von verschiedenen FreeBSD Themen. Wenn Sie
   ihre Fragen an die richtige Mailingliste richten ko:nnen Sie viel
   eher mit einer passenden Antwort darauf rechnen.

   Die Chartas der verschiedenen Listen sind unten wiedergegeben.
   Bevor Sie sich einer Mailingliste anschliessen oder E-Mails an
   eine Liste senden, lesen Sie bitte die Charta der Liste. Die
   meisten Mitglieder unserer Mailinglisten erhalten Hunderte E-Mails
   zum Thema FreeBSD pro Tag. Die Chartas und Regeln, die den
   Gebrauch der Listen beschreiben, garantieren die hohe Qualita:t
   der Listen. Die Listen wu:rden ihren hohen Wert fu:r das Projekt
   verlieren, wenn wir weniger Regeln aufstellen wu:rden.

     Anmerkung: Um zu testen, ob Sie eine Nachricht an eine
     FreeBSD-Liste senden ko:nnen, verwenden Sie bitte Die Liste
     freebsd-test. Schicken Sie derartige Nachrichten bitte nicht an
     eine der anderen Listen.

   Wenn Sie Sich nicht sicher sind, auf welcher Liste Sie Ihre Frage
   stellen sollen, sollten Sie den Artikel How to get best results
   from the FreeBSD-questions mailing list lesen.

   Bevor Sie eine Nachricht an eine Mailingliste senden, sollten Sie
   die korrekte Nutzung der Mailinglisten erlernen. Dazu geho:rt auch
   das Vermeiden von sich ha:ufig wiederholenden Diskussionen (lesen
   Sie deshalb zuerst die Mailing List Frequently Asked Questions).

   Alle Mailinglisten werden archiviert und ko:nnen auf dem FreeBSD
   World Wide Web Server durchsucht werden. Das nach
   Schlu:sselwo:rtern durchsuchbare Archiv bietet die hervorragende
   Mo:glichkeit, Antworten auf ha:ufig gestellte Fragen zu finden.
   Nutzen Sie bitte diese Mo:glichkeit, bevor Sie Fragen auf einer
   Liste stellen. Beachten Sie auch, dass das zur Folge hat, dass die
   Nachrichten an die FreeBSD Mailinglisten fu:r die Ewigkeit
   erhalten bleiben. Wenn Sie am Schutz ihrer Privatspha:hre
   interessiert sind, ziehen Sie die Verwendung einer
   Wegwerf-E-Mail-Adresse in Betracht und schreiben Sie nur solche
   Nachrichten, die fu:r die O:ffentlichkeit bestimmt sind.

     --------------------------------------------------------------

  C.1.1. Beschreibung der Mailinglisten

   Allgemeine Listen: Jeder kann die folgenden allgemeinen Listen
   abonnieren (und ist dazu aufgefordert):

            Mailingliste                         Zweck                
   freebsd-advocacy               Verbreitung von FreeBSD             
   freebsd-announce               Wichtige Ereignisse und             
                                  Meilensteine des Projekts           
   freebsd-arch                   Architektur und Design von FreeBSD  
                                  Diskussionen u:ber die Pflege der   
   freebsd-bugbusters             FreeBSD Fehlerberichte-Datenbank    
                                  und die dazu benutzten Werkzeuge    
   freebsd-bugs                   Fehlerberichte                      
   freebsd-chat                   Nicht technische Themen, die die    
                                  FreeBSD-Gemeinschaft betreffen      
   freebsd-chromium               Diskussionen zum Einsatz von        
                                  Chromium unter FreeBSD              
   freebsd-current                Gebrauch von FreeBSD-CURRENT        
   freebsd-isp                    Fu:r Internet-Service-Provider, die 
                                  FreeBSD benutzen                    
   freebsd-jobs                   Anstellung und Beratung im          
                                  FreeBSD-Umfeld                      
   freebsd-questions              Benutzerfragen und technische       
                                  Unterstu:tzung                      
   freebsd-security-notifications Anku:ndigungen zum Thema Sicherheit 
   freebsd-stable                 Gebrauch von FreeBSD-STABLE         
                                  Schicken Sie Testnachrichten an     
   freebsd-test                   diese Liste anstelle der wirklichen 
                                  Listen                              

   Technische Listen: Auf den folgenden Listen werden technische
   Diskussionen gefu:hrt. Bevor Sie eine der Listen abonnieren oder
   Nachrichten an sie schicken, lesen Sie sich bitte die Charta der
   Liste durch, da der Inhalt und Zweck dieser Listen genau
   festgelegt ist.

        Mailingliste                         Zweck                    
   freebsd-acpi           Entwicklung von ACPI                        
   freebsd-afs            Portierung von AFS nach FreeBSD             
   freebsd-aic7xxx        Entwicklung von Adaptec AIC 7xxx Treibern   
   freebsd-amd64          Portierung von FreeBSD auf AMD64-Systeme    
   freebsd-apache         Diskussion u:ber Ports, die mit Apache      
                          zusammenha:ngen.                            
   freebsd-arm            Portierung von FreeBSD auf                  
                          ARM(R)-Prozessoren                          
   freebsd-atm            Benutzung von ATM-Netzen mit FreeBSD        
                          Design und Entwicklung eines Systems, das   
   freebsd-binup          es erlaubt, ein FreeBSD-System mit bina:ren 
                          Paketen zu aktualisieren                    
   freebsd-bluetooth      Bluetooth unter FreeBSD verwenden           
   freebsd-cluster        Benutzung von FreeBSD in einem Cluster      
   freebsd-cvsweb         Pflege von CVSweb                           
   freebsd-database       Diskussion u:ber Datenbanken und            
                          Datenbankprogrammierung unter FreeBSD       
   freebsd-desktop        FreeBSD als Desktop verwenden und           
                          verbessern                                  
   freebsd-doc            Erstellen der FreeBSD-Dokumentation         
   freebsd-drivers        Gera:tetreiber fu:r FreeBSD schreiben       
                          Fu:r FreeBSD-Anwender, die die Eclipse IDE, 
   freebsd-eclipse        deren Werkzeuge, Anwendungen und Ports      
                          einsetzen                                   
   freebsd-embedded       FreeBSD in eingebetteten Anwendungen        
                          einsetzen                                   
   freebsd-emulation      Emulation anderer Systeme wie Linux, MS-DOS 
                          oder Windows                                
                          Support fu:r FreeBSD-bezogene Software, die 
   freebsd-eol            vom FreeBSD Project offiziell nicht mehr    
                          unterstu:tzt wird.                          
   freebsd-firewire       Technische Diskussion u:ber FireWire        
                          (iLink, IEEE 1394)                          
   freebsd-fs             Dateisysteme                                
   freebsd-gecko          Angelegenheiten zur Gecko Rendering Engine  
   freebsd-geom           Diskussion u:ber GEOM                       
   freebsd-gnome          Portierung von GNOME und GNOME-Anwendungen  
   freebsd-hackers        Allgemeine technische Diskussionen          
   freebsd-hardware       Allgemeine Diskussion u:ber Hardware, auf   
                          der FreeBSD la:uft                          
   freebsd-i18n           Internationalisierung von FreeBSD           
   freebsd-ia32           FreeBSD fu:r die IA-32 (Intel x86)          
                          Plattform                                   
   freebsd-ia64           Portierung von FreeBSD auf Intels neue      
                          IA64-Systeme                                
   freebsd-ipfw           Technische Diskussion u:ber die             
                          Neubearbeitung der IP-Firewall Quellen      
   freebsd-isdn           Fu:r Entwickler des ISDN-Systems            
   freebsd-java           Fu:r Java Entwickler und Leute, die JDKs    
                          nach FreeBSD portieren                      
   freebsd-kde            Portierung von KDE und KDE-Anwendungen      
   freebsd-lfs            Portierung von LFS nach FreeBSD             
   freebsd-mips           Portierung von FreeBSD zu MIPS(R)           
   freebsd-mobile         Diskussionen u:ber mobiles Rechnen          
   freebsd-mono           Mono und C# Anwendungen auf FreeBSD         
   freebsd-mozilla        Portierung von Mozilla nach FreeBSD         
   freebsd-multimedia     Multimedia Anwendungen                      
   freebsd-new-bus        Technische Diskussionen u:ber die           
                          Architektur von Bussen                      
   freebsd-net            Diskussion u:ber Netzwerke und den TCP/IP   
                          Quellcode                                   
   freebsd-office         Office-Anwendungen fu:r FreeBSD             
   freebsd-performance    Fragen zur Optimierung der Leistung stark   
                          ausgelasteter Systeme                       
   freebsd-perl           Pflege der portierten Perl-Anwendungen.     
   freebsd-pf             Diskussionen und Fragen zu packet filter    
                          als Firewallsystem.                         
   freebsd-platforms      Portierungen von FreeBSD auf nicht-Intel    
                          Architekturen                               
   freebsd-ports          Diskussion u:ber die Ports-Sammlung         
   freebsd-ports-announce Wichtige Neuigkeiten und Anweisungen zur    
                          Ports-Sammlung                              
   freebsd-ports-bugs     Diskussion u:ber Fehler und PRs der Ports   
   freebsd-ppc            Portierung von FreeBSD auf den PowerPC      
                          Technische Diskussionen zum Einsatz von     
   freebsd-proliant       FreeBSD auf der ProLiant-Serverplattform    
                          von HP.                                     
   freebsd-python         FreeBSD-spezifische Diskussionen zu Python  
   freebsd-rc             Diskussion u:ber das rc.d-System sowie      
                          dessen Weiterentwicklung                    
   freebsd-realtime       Entwicklung von Echtzeiterweiterungen fu:r  
                          FreeBSD                                     
   freebsd-ruby           FreeBSD-spezifische Diskussionen zu Ruby    
   freebsd-scsi           Diskussion u:ber das SCSI-Subsystem         
   freebsd-security       Sicherheitsthemen                           
                          Gebrauch von FreeBSD in eingebetteten       
   freebsd-small          Systemen (obsolet; verwenden Sie            
                          stattdessen freebsd-embedded)               
   freebsd-sparc64        Portierung von FreeBSD auf SPARC Systeme    
   freebsd-standards      Konformita:t von FreeBSD mit den C99- und   
                          POSIX-Standards                             
   freebsd-sysinstall     sysinstall(8) Entwicklung                   
   freebsd-threads        Leichgewichtige Prozesse (Threads) in       
                          FreeBSD                                     
   freebsd-tilera         Diskussionen zur Portierung von FreeBSD auf 
                          die Tilera-CPU-Familie.                     
   freebsd-tokenring      Token-Ring Unterstu:tzung in FreeBSD        
   freebsd-toolchain      Wartung der FreeBSD-Toolchain               
   freebsd-usb            USB-Unterstu:tzung in FreeBSD               
                          Diskussion u:ber verschiedene               
   freebsd-virtualization Virtualisierungsverfahren, die von FreeBSD  
                          unterstu:tzt werden                         
   freebsd-vuxml          Diskussion u:ber die Infratruktur von VuXML 
   freebsd-x11            Wartung und Unterstu:tzung von X11 auf      
                          FreeBSD                                     
                          Diskussionen u:ber die FreeBSD Portierung   
   freebsd-xen            auf Xen(TM) - Implementierung und           
                          Verwendung                                  
   freebsd-xfce           Portierung und Wartung von XFCE             
   freebsd-zope           Zope fu:r FreeBSD - Portierung und Wartung  

   Eingeschra:nkte Listen: Die folgenden Listen wenden sich an
   Zielgruppen mit speziellen Anforderungen und sind nicht fu:r die
   O:ffentlichkeit gedacht. Bevor Sie eine dieser Listen abonnieren,
   sollten Sie einige der technischen Listen abonniert haben, um mit
   den Umgangsformen vertraut zu sein.

      Mailingliste                         Zweck                      
   freebsd-hubs        Betrieb von FreeBSD-Spiegeln                   
   freebsd-user-groups Koordination von Benutzergruppen               
   freebsd-vendors     Koordination von Ha:ndlern vor einem Release   
   freebsd-wip-status  Status von in Arbeit befindlichen              
                       FreeBSD-Ta:tigkeiten                           
   freebsd-wireless    Diskussionen zum 802.11-Stack sowie zur        
                       Entwicklung von Tools und Gera:tetreibern      
   freebsd-www         Betreuer von www.FreeBSD.org                   

   Zusammenfassungen: Alle eben aufgeza:hlten Listen sind auch in
   zusammengefasster Form (digest) erha:ltlich. In den Einstellungen
   Ihres Accounts legen Sie fest, in welcher Form Sie die Listen
   empfangen.

   CVS & SVN Listen: Die folgenden Listen versenden die Log-Eintra:ge
   zu A:nderungen an verschiedenen Teilen des Quellbaums. Diese
   Listen sollen nur gelesen werden, schicken Sie bitte keine
   Nachrichten an eine der Listen.

       Mailingliste       Teil des Quellbaums        Beschreibung     
                                                 Alle A:nderungen im  
   cvs-all              /usr/(CVSROOT|doc|ports) Quellbaum (Obermenge 
                                                 der anderen          
                                                 Commit-Listen)       
   cvs-doc              /usr/(doc|www)           A:nderungen in den   
                                                 doc- und www Ba:umen 
   cvs-ports            /usr/ports               A:nderungen im       
                                                 ports-Baum           
   cvs-projects         /usr/projects            A:nderungen im       
                                                 projects-Baum        
                                                 A:nderungen im       
   cvs-src              /usr/src                 src-Baum (generiert  
                                                 aus den svn-zu-cvs   
                                                 Import-Commits       
                                                 A:nderungen im       
                                                 Subversion           
   svn-src-all          /usr/src                 Repository (ausser   
                                                 fu:r user und        
                                                 projects)            
                                                 A:nderungen im       
                                                 "head" Zweig des     
   svn-src-head         /usr/src                 Subversion           
                                                 Repository (der      
                                                 FreeBSD-CURRENT      
                                                 Zweig)               
                                                 A:nderungen im       
   svn-src-projects     /usr/projects            projects Bereich des 
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen im       
   svn-src-release      /usr/src                 releases Bereich des 
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen im       
                                                 releng Zweig des src 
   svn-src-releng       /usr/src                 Subversion           
                                                 Repository (der      
                                                 security / release   
                                                 engineering Zweige)  
                                                 A:nderungen an allen 
   svn-src-stable       /usr/src                 stable Zweigen des   
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen im       
   svn-src-stable-6     /usr/src                 stable/6 Zweig des   
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen im       
   svn-src-stable-7     /usr/src                 stable/7 Zweig des   
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen im       
   svn-src stable-8     /usr/src                 stable/8 Zweig des   
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen im       
   svn-src-stable-9     /usr/src                 stable/8 Zweig des   
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen an       
                                                 a:lteren stable      
   svn-src-stable-other /usr/src                 Zweigen des src      
                                                 Subversion           
                                                 Repository           
                                                 A:nderungen an den   
                                                 administrativen      
                                                 Skripten, hooks, and 
   svn-src-svnadmin     /usr/src                 anderen Daten zur    
                                                 Konfiguration des    
                                                 src Subversion       
                                                 Repository           
                                                 A:nderungen am       
                                                 experimentellen user 
   svn-src-user         /usr/src                 Bereich des src      
                                                 Subversion           
                                                 Repository           
                                                 A:nderungen am       
   svn-src-vendor       /usr/src                 Herstellerbereich    
                                                 des src Subversion   
                                                 Repository           

     --------------------------------------------------------------

  C.1.2. Mailinglisten abonnieren

   Um eine Liste zu abonnieren, folgen Sie dem oben angegebenen
   Hyperlink der Liste oder Sie besuchen die Webseite
   http://lists.FreeBSD.org/mailman/listinfo und klicken dort auf die
   Liste, die Sie abonnieren wollen. Sie gelangen dann auf die
   Webseite der Liste, die weitere Anweisungen entha:lt.

   Um eine Nachricht an eine Mailingliste zu schicken, schreiben Sie
   einfach eine E-Mail an <Liste@FreeBSD.org>. Die E-Mail wird dann
   an alle Mitglieder der Mailingliste verteilt.

   Wenn Sie das Abonnement aufheben wollen, folgen Sie der URL, die
   am Ende jeder Mail der Liste angegeben ist. Sie ko:nnen das
   Abonnement auch mit einer E-Mail an
   <Liste-unsubscribe@FreeBSD.org> aufheben.

   Verwenden Sie bitte die technischen Listen ausschliesslich fu:r
   technische Diskussionen. Wenn Sie nur an wichtigen Anku:ndigungen
   interessiert sind, abonnieren Sie die Mailingliste FreeBSD
   announcements, auf der nur wenige Nachrichten versendet werden.

     --------------------------------------------------------------

  C.1.3. Chartas der Mailinglisten

   Alle FreeBSD-Mailinglisten besitzen Grundregeln, die von jedem
   beachtet werden mu:ssen. Fu:r die ersten beiden Male, in denen ein
   Absender gegen diese Regeln versto:sst, erha:lt er jeweils eine
   Warnung vom FreeBSD-Postmaster <postmaster@FreeBSD.org>. Ein
   dritter Verstoss gegen die Regeln fu:hrt dazu, dass der Absender
   in allen FreeBSD-Mailinglisten gesperrt wird und weitere
   Nachrichten von ihm nicht mehr angenommen werden. Wir bedauern
   sehr, dass wir solche Massnahmen ergreifen mu:ssen, aber
   heutzutage ist das Internet eine recht rauhe Umgebung, in der
   immer weniger Leute Ru:cksicht aufeinander nehmen.

   Die Regeln:

     * Das Thema einer Nachricht soll der Charta der Liste, an die
       sie gesendet wird, entsprechen. Wenn Sie eine Nachricht an
       eine technische Liste schicken, sollte die Nachricht auch
       technische Inhalte haben. Fortwa:hrendes Geschwa:tz oder
       Streit mindern den Wert der Liste fu:r alle Mitglieder und
       wird nicht toleriert. Benutzen Sie FreeBSD chat fu:r
       allgemeine Diskussionen u:ber FreeBSD.

     * Eine Nachricht sollte an nicht mehr als zwei Mailinglisten
       gesendet werden. Schicken Sie eine Nachricht nur dann an zwei
       Listen, wenn das wirklich notwendig ist. Viele Leute haben
       mehrere Mailinglisten abonniert und Nachrichten sollten nur zu
       ungewo:hnlichen Kombinationen der Listen, wie "-stable" und
       "-scsi", gesendet werden. Wenn Sie eine Nachricht erhalten,
       die im Cc-Feld mehrere Listen entha:lt, sollten Sie das Feld
       ku:rzen, bevor Sie eine Antwort darauf verschicken.
       Unabha:ngig von dem urspru:nglichen Verteiler sind Sie fu:r
       Ihre eigenen Mehrfach-Sendungen selbst verantwortlich.

     * Perso:nliche Angriffe und Beschimpfungen sind in einer
       Diskussion nicht erlaubt. Dies gilt gleichermassen fu:r
       Benutzer wie Entwickler. Grobe Verletzungen der Netiquette,
       wie das Verschicken oder Zitieren von privater E-Mail ohne
       eine entsprechende Genehmigung, werden nicht gebilligt. Die
       Nachrichten werden aber nicht besonders auf Verletzungen der
       Netiquette untersucht. Es kann sein, dass eine Verletzung der
       Netiquette durchaus zu der Charta einer Liste passt, aber der
       Absender aufgrund der Verletzung eine Warnung erha:lt oder
       gesperrt wird.

     * Werbung fu:r Produkte oder Dienstleistungen, die nichts mit
       FreeBSD zu tun haben, sind verboten. Ist die Werbung als Spam
       verschickt worden, wird der Absender sofort gesperrt.

   Chartas einzelner Listen:

   freebsd-acpi

           Die Entwicklung von ACPI und Energieverwaltungsfunktionen.

   freebsd-afs

           Andrew File System

           Auf dieser Liste wird die Portierung des AFS von
           CMU/Transarc diskutiert.

   freebsd-announce

           Wichtige Ereignisse und Meilensteine

           Diese Liste ist fu:r Personen, die nur an den wenigen
           Anku:ndigungen wichtiger Ereignisse interessiert sind. Die
           Anku:ndigungen betreffen Schnappschu:sse und Releases,
           neue Merkmale von FreeBSD und die Suche nach freiwilligen
           Mitarbeitern. Auf der Liste herrscht wenig Verkehr und sie
           wird streng moderiert.

   freebsd-arch

           Architektur und Design von FreeBSD

           Auf dieser technischen Liste wird die FreeBSD-Architektur
           diskutiert. Beispiele fu:r angemessene Themen sind:

              * Wie das Bausystem zu vera:ndern ist, damit
                verschiedene La:ufe gleichzeitig mo:glich sind.

              * Was am VFS gea:ndert werden muss, damit Heidemann
                Schichten eingesetzt werden ko:nnen.

              * Wie die Schnittstelle der Gera:tetreiber angepasst
                werden muss, damit derselbe Treiber auf verschiedenen
                Bussen und Architekturen eingesetzt werden kann.

              * Wie ein Netzwerktreiber geschrieben wird.

   freebsd-binup

           FreeBSD Binary Update Project

           Auf dieser Liste wird das Design und die Implementierung
           von binup diskutiert. Weitere Themen sind
           Fehlerbehebungen, Fehlerberichte und Anfragen nach
           Neuerungen. Die CVS-Logmeldungen des Projekts werden
           ebenfalls auf diese Liste gesendet.

   freebsd-bluetooth

           Bluetooth unter FreeBSD

           Diese Liste diskutiert Probleme der Verwendung von
           Bluetooth unter FreeBSD. Designprobleme,
           Implementierungsdetails, Patches, Fehler- und
           Statusberichte, Verbesserungsvorschla:ge sowie alle
           anderen mit Bluetooth zusammenha:ngenden Themen werden
           hier behandelt.

   freebsd-bugbusters

           Bearbeitung der Fehlerberichte

           Auf dieser Liste wird die Bearbeitung der Fehlerberichte
           (PR, engl. problem report) koordiniert. Sie dient dem
           "Bugmeister" und allen Leuten, die ein Interesse an der
           Datenbank der Fehlerberichte haben, als Diskussionsforum.
           Auf dieser Liste werden keine spezifischen Fehler,
           Fehlerbehebungen oder PRs diskutiert.

   freebsd-bugs

           Fehlerberichte

           Auf dieser Liste werden Fehlerberichte gesammelt.
           Fehlerberichte sollten immer mit send-pr(1) oder dem Web
           Formular erstellt werden.

   freebsd-chat

           Nicht technische Themen, die die FreeBSD Gemeinschaft
           betreffen

           Auf dieser Liste werden nicht-technische soziale Themen
           diskutiert, die nicht auf die anderen Listen passen. Hier
           kann diskutiert werden, ob Jordan wie ein Frettchen aus
           einem Zeichentrickfilm aussieht oder nicht, ob
           grundsa:tzlich in Grossbuchstaben geschrieben werden soll,
           wer zuviel Kaffee trinkt, wo das beste Bier gebraut wird
           und wer Bier in seinem Keller braut. Gelegentlich ko:nnen
           auf den technischen Listen wichtige Ereignisse wie Feste,
           Hochzeiten oder Geburten angeku:ndigt werden, aber
           nachfolgende Nachrichten sollten auf die Liste FreeBSD
           chat gesendet werden.

   freebsd-chromium

           Diskussionen zum Einsatz von Chromium unter FreeBSD

           Auf dieser technischen Liste werden Fragen zur
           Entwicklung, zur Installation sowie zum Einsatz von
           Chromium unter FreeBSD diskutiert.

   freebsd-core

           FreeBSD Core Team

           Dies ist eine interne Mailingliste des FreeBSD Core Teams.
           Wenn in einer wichtigen Angelegenheit, die FreeBSD
           betrifft, entschieden werden muss oder die Angelegenheit
           einer genauen Pru:fung unterzogen werden muss, ko:nnen
           Nachrichten an diese Liste gesendet werden.

   freebsd-current

           Gebrauch von FreeBSD-CURRENT

           Diese Mailingliste ist fu:r die Benutzer von
           FreeBSD-CURRENT eingerichtet. Auf ihr finden sich
           Anku:ndigungen u:ber Besonderheiten von -CURRENT, von
           denen Benutzer betroffen sind. Sie entha:lt weiterhin
           Anweisungen, wie man ein System auf -CURRENT ha:lt. Jeder,
           der ein -CURRENT System besitzt, muss diese Liste lesen.
           Die Liste ist nur fu:r technische Inhalte bestimmt.

   freebsd-cvsweb

           FreeBSD CVSweb Project

           Technische Diskussion u:ber den Gebrauch, die Entwicklung
           und die Pflege von FreeBSD-CVSweb.

   freebsd-desktop

           FreeBSD als Desktop verwenden und verbessern

           Dies ist ein Forum fu:r Diskussionen um FreeBSD auf dem
           Desktop. Es wird prima:r von Desktop-Portierern und
           Nutzern verwendet, um Probleme und Verbesserungen zu
           FreeBSDs Einsatz auf dem Desktop zu besprechen.

   freebsd-doc

           Documentation Project

           Auf dieser Mailingliste werden Themen und Projekte
           diskutiert, die im Zusammenhang mit der Erstellung der
           FreeBSD Dokumentation stehen. "The FreeBSD Documentation
           Project" besteht aus den Mitgliedern dieser Liste. Diese
           Liste steht jedem offen, Sie sind herzlich eingeladen
           teilzunehmen und mitzuhelfen.

   freebsd-drivers

           Gera:tetreiber fu:r FreeBSD schreiben

           Ein Forum fu:r technische Diskussionen u:ber das Schreiben
           von Gera:tetreibern fu:r FreeBSD. Daher werden hier vor
           allem Fragen behandelt, die sich um das Schreiben von
           Treibern, die die APIs des Kernels nutzen, drehen.

   freebsd-eclipse

           Fu:r FreeBSD-Anwender, die die Eclipse IDE deren
           Werkzeuge, Anwendungen und Ports einsetzen

           Das Ziel dieser Liste ist es, Unterstu:tzung fu:r all jene
           zu bieten, die mit der Installation, Verwendung,
           Entwicklung und Wartung der Eclipse-IDE sowie deren
           Werkzeugen und Anwendungen unter FreeBSD zu tun haben.
           Ausserdem wird Hilfe bei der Portierung der IDE und deren
           Plugins auf FreeBSD geboten.

           Zusa:tzlich soll diese Liste einen Informationsaustausch
           zwischen der Eclipse- und der FreeBSD-Gemeinde
           ermo:glichen, von dem beide Seiten profitieren ko:nnen.

           Obwohl sich diese Liste auf die Anforderungen von
           Anwendern konzentriert, mo:chte sie auch Entwickler
           unterstu:tzen, die an der Entwicklung von
           FreeBSD-spezifischen Anwendungen unter Nutzung des
           Eclipse-Frameworks arbeiten.

   freebsd-embedded

           FreeBSD in eingebetteten Anwendungen einsetzen

           Diese Liste diskutiert Themen im Zusammenhang mit dem
           Einsatz von ungewo:hnlich kleinen und eingebettenen
           FreeBSD-Installationen. Auf dieser Liste werden
           ausschliesslich technische Diskussionen gefu:hrt. Unter
           eingebetteten Systemen versteht diese Liste Systeme, bei
           denen es sich nicht um Desktopsysteme handelt, und die in
           der Regel nur einem einzigen Zweck dienen (im Gegensatz zu
           Desktopsystemen, die fu:r die Bewa:ltigung verschiedenster
           Aufgaben geeignet sind). In die Gruppe der eingebetteten
           Systeme geho:ren beispielsweise Telephone, Netzwerkgera:te
           wie Router, Switche oder PBX-Systeme, PDAs,
           Verkaufsautomaten und andere mehr.

   freebsd-emulation

           Emulation anderer Systeme wie Linux, MS-DOS oder Windows

           Hier werden technische Diskussionen zum Einsatz von
           Programmen, die fu:r andere Betriebssysteme geschrieben
           wurden, gefu:hrt.

   freebsd-eol

           Support fu:r FreeBSD-bezogene Software, die vom FreeBSD
           Project offiziell nicht mehr unterstu:tzt wird.

           Diese Liste ist fu:r all jene interessant, die
           Unterstu:tzung fu:r vom FreeBSD Project offiziell nicht
           mehr (in Form von Security Advisories oder Patches)
           unterstu:tzte Programme beno:tigen oder anbieten wollen.

   freebsd-firewire

           FireWire (iLink, IEEE 1394)

           Auf dieser Liste wird das Design und die Implementierung
           eines FireWire-Subsystems (auch IEEE 1394 oder iLink) fu:r
           FreeBSD diskutiert. Relevante Themen sind die Standards,
           Busse und ihre Protokolle, sowie Adapter, Karten und
           Chipsa:tze. Des Weiteren die Architektur und der
           Quellcode, die no:tig sind, diese Gera:te zu
           unterstu:tzen.

   freebsd-fs

           Dateisysteme

           Diskussionen u:ber FreeBSD-Dateisysteme. Dies ist eine
           technische Liste, in der nur technische Inhalte erwartet
           werden.

   freebsd-gecko

           Angelegenheiten zur Gecko Rendering Engine

           Dies ist ein Forum u:ber Gecko-Anwendungen, die FreeBSD
           verwenden.

           Die Diskussion dreht sich um die Portierung von
           Gecko-Anwendungen, deren Installation, die Entwicklung
           sowie deren Unterstu:tzung innerhalb von FreeBSD.

   freebsd-geom

           GEOM

           Diskussion u:ber GEOM und verwandte Implementierungen.
           Dies ist eine technische Liste, in der nur technische
           Inhalte erwartet werden.

   freebsd-gnome

           GNOME

           Diskussionen u:ber die grafische Benutzeroberfla:che
           GNOME. Dies ist eine technische Liste, in der nur
           technische Inhalte erwartet werden.

   freebsd-ipfw

           IP Firewall

           Diskussionen u:ber eine Neubearbeitung des IP-Firewall
           Quelltexts in FreeBSD. Dies ist eine technische Liste, in
           der nur technische Inhalte erwartet werden.

   freebsd-ia64

           Portierung von FreeBSD auf die IA64-Plattform

           Dies ist eine technische Liste fu:r diejenigen, die
           FreeBSD auf die IA-64 Plattform von Intel portieren.
           Themen sind die Probleme bei der Portierung und deren
           Lo:sung. Interessierte, die der Diskussion folgen wollen,
           sind ebenfalls willkommen.

   freebsd-isdn

           ISDN Subsystem

           Mailingliste fu:r die Entwickler des ISDN Subsystems von
           FreeBSD.

   freebsd-java

           Java Entwicklung

           Mailingliste, auf der die Entwicklung von Java Anwendungen
           fu:r FreeBSD sowie die Portierung und Pflege von JDKs
           diskutiert wird.

   freebsd-jobs

           Stellenangebote und Stellengesuche

           In diesem Forum ko:nnen Sie Stellenangebote und
           Stellengesuche, die mit FreeBSD zu tun haben, aufgeben.
           Wenn Sie beispielsweise eine Bescha:ftigung im
           FreeBSD-Umfeld suchen oder eine freie Stelle haben, die
           mit FreeBSD zu tun hat, ist dies der richtige Ort. Diese
           Mailingliste ist nicht der Ort, um u:ber allgemeine
           Bescha:ftigungsprobleme zu diskutieren; dazu gibt es
           anderswo geeignete Foren.

           Beachten Sie bitte, dass diese Liste, wie die anderen
           FreeBSD.org-Listen, weltweit gelesen wird. Geben Sie daher
           bitte den Arbeitsort genau an. Geben Sie bitte auch an, ob
           Telearbeit mo:glich ist und ob Hilfen fu:r einen Umzug
           angeboten werden.

           Benutzen Sie in der E-Mail bitte nur offene Formate -
           vorzugsweise nur das Textformat. Andere Formate, wie PDF
           oder HTML, werden von den Lesern akzeptiert. Nicht offene
           Formate wie Microsoft Word (.doc) werden vom Server der
           Liste abgelehnt.

   freebsd-hackers

           Technische Diskussionen

           Dies ist ein Forum fu:r technische Diskussionen u:ber
           FreeBSD. Leute, die aktiv an FreeBSD arbeiten, ko:nnen
           hier Probleme und deren Lo:sungen diskutieren.
           Interessierte, die den Diskussionen folgen wollen, steht
           die Liste ebenfalls offen. Auf dieser Liste finden nur
           technische Diskussionen statt.

   freebsd-hardware

           Allgemeine Diskussionen u:ber Hardware

           Allgemeine Diskussionen u:ber die Hardware, auf der
           FreeBSD la:uft: Probleme und Ratschla:ge welche Hardware
           man kaufen sollte und welche nicht.

   freebsd-hubs

           FreeBSD-Spiegel

           Anku:ndigungen und Diskussionsforum fu:r Leute, die
           FreeBSD-Spiegel betreiben.

   freebsd-isp

           Themen fu:r Internet Service Provider

           Diese Liste ist fu:r Internet Service Provider (ISP), die
           FreeBSD benutzen. Auf dieser Liste finden nur technische
           Diskussionen statt.

   freebsd-mono

           Mono und C# Anwendungen auf FreeBSD

           Diese Liste beinhaltet Diskussionen u:ber das Mono
           Entwicklungsframework auf FreeBSD. Dies ist eine
           technische Mailingliste. Es ist fu:r Personen gedacht, die
           aktiv an der Portierung von Mono oder C# Anwendungen auf
           FreeBSD sind, um Probleme oder alternative Lo:sungen zu
           beratschlagen. Personen die der technischen Diskussion
           folgen mo:chten sind ebenso willkommen.

   freebsd-kde

           KDE

           Diskussionen u:ber KDE auf FreeBSD-Systemen. Dies ist eine
           technische Liste, in der nur technische Inhalte erwartet
           werden.

   freebsd-performance

           Diskussionsforum mit dem Ziel, die Leistung von FreeBSD zu
           verbessern.

           Auf dieser Liste diskutieren Hacker, Systemadministratoren
           und andere Interessierte die Leistung von FreeBSD.
           Zula:ssige Themen sind beispielsweise Systeme unter hoher
           Last, Systeme mit Leistungsproblemen oder Systeme, die
           Leistungsgrenzen von FreeBSD u:berwinden. Jeder, der
           mithelfen will, die Leistung von FreeBSD zu verbessern,
           sollte diese Liste abonnieren. Die Liste ist technisch
           anspruchsvoll und geeignet fu:r erfahrene
           FreeBSD-Benutzer, Hacker oder Administratoren, die FreeBSD
           schnell, robust und skalierbar halten wollen. Auf der
           Liste werden Beitra:ge gesammelt oder Fragen nach
           ungelo:sten Problemen beantwortet. Sie ist kein Ersatz
           fu:r das gru:ndliche Studium der Dokumentation.

   freebsd-pf

           Diskussionen und Fragen zu packet filter als
           Firewallsystem.

           FreeBSD-spezische Diskussionen zur Benutzung von packet
           filter (pf) als Firewallsystem. Sowohl technische
           Diskussionen als auch Anwenderfragen sind auf dieser Liste
           willkommen. Fragen zum ALTQ QoS Framework ko:nnen
           ebenfalls gestellt werden.

   freebsd-platforms

           Portierung auf nicht-Intel Plattformen

           Plattformu:bergreifende Themen und Vorschla:ge fu:r die
           Portierung auf nicht-Intel Plattformen. Auf dieser Liste
           finden nur technische Diskussionen statt.

   freebsd-ports

           Diskussion u:ber die Ports-Sammlung

           Diskussionen u:ber die FreeBSD-Ports-Sammlung und die
           Infrastruktur der Sammlung. Die Liste dient auch der
           allgemeinen Koordination der Dinge, die die Ports-Sammlung
           betreffen. Auf dieser Liste finden nur technische
           Diskussionen statt.

   freebsd-ports-bugs

           Diskussion u:ber Fehler in den Ports

           Diskussion u:ber Fehler in der Ports-Sammlung
           (/usr/ports), neue Ports oder A:nderungen an bestehenden
           Ports. Auf dieser Liste finden nur technische Diskussionen
           statt.

   freebsd-proliant

           Technische Diskussionen zum Einsatz von FreeBSD auf der
           ProLiant-Serverplattform von HP

           Diese Mailingliste bietet technische Diskussionen zum
           Einsatz von FreeBSD auf der ProLiant-Serverplattform von
           HP, darunter Fragen zu ProLiant-spezifischen Treibern,
           Konfigurationswerkzeugen sowie BIOS-Aktualisierungen.
           Daher ist sie die erste Anlaufstelle, um die Module
           hpasmd, hpasmcli, sowie hpacucli zu diskutieren.

   freebsd-python

           Python unter FreeBSD

           Diese technische Liste dient der Verbesserung der
           Python-Unterstu:tzung unter FreeBSD. Sie wird von Personen
           gelesen, die an der Portierung von Python, von
           Python-Modulen Dritter und von Zope nach FreeBSD arbeiten.
           Personen, die diese technischen Diskussion verfolgen
           wollen, sind ebenfalls willkommen.

   freebsd-questions

           Benutzerfragen

           Auf dieser Mailingliste ko:nnen Fragen zu FreeBSD gestellt
           werden. Fragen Sie bitte nicht nach Anleitungen, wenn Sie
           nicht sicher sind, dass Ihre Frage wirklich technischer
           Natur ist.

   freebsd-ruby

           Ruby unter FreeBSD

           Diese technische Liste dient der Verbesserung der
           Ruby-Unterstu:tzung unter FreeBSD. Sie wird von Personen
           gelesen, die an der Portierung von Ruby, von Bibliotheken
           Dritter und Frameworks arbeiten. Personen, die diese
           technischen Diskussionen verfolgen wollen, sind ebenfalls
           willkommen.

   freebsd-scsi

           SCSI Subsystem

           Diese Mailingliste ist fu:r die Entwickler des SCSI
           Subsystems von FreeBSD. Auf dieser Liste finden nur
           technische Diskussionen statt.

   freebsd-security

           Sicherheitsthemen

           Sicherheitsthemen, die FreeBSD betreffen, wie DES,
           Kerberos, bekannte Sicherheitslo:cher und
           Fehlerbehebungen. Stellen Sie bitte auf dieser Liste keine
           allgemeinen Fragen zum Thema Sicherheit. Willkommen sind
           allerdings Beitra:ge zur FAQ, das heisst eine Frage mit
           der passenden Antwort. Auf dieser Liste finden nur
           technische Diskussionen statt.

   freebsd-security-notifications

           Anku:ndigungen zum Thema Sicherheit

           Anku:ndigungen u:ber Sicherheitsprobleme von FreeBSD und
           deren Behebungen. Diese Liste ist kein Diskussionsforum,
           benutzen Sie FreeBSD security, um Sicherheitsthemen zu
           diskutieren.

   freebsd-small

           Gebrauch von FreeBSD in eingebetteten Systemen.

           Diese Liste fu:r ungewo:hnlich kleine FreeBSD Installation
           oder den Einsatz von FreeBSD in eingebetteten Systemen
           gedacht. Auf dieser Liste finden nur technische
           Diskussionen statt.

             Anmerkung: Diese Liste wurde durch freebsd-embedded
             ersetzt.

   freebsd-stable

           Gebrauch von FreeBSD-STABLE.

           Diese Mailingliste ist fu:r die Benutzer von
           FreeBSD-STABLE eingerichtet. Auf ihr finden sich
           Anku:ndigungen u:ber Besonderheiten von -STABLE, von denen
           Benutzer betroffen sind. Sie entha:lt weiterhin
           Anweisungen, wie man ein System auf -STABLE ha:lt. Jeder,
           der ein -STABLE System besitzt, muss diese Liste lesen.
           Die Liste ist nur fu:r technische Inhalte bestimmt.

   freebsd-standards

           Konformita:t von FreeBSD mit den C99- und POSIX Standards

           Dieses Forum ist fu:r technische Diskussionen u:ber die
           Konformita:t von FreeBSD mit den C99- und POSIX-Standards.

   freebsd-toolchain

           Wartung der FreeBSD-Toolchain

           Auf dieser Mailingliste werden alle Themen rund um die
           FreeBSD-Toolchain diskutiert. Dazu geho:ren der Status von
           Clang und GCC, aber auch Fragen zu Programmen wie
           Assemblern, Linkern und Debuggern.

   freebsd-usb

           USB-Unterstu:tzung in FreeBSD.

           Auf dieser Liste finden nur technische Diskussionen statt.

   freebsd-user-groups

           Koordination von Benutzergruppen

           Diese Liste ist fu:r Koordinatoren lokaler Benutzergruppen
           und einem ausgesuchten Mitglied des Core Teams
           eingerichtet worden. Der Inhalt sollte Inhalte von Treffen
           und die Koordination von Projekten mehrerer
           Benutzergruppen beschra:nkt sein.

   freebsd-vendors

           Koordination von Ha:ndlern

           Koordination zwischen dem FreeBSD Project und Ha:ndlern,
           die Soft- und Hardware fu:r FreeBSD verkaufen.

   freebsd-virtualization

           Diskussion u:ber verschiedene Virtualisierungsverfahren,
           die von FreeBSD unterstu:tzt werden

           Eine Liste, auf der die verschiedenen
           Virtualisierungsverfahren, die von FreeBSD unterstu:tzt
           werden, diskutiert werden. Auf der einen Seite liegt der
           Fokus auf der Implementierung der zugrundeliegenden
           Funktionalita:ten, ebenso wie das Hinzufu:gen neuer
           Eigenschaften. Auf der anderen Seite haben die Benutzer
           ein Forum, um Fragen bei Problemen zu stellen oder um ihre
           Anwendungsfa:lle zu besprechen.

   freebsd-wip-status

           Status von in Arbeit befindlichen FreeBSD-Ta:tigkeiten

           Diese Mailingliste kann dazu verwendet werden, eigene
           Kreationen und deren Fortschritt von FreeBSD-verwandten
           Ta:tigkeiten anzuku:ndigen. Die Nachrichten werden
           moderiert. Es wird vorgeschlagen, die Nachricht "An:" eine
           mehr themenverwandte FreeBSD-Liste zu senden und diese
           Liste nur in Blindkopie zu setzen. Auf diese Weise kann
           ihre in Arbeit befindliche Ta:tigkeit auch auf der
           themenverwandten Liste diskutiert werden, da auf dieser
           Liste keine Diskussionen erlaubt sind.

           Sehen Sie sich das Archiv der Liste fu:r passende
           Nachrichten an.

           Redaktionelle Auszu:ge der Nachrichten an diese Liste
           werden eventuell alle paar Monate auf die FreeBSD Webseite
           als Teil der Statusberichte [21] gestellt. Weitere
           Beispiele und zuru:ckliegende Berichte ko:nnen Sie auch
           dort finden.

   freebsd-wireless

           Diskussionen zum 802.11-Stack sowie zur Entwicklung von
           Tools und Gera:tetreibern

           Die Mailingliste freebsd-wireless diskutiert Themen rund
           um den 802.11-Stack (sys/net80211). Besprochen werden die
           Entwicklung von Tools und Gera:tetreibern sowie
           auftretende Probleme, neue Funktionen sowie die Wartung
           der existierenden Werkzeuge und Treiber.

   freebsd-xen

           Diskussionen u:ber die FreeBSD Portierung auf Xen -
           Implementierung und Verwendung

           Eine Liste, die die FreeBSD Portierung auf Xen behandelt.
           Das erwartete Nachrichtenaufkommen ist klein genug, so
           dass es als Forum fu:r sowohl technische Diskussionen
           u:ber die Implementierung und Entwurfsdetails, als auch
           administrative Verteilaspekte ausgelegt ist.

   freebsd-xfce

           XFCE

           Eine Liste, auf der Fragen zum Einsatz von XFCE unter
           FreeBSD diskutiert werden. Es handelt sich um eine
           technische Mailingliste, die sich prima:r an Entwickler
           richtet, die aktiv an der Portierung von XFCE nach FreeBSD
           arbeiten. Aber auch Nutzer, die einfach nur die
           technischen Diskussionen verfolgen wollen, sind
           willkommen. Diskutiert werden vor allem bei der Portierung
           auftretende Probleme und mo:gliche Lo:sungswege.

   freebsd-zope

           Zope

           Ein Forum fu:r Diskussionen daru:ber, wie man die
           Zope-Umgebung auf FreeBSD portieren kann. Dies ist eine
           technische Mailingliste. Sie ist fu:r Leute gedacht, die
           aktiv an der Portierung von Zope auf FreeBSD arbeiten, um
           aufkommende Probleme oder alternative Lo:sungsansa:tze zu
           besprechen. Personen, die der technischen Diskussion
           folgen mo:chten, sind ebenfalls willkommen.

     --------------------------------------------------------------

  C.1.4. Filter der Mailinglisten

   Um die Verbreitung von Spam, Viren und anderen nicht erwu:nschten
   E-Mails zu verhindern, werden auf den FreeBSD-Mailinglisten Filter
   eingesetzt. Dieser Abschnitt beschreibt nur einen Teil der zum
   Schutz der Listen eingesetzten Filter.

   Auf den Mailinglisten sind nur die unten aufgefu:hrten Anha:nge
   erlaubt. Anha:nge mit einem anderen MIME-Typ werden entfernt,
   bevor eine E-Mail an eine Liste verteilt wird.

     * application/octet-stream

     * application/pdf

     * application/pgp-signature

     * application/x-pkcs7-signature

     * message/rfc822

     * multipart/alternative

     * multipart/related

     * multipart/signed

     * text/html

     * text/plain

     * text/x-diff

     * text/x-patch

     Anmerkung: Einige Mailinglisten erlauben vielleicht Anha:nge mit
     anderem MIME-Typ. Fu:r die meisten Mailinglisten sollte die
     obige Aufza:hlung aber richtig sein.

   Wenn eine E-Mail sowohl aus einer HTML-Version wie auch aus einer
   Text-Version besteht, wird die HTML-Version entfernt. Wenn eine
   E-Mail nur im HTML-Format versendet wurde, wird sie in reinen Text
   umgewandelt.

     --------------------------------------------------------------

C.2. Usenet-News

   Neben den Gruppen, die sich ausschliesslich mit BSD bescha:ftigen,
   gibt es viele weitere in denen u:ber FreeBSD diskutiert wird, oder
   die fu:r FreeBSD-Benutzer wichtig sind. Warren Toomey
   <wkt@cs.adfa.edu.au> stellte grosszu:gig suchbare Archive einiger
   dieser Gruppen bereit.

     --------------------------------------------------------------

  C.2.1. BSD spezifische Gruppen

     * comp.unix.bsd.freebsd.announce

     * comp.unix.bsd.freebsd.misc

     * de.comp.os.unix.bsd (deutsch)

     * fr.comp.os.bsd (franzo:sisch)

     * it.comp.os.bsd (italienisch)

     * tw.bbs.comp.386bsd (Traditionelles Chinesisch)

     --------------------------------------------------------------

  C.2.2. Weitere UNIX Gruppen

     * comp.unix

     * comp.unix.questions

     * comp.unix.admin

     * comp.unix.programmer

     * comp.unix.shell

     * comp.unix.user-friendly

     * comp.security.unix

     * comp.sources.unix

     * comp.unix.advocacy

     * comp.unix.misc

     * comp.bugs.4bsd

     * comp.bugs.4bsd.ucb-fixes

     * comp.unix.bsd

     --------------------------------------------------------------

  C.2.3. X Window System

     * comp.windows.x.i386unix

     * comp.windows.x

     * comp.windows.x.apps

     * comp.windows.x.announce

     * comp.windows.x.intrinsics

     * comp.windows.x.motif

     * comp.windows.x.pex

     * comp.emulators.ms-windows.wine

     --------------------------------------------------------------

C.3. World Wide Web Server

  C.3.1. Foren, Blogs und soziale Netzwerke

     * Die FreeBSD Foren dienen als webbasiertes Diskussionsforum
       fu:r Fragen und technische Diskussionen zu FreeBSD.

     * Planet FreeBSD bietet einen gesammelten Feed aus dutzenden von
       Blogs, die von den FreeBSD Entwicklern geschrieben werden.
       Viele Entwickler nutzen dies, um schnell Aufzeichnungen
       daru:ber zu vero:ffentlichen, woran sie gerade arbeiten,
       welche neuen Erweiterungen es gibt und andere Arbeiten, die
       gerade im Gange sind.

     * Der BSDConferences YouTube-Kanal beinhaltet eine Sammlung von
       qualitativ hochwertigen Videos von BSD Konferenzen aus der
       ganzen Welt. Dies ist eine ausgezeichnete Art und Weise, den
       Entwicklern beim Pra:sentieren von neuen Arbeiten an FreeBSD
       zuzuschauen.

     --------------------------------------------------------------

  C.3.2. Official Mirrors

   Hauptserver, Argentinien, Armenien, Australien, Belgien,
   Brasilien, Bulgarien, China, Costa Rica, Da:nemark, Deutschland,
   Estland, Finnland, Frankreich, Griechenland, Grossbritannien, Hong
   Kong, Island, Italien, Japan, Kanada, Kirgisistan, Korea, Kuwait,
   Lettland, Litauen, Niederlande, Norwegen, O:sterreich,
   Philippinen, Portugal, Ruma:nien, Russland, San Marino, Schweden,
   Schweiz, Singapur, Slowakische Republik, Slowenien, Spanien,
   Su:dafrika, Taiwan, Thailand, Tschechische Republik, Tu:rkei,
   Ukraine, Ungarn, USA.

   (aktualisiert am: 2012/03/27 22:06:38 UTC)

     * Hauptserver

          * http://www.FreeBSD.org/

     * Argentinien

          * http://www.ar.FreeBSD.org/

     * Armenien

          * http://www1.am.FreeBSD.org/ (IPv6)

     * Australien

          * http://www.au.FreeBSD.org/

          * http://www2.au.FreeBSD.org/

     * Belgien

          * http://freebsd.unixtech.be/

     * Brasilien

          * http://www.br.FreeBSD.org/ (IPv6)

          * http://www2.br.FreeBSD.org/www.freebsd.org/

          * http://www3.br.FreeBSD.org/

     * Bulgarien

          * http://www.bg.FreeBSD.org/

          * http://www2.bg.FreeBSD.org/

     * China

          * http://www.cn.FreeBSD.org/

     * Costa Rica

          * http://www1.cr.FreeBSD.org/

     * Da:nemark

          * http://www.dk.FreeBSD.org/ (IPv6)

     * Deutschland

          * http://www.de.FreeBSD.org/

     * Estland

          * http://www.ee.FreeBSD.org/

     * Finnland

          * http://www.fi.FreeBSD.org/

          * http://www2.fi.FreeBSD.org/

     * Frankreich

          * http://www.fr.FreeBSD.org/

          * http://www1.fr.FreeBSD.org/

     * Griechenland

          * http://www.gr.FreeBSD.org/

     * Grossbritannien

          * http://www1.uk.FreeBSD.org/

          * http://www3.uk.FreeBSD.org/

     * Hong Kong

          * http://www.hk.FreeBSD.org/

     * Island

          * http://www.is.FreeBSD.org/

     * Italien

          * http://www.it.FreeBSD.org/

          * http://www.gufi.org/mirrors/www.freebsd.org/data/

     * Japan

          * http://www.jp.FreeBSD.org/www.FreeBSD.org/ (IPv6)

     * Kanada

          * http://www.ca.FreeBSD.org/

          * http://www2.ca.FreeBSD.org/

     * Kirgisistan

          * http://www.kg.FreeBSD.org/

     * Korea

          * http://www.kr.FreeBSD.org/

          * http://www2.kr.FreeBSD.org/

     * Kuwait

          * http://www.kw.FreeBSD.org/

     * Lettland

          * http://www.lv.FreeBSD.org/

          * http://www2.lv.FreeBSD.org/

     * Litauen

          * http://www.lt.FreeBSD.org/

     * Niederlande

          * http://www.nl.FreeBSD.org/

          * http://www2.nl.FreeBSD.org/

     * Norwegen

          * http://www.no.FreeBSD.org/

     * O:sterreich

          * http://www.at.FreeBSD.org/ (IPv6)

     * Philippinen

          * http://www.FreeBSD.org.ph/

     * Portugal

          * http://www.pt.FreeBSD.org/

          * http://www1.pt.FreeBSD.org/

          * http://www4.pt.FreeBSD.org/

          * http://www5.pt.FreeBSD.org/

     * Ruma:nien

          * http://www.ro.FreeBSD.org/

          * http://www1.ro.FreeBSD.org/

          * http://www2.ro.FreeBSD.org/

          * http://www3.ro.FreeBSD.org/

     * Russland

          * http://www.ru.FreeBSD.org/

          * http://www2.ru.FreeBSD.org/

          * http://www3.ru.FreeBSD.org/

          * http://www4.ru.FreeBSD.org/

          * http://www5.ru.FreeBSD.org/

     * San Marino

          * http://www.sm.FreeBSD.org/

     * Schweden

          * http://www.se.FreeBSD.org/

          * http://www2.se.FreeBSD.org/

     * Schweiz

          * http://www.ch.FreeBSD.org/ (IPv6)

          * http://www2.ch.FreeBSD.org/ (IPv6)

     * Singapur

          * http://www2.sg.FreeBSD.org/

     * Slowakische Republik

          * http://www.sk.FreeBSD.org/

     * Slowenien

          * http://www.si.FreeBSD.org/

          * http://www2.si.FreeBSD.org/

     * Spanien

          * http://www.es.FreeBSD.org/

          * http://www2.es.FreeBSD.org/

          * http://www3.es.FreeBSD.org/

     * Su:dafrika

          * http://www.za.FreeBSD.org/

          * http://www2.za.FreeBSD.org/

     * Taiwan

          * http://www.tw.FreeBSD.org/ (IPv6)

          * http://www2.tw.FreeBSD.org/

          * http://www3.tw.FreeBSD.org/

          * http://www4.tw.FreeBSD.org/

          * http://www5.tw.FreeBSD.org/ (IPv6)

          * http://www6.tw.FreeBSD.org/

          * http://www7.tw.FreeBSD.org/

     * Thailand

          * http://www.th.FreeBSD.org/

     * Tschechische Republik

          * http://www.cz.FreeBSD.org/ (IPv6)

     * Tu:rkei

          * http://www.tr.FreeBSD.org/

          * http://www2.tr.FreeBSD.org/

          * http://www3.tr.FreeBSD.org/ (IPv6)

     * Ukraine

          * http://www.ua.FreeBSD.org/

          * http://www2.ua.FreeBSD.org/

          * http://www5.ua.FreeBSD.org/

          * http://www4.ua.FreeBSD.org/

     * Ungarn

          * http://www.hu.FreeBSD.org/

          * http://www2.hu.FreeBSD.org/

     * USA

          * http://www2.us.FreeBSD.org/

          * http://www5.us.FreeBSD.org/ (IPv6)

     --------------------------------------------------------------

C.4. E-Mail Adressen

   Die folgenden Benutzergruppen stellen ihren Mitgliedern fu:r die
   Arbeit an FreeBSD E-Mail-Adressen zur Verfu:gung. Der aufgefu:hrte
   Administrator beha:lt sich das Recht vor, die Adresse zu sperren,
   wenn sie missbraucht wird.

      Domain          Angebot          Benutzergruppe          Administrator     
ukug.uk.FreeBSD.org nur zum      <ukfreebsd@uk.FreeBSD.org> Lee Johnston         
                    Weiterleiten                            <lee@uk.FreeBSD.org> 

     --------------------------------------------------------------

                        Anhang D. PGP Schlu:ssel

   Verwenden Sie die nachstehenden Schlu:ssel, wenn Sie eine Signatur
   u:berpru:fen oder eine verschlu:sselte E-Mail an einen
   Ansprechpartner oder einen Entwickler schicken wollen. Den
   vollsta:ndigen Schlu:sselring der Benutzer von FreeBSD.org finden
   Sie unter http://www.FreeBSD.org/doc/pgpkeyring.txt.

     --------------------------------------------------------------

D.1. Ansprechpartner

  D.1.1. Security Officer Team <security-officer@FreeBSD.org>

 pub  1024D/CA6CDFB2 2002-08-27 FreeBSD Security Officer <security-officer@FreeBSD.org>
      Key fingerprint = C374 0FC5 69A6 FBB1 4AED  B131 15D6 8804 CA6C DFB2
 sub  2048g/A3071809 2002-08-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 KRrlaWusbYfqZn4BQsSpYw90evo=
 =BvhO
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.1.2. Core Team Secretary <core-secretary@FreeBSD.org>

 pub  1024R/FF8AE305 2002-01-08 core-secretary@FreeBSD.org
      Key fingerprint = CE EF 8A 48 70 00 B5 A9  55 69 DE 87 E3 9A E1 CD

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzw7fN4AAAEEALL1ENfbFYcAEmS6Hrb7CV7sWrbG+HlIwYvUUuqvr8+D3axd
 XuRJGFaWk8zNrTrwWROnlMMlctG3iXNsKzQNxAE6N64rbrUbKI5PzihfEsJW5/io
 XGXrRGdXvwob/Qdnd6mIlm3IJduChV7Nf3K2WbimUNkFeXrrh/ymwUj/iuMFAAUR
 tBpjb3JlLXNlY3JldGFyeUBGcmVlQlNELm9yZ4kAlQMFEDw7fN78psFI/4rjBQEB
 U4ID/1N6haUd+k+tzwNpX6pKnlCuTCJvJ619Lp83T8pRDGZom/uSLrfMrzvmKPeE
 abXGnreM41JRLAbGOclsONVBCLvwc/v+VVXTm24J1rdS1qY/SD+LE87pxPL6Ncyt
 Ug2sxPSo8fDVKu+MdcGK5zwP5ekNHDl+DB1mMsYDkZHTp9FMiQCVAwUQPDt+RafG
 T4fq3uQJAQFKvAQAl6+XaXQ1GzfqJoGqaTVW2O1OaodyBJjLxgRsVv7ps5Z4M4nl
 uYoe5ih+Lk3BVD9Y18QKUrnAPlbXDr1Ld0arq8uFkFsVzNDb2asg6tgcQe7mQ9lA
 QZPgVOU+siTmEuolSvxwsjxn/szBYBPv5EnU6lSmGf/RDJnbFXC9Z/LgPFU=
 =tMn4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.1.3. Ports Management Team Secretary <portmgr-secretary@FreeBSD.org>

 pub   1024D/7414629C 2005-11-30
       Key fingerprint = D50C BA61 8DC6 C42E 4C05  BF9A 79F6 E071 7414 629C
 uid                  FreeBSD portmgr secretary <portmgr-secretary@FreeBSD.org>
 sub   2048g/80B696E6 2005-11-30

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEONy/ARBAC4Ke7ijFSAiNZ8eKGENunAPSCm5Q75nmJrc9QW3DKQydseMYn5
 kRPzybZ3IMTzIMkB4kydWoOFb5xlyQ2NLsf0nrn0Kc4DbnpmwFi+2Owv48XIoJ80
 4tTHkog+pC+3kMOmAbikOgHfT5DZCu0Vz4k343yg06uFB5RZkFDV3qdr6wCgp8ye
 cBFzt6Qnf7baiKC87mSy46ED/2Kw/sUT40JT57u5SL5rgrAt15Q/PdCbFlBX9N8f
 y0CA7KUL82ISxFwmuFESIi8zD4IOmx2ow4EBczVCVmbAw04GNKyVL4X3KdcZdLxr
 d5BEdu3WcEs9FfbHiJgpPonNQ7UHeaG/Oos0N/LZqGM5kjaopSjNX9QTZXnYtIeX
 v5WRA/9un7HooV6yVf/o6lhjpLg0Dgu/nGPwTVt6mz0dS2sg7FwuWwefnYMo1Hte
 YRJHhP8wR8MeRai5uwUHkn9OINTu2a1WSHxfjL0T8JGI2XWppqwg21llvBlJ9HDZ
 vlnpvG8vsD5+2HLvJe/tHQOXEaKqnlWGRt+6eeKLc2pTOeRrhbQ5RnJlZUJTRCBw
 b3J0bWdyIHNlY3JldGFyeSA8cG9ydG1nci1zZWNyZXRhcnlARnJlZUJTRC5vcmc+
 iGAEExECACAFAkONy/ACGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRB59uBx
 dBRinOoSAJ9dmofaKia2PRYmFrJ6VRV1qMEDiACbB/A1Qwv2jl5ra+Q/G28nrR4N
 IJG5Ag0EQ43MFRAIALjm7U1vf218XrDDrO6ztZdMSoQfLnbqDB/RyNr6CnnFrgIa
 T4/hBABT7S9Hmb5rPiN3UOTDsgHUq7tCeGnf+9K8KA45KclMcayVhttyGlwAtO0k
 ZebxZEAlWAhl4ixfejAwKdrjGe66b2upVFEmR6W7GhPitJDyWKK4/57fe3tSEs3y
 C2iJEbFpzYnVGK4DPUEsbSQ0Gv+COS1ql7QQW7H09dWt443r125I1Viv3nrIXlpm
 R5KFS0MvQ4bZyyAo4k2t0BxmAXNyxLh+1HZe5bh3dkk1XbJlooNwfr+WhqSlLsTG
 Qsj1/9HmjVMWyzH6tA5tZ42Fu1ZGTA6Dnc7BBLMAAwUH/jt/r2iJDiKFpjay4DII
 CXeKrKUP+mzYQJGJXX+Mls+TjDLFpm0Qng/wUCjZH8+GQStKSiaY7Lqnt1V0aKpw
 74CznHzgu4+ve9QG1+O5ald61Yy7dPGH+9Adr3jYJzdMhojjzPSKxIuDkHYOvjka
 /VGPtYDBuCaVPGDHGvWT4YZiVvpDg/zBucCAWF55WKphZXh7v7ZPvdfCj6DeZ+wQ
 BF10d9HXlWulitc+27gQiBhA2JFXG2p6Qg6Zj1E4AUdK5Hpjx+HgqGATq3GqzyQd
 UxvhR6VoV1OjmQvz1paLT3V0ch3mvRNiMd/oNJsHCSL9yhmtonSaprKG51OboDbV
 OFqISQQYEQIACQUCQ43MFQIbDAAKCRB59uBxdBRinHoLAKCAgS3CpgdsRmMHDhFa
 4qis7hd7WACeO40ZPvVi2vJpDK/1tM7SOVDPY44=
 =yfPY
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

D.2. Mitglieder des Core Teams

  D.2.1. John Baldwin <jhb@FreeBSD.org>

 pub  1024R/C10A874D 1999-01-13 John Baldwin <jbaldwin@weather.com>
      Key fingerprint = 43 33 1D 37 72 B1 EF 5B  9B 5F 39 F8 BD C1 7C B5
 uid                            John Baldwin <john@baldwin.cx>
 uid                            John Baldwin <jhb@FreeBSD.org>
 uid                            John Baldwin <jobaldwi@vt.edu>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =BVS/
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.2. Konstantin Belousov <kib@FreeBSD.org>

 pub   1024D/DD4C6F88 2004-07-29
       Key fingerprint = 39DA E615 A45C 111D 777B  3AD0 0B7F 8C04 DD4C 6F88
 uid                  Konstantin Belousov <kib@freebsd.org>
 uid                  Konstantin Belousov <konstantin.belousov@zoral.com.ua>
 uid                  Kostik Belousov <kostikbel@ukr.net>
 uid                  Kostik Belousov <kostikbel@gmail.com>
 sub   2048g/18488597 2004-07-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEEIq/MRBADOl8+kLZyTRb2xRJmgwq0a0xIPuQxBvUa3Ac7T2d3r0mCXQAni
 MG6IoSxnTGhZd8JRMya03RNAEFDFIxozgBh7tWOBfCxWB5KHS6F2PfXoWpHz6APL
 9d1eSu8qMMJ0aHCk5icZdhMWlviFMwyl2x+VhJKsxpRbrU1hbWd27x6ouwCg+AD7
 cPohqZoWEAlbS9Pc0elxsq0EAJw4lcIrlUCc7Z9G0e92HXc4IyeTswv5is/yDz9g
 7LUyp1qJbqggV2LGtjTqit1ldccIB4D4N7afokMQiye1zAyntpPcef+oIBf4zFr0
 KmSnG0IgaUm8fpZJ/qumOkU8GX2SYiKUQtMQ1xdbnCQaRdOjC796C7PKgK7QDD7+
 qbLhBAC2ysSQZ824HHS1EN48NlV25vV9HBIag1VwUVmO7IVGHdxZKFfnyXrtiQmq
 wpb3okcsCls5x1QQsT54095kP20UrYDHho8yndB1bPRlLnAhtJQpGVTQ7P44ab1A
 SxIcp+gvgIoHFKRVsj949uhn7vcbzJEe15whWTj06WckVmuCL7Q2S29uc3RhbnRp
 biBCZWxvdXNvdiA8a29uc3RhbnRpbi5iZWxvdXNvdkB6b3JhbC5jb20udWE+iGAE
 ExECACAFAkM9SpYCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRALf4wE3Uxv
 iJ7ZAKCj7lMo10TeSyCYE3Y6/dr9RnqAtwCfZro6JLEIqa60+ef1NyHxscvQ0ce0
 I0tvc3RpayBCZWxvdXNvdiA8a29zdGlrYmVsQHVrci5uZXQ+iF4EExECAB4FAkEI
 q/MCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQC3+MBN1Mb4jQewCeJmg8ftV4
 x7l2AoSAPsIDoQgXZFkAn0v/zBXhfjFoDcMK0cJTyPhYm4vptCVLb3N0aWsgQmVs
 b3Vzb3YgPGtvc3Rpa2JlbEBnbWFpbC5jb20+iGAEExECACAFAkM9SmQCGwMGCwkI
 BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRALf4wE3UxviMLdAKD2lvxZqIpK4J8s7f5g
 HZ/BeoqkLgCeMoiVpODH3W1jp7WmIAcPTX27OEe0JUtvbnN0YW50aW4gQmVsb3Vz
 b3YgPGtpYkBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCRIECYwIbAwYLCQgHAwIEFQII
 AwQWAgMBAh4BAheAAAoJEAt/jATdTG+IhlkAoIR7laQrFh1QrZlIG95dj2oFOwDa
 AJ9rpiIgeCaPJZKediKAWDCaJ81IXLkCDQRBCKwAEAgAksTzLKLHecQ1G1mHaw0D
 5E4YmadGDnx/K4abjzzINUP033VgKdMXe3ocJOI4YeALGzhoFAjj3s5VvFqgUL8B
 8xBn5r2vSGLe1WZCZmq5kzfls7E1I6TSQSRqIm2CRBYzSAFaqs5uaOPGMZ+fSfYO
 W11wtIChNJBDVhO5YgRKJlxhMCaLTTH6qB1ZCrSswIFLgApssTUHcHW32eh9qxQW
 U7XD7MjMbkbr1Ig1scaGkjUGLoIHboqFYDS8sLMaJp/RUyflAbzizL3vI7G3i4jP
 zBLPrWnnhVDPWGJptuPedyFU2ZtgX4E+txP9yDoOrcjBgJEj5JAO+nTMIoabxtXR
 lwADBQf+JdFUtGznzSmMgjfjW1N1cuM8xe2JBA1TRx6Bg3Kn6bVixmpRBOxQ3gtl
 k+o2dOHZtPtB22J9IMsc72fAFHpDqogm5ADN+PdtHsjWYS4U64Pg008VYc+IWSXx
 fqLLRK3luwDFn9mpvgcWc8yue8Di4jZ+SojNtmvSSRofm8ruf+6uJS6EPUz9dzH2
 PcMqhI0+nJMn20Zeq4g84g4G2KUEo1Y+ruL4iUUQcVRTWIBHw4jkFdGdMG5z/2Ao
 myeZ35IoHFJF3NoY/H6/ZrBe2D2qbY4CsrvCutUEKIKtJqTHSB80pJS7hdlSH269
 3SSIuof00KCuWbrWQvGp3Mpx9kp76IhJBBgRAgAJBQJBCKwAAhsMAAoJEAt/jATd
 TG+I/pEAnA+MZs48oSlZF452F1xW9q75hhGVAKCzW5aFbJsAnJClz8JS27TynnPd
 CQ==
 =EJ3p
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.3. Wilko Bulte <wilko@FreeBSD.org>

 pub   1024D/186B8DBD 2006-07-29
       Key fingerprint = 07C2 6CB3 9C18 D290 6C5F  8879 CF83 EC86 186B 8DBD
 uid                  Wilko Bulte (wilko@FreeBSD.org) <wilko@FreeBSD.org>
 sub   2048g/1C4683F1 2006-07-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.2 (FreeBSD)

 mQGiBETLtf8RBAD12xaszO99wnMaNtuoyE3dIfsv4ijnLmKeFwXXGGe40tf5lDu1
 0X1DrI4wX6emUgSTsuxgZh4OJOuCz/YOLwO1AqL0v8Emjxa1VicZmoQ2zjMPY1GD
 6rWOIvgRC+6M3LstE7h0N49uouNANFHAaAfCNxyWw2EvZxnqc85TMd1BcwCgnEOe
 lHdj9PehNMRSp2TkNpcS5SUEAOEw+rs/vMXeqXHP910nd4U5DmBxIaoA7ARIqAS5
 F+SvNtDxlNeeLSMY7l64kCgB/RO4NGYxMTPklFMAm4cr0ri8s6+v/Y4vdoWsDluW
 MbzKsxBHVmPxr9WEU9iZxexbSlDdeJ2l19xgty4Jp3xPJ0iSo8Tip8w00kSN9cN3
 ULs1BADKhXiy9B2tfDUAQCstSr/04ZB015u1CZEAMxOfIZ97Y1RjSTdAAshqB/sX
 coKlQ5Sanx5shV4xARen/8d1EftgIfX1s0hL2QhA9xCHdHob/9Ok8SbpMq+H3WDj
 VEqpf9dJieU/IFE4wLc1y5M61jw5kX5bqbXPWtIuCJqC0DB9qLQzV2lsa28gQnVs
 dGUgKHdpbGtvQEZyZWVCU0Qub3JnKSA8d2lsa29ARnJlZUJTRC5vcmc+iGEEExEC
 ACEFAkTLtf8CGwMHCwkIBwMCAQQVAggDBBYCAwECHgECF4AACgkQz4Pshhhrjb07
 2gCfb5LcR2MiNHfyP2FEgQ2NphUkXDcAnREV1tDLlJy7KxOlub01Px8NhNkfiJwE
 EAECAAYFAkTLuj8ACgkQ/KbBSP+K4wXTDwQAjdsoW8icjSXo/hl8OBEeQfQCPtuu
 0MU4hJM4TRf6QCHXxtJPpMgGGqp6HbMEwmxO58yhKOLCZk5Xyo8rsVJG23pQvGqW
 UmphE6+9e8RuwneZiJ/yvbn7cOaS9EuUIHnIZnvNYTqLboIG1XaYwq8YqwNhsHVb
 8H1Jvx9fVSo9RGq5Ag0ERMu2DRAIANuJ6ZjYQnDhZFSVColje5oXGEmn3BBIeyLo
 TjzbmLo41iPlPPedLnnG7bGcWlwb8Y6CvsniC2+9Tf79O8rpGglQZQFAKS4qSToA
 CMWBlKPF2yaCLOlKezzn5Xo3D61WYs3z74ak+CKznqdFDkXYU7c428XprqqLnuzk
 jUQyfrNOCg9jjODB6eXVS0nkYlYhsfBe9Mh3xmaf8QGocH01dCaXNJASKbSgUtWJ
 aD0fXWexf6p04DX/84359mtOquZe4NCEy/o2RpKoHxaN8cggO3NUfsLkDBODQ1vr
 RS/H2sixVLbfNPx4XzIYc525ISyGGk1WJ0hxUPDaJeMtlUVE2HMAAwUH/AuwxkpX
 QT49Q3+kZf7hHcvR5fzaRKUcK/lIdPAhJBTZZQjZxH5Qo1MfDftizkIg4O9FcN3w
 eR7AKVhjVGLPna10Tb7PuNByKehsCMJM089OTJNEwRKu5AzpgE+pvkBeKTWwoGUE
 7hkaunpFXGv8TglO25G1hxKgryB3CBu6n4jN4pnlUtwBBQ6jTC+YRd5zeCiDJYvY
 R89ibrdmvFsI6Cy7K0iSFBFaJREOakXPTdmcWSxC71MMuefPrUhMsys0SN/EPd3g
 n/LDvcBtismvo8FAUKTHPlJhvXM87V7sDfCmtzG79NzlwjJto4pJoHyJg57T3kJy
 cQ2qe/WZTvl9OFeISQQYEQIACQUCRMu2DQIbDAAKCRDPg+yGGGuNvdVZAJsErSAN
 uN92IOQQttYydXNGTCUC4gCeOaQSjL1nW1ZwEJt2HuwEJ8LI8Bk=
 =RrPJ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.4. Brooks Davis <brooks@FreeBSD.org>

 pub   1024D/F2381AD4 2001-02-10
       Key fingerprint = 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4
 uid                  Brooks Davis (The Aerospace Corporation) <brooks@aero.org>
 uid                  Brooks Davis <brooks@one-eyed-alien.net>
 uid                  Brooks Davis <brooks@FreeBSD.org>
 uid                  Brooks Davis <brooks@aero.org>
 sub   2048g/CFDACA7A 2003-01-25 [expires: 2016-04-30]
 sub   1024g/42921194 2001-02-10 [expires: 2016-04-30]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =60v+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.5. Warner Losh <imp@FreeBSD.org>

 pub   1024D/1EF6D8A7 2006-08-15
       Key fingerprint = AEC9 99C1 3212 1A86 93A6  A96B DB9F 6F12 1EF6 D8A7
 uid                  M. Warner Losh <imp@bsdimp.com>
 sub   4096g/34FC5B17 2006-08-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBETiNtkRBAD+0dRgNX15oiBnZZyPj5Hwtyz0YbT179dXB5CMh07im35NV8gX
 8Lg84tBOuVuefpuNn3DeF84J8acijg7VWtE4achX8yNZ7iWxVKh3xg1BANnXrIzE
 1lsrc5KMrlmjnTs4GwKZF2OmfkuTFKTJVz5M7GkQB1sCGa5udBpOmHxmwwCg0Nnh
 9QsizYrhCxR1kkfYmEbfbd8D/iA4aah6rf5Hn8OMNFayw6g4olks2gtb70i2W9Dn
 mxsJugj6eg94gobUpI8XmO1OlB+1OGrCmIZJZcpOYjV9iRBPyFL8nht7NkqcHonT
 B7fMBCBuiYVHc18mC94f1hGEES+7QRSWjB7gade5Yz+SOSBFayiDD+hLQjUiWAeC
 /FEpA/438gLLi+WLUgs45q/11sMjesaRDRuTqTaQ5vgfVKRnoxqALHlotmEQBhTR
 b247KBQTYG8JrCBUnyJlghYbHrTqri76YtAMS2joKdG6MKqC80Ph8Uf6ZRZ9Esp4
 14WQSmzmz0+F6INrVB0bBvVmI3wVLvKEbYi6QVLb27ru4dcph7QfTS4gV2FybmVy
 IExvc2ggPGltcEBic2RpbXAuY29tPohgBBMRAgAgBQJE4jbZAhsDBgsJCAcDAgQV
 AggDBBYCAwECHgECF4AACgkQ259vEh722KfcDQCgto2j2W1wyQFkr/3SdYqnGMSo
 vIIAoLJcYTiLLjeq5XDjQwTwbiXHZd5huQQNBETiN5EQEAD7HLggXwvghaPuncfE
 Bat4NgZQhXZYDn7f58o4NrANA2tQGtWs2XJ2JcUnOoZxPam3v6OTs5ImfGZxfpgL
 5wec7hA1CdPbp/hKGAf0+XpLgkGt3v5icio4NFCMy+dUvySlOrSGPriuYRnJHgvQ
 U8PlTOfNj1EN+ezK18bswu06FkZBqzKBLIF6lVfT9HQnMt6dKFH2Ms9wSubsEdq5
 TThlCm0e2W5e3F+fDcmNOA19GCHbmyQ7MYtgB8wS06c9AO84epwwu4ot8bqoJh8C
 OeS6Br6310/cG55gTS6N2vnIEnjUC1gW6HxIeOkshp1ImkaLwhH0Yjk2fQJusWh4
 8G/5IRh3PaBXKzZZH48eX2Z7k+ZBWRN2QVLh7JnvFW2MrU6POkF7lqyIUA4DCOTS
 cNxWMpXlRg8lE/AecN/TXHg1IXaie6PyEVGmry9U4s/W3KrLxSoLkFD7clrqUrAT
 /OkEd8VEMxQtm5RV9Ijq8Wxf4IKo/a7tZ22GA3RthfsCYTlpiKZOvEdr6bLHtWyj
 n26jiCu0oDs6SIIZ+YYU5cPqkA084g/8H0GYCTl8XwsCPl364P7OeaQl5omcK5dt
 qL0V7Ys5Uq403IlKXbG5PQzr59uuwAxOH+ep7902yVESzrnVdg1moEcHvow8bo1e
 qZbpoVSt41Wu1L+XVcndJmZNlwADBQ//UjPmAOE44IUMPrcscW87Od/XxG/gA5dc
 MvlC5AuhdB4w3sDhIQPZ2ZpsYum7dlZQlqdIozcRVfVy7gUOBnGDBWhM9f+MTGTA
 Z1Rhuz5jFyFAeGrrEmega+BD4ggt4kNhkO/1DV21Rts8smizA/2fYxlEfG8R27GK
 vZxIaipJX8bGS3rlu+56KSdQ1nnYOyz1ybXitz2l6ntkIyX38vexXbow4nReSSNc
 VWvPcZj9CswE6WxLF2v01g7kh/3oWb03KlIDCFsk+8WRz0gkkw/MSMvbj75iv31R
 YeEAjr8rnlRwiSEBr2Ywq6G9oiCutesqhWg3jzFNtMp4YgZK3gKbm9Kwca58q+/d
 /Xcycke5OcCKIYUZV5fzEyBOGOzgPpy7zZhOF5Bqr29TwYruzoJxkS2qnD/u3AGw
 AWvQP7uuu3zBu0ximnTlMA6/C+cmX+bSCN8ReAVCK7heg6TGDUZivzmcy7NkS2iw
 AEpeWH1Krsm6wNc8pI17HchnLwpl4vhmAcmLWQ4BgxZjEYaUjY78GqusvMQdgPLD
 H+IX2q6+oxGK62l8OgOIdN8nbBEtneWM3+sJyCX5D8pPHGdwzjcvhahrDQ2KYv/a
 YcAlVIcGqzD/k0J5sMi82tTEV2hh/bgexLJ/ZFqJH9V0G9OdRSbEeq3UW9YN2esT
 GgNbeLg20VOISQQYEQIACQUCROI3kQIbDAAKCRDbn28SHvbYp7w1AJ9lSOzsQDMa
 I61JMex7wnCq+pcxbACgqyYAo/+08YYuVkrJsaoxMhSQIcQ=
 =b6Wd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.6. Pav Lucistnik <pav@FreeBSD.org>

 pub  1024D/C14EB282 2003-08-25 Pav Lucistnik <pav@FreeBSD.org>
      Key fingerprint = 2622 B7E3 7DA5 5C53 2079  855B 9ED7 583F C14E B282
 uid                            Pav Lucistnik <pav@oook.cz>
 sub  1024g/7287A947 2003-08-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =Jmz+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.7. Colin Percival <cperciva@FreeBSD.org>

 pub   1024D/0C6A6A6E 2009-01-12
       Key fingerprint = EAF4 8BBA 7CC7 7A30 FEFC  0DA9 38CE CA69 0C6A 6A6E
 uid                  Colin Percival <cperciva@tarsnap.com>
 uid                  Colin Percival <cperciva@FreeBSD.org>
 uid                  Colin Percival <cperciva@alumni.sfu.ca>
 sub   2048g/DC606691 2009-01-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGhBElrAAcRBACDfDys4ZtK+ErCJ1HAzYeteKpm3OEsvT/49AjUTLihkF79HhIK
 rCQU+1KCzv7BwHCMLb6hq30As9L7iFKG7n5QFLFC4Te/VcITUnWHMG/c3ViLOfJG
 vi+9/nOEHaM1dVJYD6tEp5yM1nHmVQpo9932j4KGuGFR0LhOK5IHXOSfGwCgxSFD
 Pdgxe2OEjWxjGgY+oV3EafcD+JROXCTjlcQiG/OguQH4Vks3mhHfFnEppLxTkDuY
 gHZQiUtpcT9ssH5khgqoTyMar05OUdAjZIhNbWDh4LgTj+7ZmvLhXT5Zxw8LX9d7
 T36aTB8XDQSenDqEtinMWOb0TCBBLbsB8EFG1WTTESbZci9jJS5yhtktuZoY/eM8
 uXMD/3k4FWFO80VRRkELSp+XSy/VlSQjyi/rhl2nQq/oOA9FoJbDaB0yq9VNhxP+
 uFBzBWSqeIX0t1ZWLtNfVFr4TRP5hihI5ICrg/0OpqgisKsU2NFe9xyOhyJLYmfD
 8ebpDJ/9k30C7Iju9pVrwLm1QgS4S2fqJRcR+U4WbjvP7CgStCVDb2xpbiBQZXJj
 aXZhbCA8Y3BlcmNpdmFAdGFyc25hcC5jb20+iGEEExECACEFAklrALYCGwMHCwkI
 BwMCAQQVAggDBBYCAwECHgECF4AACgkQOM7KaQxqam6/igCgn+z2k3V5ggNppmWr
 Zstt1U2lugsAoL7LwS9V9yLtil3oWmHtwpUqYruEiEUEEBECAAYFAklrARsACgkQ
 Mt4ezdCTR/ypIwCUD1achcqLYCm9tnYSIyuok4AulQCdFRgS0m8oCL/rxIIkEks9
 t82rF4aIRgQQEQIABgUCSWsBPQAKCRAV1ogEymzfsl7TAJ0U5P1tP6rpuqZV2IUk
 upOlKO3uUwCgnhMuyzumLyYdSShkVkxjT3wd6kG0JUNvbGluIFBlcmNpdmFsIDxj
 cGVyY2l2YUBGcmVlQlNELm9yZz6IYQQTEQIAIQUCSWsAjgIbAwcLCQgHAwIBBBUC
 CAMEFgIDAQIeAQIXgAAKCRA4zsppDGpqboJ3AJ9ClLZrhs07z89f2E/ViccT4zwF
 3ACgvC4IjEa7Mruk0E1TJUxaHLXWEf6IRgQQEQIABgUCSWsBGwAKCRAy3h7N0JNH
 /LImAJ9wRXlqUl7q3TLtGiVDlGgemAF8ogCg04iFw407ersxQ/xhQpy9EqFxZ6yI
 RgQQEQIABgUCSWsBPQAKCRAV1ogEymzfshucAJ0dnr9H56NugiUFe8hgJ3DMHYQ9
 8gCfYamgijrAHz3UkJ1FJSveYU5FcMG0J0NvbGluIFBlcmNpdmFsIDxjcGVyY2l2
 YUBhbHVtbmkuc2Z1LmNhPohhBBMRAgAhBQJJawAHAhsDBwsJCAcDAgEEFQIIAwQW
 AgMBAh4BAheAAAoJEDjOymkMampuZt8AoIqJnoMkMc72nzSWO4W/esjLboT/AKDC
 JqQ39yUJWuE0icnXI52OzFSlP4hGBBARAgAGBQJJawEbAAoJEDLeHs3Qk0f8CSMA
 n2i/wVFfvQAglYiAROYTktla8756AKD870BxM2AZHngm47QxhfkQaFfij4hGBBAR
 AgAGBQJJawE9AAoJEBXWiATKbN+y06MAn0BEvVhscv5jNNHohbxVvPOhz46yAJ9m
 qMFnnWz5K1jNNXKR9AFXapn1lbkCDQRJawAHEAgA92SzCLD+AiA6CTkYPmGNJai1
 QYHJxe6RW+FMtvir3VqHzfgyh+ta2S44F15DRPTOBEAtQeJRrbQT/CGNoLONctwF
 KIBnchW4navfawgc+y07IAER8BcWaGh5l8omSxFNUGbjKsD2VdZgr4kYTeRN60am
 DV1XK51wALoQabzco/57R73Azdv5vqHIYrgWLnlOJF95R8mu7Do/pk7J3XFpkPbK
 DlMq/DtK/wRtPPGzJ+KqrVMOHZef6YJV5I25e7jjj4pyn9FlXdq+jNMCzyQg+DTx
 6wlkSyywI8H467aEkb18Q214QnYBgWu9vivHmC81bIYKu7STqAVs41Sul0cUewAD
 Bgf/TKN4idg8ag3nHdNiggeQbBQyAmyRoT5bVOxcK7Wwu3Y0m11K8LBFSx4uLLeH
 G3RjQlgq6dAUXs12SqISpzQDxTkyvvmX4Hisa1drCaHfkPUSCxfOrUOFxewO2Jnu
 Ycvdrf1oIlOL3P31m4D/IFf9fX/J7p2k9hPTUmu9JmRY2TbuIrsE4aFFDuQld1qN
 GFCErJ0SvFw9fi0dwNqlci4hUcIf5ogtYYCxQkxgkNxi8WXmcyKWEpRnUCdC+ZYs
 VuWUA/a9SPIv/M4ROqkRQDNLqVDCNxrdTqtsNNw4l62VNBbv0fEZvK5Z5ECgPveZ
 kU1KtcS+T+TWSIuICWeevTjzBYhJBBgRAgAJBQJJawAHAhsMAAoJEDjOymkMampu
 NYoAn22pXZxU7ubgHa564IRErxCNwgKPAKC5DTJLNaU4ZdgSTUZuArUyvcWXhw==
 =RYUS
 -----END PGP PUBLIC KEY BLOCK-----
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.9 (FreeBSD)
 Comment: A revocation certificate should follow

 iHgEIBECADgFAklrBn0xHQFOZXcga2V5LCBJZCAweDBDNkE2QTZFIGdlbmVyYXRl
 ZCBvbiAyMDA5LTAxLTEyLgAKCRAy3h7N0JNH/J60AKCk8fKCpx2gXrbWMHrulX8Z
 mxuFNwCg+1koNtGfe3LQZj/CSV2zfr1mTA4=
 =GSTt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.2.8. Hiroki Sato <hrs@FreeBSD.org>

 pub   1024D/2793CF2D 2001-06-12
       Key fingerprint = BDB3 443F A5DD B3D0 A530  FFD7 4F2C D3D8 2793 CF2D
 uid                  Hiroki Sato <hrs@allbsd.org>
 uid                  Hiroki Sato <hrs@eos.ocn.ne.jp>
 uid                  Hiroki Sato <hrs@ring.gr.jp>
 uid                  Hiroki Sato <hrs@FreeBSD.org>
 uid                  Hiroki Sato <hrs@jp.FreeBSD.org>
 uid                  Hiroki Sato <hrs@vlsi.ee.noda.tus.ac.jp>
 uid                  Hiroki Sato <hrs@jp.NetBSD.org>
 uid                  Hiroki Sato <hrs@NetBSD.org>
 uid                  Hiroki Sato <hrs@ec.ss.titech.ac.jp>
 uid                  Hiroki Sato <hrs@ieee.org>
 uid                  Hiroki Sato <hrs@acm.org>
 sub   1024g/8CD251FF 2001-06-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =ddbo
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

D.3. Entwickler

  D.3.1. Ariff Abdullah <ariff@FreeBSD.org>

 pub   1024D/C5304CDA 2005-10-01
       Key fingerprint = 5C7C 6BF4 8293 DE76 27D9  FD57 96BF 9D78 C530 4CDA
 uid                  Ariff Abdullah <skywizard@MyBSD.org.my>
 uid                  Ariff Abdullah <ariff@MyBSD.org.my>
 uid                  Ariff Abdullah <ariff@FreeBSD.org>
 sub   2048g/8958C1D3 2005-10-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEM+MioRBACP2lgLXXL1cIqZ8sdgUMaon8gBQWTn40tjTV3N6GtR+NUYbQI2
 Fcg43aopA9VVoeVyBlCSAyaiLTzZkyg1XRDqsjz9BnRWotwTX2e26ndVgsUzmXs6
 NjBcCYYNfVQ09BN3B05FRlPRpveMzCkZCFmWJCzjAYBMg/60fSia2In4twCg6Pr9
 Bp/eR5Ny9z4WzpIsynAt6rMD/1pDoV+FbZ6iw80Zq7pdyspPdPCRIzXhYsoe5uTX
 kjWRWixctbphxgvMheQWZNPNhDyDo/YvuPa2qtrHCDqRYSgmAHPC+NWfyoJhCMjG
 WMjcW9wWZ0j2Oc2uCTvficrGKF8U9ol6E+x6tlc5Cw2jjrPkwJCd70W9SByrgIdv
 51bNA/4nBw7S9grYcnKChYu9mGMsAixCXzMeIVc043Y2SD1NBg59ZNiaSkmRyD6E
 dCYRDhQeF2CePV3ZhlXDxOm6vD2l4H+9sQ1TRlEP/ARejwJrPPRO+plCf8pLDgj+
 78Kj2OlEwC+ziMdXyk8W91FhtCCDXQgDnf3ND/h4IWTzrVD0dbQjQXJpZmYgQWJk
 dWxsYWggPGFyaWZmQE15QlNELm9yZy5teT6IYAQTEQIAIAIbAwIeAQIXgAUCQ1EY
 kQYLCQgHAwIEFQIIAwQWAgMBAAoJEJa/nXjFMEza1FsAnjbSH6NqUl+VC42MGNYG
 6xGCfJoxAJ93L2Zf9C/ug6afFr4Bh/HoJbFiOrQiQXJpZmYgQWJkdWxsYWggPGFy
 aWZmQEZyZWVCU0Qub3JnPohgBBMRAgAgAhsDAh4BAheABQJDURiFBgsJCAcDAgQV
 AggDBBYCAwEACgkQlr+deMUwTNqW7wCeLHdcpasWMJgoqfLIM8PTJ/UlZ28AoLF0
 V2UMd0CdWCANmPNdZcME6jietCdBcmlmZiBBYmR1bGxhaCA8c2t5d2l6YXJkQE15
 QlNELm9yZy5teT6IYAQTEQIAIAIbAwIeAQIXgAUCQ1EYnQYLCQgHAwIEFQIIAwQW
 AgMBAAoJEJa/nXjFMEzaMs0An0gHq10v/5mnLWBYqnwZ+SnZNCYbAKDaTpCa6ddQ
 7jdr/lmi8XwK+blRqLkCDQRDPjIxEAgAudaX6QqmUT7UjXmxjlNr6wdDT0BDCu9H
 ZJuYt9Nf5V0Yd9ExfhRKh2YoYoW0790gka92R7uvrs7FJiu35KrYvOUjmwbouVf8
 Cg2fQqDcw0Lj/CD0meEduZOS4moxv/5GcJc2vsQ1BDsRwX0DmLQYXIaqIsRSo4U4
 KxWi/zZC5TF1Iwo7JyGY1Gc1SMZuWeZC/qx8bQxvkLx1q3qyZybjUtE2WkfqH0bI
 /XCpN5kxDciq/U1IP0H2pU/Md/OAvylKID6uR9yPh9kaOOhcvmOID9oWIMbE8a7x
 eAQ0QkEVpoexA+5DbUarPzjfqUprpZCydaE8s7Gzy/ocegAYqiGQKwADBQf/fxph
 6IW/Be5YFg15+9wZ+1MlEszXw9pZnkLU4Ypwz6ksNjrbpHcEbBdK45kw17pOL+WW
 Yie5tA/b8ndzoga/qyaOa7lH3b4pA78GMhGd7gSzrziNkuE7Yc3WNqjpRVYmVgH+
 9K0rjJaK55hhKDdEGj1jMXNXAXtXra70DNWZt88HLs85goWm7vnnsiPBgOVquYEB
 /q5ExD/E46TkxF5/Kl02LyHTcyhWsUjksmoEi1O/wxXOAxi/GM3QRrkbF7voaC+d
 Og5pxQXsftoXsk5fBEDBD1iCqqs1m2IJIUwuMxVlcc+IvD/eYejrtNlkzh5NLash
 evj4a81s2LLPh5qd3YhJBBgRAgAJBQJDPjIxAhsMAAoJEJa/nXjFMEzaXHkAoLi5
 OZgXddFLJYSXXnK3iwzYho2tAJ0Ze7tHvJd2md4VSth52CSBYDEemA==
 =2tPN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.2. Thomas Abthorpe <tabthorpe@FreeBSD.org>

 pub   2048R/A473C990 2010-05-28
       Key fingerprint = D883 2D7C EB78 944A 69FC  36A6 D937 1097 A473 C990
 uid                  Thomas Abthorpe (FreeBSD Committer) <tabthorpe@FreeBSD.org>
 uid                  Thomas Abthorpe <thomas@goodking.ca>
 uid                  Thomas Abthorpe <tabthorpe@goodking.org>
 sub   2048R/8CA60EE0 2010-05-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =hUQl
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.3. Eitan Adler <eadler@FreeBSD.org>

 pub   4096R/8FC8196C 2011-02-11
       Key fingerprint = 49C7 29DF E09C 0FC7 A1C4  6ECB A338 A6FC 8FC8 196C
 uid                  Eitan Adler <lists@eitanadler.com>
 sub   4096R/18763D51 2011-02-11
 sub   4096R/DAB9CF9B 2011-02-11

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =SP5X
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.4. Shaun Amott <shaun@FreeBSD.org>

 pub   1024D/6B387A9A 2001-03-19
       Key fingerprint = B506 E6C7 74A1 CC11 9A23  5C13 9268 5D08 6B38 7A9A
 uid                  Shaun Amott <shaun@inerd.com>
 uid                  Shaun Amott <shaun@FreeBSD.org>
 sub   2048g/26FA8703 2001-03-19
 sub   2048R/7FFF5151 2005-11-06
 sub   2048R/27C54137 2005-11-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 NnNrFxKZ
 =zwEb
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.5. Henrik Brix Andersen <brix@FreeBSD.org>

 pub   1024D/54E278F8 2003-04-09
       Key fingerprint = 7B63 EF32 7831 A704 220D  7E61 BFE4 387E 54E2 78F8
 uid                  Henrik Brix Andersen <henrik@brixandersen.dk>
 uid                  Henrik Brix Andersen <brix@FreeBSD.org>
 uid                  Henrik Brix Andersen <hbn@terma.com>
 uid                  Henrik Brix Andersen <brix@osaa.dk>
 sub   1024g/3B13C209 2003-04-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =79B1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.6. Matthias Andree <mandree@FreeBSD.org>

 pub   1024D/052E7D95 2003-08-28
       Key fingerprint = FDD0 0C43 6E33 07E1 0758  C6A8 BE61 8339 052E 7D95
 uid                  Matthias Andree <mandree@freebsd.org>
 uid                  Matthias Andree <matthias.andree@gmx.de>
 sub   1536g/E65A83DA 2003-08-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =PvSJ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.7. Will Andrews <will@FreeBSD.org>

 pub  1024D/F81672C5 2000-05-22 Will Andrews (Key for official matters) <will@FreeBSD.org>
      Key fingerprint = 661F BBF7 9F5D 3D02 C862  5F6C 178E E274 F816 72C5
 uid                            Will Andrews <will@physics.purdue.edu>
 uid                            Will Andrews <will@puck.firepipe.net>
 uid                            Will Andrews <will@c-60.org>
 uid                            Will Andrews <will@csociety.org>
 uid                            Will Andrews <will@csociety.ecn.purdue.edu>
 uid                            Will Andrews <will@telperion.openpackages.org>
 sub  1024g/55472804 2000-05-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =inzo
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.8. Dimitry Andric <dim@FreeBSD.org>

 pub   1024D/2E2096A3 1997-11-17
       Key fingerprint = 7AB4 62D2 CE35 FC6D 4239  4FCD B05E A30A 2E20 96A3
 uid                  Dimitry Andric <dimitry@andric.com>
 uid                  Dimitry Andric <dim@xs4all.nl>
 uid                  Dimitry Andric <dimitry.andric@tomtom.com>
 uid                  [jpeg image of size 5132]
 uid                  Dimitry Andric <dim@nah6.com>
 uid                  Dimitry Andric <dim@FreeBSD.org>
 sub   4096g/6852A5C5 1997-11-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 BBARAgAzBQJDWOwGBYMB4TOAJhpodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgu
 cGhwP2lkPTEwAAoJENK7DQFl0P1Y8XIAn3u4wVGHGp48vrlkD7LrAkgMa4i9AJ4k
 uTexj7XLEDuqfFKKSKhzDqqeYohGBBARAgAGBQJD/amIAAoJEOYLp9vIqq1APR4A
 oIPX7sBet1QQKNvCs0bLDFkjZvKTAJ4v5okd559cL7rO75QY/wuHRwpgTIhGBBAR
 AgAGBQJFyxVpAAoJEAcwX4a9TftQy4EAn0wt9VUlf8wXmumsp1C5i4NqISYyAJ0b
 VuDsgxkGlhnxL+FuStrueQDWAIhGBBARAgAGBQJF8/UvAAoJECmOj4RKTuYj1kkA
 oIkd3JjzUCNH7wInYbSqbqMqF7hCAKDKE8CZQVY9lI8pYxLIPH90O31Fm9HTX9Nd
 ARAAAQEAAAAAAAAAAAAAAAD/2P/gABBKRklGAAEBAQC0ALQAAP/+AC5IYW5kbWFk
 ZSBTb2Z0d2FyZSwgSW5jLiBJbWFnZSBBbGNoZW15IHYxLjE0Cv/bAIQAFQ8QExAN
 FRMRExgXFRkgNSMgHR0gQS8xJzVNRFFQTERLSVVge2hVW3RcSUtrkWx0f4OJi4lT
 Z5ehlYWge4eJhAEXGBggHCA/IyM/hFhLWISEhISEhISEhISEhISEhISEhISEhISE
 hISEhISEhISEhISEhISEhISEhISEhISEhISE/8AAEQgBIAC8AwEhAAIRAQMRAf/E
 AIMAAAIDAQEBAAAAAAAAAAAAAAIDAQQFAAYHAQEBAQEBAQAAAAAAAAAAAAABAAID
 BAUQAAICAQMDAwIFAwMDBQAAAAECAAMRBBIhMUFRBSJhE3EGIzKBkRQzUkJioRUk
 sTRywfDxEQEBAAIDAQEBAQEAAAAAAAAAAQIRAyExQRIyIlH/2gAMAwEAAhEDEQA/
 APYzpJ06SQJzDcpHkSTFsGAfgyNI23UfcTlP7ezLvhrT3qTjcMwp2eELOFZQerHA
 gGxarhuwA4x+8Mm8PsV9Fzdc3lzLZsUWBM8kE/tLHxcn9Uc4EMAR0MWBp1hEwaCT
 IiESr6ku7ROf8eYwMG8fl5jabPyxzKei+PUTplt06SR3kyTI1KYtcfMq9LBON/p7
 Me+KrOlw1m7cAFlhdXU6vtYFlbaceZ2njxVkaj1C59Y30wu2jDcnnH/0ytf6hZfa
 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
 p3ZoprcVEgZAeA==
 =PPl8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.9. Eric Anholt <anholt@FreeBSD.org>

 pub   1024D/6CF0EAF7 2003-09-08
       Key fingerprint = 76FE 2475 820B B75F DCA4  0F3E 1D47 6F60 6CF0 EAF7
 uid                  Eric Anholt <eta@lclark.edu>
 uid                  Eric Anholt <anholt@FreeBSD.org>
 sub   1024g/80B404C1 2003-09-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD9dFQARBACzmGtuaKFqQwoRV32TI4ANBPHPlXkKXJ1WYQQkahzP/VfzNOUH
 VbjIMQqrNPawOcrFyEFuI/FJLWXewhrcrM+of831BXWqnQ7ketGqKUO3xT18N1MG
 BVCx7F1wpPW42YkhFVAubZ5tyHLOVSc+iJZVGgZ5mUi57odqZ1l+rnqpjwCgnXx5
 tas++vGBPk70vcIP+ZmswGMEAI0Lfr7Qy42P6hbYJZpk/NVAvXMZMUyK7fti2lR8
 BCOQr8lSdFUZMAqOhlGSfr75Lp8YhR4R4qCSISPXIbtkpYpS5A4YOk22qljLfyrC
 vki3U3Qum1eO2L67jswb+hQ7pCeaddNm9Jmsg+CJOZl6nfDIJpC8yoXH76W8tXAm
 1DgiA/96RKTseIR0z79ahlxX5HDr2A5bPM5CZBdPba4tSuFIwd28HVUdLhJmsGpC
 uVnQ5VnhBh5coNBhcb+ngZCOr9NvvyvwrxdYYGvuABeWS3v2UGx7XnJQmBQubWYq
 CEk3wScZWhEoFchvPEVfXtzNBjI6sF1FWMYkAhHaYiH4M7rBiLQgRXJpYyBBbmhv
 bHQgPGFuaG9sdEBGcmVlQlNELm9yZz6IWQQTEQIAGQUCP10VAAQLBwMCAxUCAwMW
 AgECHgECF4AACgkQHUdvYGzw6veNhgCgij4I47kRmhRkdzJeftLig2TG8/gAnRcb
 r7ah3d3nPKNLRN+nQDTp0uxctBxFcmljIEFuaG9sdCA8ZXRhQGxjbGFyay5lZHU+
 iF4EExECAB4FAj/CqF0CGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQHUdvYGzw
 6vfvYgCeIy1G5U6YPFK2QZNhB7SazQXwvjgAoJmxWRZr8zKOmcMiYFf1tj05UDhC
 uQENBD9dFQEQBACpBlENAalxZonZ7K2NU6xiH/qz+XI+ZU6WQh58iUlM0QPUU8ta
 Ot8uQUL5DT6G5myFDZufYomYrdzaLxuZbzpWzDOFGqb9aWLlHC16ydWbIRvPif0D
 ar9wFJX3b5DFkVICUYXTKTx/O/VqcpGHH7tLInuipYRapOBrUw1LU87qLwADBQP+
 KbuF41ujgb7QfPX5x5Cdg9D9SZAQyxu5TbsSXmc4fuel10QFMdWyMEUW2rMLixYn
 cWw7AfziHCy3uWOOm1qxm8npYCIRp0jG3M/Jydc8iQTqL59v0/UBOxPQ1pYZxE/8
 EOmbHRHe9BQt4pfouuLVKXGzxg3NW6nXXNQVEeOyqFaIRgQYEQIABgUCP10VAQAK
 CRAdR29gbPDq9y8MAJ0dP1d27SdsNNU4d8nFpwrXfXXa2wCfRvgv8i7ziyodkgwl
 B8LNmWvWUn8=
 =2V8B
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.10. Marcus von Appen <mva@FreeBSD.org>

 pub   1024D/B267A647 2009-02-14
       Key fingerprint = C7CC 1853 D8C5 E580 7795  B654 8BAF 3F12 B267 A647
 uid                  Marcus von Appen <freebsd@sysfault.org>
 uid                  Marcus von Appen <mva@freebsd.org>
 sub   2048g/D34A3BAF 2009-02-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEmWjSoRBACy4CsdR35YB6pGzU1aa1mbTkLuF44VBjV8O9qji80zo/VJs3JL
 El0wIhM9pg6zObKkzOU5HJFU/6uazzzDnc+A8y3NJL3u+HoX/7c03e3yUZ6xl7PC
 ua8tO3IAQiB/cg/Ltb6iJa8FflfmCKGE0I2DXeR2vN9PpgQVkJW+/NSDbwCg2Nxm
 mfeO83a7C28G/MV70z5CTg0EAKdHCkACr+iB1WpOIKEmFkZRD0NXHEXYa6L2kPdY
 XPNJ893yu5YUmHMFNUdVxoIKaUKpIGPa+V4q6ojAilWJiaEB74W+teqNBzwhzyNv
 xfp/W6fNJtvC1DJkrxkag0penU9ZROkVEnZajIclFh5la3muxX07Qf2HjGZM3Cqb
 nz6PA/9gdPecNwo1N+9aX/CGrCw0DC1QVFc1HJqcL3pe2qQkMVDO7sfQkewtQOW9
 H2ZrDWlVxIohQ9/+vbKV1uOcJr5+egSGNTCNNuimh9Kp4LYMc1vNouQe1D9fsCXW
 2kcgO8FozH0O3uJ60gCak2K06iA+mGziNYLQH3IvjVswivxOyLQiTWFyY3VzIHZv
 biBBcHBlbiA8bXZhQGZyZWVic2Qub3JnPohgBBMRAgAgBQJJlo0qAhsDBgsJCAcD
 AgQVAggDBBYCAwECHgECF4AACgkQi68/ErJnpkfulACeI1WVnhrKTq/+O2Djbpuu
 Nyj/MYMAn0BMDpy4frZjlIMfhazixfk4cbjNtCdNYXJjdXMgdm9uIEFwcGVuIDxm
 cmVlYnNkQHN5c2ZhdWx0Lm9yZz6IYAQTEQIAIAUCSZwX8QIbAwYLCQgHAwIEFQII
 AwQWAgMBAh4BAheAAAoJEIuvPxKyZ6ZH48AAnRraNz0aFuSHUFaw8LXjROOTwld/
 AKCvawhTgwYKX3YjLzu9Jcc1t3UNj7kCDQRJlo0qEAgA2acv4O4JFQCzgJXhCQqn
 KHFeEqOcgpKlvIGlgfP4/hVOCms2LK3qk10JpcbDbkBn0cBW7usxvA3mDiF2ZnrY
 wIwAROI7SNSY60PydR6DXc6I21VAd7hmmcpqkJFXaSMvKkQcq7sAJGlSYVpPuBqZ
 1kCIu2vlPBdpT4W1hHxf7l4Q+h2ge4+C2beRv9V9vRVdlXeSqJT1o5EgE5CjZ6sV
 Eh+9/TQdkRAoGgQG4LZvDuhWfsSkDU6x/soFKOPCdTF/LytW8YZ6asN1EpVJihAe
 GseQdkwP8iK9Co90Ab27+5WVVrP+xkY+rULOngW2vIwJrWic6nk/a0/0MrPjFn3k
 IwADBQf/dMsSQncKSSn8Tg9KeeBLftirddz+Mos1j+1PYOc88vrMrHVodBfNtJlG
 zxAGwFyLtk/yA8/MuW219t57O3W49VYh+I8NenzlRmZr/ahn8t79UD7+SWmy8L5e
 3XD2+w9WTj9Lx1V41wFKvxVLItNAik58Oi9MHa/wR1LMRIeGFAVHWAZcxYLLKfGR
 lYcMmMTY4906sjJ6Z+ZVYILnTR360JdeiZbFdaCFGf2yUoM+HeA2+975CaRagu+N
 /HZKW4JSsiu15fvaLTPwFG6YXKcHL2zI0Vc5UF5nd9GGZdX9Y4ffBi3aPXgIOJm5
 eAf29A6Ne3/llt3RG3TduGacd1WghYhJBBgRAgAJBQJJlo0qAhsMAAoJEIuvPxKy
 Z6ZHPMYAn1s6Sdc/4Kkv8KQ0KaJNwmkQYkcSAKDLkzy/Ph4mOMm8jO6ZL+Orpo21
 CQ==
 =HKIb
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.11. Marcelo Araujo <araujo@FreeBSD.org>

 pub   1024D/53E4CFA8 2007-04-27
       Key fingerprint = 9D6A 2339 925C 4F61 ED88  ED8B A2FC 4977 53E4 CFA8
 uid                  Marcelo Araujo (Ports Committer) <araujo@FreeBSD.org>
 sub   2048g/63CC012D 2007-04-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEYxSRMRBACUOhoJNgNPJtP5AcENhALcif0n7o785oCDaTGrMNPV75DdnR8o
 +mHl4POS1bZ7RYHdo7SHCbJqu0nLO4OCeAagamnK4lW+qaa0KaC6WxBiS2/K3qFe
 Y4mDMQRPxBNUWUh7A6VpXMBWk8n6ieyMGLiLQj7+d0fImSY3NdX547qZswCgnjln
 RlpLKFjRIRtNt9RKZQbm0JcD+gMXo+MoUHHKKnSKIQt3u7rnN3Mpnr4OGsa7J6KJ
 whm6GPX0zHzjKUhXCDOJwaYBpOJYNLTTNS3nKpq7GOkQDg7Q4I89/Q8S6AVwCvX1
 N4Jdeebm0jJBrzVNdbezIYEBwL5k+2YN6FcaC1yKBTk3N7qF7/4dmfRNO14qLFaz
 E7T3A/94lP7YT9FHqmNr9RPuy9rmz1bZhU/7tEimLF2o2Y6ntxsbSY1StVHJj0ln
 cCNlMV4vrIP6Ce73W51Vw1iKNapQy2113lWVfc6dwLdhRxWDVMNPKW8ESxqrFSJ9
 IVTzZvPQoqrXOsuVKTej0MC395UbdiLGWckmsJIYVrPaX+C7lrQ1TWFyY2VsbyBB
 cmF1am8gKFBvcnRzIENvbW1pdHRlcikgPGFyYXVqb0BGcmVlQlNELm9yZz6IYAQT
 EQIAIAUCRjFJEwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEKL8SXdT5M+o
 kMEAn26jMz7Tux/fTt8Z6V59+qhhd62EAKCGEPvDrh8Ye46LyJJj2ZeA8sWNtrkC
 DQRGMUkmEAgAgSVxd8hyDpx7nndMLjTIfpla4/mOP6VSkmzF0Enj1ESzOeTVC765
 gtnjjsFq5Vy5Gv3wdLwwDkcCij5FkBCgSi9EBcp5ooFpNfN9UtHT6/2Z9X7laLiS
 qQtS7xbqU1bxUQ4sK6AdjhOgzdDz8KOeWUjs6WO+/Touq/gouggxMbg/SWjywsfk
 SkgJ9SwH/o+QXvTEloyTwqwA7ptckvFKeBiyiA8RI/T2wqHUHmRE7YrI+HZz1b8q
 kPqALkZFoZVgYEVHjIuuuT5KttaQYvAdHgWjgTTjugeCfHj186yQbIG3TOD0ToLc
 KXFycft7oYFku55Elo0bRS2mxT6/SptmrwADBQf9Gws09t+AcOYUaLH3V8EKLg24
 1r/aEfu7tPYMZ/xHmibOkxxxQgJEUAIqE4jZY6fMrwUj4F9p4Q8E3mN/wkpY2qHJ
 4yUI71cv7NEOeXLvU3bdS5wwvlEK3obIJZfhzefmUncPQ+pEVdbtoGT2ehosqe4K
 nw+bBE9q1Q8elF4mr6mNTavSZBs2FTJ84S009pbMyqyZZZ61RL1H0XmZV4s03Ywf
 tJpc/uTSwgB5I9SiSi1clafGLRzWx4BzToIeHmE70Ycl1PGJQ5kmf2tmTPrVbKCX
 F/4+S3Sn85D9s3jk6LfxMfLiSzErBkkV/zZaXcNFTPfGZ21Dp6/0IyKF+HnNuYhJ
 BBgRAgAJBQJGMUkmAhsMAAoJEKL8SXdT5M+omBEAn3t4uIC5dceYeU8j15UnzECK
 pAWBAJwI/yul4wCtXeyIhg0vYCrExTl5Wg==
 =3ciY
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.12. Mathieu Arnold <mat@FreeBSD.org>

 pub   1024D/FE6D850F 2005-04-25
       Key fingerprint = 2771 11F4 0A7E 73F9 ADDD  A542 26A4 7C6A FE6D 850F
 uid                  Mathieu Arnold <mat@FreeBSD.org>
 uid                  Mathieu Arnold <mat@mat.cc>
 uid                  Mathieu Arnold <mat@cpan.org>
 uid                  Mathieu Arnold <m@absolight.fr>
 uid                  Mathieu Arnold <m@absolight.net>
 uid                  Mathieu Arnold <mat@club-internet.fr>
 uid                  Mathieu Arnold <marnold@april.org>
 uid                  Mathieu Arnold <paypal@mat.cc>
 sub   2048g/EAD18BD9 2005-04-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =vtoU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.13. Satoshi Asami <asami@FreeBSD.org>

 pub  1024R/1E08D889 1997-07-23 Satoshi Asami <asami@cs.berkeley.edu>
      Key fingerprint = EB 3C 68 9E FB 6C EB 3F  DB 2E 0F 10 8F CE 79 CA
 uid                            Satoshi Asami <asami@FreeBSD.ORG>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzPVyoQAAAEEAL7W+kipxB171Z4SVyyL9skaA7hG3eRsSOWk7lfvfUBLtPog
 f3OKwrApoc/jwLf4+Qpdzv5DLEt/6Hd/clskhJ+q1gMNHyZ5ABmUxrTRRNvJMTrb
 3fPU3oZj7sL/MyiFaT1zF8EaMP/iS2ZtcFsbYOqGeA8E/58uk4NA0SoeCNiJAAUR
 tCVTYXRvc2hpIEFzYW1pIDxhc2FtaUBjcy5iZXJrZWxleS5lZHU+iQCVAwUQM/AT
 +EqGN2HYnOMZAQF11QP/eSXb2FuTb1yX5yoo1Im8YnIk1SEgCGbyEbOMMBznVNDy
 5g2TAD0ofLxPxy5Vodjg8rf+lfMVtO5amUH6aNcORXRncE83T10JmeM6JEp0T6jw
 zOHKz8jRzygYLBayGsNIJ4BGxa4LeaGxJpO1ZEvRlNkPH/YEXK5oQmq9/DlrtYOJ
 AEUDBRAz42JT8ng6GBbVvu0BAU8nAYCsJ8PiJpRUGlrz6rxjX8hqM1v3vqFHLcG+
 G52nVMBSy+RZBgzsYIPwI5EZtWAKb22JAJUDBRAz4QBWdbtuOHaj97EBAaQPA/46
 +NLUp+Wubl90JoonoXocwAg88tvAUVSzsxPXj0lvypAiSI2AJKsmn+5PuQ+/IoQy
 lywRsxiQ5GD7C72SZ1yw2WI9DWFeAi+qa4b8n9fcLYrnHpyCY+zxEpu4pam8FJ7H
 JocEUZz5HRoKKOLHErzXDiuTkkm72b1glmCqAQvnB4kAlQMFEDPZ3gyDQNEqHgjY
 iQEBFfUEALu2C0uo+1Z7C5+xshWRYY5xNCzK20O6bANVJ+CO2fih96KhwsMof3lw
 fDso5HJSwgFd8WT/sR+Wwzz6BAE5UtgsQq5GcsdYQuGI1yIlCYUpDp5sgswNm+OA
 bX5a+r4F/ZJqrqT1J56Mer0VVsNfe5nIRsjd/rnFAFVfjcQtaQmjiQCVAwUQM9uV
 mcdm8Q+/vPRJAQELHgP9GqNiMpLQlZig17fDnCJ73P0e5t/hRLFehZDlmEI2TK7j
 Yeqbw078nZgyyuljZ7YsbstRIsWVCxobX5eH1kX+hIxuUqCAkCsWUY4abG89kHJr
 XGQn6X1CX7xbZ+b6b9jLK+bJKFcLSfyqR3M2eCyscSiZYkWKQ5l3FYvbUzkeb6K0
 IVNhdG9zaGkgQXNhbWkgPGFzYW1pQEZyZWVCU0QuT1JHPg==
 =39SC
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.14. Gavin Atkinson <gavin@FreeBSD.org>

 pub   1024D/A093262B 2005-02-18
       Key fingerprint = 313A A79F 697D 3A5C 216A  EDF5 935D EF44 A093 262B
 uid                  Gavin Atkinson <gavin@16squared.co.uk>
 uid                  Gavin Atkinson (FreeBSD key) <gavin@FreeBSD.org>
 uid                  Gavin Atkinson (Work e-mail) <ga9@york.ac.uk>
 uid                  Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
 sub   2048g/58F40B3D 2005-02-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =w86g
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.15. Joseph S. Atkinson <jsa@FreeBSD.org>

 pub   2048R/21AA7B06 2010-07-14
       Key fingerprint = 5B38 63B0 9CCA 12BE 3919  9412 CC9D FC84 21AA 7B06
 uid                  Joseph S. Atkinson <jsa@FreeBSD.org>
 uid                  Joseph S. Atkinson <jsa.bsd@gmail.com>
 uid                  Joseph S. Atkinson <jsa@wickedmachine.net>
 sub   2048R/5601C3E3 2010-07-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 wmKGlCQF5zC50z2aIiJy6w==
 =99Ow
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.16. Philippe Audeoud <jadawin@FreeBSD.org>

 pub   1024D/C835D40E 2005-04-13
       Key fingerprint = D090 8C96 3612 15C9 4E3E  7A4A E498 FC2B C835 D40E
 uid                  Philippe Audeoud <jadawin@tuxaco.net>
 uid                  Philippe Audeoud <philippe@tuxaco.net>
 uid                  Philippe Audeoud <philippe.audeoud@sitadelle.com>
 uid                  Philippe Audeoud <jadawin@freebsd.org>
 sub   2048g/EF8EA329 2005-04-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEJdL2URBADLOLT8FuI+nSLUblRQkz7t28SVBW9ugYj7Uz+YrYq6913DKOMf
 wn+luuW+Ynb/xUi6mEaHIU7cgLgatnOj39KSsVCihhk0SRfvkkE8/141Al4QSGGB
 DCt6ocyeD4VD8Zjsp2vKcNKnxW5jwDzQIeWRqLH10awlAaNypI2EWPix3wCgzrcb
 5Pl49FMWLaElSBXZTTzRt6UEAMGQcFylI3+94JnTLM/GAfv4cjUIuTWiMdBY622Q
 v6AmocMKLhFLm9TP/gFeYHNtkmiaTzCsixfPphHpc/mljDtJgOXPWvZgqFy2X9IA
 o4q1JPZt2v0oELAWWoHpUJMHvYpuz7frRFJTW8ULNFvRlZXihlAQhWT3WGHUPw3o
 Nor4A/9DsshpBwUuy+Nwr4ZKeyID5hH4kq9n/CSu54x/1stcwmolNJxvWfE3mTTn
 I0+1yCRgdRclJWrPXMlvG9C7eWamuxegACEoZgn79R7ifEHBgfcU1RqEjh7FPdEC
 B1FGW2GqMua9UHSNS0zAKReaWEOWdiQJW4LIBdxcBlp4ta6m1LQlUGhpbGlwcGUg
 QXVkZW91ZCA8amFkYXdpbkB0dXhhY28ubmV0PohhBBMRAgAhAhsDBgsJCAcDAgMV
 AgMDFgIBAh4BAheAAhkBBQJGwsBVAAoJEOSY/CvINdQON04AoIUkdZhtlHPjvd37
 oYdAZsIcdsMaAKCx6J0fkeXJvpZo35PGudBq91pIu4hMBBARAgAMBQJCY78+BYMB
 2qOnAAoJEEbwRHdxOs1RmYcAoJ5xBui811eaVAF8XgwxmbmJFjwqAKCjNR/ngEvM
 PNhsny96fYBUnrwScYhkBBMRAgAkBQJCXTBnAhsDBQkB4TOABgsJCAcDAgMVAgMD
 FgIBAh4BAheAAAoJEOSY/CvINdQOF04AoIYhNXtXfGTVEBTQYP9+8uNF/h+MAJ9x
 lI4THAL9Hz5nkLMmgNniw88+v4hGBBMRAgAGBQJCcAh3AAoJEMNN3ePuINYY9F8A
 nRq1dWPQsEf7vBhvmNt9lnN0HPoBAJ0V5KCM1Q3KPal21Xnspb4qClrHDIhMBBAR
 AgAMBQJCcKVlBYMBzb2AAAoJEPaBpKRNx6pJ2xgAnAjTTphgzhDP+pr99GepNftV
 OSv/AKCbyEr2udCh6yW6dHrlvLVKVUCrNIhMBBARAgAMBQJCdOTBBYMByX4kAAoJ
 EFN0a9y8jOT3DvsAnj2WuEGDd8Ph2FAPKd+D7YT6cd/JAJ9TQWgH+K4IFaPlpOYC
 AIUTVCgJX4hMBBARAgAMBQJCgmuuBYMBu/c3AAoJEI4pzq7Fa10Rj5cAoIBTBkke
 Geel/Y8qlSyOR5KRvpw/AJ4/E0pBrto8kxpgJS89wJPzEBtnIYhMBBARAgAMBQJC
 qUaxBYMBlRw0AAoJELxT8wQZSGTDAPwAn2HqQU6QTJ4SjjRenMppVGHT0iQAAJ4r
 nJi4cTvA+pYGztbRl9wSe49c6YhMBBARAgAMBQJDDa/eBYMBMLMHAAoJEAgz5lsp
 UNTiAs0An0dr1n30bfqWokSM9gb0po1013dGAJ9QBdhSoJE9WBM+q0DD3M3vQEdD
 1IkBIgQQAQIADAUCQqlSAQUDABJ1AAAKCRCXELibyletfERkB/97Dh5kJecBTlwZ
 UtyJl1pEaj/XCrURiW7dyUq6mI/eZSXSWl/qmBiMq8roigPsFzm1mPJU4/9N1D23
 J4LOB8FwbRoPo8Xsb5YYLP0fnmoGn/VOn65qh1hyepichmn9nJ3R3lcwp5poBj8F
 Kyt0M+nqdO+XTlygjaQ1XRuwQeinbbv7UY4xNbLtoTYrfv+idA8CWdd32hkYyF+d
 NDB8xNRU1jM3dZbedBKND3huE1YMohIiXqmyh2xFsmfWeG4AXfgt6czGnACq3OoI
 SyOxUR6wBqftv/r8EC8sD6Acek0iqI8avxoVpxPrHJOnyYxqw3j77EeXrcFd9ZFC
 QWCaFHKkiQEiBBABAgAMBQJCuwqMBQMAEnUAAAoJEJcQuJvKV618nrwIAL6ByoRL
 kOUWX04fKMdQsRaZx0Yuc3AUx2nPfzpuIQkpJmvoqg+Sopap38k/mg2M5PvHq2wq
 xYzjCpnPcUJFJ19IC+l+/6hOGgCsnMMghYbqNc5rdS0VM941/wC3llnhcp62unuY
 fH+ry1JSgwyjoJTOMuLc7HyzkLLnRVUx3rxdhLTNPseEWhHJqPLWx3oNcjuCAijK
 xIr/STgQguiUTHBKg4yk/4pqVv6+3AMxyQUl1AwYfJZ5vQ2YpGbw1ZCg0ZAL87EG
 /GCH5z7h86l5axyJSSohTKtpaJAsOiG303sIqcqb0UKFOhV0uVJgcyFqjTL2T2wU
 rLeeO25g7ABRVlqJASIEEAECAAwFAkLRFmAFAwASdQAACgkQlxC4m8pXrXwjqgf9
 FGBisOK+UiGUy1AGCSRaomi48DpAjzfx/pu6rQmsOA8GWPfUjRAIpSig+PE8DfuH
 I3E1+S2QMShIxzu5MEKjIySz805Z0MoNYo6SzgdTXo9BGzsNLAjT+5ITkRsb0+PR
 Qw+nNfdMV8g12C6P4jhukAGTX54/WVNn6BG5cHg9uQ8iCibgE1AuvXkD/hLUNtaC
 qXW5NQtyNzlDp+hktGLVboqKbo8wHWNvQMBoNzXhvqqv9UCdHoZiC1988yLE9DTd
 BvpjwnCmm1NHt7E3knEST1HPnx1hOv6X9U5Gd9N2OcYJDYMz1aUQr3KyD/LYYlHZ
 bTIFZEpSKwn3Ppd3yDBNU4kBIgQQAQIADAUCQtG8MAUDABJ1AAAKCRCXELibylet
 fEKSCAChrkBETJ+cHHml02olsaR8xKjj3lA7MgBvTy/glJKnBm0SsRl8pNt7xrd2
 5B+2ZBXqLsJcnOfNfb20r+j9FGAGVzzn7nLhhxNujK0FUlwOG21gChIqbn7UE0t6
 H5IURCT8LcpxUmd/1oCAtzROW3KppE2hJWB5m0I1s8gBs5Bt58W1Vbxn0RrupTaq
 +b9Jc2vXc9PfWiuvV7MULdx3JIIq8QDt+PQp6srLaezz7ZNvalcFk80k/9l3b4oL
 lIOyXk2Z/7yXTVLdhkEpC/xEfE7xZzCTooyEF/Un+xKBpyglzpDKPKx5zH7NnngJ
 Dcm9WqKC+URv7pAn60fw2CsmSzSdiQEiBBABAgAMBQJC7MKBBQMAEnUAAAoJEJcQ
 uJvKV6185SkH/iZJPlklLeJqBD3OoROWAMvj3nyU4U29P4hdV5KN614PtqGt344M
 JfoXSXgSNXtck/xSHW2s8g6aqIrYqAqC9vxsQ1mIKsXaDGZDwScjy1K/9/0/jdpd
 9ewuLob+kGQ4uAm3ZZzLq6JMK5jvv+r9uBAn+YO0+BNs18afgh+N2CYoEklgMK6O
 vwYzKhTcjjNjgYsL6zhA2gQ/H3ureUcruVhxWxKdREkh9EVuwTtF1UdbWoN//FMf
 gr6zj4L58iR/6+i/l77zDCoovYiqqmQnuoV4qXqpI2t2PguXQhiCmxxbpNrYpybD
 /r37OH02N5jOAZ13hW9NnojsRoeAA9qUd5qJASIEEAECAAwFAkLtaMYFAwASdQAA
 CgkQlxC4m8pXrXyPTAf/XD9vz4IL4gz045TKGRbJYkm9Y+o5CE/mVY2XdfJ84arP
 GtBwZCODwYOFtPh8Mjlfr0JpH7Ts4TRjBkXz+1+1GttWIWJvGl4+0b3QRL6zfydM
 Fpv1RqGCPDJXL51LD+mnqEfov2cOkSJtxiRjX4QtDlC/ZZVFY0ZU02/3HGFvcE0C
 ++8RWXZvl8xvQjxq+chnHDtLSgJ1C9SSZgcaratbxxJGAgLq08pPPzMWwRnX4Zib
 +M3+5PEGKnrrZsg8uzSIhmbEhLgVxi73TwkuD9haAdD3QW8sE1AFO12yjg9shZUA
 ZoWOaIY1ZyhcXftGhDpRl3rjsR5LKF+bLLdUqYnB24hnBBMRAgAnAhsDBQkB4TOA
 BgsJCAcDAgMVAgMDFgIBAh4BAheABQJCqC5yAhkBAAoJEOSY/CvINdQOnMoAnR+l
 xUQHi6dg8Wu5u+F5/xdQe+NnAJ4+wW0jS+nvJneeOzHdS19uD0T+5YhGBBARAgAG
 BQJEfDPjAAoJELVIn7FEOEbWL4sAnjiX7zZuwYX3yV1oWs3NlwFqP1fLAKDIn+c8
 OkbGXTagKQYxltP1G6vZdYhhBBMRAgAhAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheA
 AhkBBQJEBxZ/AAoJEOSY/CvINdQOTkEAn0bjcdpuKAr81vvSGEhP+TIBV5f4AKCi
 77jQg3zAi4N8q4vMzNkTDVKSlYhhBBMRAgAhAhsDBgsJCAcDAgMVAgMDFgIBAh4B
 AheAAhkBBQJEftMXAAoJEOSY/CvINdQOVEoAoJnLEVBeNCH5EKHBbJ4Qt+2jjULx
 AJ9tnkhBTD+4QxWbvJYTi6K2aEhzXrQxUGhpbGlwcGUgQXVkZW91ZCA8cGhpbGlw
 cGUuYXVkZW91ZEBpbmdlbml3ZWIuY29tPohsBDARAgAsBQJDYi3mJR0gamUgbmUg
 dHJhdmFpbGxlIHBsdXMgY2hleiBpbmdlbml3ZWIACgkQ5Jj8K8g11A7HPgCgh20Y
 irDUd1c39o/ZFMZ5epeoccIAn00+nXaC9vJqgGV6/KsiO95uwsQ/iGQEExECACQF
 AkKoLecCGwMFCQHhM4AGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ5Jj8K8g11A7q
 kQCdG6PJLw7d9bmF5JflMn8vNDXflrMAn3Cx9xcp/fhJ4fRSGG+giRJh56RriEwE
 EBECAAwFAkKpRrEFgwGVHDQACgkQvFPzBBlIZMNNPACfXAno7FNi+O0TYyTJx9mx
 TdvKER0AnjsUcRtmGF2QAO9Pta2hYmZjTQNyiEwEEBECAAwFAkMNr94FgwEwswcA
 CgkQCDPmWylQ1OJrIgCcCtptIsOSXZM86O+Dhgjss31xmOkAn0DYfRqb8t9wUxrI
 J505WdlUTa4ZiQEhBBABAgAMBQJCuwqMBQMAEnUAAAoJEJcQuJvKV6185OcH9Ah9
 yxTSSeGejsB3R+DFmCf/sTjDeQN1S1qWOiWzlJo86LtWNl5/DIKSq93vIFLcjFIs
 FcNlfPc02bdC9U63SxLFE/gKzBb+RBPjZFB1gb0YetqeQUZAJgcJKgS5h1CphhNv
 DNoKzbW0tLHttUUFeXsHZsJ19BeWpojD2DEyIyMeteTXrxxIDDjbfZxp7tNo3eNh
 Xk6qL21+GaXoNqOX1+9bm31CSFB0YEooTIZ5OW9z+Whlbjnrtv63Gp8pNzpFdkbO
 xvPAY0vb9PD1LhyywRkiLbHs+JTkwIx1u4OFGdmENUmluYx2iuv9E2iT1wq+jJsi
 MNjHqm9cm1CnI+34qokBIgQQAQIADAUCQqlSAQUDABJ1AAAKCRCXELibyletfDCT
 B/4xNc90Rqi5imZIWqAoP3p8WyffmxVAosVdSzO8gCCGs6rFbro0rRvPqCtkhYQn
 zgQRrPL9JhSpmB1b9hZXp24nK6E3mi+NbLv8kZGrWPO3I+q5aYaN/9lfDCWbIGz7
 nav9RLMG5ARsYKdGM0ZD5JcoZ1t/refnnhZdxXnNlNE7zaraQ6nt8UBiuc5hlS63
 X2PZq5nTn08NVZWUQinaIziR2SJbULclQ28SQd7kysRak9CP1hhMjkzhsGZs1TfT
 9YlQifxcaSnRuzaidI7by4ghcP/spBsUOU3HnSGvOJbqzVrNaZMJpBsa7oAa1z1P
 xzOjE+lsFpoJ3kCyNjn6QybUiQEiBBABAgAMBQJC0RZgBQMAEnUAAAoJEJcQuJvK
 V618CTYH/i94AkC8vvvxjGd1NX8XsFME+thWAcKUyhQnSbuAjfDb7MTB/HaTyvHU
 rlc0Vo5l3Ujg2DPbldQfrIUqaihvQQazNmrJYLNtxvwwwwsgqYTbdKiusL3qHvp7
 MnDTqshEx3/y4qHRRoFjyRqmInQFG5tH0XxpusKVSn9U5G4qz/ysS8Yebmh/fzMJ
 PfujPSTsEjr9mtDjSusbPQBmvADf/EWBvPq7e76AqcXicDrONb9tnusY5ScUGuBJ
 UmP5bnoI6hYfgdc0a4pb/one9xduI773hQPG2h7shPUHrZ0vZZx3vmgkN7OvziYx
 Ek5wlHuNQjkQc+BpZgWbg6RkPBAKDq2JASIEEAECAAwFAkLRvDAFAwASdQAACgkQ
 lxC4m8pXrXzATAgAtyqVHWx+fORp9/ohOjyDtTPcoZfJZzgq0jSyo+DTTYMTfsfW
 I57Ekx8B149+BBC0RC0Hv3IyuQLS5ag7gVpUYaWCyajFAXxThI7oS0yNAFzolNp0
 cIn74gXafxCZBL54KaQ1+hPLi2kOYP62XZ97+SGbl4gnFTKpZBnK7iAFtSfsgZKR
 wtVk7bekopEqH1ea7DH8d6VcaOumzMI7tGRNHgZhLBZ9Q32SfQFl+uvEqhXQTUIp
 fZrZ9v9huuZAp3a8FWheokePSvITy4cs6oZoOeTVU0P09GXPtinBWoN8ShUjYdOe
 3Vd2uloIBpmFJxGVOOUceUSSK3KzXKJIfXJtKokBIgQQAQIADAUCQuzCgQUDABJ1
 AAAKCRCXELibyletfKUkCAC2XfZ2GjiLEZgF5UMcjfuGkjxs3PlN4N562Hl54QFg
 Sr8hz/vqc8Xki/cC949WecZ8mtUXmt9Us/TbaFKgY99cx9Xgi1+UqwupOIfsEI9K
 q2LpGHhhgM7WMls3ZJnHfp3PNG6/P0wL2u+3sUTYt3aDjHXQ7sWvQNydpZ8O+DSE
 3+sddX3PaFarh44usqgzfuer304SVzBFeSt2YxqXnAzblxoyNlwLBQaId1xxgMg3
 /1dZYuT4xDriI6gzMJLRsBKUb4R55D/4fquomJLlYuYrjoajY6GKIklwDAV80i1w
 xLdE0E0OHF+03UOfbNXcEaHmbTN+j1liklXB7OqV1DT6iQEiBBABAgAMBQJC7WjG
 BQMAEnUAAAoJEJcQuJvKV618NSIH+wVbo7yMe8uBzn996WyrMIke9ErSaowlgtFp
 pM8vflHIRVTgeLEN3Sda5UVfTI47/VK+P7+D+9MKP0pRbLpCFaAO12o+wPmJAx1M
 99w3tkzvHz4HHJNHdKBb0ICzntHESstluZuB5D4tUEBeU9t0aCXmLm8xncUo3gmR
 KDezTHMFEk2QKmQG8tJ316er/UIrUQGtmyLSubDLQEdOBlcNP5AIp1WT2nIsduhn
 C42Nz0xquNvFN9jDt8XfXAkC/79sFs4UyhL7GKmbuG1/NbQBkpkzSBX3EJ/8Z52q
 d6idpvrv6Wyum/cbTk9KYjQoqIKjFLO0EZRiRzc2qiSWPwDlRSC0JlBoaWxpcHBl
 IEF1ZGVvdWQgPHBoaWxpcHBlQHR1eGFjby5uZXQ+iF4EExECAB4CGwMGCwkIBwMC
 AxUCAwMWAgECHgECF4AFAkbCwF4ACgkQ5Jj8K8g11A4B5ACeIPPFbSyb01eLXo5B
 cv4bpPtf114AnA2rB5l0HVEAzhWNBK01YNI3ic8jiEwEEBECAAwFAkJjvz4FgwHa
 o6cACgkQRvBEd3E6zVGzcgCfVdUBur0E0PFXsL+5lZ4/9ICRr+cAn1y2Ndg3tZTg
 P/66Fcr0ebiqYPqtiEYEExECAAYFAkJwCH8ACgkQw03d4+4g1hhAEgCfS933a2lP
 qzVK3XRFGLcLKL4YyFcAnisjJPkaufYR3FG3SuxI8BZAYISLiEwEEBECAAwFAkJw
 pWUFgwHNvYAACgkQ9oGkpE3HqklCQACdFfNNs+gHIcILxQQunTEKjhMaWbgAnR8u
 gGPWC/o5yaQoOG00KaFgUFmriEwEEBECAAwFAkJ05MEFgwHJfiQACgkQU3Rr3LyM
 5PdPvQCggdJjyUqIPb3m6j76pmuK/dqbcrEAnjg6sZ+wHDPEEinAqK1lWGGJ9Ukl
 iEwEEBECAAwFAkKCa64FgwG79zcACgkQjinOrsVrXRHUlgCg58yf57SvwM+zXUwS
 055mwyRRX0sAoMYR5xRI8db0uHfXbdYojZixd4kuiEwEEBECAAwFAkKpRrEFgwGV
 HDQACgkQvFPzBBlIZMPvXACdH6dc4xjCggJZa/kWB/idMUUpV5QAnj6P9lXUYz7y
 eQQMo2uAoZW2oqyNiEwEEBECAAwFAkMNr94FgwEwswcACgkQCDPmWylQ1OIJqACg
 uADHHVxDVlyvcGJOsUTorS/U+tQAmwfCundJw4L/18tg/+g1FkkKEFt7iGQEExEC
 ACQFAkJdL2UCGwMFCQHhM4AGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ5Jj8K8g1
 1A7zkwCfbAUGa0InSkltzfwsCLphyO6egx8An1xKKGd4W5kIS244oVU95FGH1bpF
 iEYEEBECAAYFAkR8M/AACgkQtUifsUQ4RtZSYgCcCtWMuXqR3gSLActoB9mVKgLf
 T/IAn2e82JynKFMJHPhVTQMZhxY6GbTWiF4EExECAB4CGwMGCwkIBwMCAxUCAwMW
 AgECHgECF4AFAkQHFoMACgkQ5Jj8K8g11A43fACaAiX/RT6dYKaBC/5E1Dyq+so8
 WoYAnRgT0O94H11BjQPKcTgzSLfsIB6/iF4EExECAB4CGwMGCwkIBwMCAxUCAwMW
 AgECHgECF4AFAkR+0x8ACgkQ5Jj8K8g11A5vXQCggBKEglKmdWQAx9ElvPiChSM1
 M4cAniUBlbC33rSi+siFWhIcryZXVG7KtDFQaGlsaXBwZSBBdWRlb3VkIDxwaGls
 aXBwZS5hdWRlb3VkQHNpdGFkZWxsZS5jb20+iGAEExECACACGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAUCRsLAXgAKCRDkmPwryDXUDnrFAKCSkjYXxo1RCT6OyknW
 Y95Kyg/hHgCfeRp8cy7xA1xLB5TniIPP2iE1IHOIZgQTEQIAJgUCRAVkFQIbAwUJ
 AeEzgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEOSY/CvINdQOoqIAn1Lbez9i
 PCVZOfKuEDLa9bJQHcBOAJ46k6i++mYYeojZlZQIO0dQesblBIhGBBARAgAGBQJE
 fDPwAAoJELVIn7FEOEbWshgAn2yjv8QdZkdbhuBhBbov5ju4W6s4AJ4hgIbjSimX
 fR1qb4c0FFf2rn3BsohgBBMRAgAgAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AF
 AkQHFoMACgkQ5Jj8K8g11A4lAACcCMKmWUK3se6jgb4kTcYLDOsPp5gAoJj0F/Ie
 8/Hj1E6XojVoPo1Swy5GiGAEExECACACGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
 gAUCRH7THwAKCRDkmPwryDXUDj+UAJ9O7ClybVFgaQfW9myHecOyFUVoDQCdGIs3
 38ftgMM7Hwk+J5eXWw+wR8G0JlBoaWxpcHBlIEF1ZGVvdWQgPGphZGF3aW5AZnJl
 ZWJzZC5vcmc+iGAEExECACAFAkfK3oYCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
 gAAKCRDkmPwryDXUDkASAJ9HQgTH8F1GkjB9LkBS7ZaWCQ0riwCeOM0rJkQmuQRZ
 /u0Ick5TgV3YUGW5Ag0EQl0vmxAIAJ8MjJ7IQdwNk9s0izvt8BSxqVg0D1pQgM9K
 3TJx5XK9+A/AinrZEsMUqwrtyIwjEeUIw6pXaC6TqUc47DAOLAsZm4orh2uMSx5U
 q0NPUixM0SU2YvCZSF9xylhi6PufxG5HXLWFp5MJm+1V3o6M2MUFoA9+KyB0bFJL
 obMDaPCzEpWFk4wRZ2jUcvX6EtmrXD24e3UHmGUdCtTFis4RogH2aaAM1a3i6sxq
 dd4X51LUSpi4oL/OUVqwerJNFgdysTnL3YM9vJIWwN61yLmxMNzXqZFHgxagNtH1
 v90PNV/3PMg36FtYt5G5wkw/TvJOrlAjoZYFu5s7+SIe/wPRg+sAAwYH/3amGRUV
 7Y9T8IhuqzM43e2mIncDCMdTD2vM2PMA5N3oVk9CvrOMy9HBw/6NsJjC6p8ooIsn
 6mw9NlnbppxQ0Ofp1tvSBIqzcjf7icIaiMskHGL2Fp1eO5wxTz3ERYRpjeV2K7C4
 q0ZY5jpZH8g5Mts9TYYRB0aKA7eT3hgrVxjI2YKdsC2gHbjqISIp5DKNr/wvwE+n
 Utboqzi76W3svf1C7A1bhcpLu/W1OUyD57qpBpmHKSLnQDpjM9h6oqZa9cUeNvyG
 Gzas1W20UOTkAIXlQc32CAQw9VcDnIz8p3Smaog5IGBi5wgoDqFf6wvgV6/xgZqh
 yLOPxlnjoSbx/7OISQQYEQIACQIbDAUCRH7TlgAKCRDkmPwryDXUDosTAJ9zJ2ch
 7GNJJ3W8MechFeaHW8gi7wCfcvqc/uB5T9hc40vmQZTSMGsVwIo=
 =Ed5M
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.17. Timur I. Bakeyev <timur@FreeBSD.org>

 pub   1024D/60BA1F47 2002-04-27
       Key fingerprint = 84BF EAD1 607D 362F 210E  69B3 0BF0 6412 60BA 1F47
 uid                  Timur I. Bakeyev (BaT) <timur@bat.ru>
 uid                  Timur I. Bakeyev <timur@gnu.org>
 uid                  Timur I. Bakeyev (BaT) <bat@cpan.org>
 uid                  Timur I. Bakeyev (BaT) <timur@FreeBSD.org>
 uid                  Timur I. Bakeyev (BaT) <timur@gnome.org>
 uid                  Timur I. Bakeyev <timur@gnome.org>
 sub   2048g/8A5B0042 2002-04-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =r3u1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.18. Glen Barber <gjb@FreeBSD.org>

 pub   2048R/A0B946A3 2010-08-03 [expires: 2017-04-25]
       Key fingerprint = 78B3 42BA 26C7 B2AC 681E  A7BE 524F 0C37 A0B9 46A3
 uid                  Glen Barber <gjb@FreeBSD.org>
 uid                  Glen Barber <glen.j.barber@gmail.com>
 uid                  Glen Barber <gjb@glenbarber.us>
 sub   2048R/6C0527E5 2010-08-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBExXeNsBCAC7wmKFOV+UjSn48hWaRAImN0uGgJRVAYPWcNogyw000o0vMKjk
 5sNm5YUv2DutTVBQAHytkKGYX78ogpltIkvkr5K0eptVpl2iuWQNyGc4Nq418ZJa
 hgDLZOtMO4plEmbViLFuz97D6V7yNPSAX6adiCh3A0kc+GwCOhXtQrn/OWxZa4Uw
 FCGD6uqFXM6s+kkgtqFlWuFB4tAM5epxt++WLEyLCL/znRhZK+tTstZxqLudJnFB
 ooFOEffYvDB1pNWOarBmSKHncYNjHRqEcNFyMXJ9Fn39I50QDvoh9ps83V+NjuE/
 FYzt3MmYA1j9H79tDYpJp7OEvGY5sJCZrMKjABEBAAG0HUdsZW4gQmFyYmVyIDxn
 amJARnJlZUJTRC5vcmc+iQFSBBMBAgA8AhsDBgsJCAcDAgQVAggDBBYCAwECHgEC
 F4ACGQEFCQyoT5oFAk+fMEUSGGhrcDovL3BncC5taXQuZWR1AAoJEFJPDDeguUaj
 NYUH+wS18HZnyFexvxYTP8wHvp68+LlPCSmouq6yqwHaB6qkv8vRS/9lrEGff8a9
 Ya5BeaSJ2+YllCIC6f3lnSRHJ3mINEGuny1UHpSMUys8vGdAqC0JsoLgMGU9GUE1
 1bYgweLBh5Z9xa7UESLUyGh8GEpcdkQzzXYFa/rmQyfwOt8yw7OjzRzTuHe91b5D
 iM3u/DhqIc6HfJs2cm4HEf5Hp6WFQH9vKH8MTeQYGAoxVZ6epzoRfTbbrDX8Dd/v
 hoxMYATTOOc7/kvITSqFxJ9cWuthHtQ6zwqR5dsMXl+XMPnDD3u8YP/xCgnhRJ3I
 NAjoUHP76YkFe33SRkqM4oKzY1m0JUdsZW4gQmFyYmVyIDxnbGVuLmouYmFyYmVy
 QGdtYWlsLmNvbT6JAVEEEwECADsCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA
 BQkMqE+aBQJPnzBLEhhoa3A6Ly9wZ3AubWl0LmVkdQAKCRBSTww3oLlGo4mICACr
 42CZKktecfngCYzx0N39KAn55jiZmUeoxs8OGsbi7j98Bd3IU7tQEz7Czqsmv5D1
 aACctF2n4z5i41ekpfzlzkHeSPrR/Ul3e9CjTVyYf/RYYwootcL0tJiBJK/Hyd0u
 5mHPC+jyFSBoMYccncsnaOVrZx69tuVKfgLR9wk+ysYwrzXHAq8nuXhKd3SHJ7IP
 Zp1EoXhyYLL06kIU0/z64UdNKmWwNo2qtQa755KPCFnEfv2wDUXbHU6W53AVlKif
 pSijWxY5eCuyy7VWMfNuT28zUxS4IiCE3JKKYcxCkXjsaRbaUSSabaZpF30i/kXD
 KVidRkqSLkL1RQE1VRYmtB9HbGVuIEJhcmJlciA8Z2piQGdsZW5iYXJiZXIudXM+
 iQFPBBMBAgA5AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AFCQyoT5oFAk+fMEwS
 GGhrcDovL3BncC5taXQuZWR1AAoJEFJPDDeguUajNq0H/3FSIfM0aBB84iX4lOSn
 qzx9L6ubMWgOdYI0vTqDMnrWcbSYr706hVu9tGbKBncRkF5jIT4Qb5Z2QRCgVHMN
 xZ1/dtnm/sKaMPYEKnBo+gorY4ub4IxS5vpzi/HcR1APYyjxZ4a8k3NsDoImgVr4
 laOwYA/LSvi0xWnqtP12DDwgUkx1Ay+x02CFMMyupLOJ7QT/NJOpToiTACaiiPdX
 xmVIQm0dbM2cWYM0IKaz4D+5P3H9nxEdRsMK3pSbg9UqHjd6J2vwbAy8IomMNYrh
 /Zi6fgx6MblYHe0DQ5LmTwcFc1FZZrZ1XHJGDBU5buvqaa5ZFFPcnrCKXAfRgEej
 5gK0HkdsZW4gQmFyYmVyIDxnamIzNUBkcmV4ZWwuZWR1PokBSgQwAQIANAUCT58n
 4S0dIE5vIGxvbmdlciBzZW5kaW5nIG1haWwgZnJvbSBkcmV4ZWwgYWNjb3VudC4A
 CgkQUk8MN6C5RqMyvAf+M+xe9XdwWWCEyJ3GBSMhmXnC+c2303IdafSoFsm7cB8l
 nzvSHhjPQ9zC6W7wyFgUs2c5fOh5TeLtqo2AOHkvcyGRgqMViW8hIPaJU9ekxfui
 uLwpGwArRJwayEeyMT74Ry5/tEsDLLchoBMU3627jzJEQudFM3dYtc7gsinZOefJ
 S0aXNOT9yjtNB1RsVHVNfwW1pEkxIKEFwWu/aqcMA3jBYCVhs02jZg0jYTbPqjUF
 NPv8JFVb0+cSGNnGpmYKHQk8c+t3I2LLIthcDFFwc+eiPsSf39HrdP+oX/sFK9yY
 s0m8QlLR0yoJ2zOehy8r4e3vGWGN0iDjfAYojhPZw7kBDQRMV3jbAQgAyksBRs9a
 IpEU+j37aGKMhntVy4zCIALaZYV+E75nbhY3yjxHKiOlwOt4y8n4AxIPGvm7qneH
 acnASuKtlkmn7KvKhaxqVVkbk2l04w4kaHqDV0pGsve8CLv2KLQHDwq9MEKvwPqv
 ep3DXyocpe75cmvXfLyaTbmPk46+qPcXGlfNXXpMJbjy7RH51glx3rZS5uycoijK
 oNsblHdLCPvaTgpwyw7bHEpkgpoIFLoUwCog3xyUDZeQKtJwzCPDeJLZ8hxosye4
 y55KxcNIvEzAyV9dru444rbYVBm4W2lE15mGsaNZWzMcHohj9XRWepDCJwCC1i98
 eImAPsnoW4O7BQARAQABiQEfBBgBAgAJBQJMV3jbAhsMAAoJEFJPDDeguUaja6QH
 /2iofGwiJ9v59fmONgldH1o8W4n2A/IKAMB6xjPsSnVi/foAgl0l99JDOzMtVWk5
 Sa3tk5Hml4FDipAYYcfWG6IHlQ5CnRxdTYJ2mAU9eVjf60xmyhEgmvfC5hUPZDVv
 PeVouxzGCO0ZhnGnJnos0v3FXpJXL0bkroCyUWGDrwH708hXjWdwS0cNqCqsWaZf
 4k43+qdPA3qrQ9kdKDZTlDENDp4ORfiXr0Ae0fGMnCVx01qQfgyYY+M+X6CcnZuj
 2FtSaogz6k6ZDrkYC04XdywznP4eBWnokNSO/RGNAyIlsw3NwGu54NGzygaBQ+cs
 FP+168tqFBrd4DNIVjsbY1g=
 =KOGO
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.19. Nick Barkas <snb@FreeBSD.org>

 pub   2048R/DDADB9DC 2010-07-27
       Key fingerprint = B678 6ECB 303D F580 A050  098F BDFF 4F3D DDAD B9DC
 uid                  S. Nicholas Barkas <snb@freebsd.org>
 sub   2048R/36E181FB 2010-07-27
 sub   2048R/BDA4BED3 2010-07-29
 sub   2048R/782A8737 2010-07-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 w7zsUcXBoDCfj8IfFwAxKholDgQBBt1pQcCbgIk=
 =zoiI
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.20. Simon Barner <barner@FreeBSD.org>

 pub   1024D/EBADA82A 2000-11-10
       Key fingerprint = 67D1 3562 9A2F 3177 E46A  35ED 0A49 FEFD EBAD A82A
 uid                  Simon Barner <barner@FreeBSD.org>
 uid                  Simon Barner <barner@in.tum.de>
 uid                  Simon Barner <barner@informatik.tu-muenchen.de>
 uid                  Simon Barner <barner@gmx.de>
 sub   2048g/F63052DE 2000-11-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 8o9/o+UAoI65F9bRERosGt0m0f0q1WwwdGcz
 =HMUk
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.21. Doug Barton <dougb@FreeBSD.org>

 pub   2048R/1A1ABC84 2010-03-23
       Key fingerprint = E352 0E14 9D05 3533 C33A  67DB 5CC6 86F1 1A1A BC84
 uid                  Douglas Barton <dougb@dougbarton.us>
 uid                  Douglas Barton <dougb@FreeBSD.org>
 uid                  [jpeg image of size 6140]
 sub   3072R/498795B4 2010-03-23
       Key fingerprint = C0BE C1E3 8DC8 D7F4 8E6C  732B 0C14 D9CF 4987 95B4

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Comment: Public key 0x1A1ABC84 for dougb@{dougbarton.us|FreeBSD.org}

 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
 FthQTWFB0ZgtsA==
 =Mlfh
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.22. Artem Belevich <art@FreeBSD.org>

 pub   2048R/9ED4C836 2011-03-28
       Key fingerprint = 7400 D541 07ED 3DF3 3E97  F2D5 8BDF 101C 9ED4 C836
 uid                  Artem Belevich <artemb@gmail.com>
 uid                  Artem Belevich <art@freebsd.org>
 sub   2048R/55B0E4EB 2011-03-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 yCBkjpo4Ly8FcmqW800W8yVAArhNUCID
 =IDLa
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.23. Anton Berezin <tobez@FreeBSD.org>

 pub  1024D/7A7BA3C0 2000-05-25 Anton Berezin <tobez@catpipe.net>
      Key fingerprint = CDD8 560C 174B D8E5 0323  83CE 22CA 584C 7A7B A3C0
 uid                            Anton Berezin <tobez@tobez.org>
 uid                            Anton Berezin <tobez@FreeBSD.org>
 sub  1024g/ADC71E87 2000-05-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDks22ERBACsqOob/YoPnaI/xubQKn/CCUFsaEMqL14TZ+FSlCphq3uZ7Y0W
 Qg2eqaTp97lG2NTVNEzF7K0yr/C3ofEQmTINQTd7DmEj04DDlR+t8BMFe6Xz2sBI
 WlEPD54ZfJVqhEX5P6T0xe9hiqjXKwQHHl1skKniKeO07o3K/4bCDDMfKwCg5DY1
 /2j/Gid0YmxsJCIlg9kzRGMD/1lkSkQ0KrPH3RVPMrkRWE3rvvMES/F7jYNfKDQj
 X5lJDKoIQyWh1JwAmW/O10V+24Vl6JEFNQ4QJ7ix9hlkI59YS4TERxCUGGDpl3jr
 Lae6FFxYc1D5H8LLpiTSApmZcLxUE8CFoZJLySHgjp8qzvA60wMOjkfkWMgw3BpE
 N8DVA/9UF+5ue4bLHsPn7Jv5NzOkzaTgC/9O3UZUj/jYOp/vkI+0wPnP0U5f304P
 iLpYl1tlCEpciWF88MS5k3+8zsk8trqorss/XQfFzhHVtvRtgVxj87V0Z01E2ZZr
 YlqrnzHKQZOAKM2X9FiRZOAkndkkpeB+7SSeXDP62I56B+690LQfQW50b24gQmVy
 ZXppbiA8dG9iZXpAdG9iZXoub3JnPohWBBMRAgAWBQI5LNthBAsKBAMDFQMCAxYC
 AQIXgAAKCRAiylhMenujwBepAKCCtVcVRS40E9SY4Su8GTOBVoH4UwCgu3gK3zMy
 /QhZnnhmTKaguG6XopqIRgQQEQIABgUCOSz5ngAKCRCBvdPEDh+beRnEAJ9xU+6P
 TJrLGk8PKtO+UY8Zt7MTxgCdHYzFsXZ81j9HY0Z4EaHkQBXv1JmITAQQEQIADAUC
 OS6PpwUDCWdTAAAKCRDXjLzlZqdLMXMaAJwOE+6Jh5PnfHc09x3JKN4/a0v63wCg
 6GdysmObSBQXATzYBuhy/0eFCCC0IUFudG9uIEJlcmV6aW4gPHRvYmV6QEZyZWVC
 U0Qub3JnPohXBBMRAgAXBQI7JNTmBQsHCgMEAxUDAgMWAgECF4AACgkQIspYTHp7
 o8CQ3wCeI+P8VsHzHpfmUMa5kCzjBeqj3zcAoKYmyZUSxhV9TBQPo2WQ7zF3zcoB
 tCFBbnRvbiBCZXJlemluIDx0b2JlekBjYXRwaXBlLm5ldD6IVwQTEQIAFwUCOyTV
 DwULBwoDBAMVAwIDFgIBAheAAAoJECLKWEx6e6PATIsAn3clXqExEiP/Q/IDQb7e
 /yolgMrRAKDPw+6ZxTOJFba2HWEto0PwQ/COE7kBDQQ5LNt+EAQAjHltp9g75EOw
 pEDSUvK/B0aRUsjoIyAokRuW9Tg8S0xIhtV8ogcklvcXjQbjiEsAiO13hX7zmdmb
 yH7xLiSjea/m/whmNr9K094BS1K5i7mmUqNEFOyPB7VkPbRs5gF0dCkHT5uVgqFJ
 HSbss3zPyGYEBi8uDokIfOt4o5CEMYsAAwUD/269N/UwZkO4+NYivNX0ZpcUouqV
 YDPQ8YLwSrkwWpG7UNvNHd1HS43OWwAOy585SkLpZkjlW58NqyXJuWVC0xJtdTrI
 MKTZ3IJNXMK2wdK+nBuTL4IvJwkf04pwFel80F2NtgUjR3ZgIlRNvFtvtCkNPg0j
 t7J8pPvL2vU5hz7HiEYEGBECAAYFAjks234ACgkQIspYTHp7o8Bj7wCfSZsld8vv
 iM02pWobJy/VvsBJKU8An2auT0HLmVLClDph/fQa+k1R2qsR
 =ISZ3
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.24. Damien Bergamini <damien@FreeBSD.org>

 pub   2048R/D129F093 2005-03-02
       Key fingerprint = D3AB 28C3 1A4A E219 3145  54FE 220A 7486 D129 F093
 uid                  Damien Bergamini <damien.bergamini@free.fr>
 uid                  Damien Bergamini <damien@FreeBSD.org>
 sub   2048R/9FBA73A4 2005-03-02

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =uQuq
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.25. Tim Bishop <tdb@FreeBSD.org>

 pub   1024D/5AE7D984 2000-10-07
       Key fingerprint = 1453 086E 9376 1A50 ECF6  AE05 7DCE D659 5AE7 D984
 uid                  Tim Bishop <tim@bishnet.net>
 uid                  Tim Bishop <T.D.Bishop@kent.ac.uk>
 uid                  Tim Bishop <tdb@i-scream.org>
 uid                  Tim Bishop <tdb@FreeBSD.org>
 sub   4096g/7F886031 2000-10-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 5ACdHjn4iuMiXZA8cDDPAi8VybndPak=
 =F66Y
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.26. Martin Blapp <mbr@FreeBSD.org>

 pub  1024D/D300551E 2001-12-20 Martin Blapp <mb@imp.ch>
      Key fingerprint = B434 53FC C87C FE7B 0A18  B84C 8686 EF22 D300 551E
 sub  1024g/998281C8 2001-12-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDwhwB0RBACelK3FYxd6cT5ukbiSdVLHPLfzgH3F34JfS6Q4FMXgEAPtx7iy
 U4Lc8A4Z2gCq1ZHBZTzKc61U+nzHe+eUWtAj0h3qDP4DOd7JCZbh4SW6dMIC7MAM
 /9J5br6e2fIIn3rzbROXSW7CJPox2D/zZcT1b727Wgy5NHUob3qej/zhwwCgrZ0o
 KBapUXgnKhesQzKlH2wWCJkD/3njAzJsFS7nDdTssMtd7ip9W97uNOFLuJ1/Sg5S
 332BUby73hNzSXlS4rhtQB6NVBRLfGASuEYBJQIEz6aao/lDprIxTusCTrO/EGqa
 Dy5y4XE1ClIyZ0yVw05UJiTOZ7Mu/kUTBBzQ2i15lxjzXBt9pNifvtcKBhcDmdzQ
 zepQA/9Jio4IBFmjPDsl3kpvA8KqP7VXKFMMBVT9SztYVIeiFgbvff/YCqzkE5RD
 0PWUFPF3o8rzsCovlpySfUNLUlfqxEZ+5+/5ky7AbJ6Vmyn7Tl+mBSZs4mTV7ktN
 526ngUaW2j+aO2SdWao/di+sRutrgRjJqyvgGn1YGnrSoKbMJ7QYTWFydGluIEJs
 YXBwIDxtYkBpbXAuY2g+iFcEExECABcFAjwhwB0FCwcKAwQDFQMCAxYCAQIXgAAK
 CRCGhu8i0wBVHh3IAKCDMueq8RCcRO+3Lc+uQyXqDKCf3QCgpVWa7oS6lTiNxwSP
 enZ7+4g+TkK5AQ0EPCHAIhAEAI3iAhZEDBjyJvPS74CXq1ypWvXfQUCYADCc/Cuv
 3xrr1p4ff3oYc+IIVdeOQktKWRP1dK7v1JLmqFsNQQIs+NtgHyO+azyX5vJGVRTg
 aCIuMMTnrDBC7VbAnWXtTHF5VKmmd891Y+nk68p5YVnRPc/fReXEY6dA9lqW0bN2
 f2jLAAMGA/9rMbPpnRy+uvaAQChkHvOV1RnDAhN2R+U9u3d0uNnv7sWa/TJrcdig
 KNUsUvXqIXVkqEMrYHTbCVC4mLMd51MLARiIKOaHeynRZYkEmdi5X7EiBLS9dCUe
 7+vMz4jV6MRIGyr8TBy3CEFIdAnpY6EIVd326PzYIgx8UZw3oEvjGIhGBBgRAgAG
 BQI8IcAiAAoJEIaG7yLTAFUetM4AoJg56qwlr8E1iEs0F33G6POGCWnCAJ4mW9E3
 25TD51pcom8Plwy1BkuBSw==
 =oE+K
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.27. Warren Block <wblock@FreeBSD.org>

 pub   2048R/A1F360A3 2011-09-14
       Key fingerprint = 3A44 4DEC B304 5191 8A41  C317 5117 4BB6 A1F3 60A3
 uid                  Warren Block <wblock@FreeBSD.org>
 uid                  Warren Block <wblock@wonkity.com>
 sub   2048R/51F483F3 2011-09-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE5wBOQBCADWbqntvghQ1fBqaz7e+TmdobJf74hD8lC5f5qfAn6iGwbSJf3k
 3wWyNJvXYVBXzDaYIuU0R5Chl3+bKN12CrMRD5oUpFEtmmzRObHfuGCCAwHvxt9k
 ex6ektaCwriwoJanRAhxGDOihUt6Z4GPh5N8ye50HfDC7WehKNs0ovOCXBFAx73d
 uxWDno2eMawnveTjhXXo+XGxqLWCZVs4cu8RR2xG5W1OXCsLaVRy2xuFRd8gRhjA
 46XN4T8H7Db30tLKVVG0bzA4bhciGnS0BNaU3D3sdF+CzF6gcQcEwMirit1PLIlT
 X4rRYnzRaGij4keLJ/nccasdhK4eDCFHQpuJABEBAAG0IVdhcnJlbiBCbG9jayA8
 d2Jsb2NrQHdvbmtpdHkuY29tPokBOAQTAQIAIgUCTnAE5AIbAwYLCQgHAwIGFQgC
 CQoLBBYCAwECHgECF4AACgkQURdLtqHzYKNPOAf/fXurCr2Ma2zkehWSsi0xXmpM
 V2U19nF5l8FoAkOO6yZ3KIQffXmYx9vNG6LpHss3VbZ8HwMQW/Mj/HU2iSElT/vk
 njrSTn+OwwPEN3C9eqTAXuQ8LU2QAVf0GCviKD8ptMiwBLSHNeAUeqxqVzpbGjNP
 XcgN+dBBcmscog1hxRA4DvxaCFCaH5aQ1YTyHpOiCmmno02+oC+IwbKZP8S3CX54
 8opqPH8R2x3QD8wxHfwr/fgcbFZ+DFjcEIWBLgpbur1qJd9NXerWtIOfQLn9yBQD
 paHSmyETSoLQac6GnuUE9c7Y4mt7ONA6dYe8wW0u7GvRXITNkUJ/RvjdYLyk5bQh
 V2FycmVuIEJsb2NrIDx3YmxvY2tARnJlZUJTRC5vcmc+iQE4BBMBAgAiBQJOcPa6
 AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBRF0u2ofNgo5UXCACAjadR
 flSIKuZu5KM+9W+VMDrPGvji4g6aJbFFXWq4zlmYYKp03kiqTRPAKtV6D8Syu5SC
 2BuX5yYART0gTkxo30uRws80HkZDAs7Cc8eFgzAf1YJyljYeIU4EBhxxMrF2EoUE
 wSdTM5JFk/jgZpidsdpox8o7TNWDGMLe9cBn1TPJZw3TGSRQitjdwfnLGGjsCNp1
 4HOkbqWggUIdpET3WaAnpHhT1FBnim5rNOvBocReXO2F2vtkqfaKD2hzc6qQMkPz
 64PLqAsVTwwCtSEein5Ukr9cb68nn2GmBAZHlA5yu23h0M1E674AR7lR9ounAMzY
 bNQmQlq+tbSPmDBLuQENBE5wBOQBCADEU7rOPsqF06y46wCqfRu90Sq0Gy3R6GQL
 h1pubHbb4IQ1ep1ZcaD1Gpx4KvrMKCaha+iOVDN2WsDzl4vrB0KQNyeqtwDHZtcN
 VQ+RORHh/3D9YOp5EQ+ObJQddl4m3f5Y2AJ3kRG8z7rLxqlcvnPmuf7MYXg+zhai
 EcSYnbq89vBRiyzpZIODuXcGbuvJOdoAt+sf4CmAwe9eh1LLN+OErBjs/TjAe9n4
 Kb4rUBhrbrCHHcWu3vnQcABfTOlWZ6+mr9wkl+Yq38nsZHDIx2RCrbDMpEEDCAlg
 WJ5ceqFdKz3VS+zKk+cz81jPREBOFBfRgVWMpAdsJFXhJU/1ueiPABEBAAGJAR8E
 GAECAAkFAk5wBOQCGwwACgkQURdLtqHzYKNKIwgAwCmfYjROytjVozXhF8Pw/DfX
 K/V+KaceWMlMjQfZgxA7pibbb1+Z7uhwygLZrGV3+QH/htdDQ1wvZrjOLFl9AIMr
 7ylObT89n99riGjDNpNH4urIyO9Oxjoql5s6RMlpsOlnnqlstTzEHZa05JvpZTbI
 XKBr4AIJ45uqtr9fFwvoNF6W9NeQrDXYDjbTVrbQNbOEfRIE6tTr9csNwaFUNe93
 eDdhkPFNHu+6Yrecm1DhVaVwiS9LKp4cmM8py16562Cjqy4msnSHpCNnQlBLgtv3
 T2BXRsuxVCXviMsADblyXqB4b/h00n9rDyE3Db+lsrTjX0nhAyBGhO/XBnC3ng==
 =Hoyp
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.28. Vitaly Bogdanov <bvs@FreeBSD.org>

 pub  1024D/B32017F7 2005-10-02 Vitaly Bogdanov <gad@gad.glazov.net>
      Key fingerprint = 402E B8E4 53CB 22FF BE62  AE35 A0BF B077 B320 17F7
 uid                            Vitaly Bogdanov <bvs@freebsd.org>
 sub  1024g/0E88C62E 2005-10-02

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEM/sJgRBAD26RM3o9QC+V5JO6/zr3ffRnNb08Bc6YIvpTd8yUhc4AIa1Zbg
 QHoUNZ0pOLffeZ3i0wnqV3lMV1cPMtvSRWlvh+XSiSg8hYlnh7+oAwmqs0Zev1r7
 w/In683ytXREuidcak8qWq4GAkET20sIICV7Ye56HJDlKrtOjUWDhVQJvwCg8jUp
 CDtJ8V6Cw6GgjxH1iaNR1X0EAMKCUJwZgIoh2Rpqfrbwv92AD7dmaJJLVfnUSMCE
 GvjcZ+O41PpvWi3PkxmgA3Zb0sJ3OSfgPi3Tnj3Nllyhqnf3WO1Yumzq3myBg+F/
 qH9a8BXvVJlk/2cbYUC6uJeGMCC971X3hceu51J41k0ano7/ALIWeoUC1HhkAOaP
 f7IoBADkQCDuIvdJ7KebBMgXIHwAJnycVZsXXQPlOx0gty4+OVMY9PfpEm7T+1DM
 mWwuckntM9tSYuInbUPco70LBxuHHBNnhiUOTkijZ5GK/VF+WPnqOEopkjL7LD2q
 wSYqGaBPbl/noAoEb3Nx7h8D94kJUF7Gchs9fCH6UxHd+/Q8jbQhVml0YWx5IEJv
 Z2Rhbm92IDxidnNAZnJlZWJzZC5vcmc+iF4EExECAB4FAkM/sJgCGwMGCwkIBwMC
 AxUCAwMWAgECHgECF4AACgkQoL+wd7MgF/cbhwCghoShm9pCHbiUjXin1mR+0HaU
 XvAAniOPVmeKUuBBKCc3KLPIhfCCKt9viEYEEBECAAYFAkM/zzcACgkQhdRQRWtp
 GwOrjACfRJUhoojMI3sBMsjH9IuCwj8CikoAn3RlHMmCAx7JIiAMmg2gC1qjIUsU
 tCRWaXRhbHkgQm9nZGFub3YgPGdhZEBnYWQuZ2xhem92Lm5ldD6IXgQTEQIAHgUC
 Qz+yTQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCgv7B3syAX91XMAKDJ89F+
 46BctXCALIn53c89waWDrQCgmCHSVr/rVUMU6fnyHtoNvYXtkFuIRgQQEQIABgUC
 Qz/PMwAKCRCF1FBFa2kbA/bwAJ4mwlXag5w3scB7heyAtqr7w6491QCghh/fVv3t
 EOFNlmwonrudaMSIYTm5AQ0EQz+wmRAEAKke9/e3jLaDx8i86+J0eTOAypCQy7WU
 QajhZDFqBHbBQTDRbcYG1dLYd/sC9oUwqgaLe+yEYw3JdfsiaiHsE2yZ/S4S2wTL
 7MrUqOc1aVPu95c3Xcef13DKCMx36B4EbMwJa00bU5ut6/7tHly5Edb8nkn5vKP4
 00TbjMa/3ZCHAAMFA/9OffxCzJmwUjCOxAg2GBberPxovtCtwAw7goKZzuga9+9Q
 dZBICMIc4l/I+zjDlphF/k9I5CQGOwoKTo+OCsZN7SSAB94NV9BEoA1MX9drWv0y
 CZJlD1bSrcPFVjWajXqC6NpAAiCdQapvV1sJK0F09v/RTHdPAZcRnpg/YS2jDohJ
 BBgRAgAJBQJDP7CZAhsMAAoJEKC/sHezIBf3nP8AoNBIM6JqCrnzQealKln3Tc+t
 HMPIAJ9td+R2zFqwuX+IMk135J0T/PXeaw==
 =bBFz
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.29. Roman Bogorodskiy <novel@FreeBSD.org>

 pub   2048R/08C2226A 2010-12-03
       Key fingerprint = 8BA4 DF2A D14F 99B6 37E0  0070 C96D 5FFE 08C2 226A
 uid                  Roman Bogorodskiy <bogorodskiy@gmail.com>
 uid                  Roman Bogorodskiy <novel@FreeBSD.org>
 uid                  Roman Bogorodskiy <rbogorodskiy@apache.org>
 uid                  Roman Bogorodskiy <rbogorodskiy@griddynamics.com>
 sub   2048R/EC4ED237 2010-12-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEz5PvIBCADEywRgDxobBqM8Ue21Jh2U7HgS4j5gzACCKF6H++QcS0ohTbw1
 HQXsnVMNAwp3orG+ksukxKyxOFVnf2oWsoQ+ZKg9+jKg0oU2fnTgsqlVjTHrWHXR
 Gp51w+swR4cQQMdO/v696KGD6igT/PVXUCliPl/SaSy3CMxQnMJiNVcUCf3F9Y5D
 vuceManrZJ43fX6ztkHuhyoGxH/AWGNU2UkZO6TKYo7zJ1TNG437gDTyKy3O5gtF
 PTqJ5OknqJPitoqLXBksjCwq3iyDmqKkppSi8JO2Su27pgwmNfRWo8r4jnLVpEpH
 eCd7Fu/TimB2McIw0mJgN4tveZ+u/8RpAXQfABEBAAG0KVJvbWFuIEJvZ29yb2Rz
 a2l5IDxib2dvcm9kc2tpeUBnbWFpbC5jb20+iQE7BBMBAgAlAhsDBgsJCAcDAgYV
 CAIJCgsEFgIDAQIeAQIXgAUCTPlApAIZAQAKCRDJbV/+CMIiaj70CACwDlzGw16o
 /Ucu1vtK5IOyIhChX3hHSp0MgDYcw7hVpmSvOnjIxgZfXHRlRVU0fvI18HaeHjQT
 iQ5MtEBnrUoWKFzMDFp8+vJ/0bDtDRIjIRMDimIxVdhHddPsdtzVLDJjbjG0TG29
 bNp8dU5eUyfmtxOeEckz198WrkKVc2l7Ynh2n2KacslK86nO/KQQcHSj59Builns
 d7GBdLGZauq8oqowM7n2NoMRWDkX2TqVQyL+a6diD29KahcvF9wXNoTw8vVox/gP
 gUdmclhktS8ybV8eSd8wT+4lT+s4Fnv1Df3yMeGhMHYkCyaUgdgW+4mE+olxsGZs
 PdrCevva6DsMtCVSb21hbiBCb2dvcm9kc2tpeSA8bm92ZWxARnJlZUJTRC5vcmc+
 iQE4BBMBAgAiBQJM+T91AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDJ
 bV/+CMIiajt2CACNuGoZu99U0gubBgNhrmAg1VuZTGTpi0PtqQ4i1+K3nWdne/di
 lpgD6PKNj2IWH9CRQpQ9XnGw1HnSFgc1YjNXMNPCF7zwkjR5rWKH0OJ8zkK/bpGl
 KymWLaIxFEaCUZpyuDWJBLXu8u680RTU8+6SDY1iDB7Wu6OZ4OIrVCPEpgLgrsGq
 eqozWHyS4L8Lqa717lmRffv78fRxWh9AdetpL6EG2IMJ4SyCTOTveT1H/ylMZtiq
 Il169YHlNut56Dr+Hu1BlJ/1YqWPFbQEyhRfuJKxt2XFyQDC3CK/9eVDDZfiHJGl
 G2yCxfBsa4KOF5COX3augYjVG8fjO2LIYBkEtCtSb21hbiBCb2dvcm9kc2tpeSA8
 cmJvZ29yb2Rza2l5QGFwYWNoZS5vcmc+iQE4BBMBAgAiBQJM+T+kAhsDBgsJCAcD
 AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDJbV/+CMIiahpBCADDMiQVoIId4eKs+zn3
 Et4u6x7uqXau07Oaa+Piyu80VY7+D8zZlccZb+fwJzIg/AyLnpjoJQWJbnbaktrM
 4o6Mz6inO0p8jdH5IaFOJezl1sZcQNWDs59zGoIHdgTd9/r2KmbKxLphXsxrAfZ5
 molQvKpbOTCit44i9Db5jrVbUwA+AEJm/YNDDB0e2kvQ44YDFRdG53erOIcJ513u
 gtWFj0FKVhYIQ7s+lZm5nELc0gEvI110hu0VOZDe5gFwZxqQikNjzj+7dmg9Un16
 WYufSXxNV4ZrUKZfstGUBJh8WM0HJXZmdo45VCMcK9JanuFsM8r4KiI2YtsLrlnI
 jftbtDFSb21hbiBCb2dvcm9kc2tpeSA8cmJvZ29yb2Rza2l5QGdyaWRkeW5hbWlj
 cy5jb20+iQE4BBMBAgAiBQJM+T/EAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIX
 gAAKCRDJbV/+CMIialYSB/9nudV91Z1EpEZDCHNnndusvZznvd1OK5bKm0bBEUnj
 coYk5LgCJ7pxJF0vhGFA1Nwd/b8lH7e1E/G/WvAQT80oEnFwVPs1IVD5LNBcsQUT
 YoMuasJt/4w1LCmCN03DuoN2erPHl6TawPr0Jd4hdP8yTwPMlG0MSZCHYA4iwqub
 c2aKOoG0WEwazocyfgidsiU2H8kY7UtY22Gw0baOO2ZfBx5GKb4gT3LIt4HDBZLW
 OeCtvkwgf7OIhN9vaPpxIlHC/eiCxPiqacyChHlc2GrrbVka+siKBx9kcTtIdKAB
 ObqhAGSmOmcWblfmIyfog9o5Ay+/yKebOBwhNnM5zRhuuQENBEz5PvIBCAC/11gz
 Xp0sE8pczDkJ14UmZRwlx1HsQemL+D+x5B2hBvBZpgjBUEKb3jp09za7LgVpkwck
 Rs57kKWbtXmVJFlevT5Efu2nh+PhjcA2yaZeekLrMke3/AaeXg4GATCc5wyW22c1
 v+Yyn8p5nblrmwX6Sdv3LegPGZjpVvx74lviVOEwqZ7AsO2OaN/Hnb5jjudLDQIp
 EMU82A+8tVMXrINe963ubG35S419TrijH92OiWHLk4QxtW6dGfZFtr/Rn5LibIa/
 x/mS9/uaps2fOMIT2E2joC654nyRTgHRpaOGJoJALH+nc8CaeWnN5vXpaGjMIgHz
 6OATngfCbRpyRTXDABEBAAGJAR8EGAECAAkFAkz5PvICGwwACgkQyW1f/gjCImr4
 Pwf+KIIYsfBv2ZL87HoUJWI6InAljXNduzh5Z1LBwqRFQILEdKbRTxHRCQFbuQXz
 XuoG9Sm+SQJuWEapSgfVc5AjCLwkS6fe5POYKZi+bJVg+WG9phyA3ahkomevQeN9
 RiMmoUHLyTT5pJcmkUemjKOR68L0sSQxZSa6E1jymn6eV8G4WQIrgxkbG0+n8jlL
 Gh45Z32XSPRcvLmP/R24m94y4hRcFf7+zi/8jsWsLhhQeKXLekTYkxl9KFnGTG1Q
 Awe4IQFbQ3JTtPucKIc5Nhc7psmvbLrRLIY47b+5Y9HaSepcm+7p4MNlsOE1Tj0G
 at3c73i8nATVo8CdE9D1rxmG3A==
 =Iduw
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.30. Renato Botelho <garga@FreeBSD.org>

 pub   1024D/2244EDA9 2003-12-16 [expires: 2015-10-18]
       Key fingerprint = 4006 C844 BC51 AD75 CE60  6E24 E824 5B89 2244 EDA9
 uid                  Renato Botelho <garga@FreeBSD.org>
 uid                  Renato Botelho <rbgarga@gmail.com>
 uid                  Renato Botelho <garga@freebsdbrasil.com.br>
 uid                  Renato Botelho <renato@galle.com.br>
 uid                  Renato Botelho <freebsd@galle.com.br>
 uid                  Renato Botelho <garga@brainsoft.com.br>
 uid                  Renato Botelho <garga.bsd@gmail.com>
 sub   1024g/7B295760 2003-12-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD/fJGwRBAC/raNISTKpkhGpJA6iYgLgHzfbJU8uwiej3s+7psND31ZYSEhH
 VkSxq10pHFeVCsbeyh/FMsru+pDJXRcsACkPTJR4CzC1VW/FmsDTKAbaZPFty433
 xbSU83u3XAqv7JQBtsTs8o7RBlJtiiAuFbtDcsotEASJ8UGKFVxdRSlHwwCgsspa
 c9VFTt28MSnF23UKv32YA5cD/iLUNRgZqkZHjdGHxaMcpEwVDWFC8nrygNNQ5LBo
 cfb+NAVT3vSIc5NDeuP7XPSdJcWqCkH0+XUTqzuspo9NIYyjHoOj+JulZtW7CFB8
 vFWjjbeajKlp6X4EisvdNdwfpzivp5UanNmNjDGth3caN3oPowyVDpZITeTYgRd7
 zUIyA/9Mx44O+40mpbYbyn0tatgeb7KYUKV7SZgrPwew0Pt10VzwzqXEQFbP2jS+
 AvO3A/zrEr1xUwMij++E7rvW/IgE6lEE+KYCI7y1Xg4wHo8WieVCn8PGNZWM+bEj
 UnUxRSH5l9fgHsJmcOauc1x0a+opNcMtvZmqPTjbZvAPjBhv3rQiUmVuYXRvIEJv
 dGVsaG8gPGdhcmdhQEZyZWVCU0Qub3JnPohmBBMRAgAnAhsDBgsJCAcDAgMVAgMD
 FgIBAh4BAheAAhkBBQJMverXBQkWRMfrAAoJEOgkW4kiRO2pEK4An201FtTBLXFt
 +5jK91JwaTO7TPKuAJi5DxFqma1flzjZGCeZUATDDVdAiGcEExECACcCGwMFCQvI
 QGAGCwkIBwMCAxUCAwMWAgECHgECF4AFAkLSYE4CGQEACgkQ6CRbiSJE7amQ+gCe
 Oea5QcNRuMo26D9mC7uq7QogKdkAoKmVqOnzFnvGJR2nDy1Nkkil56yaiGcEExEC
 ACcCGwMGCwkIBwMCAxUCAwMWAgECHgECF4ACGQEFAklsglkFCQ8f1O0ACgkQ6CRb
 iSJE7akf1QCfZ5JXobtJdTTKaMfMAhnsXA5AFN0AoJoogcAQwYt79WZIfEXHC1vv
 YeyKiGcEExECACcCGwMGCwkIBwMCAxUCAwMWAgECHgECF4ACGQEFAkxM224FCRXT
 uIIACgkQ6CRbiSJE7ak9PACfXcokm/B1iJGgYVZRoPWOryloBcoAnjB2/d3Tvf/d
 ilJ8CbD4AoUt86WptCJSZW5hdG8gQm90ZWxobyA8cmJnYXJnYUBnbWFpbC5jb20+
 iGQEExECACQCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AFAky96toFCRZEx+sACgkQ
 6CRbiSJE7akapgCgjlt1aLxPyQjWDTSmriqeigsQ9kYAn2hjjKn6zrUeEULW5MvH
 CKXWhzq7iGQEExECACQFAkDjBMYCGwMFCQpM1+IGCwkIBwMCAxUCAwMWAgECHgEC
 F4AACgkQ6CRbiSJE7alT4ACfWjvokOVfGUTSSWvqOubDPDGDviYAoK5vFOzZAZxZ
 rbVca3cmeM8sQ3PgiEYEEBECAAYFAkonWGcACgkQ5Gm/jNBp8qAj+ACcDZqmEs8P
 NvAoy03BEhxtqBl+AocAn02j41ZurQXefPJBvR0KJLiwZ8zxiGQEExECACQCGwMG
 CwkIBwMCAxUCAwMWAgECHgECF4AFAklsgl8FCQ8f1O0ACgkQ6CRbiSJE7amPHQCf
 UDSHI/QGAJJVl/6zU1kPOsXyKR4An2jyLFSVaeiNdliyTLA3oOVUzflZtCtSZW5h
 dG8gQm90ZWxobyA8Z2FyZ2FAZnJlZWJzZGJyYXNpbC5jb20uYnI+iGQEExECACQC
 GwMGCwkIBwMCAxUCAwMWAgECHgECF4AFAky96toFCRZEx+sACgkQ6CRbiSJE7alR
 HwCeNIsSZgDp7Kd3j4fEQ450fTywLaYAoJU8YMl8gd0v1TIiYRYxCso10l9TiGQE
 ExECACQFAkUYI+YCGwMFCQvIQGAGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ6CRb
 iSJE7akNPgCgrLHsvMcelxgFZ/ILqNLUvZ0D8FYAoJErtICnUiWffarCD4i7steV
 EJdFiGQEExECACQCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AFAklsgl8FCQ8f1O0A
 CgkQ6CRbiSJE7amQ+QCfazEqKriQLG8HxkwO8mBav8chQ1QAoJtyNWWk9/fv16Ms
 g7i7GSaLiTDTtCRSZW5hdG8gQm90ZWxobyA8cmVuYXRvQGdhbGxlLmNvbS5icj6I
 ZwQwEQIAJwUCR3PakiAdIFRoaXMgZW1haWwgaXMgbm90IG1pbmUgYW55bW9yZQAK
 CRDoJFuJIkTtqaZCAKCxHes0mfA8/BdIJbkfJatlCnIFzwCglpM32Z80qqfFLLIj
 lzhE+p4oBreIWgQTEQIAGwUCP98kbAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDo
 JFuJIkTtqRPQAKCR453+7mAkbzffEz6iJF2MpiXPIQCY+CkzMPJMMl4tE0bHINvQ
 exYhrohhBBMRAgAhBgsJCAcDAgMVAgMDFgIBAh4BAheABQJAPkB+BQkEIYMSAAoJ
 EOgkW4kiRO2pTsUAn345HJ/nb62ghBoif/t8mgzgQ+jxAJ9dYP0SohXEhueEqnmd
 UdFFpMg1qYhhBBMRAgAhBgsJCAcDAgMVAgMDFgIBAh4BAheABQkLyEBgBQJCQWPB
 AAoJEOgkW4kiRO2px24An1w/Nq7gdYumPC9a9H956R5RWgapAKCv5/iUBnGzcVC4
 H4YYodvJPLV3UYhkBBMRAgAkBgsJCAcDAgMVAgMDFgIBAh4BAheAAhkBBQJAxfrS
 BQkKTNfiAAoJEOgkW4kiRO2paGYAn25YU6YYvX9VIUL0KL3qN92mA2GgAKCnQ2Hc
 uQDJKFxNioLYD0f94nyki4hkBBMRAgAkBgsJCAcDAgMVAgMDFgIBAh4BAheAAhkB
 BQJAxfrSBQkKTNfiAAoJEOgkW4kiRO2paGYAn3R4PAuekFXEvo0IpTa+I4ckEzDZ
 AJ93uwKsBKXC5z7Fp5Jb1YXoauyb64hGBBARAgAGBQJKJ1hnAAoJEORpv4zQafKg
 hjMAn0RTz610vu6+Znf4VMALxUuFl2q6AJ4tc0cqsS2Lh4P8jS7Tql2Zy2DId4hh
 BBMRAgAhBgsJCAcDAgMVAgMDFgIBAh4BAheABQJMTNtyBQkV07iCAAoJEOgkW4ki
 RO2pR5IAniwMAWUyBZfdgUPGKayv7SLA9EqjAJ9iE9KtqbXLUj4vs1BA0AFPCY5u
 vLQlUmVuYXRvIEJvdGVsaG8gPGZyZWVic2RAZ2FsbGUuY29tLmJyPohnBDARAgAn
 BQJHc9qeIB0gVGhpcyBlbWFpbCBpcyBub3QgbWluZSBhbnltb3JlAAoJEOgkW4ki
 RO2pRpQAnihDx3r2Mxh66yGNCppIQTUTlIA8AKCvQg28K9neAuYmTczmaGRvAkLu
 J4hkBBMRAgAkBQJC0oHfAhsDBQkLyEBgBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJ
 EOgkW4kiRO2pjL0An3r47wFp2HMGxXsClNJ01vKuMcpAAJ9nPck9RCOLXqX1Cqch
 Rt6jc/XH+YhkBBMRAgAkAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheABQJMTNtyBQkV
 07iCAAoJEOgkW4kiRO2pR98AnjL3E1QBl+k8WOfQ9sPYPBRrKlxEAJ4uGMnMECVO
 3vYoHhXBdMwTBSkKMLQnUmVuYXRvIEJvdGVsaG8gPGdhcmdhQGJyYWluc29mdC5j
 b20uYnI+iGcEMBECACcFAkdz2qsgHSBUaGlzIGVtYWlsIGlzIG5vdCBtaW5lIGFu
 eW1vcmUACgkQ6CRbiSJE7anHsQCgsb11zWdGOjW9EAXQlS7fRSqTzFoAnizH8mXi
 DPiFvkUN681FNLO7v4VniGQEExECACQCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AF
 AkDF+s4FCQpM1+IACgkQ6CRbiSJE7amv2QCfZ4C4yI9ZmAC7q5259RxaD3H8ytIA
 oKoxxR8T3LBOTM8geXitUXs1meL7iGQEExECACQCGwMGCwkIBwMCAxUCAwMWAgEC
 HgECF4AFAkJBY08FCQvIQGAACgkQ6CRbiSJE7anEmwCgnBDUfwqTUTb8nvqiTJAM
 p8pGJqMAn3F7sVSoMGz/6ANjybaddj1DWNgQiGQEExECACQFAkDF9qMCGwMFCQQh
 gxIGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ6CRbiSJE7al07gCfQR4/o0pczG67
 JgbOeFuuPLWLc78AnjuLx3kfjA2ddI4qLys0SthzaV0WiEYEEBECAAYFAkonWGcA
 CgkQ5Gm/jNBp8qDcJQCfbFtHt89ZwMYiEiblWvaYUiV3hs0Ani+yafsigO4MgRwt
 sdsx20E17lhniGQEExECACQCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AFAkxM23IF
 CRXTuIIACgkQ6CRbiSJE7allkQCdFmaopd9TUcKn7cq/+zfQZsl0yW8AoI32UJHy
 h9oW5kgYcTpNfgnpc4patEBSZW5hdG8gQm90ZWxobyAoRnJlZUJTRCByZWxhdGVk
 IHN1YmplY3RzKSA8ZnJlZWJzZEBnYWxsZS5jb20uYnI+iGcEMBECACcFAkdz2rog
 HSBUaGlzIGVtYWlsIGlzIG5vdCBtaW5lIGFueW1vcmUACgkQ6CRbiSJE7am6EwCc
 CaNgOvMN1RlSmJ7viDNqoAsrh4oAn3xfLzP0mntT7FeCMf/zmgH7rI5GiEYEEREC
 AAYFAkJdYbEACgkQSypIl9OdoOPXQwCfXvAeWbjFLcd1d7j45TSipB+VtREAoNZz
 Z3yGvwVOxyrcIFu9MpP6dcT+iGQEExECACQCGwMGCwkIBwMCAxUCAwMWAgECHgEC
 F4AFCQvIQGAFAkLSYEoACgkQ6CRbiSJE7anSAACfT1B0Mn0qTTFgC2cqSMK7HDMX
 3uIAoKir+tawlN5ZrDWN1jRqF7Adz+F9iGcEExECACcCGwMGCwkIBwMCAxUCAwMW
 AgECHgECF4AFCQvIQGAFAkJBY8cCGQEACgkQ6CRbiSJE7akxGQCfQ4gj70L0rbMs
 Nb3E7nZH0Z40lvkAoJEqABGLP3IxAgEvuOAsYf3GEKdstCRSZW5hdG8gQm90ZWxo
 byA8Z2FyZ2EuYnNkQGdtYWlsLmNvbT6IaAQTEQIAKAIbAwYLCQgHAwIGFQgCCQoL
 BBYCAwECHgECF4AFAky96toFCRZEx+sACgkQ6CRbiSJE7alPvwCeM5aBxEyj+xcp
 aXaTTPcPMqfM+LkAoI/Fuz0IhnG+r0wAFwW+SyTsGzJWiGgEExECACgFAkxM274C
 GwMFCRXTuIIGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOgkW4kiRO2pXpMA
 njGZ/MHhkjmdeFqHZcTPW62YMB/IAJ4/Ci6BMFPUWgtth0yL00q/xL3t5bkBDQQ/
 3yRtEAQApbe0v2n44Ryi3dUr3dZ6HruyCEj/5GuW8F7yz2CyZjsKcnkUC+nnsUn1
 8YOBQhGBei1aMvjs4j9xk8dORKxNcm6gsfAoApKS3TYUasaW2QmToJJRSFDVbMo9
 Bg4Ul/NbvlU1b81pu0Zww1OcJn3BctuKqG7mKGPIjA3KOYUfSH8AAwUEAIXm/DCs
 HGGIwJCHGDmEAsGIYJk9g2NWh2ObW/2uUblHbDd6h63gVWxd5Y4n1Ql9lNDqhaiJ
 l4BRAVEaoW4tK0JNZOhtf2drAPZsrOm3/Jc29D74T55lgOILJd2GQ9a4sy+OzzXf
 rYsB77C21vkIUi/pYZfTz/f/Ar1MT1mVj3/uiEYEGBECAAYFAj/fJG0ACgkQ6CRb
 iSJE7amGagCgsHfJXA4PvaIw/d2hHS9VlAh5Z6cAoKPyew4gQHo/5fCeBunSpIQb
 AanR
 =4VMy
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.31. Alexander Botero-Lowry <alexbl@FreeBSD.org>

 pub   1024D/12A95A7B 2006-09-13
       Key fingerprint = D0C3 47F8 AE87 C829 0613  3586 24DF F52B 12A9 5A7B
 uid                  Alexander Botero-Lowry <alexbl@FreeBSD.org>
 sub   2048g/CA287923 2006-09-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEUHm3YRBAC/bBl9E1saFAVuS5wtnBQ7BbXPOr21SBExZ3t+f8k2PG2SsKYL
 xNMAn1drC9UdbUVcQDzlGcWQONYRKj4kWoYSYNDOElwa7Rv/f4z4NnIhOxxT6G+M
 qQTFWj6MjrCVPZh+b5Y3DTdmNxuJq+Yf9+DFsxc0i+xhMrbbjuokWRFdxwCgvb8Y
 fLNYJqjf9V5hhnvt3K2/L9sD/2frMKR7o1Ie3CgQbhZgYLkGlMmAlyrKLamdRzRl
 AmjJ35mkIQ9iu36BpsUmVL9WPjy2sdep0FyRLRgu5/q9qhJxy31GsVYv5y9m9+px
 X+00CN1a/5g1d6gxLUY30KsOL8OXSqwmq36iJHEsRxFfs9NJ/dBui1cFW0dDNmdg
 nE9xA/0aX+9BPSiu/hXFa5A2Q8fCB1wOcaru+QzgbY7nWnse2PQ7Nsv0xEMkaYdT
 AqA9I/UyssYeRygD7H8edd24xy39EBAVLLCD57Tjye2fCOyWBIGJU7Jtc4b/DJgm
 6bP2bSscB44ybBmlWdza2sgui9D4beWQvEVZGgpsnqnCjJQDOLQrQWxleGFuZGVy
 IEJvdGVyby1Mb3dyeSA8YWxleGJsQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJFB5t2
 AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQJN/1KxKpWntZ4wCfWY5pLq6V
 rCpsAiGcIniMBUoueTYAn0b5suADC5pawqBP/Xbv95e69gDWuQINBEUHm5sQCADC
 7ynjQmBXd8q2Ei9ab6oO6Q4XbEu2eMLcm1C4b1cu8Riyb0bYI8fQ0JkYPWBDdgvG
 iVuDGHjLRCJm8LDV4VAhpkn6obPaDW2ZVf3urkAsCszSmv0jlEO+grOj48c7sLeR
 NpZX76FCKFtgHClQOSfR/9eoKFQh5jveWgSQ0gEW95gGQShy1cTi1XUdJdxilL6G
 GNBfSNgAFwQBkepgzjR853bVysoZEF0Z9MF/PZgmAXoPYTs54tA24LSETmBo5BjA
 yUTI6Dv4+jKXqmDphX6BjxeJkYxlKAyVBgNrKZahPoyOPd0FvMINn4MpOJdpq3sv
 PSXwbexIrroMJQz7nR9vAAQLB/95AIR3oGIOhDCAUwf18K0Uv+v2cKVhClHqyAGy
 zHjyoyEoSnhApWVXD2hNvqfxy37t5/5EzaU0mvC0GMpv0trBa9uBRk8GrXgILnzh
 dYjhbSPZStx3D/0lFBLHt9qYjFFQweKNun9coOV0TzdXigH5PFxiks90Qc/sfr6N
 v6hXA4MAe81zeEdQafBkreHDo9fL4i+GwxF9novXNZ0C+YNJ6+3wOIJwacCZ1bdy
 gWTM8pTa7vtvtA0Pk4CZpGKSICg/jDq9dZT+vaNGFnKvQOQv1RPNLs/QqfvUo4ZF
 khopn5yHXGJjLZp0Zds4MdqXLddUNHXW20Yki11eZ9NXK1KdiEkEGBECAAkFAkUH
 m5sCGwwACgkQJN/1KxKpWnuSYgCeOgBV4svD8sqNBVN467Le6aLzPxIAoKsNXerk
 njcpzY8FzVuY52JnLNP4
 =CUqZ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.32. Sofian Brabez <sbz@FreeBSD.org>

 pub   1024D/2487E57E 2011-03-15 [expires: 2016-03-14]
       Key fingerprint = 05BA DC7E F628 DE3F B241  BFBB 7363 51F4 2487 E57E
 uid                  Sofian Brabez <sbrabez@gmail.com>
 uid                  Sofian Brabez <sbz@FreeBSD.org>
 uid                  Sofian Brabez <sbz@6dev.net>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBE1/aRgRBAC9Nx9U/fn59g14PQ11t3prLTwrfzVYbEtPHWCNs0YDcB6G5M8f
 8OpsPxousOkEy7xMYd8Xfzps9OSppH6Jwd/+GEiwaAT5G4tJ3X17aak/9fUUsir0
 g+NohLUcflYszZlzLG01a8VH3AkDZgwkS/93IuQxPTmSX1ao56oHQvJ0rwCg2T3s
 +GgcLz5A+NJZ5jY4lv+R/OkD/2BPrDN6+B+e1znlnl8Nk0N0fmLjvYjgkJSA37E/
 zAUh7mtpQroSo5vdy0/ODbbLL/JmcS52I9LOC/aakykSd7aS1Lw5vDvhG+bLWB/H
 eYWC35PtI08XnFDaKaycu0TnayrggEOpNJnMfOSviGMsvbnksas03RCFeAd63APg
 kXafBAC4x7c6iEsUmpVTn60mOTf4OVGGA8CN00HpyXfDgb2exuLfwAn34qNaNcd+
 yVU1Hu3WPgQzQbTorqwi7zmjn80gmpYJjAW67zeeY9QLnuNdD93uJOIscjYltrl9
 Ft5+lefMyTCb04Uc8lLAvoiZ+T7G/uyyRZnJ/5vzgr7xIeCPQLQhU29maWFuIEJy
 YWJleiA8c2JyYWJlekBnbWFpbC5jb20+iGsEExECACsCGwMGCwkIBwMCBhUIAgkK
 CwQWAgMBAh4BAheAAhkBBQJPcussBQkJZyyUAAoJEHNjUfQkh+V+oTEAniEEpQyD
 8sYsmOPJA9Kj3rlGdHoqAJ40pp9l42h+6HsOfzWmNXEOfA0g4bQfU29maWFuIEJy
 YWJleiA8c2J6QEZyZWVCU0Qub3JnPohoBBMRAgAoAhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgAUCT3LrLwUJCWcslAAKCRBzY1H0JIflfkaDAJ9HOCFfC7uBDucx
 DraxT8X+3GNcbwCg1tl7zbIuEJj+7x6TkNNqR/6la/G0HFNvZmlhbiBCcmFiZXog
 PHNiekA2ZGV2Lm5ldD6IaAQTEQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgEC
 F4AFAk9y6y8FCQlnLJQACgkQc2NR9CSH5X6FTACgkK8Gxmb4hqgmk/lvrHqylgei
 tbEAniRE2s/taMog7hd/8sgTn5w4yYyluQENBE1/aRgQBACNIAMTtiB/KjSfsFIb
 n2vc4284SvwPNhdO0RWj0n7shgf6Y7F13nY/CbOFUPz1AI1SgJdRxGJOcfwVS3Dh
 3YisqgGpnY5bdc5TDo2XzqWF+JgkePKTfvTnP3P2sYzGC+oMlAQkzZaQl8rBRvXe
 vpxNZIW6EpGEsBYBnxd2Cl97mwADBgP+PcBxmCc4bosldea851AiCkHyMBR0f/0I
 ldbawynpYFOwZVytmrWvuWcp86lnsPEkmBuOjBbK5WgNJzIO2XdmtaNuN4Ll9dHr
 AEcLFDMSerNkPAvkzMzNsu6L5ZVrBtXQr6omN8DLcau+6uRXq3wZrQZ2o97/pByP
 nmxopGDMt16ITwQYEQIADwUCTX9pGAIbDAUJAeEzgAAKCRBzY1H0JIflfhBRAKCu
 puEkAZ1svXS/c8Ei8FS70bQIlgCg188vwbrylTHwyH6aIlwU2lIqVXA=
 =4ffD
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.33. Hartmut Brandt <harti@FreeBSD.org>

 pub  1024D/5920099F 2003-01-29 Hartmut Brandt <brandt@fokus.fraunhofer.de>
      Key fingerprint = F60D 09A0 76B7 31EE 794B  BB91 082F 291D 5920 099F
 uid                            Hartmut Brandt <harti@freebsd.org>
 sub  1024g/21D30205 2003-01-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.1 (FreeBSD)

 mQGiBD43wzYRBACpuUuayKjLpf+tMndpkOwxmpaPkLFxiA/dI1iWjY8I9ItDLZyM
 LqgYXemOOga6vbTvIUq7Bjzl3oR72kjNX3J1EljsMj7dxksoY5lflEMdxAyzdVoI
 +/cu+cWiP0Z9unKpYmTk8S13sUTtZc0+ixioaUvHzSJ0nxQMpIW7dqCDewCgmSVR
 6i2aK4oImAa9+ZbCxg7fCxcD/2xgAAwJSmaiaV/0As3A6IO0eSkbkzFSkMF+ms7C
 OtrHr1zmdM7h8MaGg/jw0Z6eZalYD7AclLvXDW0rxCMFwh06SC2axUTk+aE+vcys
 fuSk/HJtnktHUxZDgb28jf4X6zfcdTKE5dt5a9w3XHHPgdTXjGn7+sQNR4CWDcvq
 1qNQBACOqNxJdCC9tDLycRoupNSwzldMKVBZ2/JdQjfCIq6d8HPMNVLU8PGlDjoy
 RN4QkMZLbwV9Gaigk2DR6vvi8meARADt53x4OjS4W3O/Pc/Aj8rsUcF2mRU/wiJC
 8VkQsnaci5GuaYAssgKroOTZQzxHkOjbk4FeQ70C+wxovRsTh7QrSGFydG11dCBC
 cmFuZHQgPGJyYW5kdEBmb2t1cy5mcmF1bmhvZmVyLmRlPohfBBMRAgAfAhsDBAsH
 AwIDFQIDAxYCAQIeAQIXgAIZAQUCPjlTfwAKCRAILykdWSAJnxpyAJ9eHCdgiEt/
 +Z5Ms8Qe3ekWTYTy1gCfdVWLF2MrZNL/MYOgBhhex70gKzu0IkhhcnRtdXQgQnJh
 bmR0IDxoYXJ0aUBmcmVlYnNkLm9yZz6IXAQTEQIAHAUCPjlT2QIbAwQLBwMCAxUC
 AwMWAgECHgECF4AACgkQCC8pHVkgCZ+BBQCeMpgFMMm4siEtrzqdisrRaxJJvosA
 nA7UDwOVoHDZaAkFD0HNcUsTkO3KuQENBD43wzcQBADsEH8o/9tD01ScNfhoMbK4
 N7GsIJNFwQf0+MQuplpXQx4eBpI9ST1ZoAUXeM1j4jk5PIAMJzt8w6BAGgcU4iUG
 Un0R/QMTTXVkfovdSe9FW7/QtUjRtTQz3QOfZTkekYauFIiW+lSmH3BDwRXhpKgM
 e19eQZYOPRfLCnLLwqdr9wADBQQA5tIdzlDS80CNZxxoFDKlvOghtrIzPG/wIwGV
 at2clZMLhXESxDxDkpwT7XP1GRLyN/Plh/4k2vwxni7nOJ8BIch7rRh3E48TJat1
 iZ99SFc9iibED5hY/HrKlc/kphFnUuEr/kk82UCv9p4/d2V1+8v1N+Cy2jCGvrip
 IQ6v2fOIRgQYEQIABgUCPjfDNwAKCRAILykdWSAJn0J4AJwMsjovUA6jCJRMEzOS
 kIakJgqJvgCeNLKyNEkyJZh0wZUcEg1zYLRYp/w=
 =+h/9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.34. Oliver Braun <obraun@FreeBSD.org>

 pub  1024D/EF25B1BA 2001-05-06 Oliver Braun <obraun@unsane.org>
      Key fingerprint = 6A3B 042A 732E 17E4 B6E7  3EAF C0B1 6B7D EF25 B1BA
 uid                            Oliver Braun <obraun@obraun.net>
 uid                            Oliver Braun <obraun@freebsd.org>
 uid                            Oliver Braun <obraun@haskell.org>
 sub  1024g/09D28582 2001-05-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDr1p9kRBADrTCmhk/+XY9Jc34z36wp8zy1rbxGBy80enJM+aFPHks/iYPxR
 WA1tB8BEdGPJliUMYcNGeo+ZX3As1+xxo7NJCc7Zd7Gfs1+fMOXPwKGt02mr+Nje
 +nF9XMfdGPP0IcK9lzkVeEdH2JP41pS2SmrMwsTE/eGv9pFEnnmRxeuFcwCg1RYc
 f8freOk8v68+J99mCUUAGl8EANePcxWbRYgH5KulTzE5nYIt9WBn247T7goE3yn1
 R2VddSXXGhs0byRxXpNAcrysyGshIQY0nnZSB5AUt27tZJucoT1p/BtBFQ6hLCQe
 kaIRL0sdXrVJZn3/Q1G7vJWD6wwS35dro5PsYYPDI+qL1tISlWHZNQ2Y6jGdqhc4
 Len0A/4nV78yB7cLvHksxwvbdtVVn8eVo1B2U+/b4cXhevHAl8AmNN+usmEodxxe
 8FYWV8jY323xiYSMrCpYT9FuD3r2qORMOGWpg0zth6BkhdgH1z2i7koKkGIfc4mV
 6oea3ep5uaU82r1sGe7/cVzMGUwzZq9xizwODfbmSW6E+vdAjLQgT2xpdmVyIEJy
 YXVuIDxvYnJhdW5AdW5zYW5lLm9yZz6IXwQTEQIAHwIbAwQLBwMCAxUCAwMWAgEC
 HgECF4ACGQEFAj4YDoEACgkQwLFrfe8lsbr7rgCg1K0Zl8CPgrQG7BEaZqzSiIM6
 IZAAnjz5ifN2xHJSOJiLYloidZsikNFQtCBPbGl2ZXIgQnJhdW4gPG9icmF1bkBv
 YnJhdW4ubmV0PohcBBMRAgAcBQI9Y1sqAhsDBAsHAwIDFQIDAxYCAQIeAQIXgAAK
 CRDAsWt97yWxuv0CAJ9lUDzKKdaCp/8mJjlXLjlSZaaJTgCfXIqQr58p5MSFkVdL
 hLbK1P1l8FK0IU9saXZlciBCcmF1biA8b2JyYXVuQGZyZWVic2Qub3JnPohcBBMR
 AgAcBQI9Y1tFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgAAKCRDAsWt97yWxukHLAJ9u
 oP9cIdBXldt7XfQ/5xK2fUsHPgCdFIR7cK0l0spO2xjzbzhoPPVShbq0IU9saXZl
 ciBCcmF1biA8b2JyYXVuQGhhc2tlbGwub3JnPoheBBMRAgAeBQJAViQBAhsDBgsJ
 CAcDAgMVAgMDFgIBAh4BAheAAAoJEMCxa33vJbG6MhIAoJ3dqHVStQdGzLPTGbtP
 Zq8wG0jmAKCzMo+si/LFBZAnOqYN3g2yVOOc6rkBDQQ69afaEAQAlaNzX3ql+XfL
 obAAIWW/TdY9Yh6r0fFFoK2Mdt6vungWhzSWb63DprREXyW1k6QbPQxL+pAfeCYZ
 oXQuNBmsUpO1Xn6ViEGRd53D07sNJfBrE/5w3hwL+c9lWSJlt0vHKzFtPAmqenBd
 fA0fs9afiew2sHhk/jz/FAwWcnF4aC8AAwUD/0upFaHEZsf8sVmSEew5tAtZ6i3x
 zaBjhaDv3sYobza57S8mXYhscK+nNHx3bP036wJ0z8ypqb5oCqGzWUkj9OpYZs0u
 Tbpla/MoCI9N1Ch8LfQkWPuvYjHF6LSY3wpZKaNWfeZPCmMT5XPqjuxDB1pCmnAU
 OizLyimZU2Y8tfQWiEYEGBECAAYFAjr1p9oACgkQwLFrfe8lsbqmfgCffgEhvau1
 1EUoZmkdnzUg2rbKYnQAn1fVK9TjWnJWQ/YDOn9hmMZWYjib
 =wrrS
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.35. Max Brazhnikov <makc@FreeBSD.org>

 pub   1024D/ACB3CD12 2008-08-18
       Key fingerprint = 4BAA 200E 720A 0BD1 7BB0  9DFD FBD9 08C2 ACB3 CD12
 uid                  Max Brazhnikov <makc@FreeBSD.org>
 uid                  Max Brazhnikov <makc@issp.ac.ru>
 sub   1024g/5FAA4088 2008-08-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEipViERBACsCTYd7As236qQw4dG/xB8p3XbN7pFP/C4yjRJak2QZfsOQ4mR
 7liBgXc0FevU6FQOW4XrcRbQeGFlRE5pb3idwhTKNc58TEifGM2s2ZGgRrR0aIF+
 9s5ZbVNp75FgSsN+9ksAOmz1nSj+M9Ikz464YvA3bHvKP8QQCpPpBgiuSwCg5IBV
 XSvep/e502PHqsiP8H1zGjMD/0xDwDdLfnN1R5tuNDfZEN09BSRlYYFPmMlP177i
 DBCF/2gF1bQ7KL42qBCr49ngVMAEAUlmZwBIN0XvfGe0KWDvc4G/CYqcOiWhbBEA
 pvtJZHE1C/kIRFS/IiM7BVmkdVnn1MzJrGSVPAF85e/iyc1K05C/qCuulqm1aLpf
 8dOeBACDvyvk2uE7R11REnKa6FKvzS2X32YclSM2sApwl+LnFO9eT500Rxzy9ldP
 jKlKR/dO0DwUKxnUO6DOHAEZzvutx1f6ZJksXk/0OsSNkn7+TIt3pKb10udpcCag
 k/ik+o7v+2XB7BlydRBPwcaJE4fq+CWyAbgRfKROetwfTI3ItrQgTWF4IEJyYXpo
 bmlrb3YgPG1ha2NAaXNzcC5hYy5ydT6IYAQTEQIAIAUCSKlWIQIbIwYLCQgHAwIE
 FQIIAwQWAgMBAh4BAheAAAoJEPvZCMKss80S1+cAn0+WKUu5TxrXSF4N8WlRK0mU
 1tcdAJ9Fcv54PisOdQiVUSIw25LqSqWyJbQhTWF4IEJyYXpobmlrb3YgPG1ha2NA
 RnJlZUJTRC5vcmc+iGAEExECACAFAkiyz/wCGyMGCwkIBwMCBBUCCAMEFgIDAQIe
 AQIXgAAKCRD72QjCrLPNEjtdAJ4tcsvvos2CoXmZsTJxuVF0RaEwigCdHgBapPWu
 MPyv9FLRzdWelOfZ3m+5AQ0ESKlWIRAEAOzibN5tPXiGKAHPwaQgnVQiaKv/7HUr
 FVfqycyXJC0/nmJ59UNpJ+0Y4GDwDRYqWqGyyd9diKAUomUwbIuQ71BUibmIZQS0
 3v0jgcfnJAhgz7EFGewgQLHsYwzwTDtPNQCqxDEUwDLKla72ksuodqzx92Dj6SSP
 AfFN/6B2bvQbAAMGA/9XFhkt0SAqXV09CXs3QuHdzuJ0PLadaz31bWITmSLqW2FU
 /EwXt1615g/E/qIwa1PzjZT8JQDAEHKbT5XPXtTzvOAUp8JK2wW9P6JQ6YPT14Vy
 /9PiMvLThxNY3zWjWChWuEf8zohd922OSqlSE8vgOm0H7XUe480/FeP3RP1EKohJ
 BBgRAgAJBQJIqVYhAhsMAAoJEPvZCMKss80StqIAoKpjMeYK0fSi6GpfIaojuz59
 eHHiAJ9ws2o67xPKbWgdqMxn4MfLK+ojbg==
 =m+ns
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.36. Jonathan M. Bresler <jmb@FreeBSD.org>

 pub  1024R/97E638DD 1996-06-05 Jonathan M. Bresler <jmb@Bresler.org>
      Key fingerprint = 31 57 41 56 06 C1 40 13  C5 1C E3 E5 DC 62 0E FB
 uid                            Jonathan M. Bresler <jmb@FreeBSD.ORG>
 uid                            Jonathan M. Bresler
 uid                            Jonathan M. Bresler <Jonathan.Bresler@USi.net>
 uid                            Jonathan M. Bresler <jmb@Frb.GOV>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 pX25BMHqkEMHAxahVagzguPetlTIHxHGRSH3lg==
 =ttzj
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.37. Antoine Brodin <antoine@FreeBSD.org>

 pub   1024D/50CC2671 2008-02-03
       Key fingerprint = F3F7 72F0 9C4C 9E56 4BE9  44EA 1B80 31F3 50CC 2671
 uid                  Antoine Brodin <antoine@FreeBSD.org>
 sub   2048g/6F4AFBE5 2008-02-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEelsqARBAC37tcs27BitWt9YeIYmpRNgtRH/ndAm8ecJK+7IuEqo1t9IglY
 Uy+lI1xW1H4LrIbmSKmwfg3Gj3lm+12avQ8mf0vVbl2RVxfOQZY2C127Qv6Mg/Ox
 Fwxb7UCWzYi+XAf5XVHyzKLaLq/S56serWDX+mGY83kLhVKXy7pL98bwewCgtr1D
 miY3vAu1NMoWPuZ/2kvLLh8D/i1Zisp0EE5B4QjRFbaSUzfk3tImTKLQtbj4F3S2
 Zo4hh3IRYLGq2OMJ+gH5c5KXMhaxqiK8XCO1pHNdCyaL1PZDW9s0sxPiVv5DDxHU
 Lm1BXyTIJyuAC8KVnMWIfHVoqIX45m0Br6IFyiHU3CFBSsarkC8088HViilTYGd1
 8InNA/4+wVDMqnht2/YeMqyYevKOGw69Dqe+1jeTNOg7h/1EOL2Sytg9EIfyTf71
 IxJAhsKU1ibjAMubERoTN16rPgTx4yrDtRSdfbmnHxrreih6PKsbiaKy76cnYaxz
 sz4VontIIaH+Ye+VmVIQsBS/QIBBki0j9YAzNDcJqCdWKcoeb7QkQW50b2luZSBC
 cm9kaW4gPGFudG9pbmVARnJlZUJTRC5vcmc+iGAEExECACAFAkelsqACGwMGCwkI
 BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAbgDHzUMwmcdHwAKCrHa3q1ixEdvmpU1Ny
 2SpQrmvslgCfef8t/hiaMLSuyZEsjR1x8cp6hiK5Ag0ER6WyoBAIAJScQspDgp5D
 P/K1ZdT86Ux7Nv2UhZilYF0LPkvZBdfTC80RpjrUvz1m8ZObbCsUO5Ag0j3+Wtms
 6CVaQqfT2RoRyjcnNVJGadWqKmOWVkvZYzHQPl8SZNENYurFFhfy4MCxXf5drkH3
 CV5QqY1onhuvsfl69UZ54e6X3+DjQ3KdtqyyqUez7Qe20ZdIcgC43HcEuqAbAOxm
 /K0zDNvHpjwgleNoFBd8GZfD/biD9EMnhiCBq5rS8Jqh73e9wLtkMfssQunA7ELx
 ZVuC7M5dBBMjRUp0dswAKAgdcaLA0D1NGUNSno35Rzur7sluufivfjLwn+qRLRBM
 FPR+ggIO/Y8AAwUIAIBR74TtznV04mci4vHDds4HX0RI/hxawivtanEAGZvV54hS
 XUnVqpIVgTqKCtmS3gqoQMQBf1+25Rq7UJlVNl4/AoLcl9ZfR140hTSd888OwcB2
 MAHd9CgUXjTHcFQj8tXFhPiWY7SfFwheLDFJUgCqB/ilgPf1XGOYuZfvBxkyXd8p
 TC2sx4iFSUBbY4S6UZN8uokpRZDbTHUPgLHAoOg1lzrzUvZuknEzbcBDgQoVwLWD
 9UCZxl1wxly6oZkq+uggXg7zxWuE5CMdWtz9/FA3CRtRBTqZnHrMM9hlHGgxTYan
 bBTs793WWsKf8rhTRqNDqQdN07YxsmTi3129OSeISQQYEQIACQUCR6WyoAIbDAAK
 CRAbgDHzUMwmcYHKAJ0c3chle4XcJ5c7+0odRWmOZ8m0IwCgndOwp3kjZUZFbAu0
 AxHti2KSFZc=
 =HznU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.38. Diane Bruce <db@FreeBSD.org>

 pub   1024D/E08F5B15 2007-01-18
       Key fingerprint = A5FB 296B 5771 C1CD 6183  0FAB 77FF DCBE E08F 5B15
 uid                  Diane Bruce <db@db.net>
 uid                  Diane Bruce <db@FreeBSD.org>
 sub   2048g/73281702 2007-01-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEWvrjsRBADPHOAUGtAny5WUa+5+6EFo83DOSCxMWqECyfgGcX0fLdQFTlNC
 oQwjuDPJoUX3l2U8+Pr0PbCnU9dAv/nfR4mefBYaSYKrOkKR2JMCUu6Z551wJIOo
 G65q410cwz3scHJ9m52iGRbZoz99+AjGymA/V4zHYV3phF+hXJKamS/DLwCghPo6
 Osexk+odFXJ+Yq8fz9MdvaMEAKPsHsY9gWyzmVtQ8toM3yudoZcjILTsNbX7oDM4
 Q0MWURvY1JkyH5vQ0l/BbJH50CGzFHb1CvDHDyR9wx74U4q58eRnx+HzSC/UukBT
 e/SOBwXM2MHv0D6fHgm7Tepwiy2uc7St5SawiJXEW5XdY2bleovVDanPvFhv2pSz
 z56IA/9O+rsGqWmgutoU97HyoIrHkY1aMAbcVkBocooeioXdm+V4AF+nlIp3pZQ+
 7YS0X7JkyQTRoxvGsGawjktbDGAzBFTYazAS2eKhBE3wyWME/14VR1OVG6EAvli+
 fL4tVUi3xBHDdb8Pd3PzWt1CduBW6RIs2NCrv5baMO35RQo71bQcRGlhbmUgQnJ1
 Y2UgPGRiQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJFr647AhsDBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AACgkQd//cvuCPWxUTzwCfcKKh+vsTusry/Ait8DtdpUse8YMA
 n2URXcmflBA8OQ1JrFFjiW/5N3iwtBdEaWFuZSBCcnVjZSA8ZGJAZGIubmV0Pohg
 BBMRAgAgBQJFr7DmAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQd//cvuCP
 WxVIvwCdFGub9b6qt+L50ePcYnLy5sthiZIAn3PPdYTUPdXV6DfOtKFPcx6ArSHm
 uQINBEWvrlEQCAC5N9u/zG1ahYsV+kiytZ5Mgt+I+yi5aSCAQPThSGXsVptfZRW6
 0LVElbLL2v+r6ETRK92QrtZLSqM51sKWY+lyJfxRjuW2AsVAL6/NgV7bTuYs2etL
 vo347XX2ff7DrA07mGOAPrer9naBlaLPwWggWO9bU8HzphbL+kI15T0aUXLwIdeM
 LjHOQAypJ9iFsv/OY2A7epAw8zK4LCPA0boBQY6CKcFV9gxDl/kmsqobvBeyAru2
 jFAgeFytIJsP3O1kA1aKEFDolcoPwlVUQiAsFvNtUSX8k8r1HKfQpnjuSCXLU7jE
 82X5VWSAcoX/PyaXDY7AmHJFLpZGyGIs5sLrAAMFCACQPyOQmX0iDjJW8OCpmgE5
 yDv3Jedc/w4546OLOC4aT1wclNZh+iHR2meuFgm6J1bv9h78R6dCkGDJeh8MTCtn
 d9J/IDc/QElCqqndnn5XmXjtGqukXIlIg7iGF71T74K/Nb0Lepb9p9BQpiNqudHJ
 L+KqSAjFT03vfpJab65EpyeOq1ZIswDIWMRb2BFQs/El8rX8cXOSzTrKfWSamRw/
 6l1aBwsmqi8sW23GSBYCd7FKQADVKIu7EN68QT6Diyd9CB0s4U2DjHrr7snncyUF
 A9c6FTX+tIE8NXJ7ku40g7T0WnX8jpuoagdWpjlu/NS2cgaK3n8MwrL5kYYLc6+O
 iEkEGBECAAkFAkWvrlECGwwACgkQd//cvuCPWxWcygCbBuZU/pJ2tZXVsUrFSRts
 8Cvwa9MAn25/zFXyrtEDo+1imX3MjKZrdJC/
 =vYnO
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.39. Christian Bru:ffer <brueffer@FreeBSD.org>

 pub  1024D/A0ED982D 2002-10-14 Christian Brueffer <chris@unixpages.org>
      Key fingerprint = A5C8 2099 19FF AACA F41B  B29B 6C76 178C A0ED 982D
 uid                            Christian Brueffer <brueffer@hitnet.rwth-aachen.de>
 uid                            Christian Brueffer <brueffer@FreeBSD.org>
 sub  4096g/1DCC100F 2002-10-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 B7mWxE+O/VwCRKNHOACfYuq+wytbP9pFJkZQwX1rW0lWgvuIRgQTEQIABgUCPxVe
 hQAKCRDwI/gLJoQdW+9AAJ9VvvZW5R7ppcZfYrJ1SZChveCnvQCfR2sWHPSbzGrp
 sii0DbkB3x4GE6GIRgQTEQIABgUCPxWL9AAKCRBTtrgdwTzuB+GUAJ4yxAtvBEqG
 tDKsySqR2Ywv7xcRzwCfRQBmGdzar/OeLVHUziwduAoeShWIRgQTEQIABgUCPxPz
 IQAKCRBL7yYkIt9Ah2GWAJ4kpQG83TGrnIR0p6Web4T1QZjBsACgiBqEfjSGxngU
 cTRrQxx/bs8TX6iIRgQTEQIABgUCPxPzKAAKCRCVZB9rJT5Y45ftAJ9fNjIStddg
 GjgMs3jcGo6oak8QjQCgq4Q7ivzJ2HJUawLk0hOM1p8BT3eIRgQTEQIABgUCPxXW
 bwAKCRBBufToW3E98CEaAKCAodx0EjodNg5VE5AF3oPAVPlZSgCgrIh3fheMXgTy
 32bqzny8BV5yjhSJAdcEEwECAMEFAj8V9CqGFIAAAAAAGgBjc2lnbmF0dXJlLW5v
 dGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0
 L3BncC9zaWduaW5ncy9ub3Rlcy5BNUM4MjA5OTE5RkZBQUNBRjQxQkIyOUI2Qzc2
 MTc4Q0EwRUQ5ODJELmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29u
 dGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJEBmiaAmIOP2URR0IANjcbSgJNDnmGxUg
 lEcaoUk6QEeo9iNa11OJP4+Uv1XXEEbHiyWpvALvzQ6v7Vwhofo2KGLVCTEhZHz7
 MVIl+0c/zbCd7v99iOPySRRN3DhJvqPnD22Kc2KTM7WknZSW2WOKd1fU29vENFr7
 7Z59UPqiB55zbXIobObbJOwu3x/vRNC/5bE4t2H7zLNRxmeNKt3S/ch6odJdCM/B
 lYy0Df2REc2s2EVLcOYsL+RXwWQp33BFt4/YqmGJQUus2nxz6GraY4J925p2S4Y7
 3RcTDcWZTAeexwpxHSw4VmJ5Vupa9Jll/vAdurLUVCDd4Dd1pGJAnsHsLqD5/zdX
 YIxNST2JAQEEExECAMEFAj8V9DuGFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBl
 bmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9z
 aWduaW5ncy9ub3Rlcy5BNUM4MjA5OTE5RkZBQUNBRjQxQkIyOUI2Qzc2MTc4Q0Ew
 RUQ5ODJELmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9w
 Z3AvcG9saWN5L3YxLjEvAAoJEKseS2BGdWse/3oAn297V8QlgeWSsvqfNYPKpqWp
 OGRhAKCIuuT96Pn38WtlGOBa7zZrECTNvohGBBMRAgAGBQI/E7DoAAoJEOfJ26/j
 Vu/ApXcAn0Czyiw503iLkF53c2qHJ2HUelW7AKDDiDT1zAGHdsdcaH9svMxWOa0l
 dIhGBBMRAgAGBQI/Ft47AAoJEDu/z3e9iwUNnssAoK6lcUf4GkqjwYYqH08P1J+r
 HaJHAJ9c9pAx86VmCaV6wQ26cKLBKUNdgohGBBARAgAGBQI/EaO3AAoJENAZ9e+Q
 J6uIx6UAn11HUO9dUXyAcUXqx8lyaEa20cW7AJ9kMTvSqDHkvci2MhcUkGzjpUv6
 xYhGBBIRAgAGBQI/ERsxAAoJEPS0sMx5fr+r/m0AmwT/dtstpPJs7wEOejhbgGqm
 vc/PAJ9Ynh+eN+noydvRINXMXigzuuoX1YhGBBMRAgAGBQI/F9G0AAoJEJEfSuaG
 oRjmlD0Anj1mLd5E3VlkwvE2/tjgs6fQ7Zy4AJ0Z7vIFQjFnMIGJwhFqYsLbKsy4
 +ohGBBMRAgAGBQI/GE0WAAoJEBp0fkUw4LnYvPgAoIUWj1ZA98QOQqcjUoC2XYom
 fJl+AJ9O71OiZXEgbccf2oQeY0B9mD00IIhGBBMRAgAGBQI/GX6nAAoJEGZmcXrb
 g1Z57xIAoNUVFg9YL70dNJk6t9ktEEjzb2QrAJoCbcLt/dEXOcWXWbY6hDrpkKro
 oohGBBMRAgAGBQI/GX7LAAoJEA2WS2ZXDm3qO3MAniLwLC8Yy9QYRDWNfPNgkOhO
 L9lVAJ9AL3wmTAeNsmupBo6rUaw+gFw4sohGBBMRAgAGBQI/GX74AAoJEE4CrK4d
 1rOArlMAn31ZFiAi9SPYMbK4MUgJjmVvF0znAKCPp7dwDl1Xi4hTigwPlgC+aqvF
 o4hGBBMRAgAGBQI/GNSkAAoJEM6KedeYAW3H84gAnAu3PMqTcX+JptdB37ZOmijC
 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
 azal4I/N1CX9sOu/2R/ABgCeMyo5M0vG06uLFkVKidTP0t838QOIRgQTEQIABgUC
 PxVehQAKCRDwI/gLJoQdWzvhAJ90ieEwIPKGXlPEmCnLlaCfGAhpCgCg9H/SGzS4
 V+jAaEqmSIvltHTf/c+IRgQTEQIABgUCPxWL+QAKCRBTtrgdwTzuByH/AJ9S0n5U
 egb5DNIUMt05ImWfQ+uWEQCfTRu3SC9Yn/YGW18W65mSeoGEkqmIRgQTEQIABgUC
 PxPzIgAKCRBL7yYkIt9Ah08pAJwMs9tctTxNv/QGhPmlonaQ6ugxcACfcTmKFWST
 9tpWQGJYMdPIymVW3+SIRgQTEQIABgUCPxPzKQAKCRCVZB9rJT5Y4xYwAJsEa4Zi
 Ib+DJ3f1K3KX7ofvADBQ7ACgkAR1nIokfD6rFzMhfWGCIfmgXU2IRgQTEQIABgUC
 PxXWdAAKCRBBufToW3E98CnFAKCH+yj3Fo+mwbSpXoHJmDk9pd+BfQCfXgANpSPQ
 qib0Wtteoo2PPtgiMi2JAdcEEwECAMEFAj8V9DCGFIAAAAAAGgBjc2lnbmF0dXJl
 LW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250
 YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5BNUM4MjA5OTE5RkZBQUNBRjQxQkIyOUI2
 Qzc2MTc4Q0EwRUQ5ODJELmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIv
 Y29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJEBmiaAmIOP2UEw0H/RVZqajm10VQ
 cFpumvPC/qvWRIxZdQASPdMGKAASqPnrNQmfqHo/3rnU3BoquWWlZikwn22BGkuR
 aytvAI+AAyrrkA3R5HgwlIgtCQpTzljJPVEOA261BDlXLvttZipW6DvjZ8+s7QWW
 fKZYwbRCm5mcri1JQAmxtjZkK3E1K7yfDL7onLrHDx6H1d0njgN1j5K/82m3e6eF
 YOoi0Qpq17yH1HggGXx04rGgn9yaBOTmP0fJPsfnzWo4+GIfmQjfG0rrJhdakRgW
 a1JO4aI+goaxu6KSTFhpOnd2Rw34bkQICL6jZC6G4MtVSao0IsVtNiP1YcBbv2Bs
 0ueQduyvaJiJAQEEExECAMEFAj8V9D2GFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVz
 QHBlbmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3Bn
 cC9zaWduaW5ncy9ub3Rlcy5BNUM4MjA5OTE5RkZBQUNBRjQxQkIyOUI2Qzc2MTc4
 Q0EwRUQ5ODJELmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFj
 dC9wZ3AvcG9saWN5L3YxLjEvAAoJEKseS2BGdWseZeQAoIz9KlFMtajFGHN2dxGK
 sG6mO3oCAJ0X8Z4DETXm/K8ILQ1Z/pP4RodIP4hGBBMRAgAGBQI/E7DrAAoJEOfJ
 26/jVu/Aw+4AoO4wBXNHbVE/rPsMbKPufe7Ec31YAJ4/1ioDRk5fR5TEb+vvXSW8
 nofiqohGBBMRAgAGBQI/Ft48AAoJEDu/z3e9iwUNDfQAn2WxsohG5n9Aq43Ct95k
 koqBFturAJ9+96R3ERPGKh9swWnJ9rBlkUFGZ4hGBBARAgAGBQI/EaO6AAoJENAZ
 9e+QJ6uI8fYAn2tnCEZv5HogN3Abkr0XrmYL+7KPAJ9H4zrNiI2xha68apWA5qlV
 LqyHPohGBBIRAgAGBQI/ERszAAoJEPS0sMx5fr+r7kYAnRw1oK6hqhlDWUHxmPRW
 VbnYP5NxAJ9GDLHgyWasYFj4rFsBHleIAmu+yYhGBBMRAgAGBQI/GE0WAAoJEBp0
 fkUw4LnYihIAoMSxOoAUqwrOSZZfAT1PN5tnh7X6AJ4pe0/QNg+zIB9/mvZAJbvg
 bSHfsIhGBBMRAgAGBQI/GX6qAAoJEGZmcXrbg1Z5GsoAoNPTcGZB/zlLarfBlJdN
 cyTkaTN+AKDAj9c7kZqVwQRvfgO19viKFqOuEIhGBBMRAgAGBQI/GX7NAAoJEA2W
 S2ZXDm3qNhcAn16xPNxTE4U9eqCCT26dCf7VqAyzAJ9RT4KTUEUGKseS8f13FzTo
 T1ueoIhGBBMRAgAGBQI/GX76AAoJEE4CrK4d1rOA1O0An1WBdZaCJRIthN1/ymMm
 Q6HnRPotAJ955kGEkWDp8s5SL6NDI0zBBkGvVohGBBMRAgAGBQI/GNSpAAoJEM6K
 edeYAW3H1z4AnjSEKHleKRyOb/kG37ko+eIB9FD2AJ9GQ/q0P754ZtxqaFUiqHAJ
 NHkKI4hGBBMRAgAGBQI/GvN9AAoJECyYPlrSilXWwDYAoKUwfgKjZAsl0coktJZv
 14OHy3tRAJ9VAy9BEUSWIFSaKPsC8WCrs4eXjohGBBMRAgAGBQI/HE8FAAoJEHFe
 1qB+e4rJ2f8AnjihYtaFRbsEwGtuE9C+5wjKZYkEAKCGJ8lgK5447GtFvs9sc0Kk
 OcJyxIhGBBARAgAGBQI/FbTZAAoJECole3fGNyjSTqQAnjzG6RQUZB2fHuOOv97X
 PEUxf6VyAKCAu1JdTxOl7uvOSgzX/l5hhZ9SHYhGBBIRAgAGBQI/HGcoAAoJEMgP
 dFmtwp7NENYAn1wYpBppW2AV2J+LS+4UqyzwUgx+AJ4rmKBgfE8OkM1QHOiYqpy0
 MTkL0YhGBBARAgAGBQI/HanwAAoJEIsCZlm2jV9/1N4AoI19E9A4I1vz5at3XRlR
 EbRDIA+dAKC8ih/vVhLc8dZ49H56mvqPO4ZIjYhGBBMRAgAGBQI/HasHAAoJEN56
 r26UwJx/dQsAnAisenAR0GJXx2M1KEZqOEVN81+IAKDi4FQbYnuBNYkp3mmut5CX
 SSpeKYhGBBARAgAGBQI/HagwAAoJECjdsP0Zyba6/0AAn0j5wJOnIcQfDKStVSoi
 QcKv3qxEAJ47GNt06E1oPDpBFSyHaX0EicKupIiOBBMRAgBOBQI/FzFmRxpodHRw
 Oi8vd3d3Lm1hdGhlbWF0aWsudW5pLWJpZWxlZmVsZC5kZS9+bW11dHovc2lnbi1w
 b2xpY3ktMjAwMy0wNy5odG1sAAoJEN6Fg/i9v+g48LIAoJ9sjzxj49V+IkmTST5q
 N1rn2aueAKDSswvpJjjC4WCe0fCZk8NvnCOLP4hGBBMRAgAGBQI/HsRyAAoJEPhZ
 kLAkiutzRcgAni/Tdya62QESUwbPY192zUnpZCUZAJ4p0eMJaTtAFgfUz6k1s9nx
 B9hHEohGBBARAgAGBQI/HoSRAAoJEG8ji8JP2loMP8UAnRgUejZZNVhjDeuOy3cH
 M8UQ2fNgAKCbpsSxJs6JFR+yS/N9jx8xcWKvyIhGBBMRAgAGBQI/HuFWAAoJEJSb
 JewHRHJS5fIAoIvtsVi2+q1/HNomoog68sSbV3/8AJ9lafbGsCje3wLB59bdpLx6
 bfvcCYhGBBIRAgAGBQI/Hw1dAAoJEOdNKbgr4W0B8hkAoILgUU+r59s3zs7CL83+
 W27m+AxgAJ9gnOZb4OFx0xRKGXWI26XyL6cQFIhGBBIRAgAGBQI/I5jUAAoJEBig
 zI1XBqS0N0wAnA1VvaIzKG9Sx1YRKvtT6Y7kGhjTAKDbqwjDwn0D3Fzf7NYSs2LV
 icJVAIhGBBMRAgAGBQI/JXRuAAoJEPK1Kl0KX7aHFCgAn09gsKJwPCNoEwVSnGy5
 UDc/sVfSAJ9cc/IJ1M0xWIddrgpzP2O5+V+4W4hGBBMRAgAGBQI/JuGsAAoJEIkh
 tdzNFaiDmcQAnRQnqsobCou74MLykzwtmFlZUZbhAJ0dmMVtHYC74K2zt+lJvz49
 /G1YfIhGBBMRAgAGBQI/JuG3AAoJEAcXdOAA2M0WDRAAoILMsRMzn0aCdR/d7TVe
 39qvyzLMAKCpgKEyrjeLLn85zYQt/mEHlJBF+oiNBBMRAgBNBQI/J8ifRhpodHRw
 Oi8vd3d3LnRyYXNoLm5ldC9+dGhvbWFzYi9jcnlwdG8va2V5c2lnbmluZy9rZXlz
 aWduaW5nLnZlcjEuMC50eHQACgkQpHnNxFq0YGrGIQCgpqtvf2JAIBFJj2ZEAjar
 xQHUk8sAnR1PKOzaTtbULulLAfboR5j38Jg+iQFjBBMBAgBNBQI/J8iqRhpodHRw
 Oi8vd3d3LnRyYXNoLm5ldC9+dGhvbWFzYi9jcnlwdG8va2V5c2lnbmluZy9rZXlz
 aWduaW5nLnZlcjEuMC50eHQACgkQ+Xz54zpLf11CkQf+L6ndlBkMOsXAHSRpruI8
 FEip58dRE3PEWCR5Cs3Zj/TrV9mF0pCnbU+5wlfCBz2Ieuj2ddNwI+9kWicCF4Xs
 9avqRAasSO5sUSgpq405nKmNu7KdJEQG33expmPz/AX+agHOwTKpniohjlEa67Qd
 TG2ewcKvmLEQW0LjY0Rq2gRJ4cGFYkSmynOBp6agg6bITiwXPNQZKQ5VafjOQVUR
 tXtQTjInZ8gJGVdkrGD46D5a8yznX/KQU4ZEgRmDb6vl9POybhOihDvszahBfwzs
 c5QBZPHEXCdeCNA3rdCYbaqkxohS+y5PjcYchfO12YOaOB0Gg8SWOnow/M0FFmFc
 FYiNBBMRAgBNBQI/J8i1RhpodHRwOi8vd3d3LnRyYXNoLm5ldC9+dGhvbWFzYi9j
 cnlwdG8va2V5c2lnbmluZy9rZXlzaWduaW5nLnZlcjEuMC50eHQACgkQeQV2j3WE
 9dg9VACfcYe3EhS4Nh/EaOlsxtBPfa8k5jUAniNbDyUG3T3TZv9p6fCzIMIoG569
 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
 YXR1cmUtbm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJi
 L2NvbnRhY3QvcGdwL3NpZ25pbmdzL25vdGVzLkE1QzgyMDk5MTlGRkFBQ0FGNDFC
 QjI5QjZDNzYxNzhDQTBFRDk4MkQuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRl
 L35iYi9jb250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4/ZT6JAgAvfif
 YdKHBnC3Ezv483f2fsdF/jbUNa+1iz77iFI1dRa+SRWKRVbglKeznpT8GYbw6+82
 gxWZ7Xotbn3s5yGLXNYP0vBhek1YG0zYig498ROlIc8OPwNgCEVUHj962FFfQSwF
 2CQ+2e7h5PRll2PRpZNQCzm+c5Xj9p/tslSBWQ23/1p1U7eI3bvfMLVRx9tC/nyP
 sQo/V/yhIYPi4Ys1anBCl0Gin9g+eg4ghhWl7ksOZqG/Oc6c6viQsgVME4eKVHpl
 jdOj9WCpWIYar2Jsf16ITOMlYnGB4a3SJ1kxfXVR4lhZCaZ7PhVAaEH/GZC1ElPz
 jbKLNdvCTfe3GMNTBokBAQQTEQIAwQUCPxX0PYYUgAAAAAAaAGNzaWduYXR1cmUt
 bm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRh
 Y3QvcGdwL3NpZ25pbmdzL25vdGVzLkE1QzgyMDk5MTlGRkFBQ0FGNDFCQjI5QjZD
 NzYxNzhDQTBFRDk4MkQuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9j
 b250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQqx5LYEZ1ax7SjwCgmoUN3NUQ0fQw
 bmHqkVnBCc/jL8YAmweyJNMQNKsDC0frsHFyejRnNGumiEYEExECAAYFAj8TsOsA
 CgkQ58nbr+NW78AkMACfWs9ycteAylXk2RTrD5RHIYXgrVQAn0VpM3W6vemovNt5
 zQWuHwUHKMELiEYEExECAAYFAj8W3jwACgkQO7/Pd72LBQ2EJgCgqRYVlay6OEUR
 eBS4I1Rj2wKtZrcAnidL9ET5crzLbhC9Gx6/tHWhhPPriEYEEBECAAYFAj8Ro7oA
 CgkQ0Bn175Anq4jOzACeLP5omUoyFcsNXRdWv/IYPBW3jLIAn1Vg4cqudANdKnKB
 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
 otqKGK6X6iceCg==
 =yns3
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.40. Markus Bru:ffer <markus@FreeBSD.org>

 pub   1024D/78F8A8D4 2002-10-21
       Key fingerprint = 3F9B EBE8 F290 E5CC 1447  8760 D48D 1072 78F8 A8D4
 uid                  Markus Brueffer <markus@brueffer.de>
 uid                  Markus Brueffer <buff@hitnet.rwth-aachen.de>
 uid                  Markus Brueffer <mbrueffer@mi.rwth-aachen.de>
 uid                  Markus Brueffer <markus@FreeBSD.org>
 sub   4096g/B7E5C7B6 2002-10-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD20hPARBADzumxDOkMdttpWKphTxFC/j0+MJRW5UmFjd43c301LEMFSJMkv
 06EukQSOVWGyGL70v/4NWx25BiLhLDIb4feE5SZccQTnjxXYCjkQ4LfcolqTAzga
 L3GLNF356vKLQPlv6J5ah3vdZHa8Djh8q0s6CHAPi2rhEVbO2x7IcRW6MwCg/0+E
 KmRtdsifDJ00iBEMpJAApccD/As/bzVXI4FZwjwIMdep9+He7rwL/xGK+ZmRUEoN
 iiIxfd2oOkwDXZuFqTGftONd9Apao+FefTbcpEfv7sBVzHCJBn2bTr5mTjDwuA8v
 hGQ/7+QyKIFPmsL5KZYPkBcRA195UBSdwEPdERGH+aWvDTVJieyetAiD78WTd5ez
 T0V1BADwVnc1ABRMz6e8HK+78G/4vMHKPPEC7YbSmOo25FKR7XimUIlvGfj+CNO5
 w6QSDJaIRo9yOCPEacMe91NeZskPlEEXN/KIOlV11vTZ/pVDMETnzdarNo2B7J2K
 4HQzTYBzfFHdCrKP0tExSCy0iN2lWzSI57S9o8YxgnwrmuJPN7QtTWFya3VzIEJy
 dWVmZmVyIDxicnVlZmZlckBwaG9lbml4LXN5c3RlbXMuZGU+iEkEMBECAAkFAkTZ
 3xQCHSAACgkQ1I0Qcnj4qNRBCwCglhvWAuZ+9bWZ64EXP9wHLiQYT1sAoPGL96ae
 YBK0wnq1TWjE9GPTYFXAiFUEEBECABUICwkIBwMCAQoFGwMAAAAFAkTZzskACgkQ
 1I0Qcnj4qNTguQCdHFTLRplJE7g607rCVSxDCefYw8QAoIMaWQv0Iflm5aAR0F47
 3WrjQplWiEYEExECAAYFAj20imoACgkQbHYXjKDtmC1WawCfUZkir7Dy7wP3hiNA
 X8yo78CpuFYAoMJtyYVOf8fayYICxujAO3zU2pjViEwEEBECAAwFAj53axIFAwHi
 hQAACgkQT4OMtyagqBYphwCdFiRae7gCvrB/jFA8ceyXaEP44doAnj41sLHZFGWI
 ZUmQmNTiNfZXYoQQiEwEEBECAAwFAj53IYwFAwHihQAACgkQdROiNhMQLPXCqgCf
 SgcJhp/6tnpjypjXWH9t6uKHg+MAoMYnXWc7iXVFvi99BonJW15V63uptCxNYXJr
 dXMgQnJ1ZWZmZXIgPGJ1ZmZAaGl0bmV0LnJ3dGgtYWFjaGVuLmRlPohPBBARAgAP
 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
 =rJ5H
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.41. Sean Bruno <sbruno@FreeBSD.org>

 pub   2048R/9F4CBB4E 2011-10-19
       Key fingerprint = BD78 EB48 FD8C D981 D959  AAE9 BD94 1F06 9F4C BB4E
 uid                  Sean Bruno (sbruno) <sbruno@freebsd.org>
 sub   2048R/3A48F987 2011-10-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE6fRskBCADiNjKHZo8mR9lJeQWWlMfvHjzelpFNL45WTzNTAiG6gzrViWh4
 PhwXtcvcNndmrdnuNfX+KrKY0TXbtplXcscyxXRLJiX7dLuSNp4++cl8rhrvFgxr
 3+JlnkthNswNRiGnIFocjEiYONnadgfwKPZ9VsOASmTWMCm4/lD7DqHJrJB5XEBc
 GP+YudGB8gAAFtBCq6GDDVT+30t/RL1EkBj3tjozWPxL1C6DW4kFKfmdeQNzaWDl
 tRj+i2m+BePW3hMIZ2eqbAfX5shgPxyM00I8C5SGbIh6UlD5ex317fzW5KVlffR/
 xceR6MxXEbX9ZOVT2HXP202MlJZRINsMlo8LABEBAAG0KFNlYW4gQnJ1bm8gKHNi
 cnVubykgPHNicnVub0BmcmVlYnNkLm9yZz6JATgEEwECACIFAk6fRskCGwMGCwkI
 BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEL2UHwafTLtOXuYH/A2SH3gxIXnQI+f1
 Xp6NjW1avSRmqJqlpgFT1Ni5qmwmXA/1VfwhiVonRL+N4LEq3wbIzm6h5SRn+7h5
 H7F/kkiEjdRIdwQR/+3MfaLzLX3crklK+ICsfLWuqw+8M/SrDhEFU199btscX3kH
 xXKoUeNFXCy1zh5hvGCE66roo7m1T4R9xBicJ25ILn/3AC16gRwWVhb063UWgiep
 Q6qvI0uuYPbs1mbvRQVY9WwYQCSi/VT/RVXG0D2BSJwniqfxQTFcyr6WxFLlfo//
 /6ISNuOtSikbuSjYt7im/jHC3vsVX4xj9oNQg9uI6X1V0C3URKdF6h6RMCLrQaph
 nJ67FAu5AQ0ETp9GyQEIALZ/AhHdy6ulGQzgFtXmLHaAt49RpFiL97G6RUCzh56O
 aajKFWLZQ/AXb4sGHxU1LMty6glvsVEeLLJaQsHu+qE701Rks47f9FZaTo8Pt5Zj
 0UjmiBBxxvmO2kSkHPU0CDwDko/LM1pc+N7e1X5oPad99FpdZxHIISFey8wF/H0T
 EKgMKOWoRYUJ+MM/kSMP95LtyUE6SLXwNLx57KfVGsWjSYD6fWkADBMUuhv2GVWp
 Tqk3pSgGqPDEKkxGbW/ntSKgS1jT2aI1+t5ZqJ+L6UKaGmP5KX49EmyDgvOqV8i0
 5XoQC+UIVQNEGdkP0X3bNmA+wfIiRqPflJsry+KAWFcAEQEAAYkBHwQYAQIACQUC
 Tp9GyQIbDAAKCRC9lB8Gn0y7ToLbB/0YfYQfm8KWFG94Oed23AxEMul+HEIS4Ygb
 GuRqve4zzIfgPupeLNQ9yZHU7efuVs6JgxjO/q6Dc1auMLBJsMWwtt0cfUN6lXt3
 lEK413FjyHYKnoI/TrEDBYQgU33UsKt6YdHMyPepVTWZc87zHd4t1UUvq7s2Wgs3
 +LOB8YA6y7SfONrUxLTqZjh4VuniQrTxSK+aiskg/fo2lKO+EVvyMcd5RSHXX79k
 nYKQuKMmxptBDNlGsJguvzeT6uBI0PdvWr0VC1LV++2avQ2N6yhyGzpn6S4q4AKf
 6qe2xSuyms98HCnzEBC1IjbgnsYuR5jGek+8PHWxz70e4Eg8dPQh
 =3Y+2
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.42. Oleg Bulyzhin <oleg@FreeBSD.org>

 pub   1024D/78CE105F 2004-02-06
       Key fingerprint = 98CC 3E66 26DE 50A8 DBC4  EB27 AF22 DCEF 78CE 105F
 uid                  Oleg Bulyzhin <oleg@FreeBSD.org>
 uid                  Oleg Bulyzhin <oleg@rinet.ru>
 sub   1024g/F747C159 2004-02-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEAjnDYRBACecNDd39vZ9wnodFlATK+xvhlyX4M3FBEV34t9eVZtJz4916yb
 nLZmHwY6awt+nm6FGciSPucfu7stBCqvPURWEThJgAyXbxEVNyXmXrZ2F5OyNMyM
 EcbuqLZTjYxxN5mxUYswtiNDmdWn+Ivmw46wTOl5Pu+B7W2KVl8mwwbAjwCgl9hA
 puTWWN0zFklDJIuLx9eVxnsEAI+QaACe8H2l3XFpNkp6n680ZlW7FBZDDOYjCS4z
 nhFg7Bca74t6vnn5Q4miLnDDyOPkZqMBD2nLUkcK/kMfe5uqDUWf/i6sFDwv7d6I
 9Ag4tUWLkhxAqaqomesfI2yS4o+QGTJgQdGU3IUrOnMJD7Ascwj7304lYuqYcaqT
 KQHSA/9eTg26Ihn9uBpGit+slgkmTHmKgAbg7IaSHSEYRbpmnc0Je794zeWns/oI
 vAyGNxEFpPQMVrSXHnFmK9AOcLcfssE24a3zw7So33asH2Ha9yYBrfKGrTCPZAsa
 uUGrKbGmXQ0oXDjjqV4anvC2QI5pEJvMbHJ+Xyq5xQN73ttJxrQdT2xlZyBCdWx5
 emhpbiA8b2xlZ0ByaW5ldC5ydT6IXgQTEQIAHgUCQCOcNgIbAwYLCQgHAwIDFQID
 AxYCAQIeAQIXgAAKCRCvItzveM4QXzXVAJ9RD4kKNcvV8UmuBM66osVfZ/7yIwCg
 htVf/ZfKdcob1zQsBNNpmzkpduKIRgQTEQIABgUCQCOgsQAKCRD9LjUgMMgeateB
 AKC0iX0NNspa5EnBYGE/eEe+LxRs6ACfUqA0s50e2goJznaIcLTgZXtDECGIRgQT
 EQIABgUCQDIZWwAKCRCF1FBFa2kbA7N9AKCbDyp3g6vRN7dQKBb35s7gLp8yIwCd
 EH/ivmrxZSaHlrOMJjt6rnmuFqa0IE9sZWcgQnVseXpoaW4gPG9sZWdARnJlZUJT
 RC5vcmc+iGAEExECACAFAkOMPS0CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK
 CRCvItzveM4QX+tfAKCLk3zeTyzbbN6TqYpnqocno4H9kACePQaaDytLX+zk4plw
 sywqPLv67SG5AQ0EQCOcNxAEAIUR6Uj/bLAu0/FSGDSCXfjuThVT1lh1rCLQkbBw
 TxNiwHPHHSQRa654aoYbQdi9x6M7fzE6Uzmdj1Gs/UBYZhhsrlkL+Ls/xuhe3Kh3
 E6lho11qPhjYXmFHk42VhtVlOcikZ/Azgqgycfql81H3bKWv6jA0el9SnX4yk5qf
 tgZTAAMFA/9T7/ty76bNeP3/LcY9ZL9KYWB8v8pJ9jEt/RfBXB0GTuV/H+bzTjSc
 PwhT8Fam9Fo+r02tUJfqA+XlOJf6IXPlLPRfvzHhiBJSBPuMvB6vYs5zrlUzkgNE
 VFHBr+TxpUWBq4ZtI9K8YUbPD+s86irYn9fHlnj9qnYsod3ySvU0xYhJBBgRAgAJ
 BQJAI5w3AhsMAAoJEK8i3O94zhBfFzAAnAg+W9rkVVdYu33hNqpX8E1t2kShAJwK
 V8DuSaXJtEgVE7Wp5CeArqtwUg==
 =/2pb
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.43. Michael Bushkov <bushman@FreeBSD.org>

 pub   1024D/F694C6E4 2007-03-11 [expires: 2008-03-10]
       Key fingerprint = 4278 4392 BF6B 2864 C48E  0FA9 7216 C73C F694 C6E4
 uid                  Michael Bushkov <bushman@rsu.ru>
 uid                  Michael Bushkov <bushman@freebsd.org>
 sub   2048g/5A783997 2007-03-11 [expires: 2008-03-10]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEXzleYRBADIqilbqBfzstvMByOY3QlvQD9QIGQLwZbziOMByQPwgzgBFk6x
 OA7NOfSKONPTsLtIOSc+CbuyEfw5jJiXsQ3Ox71Zp2JTra/bTim/WwJKC5Kc+egl
 CD6KO7GMTCBb102m2x97G+rNjGS8n7Uf7ITgoj9QtxBjpAC3K1ZcPoAcjwCgobcT
 q5MUrCqPHrnlZ87BnbT/3m0D/15hcV+qndPCShIqFTYbTSG18X7lBNTONZXmCm04
 5dRcJrz4qLvsCYkBrmOCrKbYViQCQWiT7/G3Jzc+WtGFirYibU1TxBprZuP99gX0
 Hea3gvgodlje7eq3Dz7Hx9uFgN8pfw2wWlEgdkuYk72s3lSJN6+TGWzXuWnRYYJ1
 H8XtBACpByr9qcCaJ9yNAwDbDZhj03zSeZoIQz6d/3tDv7SkzDlVyxErJCO7CiHg
 JlxN0+paX0gW06xkLmwSESerJVbxEIoejdkdxebqPEIQN+9Se6Q2tkefMWd93IwL
 MP8sXgUBE6PEmFZTwI1/Av+vR7aI1pPk+yIrKTV2KyC7yCULMrQlTWljaGFlbCBC
 dXNoa292IDxidXNobWFuQGZyZWVic2Qub3JnPohmBBMRAgAmBQJF85XmAhsDBQkB
 4TOABgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQchbHPPaUxuSKCQCdEAIOx9JT
 lAxIOwL6ApsukCI1bgcAnjkybnn6t4WWYy7IvmwMMJJ17oe0tCBNaWNoYWVsIEJ1
 c2hrb3YgPGJ1c2htYW5AcnN1LnJ1PohmBBMRAgAmBQJF85xpAhsDBQkB4TOABgsJ
 CAcDAgQVAggDBBYCAwECHgECF4AACgkQchbHPPaUxuS8xgCgjJ4lLhI3wDP8Rnhv
 Iy9UW5BuBEYAoI22XNE3OHvBdsmUyUvVji8yKt4auQINBEXzlgAQCADnAWwYquUZ
 mbrZ9/UO4abD7Nm0vipplm/O078SMdonir+HKWZStjuvIHhpPDGI0wCpg/v24B3w
 QVGiQhXWRL1cbvjDmiQG7GFdG6u4c1+2S6Evx+fp5DCjUMaoygd/KwF5tmxE5M2R
 7SOYueuuxcDiYi4qJs9lroNxnwG2/VkrcPxlek1QbRVjs+TuRnzTaUzXbU7kli6y
 PUhBucf6nB0cPHG6VVn8N0Kki+HBaQjYOxtBCO2B5E0uRq0Y25l9Vt9s/0TfYnYb
 E0/sLj0XSBu8WWmXtW7QrtLPN0Tb6XrTeIaWW7HLy1ACVlzniu5oeumVKiW5nsW4
 uJ/6kF5Fuu2PAAMFCADNuQ0Irmhub799B7h+FJVtNu1IxptmvJnD/RoWXhAtVo79
 c176MEqS/8tghzdq/zXhr4DPMiTDWf1p4ynKFFkpQaWkHO28cvu3rc0tdpkI2d+s
 zKT6fFNn3kqQ7Eq5xgijSK8+aTWoUhqFvxkhLIcColuPK2TmQ+uIxjtu62lU52eZ
 DDePyHFGVWqtkZ99k1vGxZRf+vVXaKTBkGY3Pek04knpP5ROGA+JjL/Ew5o4SWfn
 FeD9aJ+xtZ9VqTUyl+U4XwIYlRcWzbqsbGp0D0jgry5Xhiggngd7xtNSB9/44HuU
 C5EQWVi35HKNdXMq4wsOMG68DCTE3XOABa5yPY7TiE8EGBECAA8FAkXzlgACGwwF
 CQHhM4AACgkQchbHPPaUxuQTrQCcCfrtwSXFegD9D0DpYWa6iIy9glIAniDIOvRb
 4L8/nn1Nbu+PBNHamCHi
 =zD+p
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.44. Jayachandran C. <jchandra@FreeBSD.org>

 pub   1024D/3316E465 2010-05-19
       Key fingerprint = 320B DB08 4FE3 BCFD 60AF  E4DB F486 015F 3316 E465
 uid                  Jayachandran C. <jchandra@freebsd.org>
 sub   2048g/1F7755F9 2010-05-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEv0XOgRBAC9mFTzSKBVumlXJwWdkt7HvSRKo64Zs7BO/tYzt4dWVIzWwUC/
 Z/Ns/X3Plb+sXp7mcvs+oLKiHw3qrRT5wPbef3V9hFfZiKdOfmeOv5fx1sIXejBC
 Cqq5ocAoq0bqf1S9i7vnuqfyH+9SRPOv0O6EnKCU+7sVMFXAuxDhm1+u/wCgwRj3
 tNFbsptDZ/K5SMLM44ldK98EAKpSRVSMHrI/nxXvrNcPhedsC9MXyMOYE/q1la5k
 b+qNrD9QCJRwbz1LvoJGeOzEmtmZ3afT048Uks+RE03w+BhqJnuFgpAKqA39Fop0
 MBvDuZ7Wy3iigebX35PAQ3h4FhwDTzsu9aEg2Iv/WksDqluQJcMkt8sn5NffhZho
 z726A/0dPVvHy0dart8LHKfou07u8y5/950UVITjGlQJ3RGvwQV7aPEjgpJQlQqR
 BMr3TOOJ3YGHY6xkaJk1fijb8MpSlihIr+Lyvhu8xVb3GCrPCh4Bff8fO35+wpBO
 62p09dL4mJcD1mELJhMAMPpqXAXD2Ho76/RQ1yZlmH/xyAPTg7QmSmF5YWNoYW5k
 cmFuIEMuIDxqY2hhbmRyYUBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCS/Rc6AIbAwYL
 CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEPSGAV8zFuRlnKEAoKcsMnIQFgek8hHO
 6a5pFO2DBto9AJ9GLTOc3OBdX1oFFQh/rsRYKPkMIbkCDQRL9FzoEAgAk8FWde22
 yzxXI/qWRo+o6Ptm9Hae4reggr0boqeQCnV4ksLd01s7tJoaGlogi9OTLrq+OV4E
 CvkcKKHSltijMsITEwF0BwfrR1C1I59yUYABtGkw6f3bBApHNcDhl6dpcHymP8CM
 PiBrx5s63ja/CAKFaScUCUe7A5vYK91BwAJJ/IK9UONU9TUyimRRv2C86rQWV15N
 R8WE55iMdmFsu/Rkv5P3IPNzaIjcvY19iJOuxfeDTiKDp9j1QWwUOShrAHXa/Cra
 JvcNo4Iu3VeLKpaFW5zBvIbfQCa8LfRwfLPSEM+tCk9nH5zXSvwf6dDWvN66oo1j
 p2eAjrUEFnfqOwADBQf/VGVl9qx/d8NMjhMdaV6qvq8DfHy4I/BXQFERgKkFfrAd
 n1oGEJCT1fHtJNN79nCbyZ2dlfKqr6+Xcdy7RKInGHs9DwK4KfVU5dA5L3f81wZs
 OoMNuk64kjTAN867PzWdv7o+2seSa/9phsWEpCD+9qtRLiOcIZ8xeoecBS3iS3mp
 aT1HZuMLFMm8XEJSA4l8QfupBigr7Gq8z0ChwfMCZsVlVx3MtrTmuVlPnbJ4g0ku
 28MACNiHkbfW5A7XhJ8re+Rc83so8ak26mO0FQeh5qsiVj4z/pmFGrYmeH94CLr+
 bC+1nwkbAFxjZrRuFzct1y+oe3MSU0UUKTXUikovr4hJBBgRAgAJBQJL9FzoAhsM
 AAoJEPSGAV8zFuRlI3kAoI9Pl1nGD/sEvV9aGkLfAK7v9A9JAKC8ReU1wrQlM3z9
 oA5JjxumuE274w==
 =kEVt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.45. Jesus R. Camou <jcamou@FreeBSD.org>

 pub   1024D/C2161947 2005-03-01
       Key fingerprint = 274C B265 48EC 42AE A2CA  47D9 7D98 588A C216 1947
 uid                  Jesus R. Camou <jcamou@FreeBSD.org>
 sub   2048g/F8D2A8DF 2005-03-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEIkZzcRBACrskMO6BYlK30ghgpDYTou1UEgp0Y4QdghWeEP5kppuDy7kf87
 CoKVvE/u+pVd7aFoTMa7ikqxKH4Kh7wnDEbFnzeZGtsf0Fzw5oHgoaQQlZHGRtr1
 49UuyFnRWVKyI8IXS25Ie5p6ZlbAVFINOdJuP81gku8SffsoifnKIiWrTwCgzhTU
 uS1rg+TpKkiRnkXXtpVF9k0D/3/OADlTo77GAWMXl6HBTaB3BXB53Q4PozvGDter
 lWGKbx6uYvLq3ZPX1XBUapzJ3eoEfCsA++FeSzK+tue/ulbLiXmFhXSQWtXoRo5D
 I75uOoXlrc45uLc9XkOpeZ5dF4a1iJOGHe/hD4mmyrWIM+E6cy1lL4EetM35ZiEM
 lHqDBACehJoEdCAVMOcfQLs33/iTBRBE7Z6fN9DCH3kTvoYcgpZsFAX2WQFz085/
 zHJ3NVFSH8LCi/6ck5ZeXCasAS3L99Q/io4WwmlqDj/b4PBdfoefInLJkroijcQ5
 B2I2cH2Ss5kkwqj9PovanMWNY6Irv2szIViIeThB+l6hiuzaK7QjSmVzdXMgUi4g
 Q2Ftb3UgPGpjYW1vdUBGcmVlQlNELm9yZz6IXgQTEQIAHgUCQiRnNwIbAwYLCQgH
 AwIDFQIDAxYCAQIeAQIXgAAKCRB9mFiKwhYZR31UAJ91fYdpk0PNNr14jtURyeeS
 upTEEACdH7tOg9LmYNxAi0iKWVInoA/TNmW5Ag0EQiRnPBAIAIKVE+F4De4BWuab
 6LREy3VmvNQgHSF8lHJm4TWKYGEkNhG+sIRFdJExqKG+N+El9QY4QGgezdogQIYk
 RBSg7nWzVrs7DiHJqC4PB/f23bzJl24Cg05jtxvZBz7t4lNXwY9G4kTmDb815FXd
 1p8gwa1KCNsTlKVRJxbaku9gHsO2JZigLMzzF1Zt1vGtaSHX5SyjhOdMOFtjuLed
 NAgl9vgAoMpXLf2Saom38Lgv/jnWz9OfST0P+OA/JmqN5DqeRTlyVZdQ8i8bduYX
 xmtbBPOGHWxwUDxiXMULkdjkLLrY1UaizR6/ULI6+cPrPLZFdnr+5GK6ZoTXyJ2n
 EUUxpGMAAwUH/iPguYUdGVnwKiwqojHq9DzDb09qvPg+UIEjwZA9mPExfMPLo/1b
 2NLgOF7pqeluXfiN84i58sipi4/ntlsNSzCYKCH2t2Wmfjdfpa3N4JaVptLR650x
 Lzj3egnWJKpHVSO+v1U7BSYBnaVPGfOMQVlSO5ra41SiVyZq6laX30PXXIFP6Ocx
 VWECVLmTR+L1g/5Nvq/L6NPv3ziuSLbSpvkLhTxLosaQwYFwPE7mLKgERUKDNc1u
 EXqyf8No4LKyO9V6VLckMgG4qbjQZhm9ozCmEYoKFZLafsq8czdNIKi4JV/8aUjU
 CsR5Dc8XAdwzPq6DBcikn1UBnvotbHtAFNiISQQYEQIACQUCQiRnPAIbDAAKCRB9
 mFiKwhYZRw2hAJ4mmNxtlCe9yUHRCzxsUxl36gQYtwCfQZ3f8K4dxPU2ClJ46fTf
 FqQS584=
 =KYGd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.46. Jose Alonso Cardenas Marquez <acm@FreeBSD.org>

 pub   1024D/9B21BC19 2006-07-18
       Key fingerprint = 4156 2EAC A11C 9651 713B  3FC1 195F D4A8 9B21 BC19
 uid                  Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
 sub   2048g/ADA16C52 2006-07-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBES8etwRBADeB8shuQ3GGp/AozsOggqLnSmFwCS8nGN+rnE+4LHuRzkL4Kh0
 pgzalpPre7DohKjX2uzq9lTjjmsrTKZLM+yaNZ9fFMHC1uHxZnV9/c7tC97oQQXl
 FjMmemGZGA3VMhh5jEtjT5EJIvPBB4SBVhVhBJ24ananUD9KmUHTyP8GrwCgxMJ6
 +NrGKVeu5QYVLo9oVo26J+0EALkWeeHI8PE3f0jOqS+Voym3jQPLw7pvx+HoySw1
 X0c0YRa9uJVH2e8aFMMsCzT/sP492IksJvtRNpzDSJJyYM3zukzH+l7J2vwDvKgD
 YknZJE0pAS0GRAVbZQ9u6bez2+CUrGZW7Bvablo7r3nBHyhI2SpeM6naXlS4AJ6I
 9dbaBACm82l0Uwip/WoJM0r/lB6eXMz9tFeRgfnPY3+G0Y9pFpdxTX0q5M73L6u2
 PeXbWI2XPyPqw0wqda5YNlcRylXJmzLFGQzR6opqIbOEzRE+IinyQwQlcAv3qzBU
 p7qCplhjblcyAhWTlM5XsrAWxXHyNFrSCCPDgW296+8b6b94s7QuSm9zZSBBbG9u
 c28gQ2FyZGVuYXMgTWFycXVleiA8YWNtQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJE
 vHrcAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQGV/UqJshvBm6wgCgqtDd
 lyjakeTr7YVdNmpaI/UxpG8An0jtgTDD2M+CioUqGN1SNTkA/6cWuQINBES8euQQ
 CACt+RPVEUX/qDk3Qh6E1Zrm410mAJLfgG70tz02ApDXhW6aZccW97rH3pec+RDW
 fZVaSW4xHjUQMu1JaXK0dD++UWifuhYF+GUfi2NQflcy600VjM4v1HMZulTE5/0n
 NfPU4s2Vu0w1JcuXryjy5O8+ur10wQ4HFnL+qSDmXY2UKKTHA7vVrBTmysELDuj5
 N6T9+xxuR7EJG3lwTREgPnr5nRlyZBxgAd6k/AJ8i2X1YiGix2KI2fk/HYdgl3FL
 xnLXrLE43mAwQjcmkMruNkebjfAAnp6vKvSOLZ3mqoPNhP6SPGTPxoskcHqHhvXh
 L3Y7/Qqga4sg+P8tZ4YTx4SHAAMFB/92KAG0TePM8+gtp64oOp9RuUELjT35f5RZ
 0ZJZ1JromyMjOc6FRh1a9HiVzY2Vq99S/r8S5QoNH6vppxGjSL3Vs6vJg79eT5Jc
 ODdEZhoSzqmc/TwTHfOeHiFJJk8kAtX33CIHBUDM0p3OaJDj3weYi0TUWcxcvlFg
 p4RIYHCkmJj1/sI+0U8Jw35nSK4uNwW8MCl9a2hwHCtfnvQBfotybc4+YuwFesT2
 SDRit/mXxYkmi/a5GPB0To/e/QSBuk7MMNtLv0oF8LCrfaN76XOmahxjaSYidA4H
 LUFNqtRL9J5/T4VSZsrSl+Gb6HQIaMoGPbXmFk3i6FzNP7VDViZ2iEkEGBECAAkF
 AkS8euQCGwwACgkQGV/UqJshvBlwLQCgqDaWuJOgfV0r5li2gRPUMI5XCscAoIG2
 pLZLUWFiL2unIMhkFZSQbZZj
 =I2hD
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.47. Pietro Cerutti <gahr@FreeBSD.org>

 pub   1024D/9571F78E 2006-05-17
       Key fingerprint = 1203 92B5 3919 AF84 9B97  28D6 C0C2 6A98 9571 F78E
 uid                  Pietro Cerutti <gahr@gahr.ch>
 uid                  Pietro Cerutti (The FreeBSD Project) <gahr@FreeBSD.org>
 sub   2048g/F24227D5 2006-05-17 [expires: 2011-05-16]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 R8Dblj7cX+WKPwwhnrNq0Q==
 =UXRy
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.48. Dmitry Chagin <dchagin@FreeBSD.org>

 pub   1024D/738EFCED 2009-02-27
       Key fingerprint = 3F3F 8B87 CE09 9E10 3606  6ACA D2DD 936F 738E FCED
 uid                  Dmitry Chagin <dchagin@freebsd.org>
 uid                  Dmitry Chagin (dchagin key) <chagin.dmitry@gmail.com>
 sub   2048g/6A3FDFF9 2009-02-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEmoPBkRBACM2PQ+WGI38Z5NtkF50MuYyv0u4qSaWtx5Tquch2sgBDjxjebI
 XQYuyzM9piV4ZSZHFyjvFCHjLhPg7Ae6xaeaOwPsGQ2Q+bSC92PoTC3bDdHW1hPV
 6s8KxrFcelHLwhmF56WIALoI6E6IF60KztuISLm0VDG0Wy3lP8QAeoWbgwCg0fY1
 iOETR0ZP09ophWg8CPUxyvcD/3NFr6GEVUuFX4ENQkX2GTrvEB1IBS3v9JvEMlUX
 bShFXWGHB+3ynBvw/EiuOgIB6Jzay3prP9rdGW4NSV7ZMa3Yw6OdhVpQ0ticn4zU
 FiqLL6x8SKXKSm9BvjFuWADe3Lnu/ekY1lYTM4iWPNdA2LjRUHwpDIHcHWgcCzkn
 CfY+A/0eKkj+/VTddCspDaXuTmgGlkz90LsA0cLv6gRO3IV+0t80TgohtsCdR2X/
 Yf7fi8GsaMdhgJZNm9dMz/zD7ZkQ+OyQN7NkB1zkwg2RwOnbbjTa+HECtsr2Znb6
 B85MamlnHN0WHNgexaC6c7ezEFq+RMBKRVJJGwehZXpT185T57Q1RG1pdHJ5IENo
 YWdpbiAoZGNoYWdpbiBrZXkpIDxjaGFnaW4uZG1pdHJ5QGdtYWlsLmNvbT6IYAQT
 EQIAIAUCSag8GQIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJENLdk29zjvzt
 eLcAn3hUOTepQzeJqPuTFl2Z2dM10HHKAJ9DJRmSIAwHBGPzlAFFzKKFW+OoV7Qj
 RG1pdHJ5IENoYWdpbiA8ZGNoYWdpbkBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCSam5
 zAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJENLdk29zjvztRJYAn0cIluug
 IS7YO6a+Bf0FByX3jlndAJ9k3HAxpt9i9R0wFkFmbMX0He86bLkCDQRJqDwZEAgA
 jMe9QT4KYOHsLQsF5vHBq/+W+Lniy6OqEB1GSK9P/vqVIqVa7v7NXX/B5R8UiQMz
 fSNcYH/BTN1lb8Pe7pAIBpqPhKBi7NAW1Ddy9399co1c37ncf6HEa2P0tpJbTrG0
 Eww9nUiFbhjWUHSY0MT57mHQHdCSlqNFl2jaV91CQaNybt9z8JLO301vQXP4LLND
 a/FQ3TdBEIXFLs/H8QKLBe5TBgd2lXy9qpZsii7xpfNXKG1qqIa8sfUoJO5Ng2GB
 K6tJUFh/J548BLt/c/p1KJo8ovJB70DiOaznRc+Tu8rR03ehdfrJ5FpDoxC6UAa8
 7FpXWxjM6L3N/T01NcaXUwADBQf7BpNvsT/QzV74wnGXoi9aUE84ojkIAm9X4Q78
 dfdCvSFWUACcvsB/d7XLcCXOZ1NJ1E8Tdjjmr24MRQRUY8MhDt47ngsTyDhDW5l9
 EQ/ByjX3wlRBNP5qEDVkLudfRE6LlEye2NSNpXYs1Naw6U/deUggNZMwriVCuRI6
 TPc/bKeq7+378EBaKc8ckuRdv8LWsIdaKQ6rQZh1CB6LpSsL9OjcRpKvK8yYas6I
 kWUr07xvvlVyRVLcrNyQwp2QnfK8fXeH2I/Qg9QwcV+cXyKzH4vka9zrR1A9SAHJ
 iOyMXJBy+GzoYLf/y7/u/LOVAm09P4tQ/7V/DY7nxiOabSioTIhJBBgRAgAJBQJJ
 qDwZAhsMAAoJENLdk29zjvztGEAAoNFpe2XX37q3yAaNfiZgEABrxsgZAJ9yH0YJ
 QrmO4sxq5l7AD6K+KNahRQ==
 =ER/k
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.49. Hye-Shik Chang <perky@FreeBSD.org>

 pub  1024D/CFDB4BA4 1999-04-23 Hye-Shik Chang <perky@FreeBSD.org>
      Key fingerprint = 09D9 57D6 58BA 44DD CAEC  71CD 0D65 2C59 CFDB 4BA4
 uid                            Hye-Shik Chang <hyeshik@gmail.com>
 sub  1024g/A94A8ED1 1999-04-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 b7AAzA==
 =dqQP
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.50. Jonathan Chen <jon@FreeBSD.org>

 pub  1024D/2539468B 1999-10-11 Jonathan Chen <jon@spock.org>
      Key fingerprint = EE31 CDA1 A105 C8C9 5365  3DB5 C2FC 86AA 2539 468B
 uid                            Jonathan Chen <jon@freebsd.org>
 uid                            Jonathan Chen <chenj@rpi.edu>
 uid                            Jonathan Chen <spock@acm.rpi.edu>
 uid                            Jonathan Chen <jon@cs.rpi.edu>
 sub  3072g/B81EF1DB 1999-10-11

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDgBZiARBADgByjeXtfBseo67ZhVuyAMTk4vWu+bh966TDx29E+cS2Ud+mYe
 X8eQYKfiCQXlAzspXFVy4nmqsBY6KJKGFek5lPoCKhh2xpftYq+M+2N/oznrMzK9
 GZvMdd/zhVp/HvrdpLrIxjMVA4dai5p9pYB1kgr3EjV5ed3onKrWP/soLQCg/3LP
 TAJ8ngyQvH+YieZpZRJn/IUD/2ZQGOSSPhJTiYmPR6+dI4Mj+ep+NlrC0bel8RBh
 ANV5eaIbh+rKFPPj1Pdei+Fbkixft7Ne/jH4s3d1li4L255T4Zapw+JMCOQf0+Ps
 7za7uE88ofBK6nxdmJSR8vLoVKJLSD3cxyJs+BmldqZTzOuh945I7ajwyaqnPEiI
 GG6vA/9bRbnqnvUgMUml0kNq9ItjvdyUM4fgdS+sICjnFtwuPC29+0/FP2qmiEm0
 W7GyQNBqDHlyiEe+R/G+3hA0/ey2dMVeOI7ti5+oQXYD2dccrQT2ixHAyko+N4Nn
 XVy8nIzUWNFprXLpC4WPfK2VjSJpp0nrm2DN07LDN0NcJMrQiLQdSm9uYXRoYW4g
 Q2hlbiA8am9uQHNwb2NrLm9yZz6ITgQQEQIADgUCOAFmIAQLAwECAhkBAAoJEML8
 hqolOUaLYDgAoO6YPC4qnUXmHkRA7p4e8t4ZTe1GAJ9Yv3qqNB6M+/60uN0MCshb
 a35lsohGBBARAgAGBQI57on6AAoJENN4FMlqzsGqwIkAnR513+/0KzDMUI2GLsG7
 R5q3cpqjAKD+IOPgbJHgIK0akA9GNA1z/P0/v4hGBBARAgAGBQI57opmAAoJECAV
 MdWEXf7dDMgAn1djbz2wTeCG09TEdvSATrPmj3eWAJ4/syRYBR/qLqBdiyLW238F
 BQ7uuohGBBARAgAGBQI57o74AAoJELYkBuZbwVKh+g0AoIxeOw1l0FGdy/hKdluz
 9mrb6EexAJ9VOHWxZKgTTln8+ZyfxBd5ruFB8IhGBBARAgAGBQI57o/JAAoJELjx
 LUz3PH1EZS4AnihF2U43bwiEGWkT/JLLy7TSfRjFAJ94xSfSt39smgMQmVeYMBHu
 HSLMrYkAlQMFEDnul3dNVigheQUMEQEBKw4D/iWjX6ZnnmDStbXxWmEH+e2M7G16
 R3nY2TuOCpjXsZqqRe8XHS15DKspNJwUZNHh+Zjr9U2sRqalmkIFt2nB2X8CdMyR
 pHFf0SrTwnapIYRHEZ74fkAsu6qb7YatSNhzwcmALx4mzgLX7ARsrau9NzUgrY/G
 RqH8GOyB5lHPFpAdiEYEEBECAAYFAjnvJEQACgkQGPUDgCTCeALPGwCfeoJCW9cs
 4K6OtnvLJIiB1oqV6FEAoN8JjdYrOwgykMjyq9f/PFRm6WiOiEYEEBECAAYFAjnv
 JFcACgkQiOF7HfzlZWFTxACfTQ6LjXC6kmyqBEjgSQvc17Ypaz8An1Ab704SKRwR
 r3eLdUOBTFdDXbU9tB9Kb25hdGhhbiBDaGVuIDxqb25AZnJlZWJzZC5vcmc+iEsE
 EBECAAsFAjgBZmIECwMBAgAKCRDC/IaqJTlGi3A3AKD3HgdSlRjb2PNY9fmpEeYH
 4lFhpgCgocDA03BR5C9wuSKhaBVFULlm8OuIRgQQEQIABgUCOe6J/QAKCRDTeBTJ
 as7BqsDJAJ47uf3WrmN057AwozmuZtb9vMm5EgCgsykRluwbCgC6ZewHezoaiOow
 jzeIRgQQEQIABgUCOe6KaQAKCRAgFTHVhF3+3bZUAKCApjy6fQvR7tLP1reuVofJ
 oeTofwCfetmE1PO1XcTZxUer5PN01sqA0TmIRgQQEQIABgUCOe6PzAAKCRC48S1M
 9zx9ROChAJ4zQm6DLDcRdU6Tuk9/OCdKnHMnhACgtDI6x3Jw8FPXci2P2tdRtKN3
 B1KJAJUDBRA57pefTVYoIXkFDBEBAUr7A/4vnr99JzFe44a674uECQbpoEQkYYnH
 f/LLbUMhQkmp9nRwI/pS4lpEMxPhKBPtOjL3tkpXfhFRGClMKbRLB58Qj9QNVzHq
 nnN9MV83+fhH4fYU5isO5sVl817AN8NJdE6OsyL7LZWT3n9Ri5+qgeMa5rjMLw60
 hUAISXJKZ1r16ohGBBARAgAGBQI57yRHAAoJEBj1A4AkwngCApcAoKmg+EZV4ev5
 RW/Y8LqjShfezs/QAJoDCln4Q/DTjxMw0JqaGB4ueI6CwYhGBBARAgAGBQI57yRa
 AAoJEIjhex385WVh+ygAnimdjrEtTQA77QEZ2PF0BEf9//V8AJ0S73bH8sBgmy12
 ke3p9QDxZDYHi7QdSm9uYXRoYW4gQ2hlbiA8Y2hlbmpAcnBpLmVkdT6ISwQQEQIA
 CwUCOAFmeQQLAwECAAoJEML8hqolOUaLDKAAn0Qd6pBHUKZwZ4PNnVZFBagD3mQ5
 AJ41koGIb6g7Q1Xtu4HEBQZAvsgpKIhGBBARAgAGBQI57on9AAoJENN4FMlqzsGq
 u2kAn2POi/O3+sJ3G7mN4rBkHf6S7eF1AKDjdY7lbIjkJ8+fUyIrvuVigzAQRYhG
 BBARAgAGBQI57o/MAAoJELjxLUz3PH1E1Q4Anix3+MKXfnwrgUmhkReBQS4sp6Qe
 AKDN04ovFaX+oElfkglOxltBumSqfYkAlQMFEDnul4pNVigheQUMEQEBX2QEAIQO
 PgnwB5rBnqA0kNW0jNy4fq7UgikOYKjps/NVvuGhR4cfn6uZQUNPeO7S3BKL3JPu
 BlGm1cSwLZES3xTDpnq7dEQWYyc8c+/U/mUrSDQH1hVVo0rZwYFqr+5ZL20M1Fw+
 ve+XgfV8RvrMBXtphnVl4Qo6yghuWmf5pBEpElp9iEYEEBECAAYFAjnvJEcACgkQ
 GPUDgCTCeAJSiwCfT8ClDVDP37K+RE0wI+0o+YTrCCAAnR1pTuctZsNefOKbSWXk
 8BiHHfW4iEYEEBECAAYFAjnvJFoACgkQiOF7HfzlZWHbuQCdFwi9MWCX+1ppGDcu
 YFwdNYfNn7wAoJSIogi5+KgCWhyoQWogYlgCs4WZtCFKb25hdGhhbiBDaGVuIDxz
 cG9ja0BhY20ucnBpLmVkdT6IVwQTEQIAFwUCOe6N+gULBwoDBAMVAwIDFgIBAheA
 AAoJEML8hqolOUaLEEYAoPHfT4twSf2tKV8moPhqgQFgN2hxAJ9K7Lhc8HWSpvgh
 4jIaHaM8eiJnookAlQMFEDnul7dNVigheQUMEQEBYvAD/j4EQzuAKhSdaJ54F1hH
 8PMmOwxM9HJ4U8BvWY/wQJa0Hgkxg8UdQE9O7ZFWj/KypTEheSEreV6JWtkCdtpg
 KADWPRwKEnH2oz4y0/GjwoHfpyIZFlAC9WYYo0+glKLnH/FQSt7W33eJxLkepE23
 2hMOa6nEO3OFbik5PxaxpkzciEYEEBECAAYFAjnvJEcACgkQGPUDgCTCeAKdJgCg
 qtwHztlKh2pWO5FlSpMZ3ilXLEgAmQH9OUO+28K2b6DYqGPSn+UDWfi/iEYEEBEC
 AAYFAjnvJFoACgkQiOF7HfzlZWEi6wCg3uFRxhC+wR5304Lq/pJzX2HuqqUAnicZ
 7taSto90zR/xwcYEdcSaRHRAtB5Kb25hdGhhbiBDaGVuIDxqb25AY3MucnBpLmVk
 dT6IVwQTEQIAFwUCPRgU4gULBwoDBAMVAwIDFgIBAheAAAoJEML8hqolOUaLXVYA
 niQtgvTgGqxqsxRkd/aFegjCw9zIAJ95e7tBtTbBFgWZ/TeMIpLVAgZJUbkDDQQ4
 AWYiEAwAzB13VyQ4SuLE8OiOE2eXTpITYfbb6yUOF/32mPfIfHmwch04dfv2wXPE
 gxEmK0Ngw+Po1gr9oSgmC66prrNlD6IAUwGgfNaroxIe+g8qzh90hE/K8xfzpEDp
 19J3tkItAjbBJstoXp18mAkKjX4t7eRdefXUkk+bGI78KqdLfDL2Qle3CH8IF3Ki
 utapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l
 6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9
 kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIiz
 HHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgR
 jXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Je
 w1XpTDJvAAICC/sF510YKnZ/qLcx8LfgpeHXSwVzk6/wZnnplNMAr5CvgYWa8fWJ
 L3DcbYUsZ4+eG86RULQ7WwaTXvuRXxiDsc7Rf3pKlZJGgOdIPS+VmCasO26/ohlE
 tWZ/5VoOJD1fRdoI6gttwhBXURY2ydl0cy+rCv7hLBTEOLunCWiA0fiPC8mw06vK
 ckaEdbhsB5WfH2XVEpF1db2zliNLeCAFEjxoo429/2JcaKaq91hqxa/ylAz8W4ku
 jCxTifWF9Ef8qz7wE9tyAplw7/j8E4lo/xSAOQLL7sh99B32bPo5sXCVS9IdZQCx
 GRsZM1JIlSbhdMKWrWaKpJIxWwNxlWHyVIHCY8PiZr1GB+qBICQL8egBtkurQoB1
 mBPBjjVtYS9VUXx2GtG92mLR4QV5obkqz9O3ZM7fVBjpCVHKdf5s3g8IOWPmP6oX
 0IgOQXC8PDOcpSYhgccap0PcEwh5wWaTCTFlxRG7cUesFODM1RnP9X4sFygNCVOy
 TYxI06oLAc40TH2IRgQYEQIABgUCOAFmIgAKCRDC/IaqJTlGixddAKC6OtCIquKb
 qnfGSEooSVFz5kPTaACgtZYK1PfljVCb4e0xoy8XkArq/8s=
 =cJgh
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.51. Jonathan Anderson <jonathan@FreeBSD.org>

 pub   1024D/E3BBCA48 2006-06-17
       Key fingerprint = D7C6 9096 874F 707E 48F8  FAB7 22A6 6E53 E3BB CA48
 uid                  Jonathan Anderson <jonathan@FreeBSD.org>
 uid                  Jonathan Anderson <jonathan.anderson@ieee.org>
 uid                  Jonathan Anderson <anderson@engr.mun.ca>
 uid                  Jonathan Anderson <jonathan.anderson@mun.ca>
 sub   2048g/A703650D 2006-06-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBESUcI4RBACIrp/6emcURG5g8edmVyp6d/PcuRDcy3i+YJSXqLPp/3qfM2J5
 kVMCQvgFSXX75K5HvZU6mMMtHYGCComtn67O1MbUSyVUZlNW2PwUr77Nc34MgcYF
 fzU7siy8Pc8LqIy3JUtHwi+qmt/+UsQBTCO+2heK5xMj6zklm7qRfOo0rwCg65HO
 lViBItJSZuZnIqz5chlFbhcD+wdg1tyXl+HW/d9E6LxMigAct7fFMHd5aA5EWWr1
 plTfSSxOETAsX1afsEBfrr6d8jLVri1tfDvRHe/30YxRv6rTZ64GLIXD2WEoN3yg
 NvRVRkOeFPtN8K1gHEKRrcp9ZJfGG80F6d/RMk++AAbg/pI5ne6AxEiR1cAHmwGF
 HlfzA/4/bmU3m2n2SEbBRAOugrYcSRF0OvPsju2K34pooAnePs/S/zJdILIism3W
 1Hjjp46R6kEtvY1ykulseQzRk+IpF9Esc2tJA3VSHL0Z2uI/1fg2mCGc0nk+t4MB
 oqJshJLlR0S7LerduZ/Rc1zErb4nfhG88GzH2Z6fawZtantmjLQuSm9uYXRoYW4g
 QW5kZXJzb24gPGpvbmF0aGFuLmFuZGVyc29uQGllZWUub3JnPohgBBMRAgAgBQJF
 Im7qAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQIqZuU+O7ykiR8wCglscB
 c4qLHc61O+WbG1AVlgMrvXAAn0R2OaVyHU33lcxpP9AZHsOYmhcFiGAEExECACAF
 AkSUcI4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAipm5T47vKSCC6AKCG
 fne/4SQaTeR2HtTM8lJGMQZCDACfffBWKNxqzE9C1pp21dlJPyhOLwu0KEpvbmF0
 aGFuIEFuZGVyc29uIDxhbmRlcnNvbkBlbmdyLm11bi5jYT6IYAQTEQIAIAUCRSJu
 zAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECKmblPju8pIj08AniQCG2Zu
 dFFzMubFUI5RK/s/KmYQAKCzEY9efR+f1sJKSo9/I1QZuNNQ0rQsSm9uYXRoYW4g
 QW5kZXJzb24gPGpvbmF0aGFuLmFuZGVyc29uQG11bi5jYT6IYAQTEQIAIAUCSBtj
 iwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECKmblPju8pIAtQAoIifNHQi
 kGm5CIgOxMgMAc4zZWaQAKCG2cl5XbQkANEp/5LB0AJkVyP5KrQoSm9uYXRoYW4g
 QW5kZXJzb24gPGpvbmF0aGFuQEZyZWVCU0Qub3JnPohiBBMRAgAiBQJMrKDcAhsD
 BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAipm5T47vKSJPMAJsHHtHqP65y
 av3mDwxrHqnGYCNw6QCfSSK/rPic0fGdI+kwKphP+t804+S5Ag0ERJRwlxAIAKGW
 DtckTk++NzYHbfCmCa0mCtUg4BQ0752ZRUZS73V/dP4LYBmOS7ubppIWC8XJ8vCA
 YKesQYBde3Ly3TrZfzdlDLBlua2YzmLQgwZvTzfalzcUrbHzFWy+mGqXBBfnclV6
 tYwMDmsVxsukpIVsZzWpEMBBrrd3Zsr9SZG8rjyfiiuv5kvrdPpGv/w9INCcqvMV
 CTi7whrJn8MBwD/rNVuZqa8kW1dN65xKN98Jn5RA5JCX7kY04gIyUL6x0dHnJZ/c
 dfRSMgHPTROiajnzHrd9Olm4e05Dijd5vAffF9rxNtlJNTPDaN57RhhdTK1ZE6mr
 zWocL33kLML77+3rVZcAAwUH/0sXk1iRq1cs6D99VsEpK5Yu12U8OTUk8cPZF+8C
 HsT0c5xCbaPENBebs8gtgS1/oURvO/lgNmthPFEdyD60l0u+wt2BSmua9s+tFsUH
 uWgTSx0k6Z3rw9wZV/YUxe5PLEJ1JJGi3YY7qCG0BqFbbHcpkrtj6X4+H0Y01MzO
 1BdklQ548jHb6wZn6BW+dZikz/vE7urxhx73CpRWerLtq0EpFzsdRc9DzChqmxwX
 WZFpSAZT4fbEipdmK6dtNPJoTeHpB4zxTX1Cj1HHCKRw13dFlr+CMBnQnhJOOaM0
 kh22yyLrR4rikuEqnhfB79Gw6dxlJltTUKNuPHk4D14Uh5CISQQYEQIACQUCRJRw
 lwIbDAAKCRAipm5T47vKSCIMAJ9i5XNgXRnS+qoCDrSgrvf78e6zugCgh+4Wscpb
 rOIHnGJFBTAXFZR7KjQ=
 =PbEt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.52. Fukang Chen <loader@FreeBSD.org>

 pub   1024D/40AB1752 2007-08-01 [expires: 2010-07-31]
       Key fingerprint = 98C4 6E6B 1C21 15E4 5042  01FC C7B7 E152 40AB 1752
 uid                  loader <loader@FreeBSD.org>
 sub   4096g/9E53A5C7 2007-08-01 [expires: 2010-07-31]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =PrOy
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.53. Luoqi Chen <luoqi@FreeBSD.org>

 pub  1024D/2926F3BE 2002-02-22 Luoqi Chen <luoqi@FreeBSD.org>
      Key fingerprint = B470 A815 5917 D9F4 37F3  CE2A 4D75 3BD1 2926 F3BE
 uid                            Luoqi Chen <luoqi@bricore.com>
 uid                            Luoqi Chen <lchen@onetta.com>
 sub  1024g/5446EB72 2002-02-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDx2qBMRBADYSjvWKVcUxUb1aR1VjHTlFo6zc6PHMK8W3CRin7lY3NgsYsmZ
 n0IvGQIDEHhTpOEWLS0S6A/bseaGUir52X6spZ8i5hfd7Ps9RmeS0oHx0XDS9JTJ
 HXFE5RjExHbLnw4DbsaqR4Fl1V7NJU2U/nkiJILJd/PGPZsdstKYv5QvnwCgmwr7
 QZlkTV/m61MmbMAEpEFWaecD/Rp5Qb9S5NGVplNeNqub4fC+Ydarkorr8qBJN9Va
 xu1Qgj3sOAoxmuOnZ99YAgXhs9Bqe4QsrQfs1cMUVzZsl3FIffh92HkrLmdJlsjX
 8lrRT694cIP7+ELNGKJ/zaXI3j2cnQPVqUO1icVfijqatqDg8bgQS8C8CGQX6e6h
 ADKGA/9cIY450gMvrtbR3/bqH+IgvBCUog5RXv0y8c80sJnzeqawx2BuziFvv6mZ
 Kv0PJ2vnWok0NHcyuBHkkEt+ujYlMQXHZ6wRykYxIUzM8tl+9129tSNEK+GdcCOZ
 rfbwm8scs+VmzrHXP+saOPcHPBr0e/KPPixNN1I5HB3yI0ILSLQeTHVvcWkgQ2hl
 biA8bHVvcWlAYnJpY29yZS5jb20+iFcEExECABcFAjx2qnEFCwcKAwQDFQMCAxYC
 AQIXgAAKCRBNdTvRKSbzvmmrAJ9FVK0lT4Qym+qzj0EA6TP3V42cwACfQl+ClPzJ
 zngykscMJW07MBXkQ9i0HUx1b3FpIENoZW4gPGxjaGVuQG9uZXR0YS5jb20+iFcE
 ExECABcFAjx2qpkFCwcKAwQDFQMCAxYCAQIXgAAKCRBNdTvRKSbzvkEwAKCRteUw
 2X3XbPsVDCBZarrkf113YgCeIHmhkDHbauw4UlUO1tYNVObn5dO0Hkx1b3FpIENo
 ZW4gPGx1b3FpQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI8dq6XBQsHCgMEAxUDAgMW
 AgECF4AACgkQTXU70Skm876CUQCggJuwNIJy6f05Ka17RYn+j8hEQhwAnicDXnsy
 5SEYN6amlHdqN/HwXCsbuQENBDx2qBUQBACifA9hUBBYNqCcXTs8Jk1MCcToMFob
 vRt/SK2EcwjZ9aF9sIX3tJFrOHEe/bIcDMX19e480T4+BBs9MyHdnKgPR6vP8ZEe
 FvT8+44Wd6psLB1LwsE8UpJ3CbLjkgafTpJIlh4NP5iM2p+2ugUIRM2ZaAG7MOMK
 Ec47KOEb6yI9ywADBgP9F+p+zQ1Z/qVekBooIKU4xKBryGb/XIPJi/Pgapgr3oE9
 kKH4iObbvMBSV3kd4a0+FSEXSZyRnMD1AG+dWhAHgb9rbjtICp3hZOKCMfdZxFVg
 QStZO8vP5EhQYYtIXiNmOvkkBPqb+to5RgFFez8oIdPlMUq2Hf9MBIY6XDoNJl+I
 RgQYEQIABgUCPHaoFQAKCRBNdTvRKSbzvh9GAJ9K3KifYIBOHlsmRLF75mgKQk/c
 0wCeIOeVykZkImOxs0pEQMR/4g47Wjs=
 =RNuY
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.54. Andrey A. Chernov <ache@FreeBSD.org>

 pub   1024D/964474DD 2006-12-26
       Key fingerprint = 0F63 1B61 D76D AA23 1591  EA09 560E 582B 9644 74DD
 uid                  Andrey Chernov <ache@freebsd.org>
 uid                  [jpeg image of size 4092]
 sub   2048g/08331894 2006-12-26

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v2.0.16 (FreeBSD)

 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
 =+4em
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.55. Alexander V. Chernikov <melifaro@FreeBSD.org>

 pub   1024D/2675AB69 2008-02-17
       Key fingerprint = 00D2 E063 2FB0 2990 C602  50FD C1C2 7889 2675 AB69
 uid                  Alexander V. Chernikov <melifaro@yandex-team.ru>
 uid                  Alexander V. Chernikov <melifaro@ipfw.ru>
 uid                  Alexander V. Chernikov <melifaro@freebsd.org>
 sub   4096g/BC64F40C 2008-02-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEe4fOYRBADWmfOzx8cXvVytbw87eVlU84SXo3tZYeffxQkJ4JzGoA4Tq79w
 2nTLPSnd42W8gTZ/dxEzhbij3RW5mcvc9r6N5YsOw3eKC30NQMM05nV5/yX1owj4
 +eZ1YUZdJKUshhWax9dL23BDLEPRWfKsBWS2osqjIPy6WhDgTlDBz9rJGwCgqK5g
 Z7sULpLNE0nnJPQEWL8zt7MEAIIYKjPXf3BvrDtsOHWpOK4hZgf2X9oCfoFymVdp
 cQ6oCWsigmKyGuy3JyyA22UDRfZer3TqNCwd/ynHYXMmYl2IZ4TtV23wGGQDGyxw
 cu1SRhTcPRftCMI2r/6E1vHSqSSdmWwBv6gdN2kVSqx+REchIhuyWWWhMr2A64DI
 S6rxA/wMn97Q+ayj0S2t9u7NbUXQPcB1hiv5qMXWMFco3NokOsUdvK31v8m5fO4P
 Zzzz2JceN+6ae901C2Nrc25ZhujjtLs7XviqUB/GPLymfGUaCpRlm0XReKJPYQKo
 V4jAXxjzrevEWTtNwaC73V0x/w+CKWVhyfUCUcf6HdGkil4CPrQpQWxleGFuZGVy
 IFYuIENoZXJuaWtvdiA8bWVsaWZhcm9AaXBmdy5ydT6IYAQTEQIAIAUCSeHOPQIb
 AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEMHCeIkmdatpMIgAmwQewwBOZf6E
 EvGSx78VopWKwtyFAJ0Q0gEIyhtgVjHlGgdOhhaN7D7a7bQtQWxleGFuZGVyIFYu
 IENoZXJuaWtvdiA8bWVsaWZhcm9AZnJlZWJzZC5vcmc+iGIEExECACIFAk6LOVIC
 GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMHCeIkmdatpwXgAn2Sf2rEX
 g3wYOqke+DBqtgY7TAxPAJ9Qo6HmdRlACa5S3WR3xFFdx5SIYLQwQWxleGFuZGVy
 IFYuIENoZXJuaWtvdiA8bWVsaWZhcm9AeWFuZGV4LXRlYW0ucnU+iGIEExECACIF
 Ak6LOc0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEMHCeIkmdatpU64A
 oIl4yXypO/ve5VmpqWodSg2KpI81AJ4l9hRomH4gu1ku36RcejuWkYoSVLkEDQRH
 uH1AEBAAxMbUjr0N//HxCwCrCp/zy/yyF+tjYCoVxlFjeui8Uxc3QpDmsxDBgLed
 YggRT9VEFBHEF9T9edsK+2Rjs96saGcyolKnfeQSxz9ua6Vst39vAdjBzqmVXWJW
 DEgU9kAMmLsONi5nO5SaB0GpnhNttG5NM9J4lgZ5HUNnyCMEGUCOXa4R8R7sykS9
 K2IfJZLsXWmvXXHD53B1uYROPTn+HrDixwdoYFDltedGKez+GPdP28PeBWeIJhQQ
 f1oxmlgNU8L++BaiGmY/QXBVRm/Z3NOuWi99NupN32LgZNCGdiZLvltgYaQcnYRh
 08Br2Imu5vK9XpoDHs8a1AO5OBJVoysdu1ESnyzuvmrRewbG14+8kPi/4EKo8lnP
 bYGUVwh3R8QrSSzki8v+AZagh7Shf9m37QZtIzsycqqiE/S4o1kCyOk4q8vooRMU
 852oXyHyF0BDPd21gfz6b2bKyi7eDT8apzrrZ+Z7yY+4TCg0D9m/LloT9cEag15T
 XxkuPqOF6gq7vMqm3GDa+X4wXgrVhNwbKHT3hAo/eSoQTdB5PeWELZ5ykV6Ik/6U
 ccG3GZjPMSbQU217PlmTVKmv2yrwHXxAZECQAlhZUIEkyVBHQBYuSH/37r8DM4im
 btIL6A++CoJZpf71YjEiPDiQc/ono9CPtMGsbPl3uekhYxdwM9MAAwYQAJRqYdYc
 Xb2IhEEbcdnE1FKzO/e3d+O1ze+diefS7/Lxd9zAPdmHY9W3duzFgQv50F69kKUr
 JzZF77o8X1dlpD/ip2Moimh0rb40PrP/AasCiww4hgXKfsDInqSMKDK4KaZZCKFf
 4N6yGD2KAqqGnJfNNzIrdxpH0BjeXXZm+Fzmr5M/eWMDGOJZmYnKCSF7dStdwVZH
 Ld7RUvpQ3cR+lQUI6hYTMhXPqR7mEDAHq7IYzbA1HBp1c1P4vywD/myTi4wevomE
 1/GprPYlocXaytWiRjJvGjLw8lg0E6utQRLhoPKIIp9CsNBw8IQRZ+qINtyO6pk5
 oxnuq+yan2ixb10hBx1yQg6PLmgUaWqPihjZ+i1qtpLoMV4BGxzWn11+o8Mh0skH
 rmKP7DEbX6Ctee36gr6ULZATsje4OyC98T9wzNmLDYOV9Zusukd5Kxb4f6MuDO8D
 B8ky12ZLA9s7+RmT1Vx51pXOj2YnTT7RE2+QWu/gUfm8gWsq8tSwowzuE84QcwfX
 2/W3oN4QIVUqWULzC+vUV0TnLO8K5fqgn8AkX2ta5pIYF0t8+KN/nb8mgV81w6cV
 ii1Uhv1yRMyro7D+eURm07yvpWyeLfILnm4U/PoFx4JK++UehPB+QACs0bKZ9AOh
 kTjflPiKorAw13Mv/BinmgRPnSJZzqUEW3ILiEkEGBECAAkFAke4fUACGwwACgkQ
 wcJ4iSZ1q2ldngCgh5mTawBEKWXNJXXVFGfo3CiWc8AAn2wCkHDEhZjrsq+OqQ7b
 j2THTkZc
 =2RPV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.56. Sean Chittenden <seanc@FreeBSD.org>

 pub  1024D/EE278A28 2004-02-08 Sean Chittenden <sean@chittenden.org>
      Key fingerprint = E41F F441 7E91 6CBA 1844  65CF B939 3C78 EE27 8A28
 sub  2048g/55321853 2004-02-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEAlrEIRBACQ1ZZIej0e8esRdDxmuSv96bv1NTDBaEx7P649JM8a3afUvnQl
 JkA/ryZsKAnw1OeIK907Cs5HdaG1lD9ttpQolG5ZN23K01CuHUvq6yY+evwDV31D
 rKwYfALKfdhtAaymxM7RRsNNV8OkXLg0SEtBit4lbdY79vqiVC3PeWYvIwCgyOlb
 7dw3f2mNtm280LybDSjn5KcD/2gWssJVtQgssnCi0Jto8csULw4OKyJHvXX06Qkf
 lnXKcCJTBMgXZf0cZpYhuyqMUZfsVJaF0lMJ85J8zD+Of3G/KwuCqW7jqpom0zw9
 mgsmhZ1rZCbf4cG1orpGSSfmsi5IFoe+mWEJgHwIKlLYd/XDfT1q81swa2AlcjbE
 Pod+A/0cNSOWz4rj1ZjcxYsxg0sZES5eFEHfIJ+5g3yMbNPcvbQhlSClgDD1Z46p
 6bEZA4+vL2kJH+29E1Q0M6H4OB2rY/Co5TypocuazZR1kwkJY+bQtFqPrcCm67Er
 GYl3qcbtV8Wgn153k6DnMUc7by2iTrJiRjWw4LNVhRZn3/dj8LQlU2VhbiBDaGl0
 dGVuZGVuIDxzZWFuQGNoaXR0ZW5kZW4ub3JnPoheBBMRAgAeBQJAJaxCAhsDBgsJ
 CAcDAgMVAgMDFgIBAh4BAheAAAoJELk5PHjuJ4ooG+EAoJP+RzGsCHKYGaLhok0/
 B0hBnIKtAJ0YTlDINuquFtqFTeZgwTUg4jeHFbkCDQRAJaxTEAgAqKA+B8+oo31g
 N7Q6uw1rR5F6M2fFBwPrYU9w6bM7qX6e/oy3epL8BgtzdlHyzcux/hLGDHGP6mku
 lwH5wGSjqfbk3guI1ogl+e0EjblIeUEAA1R/k2o8xt/HINhXiCjQhY6AJL9cljGz
 NQY/ecR9d4HEvjc+Ticgyt4h6WSGMTpjjY+Y0bWrxsXi5ZAsCNYEuRgdaRM52aXR
 gGkSqMBOKSKAPGc35Jh4nzvPSKjXmkXutCnPNcO+qPoro5j2Dx53ZkfB7Raj6CiY
 C8VQ8PDEpjELTq8fuOqqrl911RDYAOECWEqyim78qROuhgq5750w1CJj3K8o2FDE
 Qap5jNPiUwADBQf/bk9Es1QDyDTPLC7Look1OS50vhotrHce7P+uab++khm03ajq
 XmNuTYifQY0kgzzEBaELw4+isBf1NV1vvPK9P6k6FCx+1mcNYzItRLBo15MtcXlB
 IqkD3v/BnhVgT0PqJT6jO8glKCmhEq+GurXqydIfEzWCbz0+snVK769Q9rJHHUf8
 icDKfUI1m7javdnXVrpA1kKZM8Omis+BfO17XDBLYZuVW5rAJDzG42YM8H1mrqBa
 GL806X/3i55d2RfgrljiZvXBpdOZRnM21w6hxNuj3OaVxqrQn9hOgzBcVdSZWc9b
 vxpmZ2j1vx7i4xNq5dzcBqxMKDcAcwomLWgjHohJBBgRAgAJBQJAJaxTAhsMAAoJ
 ELk5PHjuJ4oob8sAoI0szWtufl86pHsG0AwxjsykDS38AJ0SAW5Nr1N1HlZlrtlG
 0ev24JoBxQ==
 =yGes
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.57. Junho CHOI <cjh@FreeBSD.org>

 pub  1024D/E60260F5 2002-10-14 CHOI Junho (Work) <cjh@wdb.co.kr>
      Key fingerprint = 1369 7374 A45F F41A F3C0  07E3 4A01 C020 E602 60F5
 uid                            CHOI Junho (Personal) <cjh@kr.FreeBSD.org>
 uid                            CHOI Junho (FreeBSD) <cjh@FreeBSD.org>
 sub  1024g/04A4FDD8 2002-10-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.0 (FreeBSD)

 mQGiBD2qLwkRBADbZ6Rsv7guMTzGT9lj4eIE29vj0ZZNWFepFEqEmWK0jMLAATX0
 koXkP/qWsuGBhVHcSyZtVG+MYTwAzo5nBszx12CNL/GkEokQ/9FXi+cA3W5TJZTE
 ssMq0PPwqCB7+s/4DBmc3uI22TCOI7J26XkftuwkdihCMG/gk+cgKkzZ7wCggaBp
 02a96DwV/78wUZy9C8B6uMMD/j5jAO2HOubn5CRZrOpko3za+qVsk6yTCmq12z+t
 r9veYORoVohxVTIY+xpeHQVlOe5URTiKO0Uvu34Tl34x0BbSLBWrGU8UTMA4+hpl
 QTUK1GI1DheFPGGGxbt9w40nslRVw2Or7GA/XHexCDwx5KZpJNtO8c/MqdlzAae5
 CuYQA/9bb5T8xhamrsOFTmdLY3wPM2efnp5d3luwA2Fe3SdC5Rkoa2fDye5w7fy1
 9YX638Nw0YU6P/xmygdBjqxKs28/6evo79KAWONL0dl20pEYoj3yVz58C3YGLEFe
 p9ggrBf41MjnnMg+D7NdBOHtISfOrU3TtB/1DiGE3+QpMwuOHrQqQ0hPSSBKdW5o
 byAoUGVyc29uYWwpIDxjamhAa3IuRnJlZUJTRC5vcmc+iFkEExECABkFAj2qLwkE
 CwcDAgMVAgMDFgIBAh4BAheAAAoJEEoBwCDmAmD1SyYAn3JBBPs/6lAQ55HLjew2
 suN8XP8RAJ9OBFQhUphqmQ/shjrwbNRBsgDbc7QmQ0hPSSBKdW5obyAoRnJlZUJT
 RCkgPGNqaEBGcmVlQlNELm9yZz6IXAQTEQIAHAUCPa7Z7gIbAwQLBwMCAxUCAwMW
 AgECHgECF4AACgkQSgHAIOYCYPW9MgCeOYgOUTCIsagnCymketJwQoGBEpsAnik+
 bL1lPnomVghlMMUgU8wxB9sQtCFDSE9JIEp1bmhvIChXb3JrKSA8Y2poQHdkYi5j
 by5rcj6IXAQTEQIAHAUCPa7aJwIbAwQLBwMCAxUCAwMWAgECHgECF4AACgkQSgHA
 IOYCYPVI0gCbBZEg/a9K4BAY5HQ7wFOp6u/G+nYAnRgb4zUmf2M57dxEx2hm93pI
 aKP/uQENBD2qLxAQBADMGxA9f5QYLFnR/XZ+Hqa/YCeqFMZ3hC4KnjWBDDXfI0Cv
 HMLBIW5027NPIDeN95998T5YJPDm1TY5Cort72CTDS3eIfoG0iGwIzzLfXrZB7Zc
 1BukNV5NMFeKPO7pX6k4R0aQr0SQUmcdYD7t6V/M4xswVOwcECk/W9BuGA/9NwAD
 BwQAy8LmYyssQdjImAASQABcpdOua5orv0ojYMu+edGmjd0WqhXToUHcDfQgL6YA
 kO/4g37ysvGwlpj8U7cZwabMO/zwnryyOEeGEA+5aCsji4VRZHOkdflcuBOXj0nR
 9yHmPFfwWTxLtV9ajLCP4vXqKPrKciS8SbuLYzvx+lnUiCqIRgQYEQIABgUCPaov
 EAAKCRBKAcAg5gJg9eZZAJ90E4gu6VACob81uH3MxWmgjpG2iwCfeNTe1Wz7EO3K
 z54TjDmC4biJg2M=
 =g8A3
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.58. Crist J. Clark <cjc@FreeBSD.org>

 pub  1024D/FE886AD3 2002-01-25 Crist J. Clark <cjclark@jhu.edu>
      Key fingerprint = F04E CCD7 3834 72C2 707F  0A8F 259F 8F4B FE88 6AD3
 uid                            Crist J. Clark <cjclark@alum.mit.edu>
 uid                            Crist J. Clark <cjc@freebsd.org>
 sub  1024g/9B6BAB99 2002-01-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxRQfMRBACvHk6znTM5boH4k+2+anGxRuPxPPIJgo6Ny385v60FtJjwLwDh
 9LwvZZjpjXi7MM/0FRfUE4bqzrdBtUm6XXGC8v/FTH72TemXR54yr2zuCTcX3jML
 e7wjrO0SO1cttASSeb8OsVQEqiMT4VRm94AYdQvS8bNxbqlog9PYmhh6lwCgwDYl
 Br/IhYSKQTugPEb8nSyP3e0D/izp3mt4NXcULIp0PZFpvnGZAMLq8moZ3cYa+8nM
 kRCWd/1/94lCd1YM8f3lQsaEvRuWaw7rT1ENknSb5TZnEMsTvV03CM4DMzH63Zde
 wgl8Xne5lF/WyiSsjUeSkmvCExFA83fz/Cv8/fk6K2O2Ajo0b33Rb7WLH/gb4U4s
 9ZkEA/48XB6/s0vGFVnELRSXbc6wCHbnhG0/58ewSbJ2XjyIFFFmeqIF2bpLhuRT
 YTBz3styfrjeAqsi9t4gtcEK3vyvF83ql5b23u5/V/+O/ZLwk3kceYmjM0mbETil
 FajrLZjaWXpTRQauL/tsqxItBI4BNuTvnh9bizQY8V7xzAgMwLQlQ3Jpc3QgSi4g
 Q2xhcmsgPGNqY2xhcmtAYWx1bS5taXQuZWR1PohXBBMRAgAXBQI8UUHzBQsHCgME
 AxUDAgMWAgECF4AACgkQJZ+PS/6IatMaGgCgqdklRK39OoUma5sl44pEl7R3GhAA
 n1680hBnTGdIR4wxFY39uX9zK708tCBDcmlzdCBKLiBDbGFyayA8Y2pjQGZyZWVi
 c2Qub3JnPohXBBMRAgAXBQI8UUKgBQsHCgMEAxUDAgMWAgECF4AACgkQJZ+PS/6I
 atPX0wCghHE+X/oyrMbMrCsdwubBf1WudnAAn2WHoVNZpzgMck2MhFdwa/1rAJI1
 tCBDcmlzdCBKLiBDbGFyayA8Y2pjbGFya0BqaHUuZWR1PohXBBMRAgAXBQI8UULc
 BQsHCgMEAxUDAgMWAgECF4AACgkQJZ+PS/6IatOKKACgsnfy7ZCxEWmdnY+c9KLm
 x0V1Zy0An34Ky4kzHxDYDTIoO6XRS48+/aljuQENBDxRQfoQBADouiAUldDORJkG
 K7fN81SWvocuySMOL/dEv6UQnBgR4lmjmaLog3QMbGIsJqiPRLDDS3PMkYf1dgDy
 6hPmMkWF/xd13Vpk4S5sIjrqTBGoE9f0SPbcDPIjRj+htXFcI+qvhvdceYi24Zvs
 xGX90jb+fimZdrJNtobfEqJaYOkrDwADBQQAsCwtAczuP/aM624+UYBrNMCmHpRS
 ZAOAnp7Hz83GafkWynaNRDYan2KsBrZJmbZ3MJ6kyUj6k37Keh1c7pR5DsY202on
 9haB3lTZv+j2QooPyj9Ityd985eqiRwAMBuOrpaCpot7zYlwiG/Lx/0P00RZ+Jdz
 hyidSKrsudGAp0OIRgQYEQIABgUCPFFB+gAKCRAln49L/ohq06htAKC7SFr0uQmS
 9fjEOFsF9oPMMxgFwQCgjvMA6reNmNAm0i6ycFh3QVYEUic=
 =C4zW
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.59. Joe Marcus Clarke <marcus@FreeBSD.org>

 pub  1024D/FE14CF87 2002-03-04 Joe Marcus Clarke (FreeBSD committer address) <marcus@FreeBSD.org>
      Key fingerprint = CC89 6407 73CC 0286 28E4  AFB9 6F68 8F8A FE14 CF87
 uid                            Joe Marcus Clarke <marcus@marcuscom.com>
 sub  1024g/B9ACE4D2 2002-03-04

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDyDmj4RBADa/Icz5Xl+cJUGNxC/tWgXWqcA9VA8GN+PeqKhXS0BnVHntdsQ
 xbpFUUKK4ld0Zex/Rec1jgC/ikExJHHIee8ZVcHqP+tsWexi83/ZvEdzI95diBp2
 Is5fYp8P8hdIBNQSOoc1jVYrTJUaZgJK2uBzbkh/WbipwsQbueRzXqPORwCgsPNr
 StLzqOpjrA7FdUz/JVQf5+8D/1SiKAOFiW4TxY+fS09lqiLs3mbXjvw23iQwLxje
 4vBd4+b9iAUWOsSretSKv6OE9ZlD4FYea8HmMgEkuKfXGc8GvTq4J1uHZ0gcVbrB
 GmxAUBPPaAENYEJfJf7dcysKVAl14ZQVIvzAGJAZHGuegD7uekGKnOEA61R3ze4a
 M2zNA/96I77l0qiMc6J7gXmiD5uxC7FsSCFj5sqTYMgBqzIYEZjU/tTUbth84xcR
 i4X0WNkaILqq1mOcBfmzQMvzG1n1CydmJU6iF1ewle6cIui9TQYg5CESrJF7xid4
 vVXRz+xi6hc1+0bSaoJa3sfpNrSSr0lKGdWHZozWdQjOvTMCXbQoSm9lIE1hcmN1
 cyBDbGFya2UgPG1hcmN1c0BtYXJjdXNjb20uY29tPohXBBMRAgAXBQI8g5o+BQsH
 CgMEAxUDAgMWAgECF4AACgkQb2iPiv4Uz4c6rgCgg7XXmcYqcIlJdDl0aGU8r0Dl
 kfYAn3W4oHUReFhATFkj2d+7zu+Rsu2MtEJKb2UgTWFyY3VzIENsYXJrZSAoRnJl
 ZUJTRCBjb21taXR0ZXIgYWRkcmVzcykgPG1hcmN1c0BGcmVlQlNELm9yZz6IVwQT
 EQIAFwUCPK4tTQULBwoDBAMVAwIDFgIBAheAAAoJEG9oj4r+FM+H7U0AoICIVoBe
 9B8bo1lrvHh+UF7GY/WaAJ9C2mCThFrmqxCr2bCtR12UoPCPqrkBDQQ8g5pAEAQA
 qk1J4LBDLeWs6ZOkPDYYcKCSAu0qlzEf5YP/TcSeZcjJyXILgesFXcayoy1v7ILP
 QSXj4p5uzRyn0fuGqiTvajjxMZz1aSkvgGyS+gc+PDmi4SJ2N/tX2isrul8MK+NG
 eUsLuZaM1JKhgKpq9yuu3D3ELG7ESga7xsOs1V/sSd8AAwUD/20XByIlsUUC/65K
 G/DQ1WfX2gNuy5If9tSPQ6h1Lno5Hv3ow3ktybIoQSxbcBo28nA/Gzg5NFGVkkqf
 OkH2xtS6V0K/WjzsrloBHCPFiKp2yHpXfKubxl8yefQPTMj8hLwlBKrNiN1fz5/6
 29TIkEwDwrUwHxQreE7FAzPMqHORiEYEGBECAAYFAjyDmkAACgkQb2iPiv4Uz4cn
 uQCfX1zNrahRTWz/HRpF7ms8qZqzdOIAn1uuu6Jst43pDzanBHUOBzUP6ymA
 =Bu/6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.60. Nik Clayton <nik@FreeBSD.org>

 pub  1024D/2C37E375 2000-11-09 Nik Clayton <nik@freebsd.org>
      Key fingerprint = 15B8 3FFC DDB4 34B0 AA5F  94B7 93A8 0764 2C37 E375
 uid                            Nik Clayton <nik@slashdot.org>
 uid                            Nik Clayton <nik@crf-consulting.co.uk>
 uid                            Nik Clayton <nik@ngo.org.uk>
 uid                            Nik Clayton <nik@bsdi.com>
 sub  1024g/769E298A 2000-11-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDoKphMRBACXqpAlgcW54cNw4RBJvlbX5GZ4+VGpV8AyFnkkrKelwH+qgViL
 L96W7iXCEQqciAAQ2Jw6AMskSdVbb24Y70foITKGo1VEXBKJci3sdKvuPWkHNlJq
 zGKIrikVHLrD5Yixt1b6SVntWiRJaddiUaI21Zcuechaap3isOAdYrNR8wCgluEV
 qGB0ng92wVENiIaooHiib28EAIzfn+czzPm19gtAM03W/otZJqsHsIGWuuoIC+Wn
 Gr9aGVFGB9NcYXHz+jdwSe3o8oE84ohWBI/JVX4K+xCt1gXBqRax4F1QdDse3np3
 o49bV79VFbaec8htk88NTp6Xwd8b1GaUFXFbtqAN7DbZEz8oB+57E+2q+ajFQTx1
 X6NgA/99QvNMD+SWc73a5SbicKPw0DDktkhHlE4re255nfvgnqjpmxWYyT80Ra+2
 rqABKUrgGgegv1I8/w5zbGBd8h3lO9opMQ1qtt4oAKv/incBh0OouMGyQRINQIMQ
 YQHcUmOu1ds5ijS9B5QCfn89TO4aCoJiS17FRxpJmoNrx30/LrQeTmlrIENsYXl0
 b24gPG5pa0BzbGFzaGRvdC5vcmc+iFcEExECABcFAjq7HT0FCwcKAwQDFQMCAxYC
 AQIXgAAKCRCTqAdkLDfjdSENAJ0b+qcfohYNvN4EcyltP+bcyW2QLACghCW8T6Mk
 uTs7EkA83E654PfgJSOIRgQQEQIABgUCOm67jAAKCRBdUhyM5rFQFmTqAKCZAG/9
 xzh3ZhbTk/vD1RFDFhEjtACfY5oFGV5jon4sJHsZRQ/+fv5F+JCIRgQQEQIABgUC
 OzoIGgAKCRAgFTHVhF3+3Q8sAJ9UXDBTCKXbbpGrYIVmh8+AbFlpLQCeLdXz4Rvq
 ht35oJdscZIBXlEqs/mJAJUDBRA7OgjCTVYoIXkFDBEBAUYHA/4sxrvsZe5bZqPc
 tFoB1KhhLDhVIWMhOrMLN5MPQAV/OHUebDZaOUYn0Rojybh0kQnFhkySvCy5z6vu
 IXiNQF9kwdL4l5mCAuY6zoLQ05ychnUQDSjAR1vRW8AuY/9zLqsk5IscIWoUpIvL
 FscLp5FzPmRIe++UteR5s8lQdrexg4kAlQMFEDs6CTwO7bznZmp0IQEBlysD/RMM
 m8HEnqlCQ/psnaenXQFcKEkNPFWu6fmA2XDYUsauvFYWriILCu7SmGZVPfGpfUGq
 m1nvvrkRim3+5kpIEZQnFkW6o7DsDhFQakcIt/+tvam4sRUxzJ/Dxl/lmaMfJ9G9
 0KidfQ+Peh6Sn0z8j8A/9rFCk0nf+EaUfOhtk10IiEYEEBECAAYFAjs6ESgACgkQ
 gb3TxA4fm3lJWQCgih0UnLvUcL/miI7K6A+1tuPG21oAn05R3obifoeLIsYBGe0b
 rf2GCVQxiEYEEBECAAYFAjs7PmIACgkQtNcQog5FH31wDgCgkMLrbEAc3q3wqVfQ
 UB+Mw7SvsMgAoL1ffYtAmbQKknRfgv3SNAeMfST5tB1OaWsgQ2xheXRvbiA8bmlr
 QGZyZWVic2Qub3JnPohXBBMRAgAXBQI6ux1ABQsHCgMEAxUDAgMWAgECF4AACgkQ
 k6gHZCw343XQqACffoEs3DQRVH/U+3Hcp0P3+p+39rwAn3DZHvQDAoPGTHvcfwJv
 JiNyzU02iEYEEBECAAYFAjpuu5EACgkQXVIcjOaxUBbbcACgxf69HGBrCBjoCJm0
 8uMzStTFdk4AoIwTRhmZKdF16GKxcCavvw9aHRz1iEYEEBECAAYFAjs6CB0ACgkQ
 IBUx1YRd/t1GwwCdHVLbDTjY3/8ti7uMv2y7gOfVDJwAoI1hS0OT2XHvp5vsK7Vp
 aAOf2HYziQCVAwUQOzoJFE1WKCF5BQwRAQFqlwQAriB57Dl/IZX1CcrxKXGsZJUi
 Pqh1Pnzg0hhwDEmzlo8GqS61IFFchDQLXKRA8jHHy9DmKNQUVTjFkiasj6gp0xDE
 +S4jLt5+CVCSG/3/rCk1m4d8pE4lfB46gUzKxD3TPR+fpzElaUaZJ9bAYuXpCGKt
 7q3Cljp/Ri1/dBfhq5WJAJUDBRA7OglBDu2852ZqdCEBAZezA/4yUw6AZEleESFo
 HGwHKyoqeqRKm5V9FgfJ2QDfiqp27HSQo4sLht/83yl5mkYs3dB+JJNWQkgC/62r
 xyInPK2zNPnlUoHL27NI/onXpVFgPwLiUGF1S4s8VSliiL/mcaEKYSr+F1IZPeEy
 /Rwx54eQ4qOvh+JTJkwpuJ8e8+yanohGBBARAgAGBQI7OhEqAAoJEIG908QOH5t5
 8FEAmgNqpoJJax89oWyAUBF+iZR2hRIdAJ9kp8cVFj3NNWZ7QNfKfIB/xbHEwohG
 BBARAgAGBQI7Oz5mAAoJELTXEKIORR99g8sAoL/YU7ZZi/21I5xcsIa5iQ7yEVq2
 AKCn7/iYCoo/aCxEuzQRL3VJ50A12rQmTmlrIENsYXl0b24gPG5pa0BjcmYtY29u
 c3VsdGluZy5jby51az6IVwQTEQIAFwUCOrsdQAULBwoDBAMVAwIDFgIBAheAAAoJ
 EJOoB2QsN+N11V4AoIFS6k+sbT58GASOpQXyDQleuS7GAJsHiHyt1woHN7mOxpo2
 KiqoT3d/CohGBBARAgAGBQI6bruRAAoJEF1SHIzmsVAWDrEAn0AIgsTVcu0FFhv1
 0syvJpwVqqm7AKDBJ2MZAt1EeT7WR8JKfB47g60StohGBBARAgAGBQI7OggdAAoJ
 ECAVMdWEXf7dV5AAoIIbg5nm3XE1Qk9Nv66nVZZbqm+eAKCCBQ3YptghBWkPwLUb
 /7BO94GvX4kAlQMFEDs6CSNNVigheQUMEQEB/h4D/3gjPGl2VBCgKeq7wxccGXqD
 G/1tkgkSaujnC5ORad5AkNg6ZrgmH/h3b4CUymVm4ddoLwzgaq83Uo7nvA8v4vRU
 9oKhczr8+jfqhSUF2wWUuNBDZreeFWuVJr7CJyEEPfv+wYTbNLNrPRTT9NLweq94
 V3FGu3c0T7z2VCiDnS9piQCVAwUQOzoJQQ7tvOdmanQhAQGm/AP+L1f1FWsBHaaf
 gVLxN8D8jNR0htpU/xrW9vTp/YvLrNkx8ihGH3y16lyAZlXON/ZiLIVIdKXBkuE+
 zxfzY87s+ZJBEQJgj87khRsetL4qoUZIObgE4AIv0szu1bwXiK+RcPo7jPnpg2Q4
 cYc/jFpMM+lkelmHp7lV/Kz6MhN+dd2IRgQQEQIABgUCOzoRKgAKCRCBvdPEDh+b
 eRZqAJ9Fp7+mNG54DqPDV1J7qP4HctZkXQCghjz28SPd+DBkzT0nLNsbJKQ8db2I
 RgQQEQIABgUCOzs+ZgAKCRC01xCiDkUffQVFAKCanD9OqYtytjpgJPwS4QoRc2j8
 lgCghRujIjNIsb1jAC8mchBbENHfDM60HE5payBDbGF5dG9uIDxuaWtAbmdvLm9y
 Zy51az6IVwQTEQIAFwUCOrsdQAULBwoDBAMVAwIDFgIBAheAAAoJEJOoB2QsN+N1
 uCgAoIwsEXnbbmB+PLB3TPW6gU/BhKp0AJsEJIq5VF3qH+mjqiKxgtq+vNQ5jIhG
 BBARAgAGBQI6bruRAAoJEF1SHIzmsVAWpPkAnRq+OwehLht3RdZ0eEMaBovxgre6
 AKDU2u+ORxySutpVAXqt1nbxg2wJoYhGBBARAgAGBQI7OggdAAoJECAVMdWEXf7d
 jmAAn2tmOwfDfggEKVuIOl6BnqdPZYLKAJwK/sBvu+n1hoFldXi52uR0FVgQc4kA
 lQMFEDs6CNRNVigheQUMEQEBzqQD/1ZjUFZkyCJIjHhITiaFskyFodgk3fngLihn
 vt52cTHZGk8F4aoLTAIhWmmvBkk9rNWVm4yAJZZRAHbz+vtyKGYAzBF8oWgski8X
 QxLp/rU05BcwOQvVGh5OY/VyJY9un+DJ2cT+7TvL4VjbCqURSuA7fBBu9SYE1H2N
 2Ef3jnrEiQCVAwUQOzoJQQ7tvOdmanQhAQFXNAP/YbFNaL7oKn3TecpmCHnAooT6
 VnTecdTfEgbrPUnaucDMgmC+uGxLOtxVhx/X7KxMIX2WEit+bnJHH3mOCzEOnqWe
 7XvW02jAYnPuie5BL6a0CP9Hi2/TXtz33obFVQH7KyGlN8CHfuGhMBuILZ5qN1pz
 KTlU2V/7D8cM/YO5dK6IRgQQEQIABgUCOzoRKgAKCRCBvdPEDh+beZI0AJ0SJ6bM
 9HKt05Hs7VSf4jzRVpt9+ACeJLZbuklMTIYc60RYx3MQeIJ/AOmIRgQQEQIABgUC
 Ozs+ZgAKCRC01xCiDkUffW5GAJ98fM3fg05lK3Qkt+/qrfJ1vR3WNQCdGD441Gm1
 Y9y6PYGN6ix+3raAV6O0Gk5payBDbGF5dG9uIDxuaWtAYnNkaS5jb20+iEYEEBEC
 AAYFAjpuu5EACgkQXVIcjOaxUBaMkACg6uMcI7/L4Dhdm687gDIuGAhcBHsAn387
 0y82CP64+tNmsYIJyK4xbXoBiFcEExECABcFAjq7HUAFCwcKAwQDFQMCAxYCAQIX
 gAAKCRCTqAdkLDfjda79AJ9reEvg1IeU+fK7dvwNG17p8izWSwCfQitEiQEgZejn
 712syoykKXBg0pOJAJUDBRA7OglBDu2852ZqdCEBAeH0A/9anrxTdxUye7niuosZ
 sHtaklLA8sVgcZjGrW7Kw+islIT0qHhIajL/KPfIlKrzdoJT8MJGchvZdBLh53Qi
 DVMJ8U8sJN9Fnmre5QkNXtwR1fyG3okU0gmw5pQELRtBfdKs1Vn3XbgYwEAlXmOQ
 VS947nLloaHtOVlDL4xqtj2fGYhGBBARAgAGBQI7OhEqAAoJEIG908QOH5t58WQA
 n3kDIa6CF99xuovvh/p9cmSWVwdjAJ9fabaZj3FFr2ZBgLhKdvnlBl35dohGBBAR
 AgAGBQI7Oz5mAAoJELTXEKIORR9944oAn2lz4goNkImYgfUFquPOgclQ1kxFAJ4s
 ER2eLyl2lWQoRsOds+SX2ikb+LkBDQQ6CqYXEAQAkEkfRicoO8I42BfA1Tgaut/H
 eUdWWLO/nGx6hL2FNkQ/vBhjinsvi3vd6+4eUE/O/3deTSGi9GtgXplCGxaDuF/n
 r9JjAobOQ0f5TFLiILdy8OL2SZE6VHO6VfCoGy1N7Eg3jvzJ8pFNxTdVww8HIlAr
 nNn8Kqww57uustQYISsAAwYEAIFghSt+tj3C5koFh7IXPLNHrux5XsDMaCUcDTsX
 jpEQ7WywzHUVgL2QHxeTbZ6ZMp6BkPklsgPdNpFEOCCaUFzJ/z/1/dTGXPMuWgGI
 nuy0bFA5mHdiisjLYP+tvRY170mVSjB+qVRErM/fzrO9eQtKkaYLozWXPTZCN5XK
 k4sGiEYEGBECAAYFAjq7HZsACgkQk6gHZCw343UoNwCfXnf91HKKcZe7yb7h9rJA
 PbUkrewAn0exWATudMNC4IQf18YvII1t4Cn8
 =9wNg
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.61. Benjamin Close <benjsc@FreeBSD.org>

 pub   1024D/4842B5B4 2002-04-10
       Key fingerprint = F00D C83D 5F7E 5561 DF91  B74D E602 CAA3 4842 B5B4
 uid                  Benjamin Simon Close <Benjamin.Close@clearchain.com>
 uid                  Benjamin Simon Close <benjsc@FreeBSD.org>
 uid                  Benjamin Simon Close <benjsc@clearchain.com>
 sub   2048g/3FA8A57E 2002-04-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =/2rY
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.62. Tijl Coosemans <tijl@FreeBSD.org>

 pub   2048D/20A0B62B 2010-07-13
       Key fingerprint = 39AA F580 6B44 5161 9F86  ED49 7E80 92D8 20A0 B62B
 uid                  Tijl Coosemans <tijl@coosemans.org>
 uid                  Tijl Coosemans <tijl@freebsd.org>
 sub   2048g/7D71BA74 2010-07-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =JjyN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.63. Raphael Kubo da Costa <rakuco@FreeBSD.org>

 pub   4096R/18DCEED6 2011-10-03
       Key fingerprint = 6911 54FE BA6E 6106 5789  7099 8DD0 7D21 18DC EED6
 uid                  Raphael Kubo da Costa (Personal key) <rakuco@FreeBSD.org>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 CnnWxLMKpuIcZBJTJj4DevmqihGS
 =FjO0
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.64. Bruce Cran <brucec@FreeBSD.org>

 pub   2048R/6AF6F99E 2010-01-29
       Key fingerprint = 9A3C AE57 2706 B0E3 4B8A  8374 5787 A72B 6AF6 F99E
 uid                  Bruce Cran <brucec@FreeBSD.org>
 uid                  Bruce Cran <bruce@cran.org.uk>
 sub   2048R/1D665CEE 2010-01-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =XNzi
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.65. Frederic Culot <culot@FreeBSD.org>

 pub   1024D/34876C5B 2006-08-26
       Key fingerprint = 50EE CE94 E43E BA85 CB67  262B B739 1A26 3487 6C5B
 uid                  Frederic Culot <culot@FreeBSD.org>
 uid                  Frederic Culot <frederic@culot.org>
 sub   2048g/F1EF901F 2006-08-26

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBETwuAsRBACaptn8vJ5o5RZkWQUvr3EpBW91+hZtYLM+oBpk6+BayiPAW02f
 aAP6XTrl3GE6hK5+lZWMdxeu733Ukq72cLwbSNefpXi1A9/7IU+bsUWKgSRL/O4z
 HQziOHx+UgFr+uWdKbIssFmIPSJbsI0IOZV1p1mLVDCz97QG8JvyJA7AEwCg7XLC
 0Rsiev0R71ErTCHmuZXoVt0D/ilNo5WJyA8mQ7wmfQsRUnV+GXXOYk2OdhrfqPnh
 B4WVqBd/duf7Hn8TzGF+ee90N7PjlOXa7VH8wQcKKSNUDGWcV++xJQ/ZxeB7g2Ya
 R+JeQy64fVu2+Zi8IehUt96k85mVZtb09J9C+t4+isRsZUb+A/tlcMLlYxcPSaai
 vGA+A/sH2RRyDJFTMGfqmpRSpm716mgWE1Oyk8rjqpRLOjlrgmORHNSSIawSpAHs
 PQrC5ouBWFRe6pCBLpd+xcvaqmnkVBYrVZFmI2ElTYWwviF8aQ7HHP7TVek4EZoE
 xjQ2YDxKlFN287s9yc8HXIiPcwLO6yPhDa1ZLEoebGLDp+nHI7QjRnJlZGVyaWMg
 Q3Vsb3QgPGZyZWRlcmljQGN1bG90Lm9yZz6IYAQTEQIAIAUCRPC4CwIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJELc5GiY0h2xbJ9wAoKf/6b8O9hlrKE6kFfr1
 h4FuwX/XAJ49WDVUxcf+jFYluXwHmzRW8biSarQiRnJlZGVyaWMgQ3Vsb3QgPGN1
 bG90QEZyZWVCU0Qub3JnPohiBBMRAgAiBQJMuXzFAhsDBgsJCAcDAgYVCAIJCgsE
 FgIDAQIeAQIXgAAKCRC3ORomNIdsW/A0AKDVBYK/Y91Wz31ws7Rxy7/LpvL6DgCg
 4jNUurzgT1i0vFuBfPLQx5LEZSe5Ag0ERPC4GBAIAJFsfHsMTmxdNfKtzMpGOJF0
 dLMLwwjPyKkVPtZZ5LZclo+7jjyg7dAYvY05o2ppQ1TH0LjTV333qWItSbv88Dkq
 f/pn8tS0/for45dVnuJbTAkkc+khPHCJ08iZsl/X1IYBj3bteb1z2jZr6M2JEQyN
 qUbbuop3zDoOVMx++lsR5+Q1/+BVuJGw5SuLVhTdNOjiwta3x+eSH4Jzqfb918SB
 uiaQyPcdMGBDd1VyVkJZU2dIFp7olJbi6T+leY1+TUdvXvzmBqB/0XtQfOfc3hQb
 Te5HP9IhiAQkhe9fdsOZpcAJuWS1HvKZT/Ck8UqKTWU3epzTlEN5LiTuisRiUGMA
 AwYH/3eopRoq31zWXlfWI5bETU/DDna48gzpz/P8cc0ge/7YO/sGyB3jtF3D1htI
 rS1dp7I1P8+H42vwAje18uxg1IKZeQ/ffFl29BTqWM71rALuPyXR80JjT6gggTRl
 Bj/YEVUyxD+PXG2qRBNtYOCDLUtKbFzpaGV/ViONkSfzKTNIdjyDlTp8UGWRXteI
 903NQSogGxVew/0wrlyXURoBKWZu34Y6awcvQSmDGLzWqEpVbyVofAjjtE06iIXF
 u9vd3RPua/WkTjZELE2Xs6hkxGoWfsmpnsKuMS4zZDr0olIbBtMiQGp8nbOQrJPe
 5ax09EyO4fJYj4KqY7vfHdMMjByISQQYEQIACQUCRPC4GAIbDAAKCRC3ORomNIds
 Wy+LAJ9s/SE8+ysRtHJq4zYNkOyzXpt6VACgjcPRoqpDhE0y8V+QniOWN6eJ0Ls=
 =h8ph
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.66. Aaron Dalton <aaron@FreeBSD.org>

 pub   1024D/8811D2A4 2006-06-21 [expires: 2011-06-20]
       Key fingerprint = 8DE0 3CBB 3692 992F 53EF  ACC7 BE56 0A4D 8811 D2A4
 uid                  Aaron Dalton <aaron@freebsd.org>
 sub   2048g/304EE8E5 2006-06-21 [expires: 2011-06-20]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBESZZ5YRBADZ18WQp9eda97kmLEVNkYUkTbWn90/9ViXP5lWhWDvdIwXXa+S
 byVbZI75QkYrvhhyDQPwK2pwF3v/nGaBhQvO666uWWyqBAC+FTjc6GQ/tVTe67Pp
 dBVlY3X2QadAIWOYHFWNhG58jAXDnuz9po/w/h5t/6wayVElamu/jPBwBwCg48VZ
 4q1oQ7M474YPBsyLfmkLEu8EAJwdgos/BxJ0a39PFtI768+6SS4e+B7qt5UDd30l
 87rvKoW3gXuf4Vn00Y8m+aK+mUjsWeQfDCF6Kj7/ecGNSkfvwmsEDnRMujyapX6J
 wuJ6DzKgrc3zEBXVK5g+JBrSZDGetkdl8jndG0lmxIqxqnx1R+uxiWNs9NAdeP1P
 F7vCBADAPoKaAEW0LlsOE0zIylP5e+LTBd6MQeZ8zISlNqMHDX9F174Fo4CFH/pI
 nW588yf/ChScuONLPIPbMBkvoC34yLEGluvjZov0cjySqzcTN/TkZ7iH1NrkYe71
 /z0Pe6jWY8p4KjK6C6dKok8b1ZI/btmJyuv6bkTzM5kQlxg43bQgQWFyb24gRGFs
 dG9uIDxhYXJvbkBmcmVlYnNkLm9yZz6IZgQTEQIAJgUCRJlnlgIbIwUJCWYBgAYL
 CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEL5WCk2IEdKkTFIAoJwahC11/B2TXIk8
 9PioqX0c5nU5AJ0YGkpXIzDzF6QskMWWQq64fMuE6rkCDQREmWehEAgAzFoPIPXW
 +sMFJs/DzCYMzHglYmNzHr8wCfvNq3hiiHUfk9EtcUaMnVI6TMkoEEF4mXMpf7oc
 uCjU0+CZMf2GV+bLkxs2rNePyjzTuoig1vsl9RFA+1tMfLrUsUKwoPjLZUbHHApl
 S1x4k+TaLanT+tSQar//WNuA5JrmxRXSyYXu/2y5VSi+niaNKupNYXfqr53SuW2J
 xh90I90hzgBzQypWNNDEIN1c/lkgIvWm7RbbBliX9Y23iUeFkzmLbOUcpLSy3zj3
 9I3eCshQdFv5UT54N8rMAg6hGC5jfeqy4mVpMLWst3Y/Od+DBv/F9xnaquGW7LYp
 Pz+H4fJzdC79hwADBQf/XyMpsvO4z1N+8DaVybwMedLd4ExSkIAsAI3MTS1mtNu9
 mFm9GQULWvUH1YXBFnVVidibc7zdTwVEAPFhc/uZ5unxqzbUAj5whkCBUF53ZpVv
 nsskZZ3aUEh4hEM6S1t1kc7+HptpMgaSxEcjy+ylybMEzBQ14Mh38sEavfoeDvfb
 aP1AtLQh/+ehQZHeA6px3PvdDeevM6zLoAY6yEKtd5QaSrvhIuP91HKeQjPgM8yy
 IZTWM050axPzKZOCf2VsB78QUNVGcfFrbScleBvaVbdOh/ZgxGOgD7LOhhgivV1m
 dLQ+3W66/GuUVDHap5hdzPuoUgFTodlzilfqjpaekohPBBgRAgAPBQJEmWehAhsM
 BQkJZgGAAAoJEL5WCk2IEdKkNGoAoMBfaOMRp7+OtWsx8pkGGlFszVCDAKC0rEFY
 lBcUW4xcel1cl7I40JK+lQ==
 =bsX2
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.67. Baptiste Daroussin <bapt@FreeBSD.org>

 pub   1024D/49A4E84C 2008-11-19
       Key fingerprint = A14B A5FC B860 86DE 73E2  B24C F244 ED31 49A4 E84C
 uid                  Baptiste Daroussin <bapt@etoilebsd.net>
 uid                  Baptiste Daroussin <baptiste.daroussin@gmail.com>
 uid                  Baptiste Daroussin <bapt@FreeBSD.org>
 sub   2048g/54AB46B4 2008-11-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEkkLyARBACYi5Qr3qvyrpp0rgqK4cAwteOZbhB3Jt2uxuzrKnKeTw3y4DrG
 lD+7wAwKmLapXFobxCmndhXNnWw1Viy+hiBN5id8c6TmLF+I4lbxL1Nmzl++ifVr
 OdOTqXH/L6kbKF80bY3zhgzR6EtH/0UjL6aXNWyLv/2l88+vx+Qrc5NhJwCgwzkS
 RbUjFKhyAxh7APNTUqV/ZfUD/3nnu/ti17KqQhiRgm6qup2ZPOOpOtlJ8J4dDFtd
 crmhH/ViE5ze8hPVTymufvLj3dWJXB3gA4CJbMmD9qQMaNJ1q7tEIe1MVNUEVop3
 4BEl0oRJyeUlT9QuVqM2GzsBeIiTikZMMpRlZOuuYwm5sbx3nrDHaiBKAkthZF0z
 l9dlA/9QdSfmViz/x7B9Oa7WfkvmAH4/nMIxaBsliNAtK6peaPFo9M03wgfh0eo0
 3JjLAVFbembVkYkA9HqqMFx7Z1W0i1WJAr5SC7gX6Pf3pQPmKIKJKJykXzIRmL6M
 boUYksuTrtZIDiz/luiEg3wVUONLe6iX18v4RzvS03F3T4HAULQxQmFwdGlzdGUg
 RGFyb3Vzc2luIDxiYXB0aXN0ZS5kYXJvdXNzaW5AZ21haWwuY29tPohgBBMRAgAg
 BQJJJC8gAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ8kTtMUmk6EwjzQCg
 u6livnP3Mpb8zzzAvfNloYFVW6AAnRwemMVD3FRe1Rn+Ci3lfgySMDmltCVCYXB0
 aXN0ZSBEYXJvdXNzaW4gPGJhcHRARnJlZUJTRC5vcmc+iGIEExECACIFAkxO2FcC
 GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPJE7TFJpOhMb0YAnjOkFOYw
 8gjML7yPL7w3WNukE/XzAJ94L1XFYK7seJA4zHkMI1nTG3SZjLQnQmFwdGlzdGUg
 RGFyb3Vzc2luIDxiYXB0QGV0b2lsZWJzZC5uZXQ+iGIEExECACIFAkxO2G4CGwMG
 CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPJE7TFJpOhMSlsAnj1fB+Mtca/J
 umANnc/GL7iWGjStAKCkEJmZyABghRDR8HxMzJEgfGYZ97kCDQRJJC8gEAgA3nSj
 7ISAocQ76ew5bSc+aW/cLqnAvWnEFOtwneahbOOrwpLRt1CtCC7bFsWnkqsFJT6N
 UFcc1dJl0D0+JMql1+uvyiBK4kLGhw/kayWqGhWVYAwul375lLxyj+Er3zGAMdLv
 vbGtg4+8vt6jpF1CvKLQzGQ3UJDlCKz3XST/tRUUFoq/5lD58wqJBOyjKgv+nU5g
 nmVJbmsNtRH8gArX1b1Mld4pnfYdMcRVpbna7Ct78GJDbvsRZnR+YlMMc7De0zd1
 /oeYo7TBc8isPRxFvdd6d6GIuDPuiK6EXZphrwzQSqG3/hp9SHgC6of9yVzP3wFi
 mrVRyyUQKVHYX21u0wADBQgAvbwssU0S6THyBaPr6S+tbTKS8is81SZ87kiUmu1J
 /qyKHXkl/aiC39DBX+a2nr9hUbtUsdYlEmWf4LMACm4jt0mPKrL2EbAUSRCVqJ0M
 c9TliU7X+ULExN7DNa7B93ux4TaGr04CjEuQxfdg3Ob1YDeJ6bzKIK8f64eB51as
 31mUaWC5Jwsj8O1XgP/yNvKi0vnJb4bBava0h2U75oU9GzeWr644KRnh2FGKwpnX
 HSqFq3opG/PR4PbSYkf2R2Eeo7Ox46iCWRrNjjgHXK/GjH8skjXoWWmD9S0h73b9
 KNDXRPD49G0P4yvNV6p08laVUl3G6A63aA1/cBqVGFsyg4hJBBgRAgAJBQJJJC8g
 AhsMAAoJEPJE7TFJpOhMLooAoI1+f30zI1xxIXjy08NLxCQv+9nbAKChzUNzc5OI
 D2+VxC1zkCRqhNa+rg==
 =NqtT
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.68. Ceri Davies <ceri@FreeBSD.org>

 pub   1024D/34B7245F 2002-03-08
       Key fingerprint = 9C88 EB05 A908 1058 A4AE  9959 A1C7 DCC1 34B7 245F
 uid                  Ceri Davies <ceri@submonkey.net>
 uid                  Ceri Davies <ceri@FreeBSD.org>
 uid                  Ceri Davies <ceri@opensolaris.org>
 sub   1024g/0C482CBC 2002-03-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 kY8idgc=
 =eKfA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.69. Brad Davis <brd@FreeBSD.org>

 pub   1024D/ED0A754D 2005-05-14 [expires: 2014-02-21]
       Key fingerprint = 5DFD D1A6 BEEE A6D4 B3F5  4236 D362 3291 ED0A 754D
 uid                  Brad Davis <so14k@so14k.com>
 uid                  Brad Davis <brd@FreeBSD.org>
 sub   2048g/1F29D404 2005-05-14 [expires: 2014-02-21]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =HfL5
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.70. Pawel Jakub Dawidek <pjd@FreeBSD.org>

 pub  1024D/B1293F34 2004-02-02 Pawel Jakub Dawidek <Pawel@Dawidek.net>
      Key fingerprint = A3A3 5B4D 9CF9 2312 0783  1B1D 168A EF5D B129 3F34
 uid                            Pawel Jakub Dawidek <pjd@FreeBSD.org>
 uid                            Pawel Jakub Dawidek <pjd@FreeBSD.pl>
 sub  2048g/3EEC50A7 2004-02-02 [expires: 2006-02-01]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEAeUYARBAD2RoYfLkSt38R06MpFesDgXVvgSb7q2GGTiMLZE7iJ8iKQU7Rx
 DkpW7EkpJ/YGPXro0KumkIGoPCsMF1eLENUhGhyMosN5Yb9Y7DXsOv3QcCKIfBlM
 P3Y+Y7By0GvSYPvYK9GZI2ZvSXyTraxB1eO/7c+aqS7wdwx3bCsVKnyzBwCg+nXQ
 izSD3wmwDYxffxN4dawiD2sD/00L95dq5XhM9nISjWJOjGsPJqyzoZZH2pemOgcq
 SeNimi0yWOWeZh/bxbjUYI5RXdBXGdwQxW6DKFU9o9NFe4se1jZcbPjuRtkbBXqz
 Mkh4kv2pvZ+rHu41kqzOZ0z+rbZld2U28R76xtx3RI4OXvJ8z01RHzAEwJ1G6s3D
 wI6iBADy+KSjJmfgP1rAcNPuwW7T7L2H9fLNTp3mmWZZDj6n4fykcwM9Jtz/K4QE
 i3GHNB2AnmR8yiPE2m87ObsKV7d8UK4WP0OLfbr7d7TZ0jDscBhlyfYgKYDFHaJH
 8O+L7df2oQU31wYEvYOP/mSTPO7F5TJZm3/Pygp/JkKnPDCnY7QlUGF3ZWwgSmFr
 dWIgRGF3aWRlayA8cGpkQEZyZWVCU0Qub3JnPohkBBMRAgAkBQJAHlGAAhsDBQkD
 wmcABgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEBaK712xKT80dOwAoNjy2Xrebr+p
 AQroKNQnIzaR2QysAKCXRA9XldUcwxSOzRJNhDktAKQbZbQkUGF3ZWwgSmFrdWIg
 RGF3aWRlayA8cGpkQEZyZWVCU0QucGw+iGQEExECACQFAkAeUbQCGwMFCQPCZwAG
 CwkIBwMCAxUCAwMWAgECHgECF4AACgkQForvXbEpPzQudACbB3QlE/GfSY+umOHI
 y+3UjdMKuGMAn2JC4vrcEPwg8XMF5iEIaEZ0tNmVtCdQYXdlbCBKYWt1YiBEYXdp
 ZGVrIDxQYXdlbEBEYXdpZGVrLm5ldD6IZAQTEQIAJAUCQB5R1AIbAwUJA8JnAAYL
 CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAWiu9dsSk/NByVAJ91gG7VGmIK1H1LyHnW
 ZPI8T7WRBwCeP644asOCGfje3+NjA0F9OHoL2z+5Ag0EQB5RhhAIALfZ2Kq/Yd1j
 X4+kdVgCQqHP9tEHjYLwGICL3Y1i+whLqUx/X+MZmt4vNZLaoaqRXhMD8A5c9tN4
 06ODB6afzS0feQE/s3j0bKRviTvUedg+CLvt9anqf092gRt1MnKAAWsw+WNqfCNI
 xsONpWWS5LL11PLyEOhxqsEvcx2IpswjG398MINFwHo7dUielCDpAPgu8tCVLpWb
 GqUBiWdqzq9jxvIS7obYUmr0VBqElP16LrcvoUs8W+AGvkfTZW3iX6yPhfpnycKy
 OnStwtO28Ud2BlRrp1YLJWv8oZcYDP5p0GyhbmCbj6qG+BrA8XbIgASFZHK65CWr
 ++Zc5tztIBMAAwUIAJVrsEErdqxbj7qdJXVebkQZLe/hr5fFOGdOwMmvNbsI2nHj
 0B/L8Gfw1v2N6K5ST68mSH5gPpDDkLqDfqY6OcN2LBhVvOdEGJv7kp8x0XK/vsbj
 jARiO6l7ZrtH4E78oiHzYK1yGFNMi6c5zpO6BXRUAVmKptL/BRu0UPRMfScyIbnP
 gT0dcOiTazJ5U9Ol+Mjk4S/YLqe/05JQvmzKzSht6E8BbgiZxwsrWB+CLpLwglbg
 f4NX+BAjApvoesbhkLOY03bSgP6CsRbL7izgVmfAHbOJk5eIYjSEIOcqIMyg3cp0
 kZI7omon6uhjl36Ad1uEwjkW7jPgCz9a62bLr3eITwQYEQIADwUCQB5RhgIbDAUJ
 A8JnAAAKCRAWiu9dsSk/NOa+AKC/grZ0DrDsO9LtCEQKwTcP7EQYBQCgsk9ZmVug
 9caBiftOC/+/0ej5qqg=
 =/cMH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.71. Brian S. Dean <bsd@FreeBSD.org>

 pub  1024D/723BDEE9 2002-01-23 Brian S. Dean <bsd@FreeBSD.org>
      Key fingerprint = EF49 7ABE 47ED 91B3 FC3D  7EA5 4D90 2FF7 723B DEE9
 sub  1024g/4B02F876 2002-01-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxOCiIRBACyyyoMk5OyGdOkR0a4fj8zPJ2AOielQ1BYv7JlIWdNeMHdQ0gj
 liTgXwDimeBnElw7sNrmdfocfwKbmX33exFPa3AkJgLflBcuH9+xE3ozgzMl6t76
 QL90PPIc24Er670NnhF7Smvubus4IdckvM24kuUTINmiuFzVwuwWdXdwvwCght6R
 HPpuFeiMZHRJAiHmu9AkKrkEAJRLmRGgdqTQ6RRIQobqGS+1grl6AsXHzKfvjx8I
 //12yrFiUcXE+167I529OW2i4ilmVjBmnwwe3750ZKBIp8OUBkMkfMuTSyCCFD22
 CX4N7D68d8eCJiCqv0jMZGnoWoMulmWzdyplcg/FhdLzUfpXLWX7/9gzy9k8hKBT
 Ou2UBACRLG7zwgKcYx4yjHhsCxuqGOeKtcfF49ghCp1s+wPsnXy8b6ZAY3wFeHC5
 LFyUsQFarizV0aeqJoOXEB296xZYPpgW6C+rajd1WVi7zhPxsfYedldX8HtGDMKm
 FRN88P75OGjMdFOYrpXTqUAJnoTUN4UynLV6WbfM7Cne0syg9rQfQnJpYW4gUy4g
 RGVhbiA8YnNkQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI8TgoiBQsHCgMEAxUDAgMW
 AgECF4AACgkQTZAv93I73un4TwCfWqT0UeeEn9qstLTycDZF6oiKUusAn2dZRiNX
 06KUv2qJk2g88nUsBXgDuQENBDxOCiQQBADXY+I+CYMmiant5TBMzh5JfqhW2FXa
 aZDgi5XTVAStL6AaygeLIaVSSUUuOxiD4JB7vxHYB7pyVg71/lg5moud8NP2HNKW
 YR2mZjCQ9bHRQRqqPBTMrSHJpq10cZ6grxvVmte/oC4cI35wL8HEe2WwChZgk0tS
 YrA5PRt/UGWLLwAECwP/SxokqxcRa3lZqkpdwLgLWpyx1KNBg7wIJYLmALI0UxpS
 ezweD7OukikqZ1BYlaaWZ7N++r4sNDR9WTIv0ySNovxJnnlyo6FzD9RD7ijQbAvp
 nhpikigC+GvdnvmreMXYztc9WvFeJT/S8LGDkDHcm0ECmBDo3EA8W0+sOQsZxk2I
 RgQYEQIABgUCPE4KJAAKCRBNkC/3cjve6eroAKCCMN4s5AqvTy38BWmspFvSu90I
 IwCfTGutfs+PGUY9JJoabnnfJhfIgNA=
 =MFJO
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.72. Vasil Dimov <vd@FreeBSD.org>

 pub   1024D/F6C1A420 2004-12-08
       Key fingerprint = B1D5 04C6 26CC 0D20 9525  14B8 170E 923F F6C1 A420
 uid                  Vasil Dimov <vd@FreeBSD.org>
 uid                  Vasil Dimov <vd@datamax.bg>
 sub   4096g/A0148C94 2004-12-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 XmPkHj0KHckscg/fYw==
 =Yp1b
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.73. Roman Divacky <rdivacky@FreeBSD.org>

 pub   1024D/3DC2044C 2006-11-15
       Key fingerprint = 6B61 25CA 49BC AAC5 21A9  FA7A 2D51 23E8 3DC2 044C
 uid                  Roman Divacky <rdivacky@freebsd.org>
 sub   2048g/39BDCE16 2006-11-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEVa4hkRBADRcg44myl39Jv+OO9DMl2XjrS9JwguZSVjCHY2Tj4urjsEjcwf
 3ykYpJbXkK0KHHP5VTfoIp0MwoQdS4Xx5uHMHg/re5gws7KU4DXFmc9gWd1+eVXK
 PEMfWVG94qS7pG9e5aS7znglPNVUUBMKVI0VgD4fsML/92RFJl7iLFY7uwCghVfP
 952asGrNrV9T9+GBOxKUjvMD/3be37yXGBcS2f3Py6gHbv4vC0CFtfXUM6Zclz6Z
 8FGv0sYDaTW94FPkXqmcUaIjH5KMyig8Y93UquZ04stFgYkxwku1drHZb4hnuqmv
 NR4qvycMye1dMC9824+FpZkhP6ItjMcbE1PxRhQVU7dyO0dFyUlEEiMrTPhzLiJj
 aR6pA/9nW7NSJIaSnDrJ8Uq4NEIjyTidU5JCZLJJxTbSbEe5FrOSINENppVbmUzj
 CMXqyP4sHXtEA53Dl38dDjWz08A/c4dK+lwxtjDQ0NrLpXHrnqWc7tNW3XtayCiH
 KjYTUbj2kHV4Kva73zJBAlN0N+D58TfQQDisnaw/cGebU+5/ULQkUm9tYW4gRGl2
 YWNreSA8cmRpdmFja3lAZnJlZWJzZC5vcmc+iGAEExECACAFAkVa4hkCGwMGCwkI
 BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAtUSPoPcIETDXXAJ4t7ojZLL46SN/zLVTT
 4qylgoqfNACfSvpuziRIUKGLO/YdkYe1hiJqknG5Ag0ERVriIxAIAInh7G4TY8ky
 NObKXToSjpvxNhY4JQMsJ43dCHTkT6CwAes96mhAscYF3KfBcIFhv3Oj6LhyMe8l
 J9A8wcAPnYzOzjiZLrITF0IlVM1L9VT49tkvidOUMykKvluYKMmntH8fCi5pBKc8
 Y7FQ5Kc3MZ/2dge5k95mpuWmuAjAVJXKd2ONAPSRwnxplJo1kA7Bvp632TRbDEjx
 mwtg48FI4Blwu19i8rpwzRf0iCp78UF2ypoyrRqzudLXcMT4yS2yU4z4mbU91qbc
 PNCkaMP9/HyoHnIA38bs0tMUUawKCeQZgCkTV1R+V/J5uoRIMsSBGfX81RADvEB6
 HtYPrUFCYs8ABA0H/0PBej8RqZJmWU7qlpoEX4gEG8FpcsNG2RGNjuSu6l19xk1E
 RF5tYg2N3hnqioWri1t3BJn1qpHgSL+mJJRqf00c2U5XUKuxAvTWjARyqa2G+WiF
 hPc1pmE9Ty2n9XkmT7G3jidTNHXbqsjEK0OCZdLJHOkTuStUjn8Mz2PpvlZoj0Mo
 VYEE3Paet8mFH+Y/EjHKTe30RymAOQOlc3gKEP/2qkp0Zqkb0FqklLCUQvvjn37k
 /oIcF/lvmIieN/on565dggchLRWCX7dMI6QDtEnd72jwpGo30oVUC3NlKoEggcFA
 jiVbPR/F4UhBtjcB6GCiLHvREKjL17gCVwMv4mKISQQYEQIACQUCRVriIwIbDAAK
 CRAtUSPoPcIETGfTAJ4tppNp16pURW2x6Yi3GwY12/Rb9gCdGiT6lz3e0Ffo3EDl
 3I1WppEoQQw=
 =5OWm
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.74. Alexey Dokuchaev <danfe@FreeBSD.org>

 pub  1024D/3C060B44 2004-08-23 Alexey Dokuchaev <danfe@FreeBSD.org>
      Key fingerprint = D970 08A4 922C 8D63 0C19  8D27 F421 76EE 3C06 0B44
 sub  1024g/70BAE967 2004-08-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEEpzAURBACu7RDb0dP0oorBa7j0Do1auzG1N2wQgTMIHoo7DhspaGjvN0RJ
 /dozO04jqyWopb/cA7iWMqn/7gX9ckHrKa1ugQRb8P7AhIZNmfc0B5AOCqeGo8gi
 o9y/XBhFRS3Osxxe0j2bIoL3pk0EBjHaa477yiZyWNjq5j8rPf/h7DudtwCgx14M
 iEwmKZ4hWMzeaKYcOFTIn1UEAJtUMrBbxMxchDnIuAn3Oz3ESpGpxSDVcTHUxoIl
 3A+mizXetzWX8lmEP8GM2oM1/dRCiF+l2v5tcnBO52PT1cFst28W6Ytyf1PamIFC
 GNL2CZUz/ZVRBPEZb7CfXJYupYd1AiYNCoSyh9bOv4Fin3Uhm+Ds1n6x3yulCFyo
 PJ9pA/wOMpGwCNSpNLcfz3gG5dh7PR2rhh0D0w7jZbO/l8D/81inThfBRb7B4KIP
 v1Cl/ynm+M4XS7Fy3xjfPHbUvHY/DNr9rqI0qsGU9qTubuBO+I647tjLFem8gaue
 yESeoU4okXMPblPXh8r93JIfbmi/rMcuddblJ5kw6U/IYYGGS7QkQWxleGV5IERv
 a3VjaGFldiA8ZGFuZmVARnJlZUJTRC5vcmc+iF4EExECAB4FAkEpzAUCGwMGCwkI
 BwMCAxUCAwMWAgECHgECF4AACgkQ9CF27jwGC0QXdwCgwTxjqqG9DppWUVvfQklR
 7O7d/QoAnj9qF7prbDCAq43MQJIJ1AP6x/4UuQENBEEpzAYQBACsVmYX94l7jndx
 byPUZl5SlKLJFSTIymPGLebcdNg8rF86aq/9d8nRrkrqUWtpQtWeAZw2GZn0n/vz
 kRbmaqMaHkmdg9g9xT2qstOL0rZhCyvLWVeNYUjgkNWi7Be3yjb11RLPOanpug5z
 Rfu6I/7qjOcVEoa3cjlahdK//xleWwADBQP9EWsXY1iKSQ1k1B3N3+EEWbzuOzaH
 upo7fLwamIVuX7K95YIqOawMlhERBD8MUxfrzJkOIbVI/81g802Iq1D2Xv46hvCP
 J8oszCeFjqixsOkg3HmdUyvTHnODBHsQMoy/37r5voAElx/LXc4Dm9DSR0rSTpXh
 mUdHtM0Y6XYEcoCISQQYEQIACQUCQSnMBgIbDAAKCRD0IXbuPAYLRD9GAJ91NEgg
 OHfLL9Taov5GEDVjEaD8MACfeTqtFRD4Piuxg64CGOdNBCJ5+p4=
 =abIH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.75. Dima Dorfman <dd@FreeBSD.org>

 pub   1024D/69FAE582 2001-09-04
       Key fingerprint = B340 8338 7DA3 4D61 7632  098E 0730 055B 69FA E582
 uid                  Dima Dorfman <dima@trit.org>
 uid                  Dima Dorfman <dima@unixfreak.org>
 uid                  Dima Dorfman <dd@freebsd.org>
 sub   2048g/65AF3B89 2003-08-19 [expires: 2005-08-18]
 sub   2048g/8DB0CF2C 2005-05-29 [expires: 2007-05-29]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =hGAK
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.76. Bruno Ducrot <bruno@FreeBSD.org>

 pub   1024D/7F463187 2000-12-29
       Key fingerprint = 7B79 E1D6 F5A1 6614 792F  D906 899B 4D28 7F46 3187
 uid                  Ducrot Bruno (Poup Master) <ducrot@poupinou.org>
 sub   1024g/40282874 2000-12-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDpMfbARBADvuMgOIlEdTWlb4XvAu1YEfCijox47muRNbkA0yb0drMwYnV05
 tZ5cOK1uVELQ+gtGK7lDS5rQ68LPpXFMVva98skkVimzgfmQiqDOXiYW4BVE1qmO
 THpb5dIpHoXqTDILTLVomf6d8Z2re+IJUNvbrBFM616wndIQqux/O5LHDwCg1Hky
 KrYDoOT1lcDgSGH6RcqSoAkEAI+D4y6JpBctutEGWNcgijLv36g09LYNeC/gD2aq
 0bS/4c44eoPkMCBBn8MM9AIsK5sfne2GuglHcUM2U82s5UbZcQl8vzcyG9AVGQGl
 aoO/duxFKPQC70/xEa26Bwjv78cVWm6hLHoMZRXvsprr3pQpuZHmzPWwwxipqXkY
 gYApA/wMrLwdewzd4yEMB5O6y9WSd+FUA/y1MS1+9epdbzPnpUszR2QKlA+XblfD
 8KdxxUjIjt6WOXEhQ0GCWfRauB0MAZHTMkA/NVnmR+pI6FSJ9LJ4s6+BoFRbKdDp
 JY6yJUZzqRgxgo7tIcpRsRuXP4zu8KYlCPL0Al3gSW2DlKYxirQwRHVjcm90IEJy
 dW5vIChQb3VwIE1hc3RlcikgPGR1Y3JvdEBwb3VwaW5vdS5vcmc+iFYEExECABYF
 AjpMfbAECwoDBAMVAwIDFgIBAheAAAoJEImbTSh/RjGHWXsAn0/3nHkOH2WxLdWl
 ANdjJDzkMLywAJwN6CBCDKSbN7OzfNHTx3XAEVUUmbkBDQQ6TH21EAQAiEIQKsg7
 Pi2k3L9fFnDDAcFgh2oL/MpHgN4kKYx2aoTr02O3rBmK3ADCIBqj3dlWMavIOuzu
 1DvmvsloIcDwsMsc846bjQq0R20VaiNz4NJqZfhS2/xYPzJo9sPTncJOGQowjv+J
 GqlkmvLVSLSzYPh7OZjdw3SxS3zFPEQg0ccAAwcD/iZIddUIenySJdgs8WIe26X5
 r34/0TlyxiwtlzefYpVHHYD8CzVhYPD+iWUpDv/10HC7c58JTxNUGyN2UGcaDNRc
 g/VJqRahYxz9LokB+vRPmCyoP8bhLkrp0fHZFnFpH4IY4WQecLBfYJZZF/K7TLLz
 O5tine3BIL/LpM0nhVWJiEYEGBECAAYFAjpMfbUACgkQiZtNKH9GMYe/7ACfTNKi
 dschnmutxCWw5fcsyqP9oYcAn0Cf7InoUX5AUFaj4dFZ4IN+9L/m
 =LTGr
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.77. Alex Dupre <ale@FreeBSD.org>

 pub  1024D/CE5F554D 1999-06-27 Alex Dupre <sysadmin@alexdupre.com>
      Key fingerprint = DE23 02EA 5927 D5A9 D793  2BA2 8115 E9D8 CE5F 554D
 uid                            Alex Dupre <ale@FreeBSD.org>
 uid                            [jpeg image of size 5544]
 uid                            Alex Dupre <ICQ:5431856>
 sub  2048g/FD5E2D21 1999-06-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 hQVIUSh0Um5WsNHU+9T5ARAAAQEAAAAAAAAAAAAAAAD/2P/gABBKRklGAAEBAQCQ
 AJAAAP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcT
 FBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4e
 Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/A
 ABEIAJAAeAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJ
 Cgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj
 QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFla
 Y2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
 uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQAD
 AQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncA
 AQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn
 KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeI
 iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri
 4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOJFx4keL/hHrOVYLJmS2eNd
 qGJVbK5IAyo78n1Oal8U+GtMdhDout2etXkUgjuIixxIwQMxXbwcYbIzngnnBrmr
 qO0gLXl8s9sl1GGE7XJ3HoPl5yWwMcc9Saz5bLUdPvRqMAnhtY5VXz7iMxg4B2qx
 K4dyCQD1xnNedC7OmrHkkrGddqNP8QajaPF5UUu2VU27cKRnjPbk1Y8OXMMOv3mo
 XSpKpOY2mG4hhjkVX8RTzvrFtesx3RxGMyKXbcuTt5ct1yR6cdKwLq/dZWAZV7cd
 MVvGnzb9UVKUqbsz06+1+zu52mTZHO/LSqBlvw9f8aqQXLI6lJo0jCgAMACBnpx9
 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
 =CMdE
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.78. Peter Edwards <peadar@FreeBSD.org>

 pub  1024D/D80B4B3F 2004-03-01 Peter Edwards <peadar@FreeBSD.org>
      Key fingerprint = 7A8A 9756 903E BEF2 4D9E  3C94 EE52 52F7 D80B 4B3F
 uid                            Peter Edwards <pmedwards@eircom.net>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEBDlWwRBACjdnvu/rCOVEjpYmlmQmmmYZ0hbUdustNozm8dtKpg2w+zED3z
 9kHcoXEY2i1jxmJrHd4PPcvMutJB5AuYU4NiBmdMgBgfZvW7yaD+tHfvgozNyEKa
 3Gcddamy/ENCFKoSTEuCDxH77zf6DXh/B/Ekjav0sZnGHPqFhUdKzwh21wCg57uM
 Z3aL0+sIhiNYEJK93yjXt0sD/2F6+T7dj7wjdCPsb3mh5YSTjGeSXjnXHfeFQmmA
 /dPyOkWOAuTo2uR3AeVRrJ6rslKLqyl773HX+eM5b52gIsFZ+CzSEiHSrHEqOR/o
 3jzzGWhZb3Q/dbeWsPrtw32XUOdiijH5h2PyfKQ6reu+lpH8oKTbvOoycguHnsiN
 8zt/BACCRoxdjw3f5L4RMfbdxN8/9GLcDzjv27s4Jn17snXuOyNzWxky+hNW5InM
 wG92m9/a4XtZX6viK4sY8kfFLvAx95vaRiPJOPdUIx6Hk34HHsXdQ6XbUaadlBuG
 Mxr+aT2o01qzxi+dS8+SWXjCBwT5mRVdOZq7RFYd73I+FrzltLQkUGV0ZXIgRWR3
 YXJkcyA8cG1lZHdhcmRzQGVpcmNvbS5uZXQ+iF4EExECAB4FAkBEXVYCGwMGCwkI
 BwMCAxUCAwMWAgECHgECF4AACgkQ7lJS99gLSz9lewCgtKJX8EySD4x42LoZ8imS
 gYzQ2AMAnjAlfeFF6q4Lqiv6ikUW7uSGu2WitCJQZXRlciBFZHdhcmRzIDxwZWFk
 YXJARnJlZUJTRC5vcmc+iGEEExECACECGwMGCwkIBwMCAxUCAwMWAgECHgECF4AF
 AkBEXiQCGQEACgkQ7lJS99gLSz/1ugCgwj+RyWcUk2WtWZlox7rmTG9ymDsAoJ+r
 ckrEYUJfPdH0GKonpipJQwL6
 =73v6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.79. Josef El-Rayes <josef@FreeBSD.org>

 pub  2048R/A79DB53C 2004-01-04 Josef El-Rayes <josef@FreeBSD.org>
      Key fingerprint = 58EB F5B7 2AB9 37FE 33C8  716B 59C5 22D9 A79D B53C
 uid                            Josef El-Rayes <josef@daemon.li>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQELBD/4Zd0BCADEH+EDDjEX2ztufB5dele5Bt4XBg3cYncvlTsVEDLR89xtwmFs
 3no9Hs0ImTQwplsDgbixBL3DXWi46dwVK0MGYIUycJxLfsgFdlWngcXYkpWF3O8g
 v4YhytcVi9uSBy8oNB7huiY8IXh4XPgiOKztgCVJZbIgi8ahoif04eHTT9YGOL5x
 Qu+n7D74zAcgzK0XO+O+WXB8EoO/saJxzcCIeEGzfCjq4VyL6JB+1c9CgWlrpI7K
 LOpFqrN2qHygIMxCicp/163AdxD9I1hUtlF/sZYY9BpkbweLLqxKf4qtDYAMZLuS
 xFGfIG8f0imfFeTXt85FgYGxqLMlmdjFefIpAAYptCBKb3NlZiBFbC1SYXllcyA8
 am9zZWZAZGFlbW9uLmxpPokBOgQTAQIAJAUCP/hl3QIbAwUJAeEzgAYLCQgHAwID
 FQIDAxYCAQIeAQIXgAAKCRBZxSLZp521PM0PB/91jWBC7yI2obxE+VGsItduiPhC
 0x+Z33suGP8f7ewGBlztKC8y5N9jCGCfG9auwkJ9Xo27zCpMIkba4CfbRqyLxWoh
 ZluHQg5uge7AGefmsdfDsfZq5mPNtUkB8uVn3tXGwVVsxknw8PGtw25wbDCOXTCi
 t6L70v1gJfK8UxFhu0VCdOxbRAuQoIkE+bSO6g8bJrt6JFzhVpuHdgxwJbziWYSp
 nEJUN4Eou4UfCteVQrkh2O7ArHMmAEb89s5xbfNrQ4NdVBXHfsrzEDhWOqgiQ/4m
 o2DAs8iy2aCbWRaKG6G57g+uwhbqEN3gkeDfjhcpBMLqQy8drqx+erNGVYnKtCJK
 b3NlZiBFbC1SYXllcyA8am9zZWZARnJlZUJTRC5vcmc+iQE6BBMBAgAkBQJABsPr
 AhsDBQkB4TOABgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEFnFItmnnbU8miAIALbu
 Y15l3+9kNlv4Arv26aYrRcIYEUcCLIGZnD93NPnyEza4WwsUbCvYgNpKb/wojAA3
 xUdzHtRUfDp++eQU72S7DcRkkTt5vrnwKnH9kMsr2/hCIaO3ESiOVoPeJy91fHEF
 I9K1qP5noJQjfjr1w4ib86spyVb5LH3QPEnyvDX/UTBYiYu8UUYonitLZ3iHk1Ku
 x9SQoPszvkxdM1+d25pbG1uSV8JQRym6TsPQp3RwpbCy5hnwMbDLaWl6fbRwtAxZ
 i6A0cppdbgi+DDrOFoFKuU25YKKOKl76Vy+cpjYPBPRH3mOTYd/i2xliEP56dTJU
 4QqDJPpnJdmvXiCFt5k=
 =UfKm
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.80. Lars Engels <lme@FreeBSD.org>

 pub   1024D/C0F769F8 2004-08-27
       Key fingerprint = 17FC 08E1 5E09 BD21 489E  2050 29CE 75DA C0F7 69F8
 uid                  Lars Engels <lars.engels@0x20.net>
 sub   1024g/8AD5BF9D 2004-08-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEEvjRYRBAC1jMkUf5HrEQcNSLSK4NogjNTuwxE9d4PjgOiJ04L/haKeUAaB
 x21REw659FNCOW/HDuCzNH4POFQYoe2dyS3lV4xk+YsoJ50NuoCro/tiigBztKB6
 u/Ukq8bReroNwjP1Q2TnCHWxzDIq2HJ2FQtbXXlWKe7ZBu/LFwAsHLenLwCgzkp1
 i0gxqzxWrzIApMiKWB+HORED/3Jjom3MOEZfr27aYvY18700uXui6GAkcxTj2/6X
 s1MVpQt8F/BAgKYkw8Q3qOgoaJPHpnBQXMIB5TXCkXxZYwvUFlLHMOghpZE6/eHn
 3+UdvqsxHGa59Ym7HYzS1IExBVNfof4MVsunQtnGaHyQDMrKt2zF2MmTgASzITWW
 GyOjA/0Qc0K+hUBPsiaVpNcCZs6vPxeU1qSZamyZlVIjfQgRkTGN94bJD7l4qzaK
 hpmOLF8eD6+pA936HVhLfmPsNFkpFgw10oQQVYIVx/Thj5tOX2o7VbXUdQEkdTTO
 t75c2UqZIdPKet/btF+NPnnT3P8u0UdVvpvMeq7thLuJLkDDo7QiTGFycyBFbmdl
 bHMgPGxhcnMuZW5nZWxzQDB4MjAubmV0PoheBBMRAgAeBQJBL40WAhsDBgsJCAcD
 AgMVAgMDFgIBAh4BAheAAAoJECnOddrA92n4OuIAn08LIWiZX5vZ5GvClSsa30Wp
 2LG5AJ98fEToSwavm0tAuDHU1kPoDhPSqohGBBMRAgAGBQJBL48NAAoJEI90JpT7
 YBR5I/kAnA3vnk2qg91m3nocHy6nS2tShMUzAJ9RQ1orEGxFGukfgtY9iTTG4Tpg
 /4hzBBARAgAzBQJCVYkTBYMB4TOAJhpodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5k
 ZXgucGhwP2lkPTEwAAoJENK7DQFl0P1Yg9UAn0/WHYshCUKP551shW3EtjUFvSF/
 AJ9EhPPzNRdgS5cs8Hifvd29McguHohGBBARAgAGBQJD/deEAAoJEAwB9WIgsQYJ
 9lYAn3MTmAp+MZn64phFp346NFhy1tRwAJ4xd16I6dRhDMSiNVPQPybwAZTfirkB
 DQRBL40XEAQAobWOOZBUJm+Twj/sGj0bUdlZ5H1Qos5uWEEjamcElcmN4dG6Dyjl
 X+X4dmcAQADm2JH5aajdWKKDjDNaTRbdV9XCe/iogYD9UhbPEQuHovTuDaOQrRsF
 nSCcXH1GABWF+Cp2JA4FVS1gmHykr+u9DZP7CsOosI6PWmOYwySidHsAAwUD/jVL
 iRLUj2qR3ejYTa61ATT5wb6UtuIohpvBNFj4t3V+LWATXmuOP1mYhy3SmoxUcmFj
 uULJ2GHHb+wNnP8YpGdxRVFkBV2grnpKqPdCkcm1ON707w2d3aDCEl9KGzhEvg68
 c4CF0hVkLGIs0qeZfsOwxE4jdYpPl8YuuRZV2ah3iEkEGBECAAkFAkEvjRcCGwwA
 CgkQKc512sD3afjgrgCguloybHuwhKsmOnnD6HSp1G/s4mkAn2VeB3Euh8fg6W/9
 gcKK4GHoPC8/
 =T+Zj
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.81. Udo Erdelhoff <ue@FreeBSD.org>

 pub  1024R/E74FA871 1994-07-19 Udo Erdelhoff <uer@de.uu.net>
      Key fingerprint = 8C B1 80 CA 2C 52 73 81  FB A7 B4 03 C5 32 C8 67
 uid                            Udo Erdelhoff <ue@nathan.ruhr.de>
 uid                            Udo Erdelhoff <ue@freebsd.org>
 uid                            Udo Erdelhoff <uerdelho@eu.uu.net>
 uid                            Udo Erdelhoff <uerdelho@uu.net>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAi4rWsAAAAEEAM1u8Y60omElX7Wtrh75P8K0L2Gp6omV6iDuwl9kXYhN94jF
 DE1F4xpkRDWvQxsWbYeIk2F3VYGuN12BhbRNcNqoyniQt2XMmbdEmp6ltumH5WbG
 jR5Xg0LkJ5AJmxvjJXXA9q+/eTfmyTfPjnCL70cTMWHdUl+EBUPoh1XnT6hxAAUR
 tCFVZG8gRXJkZWxob2ZmIDx1ZUBuYXRoYW4ucnVoci5kZT6JAJUDBRA0K3Q0Q+iH
 VedPqHEBAe9vBAC+el5mJpqPkC/+om/SSE7mxyuUqHAx1tNUymL8gTuV3mFB0goM
 xkxhUOMMYe9z2zyi+RXrECfLT2OqqUA60EZpl6Mgymj8SVZSv4ZwXdU8cgynYNfX
 T1pC57mN9mxL10vTTJEix7QsrVz0W479/IkBrhW9nTidQtORW1Si5T5IA7QeVWRv
 IEVyZGVsaG9mZiA8dWVAZnJlZWJzZC5vcmc+iQCVAwUTOwzFWUPoh1XnT6hxAQGl
 eQP/bLMp1qSdkt2/BKchpx+lhOemCmT3LHQ1sNzelb7dBwnsvE3Z9lOycH2pm1ro
 j6x3vmcDAqZ1yh2eFEVNK5abfhuI3QH+9QdgvMcSIQgF3VIMer7JXxNtFFX8JRKm
 +YfLfDifcK+B2HRkpMt9ETY8b3/cYz+gbdKNe4nVde5KPT20IlVkbyBFcmRlbGhv
 ZmYgPHVlcmRlbGhvQGV1LnV1Lm5ldD6JAJUDBRM7DMX9Q+iHVedPqHEBAYHUA/4l
 j98KC7y8cjapO4Hi0r/eO7gUwDujvrBMYbWuhmNCO6xlPfwRNm76tnNiTFdqVLat
 XSrQwEUys9Mq9xe2F2RuqSfYWjmHKX3/gNW3gRJbnBqO1QN6CDqo39a7LgllqFf4
 yFj9V6i1c0WSBiOeWy75DHpsfXHupMxZWPPRWh0TnbQfVWRvIEVyZGVsaG9mZiA8
 dWVyZGVsaG9AdXUubmV0PokAlQMFEzsMxhFD6IdV50+ocQEBzqsD/0nX9rV5cAcd
 jFTayQvoAjb/nIN+TJVHumuC/Glp9fKHlfTjMnsUawma+iQESjUB8XgyeJ0WvR8M
 vQGEMowYr1YTtFiYfFOvrzXZmhB6NfhFV3s34ZLDeBnncUqkas79Pi9G9AP2Y/Mc
 c//i2owj58xTfocYNT5IxVVYjB72Py+3tB1VZG8gRXJkZWxob2ZmIDx1ZXJAZGUu
 dXUubmV0PokAlQMFEzsMxiND6IdV50+ocQEBBJsD/1SVP70fNa3ShAn18+yEXOIL
 TlFYCUmGaBIeAsd7r8tXFYbf5STAOEOiqBB9Y7V1tV4IriACru+9wo5wBQoCLBT1
 RNj4NhwVvkGReTDsA+Zz/vUULrbklVKO724DktO0+WRbn/w99trttuUTGvTHRER3
 BjuOfJ/QoLlnLAsDBMov
 =TCJD
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.82. Ruslan Ermilov <ru@FreeBSD.org>

 pub  1024D/996E145E 2004-06-02 Ruslan Ermilov (FreeBSD) <ru@FreeBSD.org>
      Key fingerprint = 274E D201 71ED 11F6 9CCB  0194 A917 E9CC 996E 145E
 uid                            Ruslan Ermilov (FreeBSD Ukraine) <ru@FreeBSD.org.ua>
 uid                            Ruslan Ermilov (IPNet) <ru@ip.net.ua>
 sub  1024g/557E3390 2004-06-02 [expires: 2007-06-02]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 xfUIyIEOONF8sN1I
 =tea/
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.83. Lukas Ertl <le@FreeBSD.org>

 pub  1024D/F10D06CB 2000-11-23 Lukas Ertl <le@FreeBSD.org>
      Key fingerprint = 20CD C5B3 3A1D 974E 065A  B524 5588 79A9 F10D 06CB
 uid                            Lukas Ertl <a9404849@unet.univie.ac.at>
 uid                            Lukas Ertl <l.ertl@univie.ac.at>
 uid                            Lukas Ertl <le@univie.ac.at>
 sub  1024g/5960CE8E 2000-11-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.5 (FreeBSD)

 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
 Fv2s0kptGIN2izILm1myaA==
 =qAVp
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.84. Brendan Fabeny <bf@FreeBSD.org>

 pub   2048R/9806EBC1 2010-06-08 [expires: 2012-06-07]
       Key fingerprint = 2075 ADD3 7634 A4F9 5357  D934 08E7 06D9 9806 EBC1
 uid                  b. f. <bf@freebsd.org>
 sub   2048R/1CD0AD79 2010-06-08 [expires: 2012-06-07]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEwNjXUBCACWeNjUFZ8rzqxrEIdL3wVrvkWVwaf5HW0YwoIMq7ba3hRcPWuv
 yr3frrdvqJv9rHJYA8f6uE5dCkb7OSI3YXHC5QN/H9xB1bvRuSUyD1MwmuihUX/A
 7yk7HzUE3sXy1U3QIMJWgpvnN242OZtH2XlanuSoDdBL4Qh2Fw7ywQaZvzNlZKUa
 hPF0Ty7wci/5xuKB7T72Qk4vAYYqxUxYJR/5ox8vM/xiAh5XxPbOuAF0p/wQiiRi
 NjF/f6tluQu6Q6VFwHXGcZvJK39nNNpadsDCegdRCUUFJsHm8dSjlIyi5CTyUsXf
 btdlagPTlhiBtOYgtcfRZoPBLFjVafjqqL57ABEBAAG0FmIuIGYuIDxiZkBmcmVl
 YnNkLm9yZz6JAT4EEwECACgFAkwNjXUCGwMFCQPCZwAGCwkIBwMCBhUIAgkKCwQW
 AgMBAh4BAheAAAoJEAjnBtmYBuvBVG4H/Rc/AqfFfQi+qph0HKggVJyzEKvhVWhR
 8RZ+8zS4t72b4kIJT8FUOiHMpq/+qC+Lt5MFPCtxmOETDgpD9GM1EkgJ1rSDrN8m
 kbXuQ9Z95KztU0tGsv87JT0xSpxeMnYaQ1NWx5bkKG5AOf6ZZaUVas0XH8/9QCFH
 gqy7Xe2eGsLO52ZH/4AI8cFc0FPF17hSWTIAwIyuxcRLas+KdV1j74xaBu6parX3
 2FoquEFRAPoEcuey2aSWoo4OCBCoGYqh4mhWbEuLOac0NP3oLDFjEDJhE7UT+0gx
 W5LLwPr0FARkAbRZp84vt9rD5MrhNcZy0X3PBpykium4OrEIp5l9OM65AQ0ETA2N
 dQEIAK1D1POvE2tRnTeNRW6lw/bu9zx8d4PS2R7GepQkbUWQxpgcwSEoB1JGN8jw
 0iKD8KRoFLwQx+TizzRShRsOeYj7beK6rY5H1C0DbrQX6T7eMumOVV2RklVFqYiZ
 HcJh8LGjJN/tKt4k7OnDs40lHOFHxvKW+PiKogfiWDKpc/wns9mAhcXrbT0SZ4Be
 qbQOsZMfUbvOZUek4+lOZuaCb0M3QU47bsFrJonPn7VEHw7mkhTNL9a6KKc4ZqQw
 52ECVq4dKjNIkvaQZyosA7tRCr+CBYUumE6fssk72SdT0RD/tgHgKfgWZ9mxB3R0
 l7CCm8v4c24tZQuuGQG26WWeD8sAEQEAAYkBJQQYAQIADwUCTA2NdQIbDAUJA8Jn
 AAAKCRAI5wbZmAbrwabXB/9ggUz/04tDZdX4pDsfDoBKtnJ9r1yNWrniBBNlcVLZ
 G+3BwF5EfZAA/q3lSJmC4BVzaDUwrrL/zbPb0WhE5cGG/byLiByXsEDVSId4Kv/Z
 bLaPyox8RIYUL/wCjt/57FIORwGVhUr8oDDRLeSoIsazXWhvWfx9qCdzcZTabSkN
 74Q0WxQuOagvpl4Kcf3eQEQuB+BvxDQx9JvEXUZanurRP018uTdXficJ5MS+SwXq
 gJUSSPybwVjK/ll1G33185jnSQSFNwGq1udet7vkDjQKNmkcev1SJY1g0S9iFKRz
 e6dmnydHGtQ0508cCusMPNCQ4HRhQHEW7w5yu1J4t3UY
 =bgLz
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.85. Guido Falsi <madpilot@FreeBSD.org>

 pub   2048R/56CBD293 2012-04-12
       Key fingerprint = F317 2057 E17E 4E3A 3DA5  9E1D 1AE6 860E 56CB D293
 uid                  Guido Falsi <madpilot@FreeBSD.org>
 uid                  Guido Falsi <mad@madpilot.net>
 sub   2048R/1F9772C5 2012-04-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =pMfj
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.86. Rong-En Fan <rafan@FreeBSD.org>

 pub   1024D/86FD8C68 2004-06-04
       Key fingerprint = DC9E 5B4D 2DDA D5C7 B6F8  6E69 D78E 1091 86FD 8C68
 uid                  Rong-En Fan <rafan@infor.org>
 uid                  Rong-En Fan <rafan@csie.org>
 uid                  Rong-En Fan <rafan@FreeBSD.org>
 sub   2048g/42A8637E 2009-01-25 [expires: 2012-07-08]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 D/Fet8nCx6Ef1M1J4Q==
 =1iVI
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.87. Stefan Farfeleder <stefanf@FreeBSD.org>

 pub  1024D/8BEFD15F 2004-03-14 Stefan Farfeleder <stefan@fafoe.narf.at>
      Key fingerprint = 4220 FE60 A4A1 A490 5213  27A6 319F 8B28 8BEF D15F
 uid                            Stefan Farfeleder <stefanf@complang.tuwien.ac.at>
 uid                            Stefan Farfeleder <stefanf@FreeBSD.org>
 uid                            Stefan Farfeleder <stefanf@ten15.org>
 sub  2048g/418753E9 2004-03-14 [expires: 2007-03-14]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEBUhZkRBACOyBTXaf9n0gkvq52yhACaPjUpAY4c+Z+xDM5jZZNpcaEyuU5N
 ipJdvlKIIkfB+Jka5TxiUBskSo6cegPW7k3G9/as+39SeOexEw5aH1WROcrqD1Wq
 iBTJ/Ey8eVleGTP/3vpbUoT3gcNZuus00J75OmJV06xyTA9M0tSy1/aIxwCgrbCJ
 Xr3wLOPYiGXf5WbWfy08DmUEAI2xYIycYgZ7ogcqFcu6gShO/uTcXkZL0xOIC8el
 rAC/HciJagmvYPjQimQeKhqyX+uvnhguiS+XZYx9yqegOG1dSOVWw6FJTYgzKeT7
 6tHmaplB4JQLkUSBn8p2fsyXAaIA4M+2c9fYf59El5+OyfOhGfAEJNJv1oGLYWic
 Bbt0A/98H+rPmPwtv4ntIvCq5xkvjENzmG6WerNF5dXHsoG6Lnhe++4jUquHseEI
 +u4ou+v1it5vBTnPI2Wz02WP1Oyz7JC0cPAbrTGz+eaaNV+M1wD7yqj1poW74buk
 4hJ+myIqC1dRrliAyrr75xHl3pr212+8Cty8RTiNF9xgICtH3bQoU3RlZmFuIEZh
 cmZlbGVkZXIgPHN0ZWZhbkBmYWZvZS5uYXJmLmF0PohnBBMRAgAnAhsDBQkFo5qA
 BgsJCAcDAgMVAgMDFgIBAh4BAheABQJAmCd/AhkBAAoJEDGfiyiL79FfqEoAn0cP
 NQJYvSLWsU4gD/cffKUtLEKiAJ47lf0I7dFdAJSqqxSCOrw7iuWhTrQxU3RlZmFu
 IEZhcmZlbGVkZXIgPHN0ZWZhbmZAY29tcGxhbmcudHV3aWVuLmFjLmF0PohkBBMR
 AgAkBQJAVIenAhsDBQkFo5qABgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEDGfiyiL
 79FfeOMAnR6XllE6b+BKnoRjBOC06PXfoK0jAJ4yDtL0vkYkW9LRmoFkWpxJYilU
 ALQnU3RlZmFuIEZhcmZlbGVkZXIgPHN0ZWZhbmZARnJlZUJTRC5vcmc+iGUEExEC
 ACUFAkCYJIMCGwMFCQWjmoAHCwkIBwMCAQMVAgMDFgIBAh4BAheAAAoJEDGfiyiL
 79FfwykAoIes15zWxNJ7iQr1n4rP+x1LidM5AKCDakRpNHAdMiaJJRNrHt9I1kOu
 FbQlU3RlZmFuIEZhcmZlbGVkZXIgPHN0ZWZhbmZAdGVuMTUub3JnPohlBBMRAgAl
 BQJAmC7cAhsDBQkFo5qABwsJCAcDAgEDFQIDAxYCAQIeAQIXgAAKCRAxn4soi+/R
 X//IAKCmPHdkW+JyvXq8Ph/4AcoSYGltQgCeOyA+WXLvjD8s36h1ITQXleLr0Ju5
 Ag0EQFSFrBAIANrcNEggDb7bS/TkhZg5CEw0HP0bFOogCowNgGZ/9EzZA1SvABYb
 vun0RyK0Ceh51Vr0Lb01i6cIDTH/cBVMqXX75YPusncMzsEuMdBCzMqKRPCpimUD
 jFmMIBrkbtu8OTwaL+Xy1j7/SyfYv8fV6q6ibGWgN4pcyDmItTWYRNnR1G4EdIvl
 a2CgQr7AgzWPGeeZLrUqUuLjYKwZ5JUqch3ooU4e+eFkYjovMyiC5E23UxZWyDZQ
 DA1aOizxH7519R5l1YDsrqjZdVz3Ks7iCPYZ+T2QMGM7oUDjbt0xAhQCt15yj2K7
 f0m6KtmHWzwgf5Dagcph00anBMldDQ1RqscAAwUIAMReNMLnk1jhYUYoitYNDJTO
 Pp1X5bk66+b5yHW2Ul9DDboe9tp37AoSJf1hEI7eyB1qkKO3bt9nePKOuAe64ft9
 jMYEm70IS3tmo3hHyTbLuOpxF3f7ZHmai2gXPdDmIczDqkE1PneX9gJQadQTqvky
 4PVHKVUGTBScI0S830ZBbIsvoYimjGCPMuz4UT0vKR3XLay4RjwCYC6waqRuJoBq
 rfm/vmx6/GNfb/jwZgN3QYPgTptx65eAdEAy2C3Y7RbMrbx9qqvx5TxaS2yVFy6X
 6gIrSmFSFE8rplPDActw1V4YMyuwnyVvGe93pYwYfxzM/BxN09V9QBQUhIa7TMiI
 TwQYEQIADwUCQFSFrAIbDAUJBaOagAAKCRAxn4soi+/RXy2fAJ99u5jBvCIXuEPa
 rLB9utH3lU/ymgCcD/fpfY9v7wyOrivOy6Wz3ZWjdnQ=
 =9khA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.88. Babak Farrokhi <farrokhi@FreeBSD.org>

 pub   1024D/7C810476 2005-12-22
       Key fingerprint = AABD 388F A207 58B4 2EE3  5DFD 4FC1 32C3 7C81 0476
 uid                  Babak Farrokhi <farrokhi@FreeBSD.org>
 uid                  Babak Farrokhi <babak@farrokhi.net>
 sub   2048g/2A5F93C7 2005-12-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEOquWMRBADPeAMeFy9OMbD3PxFjNmPIuY9CMb/fP9G3KNugVwLoHj29pXHS
 QDo9OGHmA6udL6ZjZt/cWsU6CBwrVmr7nnqIXwOFGsvv4sT4cQJd51ypMFcvrYvi
 UmdfnNZWeggviCMYdZErMqVdH7QKZyZ/7xB1IBV/66Bu768nQlSpTmqTYwCgwpUr
 8V37ACzVXUZ/1CPqtadIe50D/1rlR4GTzMnmJGBbqY4c2nNtaUA2HEzI11QsHvFp
 jTEcHI/RdhLv8dcFFAD0PmLC+5W7OydXvQXBfWzVXmrEPzFprwOc79wfCB+JzOt9
 JzyClVDYvhYd0f2kxrXOR3ddLaBCMU9A/NxvDL05TCE8b3rSuV2VRT6E6A45/88t
 aKKvA/9ewMdS3zicyyK33FTYTecGJc6Kt1ke/spq6jo6k3+L94Z7eZrZrhXGMRYg
 Ibbm3VuxoPeIqyY8SujHwNNzP7PqGp8MVefjzktldMyvbJex8oIyB0NMrHTJ2JTp
 ScJAetOE/mXYhMSACgWbebu6uBEigmaz1D4WNU/ITf8xuX784rQjQmFiYWsgRmFy
 cm9raGkgPGJhYmFrQGZhcnJva2hpLm5ldD6IYAQTEQIAIAUCQ6q5YwIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJEE/BMsN8gQR2iM4AoKXtRmdbGhmrJ3cW6lcd
 gP4IUfUkAJ9mqLQk3ztstsPzzovhwV4sIH2VgbQlQmFiYWsgRmFycm9raGkgPGZh
 cnJva2hpQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJFUO2LAhsDBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AACgkQT8Eyw3yBBHZd/gCgmHXJVgY+AwvJvL2v2qG6+P2EsP4A
 nimm5LNueFg2PbDsRb+Iz53zw8d6uQINBEOquXEQCADPKrfxmpqJEbVpJV1PfcLJ
 KpvF/0s1NEhvrXVnm0GhId8R96n22E9oD7QYTw/+TkdCksw0dcAIvFH2y++HNQoE
 NVgoyVW32Rw076Va8nizA2icB6hEJwKiI400qKjZknj2pnILPHORq+Zl43sHaXnB
 imchl5U9gZI4EXCRC0u87oLd0IHuFMUGYEfhsxninLpmFNPjS55zEhPDIBTuFFiN
 NFZ8aLxq6APGd1lbLJhYnQIYZJreaI3lXc0VYqjkaB5WBeYXKNNF3y39yNY3SXFt
 /dwIP60IoaIAjARFLqvUNYOsHpjsVAItxxMdTpAlX28VYWsr3quGL97Xhd4NfDvb
 AAMFB/9ep1jcpFocEOurMYZkIrPE0CdgdeWzlhHhW2F38cZTj46WxoAY21QOfjRx
 tCcGDrKNNwoHO3TIsuPrEI1OtJ4y8b7Pj2zuv/kUAEMUjl5dutg2kIDz5cs5zxI6
 4HhUx17vQGTOK3l1I2JxoNrMKPcDKxegHqYqpzb6vEr3gsKT7GSeMBREq0rvfZfQ
 ZmZTLfdy0AiQ6KsVt1YV9wUE7Kq5OmhjVZNovhZtxO/tzppQLNX/62wdf1OmFZIn
 xWrYFHeH/N+QGBmMRf0NMb0oOn4nEMem9QhSRcW9UcyU1K7Usa3m3WG7qrmcq+ri
 9RVM7/8wJCKNJD1ej35rMQYVrolIiEkEGBECAAkFAkOquXECGwwACgkQT8Eyw3yB
 BHZy+ACgqz3KenkNoTQKFv4nrGUHnAqMm5sAn2Z+BhMOzEhuimOTVLXVzKuipov0
 =vL0B
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.89. Chris D. Faulhaber <jedgar@FreeBSD.org>

 pub  1024D/FE817A50 2000-12-20 Chris D. Faulhaber <jedgar@FreeBSD.org>
      Key fingerprint = A47D A838 9216 F921 A456  54FF 39B6 86E0 FE81 7A50
 uid                            Chris D. Faulhaber <jedgar@fxp.org>
 sub  2048g/93452698 2000-12-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 6r7mPk8=
 =R6MH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.90. Brian F. Feldman <green@FreeBSD.org>

 pub  1024D/41C13DE3 2000-01-11 Brian Fundakowski Feldman <green@FreeBSD.org>
      Key fingerprint = 6A32 733A 1BF6 E07B 5B8D  AE14 CC9D DCA2 41C1 3DE3
 sub  1024g/A98B9FCC 2000-01-11 [expires: 2001-01-10]

 pub  1024D/773905D6 2000-09-02 Brian Fundakowski Feldman <green@FreeBSD.org>
      Key fingerprint = FE23 7481 91EA 5E58 45EA  6A01 B552 B043 7739 05D6
 sub  2048g/D2009B98 2000-09-02

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 uPPUsA==
 =oR1w
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.91. Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>

 pub   1024D/75A63712 2006-02-23 [expires: 2007-02-23]
       Key fingerprint = 42F2 2F74 8EF9 5296 898F  C981 E9CF 463B 75A6 3712
 uid                  Mario Sergio Fujikawa Ferreira (lioux) <lioux@FreeBSD.org>
 uid                  Mario Sergio Fujikawa Ferreira <lioux@uol.com.br>
 sub   4096g/BB7D80F2 2006-02-23 [expires: 2007-02-23]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEP9+FkRBACKcQPLBb7vcUuQTM+Zqfwsd44vzULREV7qHVvTqJWDsFyQd4hz
 /rX86mmHiS/fOh68SonP6QdXO2i+d+LshgLTVPBlW92TXsFYP09FUWWx2dm0P249
 P7xoIcQ7slhHnSVuPDObzm5T7yDXL02OeO6qonN62IjjxB8xzFo+W6SsAwCg2BtA
 gvPq1hyeXVXlbItG/9Hbul8D/0yjvmED7dj7eQpm6LvjswjkMoRdg6cgR+/N9LdP
 GIdjGHkfFnW8hRg7QAPzmstkhtY1I3zEjVVCcYjJrIibaqBAUAx0v5HszLKKRnrI
 ZZm4IXKFpkVC2sV475FpFTPXIiHmyzq1lbpgAQXX71yFNJ7hsEuYx1z2Ihblz/B+
 KHJ8A/9UNVEPc4s2YgjntQSDWRY+Vcr6M4bN/+ogCJ7XYN5lcHjB+gUD8kAWupEH
 1hDV3WFahpG1i0MusOZM+dggTXSshd76z0JlOJjbywEv2Z2nb+1b1GU4EY+2RlTi
 nP9rO7EqtPhHjNkpXfsSHFOC3qfcsDhphXOJeOFwwhMhkxmkHbQxTWFyaW8gU2Vy
 Z2lvIEZ1amlrYXdhIEZlcnJlaXJhIDxsaW91eEB1b2wuY29tLmJyPohmBBMRAgAm
 BQJD/fhZAhsDBQkB4TOABgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ6c9GO3Wm
 NxJtqwCfZrWhCzRFNX2TkVEW1zMS0mw5aLwAnRUNKvayClkvdqHMLksYTFtUu4RT
 tDpNYXJpbyBTZXJnaW8gRnVqaWthd2EgRmVycmVpcmEgKGxpb3V4KSA8bGlvdXhA
 RnJlZUJTRC5vcmc+iGYEExECACYFAkP9+lYCGwMFCQHhM4AGCwkIBwMCBBUCCAME
 FgIDAQIeAQIXgAAKCRDpz0Y7daY3EiNhAKCLZTyIxlE0tU91Cy6YxRKCu1Kv5ACg
 rbLcuizHmkAx/du+XaG+aveC4Ui5BA0EQ/35pBAQAL9uIr9y2BwxMeHbj6LLmoPC
 DmQnzXWWWIZPtEyWlUv6ANLvtNX8M0ZWzfy4Z4EXof6/m3Z8KsAEZf22AObR+CA1
 mgRRmDxVfWDU3fYYIVwMTQ/IqjWz5TPfldXySqxtW/Zm16ODYv3c+tnu/KX/M/WQ
 1l9pLfIB9G3NlnHwHTWBdIQhomXLzurW0yuq4LXobA/nQmOWmrQwjXNk1zzO+p5t
 v18thaXoF9pGObS86oCCfwaUMg4RD6PtizVUSA+frFmcR0/kpNGAWw4gIqHY++9c
 Ri+Tjvbii0ZhBZNb3l2spqhg7zMAqzQ/wR0kJt09FegN6vClMLDBJW5Rveb7u4XT
 e01JY5E9h2Nt/RaJQ2RgaoD0bNLx32Zda0GOzidFAK+0QzOGvfMKimaye3YkWRXg
 GFZFHH4k0FIcRd461ta4aN0VMKbpRbYxZP8oxmN3VrJdrf91Qqton2Ljrqk4ndQA
 xb6zbtJeobx6MiYlDf4GB4Wgm4g2L/BYH+ObV5QqnTnwMIjP6Y3BvP941d7eX6VM
 cpJq3ueDK+FHbF+KEozHycvlZrj+el5SuWXtNdOVma/DUQjHJ1DHMmciVqZwArnm
 Ygg7f0G7dMxBi4n4OdHHSkJXwth4ojbZf+zDDQnHmt7J04/EArgEvBKxOGEh8EcR
 evS6bR8NvH7lfXjl+7AbAAMFD/9DHsJNi6bx5sciwo7xvwx9NZY2MTHBxaWV3iWj
 9OIoiklZt8Ca8a4ukDc5d2t/DrGr/rtKsUyQ7utEhfdKr17TYZH9mW9ZzOKp5sjO
 aWOcmFCGMjemejPedAlH8sBD4I4zg+Ph/tMRgAjyw/ZkhXlUbVJ4ooibU1uix5Wy
 AcxXSyrCOCLbVfpcCphiXCRlFsVuyiTkjM1D3STr6M6YSq5vTpbWkUvHs9c1pgqh
 51SoGR8tcyUM3JUvY5fTos1sRlIS6XexXEvmBe51jcuV+4I9cI2cXWVpWU09zBTE
 mF0WSgs2pXZftMpbLwaTSjzGA4VNQQ5jocsfWUP58HgBCyO4x8G+N1A9PWYtKUoB
 WVcjjl2ak8G0mbTGb03QaIDAy2CVkeKYVws6ZTQBZtfKiO8Vz2UQcklRNTPTxYHo
 69kIY47+6WW44huXc81ACGx2GXXDZtqxasysRtzAzl6U/FKy2lHE7Buyjh7VKYI1
 7IncPhl/XyEBWTESAppWvd3WiCdT0zq6wpwxrdpLprWblqxLRttK2Emwe2KhvDk4
 3jdj/KOlMi2OUa600mbRfjX78MbNHisLUEG1ceMXaQY3quaerb3Q1N8Rptn8sT1U
 RMqbVlP4fxFwJg9F8nyLYzBcVm1H9WGFoojCqQ3htuvI8kca6I/UQxHG7V9Meqbm
 uFqP7YhPBBgRAgAPBQJD/fmkAhsMBQkB4TOAAAoJEOnPRjt1pjcSt1UAn19TWL7b
 atBvRWIroNaSp6+y2jWHAJwMSHg8w1dVEw3XxYR1fhEhE1hBWA==
 =lXvC
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.92. Tony Finch <fanf@FreeBSD.org>

 pub  1024D/84C71B6E 2002-05-03 Tony Finch <dot@dotat.at>
      Key fingerprint = 199C F25B 2679 6D04 63C5  2159 FFC0 F14C 84C7 1B6E
 uid                            Tony Finch <fanf@FreeBSD.org>
 uid                            Tony Finch <fanf@apache.org>
 uid                            Tony Finch <fanf2@cam.ac.uk>
 sub  2048g/FD101E8B 2002-05-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (FreeBSD)

 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
 KnkOqXNQ7FzYXOIPK74=
 =7TEa
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.93. Marc Fonvieille <blackend@FreeBSD.org>

 pub  1024D/4F8E74E8 2004-12-25 Marc Fonvieille <blackend@FreeBSD.org>
      Key fingerprint = 55D3 4883 4A04 828A A139  A5CF CD0F 51C0 4F8E 74E8
 uid                            Marc Fonvieille <marc@blackend.org>
 uid                            Marc Fonvieille <marc@freebsd-fr.org>
 sub  1024g/37AD4E7D 2004-12-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEHNnEURBADK+anixdFH+aSxIGLw1soiwMXSiVPD56dmoA/VAFqrE3XVo/y6
 bPqpSNwvvhL8Um2v9G/7EDMorqekYErS3sgUOtrA05NSJlOUJk/97ZFzAlGZ4/u3
 CwtpFBdiATaCvAdMocWhxVkyIFvo6AqVNz6RkTldJUuwVzGelXWk9IfI1wCg586A
 r7CU9HIsVJD7/vIbIIsKDncEAKYh6XKEBHWI1pF3Ony+rPhlXCV9W3yraiBb/YXS
 XaPr2Wy3XC86ufHZs8ewug40DqcSfRobj7qV5II1CMoVrwhUuJ9Y087ETjt7xC9d
 xI4jrkVZlaRt0m/LUKLLfz6L9KaLWRkBfFhOjJH6TAv779q0n/KfaiU48Xuue6ff
 KNDtA/96/oTg9+NWjm47zCdQeyZGzEE27btvzbrLZuG6TcP7gAV0F6udGbImgw1f
 mKrQZn4ZtVKCKS8IzTn/UM/P26Pn9JOzDKd2voPE9Ee8D0L8ywg3mxmBdm+TY9vs
 r2OEV89Nc2sJZm5CeiqEvfACI8KwbExqWy5TW7Qz+zLi3zk+ErQjTWFyYyBGb252
 aWVpbGxlIDxtYXJjQGJsYWNrZW5kLm9yZz6IXgQTEQIAHgIbAwYLCQgHAwIDFQID
 AxYCAQIeAQIXgAUCQhzb7QAKCRDND1HAT4506BdRAKCaBqu+lvdAp3fhgIJxL0XY
 YG6vhgCeIyaLMYFzQfii5s20wePEhG3rfMq0JU1hcmMgRm9udmllaWxsZSA8bWFy
 Y0BmcmVlYnNkLWZyLm9yZz6IXgQTEQIAHgUCQc2dRAIbAwYLCQgHAwIDFQIDAxYC
 AQIeAQIXgAAKCRDND1HAT4506PmiAKDanV0mSeUSRJuDmfA13o4ELsQ38gCfaEgn
 LyzKfRawEhJdqsGPWW/fnte0Jk1hcmMgRm9udmllaWxsZSA8YmxhY2tlbmRARnJl
 ZUJTRC5vcmc+iGEEExECACECGwMGCwkIBwMCAxUCAwMWAgECHgECF4AFAkIc2/AC
 GQEACgkQzQ9RwE+OdOisEwCfY8xxYIhN0w9CSUbsN1/EoYp0D+gAoLedf7wiwvmQ
 O0XpcJaXgtlO4x6fuQENBEHNnEgQBADPHKv6eOKxk2HPrm180rVAM6/d3LQkBEGL
 Ma4QuSXXbTDXpzfrt6YOLi+ILe/hu5DNnGbQyvkBB1lLdmqW03lat1ape9wytNoA
 kHOX2C4kom2WA3FvtAoxojmylEn8S0koH7RUuhhTM29rVBap0W+UpwpnxmtbGXEO
 NciLWy5CzwADBQP8CSp5Hh4+7uXIRpp+RQ8PKJ2vQVnf7c+QTPDN5MLXEv1UK9gK
 vtb4sms2yr2IuBMP1FSAFN6DpedjoZSKimxqCyMNbyy0io2pMrNDCpqCadKOyLWN
 gJhJTxE+3kYeZqzZExvf8q+faQqXp91bbS4XZ4JzgAkT3B0mvQ1OHlVlAauISQQY
 EQIACQUCQc2cSAIbDAAKCRDND1HAT4506PAVAKCWlLnQdfJsRZtt0Q880glcLzc8
 SwCg47K+qs1q5klc1cCIaCj+/TtsLCk=
 =rg/z
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.94. Pete Fritchman <petef@FreeBSD.org>

 pub  1024D/74B91CFD 2001-01-30 Pete Fritchman <petef@FreeBSD.org>
      Key fingerprint = 9A9F 8A13 DB0D 7777 8D8E  1CB2 C5C9 A08F 74B9 1CFD
 uid                            Pete Fritchman <petef@databits.net>
 uid                            Pete Fritchman <petef@csh.rit.edu>
 sub  1024g/0C02AF0C 2001-01-30

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 oIDNzwMAwpXoLZkEkk/dMUDTsFCy
 =ZbG1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.95. Bernhard Fro:hlich <decke@FreeBSD.org>

 pub   1024D/CF5840D4 2008-01-07 [expires: 2015-05-05]
       Key fingerprint = 47F6 BDF1 DF9E 81E2 2C54  8A06 E796 7A5A CF58 40D4
 uid                  Bernhard Fro:hlich <decke@FreeBSD.org>
 uid                  Bernhard Fro:hlich <decke@bluelife.at>
 sub   2048g/4E51CE79 2008-01-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEeCHjoRBACSaB/CWwMs6NSHptLM0nqOigdiEMILpAOtekIVkzQ/0zB+G/fw
 J/vtVPoRZu0NlINwCSfnnOSpx0yZuX7CDJVVcGxWf2wt2Ly+1U/j5CnP1QV6dLhz
 iCbrvfV0GwXGvmJVhxX5lbVB3adzODgPa5S1v/Cj2Dbmqx6KFyMRsaepUwCg/dSE
 ZQdHiAOL7zh21WTtNbXvXqMEAIdk1WvclSjR8tv5HRQYOzlXZo2+EIeJklxNuBe9
 BuGNax1Su2R+Feq/qH0xSTayZmkKV1U7ECFq6PFYUpbn2aroSMmJTQKifsBk5M+J
 8Yrxg/tulUTiwi3FlrKkVyf3JNCmtDZbZGgCHAXUgIJbnHNzW2nRYk3LeeBJ4T74
 3VTZA/0Z8Gti+9zYP4RvCnbufsBO8dS7H3qMaaDa+Jnj2KYnLbQXhUH0hSRPePZd
 ylPSYMYhbvZxLF+kVoxRPKn4o5o524ECkO4tJuQwZV72xCRemyMalhyObfPUv3Pv
 2c9DTpeP6fiO+lK4jPSqjFUQ+wdJz/qxXYdvCnfperQftmGvILQmQmVybmhhcmQg
 RnLDtmhsaWNoIDxkZWNrZUBibHVlbGlmZS5hdD6IZAQTEQIAJAIbAwYLCQgHAwID
 FQIDAxYCAQIeAQIXgAUCS+MdjgUJDccA1AAKCRDnlnpaz1hA1JVIAKCMAnvJIfw1
 +r+G0Ke38mRrnhzJRACgnnSswoyJD0lvmZR8VIGvBOQ72AK0JkJlcm5oYXJkIEZy
 w7ZobGljaCA8ZGVja2VARnJlZUJTRC5vcmc+iGgEExECACgFAkvjHfsCGwMFCQ3H
 ANQGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOeWelrPWEDUO+cAn3ccQBd/
 abvhD/0pllCsWvT/ULv8AKDx/E1tUCqUkenPB1JcIv5sQ6e/DLkCDQRHgh5eEAgA
 mjk/OYgnOp2A6FTh7AlWOVlrpo+DPQ4bxGXUYtudxptm3hUtaV64zWzL1EF5Ky7u
 YNuJw3CGHX6tDV0KZ6kYGphkcjkv9i/T3U1YaqTklgmbzkSgIcuCzHP+6z91SnjY
 VL+HG4egz3GPBn+vWORt78JxgLjLlLQoLQhAliQK4v0+J11kXMT5mZc6IUpilJNw
 qLbsMKPUxYV8bco3NTMfmkcdJah9ymGQOiRHsTt9VCuvXClnpDF7TpxRd/BICfdZ
 JyNQYTvVV0d/g24zumsyxgcI0qup+NKic/M3G/+4Bo+f57FRRndARktAUqc2NSGK
 mTlqsOuJZ0RPDmwGTIcPAwADBQf/dZUT6idKhsd0kpaHpX0V/LES8kFdh3mNiU3s
 IEOeF9jslZEg3Bl2/AmOIVKWheu8396CjqKr+vjmXlEKABj3YF2ARFj9yg/epZdq
 OGyVjWkw4JhigVmtbc/BhNX1uMy/SlBpZUIyubvtp21f8YOdLQcV2in+x/Vfovhj
 kp2ms7fX0PnfwSy3Q27B5bvlU/jPxsog8dJ9Mf0tfoEWs0DBrPkDjBbvwu0VM2Qq
 JOasZHOS2qAAnE77X0dkA1c1eQeXtgoLbqMrWdp6tS532KiTQN85GRMJbECocMUE
 pfez5pVX7oYxsotEqIfBHqqgx4Zv//oA0fE9dIAc+RawKq64C4hJBBgRAgAJBQJH
 gh5eAhsMAAoJEOeWelrPWEDUtV4AnA6B3aXqQMK3LGBF5RYuPqIf2BeZAKCo6fV+
 qu2NvCjYzT8RrLvqANb1wQ==
 =ucJ/
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.96. Bill Fumerola <billf@FreeBSD.org>

 pub  1024D/7F868268 2000-12-07 Bill Fumerola (FreeBSD Developer) <billf@FreeBSD.org>
      Key fingerprint = 5B2D 908E 4C2B F253 DAEB  FC01 8436 B70B 7F86 8268
 uid                            Bill Fumerola (Security Yahoo) <fumerola@yahoo-inc.com>
 sub  1024g/43980DA9 2000-12-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGhBDov9skRBADzrOg1JwL+kHv1dTePFR2lNrErbMe+WVeP1sdGuKcYTP15VQyJ
 WV/6ZoUGsihAmFGcGyJuhcUJbvlvqRf4ZlwD80a1y33SNxxsqe8n5dm4Wy9FElL5
 bjs4L0kGJlSL8KnYYUTQKEDBcTch3+GTjgS4NQBZWy4h0W6EWqgxr7CZYwCgpeB3
 tnDcY3ELA5EP6Bx8wZN97zUEAJo972g6HplZyuyjqqTjdztXNgD+DlsyNpNkEfqs
 AnZcr4aqEeyMNtGl8gPIc9JwPPSlX5OfmjCm3zWtEjwrHway6YPggXqX8efuY3lo
 LxVfjRt6NLI0TuV0FhojgHuJYB9RsXQFZxbYH8A/j6jQHbiN3wTyYHtaAJJ/iELg
 82oWA/dTeR0kjvjgrfB1MiFCH4AL77bZWuxSv1CvV09DlYtSxfLpyBm4OHvDZmOv
 V6zT9COM2+f2/EMI15cNllYXB3WnwfYit9tZtEFBl1+OshqYBbcNkser1pBd5jP7
 fDAkpDYGx5OgpqAS8hz4XLPZdS/HXSegodYKinU0p0Rzza6KtDdCaWxsIEZ1bWVy
 b2xhIChTZWN1cml0eSBZYWhvbykgPGZ1bWVyb2xhQHlhaG9vLWluYy5jb20+iFcE
 ExECABcFAjov9skFCwcKAwQDFQMCAxYCAQIXgAAKCRCENrcLf4aCaPIbAJ41RzBA
 OuxYwZFUSbMbU5PHENe6ngCfcnVzDC5+lkssh628m3GTG0EjINS0NUJpbGwgRnVt
 ZXJvbGEgKEZyZWVCU0QgRGV2ZWxvcGVyKSA8YmlsbGZARnJlZUJTRC5vcmc+iFcE
 ExECABcFAjvw0YEFCwcKAwQDFQMCAxYCAQIXgAAKCRCENrcLf4aCaMcVAJ9brBw2
 LPC2RcZpsm5S//dETM/qFwCgiuPpVVwBP7ibzn5xQVNAdB12xOa5AQ0EOi/2yxAE
 AL/FYZQw0b7NrD04j6dxrp7wBjgd19ux4zQocXgXPlzpBZxQ4A4/icGOLnIU+vDu
 ltbpf7aMTd/mJokJwx9pE82pOgxk6i42c5qKkwkmjhO2/4FFk8HXco2DJ9roRi0n
 eBJztXskUY4cVavKdXNeJY2JUeBYvmrnREWG1W2/0ZMzAAMFA/4ytkv46phPokQe
 s7yy67bEeHiydjvf3uM+v1z3xWoLw5ZU+8hLdFkESpZ7u+qA1mj3i7LNBZhfA5Bt
 Cgl10v9DWX9cda2HlMjyyI9p3dfPlOcAh69PMwexJ1VYPtizK4ZkC8dNk0rTVPOf
 SYftSsFGdDbUAq3ZokhjLkVRFY1LxYhGBBgRAgAGBQI6L/bLAAoJEIQ2twt/hoJo
 ewUAnRRikiShfD9wCuyMazVJ9+FZLWiiAJ0YFgos24sNEFq5rA4I8UZU0LZ5Iw==
 =y5FR
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.97. Andriy Gapon <avg@FreeBSD.org>

 pub   2048R/A651FE2F 2009-02-16
       Key fingerprint = F234 4D58 DEFF 5E3A 4E0F  13BC 74A5 2D27 A651 FE2F
 uid                  Andriy Gapon (FreeBSD) <avg@FreeBSD.org>
 uid                  Andriy Gapon (FreeBSD) <avg@freebsd.org>
 uid                  Andriy Gapon (FreeBSD) <avg@icyb.net.ua>
 sub   4096R/F9A4D312 2009-02-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 wg==
 =/KPo
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.98. Beat Ga:tzi <beat@FreeBSD.org>

 pub   1024D/774249DB 2009-01-28 [expires: 2014-01-27]
       Key fingerprint = C410 3187 5B29 DD02 745F  0890 40C5 BCF7 7742 49DB
 uid                  Beat Gaetzi <beat@FreeBSD.org>
 sub   2048g/173CFFCA 2009-01-28 [expires: 2014-01-27]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEmAbU8RBACOi7LAumjK/zBMpQDMrR55L9xJh1vTYpiKayLth9ZPlsg57pa8
 4p93pSTs7XKcHIO8zqr+LpFFxtafUVoFwzDhwwhO8mX97oakPK/LG2ItUYYZ5302
 RX0UclTrMNt2UM+0nrTI/uoh/azn5S+gJNYYTEJy96QzOtY0eGj/dDvOWwCgg3hb
 fN0crXO6FKY+fshrgQUdKX8D/1PWjcXge7sM3tlR9z0ETZe35qEljmTXpT4sPky6
 KmUF4ymBqhWCTn10WQjuOjhEXhF3rHQ/omgOr/dBQFZefBtcYKHUBq3lvmd0cuFB
 xVJRQErw5U8r343EeaZOFY+ale9iNTfwkl8AyrkaazUH/j3qu4ZnGdf+Wum1P/SF
 8ijyA/9XcujJJuXMT717d5yY1Vx1Dn+aYLV4y3OiniJBQFP9CU2lX+Iw1sfuTGml
 zx8+RPTlL+S3+nz2XkiYwHVi6wlthhGIOgE5DfG1r9FG5PZJtBr3pQau9BilT1TU
 3rXZp2z/tkNEQTagSB4ObCAQ5bTOuxli41TPFuHxmn4Q1YrmkLQeQmVhdCBHYWV0
 emkgPGJlYXRARnJlZUJTRC5vcmc+iGYEExECACYFAkmAbU8CGyMFCQlmAYAGCwkI
 BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBAxbz3d0JJ20jPAJwOdzYWw9hZSEFtUf40
 lGSurerRAwCfWN8iMDBntKPMBt3j5QQWWSkPxx25Ag0ESYBtTxAIAK2WncBXO3CK
 VTcGY5jvbqKWsJ+JUJqZylaV3FW6YzAMKKw380m2khT823qgC5XBja+nm0IQn2ec
 34D3XKl8gjf4WWJog6y/DAnxvwdtsS+Wwq0/ownCF1pvFiIt1tAw54i5fmqpwZj1
 UPQE2IRc54y9yFdGNSuV0He9ZdJGxXKx2GW71rHlgWCfxXmD+GtwzFs76jn04bwk
 lj3YM/AVr+6C3OGrUv0lIzD26kPxpbZHPSx2a6imBk5HQKVsuYqqeI5ZMOnkbwPn
 GuEu7tVn0Y0lwVyBqYf1qe4u2e/38Kg7e/X7Vk/OTSh0FMJ5ZsakKUjedvJ5DA91
 gUJBmGkopmMAAwUH/jQX8T1IlDgmZN2T8FUc3hnQjcYdOPRJv2Qx2DeXK4OI4DCX
 KWxVGXeGVd+EpKgYCSmBYx5UA6MKN17nmoQei2MuVigxE07cCx6BjASTmHxex3r9
 EGl8luGmEkzhTajYfu+13dvMMQVYuyQTwB6dMioaw7j6lE5GBG06NvRfzik3mI5n
 ms487lKYcqAJ+iFk1a8Lbtof3xoHi9gYl3pWQ/rXirY8sp02e2FgC6iFvE/4+hD+
 DCdkkCZOJMIl23JVm4VLWC8Ak1Z5PnOXPzXwS1hEX1KjRyrW/Z1EwNcCK8zSNQH+
 bknf8dxan+46/iwig5ejA9N0lyy6gooFXeiYCQqITwQYEQIADwUCSYBtTwIbDAUJ
 CWYBgAAKCRBAxbz3d0JJ28NNAJ9II48hjLq4PRAYpsDHXGH+2wSr1wCdF1Kq1fEU
 WlCtH7Ew40yBxy/bVJ0=
 =h59X
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.99. Daniel Gerzo <danger@FreeBSD.org>

 pub   1024D/DA913352 2007-08-30 [expires: 2008-08-29]
       Key fingerprint = 7372 3F15 F839 AFF5 4052  CAC7 1ADA C204 DA91 3352
 uid                  Daniel Gerzo <gerzo@rulez.sk>
 uid                  Daniel Gerzo <danger@rulez.sk>
 uid                  Daniel Gerzo (The FreeBSD Project) <danger@FreeBSD.org>
 uid                  Daniel Gerzo (Micronet, a.s.) <gerzo@micronet.sk>
 sub   2048g/C5D57BDC 2007-08-30 [expires: 2008-08-29]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =z5Yc
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.100. Justin T. Gibbs <gibbs@FreeBSD.org>

 pub   2048R/45A4FC2F 2012-02-10
       Key fingerprint = B98A C3AB 412B 094B D6FE  E713 FA5A 1E30 45A4 FC2F
 uid                  Justin T. Gibbs <gibbs@FreeBSD.org>
 uid                  Justin T. Gibbs <gibbs@FreeBSDFoundation.org>
 uid                  Justin T. Gibbs <gibbs@scsiguy.com>
 sub   2048R/AF6927F8 2012-02-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 p74XqpZ/mgqZi+JmS/oDsRIZVbUjIyFB66IX
 =nVkv
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.101. Pedro Giffuni <pfg@FreeBSD.org>

 pub   2048D/422BDFE4 2011-12-06
       Key fingerprint = A12B 7C6B 54C0 921B C64F  7B35 58DF 6813 422B DFE4
 uid                  Pedro Giffuni (FreeBSD key signature) <pfg@FreeBSD.org>
 sub   2048g/43A91DE0 2011-12-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =fr2c
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.102. Philip M. Gollucci <pgollucci@FreeBSD.org>

 pub   1024D/DB9B8C1C 2008-04-15
       Key fingerprint = B90B FBC3 A3A1 C71A 8E70  3F8C 75B8 8FFB DB9B 8C1C
 uid                  Philip M. Gollucci (FreeBSD Foundation) <pgollucci@freebsd.org>
 uid                  Philip M. Gollucci (Riderway Inc.) <pgollucci@riderway.com>
 uid                  Philip M. Gollucci <pgollucci@p6m7g8.com>
 uid                  Philip M. Gollucci (ASF) <pgollucci@apache.org>
 sub   2048g/73943732 2008-04-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEgER9QRBADEnqKDo2SQwM99dEQW6sEoFafQm592R98bDFZC1CqmBhZaj9nG
 ksxyX82s/PaOoosKZR3hsMcDOJgYkHfTKIMU6aDVMrONfsgLF4V6meTaBHW5uSOI
 cJBsW/TSTsOq21yrp6995jSTsHZxV0CpFDZWGCowefxvbRoAz/89pUBxYwCglOYk
 btty+eanC+la8LUuLn1na1kEAI9wXI6wRbc4Qv4dppmNwiBsu0aDW2bOe6TNU5nj
 MMU5dMQkQ+FkHBFNyF3Fy5Uvm5zhGhlPKRTW9nOmLzZQBf9kj1G2giq5MN3fs4jg
 k15/93Jm3TnyV8LZxP4cBU42HhuL3b6rzFFNVgDLw4PJuSqjt/JTNhNtCwYW+nqS
 g08zBAC0FuxTJzna5X8Y2o5o+J2yU0kIB+y+fmGeaN5zg4VsM64Nexhc2X3HJbXd
 31hPqySdBl6DQP/I9U00S/C2Qb6MVwTDYR2DBltoeqoHOJKGLvqB5N01DAVg8kAK
 31PpMdFhkfZwM2ZsHfoGbnEB2fMd4Fb/+DwbjrckwdG1w8P2t7Q7UGhpbGlwIE0u
 IEdvbGx1Y2NpIChSaWRlcndheSBJbmMuKSA8cGdvbGx1Y2NpQHJpZGVyd2F5LmNv
 bT6IYAQTEQIAIAUCSARRtAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEHW4
 j/vbm4wcSz8Anj92jZBlcifpDwdiUvTZdGO28CjQAKCT4jeiJcLCbhnXaXonBCzw
 DRw5s7QpUGhpbGlwIE0uIEdvbGx1Y2NpIDxwZ29sbHVjY2lAcDZtN2c4LmNvbT6I
 YAQTEQIAIAUCSARH1AIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEHW4j/vb
 m4wcM20An10tzTX41D6qcEjOBqMzwyydrYoyAJ0Qs9fj/ct7iDCphvNwCcjNGMlx
 ZrQvUGhpbGlwIE0uIEdvbGx1Y2NpIChBU0YpIDxwZ29sbHVjY2lAYXBhY2hlLm9y
 Zz6IYAQTEQIAIAUCSARRmwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEHW4
 j/vbm4wchSkAn2DyHStIDMIXwKH8LAgut1wpf4sgAJwNKynACF0+sok5YupxxZkm
 QFJsNbQ/UGhpbGlwIE0uIEdvbGx1Y2NpIChGcmVlQlNEIEZvdW5kYXRpb24pIDxw
 Z29sbHVjY2lAZnJlZWJzZC5vcmc+iGAEExECACAFAkiGRaMCGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRB1uI/725uMHK3IAJ9n6VjOWpymuzHE7xN/xlJu2j5l
 uACeIqegqdXAaqRS4+olfTDN/nvoYWe5Ag0ESARH1BAIAJGalt0PcCClgFjAWdKr
 2+wNm8CrgW8cm62p1KZ9rxTHqpDEQopa8Y2G86pKDmhjJQmPmepcZx2ZhnBc0UVj
 qBA9bEDnVJU/ysuxjYrjswYNP+5ZemUsk5IZgnZOLQod6ewWtcdZ7EPJYOfKNAvo
 1TMNFZqA6CLKUgjPpokRdolseRkyuS5q5XM4InraptSvv6G6SXRiDBwChbwfbJG/
 82ClmnuInhDzmc4gg5flrU6RprLu/PPx8SSIRkVHNZdPL3cF5pocETruqdkcb8yD
 aC4kIIqsn1XeBYLXS5lYbZBexR0i4i0xkjXnErrGu2lgGm65RwF+hvRsDC7RIC0c
 9hMAAwUH/0UY8w+pGeGMgZJHiLSoaK6pTXv1/ega4na1vGglnBeGXB2Cj6jKgv3j
 6a9XLRtaw5owhTLAX0uWt1XOw8ojm+vgVBvXJO7ljUI99/Zov5IQRZfy4TN8dOY4
 1TNgGiwaUU/rh+MIQy5hFCQPGRjIUKIkOGEBKOaZEkTV6Hr9rFCokpcTILF73JB+
 hI2EHwnXzpFKmzB1zwbNvtv4QiyozROvc558n13WP8OdmdGNv0jNcytqEIaB+PZM
 wMcLMjikPHKUxfHcdmwCezpIBKG2T/5xgzTCMxQ0UbfIYLnsOfJrCm+akw2VbQ+R
 TdP5dVLKITdFUk3nydirHpN5JYkH31WISQQYEQIACQUCSARH1AIbDAAKCRB1uI/7
 25uMHPq4AKCSdNolzpw8MfWfj4LU2ZVlbflHHQCfWUK39VTu4mNu5nPmuM6gmewD
 rNE=
 =SgIy
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.103. Daichi GOTO <daichi@FreeBSD.org>

 pub  1024D/09EBADD6 2002-09-25 Daichi GOTO <daichi@freebsd.org>
      Key fingerprint = 620A 9A34 57FB 5E93 0828  28C7 C360 C6ED 09EB ADD6
 sub  1024g/F0B1F1CA 2002-09-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.0 (FreeBSD)

 mQGiBD2RGpURBACZe4DKSXi6jCkn4eZHJr7nGPISQr4YUq3rDqcOSUlFPBZlVd8S
 pYnfkNNW8HTxl0+qd5kIXiQxuvWxCrTNzoS0gPO3IQcICkAqbIICK0A1KFFx4Zen
 +muTp/e7bDhStcMEelXc+/3mLReBJf/d6e4For6P/rqVmMAcm5A2GO4quwCgmrSD
 fLt9NGJ+mtiXFxloHe57l/sD/3nanV7H4zk9gPJZA9b8UKpbZZmsyljTuYOAULL1
 oh3CZDYvKZZ3E1v9exVDadSGvbps1bL1okku27nNd9BnlnSxZ+sQbfJtvEoBMUwH
 HJnAhTU5sW0UJv6K7goZ283npX8fFjyDWJ4+XJ1Qq1e+VMF5QeZVRFiIJ6NztM7F
 6b1NA/0dwFApYGf2r8YV5uJPeSsWH94Mx4PTtIXp+WOovQ434wzuBUMiHxeeuv4z
 LP9Vjf40s0GoC0TLz8wB2awUrO8aWwgg9SUf5yO+jKZ9BchBgnqjju81zAG5sbUc
 ogMUrENjqIJgFCkHcnbxo2IHOygwjezvZeM/svcxJ1bW/gZlwLQgRGFpY2hpIEdP
 VE8gPGRhaWNoaUBmcmVlYnNkLm9yZz6IWQQTEQIAGQUCPZEalQQLBwMCAxUCAwMW
 AgECHgECF4AACgkQw2DG7QnrrdZetACfY5hq9W8pDo/vGEaCZWQtpTpW+EUAn0jx
 G2nWbw6EDoGxa62mmqy9rFyMuQENBD2RGpYQBADjmTUn3Gk/tkVzIgVm8wdfuMPb
 n08JkuNLUDYjxWRfRmVZHpT3L+e7rUwKFrcmMRM+kMSsnWKhmhwpkI4Tqgi5/lmg
 kN8R+kr6gm40lEAc8tNPNzbE4ueKSAwW8QKqC2iHAqe0l4SjvDEns5M3mARPEtfn
 tdEsQGeyGYlxsG+MhwADBQQA0HSyz2a2mMvyn7IfG7f7t3zuL5tXoFARYQ2FYMWn
 VSkydfzYuBc6kX3oskR1QMv4EDgX0hIUglvTIb918Qj+4tx5CKsUKnZFflGYfY2C
 qwVwR9SPPdX7rhytqkalH8HyuLm2XuRaf/pzo23tAivSXNFhfQhvybFtLdPBJ6yK
 3XaIRgQYEQIABgUCPZEalgAKCRDDYMbtCeut1qqBAKCDnLRYCpUm4eyVG+Ycsn6B
 giZvyQCeKeQZPCnz6RKllxb8E/E17bdhN24=
 =T2MZ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.104. Marcus Alves Grando <mnag@FreeBSD.org>

 pub   1024D/CDCC273F 2005-09-15 [expires: 2010-09-14]
       Key fingerprint = 57F9 DEC1 5BBF 06DE 44A5  9A4A 8BEE 5F3A CDCC 273F
 uid                  Marcus Alves Grando <marcus@sbh.eng.br>
 uid                  Marcus Alves Grando <marcus@corp.grupos.com.br>
 uid                  Marcus Alves Grando <mnag@FreeBSD.org>
 sub   2048g/698AC00C 2005-09-15 [expires: 2010-09-14]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.2 (FreeBSD)

 mQGiBEMpwEsRBADcnD1kRdYoPvpKLjT1w1T5p1fT/LAimANGHXVoZxusjNdJjleF
 7SNfN6V+sjm8bdUjZb3VJr3oA21sdwIKXzamhtbaDRAAvKdYIRecTaLId8SqI3dO
 mZtLVo0A7XNkjVMtyLn8lPKpdiHPOc05/x8sVLNZ2LR/xFJnbdT5bomy2wCgmIOF
 EaoJmSuh5trZRiKIAeIodfMD/3zaTMjI7eLziJG2IWdxceN40vUX555gCpeFEQtD
 DfVV++32c7BN0j9o8VFl3W1vsQ3Elhm9GRlb5hZbRo53Z1YTJEzogXTGBVipJGID
 cDo/bCmRuMSarsT+M6R1NF6uToSBeVZyCtA/DDbJHNvYD5VeOJKsdaQ7hYtctoJ6
 ms7hBADD8AeV5gLZOjOIFTAkX1ibEksxz/P8aUFjnj0QmPe98/RI02e/iYVVdPgz
 HgrTA+gF0X7nIicn+KhBgOT0MTx6bf9DFzmk1KaFBA6vnQ9alw1WtRHGsIm0OgD/
 Jn5tRQFriUS5PWQP8FKXcUfmqOd0WtLebPicX66nOba+NKdU+LQvTWFyY3VzIEFs
 dmVzIEdyYW5kbyA8bWFyY3VzQGNvcnAuZ3J1cG9zLmNvbS5icj6IZgQTEQIAJgUC
 QynBHgIbAwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIvuXzrNzCc/
 UUwAmwVe85K4Ljml9AgBKbNn5juVRkr7AJ96PWlTFr/IdKq+1m3Zw7Hyt93cf7Qm
 TWFyY3VzIEFsdmVzIEdyYW5kbyA8bW5hZ0BGcmVlQlNELm9yZz6IZgQTEQIAJgUC
 QynASwIbAwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIvuXzrNzCc/
 6koAnjbYaFve7vZz3DW2qTBnYXp/n5IAAJ9+2EStzCP3tnKb/hjOxotstQufCrQn
 TWFyY3VzIEFsdmVzIEdyYW5kbyA8bWFyY3VzQHNiaC5lbmcuYnI+iGYEExECACYF
 AkMpzVMCGwMFCQlmAYAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRCL7l86zcwn
 P+oFAJ4tcY+w4DVH+x7euh4K6ECBqM73PACbB2QBuJrDOtTxoYdmiH3XdHCytT+5
 Ag0EQynAUhAIAKD52CU2Xp69qfo/j/1aLgiMhgLpx56ySAb9SzZySUHadyptFpJR
 i3glUnoUh9dfU1jr8Y0f1oChCmm9TOZnQJWR7LOrO+av3gxnRtVMkvVr8eAPG3o6
 C3VZop7FPxR05Jmy0EtIxweEgNGmCX/p58T9LAM50E9FacmwYAIn77O5zXcJVnBI
 m9Ih05Hy4nGIoyF4iBA/NZQL10glMnwc6p82AiMj1FI6i6iDdPYBeiHKUXkyZ+Q7
 Df+HkelT3zot4DPKBeGBSFyQENOjHCp4wl27DsfiJXViy2NRz5lzrSFgvc0ZIUus
 Ia5d9nG+OE67JKU4qT5xgJL5+eOe1lXsHgcAAwUIAJKuSmq6lvF4NWN8HWDimXBE
 Ol8jNHf+miaLgMxOhAOeD4TQHpqgEhnf02koUbGDbli/AS1oC6WGhKSekgYKZCkf
 zmvRNEkCJCOMG3bOcKEokHiujcyQHWf8k4WmBQe0hGalrE+oaLti5H2/jAqUqYFi
 tHWRUeJDgfwOXRalI3YJJyjfBzE6ckE1kFWoEeXDuZdER9kusWWVrX38mdniwoKj
 7e+GtfYo+riB4Nb/TSuQjw45DKVaqYNi13P2P1EmHwmrSjnL3Yrck3x/vDrCKa0c
 2+BAMAaLVnOGdaYT1xsaMBGcgSkybQoOmvMm5hdtxURqi7k/TbaNhV/etSzfB/CI
 TwQYEQIADwUCQynAUgIbDAUJCWYBgAAKCRCL7l86zcwnPw4iAJ9rVaOA1zKrzwRX
 CLE2Xxf/FkN6JQCfZU7PjkJvE9jqgsBVfMhi6S6kNZ8=
 =rDV2
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.105. Peter Grehan <grehan@FreeBSD.org>

 pub  1024D/EA45EA7D 2004-07-13 Peter Grehan <grehan@freebsd.org>
      Key fingerprint = 84AD 73DC 370E 15CA 7556  43C8 F5C8 4450 EA45 EA7D
 sub  2048g/0E122D70 2004-07-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEDzjb8RBADNg1Ak3kReZLn5N6aGm/0ofeBsZDK31HgXFoQnXpZWuPf4Dcuz
 EztxDMfAhCdQPuFm+u2av7YiOc4Xmxmety18CwBP4E0w2Wf2RKdI7CdeVshn5epo
 kTMTn8pDu3ZDzui6Uvnjuc6y51VzL4zJwNNZAF5Vs1gXr+V7aDbvb1/6PwCgtX5K
 XQHfTdms5d6yhYwyQ4SrJ6sD/izS3iZBHe/nDdTBnSIA4sIdcZUn+sRfX7/GPs3H
 9JgYbI/+fatLEUShiKaNTCCibNRXx1OqFk0w+vs1pRz/ziE+G7uV7tglS3h8LMnO
 Q/6y8WwTMiv2seCKyiuvGxG2NMT7OAdrSNe8xPIlNRBdxvANFlgnfPsypXRfjJ5g
 1mqxBACaho98/zNgFpClOwAxw1Il0TX1c2EGB0e10FJ77rDNiPCWSnsPu5LB8mhL
 FfeGdx+zVVj5G4tMVIdJgZ5T4IpELPY1rpqf75F4mBrWTnmd7g9X1S//U8j7pNet
 JDVlymYg9DJvtKnfOHXqViwV8g2X0EwKsOpjo3IBZ0Oepw3wfbQhUGV0ZXIgR3Jl
 aGFuIDxncmVoYW5AZnJlZWJzZC5vcmc+iFsEExECABsFAkDzjb8GCwkIBwMCAxUC
 AwMWAgECHgECF4AACgkQ9chEUOpF6n19yACeNpRdDKA7qDA1vKGyjJIEdeAhqT4A
 nRC1CUpFTve3psN3cPWymDzSiHl5uQINBEDzjcsQCACkCgzuJRaPnoWmOZCk58ya
 +2Tbxd3qHtDDwMnY8NKi15FA0Cs40PUffHtWrxW1qcmm7QRmhHpR49tR1f7xT7CR
 OX5QKPa2axjv1mk9MKC4BtMe851UIMZ8vWbm/Obo9UdNYqEQEXT5TY6PbkiC8tDH
 5i00MBg6mkYtK9xU1OjJUp1YHuqalWgMEW1nUFM1CV1Fbk/SqLzyNcC0biTRMUkZ
 aZ1MgF6oxBIj/InO0f7gVoL3Jb5BC9bOUo3NkHCUQDBPwfLXR3lfrQLo7fLckYaN
 j85Ap6NXJr88vINfU+xn/MeVwTGYw9ejh4sujp3d57wP9Ym3PaR2SkoPdZO323oH
 AAQLB/wMC99y55a2jnP9IOsI+UIgWFWDmVqDhdgdp7asKjW2aUhX1k4CGPw7AdTL
 dtBdxqxFNp72fZPZ53ZIn0z2bogyYOOT4aWbTFiqKyU6CScCpeunKs+/qz0pw0f5
 /TdHgDCBrlMLihNiC0Tvtf/BzTLR3pqDshts8x82qKSjhxExazbBxJ23A4El53I8
 zZLQLD+vqJaFylhze8DNC3J/V4NgD1Vdporrz9L+QZuJXDGUyp6Gj4uteAu0W/My
 4+5zrs9Ym/TSmC4y3PLoqAeJv5I3E+6YqMo4c7XcLuJWO8jzg6aRlQmc/WgvVANW
 juieqW0bcYqNu2F/GeUcgvD3dWt7iEYEGBECAAYFAkDzjcsACgkQ9chEUOpF6n2l
 QACglTS9Ryv4oLwvXTNK2j2RLiH1VZEAn1YaLCp5rtafXPpdMdCOuJXo7MjC
 =UNPF
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.106. Jamie Gritton <jamie@FreeBSD.org>

 pub   1024D/8832CB7F 2009-01-29
       Key fingerprint = 34F8 1E62 C7A5 7CB9 A91F  7864 8C5A F85E 8832 CB7F
 uid                  James Gritton <jamie@FreeBSD.org>
 sub   2048g/94E3594D 2009-01-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEmCOzURBACOSQ8S2bwRYqXrfV9/pT8BmnGl7GYrkbDtJqL0IaTV1Bmdw7ed
 qcDjMT55c2LEQlO7w2EG5z7JfaBnP+jV3X/gtH37gcqClcJRxJ2uhT7fShzmRR/U
 5iTbAt0BwDF/W5LFmxajhZvw8NJKeMk8j0kUwdTzSKalN+iAhXEhqx/uWwCgz2qg
 9utCYdwfeSmRwebBIQhPq4MD/2bWpo3/Vw3PZzNsja1l/s8jQjxkMoXJ8LlYFoYW
 vc5lMBeR0nb1lZrnBvQGkEJVSPLXLvTBYireyqai8pt+Uk7D1oRevpsD/rIsSZBV
 MVSa8jUqPF0HC0vWrDd98HDq/RJ3SD4HHhiWJ2wA8YrftyeHzZ0kiJYzggQ3UPM6
 +x52A/0U2kBqBq+HqA7YWTEo4pn2W3adZCT8mwmsDdEnC/uTvA0BHBN1HfgCxwee
 TSqOwssFioHCVu+N/lxKjqy9ftHI4ljSuYOPpC3q+LwFdVjbCQ6ynILNKp89QiK6
 B5TphmOTQJ4ytVxr/tcvzDOCxbtyG6t7eCJBlfEgGjZLQu7uYrQhSmFtZXMgR3Jp
 dHRvbiA8amFtaWVARnJlZUJTRC5vcmc+iGAEExECACAFAkmCOzUCGwMGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgAAKCRCMWvheiDLLfwhyAKCP4JGKCayDfY1f7sBXhYSa
 6Zr5KwCfSy1evNxNmp5TwB7RBpEZpL2R2C+5Ag0ESYI7NRAIANiluE6e3GNLyLTc
 cc/SQ5NdW4/B89yDQkZi/f7mUAMiS73iKoe555EVI/JIFsHUduHeYMB/ERDHNSUj
 RmWVkb4r8eVSlMVvoU8sBYGqihoYtFXYT7rj8vvq6ufkF9RtBJLTLzikEg07jfQk
 EzKr1eFOl0v76UGnmqrYiTXOAJoXQIH4+Kt3pWd8jz0Lsc3Kd4+eMW2A+eXSpShb
 yuQhvtIkSdOLDa9PV03Y/GweSCbTKa5+oTmCoKvXJYjDHwkuj7n2dog8vo64Oy1h
 z8mPPFyDXr1OitDdA78Vvpu8afz3Uev9DMaKd6WIEtVUprLOXyuSixn0x0rvImes
 t6lHX3MAAwUIANKigPUT7boxzc93BdWUOKrZEnjN7zVnIqUMizVgi0K9nLM+lSpm
 exPfoEZqCIBmAmDRYO50Y5Lwb2R6V0qHFBmIvZZ9Ih4YosXuu6oFhKHjamRK6JXI
 hh5mMrOZnfDRn5YGEr3ZCEOGzdW0pY1t8THd6mtXmK7iIKKy+3u/WHf0tCJDRXk6
 7ETBWwqFTE3XpZz09aHRV2470GKESSbs1Q4Cobc8ZIifNzr8kfnWPm/EH2UCNpnZ
 K2UvAxi6SRYVWIY11SRS/am+DRGweKfm9+NZpHEk2yJknHd95Q3IVw+fX+2yKVQe
 L+X9H5BR1y6XxKbxqrlWF5I2FDJo4BzOA1eISQQYEQIACQUCSYI7NQIbDAAKCRCM
 WvheiDLLf1rdAJ976PPYVcvK8Q/zKQrMv7pff09z2QCgut3uY8LEhlK39qZCF9Cl
 2+bu5gU=
 =Uux7
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.107. John-Mark Gurney <jmg@FreeBSD.org>

 pub  1024R/3F9951F5 1997-02-11 John-Mark Gurney <johnmark@gladstone.uoregon.edu>
      Key fingerprint = B7 EC EF F8 AE ED A7 31  96 7A 22 B3 D8 56 36 F4
 uid                            John-Mark Gurney <gurney_j@efn.org>
 uid                            John-Mark Gurney <jmg@cs.uoregon.edu>
 uid                            John-Mark Gurney <gurney_j@resnet.uoregon.edu>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzL/8IwAAAEEANuX7fcIa0S5fVATYQCGwgBJo9DxRr0m/QjrP4dJh/JEIjmv
 h37FMs9qsMPtyAZWlRSnbVFyQiz5ptFuL1irClW2UHzlLvd5s+pKMfIkJWDTnrvp
 0jFebYQt0chZeLcKT9s5sSo9ua+fUumOfaWyubUZPIqmDYqy98Em7wI/mVH1AAUR
 tCNKb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakBlZm4ub3JnPokAlQMFEDMBDfTB
 Ju8CP5lR9QEBmnsEALAS5dZyQXxsDAROz+yHizsbgV1Ok9vFwE5en7QnOGcSkQX9
 pE7MzzlbpP63toF9zWLF75dbXE5X0yYLoB0pvNi1NXhXqA0YbDeAi1Ed6uBXbomW
 MDdm0s+O0Y1NfuS0uKiFiJUDOjdBrgEbnmPZM/77dhr5UbmAtQUHFftaQfY6tDFK
 b2huLU1hcmsgR3VybmV5IDxqb2hubWFya0BnbGFkc3RvbmUudW9yZWdvbi5lZHU+
 iQCVAwUQMwF753W7bjh2o/exAQGjjwP+MKiFH9EfOGS7yr5NQ4+vWXuHe1N6fi9N
 jJsFfzT/RCM/wo/dNG/xhTgdCoCWRt0gKkv3SLEPYGDPDtC3Nf7HV/66wOiYYnxD
 3cmjgpLn5u/Ju0oS5xxNb5Ly8EZnfz967lIHjp/qhbZ9o7kO7Nkb7bUgozNqBaRy
 9Yo81fVAtrOJAJUDBRAzARCXwSbvAj+ZUfUBAeUyBACKoIXfYBpsKqmmnTg944Tw
 5t8lAFZ8qJz42Fjw+hswC6c+7b87imwaH3AjPnFmsA6f1ES7xDHG8RQleDtKsyik
 gHc9Yos/neVqwfrr4zSV1PdNPPpG5uNT/jI1k1M3pH8kwYdKiwaIHQb5+sGUQsO1
 ZoxCdzT7HJq4jJtBGVIRULQlSm9obi1NYXJrIEd1cm5leSA8am1nQGNzLnVvcmVn
 b24uZWR1PokAlQMFEDMBEHfBJu8CP5lR9QEBak8D/2V+1pP6zA1dvhRLcO2pGldn
 Q/dcVAAtZIZ7AUUap1pKXZF/Tt4gWKMtAHj01xUbwU1fmI6DF1p4AVjDqOxJDnoZ
 RD9gv0RiZXdUesXL2UBNHc/7f+amAJgmXNrP/m70ejgzPluniR5hQm76fKYjkxV1
 opRhhchTjhrFndoQ9nvQtC5Kb2huLU1hcmsgR3VybmV5IDxndXJuZXlfakByZXNu
 ZXQudW9yZWdvbi5lZHU+iQCVAwUQMwEQWsEm7wI/mVH1AQHxMgP8D7VM+qUo0qGM
 uFUKqxoQcDPVKt2W1X6wWTHdj9cxo3oW1tlLEZ24Y2v5v1pzonvseaTjsse134dP
 a9qjcwXjs/zxXzHoQs3B9BZB2qXaR4T3YeuCjq2qIXGwsrrY5fkoch4OLg0/FOui
 dmNbFjVQkIma2rIRPa8GhXZJtGl+UEk=
 =bUtb
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.108. Daniel Harris <dannyboy@FreeBSD.org>

 pub  1024D/84D0D7E7 2001-01-15 Daniel Harris <dannyboy@worksforfood.com>
      Key fingerprint = 3C61 B8A1 3F09 D194 3259  7173 6C63 DA04 84D0 D7E7
 uid                            Daniel Harris <dannyboy@freebsd.org>
 uid                            Daniel Harris <dh@askdh.com>
 uid                            Daniel Harris <dh@wordassault.com>
 sub  1024g/9DF0231A 2001-01-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (FreeBSD)

 mQGiBDpjbB4RBADW+4fkXvVjAZ0A1X4wgXJQ4Eyes1LH7sTexP/Zm7sg1D/R9zV5
 w2kBwOhICRX/hxVL76YZv2MTNL/d3pV3ZW2yV3Z6H7Pq7s4oVn2q35owUwLQZfSI
 SBTnBiVN7NqMZ/kzCCdWBwg/4G2FVNFwc7RyuOFQL3ly1PBtgbANbpCyfwCg3QXB
 K6AtFaEP2MA+SWWHQD2dNxcEAI11cbOHbYU8asIxbqYYyPOMgPsaLlPiTh6JQOO0
 2OiGxoQlmZvkhlWf8B9ahCeYoKgA1zPqdHA2C9YMvOV2LvN+/Qi0n3hpqkfM7lLC
 QMJgm1KxIzccWY9Iz09GRlIFm2JPaCVLsKh1QPW50c3yO9TMSa6lXwiRgvxPz76C
 JHniBACa25NHH3x8zx5KA0FgMM15Wc481777CFVsKazNay00G0HogSICZ5lHffdi
 1O5u+qQHchVKL0Lbe1zhdbVHdSAbEqnKTqseVMQ6I1TVu4gO89B72aY1RxAnAYjh
 PAb5W/RhZBSR5NDVZyANnqaGE7U7KMqn4/E0lC7w1TzoIZvDMrQkRGFuaWVsIEhh
 cnJpcyA8ZGFubnlib3lAZnJlZWJzZC5vcmc+iFcEExECABcFAjpjbB4FCwcKAwQD
 FQMCAxYCAQIXgAAKCRBsY9oEhNDX55peAJ9NKai2qEcFLxzC14qDz80zBGwP0ACf
 YhsW5qhTw/Rck1Id2W1alUEXMre0KURhbmllbCBIYXJyaXMgPGRhbm55Ym95QHdv
 cmtzZm9yZm9vZC5jb20+iFoEExECABoFCwcKAwQDFQMCAxYCAQIXgAIZAQUCOmOL
 hgAKCRBsY9oEhNDX5wXyAKC6VLe3svRc+FgmmjPS/EWvi83sDACeOpmPRbViajOw
 4MUhKA7hxnRlBeG0HERhbmllbCBIYXJyaXMgPGRoQGFza2RoLmNvbT6IXAQTEQIA
 HAUCPSJfQAIbAwQLBwMCAxUCAwMWAgECHgECF4AACgkQbGPaBITQ1+dSxQCgsBwM
 uDviakYEKswiv6zMHfYBBCEAnjMyu+oxjKOWOo+of2qmtQH2LNg9tCJEYW5pZWwg
 SGFycmlzIDxkaEB3b3JkYXNzYXVsdC5jb20+iFwEExECABwFAj0iX2ACGwMECwcD
 AgMVAgMDFgIBAh4BAheAAAoJEGxj2gSE0Nfn6bIAoJlPaQlqk4wbNGoscjigAp0R
 B9ooAJ41JxSh9w2S16mFTGNKvVpjXw15BbQyRGFuaWVsIEhhcnJpcyA8ZGFubnli
 b3lAZGFubnlib3kud29ya3Nmb3Jmb29kLmNvbT6ISQQwEQIACQUCPSJiFAIdIAAK
 CRBsY9oEhNDX558OAJ9iOqCDUX4cdNMSZ1KBQg1gfTn1yACfZNL6BY+mYC+XV83L
 7DXacstXHlSIVwQTEQIAFwUCOmOLtgULBwoDBAMVAwIDFgIBAheAAAoJEGxj2gSE
 0NfnaM4An1YVu3iDtrG314UIuZoTw3zd9ucxAJ4yg3vWB6ceg06KuyaGTJSdZ1Oa
 p7kBDQQ6Y2wkEAQA0RSR8vkmX33oyYl+LwlOmemSKbSQFZNImw5TDcRYX83fa1Z1
 4oIgJSk1h5l2jx/+29chVR1nTNqPYlRQEDMxVby9rMq2RAnjorM6oDdtIQIBNJ63
 vmUcUiORGnKhC0waajpmZibcxoUFk1KcLyfxOT0JTOLgsJfqdqUENIc6NqsAAwUE
 ALaLYnBOoIr5Wm/KC7wRtS4gHeeOeskZyyoa3+AeBorDl0VvpgYwlNdAaP4xJrx+
 CH6UYnxrMgCXG1l4dupkGXOCRPlAcM2ouEyDIGHRTVqHy40khZnWzN7xfZhKNcVd
 FxeHqOG61ZrhcMboxZrdJC7hK+sYrbngeKRiDs4VRoOuiEYEGBECAAYFAjpjbCQA
 CgkQbGPaBITQ1+foeACgme+2LKdFkytbn/JUhBqPYVAD8KQAnjP+IDVQ3PDEKRkv
 AFGJ6i5SrWJ6
 =j+GD
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.109. Daniel Hartmeier <dhartmei@FreeBSD.org>

 pub  1024R/6A3A7409 1994-08-15 Daniel Hartmeier <dhartmei@freebsd.org>
      Key fingerprint = 13 7E 9A F3 36 82 09 FE  FD 57 B8 5C 2B 81 7E 1F

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQCNAi5P5owAAAEEAMIKNuDnLGiTOzk3kGMmz1ii9FbYEM6fKdf0jSi0YSTxSWAn
 7EZbBehJ3yTAYuCaGSEGXEWismycc98LnH2Fb0uI2EsJ0CVLJqxsOL3DK8XE0YOk
 HjSKUpmJkh/BKrMAmUnqhbD6YIBiKnZh3ABt9+a7A+SakJQxvtQ9cYxqOnQJAAUR
 tFVEYW5pZWwgSGFydG1laWVyIChMYW5nYWNrZXJzdHJhc3NlIDE2LCA2MzMwIENo
 YW0sIFN3aXR6ZXJsYW5kKSA8ZGFuaWVsQGJlbnplZHJpbmUuY3g+iQCVAwUQQGso
 RdQ9cYxqOnQJAQFBSwP+IIm2bFprpayabQ/VgXp10OD3sgIEtH8c99sU91LyotNT
 ySif8DS+ujliDk5wVnaOlzqrV4sga8d2ybM81hdW0nxI9dNxLIp+ti90OecZMF6M
 4PlsdkYGnqZDzXlFg4o70GSAWKjL9RTG5JvNnYWS453mCjYc3O4dm+1zzADfgcy0
 J0RhbmllbCBIYXJ0bWVpZXIgPGRoYXJ0bWVpQG9wZW5ic2Qub3JnPokAlQIFE0Br
 JFTUPXGMajp0CQEBkqMD/0D1K1hTJc8u5K3gpsk9LrnOVYpP3zHbSe94oLO5tHv/
 b/Y1626xqcMKYfAIk435asuPnGRkMjgpsxPUKksfWMlUqW4aIiX7di6aMuWkgSBI
 BXguu1Dk/qRImOZkNzWc3V+/CQ+PIauy2rZubfW2+oVkW1iEmmO7I/nPqDxDBNBI
 tCdEYW5pZWwgSGFydG1laWVyIDxkaGFydG1laUBmcmVlYnNkLm9yZz6JAJUDBRBA
 cX8u1D1xjGo6dAkBATkoA/9aDk7yNvh6urP9EWcPv5mjJt0yYIIjGpV7VH2P+mTa
 dK14ah24HSaTjh4psJg/uFw4egAs2XxDKXrf1SHCaaVajC3VQGvKq6V2Ytmgw6qe
 Rtt+NtrXVJn5EUnMY3+G8YCXugulym6bUWaC1x6PC0Y2IEzRkM3H5Et78gd2zujB
 o7QqRGFuaWVsIEhhcnRtZWllciA8ZGhhcnRtZWlAanVuaXNwaGVyZS5uZXQ+iQCV
 AgUTQGsk+NQ9cYxqOnQJAQEV6QP/ZFHefmwjiex7zEU9uhzjEdZhDlM0szKULUoo
 TB4x3yiXiYlzK2aqppXbV+vl+t2VLhd3McH+SKSiKwoBVWrdqsXguruIjUYGMAJI
 aE+Zh3OGUs8sZhtQqn3nE4+VngpyXwPwXPrDhQiwwJRxj+01lupNwS0Z6cAPmD4A
 W1L0aSc=
 =HsTV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.110. Olli Hauer <ohauer@FreeBSD.org>

 pub   2048R/5D008F1A 2010-07-26
       Key fingerprint = E9EE C9A5 EB4C BD29 74D7  9178 E56E 06B3 5D00 8F1A
 uid                  olli hauer <ohauer@FreeBSD.org>
 uid                  olli hauer <ohauer@gmx.de>
 sub   2048R/5E25776E 2010-07-26

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =cHUi
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.111. Emanuel Haupt <ehaupt@FreeBSD.org>

 pub   2048R/C06D09BE 2010-09-24 [expires: 2011-09-24]
       Key fingerprint = CC88 5081 78D1 39C3 B467  865A 348E F6CC C06D 09BE
 uid                  Emanuel Haupt <ehaupt@FreeBSD.org>
 sub   2048R/F658659F 2010-09-24 [expires: 2011-09-24]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEyc9+EBCAC5T1xdwPOdncmPh/T+n7l1azphl7haKdpfIrAdCaJFxQIHFqde
 S4hpq/+KKUDAVOGTCn/Cvz0GPd00EgOiR4gBxhQKYSFnVoEGVxxPUX+r9ABZs6fc
 8FCP1enBhlHfuO0pwt2139vagEQC30MlOr35OMVYlB+2tX+CVe5yVZU6S0ZA1u3H
 YHnGHpFweC/VmTFmwVV7g8OtsV0uC7VxWiNLITSmUYyJ2L0B8Lkne2lFzWnUMtC1
 PnOzRFiioM62jiWWLUwHP2vcky838rQ4ICnzpHPvkZv+/YvXsFni/z/hCa3Oqu0O
 zSofjPu60NtNzZdB4F3bVEdWwRWGYzDvjQJ/ABEBAAG0IkVtYW51ZWwgSGF1cHQg
 PGVoYXVwdEBGcmVlQlNELm9yZz6JAT4EEwECACgFAkyc9+ECGwMFCQHhM4AGCwkI
 BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEDSO9szAbQm+S7UH/AnqrRmTZwHIq1VB
 aawX61ejWxfoY1glx4jEG82AEp6MsEMc9p+wIBpwE4ww+trRqdlDmBqsrL5PBdHu
 MxVW3zlH7KLIkjUj7lWJw6Ifhq05bqh1+KbLOb2iM+8h3k65IH1nVjnCwAqVX8Ev
 CGa46w4kKOqCcmYDgbYJFYm3b8dwy4TO1haMfsN1zbcUgKgWa63l0TIcns4Ux5pK
 ZEF9iV1uJ5GHXyLl4vqdaYtGd6Tj2pO90zfLPUWAXpI23/q1X4CrsDOD8kDpjT6v
 JuRfQOiwkjpVEOgo2btLArX9Tvu2tmPFbstvwUaZByf0V03c19DVasg33vOaYOcr
 UsTxfZS5AQ0ETJz34QEIAMBygTWtv/grv0Z6U7WoWqRtbH++8jb1reZezLaw81sP
 O6wf0f37VxZi9SzTgLcyLx4bJ4vYHKD9QcvzE8Q6szLayMg5tIVVL8roonmLjFgC
 JdGVOBwsgLWpZ/gE/xBIB2kHaNcr87HMYkZmz8JHsUNFJh0mV0cgWxNzezcH+NCy
 NyKH5qtb6PNSR5u6IOqkqhX7vWRRawYcedI8IM62VZO8nob8kXcOwrYxYh3KJhVl
 URaWRdZnznFGBTQXt3md/EsBFB90O3dsfuBxH9M95oNnKa/VaTD0gRHHyysaLbmk
 ukd1zvxSxlPRVCaYDTgU/ndl2HxsrTkA2y8qCUKm2V0AEQEAAYkBJQQYAQIADwUC
 TJz34QIbDAUJAeEzgAAKCRA0jvbMwG0JvkHWB/4pW83qa4YmXI1FdD44/jlVHvPC
 gU+fGmvaG1/1zD3oJd8C4502VdrUvyOc/NtQ9Bgjku51OvzwfIQYiYFY9Aq+xBAz
 2FQQAKj6JaIzx4DQD53AnoWo3UqA34Wtn+YUZzv6zfnXIpJw2QnL4tFyY0WNFJuF
 r9j4JZYYZEwsUbL73EcRRJqbVpJMRgE2P7CmiJYFDxygx276pBTUv2jSO9zWK3Hi
 pwxY7Q1YlRzSfRN0TLb49A85DZWG2OqDIVJew2+fP+wjHQndNF6xuINNkZ9K7hyr
 i+WSZkZBLbU2Uk3tyfAHoO8OywmSK2vKYFjmYpkqiyx530/oOqSiSoOPrLfW
 =7z/9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.112. John Hay <jhay@FreeBSD.org>

 pub  2048R/A9275B93 2000-05-10 John Hay <jhay@icomtek.csir.co.za>
      Key fingerprint = E7 95 F4 B9 D4 A7 49 6A  83 B9 77 49 28 9E 37 70
 uid                            John Hay <jhay@mikom.csir.co.za>
 uid                            Thawte Freemail Member <jhay@mikom.csir.co.za>
 uid                            John Hay <jhay@csir.co.za>
 uid                            John Hay <jhay@FreeBSD.ORG>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQENAzkZeP4AAAEIAMKg3LRpUCJdg9V9Pr0KIdvaQeItf5Fcrbh0GE4skfNPKeTg
 TQifwdG/GrMPYJBPHU8JnFqumLUnd2VSoFEJ/6W5SOZP2l5ZCq496pGCSekpe+kR
 dN3Ra+GoR+cWVLKuXj+IxA0Ziv2WEl027TnMhWGf/DHLdoWvSwJdVrGnk0KjBJGr
 HwWE6VGlhBSoOWMa9T0tb3sRVTEIJXDCn8f12eixx8XCzwIQJSgWC+ThrY+ZO/hz
 FRR5yl+izJfffQiLjc4yY0rXqDu9K3i+/0lWywcbnqMtRj8Pnr3j3Lzft+xex2ml
 qX68fE6dxof6Tc3GQCEqelj0IOAb8Zqy2qknW5MABRG0IkpvaG4gSGF5IDxqaGF5
 QGljb210ZWsuY3Npci5jby56YT6JARUDBRA8TDj/8Zqy2qknW5MBAeMwB/9R+Nvd
 bPPkvll4Qaw9I1FwM3iaMDM4IkqR6r+Gsi+RYIClYmRBU1HXZzKyNR/Ysy0thnIe
 YO2yg7U2nYJ00ysSZl1Hd7R9EQBuYZk647PMKbQ+pQ4k9KiO1ObT9JivWz6u6R3l
 gJMnCUEi6s+xW88eeTDBO/AKE9eUUBDZ765M3WcVmGfDYNpW/D3tX7taGcFT80DG
 VXKnFHAP2Um8IZeHXKGqh/jTTNCqwz7oj3GfVzzGEnmwI+goZScQWUl5J708MnOf
 uxiuOMBs7SLsvg1d7iEkO1oCDClv72i2Sr4rPuybIPMMPIpx/DpAZAIiMYHJ6PdK
 nMXSYgk0GOjx72pttCBKb2huIEhheSA8amhheUBtaWtvbS5jc2lyLmNvLnphPokB
 FQMFEDkZeP7xmrLaqSdbkwEBzGMIAJLwFCCICbR+kqejjFh2BznIOT69PIfE422e
 C2yD23fC/lqZ6LixxGrsZK5TxRycWw7fq06h77kd/RX8UMFErphMTkIapt+wLLoX
 qGLcY1dVyNhW34SutdHzXkMFo6T8COAautpnAMhrSh4dBw6XQUreVqc1BsyXL4vT
 LyI1/E8E3wELJZHldWQ7ldvXPUOaoJp5PJ0FIV3Nvme9g8U0BrZT/NjH06mYgsKW
 +40ZjeRycvA9Yjh+ONAOdX5ijn7QbixjSehFsmdpx+KdNyZbp6iAIurf7ysEp2Qm
 N6K/3EukEnVvy7Nn1L8+7K4IDkK+TocpG/m/P67w1AlrW0tNAMe0LlRoYXd0ZSBG
 cmVlbWFpbCBNZW1iZXIgPGpoYXlAbWlrb20uY3Npci5jby56YT6JAJUDBRA5HN4y
 wnPlMN5G9U8BAQVeA/0V4alPthF5+FVL7GJ14R7IQee3NkepbsCQrWfDl11DJkyn
 DxyISqzQd/ur1v5gziOMppQ35rekRYxqqmcKSg8oZtcQ8WFfrMPOYDDn8uTXmwX4
 OgLuW2EnJc0y1JiKuew1tHRQuoObZtO9yePRKkq+cPgLn+yrjPjGAJ1AuUL56bQa
 Sm9obiBIYXkgPGpoYXlAY3Npci5jby56YT6JARUDBRA5HOfE8Zqy2qknW5MBAXAc
 B/9QuIZEQJDfYJyv5Ztu9mtEUZoFfavYmLnLvbUz0rwZOzv8/krEQtkdVvkWYWQc
 JSal11h7L1EyY1YzrTnANkq4KUboeiR3X6RZ+z0p1pg5C0imWFdMpqnY3croHkQy
 0zU/d/kDd9mU3xismVbDa9xSJHbFh5KDpvnbeRxh5VIXcdiJ+RbM9VNqsMmZwCBS
 DgY/pyRuyiMM91L9IfWlOUwllAEHwedQg+ja4/M1gyiGKr7rmiE5LH9xbInvRR2F
 rQKDtmU49MS7ybHoLfZ9GXKo8iTNOuXE7OGOx8kIuapiNwKm2wayng8utIxGacoO
 hp8D0uj3dgTFUZ3pcMSxtjWEtBtKb2huIEhheSA8amhheUBGcmVlQlNELk9SRz6J
 ARUDBRA5HOgL8Zqy2qknW5MBATYEB/90qkiF+JTQZMN2wwlLkXiadUd1uHK8Um7q
 f19t1pI2Is0BNxtBwVY1OlrkpFkSkpSUHEmVKUVhHjsHVV+r+EdJ4dTcsT6c5cCJ
 i7avfz8duVbym09yDLytnBGr3te7tkmalwk3JkjXJhiMuUW9w9woCuVWRexlABDm
 Md8JjvyLqIe6bNkIcE9GvHhQQUYegYqVhDqzKH+cme1olSYDDjt458yMYo6UXu+x
 g7gESluIgGpK5hKI/MAw3r/XgOliBa9igg816jrTFiX1oZT6dgDKlzxNS7J/O/EM
 GOmNi8N03Qx819oKlUaMHAFPNeUfdT74bqVYbDo/GJptzaQtUiMv
 =l5Xu
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.113. Sheldon Hearn <sheldonh@FreeBSD.org>

 pub  1024D/74A06ACD 2002-06-20 Sheldon Hearn <sheldonh@starjuice.net>
      Key fingerprint = 01A3 EF91 9C5A 3633 4E01  8085 A462 57F1 74A0 6ACD
 sub  1536g/C42F8AC8 2002-06-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBD0R0hQRBACPEDZc2XKdvIq9F4ofeq/EUB8ISFQ6kaVPcb5ingy5ND+0MUbz
 K9U+q6Ik8d67KfHHvqGn7XTOXxGu2WS6rIa4ElFHtG/9lpgYtOFRZJxM8nv5+zCn
 elu18skUNup1y3uIwvhNUY3OPSzVkHC+tUPWfW/8DqdJzud/l8sDFDRtBwCgtixB
 FHJ2jRXInApVzwLcjpgVJq8D/ixzt0O/Zg2p62/qyAHac7M1sEc2QarCAGwRbuNw
 jHRtglxQw/GT2NACWqy7lVHKd37ciCrXg9QrTjotJtMcoJbCitYvbQo2RHfEeIyN
 yw7rffTQ4CpB51KxNhUWHcUfe6Jhx2hgHzehJg7hYnbtSv5hJcn2DXMSHHyHwBri
 hpldBACI7iJxl2MtFUHBo3XW27WYDzTNTh2LUaMcIaowMW/+vIDds6EI71dCAjuU
 Ai8DcNacMtE0xRdtNzDMS8vgYWBVLkHv2ENVdLfpxhM72iu4tmPKGF5AXK191dvJ
 qPge41Z2/57191Xt+keYtuSQDtXwZfSu1uLOHBa0BBvmppBOtrQmU2hlbGRvbiBI
 ZWFybiA8c2hlbGRvbmhAc3Rhcmp1aWNlLm5ldD6IVwQTEQIAFwUCPRHSFAULBwoD
 BAMVAwIDFgIBAheAAAoJEKRiV/F0oGrNMRsAnAlWdC5LkmEF3hZjNAIA8gMxkfnZ
 AJ4k6LXdmHMSSPbd48MbDYq67yzOG7kBjQQ9EdIrEAYAib54xuFqjHpvLxXmqFRl
 qAgAD5XpavuJisxGjfm7aTVWIpR/OOVFYkW59YInHM7dDHL0Y7tQETeEKf9pj6kF
 TMyWFoBjtdazqSmq2YXOvI00N27IKT9eqxJ/qR8QgIqBMNkraP9QKi60ASDIRUtl
 OZSfokSbAKkZMTyS086CgWw0bCPXRCvQLHDjga3KCbht0AjrZFkGmi6r4+rXFnT6
 D3JrNSQ0Hj2qFEixHtZvXTsqgsEkOEtoe5taMFSygM0jAAMFBf97Ip2a/kPkXNt0
 p+2xmWIFEDim7J9Cwl5viTb1t8fOKx69hFDQ2BwPNDZd1HvlrYTpuJ23uTrDOZsw
 IT/wVc/IQ9nn4+mkxOmq9iTHCBS99OXz4IsODT3W1sgzUfl+mdqJP8xfEnsyqy6G
 ivOoR3QdZg7rxvOU98HhDQ1iJX3rCtLNFGisrovDF33oHMEE4oHvSMXeg65JXWiU
 EpEpioINjrA3P+TL+fMv1tb4+wSUPqTWX34Gx4UfDKnMedxl6j2IRgQYEQIABgUC
 PRHSKwAKCRCkYlfxdKBqzVtaAJ42mqzwmJCpk8fdsfkHUt5uGTN8sgCfdmDni1OD
 NWQi1mhQOXZX9oGgyso=
 =PTeT
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.114. Mike Heffner <mikeh@FreeBSD.org>

 pub  1024D/CDECBF99 2001-02-02 Michael Heffner <mheffner@novacoxmail.com>
      Key fingerprint = AFAB CCEB 68C7 573F 5110  9285 1689 1942 CDEC BF99
 uid                            Michael Heffner <mheffner@vt.edu>
 uid                            Michael Heffner <mikeh@FreeBSD.org>
 uid                            Michael Heffner <spock@techfour.net>
 uid                            Michael Heffner (ACM sysadmin) <mheffner@acm.vt.edu>
 sub  1024g/3FE83FB5 2001-02-02

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 2Q8=
 =/joR
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.115. Martin Heinen <mheinen@FreeBSD.org>

 pub  1024D/116C5C85 2002-06-17 Martin Heinen <mheinen@freebsd.org>
      Key fingerprint = C898 3FCD EEA0 17ED BEA9  564D E5A6 AFF2 116C 5C85
 uid                            Martin Heinen <martin@sumuk.de>
 sub  1024g/EA67506B 2002-06-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD0NjbIRBACZTF4rK66+y43uXsV8CHSefx5lRHaLPFMNga+sUBRIFcwu9WbS
 KSP/r60Gf/mNK4EUX3/+3gVljrgpAbQL9X9MV/SO50aZM8JMrUkUwjuzzzFKplT7
 bdB2zWhexWemFsE0F1G5NpxkqMg/E0aiZb5P9MVJyGLlF1hCwhWsNG0OewCgzQ/b
 yAEMk03PPk3DOaM4d/Vdf38D/j4O+TJPSjMf58wRGkrT+BmLCvFvg1OsUOMgyQPC
 Y07yO6WmSiZV5ynqb4bS5m3jfQmG1I2wK+dIf8SHyaVgqZiUpfqrsFV2qwfZXcod
 C8a8b/kmEbdMk1j+jZ8qxSScrKCHKqdEs1UihCt/F1kVVd8gqYbWouICxF4GoU4Z
 ANmHA/4xVNIInKVghFk9lMaK9lDgQs02laaTWLWzcSfe28ADds3Jdur0Ox06tgeU
 zdktWQvRYpIjqiQCCFLN18l6Lc5qyTg6fnx2yWpWJMb/xumUz7A79X0TBN8WG71n
 zfJLHtn7fCjsi5009s7Ahu//Q7pGN8FvkrZHZ3xNw+3pAaoawrQfTWFydGluIEhl
 aW5lbiA8bWFydGluQHN1bXVrLmRlPohZBBMRAgAZBQI9DY2yBAsHAwIDFQIDAxYC
 AQIeAQIXgAAKCRDlpq/yEWxchZjRAJ4s0v1VXJmkm7kj3kMM0Z8xMNoJaACgkcMu
 T1ID/2v+A1X7+suOzrWMr5aIRgQTEQIABgUCPZGohAAKCRCteU9X9uLnUzW3AJ9T
 0Hzs6ZZq3HAYuSVkLReaZEhyGQCfb7goCt5RLbxx+3AMyyX5uh1boQmIRgQTEQIA
 BgUCPZGlrAAKCRD5Ay7lt7i0eYdWAKDEeKMbkRTSZKsKelQwiD+T3me3tQCfVMLi
 9mkjolOAXpAOVX3Igy5QHUS0I01hcnRpbiBIZWluZW4gPG1oZWluZW5AZnJlZWJz
 ZC5vcmc+iFwEExECABwFAj/Q6/UCGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJEOWm
 r/IRbFyFjSMAniK+uu6ts+tLchT7+npgPJ0wmyCXAKCmCmXrSUTnPG5DwiVD66h6
 aL2GHbkBDQQ9DY20EAQAh4G77oKy6pQB1+dhbbLsfb3UeRWv7i/w21Y1tSriZ5gm
 HhofJRuczvrhI9V23wRVOKs417TGJzytDIfp/huycYMigAQXikmFBJSqIC2ktJEi
 0DGhhne4XBdJENiHV8rb3/mk+Ffes/88DmoU45fpAwY1YN1jH8WO5mEq2aKCjHcA
 AwUD/jBsaAoUeNO00hwuZuWYNM4nvX57nptObVzP54/TfKs4GmdWzcfI2JB+5eFp
 rjtNCK+tosTQd73VzMWKk0fwiIew+GsB+g/ibK/WJW0lS6fktW2nPG2mGRblLtf4
 8W4ZmtZUqFTBSbmZOcsxQ/LahRosX82NbQyFPwuFMEBqYho5iEYEGBECAAYFAj0N
 jbQACgkQ5aav8hFsXIU0ogCeLnzxBftyPv5iS52Ear+q/mPZL7oAniB0B6mFArQV
 gtLJNL6KejWqSh3V
 =Z84i
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.116. Niels Heinen <niels@FreeBSD.org>

 pub  1024D/5FE39B80 2004-12-06 Niels Heinen <niels.heinen@ubizen.com>
      Key fingerprint = 75D8 4100 CF5B 3280 543F  930C 613E 71AA 5FE3 9B80
 uid                            Niels Heinen <niels@defaced.be>
 uid                            Niels Heinen <niels@heinen.ws>
 uid                            Niels Heinen <niels@FreeBSD.org>
 sub  2048g/057F4DA7 2004-12-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 9RkYrA9581ilMd2RCkU=
 =x4MH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.117. Jaakko Heinonen <jh@FreeBSD.org>

 pub   1024D/53CCB781 2009-10-01 [expires: 2014-09-30]
       Key fingerprint = 3AED A2B6 B63D D771 1AFD  25FA DFDF 5B89 53CC B781
 uid                  Jaakko Heinonen (FreeBSD) <jh@FreeBSD.org>
 sub   4096g/BB97397E 2009-10-01 [expires: 2014-09-30]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 T5KpyVoV09QzVQ==
 =YKVk
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.118. Jason Helfman <jgh@FreeBSD.org>

 pub   2048R/4150D3DC 2011-12-18 [expires: 2021-12-15]
       Key fingerprint = 8E0D C457 9A0F C91C 23F3  0454 2059 9A63 4150 D3DC
 uid                  Jason Helfman <jgh@FreeBSD.org>
 sub   2048R/695B1B92 2011-12-18 [expires: 2021-12-15]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE7uUe0BCAC2rJ274YwwpqkG1SvbLlcdJPQqctt3ELAv/3Jhw7LJ1RjMbZs2
 3QNs4oz/Qb0Ge2kj6/NhJ/VpBqDcv0av9mwbZvN4NR+eA78Nj8tKgRYB67Daf8EA
 NtmJJ1sfzMhEceRWjiDK71XBSGSzaUqGG3x2oJBpoWuaRAUEDl7TvjZAOUTw1/1v
 dXZvO5+cFIlBAhbsuiKSQ5IiWzlv9toqO6biicQak8e27pM8XCfj5Vx/xs3OtSbf
 lX6QZCIVW5lBgRihDjfR695w1fBe5nM+9GwifIhIBXA2sjAvsb1j+4te9PIpNo5q
 u/vn/y5Bh0S201zg8gbdAic/XJ+OpN5CptJdABEBAAG0H0phc29uIEhlbGZtYW4g
 PGpnaEBGcmVlQlNELm9yZz6JAT4EEwECACgFAk7uUe0CGwMFCRLMAwAGCwkIBwMC
 BhUIAgkKCwQWAgMBAh4BAheAAAoJECBZmmNBUNPcKtEIALSkfF5Sem7A9X6f2jN3
 u0/sshrmMzM2irUiFvgbXp4F5vbZk58Nb3O35ds3rSZ9AZ1kbrAWvXnbaMH1pyzo
 bnx7HNkibErZ4UmIG8i8b9Vrtllho2iIVaHJlBEAaq3OlCXzkvKeQbR1n83V4jB1
 d+zeMRTzO1ItnxlqZajxDpiHAgopP7covZU456YvnrmI6Xf3ZP0t7gJCotOdYcTO
 EY97pEJQKT8CuA/j/rkSDW8GfUBb+T65L/h2zysQn8pMQfrLO2+wUwYUc0QyGZSs
 9mdnmZs4XQmmQQUIwyzftzEMjM9KJKmJ6qhZ+Apm8UZ8snKy9jH8AWS2O+SaGrgP
 Ryq5AQ0ETu5R7QEIAKpA5Or5loBPXoTa2UWpSI22MHqHlKz8wHDjyWe2yyK13hjs
 VSi31Dx0KZ0K0PMD19OUXzsAb54UQSZZtbKjXdJeiJpzyzh9eVEBy11tl6AC0H4o
 2qWLZFUOMbxaGDvfKWf6xkzIdjiPk+mBUx6AEsDUHX0alACmBgiulMzof9btGgQc
 oYcR63kscoNz2tx7M1pJ6Za50Eaal6DZCYkmp4yHv2xCkZ1cnTH94mN5YwmlWotS
 ysMUy+05qTrL5ZXn+Az1Bewo62n1pkOHWIgiogcTUpibAflZsgI9iFEQbJns3U+C
 kyQh9xiXs6I2CHTFTngG6S2a1NcFGplSxEBVuG8AEQEAAYkBJQQYAQIADwUCTu5R
 7QIbDAUJEswDAAAKCRAgWZpjQVDT3POnB/0XZUzuA8ytqhnzkxY25Kr/Oc8wczM3
 XYs4DpL1TnghePjkjdEKhbC+1qDyg1kSQmf7L/uGV7n1pLFLBLwv72lYnaAMmbOk
 Xidc1LhB4YMrxc6tyFfER+ypw26FqfuvNk3QAGdqWvFQqq8dSyvA8KKDaP3ehKha
 /pmEJOC80jqIp5Ofa7J2QMPJ/kfegsjAMbQEqgcBmt8Rb7xM7NrFkPDcWRoB75Ca
 xoRV2eiDxMmNoTPDnjGyycndaaOgoAhXwpoAnmxIVVHs26qOxOyoq9ZYhVgx9o/S
 dAHXDxMry5RLmXQj4uDPTrUvGpxcEbOzVPBWrmoqDJe5Ll0rwaQ/DXZG
 =hr4n
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.119. Guy Helmer <ghelmer@FreeBSD.org>

 pub  1024R/35F4ED2D 1997-01-26 Guy G. Helmer <ghelmer@freebsd.org>
      Key fingerprint = A2 59 4B 92 02 5B 9E B1  B9 4E 2E 03 29 D5 DC 3A
 uid                            Guy G. Helmer <ghelmer@cs.iastate.edu>
 uid                            Guy G. Helmer <ghelmer@palisadesys.com>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzLrzf0AAAEEALuGJUgTVleE9HeqPAi+AqBDMMfa76kC63xx98Hqv1N9TlT3
 jlWVShX7Da/9h9WgK98wkb7613Ur7dPl2qVcSns5w7MCustbtt4YEaQwXZ2jOEZf
 snKt82+DYxZRyfUlY4h/8WA79R8BwTGd/l6g3kDoQuD/446BT8c0Yd819O0tAAUR
 tCZHdXkgRy4gSGVsbWVyIDxnaGVsbWVyQGNzLmlhc3RhdGUuZWR1PokAlQMFEDLr
 znbHNGHfNfTtLQEBxIUD/2Lk7Ds8Rt5ZPVNB2Xv2kzEByndv+r1FUDSDcWUn7MaG
 HdgIqfkNespNzv8K7ORW+qrgIAtCRGXhc0Z1q1/Mb3kzC0g4UW5BuleZEur8Ys7t
 lc13ZV94Wb/rVEnY5wh2s3mCmMeXVA9CAiNBzzI9O1RKVZrLLYJk62ysSoq1os+A
 tCdHdXkgRy4gSGVsbWVyIDxnaGVsbWVyQHBhbGlzYWRlc3lzLmNvbT6JAJUDBRA7
 8tH9xzRh3zX07S0BAdUDA/4poipXJFYG6r7+Hk32P5unYZt6dJZ4qSwsnc4+DVuk
 krv5L1jC8Wg/Ojerk2hYTyArM7xQkw0tELOADL2KBUlHp+Ipz7UuO55n/9aOHnWr
 YJLjT3+9eliYkPqJ4t7sHqlCeuyKc7HkoaaN1ErJTmLLy/Jfcx8BsyVsgihI9V1s
 VLQjR3V5IEcuIEhlbG1lciA8Z2hlbG1lckBmcmVlYnNkLm9yZz6JAJUDBRA78tIj
 xzRh3zX07S0BAXQ6A/4zKB/ROfSAUmVQGm0tH1IC4lZX1qV/PZ4z2KUWQPmXP3jr
 jzYFdlAPaUNIwVqW8Mwj+p9njnL/Ltd3NzAjTP2I7bSzBtg4NcEBRNclOOnbCamX
 B4mSGt07WgfT1QGCY8HyKXNhUBbqvPShfeH1OM7iyooLWU79V/1v8utB/mHxYw==
 =nrvZ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.120. Maxime Henrion <mux@FreeBSD.org>

 pub  1024D/881D4806 2003-01-09 Maxime Henrion <mux@FreeBSD.org>
      Key fingerprint = 81F1 BE2D 12F1 184A 77E4  ACD0 5563 7614 881D 4806
 sub  2048g/D0B510C0 2003-01-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.1 (FreeBSD)

 mQGiBD4dlrYRBADhXves+DDbhv8dD1LyC7e+RIASp8rEN0mJDVarhEy45KxRZcD2
 hE9dLXZU/5hcdK7yfatneg5xGFiedFJ+u/HcsMkxeb60+RUcF6Ec5L8PJmCwIQl3
 3xP7UmC203YufvyidQSayOk4LDyg5WVGEXiN5KuShJC+feAwvtAao5eHnwCg5CmE
 y6rO8Bh/K2MQxP8CXCoLG80EAINd8twMsRIIqAxtVWeG0yudtgYdvhpbGrNKoq2b
 cxmfunLAQmHim1jL5run1St3ZACyuP4brckPiBAOxVoRcIMOGPk04Lw3blKQ7u02
 6aOKKlGvW2pF5/Wh6v/q7gzAucn1HJYcGK7Xc8IvfdIZJl/tTeCo0/smxND4EWhU
 C94zA/0bvNhgntEwLF8x6UJnZXfQ8/LGl/NkSTyTMA1QqRrrik1oN4mYOAHE05Y4
 Oija6MSgD8YDRcrxxr8Dwh4pqS/+FlEsV5y4A4OoYbPW5L6FAbEpKO86jbE3FK20
 lX9Li5+woBWaTuLRcU2Tk69WLeOTdOrs+f50S1xWB4DJKBjmu7QgTWF4aW1lIEhl
 bnJpb24gPG11eEBGcmVlQlNELm9yZz6IWQQTEQIAGQUCPh2WtgQLBwMCAxUCAwMW
 AgECHgECF4AACgkQVWN2FIgdSAaZtQCcDxSj1KNFQXWXPl+U27Sl2/IbKEgAoNDq
 Yn86zUh4NPJZJb3P174CFRK0uQINBD4dlxYQCADaMWMhYNWemjrdioJoZU3vYkup
 IcQg422OZoxWYcUz6zKVHZuPdXSAFO+Edrt8QwvYrjhSiOSF9NNnFgNGMBGmqOg9
 Kfk5rIKnENNQP8H8CZtzlDjJXVoMAeTfaeV9+ztHwWKk6XagjLApl9Fx42Quu4Po
 JdvJNHhq5Bf299jecRsWmSo7DtpNnzGC2HFWRkGdkkNmpK7hFe9m3YsFuP3nCFps
 RXCFMx9t2Bneh1eM+NqogjON+vyZzOUB32WY+x9Kz6Xf29auU1PSNYz+1LC7JAYk
 f4CrFA6wexQHKe/nXwlik3/JeFSPAsp/VsmvaHOenZTOfmtBT4ruOwqn8DGzAAMF
 B/4tHAo7/sAMgvkz0qHAxV1DjOjB5AQSs4phksYWYN1uaJq2//oD/jjifmmkhAq0
 JLEeKDquvuNot9dtJ/75DF/XNa0Upt4Hq509Wm4o5NBN/CxRzMn6oU+K86S6RF1x
 JidNNI+CsTfdkNnCn0x6OjRsG0j+CUbwRrs4CJ/7ZWkuMCclLBKoI+rAwd5YM4eI
 noSrSZ4/2Uct7CyVm2aGIh5ofR75L7k92qZ/D5hN0wwKrL42bO8gJqPGPgsCtr9m
 OcT2DtOxkS9ir2QRyD7SelKM4pmSbxvk8S/IzrNS7dvKiO0xQXsvf+sG9rZOJ2vF
 i3in0uB9SeXAzsqNCqtEkSbeiEYEGBECAAYFAj4dlxYACgkQVWN2FIgdSAadQACg
 z3dGbsy32PBhRn/t1lXp1120VrAAn04hxsFX0HEKt6sqAcpIuzdTVrEM
 =8gWX
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.121. Dennis Herrmann <dhn@FreeBSD.org>

 pub   1024D/65181EA0 2008-09-07 [expires: 2009-03-06]
       Key fingerprint = D4DB A438 EB5E 1B26 C782  F969 820B 66B3 6518 1EA0
 uid                  Dennis Herrmann (Vi veri universum vivus vici) <adox@mcx2.org>
 sub   4096g/C003C5DD 2008-09-07 [expires: 2009-03-06]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =b9AS
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.122. Justin Hibbits <jhibbits@FreeBSD.org>

 pub   2048R/37BE2DB9 2011-12-01
       Key fingerprint = 8A12 7064 4F3D 339A 191D  AD52 30C7 858E 37BE 2DB9
 uid                  Justin Hibbits <chmeeedalf@gmail.com>
 uid                  Justin Hibbits <jhibbits@freebsd.org>
 uid                  Justin Hibbits <jrh29@alumni.cwru.edu>
 sub   2048R/A8DA156F 2011-12-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 XLo7QbjbR21i/BQSm+3OeFiS0o/BNee3bw==
 =bC0X
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.123. Peter Holm <pho@FreeBSD.org>

 pub   1024D/CF244E81 2008-11-17
       Key fingerprint = BE9B 32D8 89F1 F285 00E4  E4C5 EF3F B4B5 CF24 4E81
 uid                  Peter Holm <pho@FreeBSD.org>
 sub   2048g/E20A409F 2008-11-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEkh8ugRBAC6djNybj/k+sW8z4TZeC9M1PuSSuJlmCxF/h35rN1bJMHiaVaz
 umG5AjNwYtKilXO+bpj3OUQDz86j/vMpETy44lOaxr5f65lkP/tXATjVpSkxuimp
 vUHi6wRaCHLbyMGHRfuOX1E1yrYm6E3UvjrNnl8bhOJ9paUkk3El+gKm/wCgtIS4
 07Fb+Mft+7a9Ti8cUKP4rSEEALh/nGAsKInUmw3ybZ4c68yVjOUOhbDgAjU8zwb7
 vVzVpCythAEailx0l5UDzVSD8oszLiSDFLf93rfS7AyWx2/C/6kayLH7nYnmHmI6
 Evv/uZ/o4Tw8l2BmqEMwMIBRi37et9tTJNEKMAAUaah81KRcE9CPp91f3oKutOAq
 BkG6A/9e2II1FvJRLzeGRB4FuNm4yqnRvA+LCPE24qEWGoVu55KvSsrb/kQEUxHh
 46K6d1UCWYIlAPhV/CGstv2CfW4zDXOBlDg8kdQz9VFlzyz8sSs6ZP6b7kUzrSRp
 tq6mgiLKaTFYtm/BaUgYXpSI2uTlgujhC2v40pzeKN65Ph2H8bQcUGV0ZXIgSG9s
 bSA8cGhvQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJJIfLoAhsDBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AACgkQ7z+0tc8kToFTVgCfU8q5hy5tJ9ZEs9ScXPuIZ/vA4XkA
 njuLqq+giT5SvrrckuA8I1iFgsezuQINBEkh8ugQCADzK4XaJN07zeKtivb4sass
 fejhXyMJ5kwNqK+DRqMcHkbh6PCKpoOo7xjnk7e1MdTp2UeGifzTUEXz9iPdLFoW
 0O2iCppIgUEVfeShzOqEtiP0qpdDmc9RHbA17R8V8jaNWxmJtbI3Oid/7ubVPBfv
 KkPlsyut4A0yXBSxhqpLnaDpDVfMuUFbdMK+aYLABZMQaj6SJOf8bsHrBL6/j05T
 A0ZJkwPrV+ATbCXLUCAQ8q9rza292OFdLq5/iOQQa8mXhR+egd+NP1GLDEze/kx7
 5gNQJLnfS5GUBJMSIzLIC5Nn+WPzdmK5tMT/NLhzRbtqmWoAfQcW/kcEAUlNbGJP
 AAMFCADe1t3CP+Utgy0QAmqkipgKwvs32CsRgye2ocxtrN8GRaunFSutyESBNCHP
 VH/jh2rTZ6KjVvgBcruaT8B83YtYgOnFpe+4FZr7iwlSVL1CcEwWRDD+oujebAUL
 MaLTcToWbggvbUbOtu+VNKooDYFbFoZvUs9I/49RRdcLfC7dxOfl0+51WTUTB4g+
 d/rxtExYkvh19QEWsj6lyR6icwRhtrn2S+0oZ0JQ/mjCoqdrGNiiGPXzKrUnpSK1
 b1hrtZ3E5BoWJuXu4Y4hHHzoxGW3ggVeTp/+X2K0DfKu0itGJML98oe1hXbbDaht
 O+s3+Nrro2j0Hx3JiQB1wB9merWsiEkEGBECAAkFAkkh8ugCGwwACgkQ7z+0tc8k
 ToElPACgjLamE6WKd9zLyyoyZcV2H55qlZAAnitC7OHmghbHiw+LuQZ5Je7M6sik
 =KODn
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.124. Michael L. Hostbaek <mich@FreeBSD.org>

 pub  1024D/0F55F6BE 2001-08-07 Michael L. Hostbaek <mich@freebsdcluster.org>
      Key fingerprint = 4D62 9396 B19F 38D3 5C99  1663 7B0A 5212 0F55 F6BE
 uid                            Michael L. Hostbaek <mich@freebsdcluster.dk>
 uid                            Michael L. Hostbaek <mich@icommerce-france.com>
 uid                            Micahel L. Hostbaek <mich@freebsd.dk>
 uid                            Michael L. Hostbaek <mich@the-lab.org>
 uid                            Michael L. Hostbaek <mich@freebsd.org>
 sub  1024g/8BE4E30F 2001-08-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 nQO5zgCfXsb8wtA8I0ngWwOQxrnRRE7+Smw=
 =j3Mm
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.125. Po-Chuan Hsieh <sunpoet@FreeBSD.org>

 pub   4096R/CC57E36B 2010-09-21
       Key fingerprint = 8AD8 68F2 7D2B 0A10 7E9B  8CC0 DC44 247E CC57 E36B
 uid                  Po-Chuan Hsieh (FreeBSD) <sunpoet@FreeBSD.org>
 uid                  Po-Chuan Hsieh (sunpoet) <sunpoet@sunpoet.net>
 sub   4096R/ADE9E203 2010-09-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 KQ==
 =zTaI
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.126. Li-Wen Hsu <lwhsu@FreeBSD.org>

 pub   1024D/2897B228 2005-01-16
       Key fingerprint = B6F7 170A 6DC6 5D1A BD4B  D86A 416B 0E39 2897 B228
 uid                  Li-wen Hsu <lwhsu@lwhsu.org>
 uid                  Li-wen Hsu <lwhsu@lwhsu.ckefgisc.org>
 uid                  Li-wen Hsu <lwhsu@lwhsu.csie.net>
 uid                  Li-wen Hsu <lwhsu@ckefgisc.org>
 uid                  Li-wen Hsu <lwhsu@csie.nctu.edu.tw>
 uid                  Li-wen Hsu <lwhsu@ccca.nctu.edu.tw>
 uid                  Li-wen Hsu <lwhsu@iis.sinica.edu.tw>
 uid                  Li-wen Hsu <lwhsu@cs.nctu.edu.tw>
 uid                  Li-Wen Hsu <lwhsu@FreeBSD.org>
 sub   2048g/16F82238 2005-01-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 MTZHdxZQQYQ=
 =uV7d
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.127. Howard F. Hu <foxfair@FreeBSD.org>

 pub  1024D/4E9BCA59 2003-09-01 Foxfair Hu <foxfair@FreeBSD.org>
      Key fingerprint = 280C A846 CA1B CAC9 DDCF  F4CB D553 4BD5 4E9B CA59
 uid                            Foxfair Hu <foxfair@drago.fomokka.net>
 uid                            Howard Hu <howardhu@yahoo-inc.com>
 sub  1024g/3356D8C1 2003-09-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD9TDBwRBACs0PcLGuginQVidy1QScHuKS9G7gd8smYI2FcSsk/AkBhqIkWv
 hieu+iXlpxyZYCDDPKPhieDLkTHc9hYOGG7oTJhBMXUrUqBIk+sqeeUAl/eh0grX
 wUU2khj8EkYC1f6p9AKu25zoyXHxjnKulMhrZRIItg7jVJLaFQn2A9KCkwCgyVeF
 jCegTvZWikBuoXmDI/K3OuUD/19Za3DHV+H0dmfAG7JdVwTW7mJ3nCWJFvlpTSSU
 9Di4VCVj8kUGmo/kRgpZ6gwlCaPmwh/wWiT/vHVQqdd+EH/k/ITs+zWrPOnWCxLY
 zV0BEKtW4kdaP5H9ttNh3Wj1GRpyxh/FrMP7zJfdgze2WoRY57j+H9Kuw2s/42RU
 zYDAA/9wIriNXAj6pFB+J2sCqYXIMNDNDQh6lYFNFgTS/WPYJoA8PWY62oFc0V6n
 ES8GOXjyEya428vedVy/G9kj7cB/IiTTy8Hj7JjhUk/rSIPXMMtNyvM6vQ++f1IV
 1qSzR9sijpmpk/M2RusUQwBP131PnCzSCmAZB8gvcNSlbA9gnrQmRm94ZmFpciBI
 dSA8Zm94ZmFpckBkcmFnby5mb21va2thLm5ldD6IXgQTEQIAHgIbAwYLCQgHAwID
 FQIDAxYCAQIeAQIXgAUCQh1SIQAKCRDVU0vVTpvKWcmhAJ996hkp7RKzCsO1R4wh
 81QBqxZ87QCdH2JXwcclPFAF/XKpS5kbQbKdW8a0IEZveGZhaXIgSHUgPGZveGZh
 aXJARnJlZUJTRC5vcmc+iGEEExECACECGwMGCwkIBwMCAxUCAwMWAgECHgECF4AF
 AkIdUuwCGQEACgkQ1VNL1U6bylmL+gCgle9BEVLP/FKDTEsz6pYH/hdVMzgAn2kg
 KyplWAdJKjQ4AHlKOzi1DKj0tCJIb3dhcmQgSHUgPGhvd2FyZGh1QHlhaG9vLWlu
 Yy5jb20+iF4EExECAB4CGwMGCwkIBwMCAxUCAwMWAgECHgECF4AFAkIdUiUACgkQ
 1VNL1U6bylmacACglEvdvs5wMSB3EEP4qp46uKdXlt8Anivwqzf9dhjw07omH35k
 Ll7D5wGouQENBD9TDB8QBAD+sEewy1REDPQWycqdZVWzxmiS1X+TzSAgfcc7/QKv
 AZEsGADvhHcvaACTBuYRVr8DyzUxFUxeNByWSkLe7N5Hmaqauw681zsI+2osfXbW
 Jkp3JUybeFSIN5pacLNP5+DEAOzzphCF8ALv9H/MB8J9dRhZwDkY7SKt/cSNh4Cz
 xwADBQP/aD4exhzoF1iXR4879xEAAsRy3CCaoiPNeE4Aj9mWmjqEMzWYOjDeZ2zF
 W8Jrn2i+tOVGFpg2FKwtuqU8JRs/lqbedYUlM3UQl2pqGSV2tAziuLKKkzPnKWo6
 79hIhrjQCEPk1MqipoL6l8qZb8vbBpoCee5NF772jR85ai0ZdGmISQQYEQIACQIb
 DAUCP3rhagAKCRDVU0vVTpvKWU/OAKCE4tEk79yRFtmSNNa+ddafxcuyagCeI9MA
 byQOCAi708pPSIquH3oiM8o=
 =P50z
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.128. Chin-San Huang <chinsan@FreeBSD.org>

 pub   1024D/350EECFA 2006-10-04
       Key fingerprint = 1C4D 0C9E 0E68 DB74 0688  CE43 D2A5 3F82 350E ECFA
 uid                  Chin-San Huang (lab) <chinsan@chinsan2.twbbs.org>
 uid                  Chin-San Huang (FreeBSD committer) <chinsan@FreeBSD.org>
 uid                  Chin-San Huang (Gmail) <chinsan.tw@gmail.com>
 sub   2048g/35F75A30 2006-10-04

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEUjcNoRBACNcrOsDaRrFQMnMjnNViPfgBakMnwy28P/tfZvg+vx/5iRt73p
 5RrBE3dJZyAIOg+3st7sgtVuqeymh8JmoRlVFqLKEpCM1NNqq6TNHhlLBAuIYtTL
 hqN2knPM1m/IZp1Y4a5Z1OVnM6/fqItkxql4SX+GJ5815Lvh+1lokr8eMwCg9w2Q
 HgsgytJkYiFGJpkw1YOfwFUD/2oALyshDDCQIshX2xHPk+zLTMQva7uqDy8AUJLO
 o0DfaofDhkGjZnLpuFrc16eyfaYZw+mO149WTMpWrzCi+SmCXje6MSywINHneql+
 X6OzJCazYCGUfkSbwtAH89gIRKJiQKQfi4xhDrn8Iu+x3YtOKKxnrEVGX2S8fKka
 6YJ9A/99q0NX+543o6/kjfOz6Q44xzoyalBXT36THsFm239AaOejufu+HeyTZs02
 rvrF7IGgga1eUeQwx9gvRNFX65CkUc3AOTVfK2Tn36QJcGfm6r3ZYFWKjAMJ3haf
 aElE7Bs2zGergI0KNOid8rjC6osA3NVYSGI4mKIuQcBoxUNf6bQ4Q2hpbi1TYW4g
 SHVhbmcgKEZyZWVCU0QgY29tbWl0dGVyKSA8Y2hpbnNhbkBGcmVlQlNELm9yZz6I
 YAQTEQIAIAUCRSNw2gIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJENKlP4I1
 Duz6zsMAn1oP0sY1yRMo8jr7iCCdGtw2FuISAJ9crrnri2tcPS3281HX/4xk66dq
 c7QtQ2hpbi1TYW4gSHVhbmcgKEdtYWlsKSA8Y2hpbnNhbi50d0BnbWFpbC5jb20+
 iGAEExECACAFAkUjdFgCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDSpT+C
 NQ7s+pzxAJ98bMcpWM9Vd/YvB2tx2tK3zH89GQCgqOGeoJQvB+MWFM1oVbP5jmJS
 wDu0MUNoaW4tU2FuIEh1YW5nIChsYWIpIDxjaGluc2FuQGNoaW5zYW4yLnR3YmJz
 Lm9yZz6IYAQTEQIAIAUCRSN1FwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ
 ENKlP4I1Duz6QX0AnRiAfY8Ngh14cBzYH193/LSIuebEAJ9wY9Gz9WQbwb7QlJEX
 cOmrejGiTbkCDQRFI3FNEAgAsPAXITBR7gx+9AyYwzvtIUjzo+viSfVHusyZccu8
 82qzPKYF3J1QewFczrL6GbPCNqw2c/IZ0Sn8leGgVw5cwP+eUNtcbuQIa8Hpgl0Y
 Ns5WZlr94NXTdU8+mO8WXugzsumUnScnKFhrzEQQKYbbAIavBAzVAoj8Bu2UDaCB
 fCc4S6OwHgUTuLHDRA0b8YXe4Zc/VbblSIZFosga3vishPOCuj0YWjLjdkXHFZ+Y
 We4oDxnMT/yPBcp1/7wqEhTid1dgJvu9R2N9IFSxHTxoHiEsEFa9z619/imVPXGF
 rmcoJb5vG/NSH6cMHr5KP60H4ze0pwMKJ3had+YJSIJGBwADBQgAm9eGbCZ3RUin
 Kh/AJSsVfzW0snA4V1sv3ovSOekROs9YoUkalx8Ywt4fZkGHFWvYXLVb1KnmW3+O
 juhfrjsgmaizQhSMHT47C21XJSvAWuXXZrF6PaIiPAo6q56wjfSS62ycj7z1UlSS
 SDEusPgFG3LfYBuM2wjRYYXZ2plAcxhGt2oM5Mf4Tjom1Y1GHp4m9VOIa+0D0HZI
 +oNYlOteR6I2tWg90bXJcAd6VlSwYi25b/KRkzYyHlU84o11UJnBnG8HgaN6E92w
 QAQTtIUd6PxLWYBG0ni4vtD2ZwyGKAH26QJIUC4bLYdfoZ7V7/MbwI4JEliGjZCl
 INqt4mrYsohJBBgRAgAJBQJFI3FNAhsMAAoJENKlP4I1Duz6TJkAoNRkeWHFV+q1
 WHzk4XJLFtL8cNyBAJ4u3Mfd7xo3Bx8pAs1vSTWooWb7Pg==
 =IROz
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.129. Davide Italiano <davide@FreeBSD.org>

 pub   2048R/4CB47484 2012-01-17
       Key fingerprint = B5C9 77F5 1E67 D110 8D19  7587 EB95 EA82 4CB4 7484
 uid                  Davide Italiano <davide@FreeBSD.org>
 sub   2048R/91F7443D 2012-01-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE8WAbIBCADhylJPj/E3+cPj2CH/96OKzQ1sjdiyzgQVeLinmztCCk+McsEf
 qOwyc5iZfZC0MPJUr7y/3E71HKPC+rTMkOQBHsCL4UWcbJB+3AsA5Ii5WsZKFfQn
 85q8kT9m99MFn8oqZWuzMFkU8zAOEB56+em0xrAI67SyrCPHVS1oWd4Rj45YSUKr
 em7JmyrYEcTRg7rMkPYJyuiWkDR3nAaJw2lScobg+JaHN757QZTtspS6x277Nx8c
 CU7pYauCI/CNdEPUcLAMBH561396IajWvTKirtL7jYZWw0FYpamof2sBCq672Uzb
 XJXufe4Urg4vKoR9giG7Y1kI49XCLmplwnWVABEBAAG0JERhdmlkZSBJdGFsaWFu
 byA8ZGF2aWRlQEZyZWVCU0Qub3JnPokBOAQTAQIAIgUCTxYBsgIbAwYLCQgHAwIG
 FQgCCQoLBBYCAwECHgECF4AACgkQ65Xqgky0dITCvwf/feerE+d+AGvbecD7lQyk
 d/LJs2bshZz+CnsCsbF/mArpbPMJTlgYCMZmEKKSR//nEo0cFyi0B6RR5QzQsouL
 uadHPuwxpuw/7ECdS9QhqEU2O7uoWdgh6kJSR37cbRmmmu0zNp0pMYv2TKrHabQz
 432iuF8I8puOc9++sYLrlFBXfs80TTU7S2+qAfTRqgqAz5IdWZM7F4w+CbbJGfqj
 ePWoXCB7+6MhYby+5JXkpCEpdyGMRL8WZElpB2W91k3zBmkE5bZG2r3Z99hMc/dN
 +nJxI94zYN13HtD+Yoaej2/RJh9zmTWF/pUT58tb63EOLlrOfiiw6NJ6x8PVM9v7
 JrkBDQRPFgGyAQgAvKmBYKFSJur0CiXeY6m3CW0JTS8mK1FYjKp+QckbnRomG2Vf
 olXjcjlTLkLcq46vff2uI8MDNviE5rGYWSJxwYjAbY3QJR36pbdI+ulYEJqnFNii
 jFWv9wvbddNc/L34Pa9o5P/NUf733r+V4gvyqb/Rh5dWQGH8IJCgnZZZYK8YnRiq
 UFnisiZ6gsIXk9rbxd4JHOiOxUop8xSxdeRHEkxe2FQvN8S+HzxrH8lucoIvH1Fp
 red8KUSjOLD1O9LFFSabJ6lA8ytAJ01KP+4svBk/J6bEMwmNXITVtmW+dyTSmS7z
 ynOMre7AG6s8OpdWX2lAKyLL4yosGLiOFjDW9QARAQABiQEfBBgBAgAJBQJPFgGy
 AhsMAAoJEOuV6oJMtHSEJhQIAI6NAWdB4IRBoDfEuo3myxdTn+hKtUDk8jgsmfV9
 6yphv3BDwvQDIoAPjxMewp0UrIH0yEyIduPdZ6Gs9VcDfqWxyP1kGxt0GbKJmHzK
 glmLF5VZbuGKsZDhv0JtWbi17NOt7uiXY9sW9efqaDxgvNSXrXHtDPNzePuo2wLg
 LZcw5VlCg+JftFb7OA72Brcir1zj6EyMgtdo5P2Z2iW/MgWiaKb98hi8tnycIDiu
 tyawSXvl7k/AfQ5hHjwz4zKf+2bQ9cf8ou7wsJ6pOT35AKP9/CeIOslj6cqXE3dL
 MjKE+ZKsBG1d7NkQSQk9MEDk6PdAtigwAgwdYpPhX8Sl2es=
 =pP7Y
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.130. Jordan K. Hubbard <jkh@FreeBSD.org>

 pub  1024R/8E542D5D 1996-04-04 Jordan K. Hubbard <jkh@FreeBSD.org>
      Key fingerprint = 3C F2 27 7E 4A 6C 09 0A  4B C9 47 CD 4F 4D 0B 20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzFjX0IAAAEEAML+nm9/kDNPp43ZUZGjYkm2QLtoC1Wxr8JulZXqk7qmhYcQ
 jvX+fyoriJ6/7ZlnLe2oG5j9tZOnRLPvMaz0g9CpW6Dz3nkXrNPkmOFV9B8D94Mk
 tyFeRJFqnkCuqBj6D+H8FtBwEeeTecSh2tJ0bZZTXnAMhxeOdvUVW/uOVC1dAAUR
 tCNKb3JkYW4gSy4gSHViYmFyZCA8amtoQEZyZWVCU0Qub3JnPog/AwUQND7kZgis
 sbaj1yqUEQIhvACeJ58983s/0jjThuj6WeTP6hLZNHgAn0o2KINvhw+Oc8uQk5m2
 aTiVgVQxiQEVAwUQNcJNdAyPjrKngh89AQHA7wgAg3QnT0BcF/zp0VRMUZwAysRC
 o4Xkgv4oaisCPO5jERGEp8NlXuMD6wJCrGRZ9xVwTbSRXJVirNkiSKj1rnNc/pPA
 DbjsmQ+3nhLU+YwNgc2VEhiVpeU2iOL7ircc/YN8epdFPbzn2timb98b+/qlaSiz
 m+g8pxnY4USn1b4CnzyirD7mvHhV61k0mrUSmaKzgg2Ppeo2qPzn4w44hgT5/jjm
 iEMzoH8zFrN3pwcUYYhH5rNWNnqUIMwuPOEHn4Wp+sMti4yOqQxNHnP0Mv6mxS8+
 UKRhtDXU0Ra0SaIhaNRw0k0YLEbO/lteTRc+7cAPBs+QUTa6xbVxIzsBAWLC7IkA
 lQMFEDF8ldoff6kIA1j8vQEBDH4D/0Zm0oNlpXrAE1EOFrmp43HURHbij8n0Gra1
 w9sbfo4PV+/HU8ojTdWLy6r0+prH7NODCkgtIQNpqLuqM8PF2pPtUJj9HwTmSqfa
 T/LMztfPA6PQcsyT7xxdXl0+4xTDl1avGSJfYsI8XCAy85cTs+PQwuyzugE/iykJ
 O1Bnj/paiD8DBRA0FhC0XatM0mFMec0RAgaSAJ4kHkYXQO/74W5m/7ZvQa3CPR8E
 /QCgpHafK/S6PWQsSOChmVjwrZDVP8qJAJUDBRAxe+Q9a1pnjYGyp3kBAV7XA/oC
 SL/Cc2USpQ2ckwkGpyvIkYBPszIcabSNJAzm2hsU9Qa6WOPxD8olDddBuJNiW/gz
 nPC4NsQ0N8Zr4IqRX/TTDVf04WhLmd8AN9SOrVv2q0BKgU6fLuk979tJutrewH6P
 R2qBOjAaR0FJNk4pcYAHeT+e7KaKy96YFvWKIyDvc4hGBBARAgAGBQI1f/BdAAoJ
 ELwCvAMsr1lwqUEAnjOz1VWwJeI2QZMNEHO8RLURWHSYAKDqG+S3NzCeiKM3RRzc
 FubwdsfYLIhGBBARAgAGBQI5ZAxAAAoJEMN1Z4b84RmYUt4AoOtidEj2yIZubvvT
 kB+moQ1+ZscyAJ9dhz4GLNev7zNNfdAKi8JqoqfMlokAlQMFEDF75Qb1FVv7jlQt
 XQEBdn0D/0X2Auka6RU2R46NqrFB0kZNL5rGH8BuTRz+cqEATLGkCXknJDeJ9iTo
 EeE++VOL0utmhcYDyyT95Th5FNlXO8YQLgb7Gxq+UT/HOS7zznlBMs+mQK6dSlB6
 7XDNoitRQTpmOHTmKYVsljJA4GBMWm6pawKuxSmX7aavwgYjEbmsiEYEEBECAAYF
 AjmtSQAACgkQLKRaTx+AVKjiTQCg9FfHlNeMts2GcXWplPQya7GEQtMAn0nrzupn
 fRNx6+Gi0Km+WSlUQkMF
 =ZyVN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.131. Konrad Jankowski <versus@FreeBSD.org>

 pub   1024D/A01C218A 2008-10-28
       Key fingerprint = A805 21DC 859F E941 D2EA  9986 2264 8E5D A01C 218A
 uid                  Konrad Jankowski <versus@freebsd.org>
 sub   2048g/56AE1959 2008-10-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEkHYgARBACdbmFESh/3csPP37dJBDTkAfWcUck6myVTVYu3dFgwDPA0iCs9
 HolmEV9qZA6m/ljZYG6b9ycHe2M7Xq3Mopdvw7Sa3ab7b2PRLu1WbKUIS/HlOXNH
 p3Dg3/Zhf1raBKMg4F0x0pbQm9+friN44SlnLlQK5M2224X786/VTlVv/wCg3YFE
 CufrZUsIPZndUVGh+/seBbMD/2fhNQhreWxF9QFCMohC/pGSfg1sddpWMqh6R0bF
 aSXfJwYivDLcTp4JYPpZilScBFgSxsfLKboRBElj+k7cj2e8nK4xzfoX+xsGrRDm
 t8uPqISnw8bvRGS3bZNuTt3NqHpXeiL1aEEEEMk7tKuGwlwf/KmA4BYq+eWDM7Hz
 EWPLA/kBJn5jAO99l/h1yGzYiWwy4a5iQd2sZg+M60bC3s9xP8ZvCPhm4qGuis9/
 dxzKxz7hPQ2CamU9DlpnoCeZQ8mttyqnipsnMVniI3A79xSjCP2dNkVWvimc5uWw
 e9ME6DAa2ldmN7fkj/b6ahvCiBZLVc2jv/fcmHcP8IzvhHLhT7QlS29ucmFkIEph
 bmtvd3NraSA8dmVyc3VzQGZyZWVic2Qub3JnPohgBBMRAgAgBQJJB2IAAhsDBgsJ
 CAcDAgQVAggDBBYCAwECHgECF4AACgkQImSOXaAcIYr8cwCgzjJgksYSmXwES8lI
 vri3HicZZUIAoKfdyp1VxyUvbm39iwIMsUBpMCTduQINBEkHYgAQCACT3lbgvRwF
 lzEkL7JnyMaHkw5Lh77Sl2cRu1+fouQeGxRw5CZFwcIUkZWJDgBLxFHJiAtjw5xz
 UnVDm1RWBLXdNn4/KvWOUx2ElPweL58q+j/45qfwISg7JyJckRAvACQ2bLT+2jlc
 iDInZiV9OAnwT3OhBb0a6dvMsbDcIk25QlcS/axVdCYp/ELN4jlgL3Vk0NoQfalo
 rtj/vALu5soRJgq5keyroDlCc2fDp3iISCBngx1xoFBaYaJHo7XSbXnCes3NhAEd
 DkY0QCBWQGyqW/ULGrIdgyGtszpxSlecPmaRlxpmTjAQT0mX+rGE8vBkgH/pDgqt
 icql1p3f9ofnAAMFB/9NCp6oARpDfPTG6upM+oUPwginu23w2ux7uecZuouL640w
 Yj4vssTGDhuP3QRQsDrlhXdHdkUvSuguXpG8EGf4GjflV/AvvXJDmOO3LB4TCQmw
 I+Umsc/4BCP6r/YowSyYmQENJ8VIf+Ps+WfoeGS6UzbEpZbAFfBMpNSQbzwDSa+6
 kh+eAHOZiPUjtoao+eyrvqEK+rpydN3G2D3UOJVsbYbG/3R0zD1sBnNBaqAub4zr
 vMBB0Fuml/pBzhFl+2VrS420Bfy6d83uPriNmlXlTyrX/kSxYVMkVm+lfqrjhSO9
 dj2t5lqpUSCRLO3Wbs/97zIi6Vn2fphH5iA1qI/fiEkEGBECAAkFAkkHYgACGwwA
 CgkQImSOXaAcIYoobwCeK8Jy/4hOkaFBHbi/WJ/SHaJGyNkAn35fpqrdHuOO2L6C
 Tuizqar0AwZZ
 =xCbj
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.132. Weongyo Jeong <weongyo@FreeBSD.org>

 pub   1024D/22354D7A 2007-12-28
       Key fingerprint = 138E 7115 A86F AA40 B509  5883 B387 DCE9 2235 4D7A
 uid                  Weongyo Jeong <weongyo.jeong@gmail.com>
 uid                  Weongyo Jeong <weongyo@freebsd.org>
 sub   2048g/9AE6DAEE 2007-12-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEd0e+0RBACwYdXNeIplh+WEQ9ywP1wJyTpGe2rVvkOLlJNpTJpVX7JT508G
 KuYI2B+Rn/V+1+AicL9tsUAnWX/tDma3bYw0Ls68LvD/571k2GYG3CMTy5FSrrtp
 3v3N75jHDsfulUzHL3LHsa/CA5qzuL819KIaUfTKY0A107vcI3m0v4emEwCg2BaW
 OyiO9pic/WnPi4tuFjLpeEcEAIzLSKzAiZZ7U8ESKAtonwYqdu0BIRFpp0kedXqD
 M9cTts8VjqjdMOm55xvI7h9EGjH+crFZBlZD0NWXD00NrrQdHifulSrv5l3Wtgn8
 xilqUhiYUcPQu2DHSuVlShvNZO6/rYA8R45axAfQv8rFo8NV0oElH+bvGq1mwRKY
 ciJ0A/9lN68t6G3LKmaSfWz13IUJT0E2qy27NnSb4RuKE2TuqyIMFzXh5+jjnp3U
 zRDX6KrYLju5Ire9GGJEMsGs28B5r3HXUPADqVIS8i6dW/npZlyizU7MfoRDFiRe
 btMpnYx7d4qnpKMpEm1J15JF84YrNGvkE55z7+g5zG0ua9KZgLQjV2Vvbmd5byBK
 ZW9uZyA8d2Vvbmd5b0BmcmVlYnNkLm9yZz6IYAQTEQIAIAUCR3R77QIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJELOH3OkiNU16VAEAoKnaR60kp0PF+O70GH7y
 v4k26FJqAKCycX2eM5PzjVzbAKHq0yMRj7tkbbQnV2Vvbmd5byBKZW9uZyA8d2Vv
 bmd5by5qZW9uZ0BnbWFpbC5jb20+iGAEExECACAFAkd0fKQCGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRCzh9zpIjVNenkDAKCGZSCJTG2dSCbEH3kLTpYdAnfM
 gwCfay7fmNNMrN31IhC2jddWylvSDlW5Ag0ER3R8ARAIALZoci+sXDkhF0ahtePy
 ZszOeKUg8MHIac5RID5CfjGsTsbfAv7eM7TBocAJOKBxhD/suqsdomMBMwoMKYdv
 R4tKCosDopYGwNFNtryXrOQctNKxIf31kc8UnqGfgRAwjABorBRJCQdBZEBm+93k
 lDl0azEWPFuwzZ+dA12dw0jF1/n7TAIkvaA7joFfNvZ8a2WAfJvoal0/nUqmJCmB
 ntaWEdZP5rOEUvVBn117W8D5B8YHp//TM7T3eT4M4Lp7wUQIiwT7fGgRWCIfIrGd
 GZSEykjB/keyIip2Hh//0Ft0Ot8D+4wYz9YhH/RRmfBDMBhW898B1rEewhc0wmjH
 txMAAwUH/iB1/HLYV9ckHT6i/UDl8lEsw5CMxftnEI6wY2i9MWqTSTiuoNE+PQAA
 kicGwxrxxtvLccdFE4WOOQsh9oyzbOeWWBrtxzloRBzaxC9dx+tQaOzzJAUjaEaV
 wneSg2x62naLiztaQ9U66g81BwSyT8NF7uYjsCyvPsrHwDELNcPdDXQ2q0GKj0I5
 tSgqMOPwohYRRS3hYfoPnYZOshdwYErtMCola0hZn7LXJopRByQyT/x2N6WW0zGY
 YxJemF80JqLrf9RtZVSsTeqT7Sd0+kcgPq3wcoqDXKTEQ+K4yjcE7c3hqhowQU72
 2S6S4JjYQhKvdJykZRuvynQGeuT8H8KISQQYEQIACQUCR3R8AQIbDAAKCRCzh9zp
 IjVNepJjAKCIgdGxVdwuToMZ7z1n2mJEulHr8wCfdimx3iKjNLlAE154wBx3v9Rr
 trI=
 =5yOU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.133. Tatuya JINMEI <jinmei@FreeBSD.org>

 pub   1024D/ABA82228 2002-08-15
       Key fingerprint = BB70 3050 EE39 BE00 48BB  A5F3 5892 F203 ABA8 2228
 uid                  JINMEI Tatuya <jinmei@FreeBSD.org>
 uid                  JINMEI Tatuya <jinmei@jinmei.org>
 uid                  JINMEI Tatuya (the KAME project) <jinmei@isl.rdc.toshiba.co.jp>
 sub   1024g/8B43CF66 2002-08-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD1b+Q4RBACetpZD+bWytVmQ3Itmu0ZBfSDF6FVyUQuKS3OZmvsZHxxqq1+u
 erHNhmyte/aCI/YrEUzHPT5LU+9LMpRQD0AwSs3Ot2vUzokSiTu8ZqhoWBcsosKK
 eKM73V7NiTgBGuJ3UxVmKNXzUZhRjGHuekB/ZCCv1pDg9B3HPL8ty+2M6wCgu02T
 +vMZW0VeByn79Lpmm2nu/F0D/3NN4e8ZtLTbUJxJb/hHhLzOr8XahZCqsNF2bj0C
 0u2SzkelDa5iVDWwiOkg7xI154REAALOG1FnLyO4bRPkcQ/EO5tbzXoVn0I6MPWA
 EiwBfVRXzP10MDHhqH0NvT8pyA4ex/BflaeFem9HItRjfojdqEUYVAACceAdLQLG
 MknWA/4hfAAp+dPcU8iHmd7AemuGoOhu5AAKbp2S4vwozJEFiv67wD/+WFXVggUx
 wbQ3X7oNiOLeg9OASDV5qtbGPATHikYagWVjndqmvxO1FiL6BnQBnzAVzOEN3L2K
 Ex566bUw/2R/dr/zhOc3BKxCV50T2Xe4u/cEiYkUbLj6+Y8V2bQhSklOTUVJIFRh
 dHV5YSA8amlubWVpQGppbm1laS5vcmc+iGAEExECACAFAkYDPqYCGyMGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgAAKCRBYkvIDq6giKEOZAJ0Z/iUCa6UrrsVmKiP4a9qB
 0jFUCgCgn/3mQxdtXTA6SOlFFsisaxsIXIW0P0pJTk1FSSBUYXR1eWEgKHRoZSBL
 QU1FIHByb2plY3QpIDxqaW5tZWlAaXNsLnJkYy50b3NoaWJhLmNvLmpwPohZBBMR
 AgAZBQI9W/kOBAsHAwIDFQIDAxYCAQIeAQIXgAAKCRBYkvIDq6giKBtcAJ9DRqXt
 h8WEpjgr+sD9OuaYqmV8nACfSdo2Ml+Qfz2Rad9OtZodmELCCi20IkpJTk1FSSBU
 YXR1eWEgPGppbm1laUBGcmVlQlNELm9yZz6IYAQTEQIAIAUCRhkdkgIbIwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJEFiS8gOrqCIo11cAoIJT7N2GMSNXAujnuIvc
 HnBtgk5zAJ4qDo/En3ic8E7h7zc4lT/WQQDhRrkBDQQ9W/kQEAQA1Q07/j0kScL1
 WF9EeXVEyLpTxHZ7owTI+KrRcQ6Vc6KABu1cwhE78ANVfn/CkWVXHyDEnWEIvaz2
 QYwz47sqOxdOg/AmHFVd8xouengw32KNjViVBMsW/l8VzyAVvvGGNuQ+f7zDZ/P9
 v9WwwRcrgL9g+uAnrJJo/wttIBqhSk8AAwUEAIqcIez2zlkwGayFeLqgwuw4PCbd
 kGtXs0l2mQljv8GWuTRJ5D8aD0nlM9MNaSLB7xq6igMriP/NyfIVv0aLJwRH8ilx
 RBYosGvm+nEmUtakhU/77uXcLtipoUGi+y1reFRVSoypJil6lqDTjKtWQlWA7xOG
 QzGMdgoBC1d55jXXiEYEGBECAAYFAj1b+RAACgkQWJLyA6uoIigNBwCgsUFgZMfR
 sEybYW4cWwBNhNTqE9wAnRf9BFkzpn3ZyD+NBkjx2INcitoD
 =ISn8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.134. Michael Johnson <ahze@FreeBSD.org>

 pub  1024D/3C046FD6 2004-10-29 Michael Johnson (FreeBSD key) <ahze@FreeBSD.org>
      Key fingerprint = 363C 6ABA ED24 C23B 5F0C  3AB4 9F8B AA7D 3C04 6FD6
 uid                            Michael Johnson (pgp key) <ahze@ahze.net>
 sub  2048g/FA334AE3 2004-10-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEGCy1ARBAD/K2SbL6XiTJ3Rn/weuN/L78ROUltIoRGOkZE4971fLcAbtIsf
 nANWDrpDqbhLgEbZLeCn/EIWOPqrYyKpCGu/IoZ6kx7UPtUH4eooJBarrrQPJVV1
 mfW5ktDry3AoiaUH+jL47AxFCb/bh7Rc11vrhLKdnc74wI+nu2cyk2llkwCgwX78
 nlN2qTrbXxOEAPpJjMontfsEAL+4sS9DOay7NkZq2B2p9AZnSsXQg6/r8Epqznqj
 yPQBm489UcIZy2FiBwaUR7w0fMh5xNX0FE3xFiTd4VUTgUJUSqpYtdfI7IHvJXml
 P/VK14CtgRY2B24wpDPMae32hGBFUwSE9Frb5NiKlxMC4+fR71wZS7MtxTnwJ1v/
 MoVaA/9FyoKCAw3Dqnf5W89dj5W5x35jLKSLobEhhUB2S2LPiwBa5A79euMvgtk0
 gKeh6IslXKOmCO148ws7HSaErBIBVBDpfOsqcQJTcd5lvEbslp+z2oCKeQK3pgQ5
 aEHp8IJ3YgQEHz+YityOF0jCMGNJTFAz18U4RzVxSe55iyT/17QpTWljaGFlbCBK
 b2huc29uIChwZ3Aga2V5KSA8YWh6ZUBhaHplLm5ldD6IWwQTEQIAGwUCQYLLUAYL
 CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCfi6p9PARv1oW2AKC0xjNgjhL1EHPtFOXH
 kGz24lF4QQCfQxkoJBq0CkLQrYvdA3MLP+IJ6ba0ME1pY2hhZWwgSm9obnNvbiAo
 RnJlZUJTRCBrZXkpIDxhaHplQEZyZWVCU0Qub3JnPoheBBMRAgAeBQJBgtexAhsD
 BgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEJ+Lqn08BG/W4JwAoJaU6MbisTlg4EMF
 jfE+wNptwO4kAJ46A0W6SiLWbK09gu7YlgfLgdYAmbkCDQRBgstcEAgAvD4PzCsh
 muLtNkPVKSlk2eZbqlIuyapbuIo6rHk8fo7fkfqVOOrnGOrAT5/sflmnG3H0BLvF
 4pkk7tyRtg3hz8qGACCA4SRf48TxRERpIUoW5R2cVBsMBTnpspRaFu8OdBL0dwXs
 LmH797gxDXCGXzSU5xKBSQN4LfoEuLr1qQmPbuPW+Rdi3hrdk1eGsJ03rU5RExzQ
 ck+J7a5VWsyghNCSj1Rzuw+0OVGBijJW51FD9QU+Eqb3seL7E19mWC3FMU34RFwn
 5lbxolY43iPV0jc0MFcV4POHUSZ8ot9xbQpcAClTyXZh21QEIFzYjJe9ZeVWKOqH
 UZS1naB4k98G6wADBggAnRlPolzcjJvqvv5Hfv7oDeDARNxqeKTj+fPXIHR0Gh34
 8HMfmxsFzS6nsrrVc43Q6Iaso5hbdP4UvE0/HzhPALzCTeZGpZF54pffg9Pqb84U
 p+D59I+b88RDBvvfwF0OBg6du08Rdkv9JfG3R+QZembK+IhUa5yxhtfbQmI6Y01r
 phtx4FAKZw4Xp2eb7IBoZWktfcOE99UJcl9hUmBHJXRznQoCHz5OwAKA6a/0b7j7
 B3bPxj+tLlQksdmRbEJKVBa3LQm09PkxfZj8iahvQbp23p5VSJDKzNDrgmsqaCpV
 CFNgMvYLvtxC2xA0uNtaRpdZRLS/11NUj3oJIULv8IhGBBgRAgAGBQJBgstcAAoJ
 EJ+Lqn08BG/WFK0AnjdWWBxG7slwI8u1W+7uRsuh6NXMAJ9r+6Br6mlEtsoWrMel
 IlhG1mVq6A==
 =I7wA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.135. Trevor Johnson <trevor@FreeBSD.org>

 pub  1024D/3A3EA137 2000-04-20 Trevor Johnson <trevor@jpj.net>
      Key fingerprint = 7ED1 5A92 76C1 FFCB E5E3  A998 F037 5A0B 3A3E A137
 sub  1024g/46C24F1E 2000-04-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDj+agARBAC1AfvgGQEVdLwS0dirwaN+pDDWWiaSWBNRNo4T4KKG2vyhhnUi
 f2PcjPx8rYLvbokJFltoTWos3lS8hD8PZGBDlImOPzffdm/GYEmr1mE8fQvzjdKD
 iOTqQi5IYYhLZIMmUpBTK7XN2zrM8VrkgCpb5TYtBrQUPheWs/SZ31EvLwCglUPA
 T54Joolfvk0Y8I6dSGYctpUD/3teZiYwem99CE3b1tsqavQ1MUfjwSPZQq8wjVe8
 GZUtwaeExugAxNjXIJeXiaCij7S6JSTS0ytyxZ5/O1QFmBhuD/7zjNFD8yB8nu8x
 slma7mVhMuhqkwU06hTkp6MNNJ7kRItoVETtLqR5mW+0UUSZyePQFIH9U7TKPG3W
 vYMIA/9btsMQD/7QA9p/m5OP4sfdVdNCZ32tJ534bMjDYyf/P8k7QzvDWU8f7lbk
 3vX5pSmHplws0PwSZITmRarMdEH9ucP+24m06MQ7YmDYyLlUCestT2gAxnB5/X1h
 fJnmdCLi/Vt19WrVM79ebddbCqCaoz0xv+1qOQmPue/vKXIH87QfVHJldm9yIEpv
 aG5zb24gPHRyZXZvckBqcGoubmV0PohWBBMRAgAWBQI4/moABAsKBAMDFQMCAxYC
 AQIXgAAKCRDwN1oLOj6hN4YuAJwOTOURcLpgAx4HT43jNxDYCsT7DACdFdGCwsi4
 w5ZiCeoizmoBMFvYTa65AQ0EOP5qIhAEAMAerdyvcs7DOxpsli24gkKJxCwHSq9U
 23k283XpZHOp/0eS6WEJMHMyQ7BRrx3X6mkSgBEnHdO6MetBQjOHdjSb8ycotrJa
 H9eMkZ/Iky6dbiWpPLI4ytS4Q8Z4oEGjUTm7pJiE/pgmaCX/kv0WMs/35En+42sY
 VoVU9bDI+X+3AAMFA/435RbM6ywO/kL8D3lhwINGEIqmxWpJDlXPPJf2pLiWZZVK
 MLGkHOTe2kUdd+E6WcoRZdGblOKxLACrlKpJa91aw1ftQT6rt0k8GDCGLT/33FWx
 2IRSf5sHmz8IOm6L8TcZU31hdWqpDLmiIj+IjUCx8+eAUjZcVRoj6BYnWc1Z64hG
 BBgRAgAGBQI4/moiAAoJEPA3Wgs6PqE3PKYAnikfYo//UA7/jrDuTXzqPmi/Un5f
 AKCFsfcXDbLGfWaAqe2YzeDR2Z55/A==
 =N4HT
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.136. Benjamin Kaduk <bjk@FreeBSD.org>

 pub   4096R/8302FE9F 2011-08-20 [expires: 2013-07-21]
       Key fingerprint = 9FD9 F966 D914 5101 BE59  FE13 2D29 EEED 8302 FE9F
 uid                  Benjamin Kaduk <bjk@FreeBSD.org>
 sub   4096R/28698ABE 2011-08-20 [expires: 2013-08-19]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQINBE5QM/IBEAD4VgPZlyj/d8iPgLAUdW/bOXUe6yY04TBmrf9V2q4U7bzpa1/a
 tuwfiachcg4xogW4jPDIBSfGyKRF/2EyKiQjIr9lT+oj05H4JeFNJe5zojIg3M2y
 iAfSkHcz1NhKQztSQe9jD6qx1samNugyD8CmNorUz43WS9ZCHI1lVFXTBzjAB7D3
 WNQvq0azhmph6EPNmFVjLuOeYpWNt+4ZfaSIbifSO+7fwfI/AN1+dTtiwBFaFvJI
 QR6P42bQY73fBL3I8nVEF2Yk1MT9pnm8s2gA/kDPNCM7qTnyDmF8R/7jsdqMXaHh
 ChDEdD8arAo01DHQdlMNBHUkMOLyw0h8WGhtBPoAr8VpvnEReNqP/utnk0slM4Kp
 uRIo0ktB1oldgYJgj/Bj7dal7wtMMA5uttYzNCvoAyiZmj4YxurfiiBd4+MM2hWG
 vP8FJj/GaAADICE0d6V0NUOkB4duzw6avCnoCXnUNYrTJrdqCisumOWydfGHGx+f
 8ktj0gajCKE1VUe6lw9oT26VR0j2M7Cn63hpmRY9j72zle7cFVBElEUu3nA/25H6
 XHoiDX4W3sU8CCiAydWnhVkK75RosD9CedmUMtMe+X/1IaCe+VI7QkxF1/Qk/VBM
 AVnMoxQbNSqHUMAPUQ+J+V66qgGPneF0x0P/xSrlGhrBUEmlqFXl7TMZ5wARAQAB
 tCBCZW5qYW1pbiBLYWR1ayA8YmprQEZyZWVCU0Qub3JnPokCQQQTAQIAKwIbAwUJ
 A5sm6wYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAk9ZaRsCGQEACgkQLSnu7YMC
 /p/GlhAAwOROwxkzieQG28HJ9hg0trVGM5z/MtBaUFLIihKjcPJhMIv41iatynj7
 1FOAfmWbnJuWCOUzHOEzUo6Slkowu9FP1rl/NMVFgohnrMkUsYnZHIGr7lCtNo9E
 kwGlp0sFAS2KlvsOZszqlWVYtlpVkkAaAPz+YoTFOAmNNUC3aKXbnRCOFVTDCn4p
 nMKmubAui0V9cr/1gG2lT2xs7+le5iriFj49TK/+JnVtY7sZ8iF+K8PFPO8H/1lc
 eQupOIqv3D0FbvnFVlc6bqO6yWsedtS7qSGatdC9FznbcsET2SruarklyLPTfS6c
 Srw284iVkdDgqjFg/CTy8A9ve6BFe/fa8Mp2YbZVivDxZVMZQ5csRqwttZJaiV43
 TktAtKC4tRnMDBENgCKFysV4n8ihrR53P2Q2DwoOcwFZu4MbJ4pxeN4wevrzNJ9g
 VhNlverp7qakFMY6UxcW8iZ521WaPxDOMW1ewr39kEFVZDPwfhflWtaSVC9CcbFs
 6+QINcrb0ExtDU19TznAc2OlFBHEao2Kgf9r8DjVuHTqeVbZUN+p8QmVNwAeCHoG
 03lvMv8uRSWMftBmfsR8DdM13Fgaeywd8odmAw5tILmM2KZYWX5lcz4nEwXlG4wg
 LIRqWv2zXxv49ZjCZy3q0XqGcgUZaEPBIue0tluTJKljHSsh7Zq5Ag0ETlA0OQEQ
 AM08zan83E8KDfJGmXQKmH389BbmNxYswsAgvLVjOua7hOMw0VQp9R1/Ku9r97p2
 g7OOKan45BkVDJUwj01oyjBcbYhi2mjq0W3wIWkVn75cVyqGMNBoDywB8N/Ara+k
 2QXjR/MOQUBuC3HfcExtUj8UKur5ud0gRMwg5lABuXcCqWVcbfQBJ2fu2zbFPWha
 NVtq6cm6CQIzZm6mqMJ7lVzBpgp/TsDlLbkiTjUxyjNTNvjuGhg2nSvalkqz5J2K
 Vyz1lVNm/yLm6tG7PIxKeVlHgtj1M8nCbiCSpU/bkmBP4qirZMe+MjUER2B6xf6p
 ydqLSKEZ31qRPDaUhaH9kVv96+zvO3PacE1ecAv/mlO8YwStLO9tcRZX8rXP6jLA
 uJ7yjSy47RXbfh296NqanplWz6XctSplLqXTFiN+DNiNEPFCgRucQMwbsqKkX8ro
 61EYwuKk0k0g0P3Q/06MQ9yf8McOLCNAdM4WJR1B7fCT5CDI3siOJ40lKbgjgaJ6
 HcvjP9n0ymZEgNCvP7BRclsGTV5G3LZrYyGOsJTCcjmTG9qHFJ32ADM+K38OHFO6
 G6lvciHQ8jfsJQg4XmIwpBLtCLNpGvObDwZLst7kdztdtKXnZUXoFLhGvEb8GMds
 CILLXdJ1o0nGXyX1Jg6JQWLdVZKyFInCsCxqjSQtPgezABEBAAGJAiUEGAECAA8F
 Ak5QNDkCGwwFCQPCZwAACgkQLSnu7YMC/p8UxhAArTP7S5Jor0148D6kDqFvJiBt
 ny+LTLOWC5/Nj70KgmhLxzuClg9784+mXWwi7Dp3uNpBbgC1OqUh3WuDw4YNommz
 qW+9xy7otBfEMn6slxRyla+o2l9kCrwWdA8e1gYHVjWxV6hlFiF7mWPwewqoW73+
 UDlesC0iuqctxKhXodPZn92DE6XJjJPCDvFHNj0ukuQ6K4U6jIZy6DHomp+Mcwhz
 0q907AKMOZOLm/ISUSwbACRf6UgvQO5frJItoA3vKVF88LvmbdnorCkUjz7A4VTV
 4sFnUtZ6PUWubFAhVEhlBl2FIgpKayZa0gdrRC/gpZKEhVP/C4SpHBPssyT7UU5o
 KX4zYy6sC1dkhlF5v1JEFVZFkOe+FC8QFsVPRQThkCAXEv/aAkX1fHRVzE2LuD8M
 0jujPxw9lupuTyRVztT5bLhvSv4VwbEHqUAEYrNBKdgLGSWEpwaEr612QZ2al6jU
 wngtmeuV3waKVAmrEOa4j56mxk3gDiSD2pVuDiEKzhOheRIpWxhbw8pfUrVF0Ta6
 4y5n7f+J60i4k5oHp0kUeux9vlV1WbNJWTWwvL9wQHL28UZTp5EGz1ishp40slHh
 mvLOEdAUP6o76clFDaqzmzSw9lR18qrRsyyiKDyLo8WwTjeBu0zVCdaaRt84QS+g
 umeN61KbYXYUxVazdIg=
 =hh9s
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.137. Poul-Henning Kamp <phk@FreeBSD.org>

 pub  1024R/0358FCBD 1995-08-01 Poul-Henning Kamp <phk@FreeBSD.org>
      Key fingerprint = A3 F3 88 28 2F 9B 99 A2  49 F4 E2 FA 5A 78 8B 3E

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 =GwRf
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.138. Sergey Kandaurov <pluknet@FreeBSD.org>

 pub   2048R/10607419 2010-10-04
       Key fingerprint = 020B EC25 7E1F 8BC5 C42C  513B 3F4E 97BA 1060 7419
 uid                  Sergey Kandaurov (freebsd) <pluknet@freebsd.org>
 uid                  Sergey Kandaurov <pluknet@gmail.com>
 sub   2048R/5711F73B 2010-10-04

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 ZHTrB5rRodo5ARlH/LF9IQ==
 =RXWt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.139. Coleman Kane <cokane@FreeBSD.org>

 pub   1024D/C5DAB797 2007-07-22
       Key fingerprint = FC09 F326 4318 E714 DE45  6CB0 70C4 B141 C5DA B797
 uid                  Coleman Kane (Personal PGP Key) <cokane@cokane.org>
 uid                  Coleman Kane (Personal PGP Key) <cokane@FreeBSD.org>
 sub   2048g/5C680129 2007-07-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEaj6Z4RBADnHGSN+HpgYx4kwj2c//kuW91OOYhYlstDCeVTlNc/7YpbgF3T
 KQKBWHu7uqygI7IeboCuCltP7D+PcXTVdBlh6X4aiwV0XSBCAF4ZngCb56OsSBYd
 MPjygHV3TH2TKe4PGqH+MZ3umogB3TZVMLpz4S0WyxXjUxLm5tYn7rOCCwCghTRd
 00JiGg0u59cT1/GiD2KYE40D/03DKCm4IvMRFsxc3IGhXQc3rQJVhBBAxnnzBA+s
 R3i0xKzGqBslEUG+AxUMFjohjQgTWjFRa1PTFgHih95Z1lR0/oO5teyDfxjeAPA5
 2hUoB3PF5NUFeMWXPCoSyb48uswJ5CCeX/IA5lVO891+jQh1LHIFQDa/rB6zeYzQ
 HaSXBAC3RheXdRaEFGt2JkNqAZxEQVtiWe5tebdm2oh1RaIfMQ+U1p4X9EBQQjGq
 6JeeUsO56HXECEgCyk46fgo2xNwIXqYi42sQlIGn8JDBwOLyjD4iJpz2uxC2NO9J
 GKUOMdsdydUpfdkF7tWu1rGXXmzGcUUkHXgKsF3jf739FyGAubQzQ29sZW1hbiBL
 YW5lIChQZXJzb25hbCBQR1AgS2V5KSA8Y29rYW5lQGNva2FuZS5vcmc+iGMEExEC
 ACMCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCRqPskwIZAQAKCRBwxLFBxdq3
 l7aXAJ9829PUx9ST75k3L6/nfkejftuUFwCeN5vqGr5uZlkCQr+Bx45HbcyFQp+0
 NENvbGVtYW4gS2FuZSAoUGVyc29uYWwgUEdQIEtleSkgPGNva2FuZUBGcmVlQlNE
 Lm9yZz6IYAQTEQIAIAUCRqPstQIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ
 EHDEsUHF2reXPTgAn2uPDHMfAoaLp+Eg2FfIuMlVNgfEAJ9xBcFz8kLTrAbKnthL
 S0yBqAUrv7kCDQRGo+meEAgA22OriKy6l+mvGIqbwk67Yz2zcVtHx8Jq8uuyt4Ue
 JfuK9H8rDOz783oF3++ywf07xqtl70rH+KHSNfVyXUetVXfBUZfo5bTwxokQWE54
 eJukJyZeDYXpaJ8ro083lkHsqE9vtTSwJfU4rqRpu67nC80WSkke0t/35sHKqwJI
 WXlHniGD3dJt+ZTy6hxzcx3WjlNDNUEq6iSl28XNzWdvpKIrah/ksO5O2akmaZcB
 SXtHthWdX58hOCHBhS1QQSKvThL3VlFtsi7EhW4/rNekDomypLxHGErprjMGV3GF
 509kI2vn7NoA1G4sxrESZK9sNIC+KmdWO0MQ4NYhB0NAnwADBQf/XFiDa83fYJUN
 LBqGGgeOPE+pyBS6gVrw6Kz62nFFgfW9hHtYgItzS4XrDHCc8TCSG4zOBqBY4Qvh
 HgJ1Fa8rppbMUMI32egtfY0/cu8NVWtHlYp9aQp5tM/0zPu5RaRpQxafs9e5j4gf
 fd6mY3ro3vJjZ6UczORKFBHxLDg/F6UCeOZsv8Ii72YDqzZEFdBUMJH7ArHFKndd
 ZxkN7+iGXZorHnTJj8mXSDYmvyaI+Gfn/dea9RDp9h75257cHhnbaDd4ZvlUK7JQ
 8HFb6jM0LsadfDuSSMLUYFozqeG1MVCJgn/Rv0i4FMlI0QK/6r7njvvfR6p4mLl5
 n9r0NOG11YhJBBgRAgAJBQJGo+meAhsMAAoJEHDEsUHF2reXJO0AnitUss1PV58K
 ++igcU+jU/EAsjbNAJkBlxLkkDzmxfWATLWri1+qzA5WDA==
 =L430
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.140. Josef Karthauser <joe@FreeBSD.org>

 pub  1024D/E6B15016 2000-10-19 Josef Karthauser <joe@FreeBSD.org>
      Key fingerprint = 7266 8EAF 82C2 D439 5642  AC26 5D52 1C8C E6B1 5016
 uid                            Josef Karthauser <joe@tao.org.uk>
 uid                            Josef Karthauser <joe@uk.FreeBSD.org>
 uid                            [revoked] Josef Karthauser <josef@bsdi.com>
 uid                            [revoked] Josef Karthauser <joe@pavilion.net>
 sub  2048g/1178B692 2000-10-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 p5J1gj4xWykgTuA=
 =U6zf
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.141. Vinod Kashyap <vkashyap@FreeBSD.org>

 pub  1024R/04FCCDD3 2004-02-19 Vinod Kashyap (gnupg key) <vkashyap@freebsd.org>
      Key fingerprint = 9B83 0B55 604F E491 B7D2  759D DF92 DAA0 04FC CDD3

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mIsEQDQwdAEEANxnThVC8GNO9VXTjWFhJh7XgMLHf9jDd0B1804WUqc3c76r8y/k
 AXZ8e3kNH1rpa+VJ0rYQnurQg5BeFQny8TzU6PC9QSdqNKSCvhai6B+w3t15sKJK
 nGZ7DwyoyuShMFNMVF250KS7dEZnYy8yrtopCIWJAWzuzuQQtmUYk4B5AAYptDBW
 aW5vZCBLYXNoeWFwIChnbnVwZyBrZXkpIDx2a2FzaHlhcEBmcmVlYnNkLm9yZz6I
 tAQTAQIAHgUCQDQwdAIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDfktqgBPzN
 031cA/9ZuwCRbYhTHWzOhQuT8dm7Bby0wEq+KzkULXd/ExgxCu/54t9M7csD378X
 /Fg2erLP2J8cYIcVXmdtIJO8AwZRw5GgmVP+h1sEY+KT8jiJNlX2hB/9qCmng3FY
 ItLBY2t7XVmTPMw8BLANE7PJ1LKT/OoUHEk0OjK53KKGNU2oUA==
 =VzLE
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.142. Kris Kennaway <kris@FreeBSD.org>

 pub  1024D/68E840A5 2000-01-14 Kris Kennaway <kris@citusc.usc.edu>
      Key fingerprint = E65D 0E7D 7E16 B212 1BD6  39EE 5ABC B405 68E8 40A5
 uid                            Kris Kennaway <kris@FreeBSD.org>
 uid                            Kris Kennaway <kris@obsecurity.org>
 sub  2048g/03A41C45 2000-01-14 [expires: 2006-01-14]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 =nTL1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.143. Giorgos Keramidas <keramida@FreeBSD.org>

 pub   1024D/318603B6 2001-09-21
       Key fingerprint = C1EB 0653 DB8B A557 3829  00F9 D60F 941A 3186 03B6
 uid                  Giorgos Keramidas <keramida@FreeBSD.org>
 uid                  Giorgos Keramidas <keramida@ceid.upatras.gr>
 uid                  Giorgos Keramidas <keramida@hellug.gr>
 uid                  Giorgos Keramidas <keramida@linux.gr>
 uid                  Giorgos Keramidas <gkeramidas@gmail.com>
 sub   1024g/50FDBAD1 2001-09-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 IgCfSGrV0biCeEg2LYvkY8r+qISrp8eIRgQSEQgABgUCShJ0sgAKCRBKChvI5PT/
 5qKNAJ9v7FrYn9H4JSkDSkodD5e58m8o7QCfYIYTc7ZtJezQVDfs5trMaZJ9hSG0
 KEdpb3Jnb3MgS2VyYW1pZGFzIDxna2VyYW1pZGFzQGdtYWlsLmNvbT6IYgQTEQgA
 IgUCTCrZPAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ1g+UGjGGA7aY
 hgCgodxcHXJakfN/aTje5ptVDfnp9r4AoI8VuOfyfOa3oNG7l5b02xyBlB5atCJH
 aW9yZ29zIEtlcmFtaWRhcyA8Y2hhcm9uQGxhYnMuZ3I+iHgEMBEIADgFAkwq31Yx
 HSBJIG5vIGxvbmdlciBoYXZlIGNvbnRyb2wgb2YgdGhpcyBlbWFpbCBhZGRyZXNz
 LgAKCRDWD5QaMYYDtsu7AKCQ4dJNvHzvIY2N3TZ9hQgkdHCTcQCglV+YmYD5tfhK
 fxz6xA5tWYKsazuIRgQQEQIABgUCO6yjtAAKCRBh4yFaDntT0WGcAJwMjYa2mHPt
 EJnBP6+q5ibZKotr+QCdGcFV/PUvU+x6GFu51qYyjeWIucGIRgQQEQIABgUCR+T5
 GwAKCRDuYs+nBbNfMveNAJ9ky78WZ1m2J6k8kAaR0WH8xyHp/ACfaElBolLsm9Gj
 YVJil7G6Hq3yyuOIRgQQEQIABgUCR+T5kgAKCRAq3iExvmZmv6UpAJwM2zEmjcqD
 p8aXCCDJ/1/2oT7IjQCfaMLk0j5ORVhqctDvAY+wwZEvzOKIRgQQEQIABgUCR+T5
 kgAKCRAq3iExvmZmv/OpAKCYm2oSekQXnZqajQU1RfZKM7CsrQCgieh8jdbNAjRP
 o1UyuApv0ZPoZtWIRgQQEQIABgUCR+Uv+gAKCRAEoQQzidLT0DkXAKCcjUk/vXuz
 jTaCl+qbcWFUMhnsFQCdFXUhl/DaE/12iREGM7Gez8ksk8CIRgQQEQIABgUCR+WJ
 hgAKCRAEiI4tF8pLCg+bAJ9hlq2p/iT9cF49pLIFr0BdsRgrFQCfSpunlpTurbIY
 f7QjOY/2VavPdFKIRgQQEQIABgUCR+WmiAAKCRCZZAgVZDELDQUBAJsEwvc/iP8R
 dmQsKJVdAd7HmsCebgCdFILI2RcyU+cyaqSJnQtGpTrWs0mIRgQQEQIABgUCR+Wm
 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
 rkbWaRVzAJ4oA62xKNbHfUJWJOrlny+YSCPRpg==
 =PK2k
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.144. Max Khon <fjoe@FreeBSD.org>

 pub   1024D/6B87E212 2009-02-17
       Key fingerprint = 124D EC6C 6365 D41A 497A  9C3E FCF3 8708 6B87 E212
 uid                  Max Khon <fjoe@FreeBSD.org>
 uid                  Max Khon <fjoe@samodelkin.net>
 sub   2048g/CB71491D 2009-02-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEmbEFERBACe5xJF2u+R6020qrAb42ZcqdTUFDepqVWI/qrxXoEpC+fxAD4x
 9s8zilNIZkG6NVpEr7swAWG3+XMSqM5vdtGDj09JFsGEuREB05JTzIBtqGGKWuEn
 Mhg/3K1ZxPPwAokm0Sr3kiGk0Q0O+dTesc1kq6xjuDYC1CrLKwVewp8GqwCg2irJ
 MsYAfODJFAXdK37hG9T5TB0D/2CqorXSukQ2L4U7aFOYlWtDnY61c+gLC9JKJSD1
 TfNTjlJqfu7/1LqVglFZ54Pp6mXYSheq1N853jBFFKAfByiTvD8BFbUsCue/aJHc
 W+STjM8J9fY+oyi/OMZdgdseQ9fn4Y87sK9As/JsE/z4V+kn0V7+x2mqTJwqsSNe
 1JyPBACeQ+yEVchDkoyK+lPgjHYQIqrPbu4SrRalR/WkAwPE95b3j8RHNsX9PL6T
 J3yDxXTOxQgfoCVhS0KPgLoLKTfRf3CvSZYduFkWJgeCtoKaYn9nBzcnlnCjrGvh
 1bplgiOX/4x07aHEYgVRan1Wed2pPjpT7WWy6NDC0VP2HmvpN7QeTWF4IEtob24g
 PGZqb2VAc2Ftb2RlbGtpbi5uZXQ+iGAEExECACAFAkmbEFECGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRD884cIa4fiEr9CAKCYt+Yc1AiBqAkz1fwDxLC6Kim4
 LQCfXGLJOc7rvsR7lNT8ftexwa36dq+0G01heCBLaG9uIDxmam9lQEZyZWVCU0Qu
 b3JnPohgBBMRAgAgBQJJmxB0AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ
 /POHCGuH4hLIcgCfZ8MJjAT+wFB5DfbtNELP72xoTqoAoNXtUquEkBo3pkt2M089
 xPqKnBDvuQINBEmbEFEQCAD49pzUGeoNT6HqnHx56l/+eqMljCm9OMUpt3CeNU5j
 UisWVb4yv83VP8cliLDYw5pWCm4TTSbsG+OdYrwm2l+lIVIUeST0XMxK4VeoNTJF
 DavUs2r6XS0Lspr60Ynnp8z8bA5/O/C82DB9AGo4dpew6ybQoXRyY3O1JAWBucuh
 Y/ti5hGtKT/n82XHYtD/Z8BcHN6DVEsU+tn6FWeKu1yZqen98ZN/KOO0GhBAgTn0
 AyxVYC7sbsul8OHBgNKhUvukIBIHCjZWPYTqJwrwKwlrGLENiUd0sgcugRP7sEEI
 iGdqT3/uy+IcaKP8iHPWUD3lrqV9d74JXjFu7GZoMId3AAMFB/9MT4CxcJGMBBs6
 +icdnFwHIGAxBkUXFCSgQsVr4OyhHx8Ac+WDIIeHLF83kd1PKG+ecAxhxwF+MlgG
 kU/Qk9pVwBJBM/Gs+hrwOQODsf5+sp3CcudICSzAXtzm1A01CQVfqQYCscZDQvW6
 ikJZspLLJkbHG+p103C6xsmcOM3qFJN3erQpwRfhqwvKSwH7/pjxijEc6tvTzj3X
 nW/rAUZIHlB4PzSlLZ4plFLgYMBt73ewlt6lKXmMrnhFwJtcA+2bIQd3dAWo3Eba
 feGK5hqHATowvVgLjx+ihE4TdpA7kXyfZ+nP2bGFaCR8JnWVtKZkTqaWrU9xRPpB
 3YwQNOtBiEkEGBECAAkFAkmbEFECGwwACgkQ/POHCGuH4hLFaQCfbr9tE8O9EUjf
 Mre0CBDDd2Ck2sIAnigLJE2wP8hPmK9bSvzEcd1qKpnT
 =3qdH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.145. Manolis Kiagias <manolis@FreeBSD.org>

 pub   1024D/6E0FB494 2006-08-22
       Key fingerprint = F820 5AAF 7112 2CDD 23D8  3BDF 67F3 311A 6E0F B494
 uid                  Manolis Kiagias <manolis@FreeBSD.org>
 uid                  Manolis Kiagias <sonicy@otenet.gr>
 uid                  Manolis Kiagias (A.K.A. sonic, sonicy, sonic2000gr) <sonic@diktia.dyndns.org>
 sub   2048g/EB94B411 2006-08-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =3/vj
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.146. Jung-uk Kim <jkim@FreeBSD.org>

 pub   1024D/BF6A9D53 2004-04-07
       Key fingerprint = F841 0339 93EF D27D 32AD  3261 9A56 B2D5 BF6A 9D53
 uid                  Jung-uk Kim <jkim@FreeBSD.org>
 uid                  Jung-uk Kim <jkim@niksun.com>
 sub   4096g/B01CA5A0 2004-04-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 E5Fbf9wkC8rs
 =HTXi
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.147. Zack Kirsch <zack@FreeBSD.org>

 pub  1024D/1A725562 2010-11-05 Zack Kirsch <zack@freebsd.org>
      Key fingerprint = A8CC AA5E FB47 A386 E757  A2B8 BDD2 0684 1A72 5562
 sub  1024g/6BFE2C06 2010-11-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEzUTbERBACySFcOGxN2msGiMvx9yhyQuklGdDgYKAzm/TNlImVQF6q3qhcb
 CJ6FaE99kFG5EmQXT8uCRSzb3/dIvNrhjTxrmT63kjs67mKnyHky3wP0NHCNSmZs
 b5Ky3h/SPOpb06S4zmhI7MGEm/xwBkQqc2YqfYTzRW83VNS9e/sTNzzwBwCguOPz
 Hr++4PFj0nr8I6r5HKMrfzcD/i5B4dhi25M/KlQsM2dh3r/z8KZ/79gmHKBJMrHg
 zI3sczQvXNo7jgaJwqgSInlfSoKKFyBw6Oqr0kP31E0K6ZKdrbpH982BSx5qtGe2
 xnDJNHrSOtgFqg3EW9DaYImdUmUOeW31evMwhjCYGSZF6iNVh6sahfZNFwmEgUXU
 +zBJA/0YeIPcQNdOapJ8H/ATRH7SLyMME+GIOx+85VCD2VBOq+WCSN8U7gJ/FFTn
 0NCVAVtPt/IAOMCZTob2as0C4w3Ho3YZTnl0jl1taYCRQnENQoVoT7cCqN4auypU
 0H2EvGPGUie+iZ4r+G2LLdrqPMiR5UTRcZuPk9O3VWXPpeJuoLQeWmFjayBLaXJz
 Y2ggPHphY2tAZnJlZWJzZC5vcmc+iF4EExECAB4FAkzUTbECGwMGCwkIBwMCAxUC
 AwMWAgECHgECF4AACgkQvdIGhBpyVWKvcwCfXGP1APXbQMWyacrwv4vfCjdTUpYA
 njYDgW1ok7AiabZjdT6APpGeqDKyuQENBEzUTbIQBACYKMjEfC82aby7YMRmNqCR
 IDU43ipbpRsUSz+TdHe61OYBL3eOFM5N4gp7tTmLisoW7AzFdiDgM9CUv9V/+ucO
 cM+Kmloqe65XWyCQchCISe5+8mMqFG617aDvQihHjho473IxlersxGS76WG7RDUn
 EP7gQeU/MzBcKi5Wk1ocOwADBQP/ZAgj3Oub0ntbBealsqEydjhysMMCOjOWJ75h
 lmBfH++UXiN3rFdzHzGlwLhTLY6I992YZM5fYPw/ta3w5Y2Cm8c3QqG+RcoyK+dH
 c9ce80Ddq1DV4F7RWNhjl3ej9kOneb0XhPdZ3FVDlc0P/88+5nL4bRLMuzp7g5rI
 ONhG5W+ISQQYEQIACQUCTNRNsgIbDAAKCRC90gaEGnJVYhriAJ0Y6dyrFOU4sLuR
 +KLw5h/8RgCNPwCfVayO/zLdURlB+BOpbmyxn6WnCLg=
 =sdsn
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.148. Jakub Klama <jceel@FreeBSD.org>

 pub   2048R/2AAEA67D 2011-09-27
       Key fingerprint = 40D6 097A 174F 511B 80EB  F3A3 0946 4193 2AAE A67D
 uid                  Jakub Klama <jceel@FreeBSD.org>
 sub   2048R/5291BC4D 2011-09-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE6BwQkBCACllA3LvksIethpx05Q3MwzG/bAcPBlclrl/tRlPtPGYqYlSfRc
 iVWKzOHq7k9+vVkaMmGwCyjj7/AE4vw2MPWCKODX2awW7xG7mcHWUZBYBcK4b+Wp
 2kpUrxyeZwSmzdqj3p4t9vSyY9njTNkRaJ3B1ozlEx+8vq3SgFHZFglHjuyyDi0R
 S8jMIXrHJb3mhnTABRh90vIj0eHHsuq75YwnWdBNyFU8t50zT/mshUCGlX7UWqEX
 WhsXXlqNqcFRW/AGpqwj8lHcLC7SyrNB8wu37L+duIqcmnTeT6aOjHc57Zle8Jdj
 EtUVtRoJ4txRnHLQM3B4sZ7ybP3sCTMnPzV/ABEBAAG0H0pha3ViIEtsYW1hIDxq
 Y2VlbEBGcmVlQlNELm9yZz6JATgEEwECACIFAk6BwQkCGwMGCwkIBwMCBhUIAgkK
 CwQWAgMBAh4BAheAAAoJEAlGQZMqrqZ9C9wH+gJzw7uvpz5VwJRN3buK4n46v8qU
 YFQrWwGzVO0R5QMrFcN6x7FzZupLFx3BOih1ak3UPVyJ3fcMCORAHU1QkCnwCBnm
 IUNRGPwC2WvD0hiBcBXpe6BRbshyeWkvqaclnSvcOWUZP58gmJnLZjCs5ke+se/T
 gZgSTTuN7mMFCG7MA4EXcvtIX8VWXWVyXufXFdBQnQkuLtboetYE692063YUIslK
 URw53loB9jonBkZ2lWPkN6Q0HF/34HrP/Bw4ZZnYZ/gzfFhoQdrRxCBaK7R2TrJ2
 kF2FSUtsCHJWgLq0cYygf4pCz7oYTt9x5IuubH4SDAjV65JgMic2RKkehE25AQ0E
 ToHBCQEIAMopCcGmuQPYBVgEcl1bEtwG87mJJzpTNBlOaE7JCUK7KSI+9qE5o5Tu
 jqFF39mu3Gr1kecsmtNNfCNW+ja9MtTatcnsMWMhZ5uNFUG3y2+Kotp1DEWTAZcM
 9TnX9IrnyLQvyLVJT5LI4qEcsAYHrLyJMrCu7c53M+RVigvimniKvW0yBZECxqYv
 nq/b0BSJovmtdXnO3wHLgz3dDcMnOAgGNsMpBztoRjiC5ssSCEfnCMLXVjmOa6Ji
 kRL740TTNK1HK00Wk0pfi5NEiTq+XTyFg0ekeMZIIIRQZHkFFA/ThJoEvvOb9pv5
 vkxifCjz0NFTecttnpVDSPWq77KYM7UAEQEAAYkBHwQYAQIACQUCToHBCQIbDAAK
 CRAJRkGTKq6mfXU6B/93a1Us9ESZfzwjg5kd2Rf9GtzJkEUlEKKJWkG7eK/6p3pr
 Qlrv2S4coikPCbasdxi4INbQbtDP44Hr6LNCRXB4VCeDbOA0W5H4hO4y1kWXbdTN
 X1pTXBPgj5kFe9lFQK9arHDgJsJaqKtDETlTmH/iI9xc51ZM5aeB4i963KixnPFy
 KFHjjAynTZSIMd8JXYul+kWpSSP5dckvW4G97PPoqbz4lsDUsgjf5Lg1lhThjlDz
 Jwm8yXz0fqORkB+wlEj1fsF5itmP+sG0YipncjFXGf/0ToggRucsSlDWBV7l9wBo
 HeAGT9bpY64DAhB5SLQBDphtBChiit4TJqkWVs/4
 =Rt4u
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.149. Andreas Klemm <andreas@FreeBSD.org>

 pub  1024D/6C6F6CBA 2001-01-06 Andreas Klemm <andreas.klemm@eu.didata.com>
      Key fingerprint = F028 D51A 0D42 DD67 4109  19A3 777A 3E94 6C6F 6CBA
 uid                            Andreas Klemm <andreas@klemm.gtn.com>
 uid                            Andreas Klemm <andreas@FreeBSD.org>
 uid                            Andreas Klemm <andreas@apsfilter.org>
 sub  2048g/FE23F866 2001-01-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 7A==
 =E/l3
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.150. Johann Kois <jkois@FreeBSD.org>

 pub  1024D/DD61C2D8 2004-06-27 Johann Kois <J.Kois@web.de>
      Key fingerprint = 8B70 03DB 3C45 E71D 0ED4  4825 FEB0 EBEF DD61 C2D8
 uid                            Johann Kois <jkois@freebsd.org>
 sub  1024g/568307CB 2004-06-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEDetekRBAD7mBgP351FCNnqp360OUy+ZKCr2IxUU/Tyffqyrrgiol16kTEO
 bpImo5cgZcw+y3wTSgGxwbb+UmUcJhLDO0olDNOCOYdBzzKfTyZwLzgVaC/XZ2dE
 LQa+3FnIp0btyU9vermk7GqWJqvVUTnMSjinqWS0MfgrcuEXjXTQ1b3b6wCgutKz
 BhEasg38JthFvIownezYwHcEALNJsxEnsfEMm+DQXPUvWTiScu2QR2v0BVVzfg1w
 DMaEnSjw44NF+cyyKXfqx3hYkboRw66GMvcbfl7AYh7ThfDjof5MHfBbe6aeJwd+
 pyVS9BRiXMDbwnuPm31K1zsyCr6XeQquM204Jb1fdMiFEi22A2VxQxAY4cjenvgx
 2UIFBACBHtPfsK8QyAXlNtTQqvMEQe01pXm3u90pL8DBoWsWR9vDIlnJLaMgi2jG
 xBNQp9UP9ZxS+BiAoEkUficsoPvoMkzQBSnfcDJfnyCXranBuuhsF4mzvEO8uLJw
 4NwT+7jij0udeWe3Ymd4ppWHEADhx7PLdYdq4Kczuu0XcGqHarQbSm9oYW5uIEtv
 aXMgPEouS29pc0B3ZWIuZGU+iGEEExECACECGwMGCwkIBwMCAxUCAwMWAgECHgEC
 F4AFAkGV02gCGQEACgkQ/rDr791hwtgJbwCfeBGfFaR0IIUhvfVy7GYFQUjHuYQA
 nR0Vl/9xS9SbGpk9nqDCHooXgrCPtB9Kb2hhbm4gS29pcyA8amtvaXNAZnJlZWJz
 ZC5vcmc+iF4EExECAB4FAkGTw+cCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ
 /rDr791hwtg4zgCeNkjhClKqeDjTWvoSuh805WDuXnUAoKFid8813Hg7HATB4UwD
 3KvmHBIFuQENBEDetekQBADtrxEvnshp47wNGP33Vwas4RtDVp40lC51yVFj9Ior
 zXhq9SD20gz8qPCwG3a4Srhbh3rgjPvzzqcjSE/axk5+LwJ2KHySlpfwu4wTtddf
 o6JzlJYWtQE+bcp65vnd6L5DGJsm1KmRTOZOL6wWxTXft4lgxfg1MEbzOKcL5YnU
 BwADBQP9FCPfDZYwAsZya5h3aAd9yg6dvDsObs1D1MMIiygr54/cmGUiPcI6zaga
 hTfDiDGanlBk1idFVKh0A6ZEza55NA45lJ02W9amWvrjG+PB8wTX4IWRAmDN4ql4
 QuahtHsciUVzw4BtHhPtM1+DpT+C6aPwclpmxX2Az8tHDjHKdq+ISQQYEQIACQUC
 QN616QIbDAAKCRD+sOvv3WHC2ICsAJ0fvZ0rq70bwTIWfgYq3N3fSZfR6wCfdrgZ
 /8nwcdMpTA2LAo1YbndxFW8=
 =VCND
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.151. Sergei Kolobov <sergei@FreeBSD.org>

 pub  1024D/3BA53401 2003-10-10 Sergei Kolobov <sergei@FreeBSD.org>
      Key fingerprint = A2F4 5F34 0586 CC9C 493A  347C 14EC 6E69 3BA5 3401
 uid                            Sergei Kolobov <sergei@kolobov.com>
 sub  2048g/F8243671 2003-10-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD+GP80RBACjmIRFKqJ337zOjW51eExucWRny0pu5fuGaxuJmGSbKaJRAORU
 1jx9i/Cxcw7iwrnbR5xeyjWLDb7FIAemPltBItt0tE9H4pQXgP8d8VL3eehguMda
 o0yfP7WUm3U9uriJEJ8141Yql5IR0e8isQa+YsYbkd2RmDdCMDdC3W0Q9wCgsquv
 jc1gvAh7ypvhk8VLhflAeZcD/jQclE6S2zLZ1DSP2Q5mmuMS2ouRV6Z+fbWKF9XF
 TSxdLevWcXmPqvsXFT75cz8pcBIw4c/wVd8OsPU2fd+1LZCFdms1PqLjhUfXgVbP
 Q1Pl8zCAyriSnR2+BDwUMGzEgidkTjmjlbwhGzPsSJ8rv4i18xYs/JbmkeAV/ZBA
 e6jrA/wMU3ho5aIJ69KxZb3bmPVHYrqL8Q3n51uYausLxdHDMxVvjL06VAGWbF/h
 TdiFJ1ngMKfcfzI5/awpKwb9FPbERuNvmT10MDKumFW3xSAJMRzxh7O61u8N7dmc
 xLdirICQMRN2jPo3v8T2ANsdydVTn89nqdpg4Bo9Rsz/Fdnrm7QjU2VyZ2VpIEtv
 bG9ib3YgPHNlcmdlaUBrb2xvYm92LmNvbT6IXgQTEQIAHgUCP4Y/zQIbAwYLCQgH
 AwIDFQIDAxYCAQIeAQIXgAAKCRAU7G5pO6U0ASlRAJ4mnVHx0rA5dhw0scFGOddP
 cH/w9wCdG6HPWlDpXFB5nkpQalMnGzLAkka0I1NlcmdlaSBLb2xvYm92IDxzZXJn
 ZWlARnJlZUJTRC5vcmc+iF4EExECAB4FAj+VJGgCGwMGCwkIBwMCAxUCAwMWAgEC
 HgECF4AACgkQFOxuaTulNAHJ7wCfbcMzZiTmwuTD7wLTxvzC35OQE1YAn3et7KAt
 aLZuVXYIDROr33RIlfcUuQINBD+GQA4QCACIrLJbs3SkUJpuvYC1N/iykFYGHKPM
 L+XCCK3A4HL6f+GyCpvajz62cjUfuXv/pkLjcYANnqKKPJu6Bj2rFmOG785R/RPD
 o2dl+zlZ0fggQAv8zZqIP2KyQRSVa44Pxc/G1V5odcg/QOcKU+FZrkRXoz8SqfDU
 OEfarQP687+DU+Th0Nwn5M20+0ml7yw0/y9DtggWXzlWyIdYfhU+8HckvzgXnUFA
 tPdfDUzUxEjvVBUwZ5iHtUlId6sHiiTCS/fbnRzwJA1Pu1E52B2AfsLxFrwV5cRC
 ASfi7IGhZazGCctqZi4hbWQCB/+ipEVGct+bD9BpW9yS/JiMAxcwE0ubAAMFB/9F
 k6mZUzBbxQkSbXP4w1VSxf2m/lIV9v9M0LCMwjmcsJzsdLUG/i3Zo+hAjT+GznMU
 DVzPHq55LiNs2MKC8WKHXgXFCB2uoZvlGu88I2JjucoeibtC7zbKmVOntuY55zTk
 uiGkGRawIIKC6oqVFV0EGXxrcJ6v3/0vgBQSva08reETZaUFe3ivt0rU0NSbhVJ0
 1WiPXk9wFY0ccemUVmdcX4hhC0yyBB0px4qbEBY3+mtHpFVh/r24GXvWXkbLowGd
 nmKeigX/tlRyYgPHLM2goUHUYe0erbKp2fyeQhockLOWY0DBFcFRK2kSx9HYdtcI
 N45tvtkBza2O8C7uCtwgiEkEGBECAAkFAj+GQA4CGwwACgkQFOxuaTulNAGwbwCe
 P3RXUuqmNGYCM0IXPlop9XLZIcQAn1B9zRfHFJm7tgMI0A6Avybs7V8i
 =EDjf
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.152. Maxim Konovalov <maxim@FreeBSD.org>

 pub  1024D/2C172083 2002-05-21 Maxim Konovalov <maxim@FreeBSD.org>
      Key fingerprint = 6550 6C02 EFC2 50F1 B7A3  D694 ECF0 E90B 2C17 2083
 uid                            Maxim Konovalov <maxim@macomnet.ru>
 sub  1024g/F305DDCA 2002-05-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =WWB9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.153. Taras Korenko <taras@FreeBSD.org>

 pub   1024D/8ACCC68B 2010-03-30
       Key fingerprint = 5128 2A8B 9BC1 A664 21E0  1E61 D838 54D3 8ACC C68B
 uid                  Taras Korenko <taras@freebsd.org>
 uid                  Taras Korenko <ds@ukrhub.net>
 uid                  Taras Korenko <tarasishche@gmail.com>
 sub   2048g/8D7CC0FA 2010-03-30 [expires: 2015-03-29]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 EsKTn7/B
 =meSB
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.154. Joseph Koshy <jkoshy@FreeBSD.org>

 pub  1024D/D93798B6 2001-12-21 Joseph Koshy (FreeBSD) <jkoshy@freebsd.org>
      Key fingerprint = 0DE3 62F3 EF24 939F 62AA  2E3D ABB8 6ED3 D937 98B6
 sub  1024g/43FD68E9 2001-12-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDwi3FcRBADkiWSSJSOX38CIPgbUnnDQ8S79eZ0zQYnYn5aeRMi7w0B4SnQP
 1DcFZ/EHNtQWJTCaQBWQZZWvL1ZjdK284YrpSKs7gfoV5BufcFqKatewWZUfsUad
 FEKTXLXlZa55151UtFy9erkA22VWHmqkauDFYl4DiOtaUWCX1Gg8xCvB3wCg0sbC
 /VtANEu2XbxUp5pGmReNn50EAM4vLWfZk3T2woHN0VBOwEk0BM216zfJQGLFUFqT
 nLKezO/QqoCCcVpH7rwV0V6NI1w6YOSx14CU+s83iyyO0KlRypoptWKBoA+cjs/y
 3Iy05K147YfWUhgkKcyw/Qwx8wCDaetG+qZCX4nY0EByezFe504uDkcxk5BrqBX8
 E6kzA/9vSG+J4aejKRw9z7Ku5cLV9ygXCksu325uY2t+J6b+48cT8eFMOpgUHyNV
 m5ypOL31KYRPkOzK+iiDoTPODh4Zg8YZLsgWdTrC0ZQW2nWPNd3Zv+tLAmiwVjIV
 x4XqtFXh4nhI2eM/PXhdN37R48OKB0DmrvdH819/2+9upNvO/bQrSm9zZXBoIEtv
 c2h5IChGcmVlQlNEKSA8amtvc2h5QGZyZWVic2Qub3JnPohXBBMRAgAXBQI8IuKv
 BQsHCgMEAxUDAgMWAgECF4AACgkQq7hu09k3mLaWwQCbBEeFWt8z4HlnAys0FYB8
 /U63eqkAnjKz2Lxj14N8QYtbtFThZRB5fq5cuQENBDwi3GIQBAC79Y5tcPi18bZd
 REXZmDOnLc0gHD9y6PHgR92BUCWQuafcxfQqqY2ESF/JQ0dFfBEkCAmYU2YkPZA5
 A7skmv9zHun/bXAP02hrvMU1Gt0ZHIzDV0EaO+uxY8eSKg4JuxZzpgzWCIxI/6uh
 ZhOuEF/uql7IDKMQcOfsvVrF8cZfNwAECwP/UvxNG/RUOlOHdRo3hY3H5l7zmaCi
 AwUU6Z+LxDn+fwERX7wL5rasafi1r7/9VvGADfelpxKR0kZM1eKYPtri1zS6Zm5a
 CC+QVyyoTcb+x0mWForq6FxLDf7+l/O0TuEG7VOH4RgLaT2N33yoScEvxdB/Qo4w
 KnT39F7lYjbzBvGIRgQYEQIABgUCPCLcYgAKCRCruG7T2TeYth30AKCzp2KXBqsa
 N6wOyM+tHQ4DKNMasgCglJCipoxpnnvCsGiZJv9AgNQFDGM=
 =a9D2
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.155. Wojciech A. Koszek <wkoszek@FreeBSD.org>

 pub   1024D/C9F25145 2006-02-15
       Key fingerprint = 6E56 C571 9D33 D23E 9A61  8E50 623C AD62 C9F2 5145
 uid                  Wojciech A. Koszek <dunstan@FreeBSD.czest.pl>
 uid                  Wojciech A. Koszek <wkoszek@FreeBSD.org>
 sub   4096g/3BBD20A5 2006-02-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =sg8v
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.156. Alex Kozlov <ak@FreeBSD.org>

 pub   2048R/0D1D29A0 2012-03-01 [expires: 2024-02-27]
       Key fingerprint = 7774 4FCF 6AC9 126B BD0E  DBF3 5EBF 4968 0D1D 29A0
 uid                  Alex Kozlov <ak@freebsd.org>
 sub   2048R/2DD82C65 2012-03-01 [expires: 2024-02-27]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE9PQzABCADlsyzEaEjFoIM3Z0ob7pYdIDXZD9T1p1+4o3AMTlS1Bq4WWJb9
 Y5er+hcpISDHVmn4FAnIJfstZa4x5jBpbs7D3NzF07yj+jrxJ85A1FEGrViS0YPI
 I2kannA53W9q+bSkj7PztFVnj3JR7HQR2yTCxWE0M9BTuXpmwJCMOD+GUJkB9/2M
 jCRmuZhB+0QD26BC20VDiLQcXN7Y3iQOkc/k4QUt0/bN8cTXghNnJEbWT7uFdPZv
 XPKmGfmNnfnI7cuK+Wc16OTe+24fn7y3CTnHm3tEai23ZbeT7qCkfsFG/5e5BRhQ
 XJNeMXbQ/Um3kHPD7LBkO8mPab/qsOXrkeO3ABEBAAG0HEFsZXggS296bG92IDxh
 a0BmcmVlYnNkLm9yZz6JAT4EEwECACgFAk9PQzACGwMFCRaOagAGCwkIBwMCBhUI
 AgkKCwQWAgMBAh4BAheAAAoJEF6/SWgNHSmgIzgIANNwch8RoaAW2rnpWVDGyLjP
 476zCfJVIA3DDEhM5dhAIlEyqe7jYh4kwWw7+Dk8yZQMEnZZ1Dst3qasiD+CviQc
 pQgKOy2kERvPkYyLES8GiS6RD178RSRzZIpnhaE9Fl/rdjfSOOdtNlNFdmUK4WLz
 GCxaJx+betmXKzImIIhkgGhisvhTg+P9saDRiVV5CwQNPJnlJXUUraaxXoNMosVx
 BZX24aQQByaRxY2CyA0IVGhnwhgd5dCh/TI37/h/CW9RBTahvxhQcgaC2pCgPvl/
 Pu6EdT2w5vAmWv4dF+QRBoEqZpdhUoOe70W4xh6oV3MhA+BwWMoPuZsYCLjfPbu5
 AQ0ET09DMAEIAOkzC6DXsskYWl4NRlFnakaf/My802Jkw42cNuCIrClkl2R/sJZD
 wMLq0JDPcffNJJD8CP3ivo0huh6m17Jw/Gg92iijmfoL1YPPx2ZO3HOv+li0JMy7
 yYOUYRNccUP3RqBpja1upldDLXharu9CN0H7VzIJxSwmQkqcRWvcw/PkM9brJ071
 ghyp99p26pT2II65O6pQOnBN2MSeWP4QY/EiqLn2ldOm+aeH1VfoiAKyiObrgJ8h
 tEJrFfkdKYa4+mEQze47lVJAywTeojLKumswHctp+UiF/+Msk6Sutnkj0i/a23h/
 pqYekr6fod0QkwJxdopfBHGLUyh7aHUwIi0AEQEAAYkBJAQYAQIADwUCT09DMAIb
 DAUJFo5qAAAKCRBev0loDR0poDDXB/ddOa8+TBg5aU0oVPQ+bDA60b7sRb0rmrn+
 hB1mXpdMtI0kHnJxUUI6Rx3tlfD2XE9P89oFyDxiOKjLFLAs6Rj9fCzp3EijARzu
 7EUl9+Guo9p4jAOiQ0e52XN+Qz+eYa3SLDj/A3Ql2hbp7jWKa8xtM32oyC5nAL1Z
 YRx+p9eVNT1UwwQkpiYG8VviSZZQBVoiG9h1mLzkzDj6EmEOaI78L/MjTJV4Gvcy
 tn0QaaYzTPIYUVbm269WNbuRaNbVdw3u0yhgV4OKaWjTpx6Ngv7EMJ8+SK74udGk
 nejHYo4sCxROs2Je3yo1hYgrVxj/8tNWj8Phl6nWoSssGpbdIOs=
 =iXGb
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.157. Steven Kreuzer <skreuzer@FreeBSD.org>

 pub   1024D/E0D6F907 2009-03-16 [expires: 2013-04-25]
       Key fingerprint = 8D8F 14D6 ED9F 6BD0 7756  7A46 66BA B4B6 E0D6 F907
 uid                  Steven Kreuzer <skreuzer@exit2shell.com>
 uid                  Steven Kreuzer <skreuzer@freebsd.org>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 97ttC8vSig==
 =hOc2
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.158. Gabor Ko:vesdan <gabor@FreeBSD.org>

 pub   1024D/2373A6B1 2006-12-05
       Key fingerprint = A42A 10D6 834B BEC0 26F0  29B1 902D D04F 2373 A6B1
 uid                  Gabor Kovesdan <gabor@FreeBSD.org>
 sub   2048g/92B0A104 2006-12-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEV1zhcRBAC4T9pbx3J+/0qY5k3IVGMGpI31SZHwtO0ijDBA3V0mIOUpty/E
 2AnAQ/7GZEvWtMd3pE5xwoicgSQbPcnsHG9kqG43vvr2DdByY9lavqoXPOXKeQnr
 U/Z5eYvOgT5Da6USxXI5obFdNsCwwKYt7Sbvfj6L+FVWSS8HW54f9xuqLwCgwCRv
 TxVBZJ4xERWsk3nJH4B/GKkD/20ddbTHSTBuBpulmoOUNBcrnIEYPRCDvF/e07yz
 sp3KJeMegdPEwBoy6bF9R8HkVgSEx/jdMSZNeMeAOpAKDlTUyTNJRgzVwqu+SgOj
 GT8IzhLNFaZ7wiKoA0yRhGb77C3IPzjSbcOI9A3vn9DkStWfDtjTIOxh7FxF9+H5
 c5z9A/9++LOF8L9VPHUNi4h/L/jE6CWSZgeTUIMkSwALrochNi9xIr+kS5pPxUPZ
 MHVdG0+gK3wNLD6KGpBnHB65wWbb85fukY9y4YgEv0+TjpPwkbwlAbKtt7cf7RA1
 mYtYStbOedPBAE8Y89cAcmQ4a4ViJFWfSTLJorAAy73pVns7ibQiR2Fib3IgS292
 ZXNkYW4gPGdhYm9yQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJFdc4XAhsDBgsJCAcD
 AgQVAggDBBYCAwECHgECF4AACgkQkC3QTyNzprFGOACfYLDfWSz4Ke3HN+suyrD4
 iwnZpycAni9084/VZ5iAadc6I1o81cGFX9GtuQINBEV1ziAQCADQBlmiWzgTaAem
 j1rFzVhEe3bSRg4qmcyiUyIbVWj8Ecc71c33fSHdgjHnAqKGjxKIkf7qoSziLWL7
 b2dxUiI/M7OUTi2Tdy3nJa/GJ+PK3CK4oM/oSMGOSUz7d3ZaKwZX4d/GmpCZ6U6w
 XFPymLOQtlDRTyz31QPCQXnI2CD2yswSdrHID/LuBDx+24vA2NyGy7WdUmSSchnE
 aw0fYTiHbjqI4xsTS6wkRJ4QRcHg8vyXc9Xd0/TKtaFBURWfHDC9RWNjisrhc6q1
 89o0QHBW+UqcYdWPUgTO38hr7k8U8LNJT0a7axsgwiwLr1oSS8z/RjdiFwuArM5M
 PQgkvMYLAAMFCACIMIO2gjtPL64mLy6If2TPBTqb+g+HaWWk4lxsUN3A7A5y9TXk
 w3Hx2jcig6P95jIKyiTJkV5ZqcUuwtEWK/nK6M4o8x7QQwLAfH6x/wfsb9Gays+K
 wT448Xhi05cOnIuKyFXXzaNRgGe/G+fxpxqEjmgP5y2NjB+KG/h4/Am25h9Ylm+P
 EYq8QMxwYS+3TpfCMmgnqTymegNZpbQ32nJYKnxn9j58sLqgp7BjekgAYi79z+Zx
 0HoeGPiehGLdymoj5aaiTCZfTB5CRMyn+dbvXUpl8hdAEG72q5D7JH8yicOANHUd
 NdMIcDxTJcHnDQeXdSrVWGTQmt4iuwfweKlmiEkEGBECAAkFAkV1ziACGwwACgkQ
 kC3QTyNzprFoGQCfZdGMd7cQFoCW1DBGMnNJ9AO5WmQAoIM4BtfriXvx3Tov88ES
 DHOhFMi+
 =jLzS
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.159. Ana Kukec <anchie@FreeBSD.org>

 pub   2048R/510D23BB 2010-04-18
       Key fingerprint = 0A9B 0ABB 0E1C B5A4 3408  398F 778A C3B4 510D 23BB
 uid                  Ana Kukec <anchie@FreeBSD.org>
 sub   2048R/699E4DDA 2010-04-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEvLStoBCACxnU/0ujcU5D0Ph4eGJhRfFSxoH/CBIH1AnaQyrsmzMCfdFav+
 IS9qdAHeNN1GugOKwvbP1TQQWQjGNiPMaUzWVE55PrLfQhTq3q2t6Q/9MUIXEKkX
 p3bruBe7eruQb4sN9Q113lLTZBTs8GsWI+iAqaeuT2eKhYuJlqI37Zp/36k87cTE
 sQg37HtSfkjLOCEbxH9q6JGCi0rwa4DqlPfwoPEyyMuTcwcRm4QhNKUvJ9jRFze9
 YYMXQIgBMX5L0j94mnq52HkXstv2rK0xURKANtXcqb0ciQUoXTRN0K0cYHPbNHWS
 PqZMhpTYd9d+SKYHuOGUJbsLhtaGzBLK9SQ3ABEBAAG0HkFuYSBLdWtlYyA8YW5j
 aGllQEZyZWVCU0Qub3JnPokBOAQTAQIAIgUCS8tK2gIbAwYLCQgHAwIGFQgCCQoL
 BBYCAwECHgECF4AACgkQd4rDtFENI7ub6gf9HsBwaT7CmPenZPPJk+/GXDiNWPW+
 Q7c6rAEA3072j+h/RDTnhKip9R6/4SankmrQSA0NCO1EiTzsgV/3cS0k4v0XKBrT
 10B1WrxI5Tx0osEYNP4GhPWkEO/6jCTF+8EsKyPujOvw9ps/OBgdYhD+gwv94SX5
 IymGWrBeyncmJDefcvA1UoL5XjhgGtv6qhmzPmN0+PamJlPd0X2W0fb/w9/od+5+
 o7olzxiy0kVaYXBizKVQ482x/oN3kXwzMmxkhN4zmoJpOzvjBOw4Ar5WiYldgL8x
 ZggWcR0NLVejeyi5VBPxsPh3vfvfvvjhxfHuS/bLGyBa/tO0bKxTpbD9frkBDQRL
 y0raAQgAsOEgWecCnr55Ny/V3LI+apr6wq5Rt37E+szExLEzGPQCeSE2BKWDNHGv
 KWYuTow6dZtCySg7GXW0fEV+QEvWvDa3y/zGjZOSVwcm7pk3Vm3Pnuv9a52wG6gm
 +a0M/68T121UK37+u5u25OHZaMaGl2poaeD/D+jzzvYvEDk6C84FNDmLXZjMtiuS
 NmLsc+kZodFbsrUjdFZXykFKP4a4D8Gq4nPLvDjRB5ZNKFjy1HQxpOJAkZpK0wgz
 t1AymA+9oom984jiPlV3DSrxrJoAndQeHoKDz2dhdZ9E1CC0Al5aAhVn94nfdwee
 GEL8N1KTtQLBmP4QXFtOAupBiqq0IQARAQABiQEfBBgBAgAJBQJLy0raAhsMAAoJ
 EHeKw7RRDSO7B1gH/3I75IrWb9AAEQRYIoGJW4/vPB2CQ0juG2XX657wzgDzL8uD
 E8Lb4zQJa1RtSj8Ma/Qx+cL7BNWypZAUIrXrhZiVdAjvnQ87CyW2bjZ1w4zsv1Qm
 mbKT6TmfMuGQLUjnoOwdRh77TfyLirKsXx1535UY6gH3YFAiZaf5H4yosC49tizF
 l5WNOv4DmHSJ5npLItAORSrBDeJWk2wLjp7N+7Hy9lbyMegAwYMQSrQTwNRGok0K
 ufjKvZwbUTmo/MYaLncTWpWl/ZFL21s90vBM36q0RiPDVCkZvqrdwyqb56Fr4KUH
 yl7TOEgJibW2V19o1SPGrF7QFfC3nE7S407UmRc=
 =+R9q
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.160. Roman Kurakin <rik@FreeBSD.org>

 pub   1024D/C8550F4C 2005-12-16 [expires: 2008-12-15]
       Key fingerprint = 25BB 789A 6E07 E654 8E59  0FA9 42B1 937C C855 0F4C
 uid                  Roman Kurakin <rik@FreeBSD.org>
 sub   2048g/D15F2AB6 2005-12-16 [expires: 2008-12-15]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEOikikRBADU4oWe1rkbd6R8HeOR5I/Uw6gGk0zrBPNkyT9PAtNKFYgAOotZ
 fJbo1czDlN5cstvqBOUKbmeOwqkMi3/DT1N0VjGq6eocBCvBhHZ/PIyIonV18JGI
 /wYYQ2k0jAOpehd7QYYB6w06gi+siJ9UY6iEhVxrO8rF5Er7RYXICubDEwCgszsF
 U/rIMr+yw52uGDe4d1wyICkEAKI7uw05tkwQutLzjx1ZOCu1o8zLepZ1QMRDn8io
 EyMRY/pCvge7k1kjmm/6eZ3M39fPrvwcpfsRF/dlgEeQI9Pn0HDJWG7eU/zg0wrQ
 VkvELJ6qtJvlQRKMh51EfLkR00Fy0HsBWfc4U82GvBLU5fPL1FujMeVLJtZ0W3q+
 nHjUA/4z0JVp6vNCkPOr+BiJhdJsiAYkGUdqHR/mZcChcRD9jJVRO1JDQQSvP3o1
 GvFqqRU5VsvYXKVKlVoWQiKGu0Hf/ZIOnY8ek49nTsUTm1MDPIFqMl182uxr3s40
 DhBmKzhufDBkgtNdpC2SU0h5mwkF09Xo1goVMn5DTbQfRfNfF7QfUm9tYW4gS3Vy
 YWtpbiA8cmlrQEZyZWVCU0Qub3JnPohmBBMRAgAmBQJDopIpAhsDBQkFo5qABgsJ
 CAcDAgQVAggDBBYCAwECHgECF4AACgkQQrGTfMhVD0yS6gCfQyXa2JPiyfy0EFzQ
 HGwWrDPjzjsAn0IJZGfMUiTegcmtpu0lNv6nMUiEiEYEEBECAAYFAkOjJ6YACgkQ
 TclL2LcfYF1uNACgxXMrlmzdzmMwriLK+T4OKcffa/sAoOCL19v4pPw4R4KI3o7O
 MOacY9bIiEYEEBECAAYFAkOjvw0ACgkQryLc73jOEF8XvQCfWcxEwIwZ4eZld/Qf
 eB1hsxJeDxUAnA/ftOsZtbG4o299udw71y57GHMPiEYEEBECAAYFAkOj44IACgkQ
 hdRQRWtpGwOERQCdH2AVEiuQohXgOX2PdCIZYiufCEEAoJgGONTdR1U3cp1X4Hhc
 cuAX+Z1IiEYEEBECAAYFAkOj7gcACgkQXeTX/hlJ3IB1CgCfbgMdPkgLWLQ0HHKx
 rR1nB3hzAiIAnjOwE3TRytoNLPAAuECgudqkqpnRuQINBEOiklMQCACBiZ5wcv8t
 jUjCX2iZ7D5qQiWuJYPhMpBS4hV4mZXhM+pSjFctc9PFw+WHlaRFXn7zGYP404AS
 tvqmnZBInBdal+L7r9OhPj7vrQcYDHJTMDflHK/YhfBwMj8/r2jkV4Ja4ji9nazr
 Gbq1wJpP1jrsBuFU0Qy4HRZwSyKrFNGqAEsiZPxgMAY16fi3IuVbE78HlUq+0I6Z
 C90z5MbGFGSsZRbWJSxSCOqQ7YxqoaCqxxNeF6fIYQdL4hatuH287dqmru6ST6j0
 ApQF+mnmlwKnrLSzXw0Hbvfj8ZrGyAc9cLz2oCwVwvLsP+ohiNBDHc+FFXcBxIcy
 kZi1+6AxjhXfAAMFB/9abRCZ9AoTa+Hd6ajC77l/Ul4jlj+R+DKQ466kj+WYOdeO
 XQtF3e1g89cEX1S3lnjIZGS3uGZ9YehtxMwBXlOCIyyLhNxlRWS4YJeC2E1q1kZm
 +xs6IC47g1E5yVpm3qcUp6HKwO0SGLQiN3ECSZfBtNEcEScAFGq802lLLKnMRBfV
 DpwXP4jop+90NSKP4RKzgYdXXz3SAq3heKeuBOHl3biaTmvh/FSoZtcGSqWLPR85
 d+5GZVJRzrwGqrGN/3zRvd1PbTpeJ/pbT/saFtsVCmlPoUOpKeyDHGlPotQo67gu
 1cwcr8h0D+oYPMLlspZFuMXvLPxaNB8oRLyxVzUhiE8EGBECAA8FAkOiklMCGwwF
 CQWjmoAACgkQQrGTfMhVD0wzaQCglkceiB8ksT3+rwFRApwaWTO8ey0An3w0Diff
 8juSFfJ2ZBIPyPzTGgMu
 =0i68
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.161. Hideyuki KURASHINA <rushani@FreeBSD.org>

 pub  1024D/439ADC57 2002-03-22 Hideyuki KURASHINA <rushani@bl.mmtr.or.jp>
      Key fingerprint = A052 6F98 6146 6FE3 91E2  DA6B F2FA 2088 439A DC57
 uid                            Hideyuki KURASHINA <rushani@FreeBSD.org>
 uid                            Hideyuki KURASHINA <rushani@jp.FreeBSD.org>
 sub  1024g/64764D16 2002-03-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.1 (FreeBSD)

 mQGiBDybt48RBAC/KCE5CLVZsYvpmgrbum7JHgIgnX39EPMQmL9Y3LmYy6Iwh+OF
 iIjIqW6cDeCcxHoJBwbSUerC5ueriwZCh46gSnLVjnmBLlGFXyxYbSfFGetMVVSR
 6OpiQuITp4ZhVw/UoCGloNsIFKg6l4JMwqZmsrZPdl+zUU79RV9Zb4XhFwCgsRIo
 1mf9I3rNZ8f1Jv69nUR/lJkEAJB6fY1rtUNUwq+JXOnFGD0KnC8isQNyOeQ7Y1il
 HQ9mGVKuUC3Zh0FzvdsU7Ks2ss9ynxfbFXnyyAOqXwTzU9pMuW5oLOUmjqwEfAhV
 4S0xcnPcfGGJ671NNeqa8X4LQv6ECWai6O4CbA4aluRqhHNxT9dgEai8RN434LQE
 tGxcA/4mIlvVoM2c2DRjD4+/Oj+i80ZMpOgE1RkuQmXoZ/DwLD3EHbIBX4cNffOd
 FzxYrKCrXD50MehIw/IhFfHN/GdEN7NT87M3j/ydSYFluoiLv8FXO00mr8cDi3wF
 q+LGbniEhVcW6wpUz9zVFmdLAp3HQi1uRAHqYmdSs6gqjl/+pLQqSGlkZXl1a2kg
 S1VSQVNISU5BIDxydXNoYW5pQGJsLm1tdHIub3IuanA+iF8EExECAB8CGwMECwcD
 AgMVAgMDFgIBAh4BAheAAhkBBQI+L/K/AAoJEPL6IIhDmtxXgj8An1YuXcp0iurB
 ZYHiaYMzAb+lYhALAJsEAKTyeqO0plIvHBV49L5CErZo87QoSGlkZXl1a2kgS1VS
 QVNISU5BIDxydXNoYW5pQEZyZWVCU0Qub3JnPohcBBMRAgAcBQI+OM7uAhsDBAsH
 AwIDFQIDAxYCAQIeAQIXgAAKCRDy+iCIQ5rcVwyNAJ9Y5N6lIMXVy4sYCdgQvqDR
 xkUN0gCgrsbQwfTOBcy8Mw/UmGOE4/fwrNa0K0hpZGV5dWtpIEtVUkFTSElOQSA8
 cnVzaGFuaUBqcC5GcmVlQlNELm9yZz6IXAQTEQIAHAUCPjjO/wIbAwQLBwMCAxUC
 AwMWAgECHgECF4AACgkQ8vogiEOa3FerLwCfRPWW7lC/pAVdD2Jo+8rcWTKQ1xEA
 oIQ/on62k7YBO+buO+K472a/cW2MuQENBDybt6UQBAD/ZGmvwhzt9YWhF9q7mLOT
 iEMzL2AzBryLzzUphejgDlJN/TIoDtaJfMyNkO16FbUq/WLQbKYFKfDunqx+eVSi
 PsneeYw9nAdlcXVgHRjoL3vj5O7PIg4qqps2mnLKEOXLAH2PNTYY6+8T0NQicdht
 YIraowzLoKRdINuDQrCpEwADBgP9H4CwbNJtQAHwS9ATmfL6F2Bg9LWe1godSWkM
 N+nBxKvMqrajJWfxV09f9gzn0qmMZT9u2DwcADzRQLC3jkzgOD1f8UiAuCuDEE1a
 vg1iCuyiI6m+MMWCkOCj/69wIu1ilmWqkn8SeoEwN+hwqHa20ue7vBhXreQanJim
 sq38ZdCIRgQYEQIABgUCPJu3pQAKCRDy+iCIQ5rcVzT/AKCgYOyEMpIxXYVI5gYM
 CwQ3hkJ28gCePnTu3Ke6lPoQsMAo3TzKkUO9Wj0=
 =cXJQ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.162. Jun Kuriyama <kuriyama@FreeBSD.org>

 pub  1024D/FE3B59CD 1998-11-23 Jun Kuriyama <kuriyama@imgsrc.co.jp>
      Key fingerprint = 5219 55CE AC84 C296 3A3B  B076 EE3C 4DBB FE3B 59CD
 uid                            Jun Kuriyama <kuriyama@FreeBSD.org>
 uid                            Jun Kuriyama <kuriyama@jp.FreeBSD.org>
 sub  2048g/1CF20D27 1998-11-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDZZXiQRBACWc1PcCjIpTl6aCyOMVfz4jlRSKblwib2s07TBwbgR1zMhbPie
 O2K4ZJqTcG4EnbMLEyYMbYwvNdOfUIjMW3VI1PJhRwWthTcbUjubzTu8Zxw+sKME
 ansth0xZW7Ax29UWQcTPxs4SRsCPFO8t+aWwZOm6z0fb5l1vMmKNJuw1+wCg3ZZB
 qK93hQPaOObwglnAIrgNpScD/j0VCEeC8fTMk+ZIo+z0+bUGPGU5cq+4XVXABYLn
 wMfR6Wr5Ys/3VCx4Oyzzgp/HBzcE5HxJukJ2ur3m9IE+uFfY4+HEFiwL++Ke4TWU
 7rn4rKjJYhGJ6iqGFwuxwmHdjcBh/38X0kmrCxyPYpt6xO+sJBP+QOABw3PFlMkF
 PUY5A/9RGU4mm6K7cteNdbHDI8yFNorQs8W8fRb8yP8bw1T8qB5+/rQ5jxAfA5sr
 FCuZsKNFdph9z/I3eFYVW4P8+9gmI2FAAAocWheSyKttAFHx63JRyBqXq9xmHKST
 kuaoQVXeFycSULAPkV67j0/zDL2mis6bRpPopINGgjkia16u6LQjSnVuIEt1cml5
 YW1hIDxrdXJpeWFtYUBGcmVlQlNELm9yZz6IVwQTEQIAFwUCOmRRlgULBwoDBAMV
 AwIDFgIBAheAAAoJEO48Tbv+O1nN4+YAoKeQztEcbPBbbX7DZAHOsGZLrZ2NAJ9a
 WEoFGMT3keQDjtjUI9c8IMh/l7QmSnVuIEt1cml5YW1hIDxrdXJpeWFtYUBqcC5G
 cmVlQlNELm9yZz6IVwQTEQIAFwUCPE3sswULBwoDBAMVAwIDFgIBAheAAAoJEO48
 Tbv+O1nNMp4An22RFzdv9zdNLlcY9GLPFyUrniqiAJ9F9Rhic6qBaXynksNw51Do
 +cLWkbQkSnVuIEt1cml5YW1hIDxrdXJpeWFtYUBpbWdzcmMuY28uanA+iFcEExEC
 ABcFAjxN7RoFCwcKAwQDFQMCAxYCAQIXgAAKCRDuPE27/jtZzYFdAJ9BFckSo4/r
 SMe9UqbRMPK+8FUumwCfYH1pt4t6jFlulLk+9wYA9wISL3e5Ag0ENllesBAIAMSU
 hrKdEdKzQXHzkoE4Nzl3hb6dtDmjgYr+3X95wBkUvtrk2CeYG3RC1PNwd1sEFEWp
 IiSzOaQDzxZmtBGpMkQ1It+CW4sC5Cs2TQ59VHLFw7HWSYMNj+RchWuWkhwipnX5
 8wu6To12Mu2MnyLszX2QIUxrQme7UpKkJgCct60C1DZLoQuZmfEZEyXmSfJsizeq
 eeJuusZwOWDH0ixuFVK/5A2RwaWFMftdhh/Vw0EkxdQnMJ+7zJ/hbY64VR7uz8oI
 5smfjVe0yqXMACREUzXmqn+Dc6Pz6ESVTv2XwIy0UxqxiYk1J98Cf3ffi5+e/q1d
 rej2PzArpfzaygu88uMAAwUIAI/IiiQJupz9BaCws/K6j4Qs5iWRiSB7vaZfgCr9
 c6vx+mIXX1Pblity5TOn9qXMv7vUM/dgmWSBbkkrvfD++H4ybJjpcOZN+peeGd0G
 /UfiQFMarsj9MozAmhzI5L00JqLOf4u/XBv0rh5HOX6t+M9MfZYL3C7bn/LxmDif
 prT8jxoA2SC+lPGSzI+M+ay/mz8kDmGD7fCS+uAFo5T1kjU+ed2dhXnl16gRR8NO
 6yAdURIC+xs6P+7L8uOiZfuk0gzn5RC6CYrEKiGZf9VqTRA2vcirPNEZR44jYXS3
 nL7x9pIsHyCyxEvojut7iGWO6qbaW/c+MRjcA8jgp9OuFROIRgQYEQIABgUCNlle
 sAAKCRDuPE27/jtZzZksAKDbznARmDIIxZjHfAry2UJFBPQbvgCgl/ERQfF++Uvw
 hLaVfesP/NCIt5Y=
 =AoU9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.163. Rene Ladan <rene@FreeBSD.org>

 pub   1024D/E5642BFC 2008-11-03
       Key fingerprint = ADBC ECCD EB5F A6B4 549F  600D 8C9E 647A E564 2BFC
 uid                  Rene Ladan <rene@freebsd.org>
 sub   2048g/C54EA560 2008-11-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEkPa+MRBACUFlLWm3NomhEGr/Aj+rvLo6ayjrDP4Z7ihGTLMDFbhISurcAD
 8nW0MaFtBiUPxXFA1AC7L7In1cX8PFnQqgNcZiyZ4DOU6S8MndbUYwesM7oHs5zR
 KnvC5fZxY57cq9+L0r4qXdm6PvWr3Ca0T+E0QyWDn0AkYdLGYDafk5C/OwCg/zBe
 RExgeevWoBrieKK3F8dz/48D/jGNn4s+LPMtKNlaqYph0hyUmuZrQXXAmVTqfm0h
 9BBhby4qla9GqnYy0iiDqTCOzbckXQDBvXWFusmZx4AMnJTW/XQDHo9Kw9quWnjU
 YvMbgvqOIUu0mSS8gVLT4550dD1AUJucBzLUa6h5qi7EIh2c/nYwdimZ6Rv9DnV4
 lm64A/0cVk1m4mWC3jJzAS4tNtWbvhDbgWtqEiy1q/U116GtmnirZLJd8HE1nrVD
 VYCjhEHlA15GlLwN7zgnG9PBN4LXMWdccDwYAtsUAeZ5tTu4cU5k84ukxxOrzUAl
 d4p+UBef8QbpUkkEJm/0YWmim7+bTfH93FBGIXiG7x2UYVD93rQdUmVuZSBMYWRh
 biA8cmVuZUBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCSQ9r4wIbAwYLCQgHAwIEFQII
 AwQWAgMBAh4BAheAAAoJEIyeZHrlZCv8LboAoO4/qyTTRwaKzRA5xvt0H2eFh4tH
 AKDLMSXjX+HX7U4zomwrekN7sJBd7bkCDQRJD2vjEAgAmPMCmdnoQu+Q3Z0pCYcA
 YJr1NyAu3xlpD4+dYBimEp2bAknPDCmaoVrSh7e7Mh754give4Hzz56QZsksIuEm
 rROafrecpxoAdMtOm/qa2CjlCKWVId5wbQSuuz8TV54CmoyUtruvKfUPDbK74TZQ
 BX1PyjaZ0FMrFPg69qoNcku2Wjc0BJsNFQ8+TzMzTbL1GKcM7kHZc4Wa/nSqwhnI
 hf7mgvd5NQEZs/7I3DVWxrqzEHFPPMPKE6weJJ56NEAd5W9rs2/eezUjnzAXYwyf
 IYCyWWqYeOCa4a7zYu84H0KxVQvUStVUWpTFLaZOpXJvgJkKPPXbPDTh6PV26t3a
 QwADBgf+PArSxdwEsXZWy73mcE9DjlnI/bRX/XN2tsZppzUyi5mOXZG7H+ZJGAU8
 DZ1+8QgQAwhCGAAKWt4jHq785usSUUa453N9k5X9JURTeMLrYVK8EXA9URQqCQpK
 iw8Om6xYoUHJZbgvTArySyw9mLgxo+hqLdEQdkJmSPfDcBsBS6d4dvv/NJyJDEAd
 vm1EXZQ0fmj+qzhCXhr5GVDGYcF152EHHpLLgFVgrKyVeIA748pxq84hvS65ieDn
 s/YuebWVLbexzqUkEN5arNahxk2kY32ZehzrhaC4DYAcJVEalMHS7X8V5LLhOrd2
 hTusyDPzEjlQi69AjtnBZUkxgVmviYhJBBgRAgAJBQJJD2vjAhsMAAoJEIyeZHrl
 ZCv8MAgAniHMkbReHW4Rlsj0/8s3r7dUuz0iAKDlFOXqYtStrWXWn5y1IU+gTHLW
 Bw==
 =uP9y
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.164. Julien Laffaye <jlaffaye@FreeBSD.org>

 pub   2048R/6AEBE420 2011-06-06
       Key fingerprint = 031A B449 B383 5C3B B618  E2F4 BAD0 0F0E 6AEB E420
 uid                  Julien Laffaye <jlaffaye@FreeBSD.org>
 sub   2048R/538B8D5B 2011-06-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE3sxXABCADDNxQCO8nHrTUJMV3tTT4Q1m9Cx0ZVeo1f/qUF3IMO346VYbQ7
 4ghzG7cwW2Ey8uGJmMl25p6CLIMG8eFPJHvtwCFa2CB8abab/WsfELNUOuMFyW8c
 HrnZp7B3I5YnlcIhm8RlP4labHTcU8mkjd9tlabmvWcXIIMKZO6IxSk43h8Btnol
 AUW8eyHi9so5ohwnGT/0OYskYlPKpBUAIXIOmaXmg08bdix/EjWtWRaHVWxdMIQl
 ZMseByIlSTGCSdEooZOFELfaPWOWFFQ0wTi/fiepDWB9WG8VvZH+1wcxotlCOVnZ
 jcpYeK2scPg4BabHtd/r2UxDsxMClZkg8LG/ABEBAAG0JUp1bGllbiBMYWZmYXll
 IDxqbGFmZmF5ZUBGcmVlQlNELm9yZz6JATgEEwECACIFAk3sxXACGwMGCwkIBwMC
 BhUIAgkKCwQWAgMBAh4BAheAAAoJELrQDw5q6+QgIl4IAMEHNmSxHv8XxeGDNWwJ
 iw6RirQOcm4WPpWGtvChlvZ8uTuZgPlqdSBQEGu7bSWTTK6zplOVmK4DYpUL2Hl3
 /2/SursUjkKO2QUkny7m/fT9qlJP+PAbXiqVa2naI55QvOuXNNx4zSusP8q7abbR
 bCtYHDeFE/DPNLI8GD/0Hmd8NWrPvHIwhGsK2ZzTuoGUV8q7zqgjlu7JB2JwH9dI
 tdMrVM2OgFLt3Mrb5F1C5J26nut/UVSkHPC1eW7mg8HnvCUK41HA1tKhkbXD8uMP
 7D3zgsuU35GHA5p9ARlETIauiVNsDzNgxWwU57BJ5hvGsmycF4M5i2/IOx/V5p2g
 yr25AQ0ETezFcAEIAMI/+5rGOIwZwC8qGny1upk8z/XxCReW3liTVOe+f1CaPOIh
 nLTpyD7+Mxts64IDO2tYQWZTw98yayGP8xCRKjBkgjOIgX/SInoAc5YAUMWMOtl4
 3kGqR+RboQWKKq83VPNGRnwTXu3RMlonyt5T2RV86lgIbDSabaAUnLjWDpgP7POI
 /IrpKLSJp21TXHMGobpxeLcXqPApRdKgJL9bP3+jLqbKJmLzhgwzjxpIosAWqRkb
 PJdZejCfdC8mU1DpKCDUQRLVD0Sbh69jsSiepSh6BIn+lDpfRH1nLoGAhomG6kwC
 pG4hCXAB6V2EvF0EBQmDMmORlDJFejDpHEbXxlEAEQEAAYkBHgQYAQIACQUCTezF
 cAIbDAAKCRC60A8OauvkIN0qB/iBrnK5dmFQ4aGQesa+2myOCMgiszggnbzXDFA/
 eky/jkIQiAr2xUAwQZz3iPrwzSpopCcPXKHnN7gsfRBUZ7ns2JmJWmyU4gxadbFl
 kMvB+i24Cav9/ucE8r0wyJKcquI3PiS4qpUzDEdNG/k+B9/Z4oqKRCcxrjSrwnuy
 iNFiIUl3AQvTgHQBpZGl9DA9zdAM+iPbm7zFwQBCpFeysEOv4bCAfHFuRGJ4xKyq
 tM+aBqAYzEWQTj+WBz+zYBHOY8VOn42fwBRWeR8+Ml0BxebrNh/uJZOjJp/IBZbc
 39ZjPt8SvaBUTAfKGXPZ9O2NSNEExRAKFQ01NDQfN8xxH/Y=
 =QYhu
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.165. Clement Laforet <clement@FreeBSD.org>

 pub  1024D/0723BA1D 2003-12-13 Clement Laforet (FreeBSD committer address) <clement@FreeBSD.org>
      Key fingerprint = 3638 4B14 8463 A67B DC7E  641C B118 5F8F 0723 BA1D
 uid                            Clement Laforet <sheepkiller@cultdeadsheep.org>
 uid                            Clement Laforet <clement.laforet@cotds.org>
 sub  2048g/23D57658 2003-12-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD/bH3wRBADoVem06r8ivhxQhCOEH06GAg5J6iqqlKIo5BmOiQ8IHo8JzA9z
 TwFNbhUCMWzUusH56nNHKOTuFV7wHiR8nvK0y2yU5qTK3MHbfSeMVy4rFAKgyZae
 Wf1lxRHU+W/EksFaC31ljkF01TGHVMtpKPzDSttgrrMtgstT7QKWTKcggwCg8bVn
 g7MH9udGaSNY5hO3l9wIcusEAMD+erpSZgVfwojT/pliCwnvKRwNByhIWqz2y3Ly
 M2+VR/IjFlpOvT4Ytrn2VC4V1duahdowNQh5x0vUPagRRYKx67OEbIcisKsGQTnT
 m4FSRUfULKZ3M016uSsYNbuopctjrxHE1YJfskHmLnIHjnXhJjfmouQqOX8nQSh0
 ryjCBADTi6z4ZvH3CF/C1egPsmYzJ14H2t51JUSHwEWWaj3LkILEGvHsywCIT7Xd
 R34B0hPIn/ihsJF4XBEiqJlZmFhfFUmSR3/No4TYKOtMAzfo6GtMv8q19U/LQaVY
 1wYY0rWCqfzwcH9vSLlpHL9afqNBnVK3XiBGMCmXZw+4klu+f7QvQ2xlbWVudCBM
 YWZvcmV0IDxzaGVlcGtpbGxlckBjdWx0ZGVhZHNoZWVwLm9yZz6IXgQTEQIAHgIb
 AwIeAQIXgAUCP9sirQYLCQgHAwIDFQIDAxYCAQAKCRCxGF+PByO6HcPlAJ9gLehC
 AhRMepAZrGdPsPFoMB283gCbB6y04aeQlXaa9+xAm6C0ciAiXj+0K0NsZW1lbnQg
 TGFmb3JldCA8Y2xlbWVudC5sYWZvcmV0QGNvdGRzLm9yZz6IXgQTEQIAHgIbAwIe
 AQIXgAUCP9siqgYLCQgHAwIDFQIDAxYCAQAKCRCxGF+PByO6HT+eAKCBj8MXtxmq
 l0PuLGLnR04gnauqPACg8Rtgb2XwCrgcZFcjS1Fl7/SmTE20QUNsZW1lbnQgTGFm
 b3JldCAoRnJlZUJTRCBjb21taXR0ZXIgYWRkcmVzcykgPGNsZW1lbnRARnJlZUJT
 RC5vcmc+iF4EExECAB4FAj/gQ+4CGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ
 sRhfjwcjuh2wLwCfZ0Sqh6DY5U2ZDj+JrdqX1qzEaGMAn30UALtH14r1jMPPq6xn
 UuMfFjyLuQINBD/bH4QQCACbO8LantesOQKcxZS6WPSLhIoZerdMJ/b4DCd22GGu
 IM4eoWiYPX73cTMbN9cTEObaA0hvXEdn8vWl9/RBV6aL/fYhAqTVGWhXu6MBJiAv
 0zFeliJl2+7MqzZjjr8GSFkhM3tXEzFr+7r7/Bqnp8hdzMFUS2dLcL+ZTXJuq9s+
 xUNnwt0+Qy13VQU9whTZNZy3PHHa3XRc5IbZ5FnqMM3D7twlt0sS6j253b3CXw31
 qEREoLutw25X8pbQeYJW8st0xIEY9z0MikBOJvKPAUani5+eWjuJC0FlXYM4qSnz
 zhBpDbQBuhQu5JgPPiXlBq+ta/prm6FyJjcK+EyJsMGnAAMFB/9DIGugG/5F+4XC
 dTvFluD8zbP6zwqWRuHX9JmA+oso6ruDHiZ+Ckdz0xBfD8yoyENIRnLmBxx11uZN
 upAlM2itsvAwHMm6zKGLwlN+74vhoCTzvDFtnyTSgC8as4kk4XCax2QMAueFpW+2
 8/SSLqIK2UWT8/5SkP0QaN5qSFgRwhGxYgyVP8pflrjL32u+fEwo8EjNnOUHX4WY
 uzdzq1t+0K2AnZH5TiUCPy9iLP8o3rBm89Qdh45wzqN9DOGePoc0v4opQK9+3TRa
 vYAx6izrRajiGgUHLcYeL2nQxyi3LBkKvbp4Bw/dpxGTdmPhtyU8jYqdP5SQbrFJ
 4DwXqs4biEkEGBECAAkFAj/bH4QCGwwACgkQsRhfjwcjuh3mfgCguHMdGD3Orm8e
 pAU+aCOCPVkkx7AAn2yhe79FYbHDx5Dx2LAfRRRyfxjR
 =lVoL
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.166. Max Laier <mlaier@FreeBSD.org>

 pub   1024D/3EB6046D 2004-02-09
       Key fingerprint = 917E 7F25 E90F 77A4 F746  2E8D 5F2C 84A1 3EB6 046D
 uid                  Max Laier <max@love2party.net>
 uid                  Max Laier <max.laier@ira.uka.de>
 uid                  Max Laier <mlaier@freebsd.org>
 uid                  Max Laier <max.laier@tm.uka.de>
 sub   4096g/EDD08B9B 2005-06-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 01jfP2YAn3DLpgqbfVb0MZfxffpFg3K6fWkX
 =jGQA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.167. Erwin Lansing <erwin@FreeBSD.org>

 pub   1024D/15256990 1998-07-03
       Key fingerprint = FB58 9797 299A F18E 2D3E  73D6 AB2F 5A5B 1525 6990
 uid                  Erwin Lansing <erwin@lansing.dk>
 uid                  Erwin Lansing <erwin@FreeBSD.org>
 uid                  Erwin Lansing <erwin@droso.dk>
 uid                  Erwin Lansing <erwin@droso.org>
 uid                  Erwin Lansing <erwin@aauug.dk>
 sub   2048g/7C64013D 1998-07-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v2.0.17 (FreeBSD)

 mQGiBDWcyFoRBADed0r7ei/q5DX2f1sKLuIaf71LNIUjHPV0npYNsZxodS800pTY
 gqTJuqe1DfJKU+nw7FAKQN1myJPNj2aIsvm2sg80xV1uoJmWTloQulRGQ6C7C+Q1
 xB20JUL7GIczUM5hDRajr44vCJcFSs7EVVHBXRWi2UVm1cja/R3knkevDQCg/2yz
 IUJmOHN2ccJVuHttouGEukUD/Au69uLjcdPgMrv5vLwAg1Vg2uf/Qj3RbHiDgi0O
 RWgG5urvRM/m1T7QjB6UKpF+oYACkmfwEZbMzlRJe1jtr7qRwOpAMW99n8fc1Jx6
 YfdVtl0TxhnZBhI7/Wx+1DW7zi1CwbzBXFh1O8zdwPUn7g2G09NWDGEkDGb5Gz5e
 pXrBBACipRm91E9z7AQD52ygXzcTsqN/S5vDFtLJ4zJQCRRQ+LLt01vVmbkg8yhe
 sQVqUMjp/HGFI+CmPZpp4Oc1Y5ixlat5CsnIWxzjy2YU9mqBAx3jocf1+HuYQq/9
 XoENs+ySHBkdNQFU6thEqJAOYD5lmIt84OByaOHrbc7d1yOcBrQgRXJ3aW4gTGFu
 c2luZyA8ZXJ3aW5AbGFuc2luZy5kaz6IZgQQEQIAHgIZAQUCQmvBoQYLCQgHAwID
 FQIDAxYCAQIeAQIXgAASB2VHUEcAAQEJEKsvWlsVJWmQvgsAn1UuHLp4NqY/YJsQ
 0edVcH/e9eHUAJ9+AGa+PFqV6BsuKxbWL8Mea/8l2IhGBBARAgAGBQI8UYMvAAoJ
 EA8SlUXOHPkKaiIAnAgslxPgz1agFB0iOXuICG7J56+CAJ9jyAUte/fimzHkBK8V
 nH7AC4BeBohGBBARAgAGBQI8xpO8AAoJEDx7h1Mest5m3vkAnjsKf/RN/Ef+Tf/k
 i+GRf693IhqhAJ4isfzDR83AgfkRNzxVgUyUNcLNZ4hGBBARAgAGBQI+L7keAAoJ
 EIWAWf86Zh+dOyMAoLqqTf4BvLqAaOPCcUVXMZZBeZi/AKDcnlvMm9Nzxn7lrtqC
 oT1Xsc8mb4hGBBARAgAGBQJCZhOKAAoJEL/kOH5U4nj4JLIAoKIwzq9qTZeOdH8Z
 2eqYJ5XQX1OfAJ9yah6RM4UI9e4kEwaaPvSW2YjsC4hGBBARAgAGBQJCc7HTAAoJ
 EKibO5Jib/8x3s8An33V3XRLVMxIfuJyTUwDU3nRhzo5AJ4x7v+PJfpFlpSbT4i2
 zLB3bil8QIhGBBARAgAGBQJDhyD7AAoJEO0Yto0WGUVTKPwAoJYtrPmYXr95R0cx
 yLqeCbGhMy0MAJ41Anrfc1RYZTY1kbgm1kCrjBvXbohGBBARAgAGBQJDi3+YAAoJ
 ECHFCRYOSnh1sMgAoKU/t3OCHUd/ES11+Y46u2rlfHjNAJ94fXCmRfgXIXKiaE12
 0Tf1G+WbHYhGBBARAgAGBQJECbj5AAoJEKph7ok6g98yTF0An14SS1+9hYbKdKfe
 fZEQLoI/1sauAJwKvj3L7tUqL2/3/CIxYpBtZxoN4IhGBBARAgAGBQJEebYLAAoJ
 ECGmRpvR77qm2GgAoInx2YAyZkttMBMgZ5aJq++a8mK8AKCbvxkTEjaAJVajH/Yn
 tvCN/uhUYYhGBBARAgAGBQJFTMMKAAoJEFr0HlHjM6ocWYcAnRsN0j0xtS03LiL6
 /ZtG0+h/s1gzAJ9gKqpLLCnIMBWDvhcz61hLZ/8814hGBBARAgAGBQJFTP/pAAoJ
 EFzlxRuH4Fe+Ng8AoNT4xmSPiVUDMtD6quhgEpimpgxjAJ0a4tc1IsGRiK4c9UA+
 fOasEOMtjIhGBBARAgAGBQJFTQDRAAoJEC0/fAt65FQ2HcwAoKTbCJmjG9JeIkao
 kttLyJbPK4XxAJ9+JA6DywscMGyaxZ+Q6JLtODhZBIhGBBARAgAGBQJFTQWlAAoJ
 EB6o5aqXJfY7h1IAoI0gSOEBPbDmwyTePFKHdBlG+v74AKCOBSaBolytGq5Fgpt5
 0qgLpY/UrIhGBBARAgAGBQJFTuj4AAoJEBdynXf0qFEvV9AAmwZ1Qyk8rDG2FznR
 i+nniv5ZyuryAJ9q9gptydskfF7ww8LnRaMmabXIi4hGBBARAgAGBQJFTyzBAAoJ
 EG5p+N2Sw4F+PdMAoJlXxM5mz84/P1UMpFNjp9MTvpi2AJ42IvXzlg1E7wbYvhyM
 L4zvuXeLe4hGBBARAgAGBQJFVxl3AAoJEBypWmNWsMoILeMAoI+grGdn8kWCMXCM
 5LFWz/o7iFh9AJsGLUCaRyKdm3zwj6adLv74OKQ4mohGBBARAgAGBQJFWEIDAAoJ
 EIA8WjSEyDRzspQAn3vnY9LgFrIV85ZagFTMdtZ8Unh7AJsGP6o4eWHFnfFftaQp
 zqrpWr58gIhGBBARAgAGBQJFmyHJAAoJEF2Oi+nyOBrUy8QAn3IuRMbZw7FUBH01
 hQo58QaeMi41AJ9KDP84YpEModaU/JlEnUhG8lJgc4hGBBARAgAGBQJGEZyyAAoJ
 EOpMZh8rRqJ83TQAoIXILHc9xKwZ0J2U8ro9D69HR+9oAKCp+/nsjTCLCUToCSHj
 PB1KotThkohGBBIRAgAGBQI9TuvRAAoJEO6eLCSHzT29quYAnihhAfqTX9dotFSx
 IgmocxOphbraAKC3CIUZtiWw2TukK2MhHcsDyh8MmohGBBIRAgAGBQJFTP8lAAoJ
 EF8DMJySFff3aKEAn0T2NBzZ11UPxLSBcBqQ22afMQ+iAJ99CN25E9GIAJxEmTm9
 ooBZ7dbYTYhGBBMRAgAGBQI+baDeAAoJEFPCDI4dQfvVbGoAoMm2lJYVPhweKl9s
 OJNJbyUfYv7yAKDwUDg1yCvW8Vsd2AHHTf0MvkDgn4hGBBMRAgAGBQI/OhVvAAoJ
 EKmGKcxs/75nxQMAnRmdkFAUaqH9thslWxufDLXeE9ZBAJ0Uk9j2U03K9m0iqNpm
 D4gNxSiH6ohGBBMRAgAGBQJBGkL3AAoJECKr8Oz5Vhwx3tsAn2J6i8g76WtfG1ML
 iWK54zC+GFRJAJ40DWi8Y4zgVp0Z8Hv9WE49ItTSkohGBBMRAgAGBQJBhK4xAAoJ
 EIwyjP8WBtuVJPAAoJ7pI3TdVOxgRCXLr+T5Rxw0UK32AJ9Oe6NGjmFxaOB7emvF
 +cFduYZeoIhGBBMRAgAGBQJBhK5WAAoJEBXWiATKbN+y+xYAn2A6vlzWuNjIjJb3
 JVOT0i7flzEsAJ9s8bWfxyRtE1FkKzpCFhSfgZCqz4hGBBMRAgAGBQJBhMApAAoJ
 EEAtRumutCblYSoAoOsMaYx0LZ5kC3QnyxETPpRK+zSmAKCluPDKIsIVk3G93y4u
 N9I+8S1gWIhGBBMRAgAGBQJBhMEtAAoJEKkX6cyZbhReus8An1Q4f1XO7GU++Vc2
 /ryCmOBS9bkdAJ9ZQSoGc4R80qwFz5+woJEpr/ihyIhGBBMRAgAGBQJBhMLSAAoJ
 ECLKWEx6e6PA8HAAoJrUVfUbWrP30iB/lGetgtOTxkMZAKDJ2tDHtVBVw4x/7iNW
 TzdjlBPHsIhGBBMRAgAGBQJBhNdqAAoJEBRll9zcw5nH6P0An1mf7Z7C8AVJTvBb
 VJB5Yp1OsP8ZAKDQ5HDkkjabvy8xsb7FvlIjZsWEC4hGBBMRAgAGBQJBhNeSAAoJ
 EIfaXA0nNZpRLgAAoMjgn//uusB8P0wNMs7brzTaeGRfAJ9lyLPr/DEW5lkwlerp
 w/T0iS4FSYhGBBMRAgAGBQJBhWGAAAoJEHsKUhIPVfa+w3UAoIiu+zwZpXmm7Dpo
 uYJJ09F2TsQtAJ9hVRz0E9hilXOpSGQ/hUghkxvlZYhGBBMRAgAGBQJBhXq1AAoJ
 EJ7XWD/BTrKCsiYAnjPis5MddBAIT0iGofwI0mh4wugtAKDE4emmiI/uixA5fz4C
 7YjPlulvx4hGBBMRAgAGBQJBhgOWAAoJEHPeaYzHFAWiAlMAoJz7PB17Ukd5LXBG
 g16SX1jK27uNAJ44oKXWPY87J+Ziy978rJJ1NXdbx4hGBBMRAgAGBQJBhvDdAAoJ
 EGx2F4yg7ZgtFnYAoMQTj6VjE4mE3m5+JxqJLW4+oe8rAKCUf2+oyx6yoeiJJe8j
 AkQCFkQMYohGBBMRAgAGBQJBh3PoAAoJEHwiw5+AesU6GkwAn24dd+v0NJfAh5EB
 cfzbg0qAP4/sAJwLPO/9jd/hi8zhrOl43qwK+mdL1ohGBBMRAgAGBQJDjHZGAAoJ
 EI1JTTTHDr1Q2zcAoLqYGgT4umKQ1wSQa/FWzni+7ksyAKCM4sKQtZaoOkFkyOD8
 CUL5hs9AmohGBBMRAgAGBQJFTPZPAAoJEFxsTMBaeYkwmd0AnjZsYScBlito/5pQ
 JNUki1CmkWHrAJ4gbNVKd3QKkW69DoBF8vyRk5GH1ohzBBARAgAzBQJCc7ViBYMB
 4TOAJhpodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgucGhwP2lkPTEwAAoJENK7
 DQFl0P1Y1QIAoIa/DUGi5XV47DZvZgKM5YqjN05eAJ9opLmH7ElqmhTnBduHF1ex
 co6wfoicBBMBAgAGBQJBjJAoAAoJEB9/qQgDWPy9aSAD/jF8lgcfbFlfv37WaoVF
 B6bFqf93yRA/w4ma/h4DxQzWu0Y7RQTl3XFSyju93GTiPWE2a8iGg8piCW0oRD12
 iuqYdqx4CXG//hh54DVP5MlDcjfo1MrAHjBqzI7iv16fyjeyh0y++xPEcyd45FmH
 iEPpoMdWpI+vIfxod59T/bPxiQIcBBABAgAGBQJFPHU5AAoJECZJ5ijF000FF7kQ
 AKHElmywtSc7P6tm7jEMi5mzC6Ao5yKHfTW5lX8k5+jM+X4qeoZcRJtmQo89IvjQ
 hKUqyAZHeioM9T6e4s4bKYCs/WHRI47FSDU1r/tWbqP7k9VoA8akbNtNe7V7dB2T
 UaOGgcUNeKJ83kuYj+qCwewi68Mx73mI1iWgYU/EKf0lkGHaqm9Pz3JWFBm8MbN9
 vQHOQBdLGLc8+hp40GXvE75alLwW/qeoKuJB+CEJMQ/8IZQjDEpTxkmF5uFDEg2d
 d+PW5KenEaaGcuwEmCH/bVFqH+GOAeomapJoj5dr497T0ZD/0K44uunCKPZ8qFpg
 EbEU14Dbj58RpnIkPQKU2dWSsBj8NsL8bPJKfkEvw5so2YOC6V4QTbC2hb8zFBLg
 gD03C/+NAVJJyqknkvj+Kpats1hE8vRr9weecnoB/KEHhSEDgNrlOe7Vw/f+x7EG
 9htC0cBsNMyGZCnLkSm+NSsrpo4gXKyYyoMrSu0mA/7/DXiL7E0c0n3EjhicxfCM
 p4cVLG4vKyV7MlWTX5ESMBBYvYin6f+/NyxtGnG/KR7xmaHR1KsO/ZEwZsxvDdRW
 eFpbQ5lFEWVPjDb3e5gTmI69oVh1J9Yp5ZheQEngL8aXuaE0wly/2un9aq6YK7kd
 1VdDenZTQtUqIYxIVvD7YwzjvHL6s3R2tj24QZx7rA2aiQIgBBABAgAKBQJFTOhS
 AwUBPAAKCRC8mW9Nv7Asb6/tEAC1bti3WV7yEPOaaqL1Hm/l+UCW5fW4wt7fNHZ/
 B21wS2Jy8B7qPJn+3/k1J7Ir9wwJ0Tc4fkMqzPPu+c4JQzfP4NCX2P9VR+dqQp3s
 EEwErU9RsAVeT9XnesV0jm1MUfZ0LMB6I9jC3YnR8XrBuL1wd2aooNoN4JENxcUY
 wiycVxtKfnTtQObQ0ujB56bPMIpPNpFWuRtJPlk4P7ZNjygJll8HbkrCgAxunYKP
 OdN4MWPpY1/RD0f2t5u6BXtxpDGNF5XYfWxExAWwkB7UZPHUreqKJP3xqB4e2iQu
 7t5gxawH8jCWO9sOrk4dF1vpmpW3pMPfaAbvTCIuKVkheDW57lkZvq7iqmrL1H9t
 Am7Q1FW6hzLFImeudFrMbG0Gocqtblfz1fADUO23tsYVgflVuX1WnGWkC5F8YLSQ
 ILCLGEJfySyIaAyAxONWZyXoW8u7lZdpHQh0nVLEZmGMwPcLiYwjKkQIrnghA5as
 r1PhuRQMx0tL6kjH+zLrZ01kwZwG/Pr+8znCSFlX2QQIX4K5q0bLwLSPmj4wW6Ic
 YFmnGZITaa1BhzJf6Y9W1l7RTvP8lDUhvQ4bdo8iN+h+0MtYs1JDTNvEDsXdgZ0q
 hfl17NqfsSp508JUeNOFE613783SuP9WbXNHjbpUwT4V9e9f3cYcnxXPRvidquVH
 r9lCX4hGBBARAgAGBQJKBOp6AAoJENNiMpHtCnVNiZ8An1qcOd9FypJTfsvXzsxX
 BFmiJ5OnAJ0c0BuZqTsic3sN6Or0K6vbI2/4RohGBBMRAgAGBQJKBOfkAAoJED7V
 cfToBI0IZh8AnjTb0kHLbHDmg0Nj1S1TzEgTOFzBAKDYbd0MOgI1DUGT0aSZ0XiL
 f3dG/7QhRXJ3aW4gTGFuc2luZyA8ZXJ3aW5ARnJlZUJTRC5vcmc+iF4EExECAB4C
 GwMCHgECF4AFAkJrwaUGCwkIBwMCAxUCAwMWAgEACgkQqy9aWxUlaZD7IACfWJcX
 xI8MRgKNZQDV3nhQbOptJYIAnjwNihKt6BZHYA8vtTl/SSS51EdyiEUEExECAAYF
 AkGHc+oACgkQfCLDn4B6xTquxwCXcmrC4clMSBhS2MJB85vUo6vNjgCfXxSwxeDI
 mBJ1f/e6XmCKQP9dkL2IRgQQEQIABgUCQmYTrAAKCRC/5Dh+VOJ4+POJAKC8+bQL
 VYF3ixAtxo3yN1Oihz+sJgCfaaGoWeTQmV46/t2K4G6Zo4OTPmuIRgQQEQIABgUC
 QnOx1gAKCRComzuSYm//MUyFAJ4vC5bJE+eq+BPdxFFK4NNdnWaXTwCfRi/8TTb5
 UNr2LnNzvG3752Bc0zOIRgQQEQIABgUCQ4chCQAKCRDtGLaNFhlFU8dmAJ9+G11T
 VpFLQkNOxVtIvpwIIitf1gCgiCHfjd2E6KOtBTXY0pqoNQDfRrqIRgQQEQIABgUC
 Q4t/nAAKCRAhxQkWDkp4dRGsAJ4gqCus/gYAo9zh4tBm4n6h+lTiYgCeO9nizQH1
 1GZLENyu9f/k39jvRS6IRgQQEQIABgUCQ4xX+QAKCRChx9zBNLckX1b8AJ9ZSpf1
 t0LZY98OPnD1JArhMDwmSgCfRbsuOtkT1B1CNuyLzzLqf/QnZI6IRgQQEQIABgUC
 RAm4/AAKCRCqYe6JOoPfMnMAAKCCa/yYfHywJg+fopBFWkNrncY5uwCfesDZsGNA
 fsPl8fagEWQ3Mrjkal2IRgQQEQIABgUCRHm2DwAKCRAhpkab0e+6pj7lAKDdln2c
 rHdWacx1BKCZKytzADaHHgCfYDZ4LF4CNNnir1piH1GL/MdByJKIRgQQEQIABgUC
 RUzDHAAKCRBa9B5R4zOqHEImAJ96Sqdl3j0ihN+PxLEV3HRlgYsq6gCePpjamgJ9
 HClrsqlNJ34Gy9PHwSuIRgQQEQIABgUCRUz/6QAKCRBc5cUbh+BXvky7AJ4mn+NM
 LmkvqhGFymAbxWkQ2kOU0wCeJ5HJ6NMGo/AYyYTdqmEB+lgSxoeIRgQQEQIABgUC
 RU0A1AAKCRAtP3wLeuRUNlQtAKCKM2nFOd06b3HK4bO/80uTDPRe0QCdGfIkL7oj
 uE8ZE0qeJUqh/ES25qaIRgQQEQIABgUCRU0FpQAKCRAeqOWqlyX2Ow20AKCoQm/H
 QPnMZAifuPvo9Gv2ktsa6gCgheyFyuF9nq3f+4tBsBH7xCAzhS6IRgQQEQIABgUC
 RU7pDgAKCRAXcp139KhRL0kcAKCWVeaRTVHVCwuKuOJB/Ba0GvJIcgCfWRabGJDD
 uvSu+0tKdfs5+4fyypmIRgQQEQIABgUCRU8sxgAKCRBuafjdksOBfvpmAKCm+7Yk
 plCZbDHdTf1Z6EhCr3Fp2QCfYysaRjdZROogYDr3mkFGXTMYRWCIRgQQEQIABgUC
 RVcZhAAKCRAcqVpjVrDKCLhoAJ9E8FTNvjTrCRPvd8xMcDlnCdiluQCfV/zI3S+W
 8VvSpQqKv+fvvGBJITGIRgQQEQIABgUCRVhCIAAKCRCAPFo0hMg0c9mVAJ4/EDgB
 ZxbVC+kjCgvR5vTacOcD0ACgiWCNc7f9dIUBTMsBaRPPvsT3GzSIRgQQEQIABgUC
 RZshzgAKCRBdjovp8jga1DxlAKCE8W5krvKsZ0rWAjxpoNCqeCF8uQCgrNW7k0nO
 ejL5DE7qSimaClWRo92IRgQQEQIABgUCRhGcsgAKCRDqTGYfK0aifFI2AJ4kOqbs
 qAY/pA2YF61Jwol+NGNd/ACfeRkAKSKb25jDT5vVV2/ZTeZdTnyIRgQSEQIABgUC
 RUz/JQAKCRBfAzCckhX390zzAJ9xQsSuaXU9Ytr1MO8PPGqHUKiyNwCfZ3xbBZ26
 1YUQYIx1bQcSm1p0LZ2IRgQTEQIABgUCPzoVbAAKCRCphinMbP++Z6puAJ4xxCBZ
 deVsfPO/YLMJ0dWpC3KSxQCgndS6aBgHFMlj4ivMy2BxldruGKCIRgQTEQIABgUC
 P5MGIQAKCRAPEpVFzhz5Cs5yAJ9NheSl2a+IQ1qtO1vM72uvbf95SACfUzkvScIu
 z6SaY17LlcA8sk5bBzyIRgQTEQIABgUCQRpDAQAKCRAiq/Ds+VYcMcSaAJ4mnAy7
 FM4fbla2+yh5ThWjHTPzpACeOY1Vps29YSBQeHti9+/rcXCNvGOIRgQTEQIABgUC
 QYSuLQAKCRCMMoz/FgbblZIiAKCF456ixQdPjFXHHO7uZtB8bz4h5QCfbbuzu5jD
 Summ6SwRURXKBdcWGnKIRgQTEQIABgUCQYSuSgAKCRAV1ogEymzfskUMAKCNV74A
 N8z0uqXSTMpqMSWQxVck7QCeMrvrCN6tbyJB1sNmWalEl1pFcTuIRgQTEQIABgUC
 QYTAJQAKCRBALUbprrQm5cL9AKDi5jzRfjzzoJQzj/7UDYBok3OQVwCaAymfwREY
 rtlwJhKtanl1OU7aN9uIRgQTEQIABgUCQYTBNgAKCRCpF+nMmW4UXns8AJ4+GS+s
 2RdFhPTtfNYDYSr7SDUUBACeLVpsXNB4qorsKWltJS0XGHW0XN2IRgQTEQIABgUC
 QYTC2AAKCRAiylhMenujwL3hAKDEGTwcQiwNK4V4vQObBUdDHCyUtgCglynQ4JaD
 Vat2s94LuVudumDtxNaIRgQTEQIABgUCQYTXcwAKCRAUZZfc3MOZx1n8AKCuX8HI
 Cw2ciL7SG0kPTjKc5QrE+gCfV/z6zla/QvfK/vXE1XC0I8JP6fiIRgQTEQIABgUC
 QYTXkAAKCRCH2lwNJzWaUZHEAJ9uXo90HI7ujyA4Bze8OGYIB3rnewCfVvRyMlc6
 E5MunTF5DXgtpH61xMGIRgQTEQIABgUCQYVhhgAKCRB7ClISD1X2vkNdAJ4gJKyz
 qRrJb3CwlZ65S+/Kkx6sbgCgipBMbsQZahQ/Z0x/ABWgZHiCmSGIRgQTEQIABgUC
 QYV6uwAKCRCe11g/wU6ygvjvAJ4rfIX5g7GGFF1w56DWoaQPPlNiVgCgsFUADy5z
 KF+qwQ6tlIxQkT1mXxmIRgQTEQIABgUCQYYDjQAKCRBz3mmMxxQFoo8EAKCW6mMk
 ffFgda2s5eC0RDJg0InRBQCg+NfccLjmVUfetOiAbHS9Mzeq1uyIRgQTEQIABgUC
 QYbw4AAKCRBsdheMoO2YLSypAJ0cT2oSI9NXEWtw8CG1GwyD9DRIaACglYa5Skv+
 H6R8Q9UOwuk22ag9grOIRgQTEQIABgUCQ4x2SgAKCRCNSU00xw69UHBTAKCsWpaf
 4zuxnZ8fgI/SJ1xzAYYVEACgq7c48BeM8/I7UsDF0wNYDrDhotaIRgQTEQIABgUC
 RUz2UQAKCRBcbEzAWnmJME+LAJ9z1PTBlOc6WNzkKosGHAoAp36anwCgjWzp65Yt
 JulMo0xWqCA4hpRrYCuIcwQQEQIAMwUCQnO1YgWDAeEzgCYaaHR0cDovL3d3dy5j
 YWNlcnQub3JnL2luZGV4LnBocD9pZD0xMAAKCRDSuw0BZdD9WCT5AJ4/ggL6A2ZN
 LWpDJQIK71cfc6UzqwCfekkCAxMeq2+oOpPuYoLURn+tJLqInAQTAQIABgUCQYyQ
 LgAKCRAff6kIA1j8vYliA/4zmIpslbUEqqG/DBH94wmjAe5+LT8pKyd6NKQIydiM
 MuDCVgs3HjUkUZ5DV83x0oi8sPmLO0IghpWPrtZEp1QZsoUQR4onvMVxLVwvVaUR
 1Ff/JUdLLCju1zYd+Z2hkCttYjcD3YWRt5658fGr2X8KFQEkJwaBQqS5EjcQ2eVq
 r4kCHAQQAQIABgUCRTx1QwAKCRAmSeYoxdNNBW6rD/9urlJNSwZzAw5foOFa8Q5v
 AcO5YV66vxllcX2409D6PTejZqfLMTrAx3BnstgscqT0oLOuVJTGSda5oYAY+W9u
 eCzMTSg2TvHO4D1U8HefNVSwvII+0E3hglE3tuA+8YAGehZlnOGHV0ItnxpB7npT
 zJZlYBmdJJa3TTdXuw7ODjh860N5Y05FpqHuhKXYEBKMmSn+LA0ycn1w0Xu70xxr
 McJB7nnELISyYlDD8sJg/AgMnnNf8Ds5aHURp7aKr7DEeueC/lGPkNK3C+IqkMPX
 tQt1PftTYmwuK7wbObwC1jGpx2U8ooQYafYCoKZCS3WXjWYxeYISzuiZIKOjm7vK
 BMEKHIhOUXYL6J3k98efzZJgNPsKA2VVsH36J5LRzCongNTmg6CS8a+2RSvmZZv3
 D/slI1F5oRt/Red6jVpSmr/FhjBH2Gay0HB0DzkgHBXwbt1IcOSLG0oE2qriOGyy
 CgGp0OkXlVfRKmUtk3oVQDZY+ezJ4ORir5fIlzOxi8bAp7xGiqaM0JKpRgXKkpcJ
 qjulgOoO3wm3S+Be8Wcqs1SSUAzhEodDHrIiUCAZkfATb4PWCzDG4kg6Z2e6+Y9H
 Tm98Emyj6NIEzCkSATtl4Tk1P7ylhq9JwuwHqW+Ju4GsoSPaTiWv6lqac0uSv8X7
 f6vZIywRIbJZGYJQ9ms8XYkCIAQQAQIACgUCRUzoZAMFATwACgkQvJlvTb+wLG9b
 KhAAzA5A2qHC32LH/lpcnIL0X5LHm8PSltrFU3ly5vPyfj4Qgjuo/pXI7Db+jWU0
 By7P/l/a6gFz82OusbihVsqWm2Fe6iyWBngQkhHYBrIPUA2wCqVtSJxWlChAEAc3
 aH0WrLClB637Au1pIvoRS71YjiU3o4C9pDI2EaddscHo8+MNeqYw4n8HqJx0VdVX
 DUbIHzJINPsLLvgEXmQgSKxz2NgzTqcqwr9MJEOnaCVbDekKCcJnla9uxF6w5fsa
 lznbRtM+/qiDBgX98r0cdsh41z0b9OZ40C4gmsXBaoacvi0X7ijN8F4bZnvWHi0r
 qKLqbcZX/uI++AD6tNAmEYID/58sf/7j4J9SZD8rkGkjGKsTUo8ll4iNTPnLTc5X
 XUR9T9GluWm1Ds14mgrfAebD9MYQyjqBk2rwfURe4YcILrdrCjNI3ruHtaoG3KPJ
 x+968LxmQoDcuoV5U14Lc6ibfHKJmVK+YHwLsFmkZGBtDXqrN4Xk058msdwffXUF
 N/SvSJjEJbJJf3E2RYsHbyihvYklXT2y299h4E0pPtnRuEOaS6Q+fRmewDPUtw7H
 Mwr8bFWVpZ9ThT7nFwhAV8zaFq3LWMKM+Fg8apDT6Ro2YAiodUhq+mWCYUjhviUV
 XN8gjpSgWbkPU9VJm2cdtfZlVzKL4UAdxtt2fdR3H0atIuWIRgQQEQIABgUCSgTq
 fQAKCRDTYjKR7Qp1TZr9AKDiaaElEP66P47cLnhmFEjgRuYIVQCfaPUnfZ0QOQt4
 L1Wk1nj6sYNx+PWIRgQTEQIABgUCSgTn5AAKCRA+1XH06ASNCHf1AKDCkq6yFBOk
 +VJE8MmD2/rVaqJPSQCffudPvXk0mmSR9+xQMqrju8uTy5a0H0Vyd2luIExhbnNp
 bmcgPGVyd2luQGRyb3NvLm9yZz6IYwQTEQIAGwIXgAUCQmvBpQYLCQgHAwIDFQID
 AxYCAQIeAQASB2VHUEcAAQEJEKsvWlsVJWmQiekAoKCzNzu4y/5tMtSf3JkfhVgS
 ktKHAJwKEiGPfrjLt0O5V+8z08wikrNV34hGBBARAgAGBQI8UYM2AAoJEA8SlUXO
 HPkKKeQAni2dMvSLz8w7RQ57Tu3c1+5EnfwAAKDA/VmA69GXTiBJzmSa9Uu1EmeX
 UYhGBBARAgAGBQI8xpPAAAoJEDx7h1Mest5mCAUAoIE94kKZaFArdYpjl+BjeP7h
 uRTZAJ4yZkrCUb3Vn6U/pa0FqXl8EP/cjIhGBBARAgAGBQI+L7keAAoJEIWAWf86
 Zh+dx9AAn2R39qZMi+EZlGb+kwB8g9sfRkEWAJwLLpLcOFnhk4uIxjG74v22ecBW
 4ohGBBARAgAGBQJCZhPOAAoJEL/kOH5U4nj4xQsAn0gCdfNGMWHBTEMTJX1nBi1S
 92YvAJsH8uJ3e8l9+SwAdI9CjhJTmFT4K4hGBBARAgAGBQJCc7HWAAoJEKibO5Ji
 b/8xgz0AoJcxg6u/Ch+Inn+cTzxOS7jfdEeAAJ9g8PGJyhr5usfg/78uo1Xc66Pu
 j4hGBBARAgAGBQJDhyEJAAoJEO0Yto0WGUVTRZgAoKCgGtmYXfBapfA6f+1DP6u/
 emI7AKCA5rSn+j8acdP/4IJeonACaFXdMIhGBBARAgAGBQJDi3+cAAoJECHFCRYO
 Snh1GV8An2SZJxKdeQ4pFkVz45FlDnKDN44qAJ9lx7rLhnprA2n9YvkGK3JybWwS
 TohGBBARAgAGBQJDjFf5AAoJEKHH3ME0tyRf8r8AnR26iixImviCKIX/Um9ioB6c
 w3IwAKCUjwPC5TZhhbjPsgCCgISC1HtB84hGBBARAgAGBQJECbj8AAoJEKph7ok6
 g98yQGMAn07ip1WNyCzaOulUx3MwgGopMTJ7AJ49QzksLBNpdPex8GRCBJu5cYvL
 sohGBBARAgAGBQJEebYPAAoJECGmRpvR77qmrhMAoLIyQ6o/pWx7r/Fk6RCrrIk5
 mNOgAKDTFeTdnsbJKi/xL5vmuXbD/7JOS4hGBBARAgAGBQJFTMMcAAoJEFr0HlHj
 M6ocWfkAn1EJ94l1nl8KmxUzfuRRiVp9W6aaAJsHUc9r1s65IHBvnknrTmrv1jqU
 gIhGBBARAgAGBQJFTP/pAAoJEFzlxRuH4Fe+5U4AoMAt7d2G+48ZdHM66pNR4/bq
 0NZgAJ9nLu+G/VfF8MCizujde4Xt6DiTX4hGBBARAgAGBQJFTQDUAAoJEC0/fAt6
 5FQ225EAn049sPte4IsSIetqnYZNGoVojKUJAKCdHScVyaSkvIdr7d8ruLM4rmAb
 t4hGBBARAgAGBQJFTQWlAAoJEB6o5aqXJfY7cgQAoLqH+LKajUEd9sHr7MWrT5/t
 agY/AJ9/pdTAzNybcH++t6gUMzBmkRdW3ohGBBARAgAGBQJFTyzGAAoJEG5p+N2S
 w4F+VjkAn0ulVjkZh/O+ON+oe/hyl+qaA0y1AJwNoMG/sn8Qnx6JF1r+Nqt7DjBQ
 w4hGBBARAgAGBQJFVxmEAAoJEBypWmNWsMoIDCwAniB5XE4EAwh73UBhVEyeT5aO
 2ZJWAJ9XZTDqDvdcLXlYcwG7cpfga7j8k4hGBBARAgAGBQJFWEIgAAoJEIA8WjSE
 yDRznGoAnRMShbrHc82CWziVxhRbvH4wfuXuAKCaPA5NRbxUsSrU/7YGSoubIk89
 9IhGBBARAgAGBQJFmyHOAAoJEF2Oi+nyOBrUsDYAniav7FvF2+uXvz4vEj+Oa+mU
 Kgn8AKCyKT8HSjbgKbDzYb4udhFjssMpmIhGBBARAgAGBQJGEZyyAAoJEOpMZh8r
 RqJ89pgAnRjQLfIJlW1na7LZQ/yXW7FQGrFJAJ0QGgTVhKqFoKKgQ9US53T8Gm6b
 FIhGBBIRAgAGBQI9TuvRAAoJEO6eLCSHzT29CDIAnA5oJBppZlieN2E08PU5fJkF
 afq8AJ9RbR63QCdGsx4JGTv/jGCn3s/OWohGBBIRAgAGBQI/OME2AAoJEKmGKcxs
 /75nZAQAn0f/QYyojMZhFXCcrY37BWi+Sp7BAJ9Wy+CosI5aKdh/aSvrUuZ0Kaah
 9ohGBBIRAgAGBQJFTP8lAAoJEF8DMJySFff38DoAnjRTKMdPgTFQIvpZrcB5BRtf
 b1RBAKCQL+iZ3tJSxfcUafCd6PVKzEGaqIhGBBMRAgAGBQI+baDgAAoJEFPCDI4d
 QfvVRusAniyvDBwsUlQtXbLqm9rr1pxe3oPTAKDdZAczoKFYmgt5s67tXYoeMMx7
 gYhGBBMRAgAGBQJBGkMBAAoJECKr8Oz5Vhwxz1oAn1+9m9j74ZkJEjr+t8/Z1IJn
 zfpmAJ4ng5tev/5po3hQzGOxVVqdjGW4gohGBBMRAgAGBQJBhK4xAAoJEIwyjP8W
 BtuV/tQAnjycpCEusqp9NMBMlpYmW/ALHapaAJ4z5yzHpEvGTSXU2iYOIUa7SN0i
 qYhGBBMRAgAGBQJBhK5WAAoJEBXWiATKbN+ydL4An0YyjPPDXPbA9w8pontXA50y
 eJdKAJ4y5TSAyfGvV1cf5fpCPeK+zNWQKYhGBBMRAgAGBQJBhMApAAoJEEAtRumu
 tCbl9KEAnjLykfQVkd0UQ03gCunaTWIPvuKeAJ96jf/PrLRHr+9z2X2myV6Snp5W
 /4hGBBMRAgAGBQJBhME3AAoJEKkX6cyZbhReiSUAniPnfUnPuVcJNOrX821MxTEZ
 4ljeAKCGypEU4H8LAwXvuGPZXumldzzmp4hGBBMRAgAGBQJBhMLYAAoJECLKWEx6
 e6PAopoAoJWGelu4B6TKFCaqKBdkKCVx/h94AKDLgUU1uotqwJlZuyvjWwss+kNk
 eohGBBMRAgAGBQJBhNeSAAoJEIfaXA0nNZpRNpgAoKKfRyPHpjRHGiu2S7bK+OOr
 YvqpAJsEq7L/zF79OoVCKS8w7sOxG8YNiYhGBBMRAgAGBQJBhWGGAAoJEHsKUhIP
 Vfa+lCwAn2TJXJHk4Nfwee95LeYqnMHl6Ek7AKCLjPUwtu9AXA+HC0BjY8VwnYFW
 34hGBBMRAgAGBQJBhXq6AAoJEJ7XWD/BTrKCj0sAnjAAhoxIdv11cV/gYBX+p2YI
 wFqKAJ9D+XiZy+K8ZTn0xnYYJCz1TopgKohGBBMRAgAGBQJBhgOWAAoJEHPeaYzH
 FAWiNFsAoI7zO5y3A0tckJVZUzmx59nSM/r6AJwKopaux0jR8O3MEsaiyR8FejlP
 mYhGBBMRAgAGBQJBhvDgAAoJEGx2F4yg7Zgtpb8An3JYvUCUMTIhLkHrSaJoefMB
 UFt2AKCf+nQemIp3CaGei13teEpxdK5THIhGBBMRAgAGBQJBh3PqAAoJEHwiw5+A
 esU6okcAnj63eadGg/BAfYiEnmdEB45HqYi9AJ9AZ+Z18XuXUDjO1JkBx2pZUc2M
 NYhGBBMRAgAGBQJDjHZKAAoJEI1JTTTHDr1Q/eIAnR3vy4SOtHXlXMADm3/8/OJ7
 SHhiAKCB3M/MojNLMBOKtjrqpu1n3iKqCIhGBBMRAgAGBQJFTPZRAAoJEFxsTMBa
 eYkw58kAn093VkuQQWdM7kiLo5ftMuwrOXgSAJ9aqihJs+AbpZSJKT3b0y7UO0Fl
 0ohzBBARAgAzBQJCc7ViBYMB4TOAJhpodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5k
 ZXgucGhwP2lkPTEwAAoJENK7DQFl0P1YfLsAn1GIjvV3B/Ia2JyaTpMD7WMBT6C0
 AKCdgFotP1HnQZlV49xq+W6sLAdWQIicBBMBAgAGBQJBjJAuAAoJEB9/qQgDWPy9
 jIwEAJZbmXvNRkkVKMnqE+9nhIAnhdlCaAH4/8lW2cZWM4Uk1Z8fXMydfmCX+wP/
 amgoIpMSnhk2wUJKyHlu6wWbAasNGqj6k4DrZcmrWXIoRncGhiPXGF5mn2xKyqdt
 ec4/DPzyCUlprBW5zOwxRvQ1ulxHrqRmYWWoDl/+bioDrbo5iQIcBBABAgAGBQJF
 PHVDAAoJECZJ5ijF000FAEEP/ije524JG0pTG6qENQjHwJgmOVTfOslzAjocJrg5
 GY74uBVRsX5r22qQqcc/dpHlGAcI7UnTCgU44pWlFG9WubefiDNO95990G+QgLhq
 tA74BDfAnVNClZ5KsnwK+T6WEj5TLLHoQwwPFIHZtOOjYHNPq3JP2za5u64h0WoX
 DAamelSC4MuyXVM3tgo6QUoPewRdaNo43IWaxCGmgsVYOzxlQGxt3+rXC0QeZ1vF
 Hc2OlIbVSfnmd0jTIo8QF1CW5up/qp0IfeDR4envxFO62hCCJJ3CMzbI13nzJ6xY
 1/TbxKsVRmmkmqj9O6fSROFLDDa4brS8Es6wq7c57tHcieVAHxatc/YmD3EIv0I2
 gKnCX2PWkzQQ79GGoAh+olw3sXD/VFxRSKYebXkn3XA7rbwYi5TbJ5ODZdzKRYJi
 Hxxpk1Y02c+Ps0PpeLPAc3Rr6InnMybhxppx4IEZwhg+2N4PXUUGRtisgv3QMR37
 TyJRI8hqZ5Xlfm/TSCXWx9/hSonL49w2WVafPSGSJwgb9L7dlBb3QC2f4N2+e9Z0
 VGw2VRoO9bT9W+p+srwAhHJP6WuTlHYcA2Tonhu8Wf9WGUC2d1EiTJoXmdS9rEMr
 U8HdRDW+KxQbcfg5ror4toQgUiY2a2ma3e2Is4SE9WyoV2XNyrENrYcfL3cieXiC
 pQVYiQIgBBABAgAKBQJFTOhkAwUBPAAKCRC8mW9Nv7Asb+APD/9QJsTVhOdGkbqz
 7XnmOJamQVLSrmwU8645BQXxVMldm+F6AljnR3wn7CAzR55EIAX/tEyaUKYl8r20
 weNzeMCmCbV2AI1gMfvHbe01JbNDtQ2dHLd0usuJaGzSRdAs8o3rNHlMu2f48bvf
 3VI+vQ17eqm7nn6AZdvmMWJWCYg51fN9o88KiI7zh1IWOiHpAFLAOJA5Y75CB3Kj
 LmAd0fbO7shHzeNDKUvmVtK7wUtNwzVlv9gfbw8p2o4VtPgSoUjQQrtGBlSrJLlQ
 1Q322TxOfTRwz4dbRRbO7unzqKP9fQ/9EfD5Z2P7m6ZAc4+9xHldU5l+fEjNuPGI
 F7fFRp44WtB1A1XQvsJVqUpVIePgNpkLRUTSdKmHdWth46/ok3Kb39bEyiZvEuI0
 P7mJFInvO74wZq6AID4JrkdJv43t8klv4ZyB7+OqzDGrgLp0qZvjo2Lr1FzAfzZ6
 WiguShUEkjAJ30y882rkiqDiCb7DSTFVf6pdlfPiD7Ui5wMpqgszTEaYVBByru9c
 RFJWP4d3Tb+DHy2F7pqJSIAP7jtsq4P6vqr9Tsu6kiIBQYHKhFSoG2phUzrUI3Nk
 uuej0xPSoi+KLYBukMZqzkWfXU+Y6rC2dn37oRVCFJ1uxAs16udBp4IwaAU83u9D
 F1c09QD1HIMMz3NohQzs4MtK1HmkcYhGBBARAgAGBQJKBOp9AAoJENNiMpHtCnVN
 WrUAoNRNT2vwcdhsZm4Evq7kf+3Mc2b+AKCv1Bs9sz7oc3VcR0oU784RqfVgnohG
 BBMRAgAGBQJKBOfkAAoJED7VcfToBI0IlGYAn2nsyhdnVSYets/2BfA48WV9+ecs
 AJ94Y8t+9qgAMI/5gxoxoN1tfCqjE7QeRXJ3aW4gTGFuc2luZyA8ZXJ3aW5AYWF1
 dWcuZGs+iEkEMBECAAkFAk3SHacCHSAACgkQqy9aWxUlaZBuxQCeKArXlGd7M4HI
 WMnUvqN0XyGhS3QAnj4/EOejyH6A4XhfNQm0yp5ol4MRiF4EExECAB4CGwMCHgEC
 F4AFAkKLFNcGCwkIBwMCAxUCAwMWAgEACgkQqy9aWxUlaZC8ewCg3pxBUwV2nnOG
 QSV57i5cQpog97QAn1viqRoRVBYRkuJtw4nJiPYNQ8tStB5FcndpbiBMYW5zaW5n
 IDxlcndpbkBkcm9zby5kaz6ISQQwEQIACQUCTdIdvgIdAAAKCRCrL1pbFSVpkBWP
 AKDw8Iq9u3LK/67UAbFBMNzX1cUbBwCaAivtED6WcGRPKqDihwXvSMVspI2IYwQQ
 EQIAGwUCQmvBpQYLCQgHAwIDFQIDAxYCAQIeAQIXgAASB2VHUEcAAQEJEKsvWlsV
 JWmQHTQAoJE5kfCwSi6onVyrdiWDfMN5FlkOAJ40MIJMQay7HEKC9H/uDhmIosb6
 fbQrRXJ3aW4gTGFuc2luZyA8ZXJ3aW5AZnJlZWJzZGZvdW5kYXRpb24ub3JnPohi
 BBMRAgAiBQJLmVvjAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCrL1pb
 FSVpkIqsAKCGTNpWFeSMllBUisdErYQ+4pHfkwCfZXqSNtGs0tgRh2fsUflTZUuQ
 fSe0HEVyd2luIExhbnNpbmcgPGVyd2luQHBpbC5kaz6IYgQTEQIAIgUCTdIeeAIb
 AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQqy9aWxUlaZAl7QCeK0SXnnmT
 AnC1Cfl5//n0YWpAQ8YAn2Gyo/8C1+Mreqqe4b6YVS/o3gBouQINBDWcyFoQCAD2
 Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoBp1ajFOmPQFXz0AfGy0OplK33
 TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnhV5JZzf24rnRPxfx2vIPFRzBh
 znzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr5fSI/VhOSdvNILSd5JEHNmsz
 bDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4XTjTNP18F1dDox0YbN4zISy1
 Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zafq9AKUJsCRtMIPWakXUGfnHy9
 iUsiGSa6q6Jew1XpMgs7AAICCACl11XSSrItBWZ6D1UnqNdlk4bexhvuGgnfhXwn
 Or7a1+cAlw79PTE2VlFeeYx3pmUeXMlwM9d7tS9VIwtERldHkcDQ5yBWQqIINKFj
 8sH4OXbV9p0D+bFBgTHZI1I+Io5QgENGUPALMUgGrgyHCkiENATuU0wyBCK9Rlfi
 4VbmwVRLDo5WWITd8U8+hQrDgBTQ6lRsX5Xf8OUKI/UDt5Zcl7qloTRyjOLrlU7g
 a+gjiKRByzbS0OBtwYE6ls6cEaPDHoqNX/2u/7Fc+V89u25A4BOikaC1lIzBy3Mg
 wf043er/44ZemfOwycLJRnWgxLkL0lwPF1BmDv0T1eR9n9E+iD8DBRg1nMhaqy9a
 WxUlaZARAgjwAJ0bAdh//MdW+nXmZZJ1n5CP9hUz3wCfTHoJ4SI+xFT8Za3Oschy
 Ae/NaLI=
 =l+7U
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.168. Ganael Laplanche <martymac@FreeBSD.org>

 pub   1024D/10B87391 2006-01-13
       Key fingerprint = D59D 984D 8988 7BB9 DA37  BA77 757E D5F0 10B8 7391
 uid                  Ganael LAPLANCHE <ganael.laplanche@martymac.org>
 uid                  Ganael LAPLANCHE <martymac@martymac.com>
 uid                  Ganael LAPLANCHE <ganael.laplanche@martymac.com>
 uid                  Ganael LAPLANCHE <martymac@martymac.org>
 uid                  Ganael LAPLANCHE <martymac@pasteur.fr>
 uid                  Ganael LAPLANCHE <ganael.laplanche@pasteur.fr>
 uid                  Ganael LAPLANCHE <martymac@FreeBSD.org>
 sub   2048g/D65069D5 2006-01-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEPHZKURBAD/4O6BhuBlZH0ptJMLl3p/A+Ts0gBinSPtBL0tA82TBSm2uFRd
 8ehlKBMwyNQg1coTJWW8omEwAb+o4E8vwS4OOzzSCesNMgnXganMEE/STapgbXvi
 fh5Equ1GEeYyFvj9jaUGVoy1OxQzRAmVWtsV3RiV+mHDrBSJjLkS1CdaiwCg/RDB
 GxVmtywOwdmahcaHZb+dMD8D/1j417FsO9vnsenyS3fjLRNJJuIBevyX4WFqn9Bu
 fpt9M2l1C7YXvu4TMGkobUvmMsyEoPmQKAm66ickDUEnrwsLGzRWJBN/yoN4CSoS
 vqS04f59qObOfJa+a64Lg6Y5EGzzqnQvQK1A8Fdw1uSXAcauzucEMyld4sOsIEXi
 sLuFA/905RotLj6DVEl70+z3in4J64G9lLWdwOVmlANi8zUpIVUYobTJOMTdT7zI
 xNhYcjYqIc3WIAJycCJPMk9hk9SCra9ETNcU6GkusmyFdNr5YmRSRnz0etlTW6rF
 P7Dgj9b/jKMPh4NHJ8+cO77EPCsN8tz60LuMLXRboHAdrAi5j7QwR2FuYWVsIExB
 UExBTkNIRSA8Z2FuYWVsLmxhcGxhbmNoZUBtYXJ0eW1hYy5vcmc+iGUEExECACUC
 GyMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJMmnBZAhkBAAoJEHV+1fAQuHOR
 SloAoNpk638zaargeIyuzTKfV3OEt8bDAJ4oXhCjGOmIhDbIjILHQLDG9ozsV7Qo
 R2FuYWVsIExBUExBTkNIRSA8bWFydHltYWNAbWFydHltYWMuY29tPohiBBMRAgAi
 BQJMmm9xAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRB1ftXwELhzkZ/q
 AKDyek8AbHNoIEFU4aKj9ZAxCyy57ACgtCnaOXA8TRY4ehdyAKHwwYROoJW0MEdh
 bmFlbCBMQVBMQU5DSEUgPGdhbmFlbC5sYXBsYW5jaGVAbWFydHltYWMuY29tPohi
 BBMRAgAiBQJMmm9OAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRB1ftXw
 ELhzkRNMAJ9gKkxH4i/zQvgtw32ilPgyVvlnqQCfRDI6ESnizQdNyXWwnTbzXnD2
 Afy0KEdhbmFlbCBMQVBMQU5DSEUgPG1hcnR5bWFjQG1hcnR5bWFjLm9yZz6IYgQT
 EQIAIgUCTJpvXwIbIwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQdX7V8BC4
 c5HzwgCg1hCgLsdxVIT6kx9/ejMcfITITJAAoO6xYuVfkCBk0lprOgAWeeWXsP5O
 tCZHYW5hZWwgTEFQTEFOQ0hFIDxtYXJ0eW1hY0BwYXN0ZXVyLmZyPohiBBMRAgAi
 BQJMmnSxAhsjBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRB1ftXwELhzkS7s
 AKDpM9SQcvBVkmHQBrb0B0ZaRMIU2ACg6NTKumOvbvDgF49sRaVXHl3WLZO0Lkdh
 bmFlbCBMQVBMQU5DSEUgPGdhbmFlbC5sYXBsYW5jaGVAcGFzdGV1ci5mcj6IYgQT
 EQIAIgUCTJxEgwIbIwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQdX7V8BC4
 c5FD5QCgyc4QAoRqHFkyCcPIn2Onyh7OcLAAoIahqNOxLn6qTNKHTEc8uhKauHvW
 tCdHYW5hZWwgTEFQTEFOQ0hFIDxtYXJ0eW1hY0BGcmVlQlNELm9yZz6IYgQTEQIA
 IgUCTJ02PQIbIwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQdX7V8BC4c5Ga
 NwCg5LZThwqJ5ArvQVRDlgJDAub1jWEAoKUE1GjKMNd3y9H4AFAqr/kukqhTuQIN
 BEPHZMIQCACJjfWn16Cg7jpvy/SsGAulMEcLI6Glkzp+g0/JyYvNfvvaRGX1hJNw
 6pr1u0yU2FJuZo5b+avZu7P7UnCu2ZWRk8y0WVNHG5lie/jPy0rQBF/DhP6FVqk/
 TdcDECa1Ncp9EE9vCuZGvEgzjvzgxhQ06/d6Rtzxy3C1P79c0j661raPeWzX62M0
 Cj0a0ljdvvm25hv41VT1GAyX/punhrhnBiZwm6UGVu9SQNsOD15pWqMKD26lpwP9
 qA9XHnsOknL3yXl542T9BWffZh2I8OUE0XL1LSSsoPC6a7wV/Vx7cgTDLU3Pv55l
 ERY0p8uadTOCIu36tPkmkuJfoWJF4OQfAAMFB/9YTQ1dN+c2yl8C80VJO07wdNln
 VKQNcCKtuIJXRygcqC4gj8EI4qMofuJ4JTSWdApJjp9AgxFWol6AyYnW6oQU9A3D
 GVfeCc4MpduCFpdnex4U82UdwPB8905kAmuH13OIV3vIEqknpqaygDrJ95E1rYUQ
 lHzlQTHk+JxdqeDvvQfmrLRhPzgQtlukl4wjy+Kbp7Cr3X247c+5y1iAFCJ+o+VO
 dSlNlckHSWbV8yKvJMy7iF/HfvxJmMR1koU+SvCuOcL6A/CvS0JdLo6gIJJwRHFb
 +4iZBR9UUuU4AQBH4HIeSCFREczk8BTIPR/97OQI7FmGUSFTafxLHrww2p/3iEYE
 GBECAAYFAkPHZMIACgkQdX7V8BC4c5HIQQCdGivImEAN/fic1R59mKWpF2NRNJwA
 nRUyAyZp4AGCki3wKPxtkeS0295b
 =DB+6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.169. Greg Larkin <glarkin@FreeBSD.org>

 pub   1024D/1C940290 2003-10-09
       Key fingerprint = 8A4A 80AA F26C 8C2C D01B  94C6 D2C4 68B8 1C94 0290
 uid                  Greg Larkin (The FreeBSD Project) <glarkin@FreeBSD.org>
 uid                  Gregory C. Larkin (SourceHosting.Net, LLC) <glarkin@sourcehosting.net>
 uid                  [jpeg image of size 6695]
 sub   2048g/47674316 2003-10-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD+FkxMRBADL3ErUi1Ma8ItiZAyif8+XF+sjNQkEzw49rLGShJhVGWqRXbPT
 zGtTkyDmvhWXx0Wo0ogcEZPuKG8gJyTvrDktLVeDus33zNzemuBVZWYyvdOAA+6e
 3kDIodoFC/ZjrdD3fFO+CyisIKfAee3xqX++izsbxw5BRZ0ra0gFlcVcnwCgzkdF
 I6KcvzNUso6rxD7yaKXAY+MD/2OpMpMIbUDCUh+oTyV2WZsEhhZqlg1L5omSnzM7
 D8weSSedaLXyfxcrNhvuhJ7pX2sTccIWwmaDZ0cvw9jK54hZuBs+GdpglWIxyKIN
 j+V9rQdZbpFk2/36LpxB/FDC2r9ZrQYXSEghl8gVKcFYfPgayvhZK0qSbux8LPzV
 mDMhBACn+e4vBMZykbTGaCT3GvFX0uj/zu/gm0WrgLjg0K/aDPuF3CF63FMX7O36
 ui9WAW561UPEq8r0rpZCCWlUXuAsI1vaVrGn9Qp65LmBaVC102LlKGd1rULw2wOo
 LUF1zuHv4E+kftv5caYD0uY18ZA47VKGA2iRElDvPT3gs1KJdrRGR3JlZ29yeSBD
 LiBMYXJraW4gKFNvdXJjZUhvc3RpbmcuTmV0LCBMTEMpIDxnbGFya2luQHNvdXJj
 ZWhvc3RpbmcubmV0PohaBBMRAgAbBQI/hZMTBgsJCAcDAgMVAgMDFgIBAh4BAheA
 AAoJENLEaLgclAKQhNcAn3vHb2b2ar/sCchPl+lR5KPI4WaIAJjp9HHUeEUIJ759
 BxRYO1W08nv/iEYEEhECAAYFAkg/sKoACgkQJqR8av5thQ8htwCdFGhhoo6q6UOc
 tmLIunGOgQHpK0wAn39DnvAi22Xj8ed96mjRNmyZNAk1iEYEEBECAAYFAkg/TK4A
 CgkQAklOUvzaV4dcAACffajzObxNZVd/VC3rCd81XsK38VwAn0XTT5jNSbZRIi28
 5WjLpnGZ9tcy0dl62XgBEAABAQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQIAAGQA
 ZAAA/+wAEUR1Y2t5AAEABAAAAEkAAP/uAA5BZG9iZQBkwAAAAAH/2wCEAAQCAgID
 AgQDAwQFAwMDBQYEBAQEBgcFBQYFBQcJBwgHBwgHCQkKCwsLCgkMDAwMDAwPDw8P
 DxEREREREREREREBBAQEBwYHDQkJDRMODQ4TFBEREREUERERERERERERERERERER
 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
 =VNnr
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.170. Frank J. Laszlo <laszlof@FreeBSD.org>

 pub   4096R/012360EC 2006-11-06 [expires: 2011-11-05]
       Key fingerprint = 3D93 21DB B5CC 1339 E4B4  1BC4 AD50 C17C 0123 60EC
 uid                  Frank J. Laszlo <laszlof@FreeBSD.org>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQINBEVPgQYBEACvR8zsof8gLi7pF4331BIVluP61Z4ICzkg2lWLB0Gj1feCbBcA
 neds8gqHJ7vxArQeYTBV6Gefk4mvCecxo2LGFEcsDuns2X1hf1pXz4AKvtYoVL0e
 ytW5s3bRdxX+gekv3KxVQjv4tJU2surbW0Hv17Z4m4ZbRfn17dzvpMwtiZmP3kMX
 N0qAeBs4MZxmWhfYHapc8du75XfpvvD2W4I9VBJXd6DLKNksjq0/Ih3Ygh4kEVxH
 6xQT+lL+6yVWTl8XQpJs3u0OPpY/dVjI98DaZucW/Lkh/+uxZm5ndExi4bFJ40rY
 KfqCsbGAYPOj4HKDkcgNZu+MbC6nIuIuh/eK8ZIpSlSdkzJ2r46wOBHLUJlJoxH/
 P4Ly5cXu5lUX2Mf8/HahPSY++5xIoSI1mpqruJyQZxhF4J56X1Bn0BnMmFt+uXF7
 O8bjQi4XQJBurcSkAuBnTQlohuAXDfIqeGqqMN6iDGTGCOL9R5WZ6nasyDL+qPA5
 WK/ooxINQWPWbTikYb3PZK7v8ABBj6TYAAGxAYrly7boIVKxYUFbotH4Y8dmXUEr
 p8Hj+tFZCk6AKBn/lCLsM/vTs0ylaSHJOhQc49fj/PETGSQLVjd8iH0l87MfLd9i
 iLnd0m/Y+ecCobgQDGnDQiFqvsJF6VI+/bisOJiE/HdOyo9j9K3jJ1l4gQARAQAB
 tCVGcmFuayBKLiBMYXN6bG8gPGxhc3psb2ZARnJlZUJTRC5vcmc+iQI8BBMBAgAm
 BQJFT4EGAhsDBQkJZgGABgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQrVDBfAEj
 YOwJtw/+Pe7qOPCqTUyi+w9k0829sinZIkLxpqJPSzzYaHQ1QGIOg4wO5yCER49n
 Sp7V/S1cNKXTIR+YU2Pf2dj/s7Ot6bRXl9dDnUgMjkvNEEIO6a9gazZSfD6+5ECL
 DFEcJ6n4En02dCjsZQ3uR9DITAZcd/Y3Gczaplwd9LHpUoh/nG1Dj02+6fB0E1wQ
 ebm518PDvbCaQvggYIPc8DvS5DO3GSRLQ64a2bILYOP1UXPGn4X/0yoayieyO6lD
 HFA1gVCROtgG1II0ylDWH+Klp4nAyRcqoYfF5kHWsvQS9N27gf90F0XEALjxCCEu
 Osy4rtDvg1mU1AK0eflyZImJBFfEOXZrEM2TYo+H5X1KLEMlCzgz/5MoOQ3F896u
 K1Rb95LuF2BJOJsnYbHTEURwloif0U5VIbuH6s37bVjkXDbHcQo1UGwQM/v6tPaG
 YirZCgh+NpKChuO43XvQTG7CL21qqten+DOh6MBPtBK9TeZIeuGPiUkS1WcCwRbp
 QwmK2wZeVaZKReqLJO0QXq06dgd4iaiN7W8p6HZe3LYbnR5d8SWyPp2RQxESOOF7
 3atOTQXB5hn+pXuHpH1qKK6RkiD62pMd2RgRJlCdKZXM5UKjpAV7w/k15qiZuZg+
 N0Jkod50e8O7CLTZdXTTYpifOkjdnycBY24X1Ra0IqkTC69zPrs=
 =xm1s
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.171. Sam Lawrance <lawrance@FreeBSD.org>

 pub   1024D/32708C59 2003-08-14
       Key fingerprint = 1056 2A02 5247 64D4 538D  6975 8851 7134 3270 8C59
 uid                  Sam Lawrance <lawrance@FreeBSD.org>
 uid                  Sam Lawrance <boris@brooknet.com.au>
 sub   2048g/0F9CCF92 2003-08-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD87mDQRBADpSK4q7J5JpjHMPdlp4ieo4jJR9V63tvptpBOAk/nuhWnY3fpu
 Z7pcxOy5I5hZDIu2kn2zkBv4CTsn9yxdWgJaSKU9nQMYpfFdCnajo0HTwV72+7eK
 u86VDWZeWuuUIiHVNBUILClbOadmRFDxuCCjyE+V97o4CiUu350M28YdBwCg6LE8
 dpO9NELy9LJxyhPBE51iS4cD/2CdsCXzmKaFTa+w5fCOSBzNv516qY1GEkNvmDrD
 e3dgeyxaembidWjjU2vqOZmWFP64jgayvyFZChGMlRab78GKXH7DIGGrXWp9v7B9
 JjCqDyuX3NGaxCDFUNJYR6nt7Q93sAT85oAV9EPeFFEx7Ksd4C1iKlGlohGwleb5
 TCngBADX+A5DR9eI9E8loh9NmT4HVzvjk9kvk/vq9i0MqxgcEBodgRPibVKWTWOj
 MR0T+3qOzLGiVjIL2FzVF1na27hGJmXupxU4dWoKVGR85JYNOoFBNuR2HZsim+iy
 sX0gK6ejsxVhhx6Q+CQgCQ80TzuY/dD2qFuOGkda0P9Ro62yt7QkU2FtIExhd3Jh
 bmNlIDxib3Jpc0Bicm9va25ldC5jb20uYXU+iFsEExECABsFAj87mDQGCwkIBwMC
 AxUCAwMWAgECHgECF4AACgkQiFFxNDJwjFmBaQCcDJfb0SfPgEimiFVhsQOJccxJ
 F1UAoKJrgMOoY10RAqM822JzOnn9mGXutCNTYW0gTGF3cmFuY2UgPGxhd3JhbmNl
 QEZyZWVCU0Qub3JnPoheBBMRAgAeBQJCWzEGAhsjBgsJCAcDAgMVAgMDFgIBAh4B
 AheAAAoJEIhRcTQycIxZWoEAoNefUsJBBCoZSmfVIPEh4g1oDmOFAJ9H6Q4/hfh4
 hFTLxU7p2bLgbdjGHbkCDQQ/O5hBEAgA5LFaiwqsnyrdVB+Y7S511ZPmQOi8UwfQ
 04PIWyt9a1MwGSYdUpzGAieMLe4KG6olMlLH0X/qxkVjbukwPyybeN7RNUZE1DD7
 KGbVOWpyQHhAB4EPfzRJFYQEmT1x7tk0nVbF7emuK9iG+Z3et6Io58QjOgyEMLYU
 UjwzCE2NYjJmMLEy1e+icfEkOs30s8XPrus/GNffVlsxmHEzxtsicw+AVnlrjLtG
 xZ5DsNRqJM14L9X5qR3O0dq3BnKGZPOctIF6bRv0AC9lX9kQ1saFqv8iEHoHZ2vD
 2eIplYu/bviD+lI+w6zrq/KgNHQ1n9ngzs/N14lN9C57dHTS7U9nJwADBQgAhWSk
 YnYr5vUskZgVmf0joVgYNBqXIBKo3qXx0DYxGOT18EbKhtSYCar4Uhjob9fUhQop
 nEd00GQVZwDTL3/STCXUUSaHRJhK9yCwgvQ+/q58yW1JvMrCA6uaca89y9DnfWxv
 0lFbOdLJJQNrgLCyNweLhZcEjOSTQO6EZB5OX+z4Dgfxd/5DKWr19JKw54Qtus3s
 9zZhVoQoXzWiDlYdtuGUjnVQvycegOxwjFN/TP9IQpQS8HFMfEu5GLTbRAQ3zirS
 W4FtGaeI7cUqap6ot2BRd1prAXyThXHxYAARaYib/xvCLRDTfXCHgJXbqEiJ72Yy
 FgGYqFTRrTTgxiXo9IhGBBgRAgAGBQI/O5hBAAoJEIhRcTQycIxZLQgAniGrL6cw
 +rQG5xLeJ6hrbllYV+8cAKCmIpsp54t97HWvJTKN9GhbpQhojQ==
 =iBxM
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.172. Nate Lawson <njl@FreeBSD.org>

 pub   1024D/60E5AC11 2007-02-07
       Key fingerprint = 18E2 7E5A FD6A 199B B08B  E9FB 73C8 DB67 60E5 AC11
 uid                  Nate Lawson <nate@root.org>
 sub   2048g/CDBC7E1B 2007-02-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEXKYeQRBACVxgl1l+IwFK3aZ96X+BHzeUuGfAAWSqzZuJq0rVXhUU0KnGy6
 r2HLJKwGlSQ0tP7rsYy34fDZy5BB1JajHNUIhb5SJFZH3VltQuZ3mnaLWJajm4Q2
 c3TRBVVFcm4y0x/QiCcz3JvCUWHaPUUWlpbrkt57O5NTVlneOtruZtYPwwCg+3Ft
 WjNU4ppXEbbsLHsIri5gPCUD/2e7RFkq1KaaqA0wfwictFgxuOZX00Do1kIFfoE6
 0jKSxU3P8E01H68vZs8vGuVOLVE1pXoWoJa68zVOWkLCTE1z2U5YJumZL1mDRRHt
 VfqlsaHNBLIRd9qAZsj3F5aSFu1/hCOiUkgLWQa9e/BAv76L+mCIJ+g5bU0YTEhx
 XoFwA/9dF3JFdQCkrzbhS9/BSjEIXDCl7e9Yt4/6jTg14fr9Pb5hyUYYxu6i5v59
 TgSdxSFUd3MaZmH3Kewg++9oqewNEYdOu/gmx7GiSKr3k0FlX+aK7UsVDjEr55Gi
 XH5pqUce7y8bmx03a/pa0Lq5WLvPnfUaplWeoCmmAXeYmRFYqbQbTmF0ZSBMYXdz
 b24gPG5hdGVAcm9vdC5vcmc+iGAEExECACAFAkXKYeQCGwMGCwkIBwMCBBUCCAME
 FgIDAQIeAQIXgAAKCRBzyNtnYOWsEUGfAKC9mTqJd/PjHdTG0YZkBr0Y0PLmCwCb
 Bl/VHprr5SrFDBdZy+vB5GIEhme5Ag0ERcph7BAIAJKt5PBfx/CEqBDS+JkDyYLG
 RA3johtfG5HPVPOX1iFJgDLx/5ZKIsK3oxJLkkZQDBjzJgU+GcffBwafaTObEbid
 D2rtwtqfM2EgoSntvJhrP09Qfx1/MOZs4MVJbGEec9egMgFRzUSKZ2xiYNqKOWL4
 dL0TOyeLg7HQne1fuOOFEJZJtCxHAm75z6Q8deYHr7bQQ6NZuYc2qsOLjBX+M6Ig
 d+r5p3vhkeg0uUzkRR9bAmtaDT3BFfxfMG0b4iTBpDW5UQ2Cp0NG+SAEaXVCYNcA
 kKHZGTTI9e6a8AimsP1wOKs1TsE7WSLsk0Y1U6E7OuHLdmGwZygipfkUXR5v/hMA
 AwUH/jLrMCAzZaCh6m6mrJ2HYCASRSfGKAbmfqPymEICfZ3Y+FeCCFopeatMZPyE
 R6gEzHyu1hlSHV6yTfxRDV+gO6Pl9snsucJtD//ZnfNZenKsFoGJM8qu758jBA5m
 FY5bTlkySmFJYHGAtpMap85j32iA3B24VmgIZ+rE/YVQUbbkaFrKN7Crvm+PgH1u
 xbLrkjypklyo3iZZQo75W7SobSvyqnG3LRXkXsS1U1m3QWcLqIjKZTrrhbV3IIRK
 +A0rSRKXpDt5lOYIqbJ+PwwGexlgzb31vJa0+N8qjdvbbMZIOA7mDVauEYsETkU0
 Wtl5Rc1M8Qx2IISH+K3AGXHqn3iISQQYEQIACQUCRcph7AIbDAAKCRBzyNtnYOWs
 EcVTAKDj9JrwUwygZFNG+oWsOA3/ikA7qQCfQkYnj9q6E0Z21p/ZTDptic+qSEI=
 =yO1b
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.173. Jeremie Le Hen <jlh@FreeBSD.org>

 pub   2048D/8BF6CF92 2012-04-18
       Key fingerprint = 66C9 B361 16CA BFF6 5C07  DA0A 28DE 3702 8BF6 CF92
 uid                  Jeremie Le Hen <jeremie@le-hen.org>
 uid                  Jeremie Le Hen <jeremie@lehen.org>
 uid                  Jeremie Le Hen <ttz@chchile.org>
 uid                  Jeremie Le Hen <jlh@FreeBSD.org>
 sub   2048g/045479A3 2012-04-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =kKtL
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.174. Yen-Ming Lee <leeym@FreeBSD.org>

 pub   1024D/93FA8BD6 2007-05-21
       Key fingerprint = DEC4 6E7F 69C0 4AC3 21ED  EE65 6C0E 9257 93FA 8BD6
 uid                  Yen-Ming Lee <leeym@leeym.com>
 sub   2048g/899A3931 2007-05-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEZQ5iYRBADg09p5ljHhIDwhH8i265BFEL1AyW3EPEOb0CyFErp3K4H7+IpG
 FeaHUrB2i4MYs2r9gAMHadBMTXZJv7ECq2AUQfm3vTKeBjVVz/N7jsEDcmH6bObY
 XvfRlp9618IBRCDdcbD3Qs0Bv4tM+e0oNYBTsOWAO+bfpHYPk5wORxq6ewCg8DWN
 J/THLd42Fd4HTfxTC4tTa6UEAMPz7iASUbyJr7//O/Uu+05MBKX8wuNdrH2XPUWq
 MwLcgEpKSFl0xjpJUMpr3eWGvAg0Vz1UzxDUvZUwbj/5nXh2olNoMH2LQY0QwXGG
 TPudevBeJ6W+UaEGCAH4Yy25hxxr9h8XI5KRlPCOjQ8i6H+EZbLRTLgOrvBWvD8B
 Ob8dBACGxoySAQP+leHIe9nrKyZ00tkNI6WPEPAG+14yiCgWLJnWKi7maIHzjG+1
 1Fz5+nyMUtHofmLvNyDA/V1e2LFXDjH3v/PcTCQON8EnHAoYmqSRAZMBMmDpU1Af
 f/vbiOg1zwhwAhdO8y6GZHcJGJjJ8lJYs151ehSS2Oa+NRCfH7QeWWVuLU1pbmcg
 TGVlIDxsZWV5bUBsZWV5bS5jb20+iGAEExECACAFAkZQ5iYCGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRBsDpJXk/qL1q9tAJ0fy0MkFt+hNcvb0OMqTRJvjYlB
 KACgluazpF5ATo+dNtJifOd8kMBxB+C5Ag0ERlDmLBAIAKOlmONAuOtrVXvRw2gr
 wYNA4bjQrv44PLCMGuicddC1S6+Ngp+F2bjq43iyDk06i4eXBop0uqzkGA56pCVW
 51mSLThl5q/1dixiLDOSy/9Scuei57KuP5MOk5GpFBU/OZv0R+1ZaK+718+jI8/E
 NGOt/rZ3ZaTR94rAn9yQzVp4prVw4F7r6Vrp9mVu2qgoYKpwpfuR4nw1kq80Z1R8
 TxtUrGFYSY7nRTPI6FI6fo6BVPMAw01Xh3oKfDfrecaNtNNgM/DvkrBvZsVHu3NO
 M2yAVL6LP/Sjv0uF1pK/WjP27hzvO3yha2KYS3oBu4zysyVbi7QuFvm5FmF0mKik
 JosAAwYH/RWHzWWtpgXdbMUrPxFTmFhXCVVuyiHG0h3bMZigKtAMcjjYRMenhiRm
 e5Z5si4VzzpaaZaVY6T7hmzM3cran4VH6dFdZy6qhBFzlJphpLwnJti/FMrF2CdY
 1kthUC0fxeEDPBkYvV1izBrPQ915XYXuXdJjbk/ATqeIKsqEHWSmTCLcLLtWn9Nt
 X8DWU+GHMbaMAbtEfL+i8vg0WIOeSE4tlQwIkvSzfXh6Rysr7NtOuYzADD6ORRkg
 Q9K802n7IYXqWhZTWKijXpf+n+NzWdXC/1UZambcfo1gcS1fotmrO3Fmq3+FgJ/A
 YPmudGbHwUlAXVfJ47Atxggoe0znf5CISQQYEQIACQUCRlDmLAIbDAAKCRBsDpJX
 k/qL1tpnAJ9MKjKh4P+ePXeQ+yIwfPza+MnFcwCgvVONrkQ6Byi+tZ1ilTlKR+8+
 xnc=
 =XiOT
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.175. Sam Leffler <sam@FreeBSD.org>

 pub   1024D/BD147743 2005-03-28
       Key fingerprint = F618 F2FC 176B D201 D91C  67C6 2E33 A957 BD14 7743
 uid                  Samuel J. Leffler <sam@freebsd.org>
 sub   2048g/8BA91D05 2005-03-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEJHnP8RBACRTtM4Fb2oRITEwfTLIKSa5Mk0m1A7Pitd1qkjtAyFCi5V6uF/
 2FXPP3Ux3M8xzrvkQNnWkYvGh5MSgkkJ0nszUvh63m5Lp1Yr/EMQr03v1HfqGKF2
 SALv7eVJ3XHEEGsYq6KOcJ+2n3FkL6bwGXkXSya85a+EwQ+/aBhpEOEKwwCgl4N4
 oTMEgh2Z06ZkMJrqbf4/P38EAIAN93nvAN14v41zw25b4USFzqH/JFTG3utAVxiB
 NgTEkD+OkktxJFoTrZxfxoU6Od4tl+yIyhKJgj/QlH5pA/mpMeaXh+TQ0/EQAzml
 d/sw7vXV3WJ+zXIZeh51yuHBY817e7izcnfmY33UrOdf4DtcplmUrfQd1eVMSo45
 K2b3A/9a0tg7NhdfkL06b97oyKb0L8F92Q1sO6J5sgsEjNrUVrFnNU0DIDgbi/0t
 oBpnqIDa09hhBJ1XYcxU4KMxBLpuIeuk2cDCUCVeeEDmx98GIss3hKO8YWzB40y6
 7vtdh5lveaNV4+CA2xL/cDXscl+poRQA5tR0efR16jckEaEcVrQjU2FtdWVsIEou
 IExlZmZsZXIgPHNhbUBmcmVlYnNkLm9yZz6IXgQTEQIAHgUCQkec/wIbAwYLCQgH
 AwIDFQIDAxYCAQIeAQIXgAAKCRAuM6lXvRR3Q7whAJ9e9jjfVscKVirvWN5IM2j0
 60Q50QCglAppekJH6jWStTwoq1EroBFPKUy5Ag0EQkedCBAIAKmxNvJW/W+PrE+T
 JjKw6dbqUqAUNIGWnr6xgL7KYBpx5eo0XH3RCVzvRSfboA1+nXauTn/FhOtWMw0J
 dkHrMQhxKSDhWOxeftKuiRiVLPXxF7PX0JMOadxOuqNSt1VWcuTxxBB2wva2Rb48
 JscdFbT2u7+PHNarDgUnEobobdvbzh4F1ACaesUq4s2y8jH+YJTaBqJJuZLjLwti
 C2zv7skf40I5ldud4/7ARGuumpjTrqZFQeQwPKX975X+jw5SBUJXA1ckKcgTp0s5
 Yk+O5+yUkt6yzDO+CAYEaZ/xfpOhwmqSIXtdo+ilm2q3y5l+nyEVidYncRWRWYyO
 iaXOJdcAAwUH/0Ixl92WezOXBqMrKVaA+abCN6t6n9zxSnwfVo92Vlfqj8Huz3Hk
 55e1in3P01xXdNKnapYNkCg70WbtNQtCh0nJdGGDEWVqJsjiqDDMYa7QLahV7HPB
 RyOtoAXnTWPpyk0d5WEXPLJ3vPjxqv5wKTmav3JcvVahSVWi2wmWAgfQJXYRvCU3
 EEQ5KqtCBrQNdBsSRnzgDsMY2kAh02VuGTbkVlQz/rI7HAYEOL8SoR489O/MTE+b
 5HtUT70rk57/3jR3QtiH/3Q7OqnPh/ATjO+pnPuhfqHiQWLWRDigJNheH/B+1Hmn
 sHiSWrUmlaI0bzyIVW4Xft3nu/wH3QVSSWOISQQYEQIACQUCQkedCAIbDAAKCRAu
 M6lXvRR3Q1SUAJ45iX7Ka9rb5pwAmY+fyfpuO4qgJwCfW4VAl3+NLCCP4A0Y8wlb
 UtEtg3M=
 =kR9a
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.176. Jean-Yves Lefort <jylefort@FreeBSD.org>

 pub   1024D/A3B8006A 2002-09-07
       Key fingerprint = CC99 D1B0 8E44 293D 32F7  D92E CB30 FB51 A3B8 006A
 uid                  Jean-Yves Lefort <jylefort@FreeBSD.org>
 uid                  Jean-Yves Lefort <jylefort@brutele.be>
 sub   4096g/C9271AFC 2002-09-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 3bMQAJ4soo0qCyPCVz4Y0Ly5jvYWToXt0w==
 =kszM
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.177. Alexander Leidinger <netchild@FreeBSD.org>

 pub   1024D/72077137 2002-01-31
       Key fingerprint = AA3A 8F69 B214 6BBD 5E73  C9A0 C604 3C56 7207 7137
 uid                  Alexander Leidinger <netchild@FreeBSD.org>
 uid                  [jpeg image of size 19667]
 sub   2048g/8C9828D3 2002-01-31

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDxZg2YRBADEFCcKKsa/VS6z7aq+04C4rJ925MPEdQnGo4EVKtRv38AnqUaW
 M6w2CJuDQ4iS+FL+nWaSwRnfGufftkEx0mSum1FMXQQ6+buC11LkgUYcF2f0wlak
 HGr6Vo48RGz76Vi7u5tcoEaLb6uYjJfOOAzYX1aOv/T+qeGVc+JJG4LhNwCggBHB
 1DpYSy35o1I7EyVufjruQJkEAKp11sHwuPcc6Q4q5hSKG3VM5TJKHwRkdoRxgfjT
 UJGecH9GA4Td7vh11dMyS22RnFNS5hcCdCdoe9PkDEvwp+w30pi8uNOFmpCF9TlA
 FRgwFC9pq6VveHd1PHWSRgiTFxeTXgJ0Y/zCZSitURCtlqMXMg9qnUe1tTAF99yp
 zmQZA/sFaFGTLzCbPrUY+2q13b5PSQsv2D5FHFGuH3FL/rIyPexKmm9Fcs+LAQM7
 rx94ipa0OpwapUwCFPg6zNqQ+67JM4KCzRsoSQPsVtCNNcEODQRMXqx6DK1tYUvf
 ymCAmXUqqqVXARyDh954uBqTfRSASsqPsVAxtwmVA7rceEcIfrQqQWxleGFuZGVy
 IExlaWRpbmdlciA8bmV0Y2hpbGRARnJlZUJTRC5vcmc+iF8EExECABcFAjxZg2YF
 CwcKAwQDFQMCAxYCAQIXgAASCRDGBDxWcgdxNwdlR1BHAAEBQuIAnRn2yTAmJACp
 PB9Nc1WjeQpipeDAAJ900VXCYeRbwhfldpGMbiGlkj4Ly4hGBBARAgAGBQI8WYOm
 AAoJEHninGCwBj/nkIMAoLd0ACBW+D47AAGAHLvbnoVOUcysAJ48WGg7PqFVvxq5
 66+s+xtIsYOK1YhGBBARAgAGBQI8WsZXAAoJEPSMqBtpqFhziTsAn1jBAxq4biI6
 ZMO9tPDjXdgGWCu9AKDW3KmsBTCEZomtitZtbKTPiun6M4hGBBMRAgAGBQI/jTT0
 AAoJEGx2F4yg7ZgtPz0AoMP+vntzMwK6UNZiXNqnicGBn1fRAJ9gslYqStRTXgv0
 GytGmbrqAvKUt4hGBBMRAgAGBQJCNujQAAoJELNT4Gpva4J6gesAnjrWpLWWUFF/
 Yt4GUP7Dd2dCqTNyAJ9St58kCHv3XQPIOWScicMrGTebBYhGBBMRAgAGBQJCOoAp
 AAoJEOMv2scF+1/ZKEcAoKssBpCFMaSAq5VWLCO4ggxb6WodAKCv2hiiV3dHswxe
 I/l25PCDATjTSIhGBBARAgAGBQJDpJAeAAoJEIXUUEVraRsDpIcAnR2iRPpS1w3i
 SCqV5/5+jJx5SyjtAJ46/73g9swXtLEIUgl7z+RGg1/IQ4kBIgQQAQIADAUCQ7Gf
 MwUDABJ1AAAKCRCXELibyletfH57CACMkpmNhmUxfx9Bp9ifKhvZ12ZOvv0wYlBD
 3XJsXEq4aHJ+Bq2GmQLyEFX8ryV0HwSl1UfDEVsJ7IRjds66Wmo218eZp33tHMbq
 02QvrroY6nbaPHXpydhAaHmY0iZcFtUJXRa9VqiAUwTVlKbUkAL0r87RBTxhIzDq
 xaNZC+MTxUJphyDQYnJ8OvOuHeeMRhLrwQZJEevtb8JR5CzyrjoIn351ff86hz7R
 PsThwMXTMqT9T2w98GhuP5UYRp1bFNCbAlWJwgNiLKd+6AXdyQIOouCzY5tnD1wf
 vPB1v+wTi6KnU6E2VsQ8yggFcPaPovO3uKkRRAkATgN/meGtDBYhiEYEEBECAAYF
 AkY8hosACgkQ524iJyD+6d0B/QCePfnQ95VTfwRpSMHu0GxbWi5ZUlgAnjwAONqq
 L+iionCmk3WCHjeFvv9WiGsEEBECACsFAkY/XkwFgwHihQAeGmh0dHA6Ly93d3cu
 Y2FjZXJ0Lm9yZy9jcHMucGhwAAoJENK7DQFl0P1Y5VYAnAjxx4bU+zNPpIRO4QiD
 gpYZ69ruAJ4gdxhkupzsuLeXEdoZjngqbtDf3YhGBBARAgAGBQJGSaS/AAoJEI2O
 PuD3c7zgVlEAn1nKfTF8E16RhQM1cqV3YU1odL9zAJ96gPRqe2GHv8yEQLtJfTsz
 NkXcndH/AABM6f8AAEzkARAAAQEAAAAAAAAAAAAAAAD/2P/gABBKRklGAAEBAQBI
 AEgAAP/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
 AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEB
 AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/A
 ABEIALkAjAMBIgACEQEDEQH/xAAfAAAABwEBAQEBAAAAAAAAAAAEBQYHCAkKAwEL
 AgD/xABLEAACAQMDAwMCAwUDCAUMAwABAgMEBREGEiEHEzEAIkEIUQkUMhUjQmFx
 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
 dXwnxzx0crfv30hhYSiFRJUGE/v5JXXClwxj+M8LHsCKHZvYWKlyWVdNFIiKEQ5b
 ZCdxLLuyFkIjGWIQq7KC+AG5fgkAZkMMSmNgjGRG8MQ7yOo2kAHnau1do9oCkYb3
 elAtNskO+Z1KOI22oiHeZfB3KWUv/dhNwIBLPuO0hgkxj3dgf6QbmWU9NDF693/m
 uPMvjg6eviuaoKVsv/ZefAmNFSSONVONkjNglS8wVFjBbcVLRpuk2BHO4jGz3N6O
 IYGdg4p4o1kAO6Q722lmYEqYwzODIBtPbCEvH7VQn0Gp4og8TZnITvlyB20fgDB9
 gZ8BgwwACEYFQA3pR0NO0siGQOwQllD/AKfcvbjXb7VbJ3MXdjjCgRl1YlHc7ssS
 Ne9pHnkuLY3T6ktrlUUEP1Qn/wDDv2Oer7fDDfUzo2fXf069fNK29DLV6p6V9QbL
 RhE93dqdL3GPhS0Q3yVO1tqNE8m6MuzIkatkK/DJ0/S2f6f7Wi0y0tXXan1XJWns
 hJDNTXaehPd4BZkFMkfOAMY8Aj1uQFuhrIJlkiSSjdpo5GkfajJIm+VQrAI2935I
 BUEluZFwuFjrnfeo30sXLXegdJ6h0L0v0dpnqV1YQ6w1FbZL7W181X1J1W9msllt
 FMRBFLFZxS1TSSEy1BqIEp4XRXPqm/WmOUtHpoGbYz1JGSmWkIzQjCMWUp5GRCok
 pNkQBR1//BrU49N57rpZMU8m3QuSEIMItmXFFueWePFCO2V7sk4Rq7VrxbRd7tWU
 Vpip4/zP5SRYgzwthC7bU920EIS3KqTkecZPqLvUu108EMtbWqyyVgkYRSNg/AGG
 IBzxufg8v/CPFd/0n/WlrbqtrKq0Zq7Xtl1XHFOTT6itOm7tp6J6WKoSEftCmqqe
 OjRO88MQqfaiySRo7BpFyxv1g/Ujr263+o0VorUt0tdfU3Q0SXSlpZjWiNN8bw06
 1EKmn4wTIY9y4UKPh8zlHL/V/wBK4J45wImTMxzRhii44y+7kjkhDKBFSmDIl3Hk
 v03DW6X+gPMcKTx5ZenBjyYJZcuVltMJPFlniZSbkMMlbSzg8OR1dpNslXUYjEOG
 JKuPby3tbhvOSQRyCQCT6pX+rvQd3NwpNT0tLLPZamJInq4w0kUM/JCTMFIiZlGE
 LDBGOc8enovq3iw3tqXUzdeam/0lRDFW6unutZUWU1JC5kpaL8tJQ3Ggj3fvZAks
 EkRba7cL6f8Avdvg1j0j1PQv+Vu6y2qppcrFJS1UtVTU5q1ulNSfl9rwiURpmGRG
 aoZ+yhjR2Q95cPk2o02rx5TLjlkjHLGUXHHZlvc45Rm71WxyO+XW0Eug+ezh9QaL
 VabLicOXZky4TC5Ms90GgyXhxoDcZsSWNesqieHg/ss+nVuH4m71M1JJUGydBup1
 xSZQ5/Z7Gq0xQPUmPekc2YKyemVKhJYQ86yBRIkZH0hKigTvSZQodxkjQlAIomRp
 JJZn27WkdEEMccUeQ8oAAC59fP3/ALM+bD0Q+uOTUnU6KtslN1v6b3zpH047I3rU
 atud2tGoqeK77GElFSV0WmnpaCV0lR7jUUyTRIhMifQtNBM8jRAbJFE3caMntwLC
 UWGIuw3M7OacsF2L7/e4C86Zi8wwa2eT+nnDIQkYpmNJEMkSEWJVx/J95S23IeYe
 PM31J5XrfLtZgNZp8uA1Glx6jTOWE4Rz6dnOMMsGZcoqSjdDZaF14bOote6paTDJ
 uV13kEO28gBE3rIyyltpbbtYBCCcuGBLU207QrxA9oKPcQsay7aqR3YknfKrRhIj
 xt7kxbhsFz6yiCsuGbb+py53SAZ4YjBI5O7AYke1cljgJ2opmIYIp5YKxZQoXKls
 MW4DFEb+7J/9oQDuyZVbYu6TcgeO+CFG1V4PjpXpKK2d/r56/nni6uv34a+ptTMI
 w4wojMYjJ29yNAQkSoEcLz2pGI59uHPJHona1RREKBAParfv1aRySoJww/hBygBA
 IKnPp1pKNd4YAhTs/eFcARsezM4BwuAkryHyu6LJc4A9EElDCSvdGCF9qqGfahZm
 UMy8Fvdk555GfTcClLip3vjuKu+Wo+/bV3ZyvDloWD3Vnb18vXzX8+54Z6204hbY
 Tuk/Q8kgy2ws2HkZio/zlFQiNQsYYIp3jB9H9EjGp7bMilTLLJk4PZIdIixxjDu0
 ZVfb7t5O9YiACt4jSSVmDOu2fEjOu6Ry8ZQiPaB+7SOQo4JCqc7mYgg+pI5CaKmk
 YMZFrJq6eRlVGVamoqo4pTIu8otIJFSNQinYsSlOAZzJ97qRRX80FX883fAtdJ4l
 J1+67/s/Hse3fI8c+DOnpSn5aPgFp5Gwg9747ky5kJAUGPe7vt4bCIQFUejWGl7n
 bDqFDNHUO28MV2MrLGmc4fcTmVj8OQQwjHoCJ0VYqsYnUB1pnxl5MplnBVAC4kPa
 GxDhAzo4IC+jyGJVkYyzQl12oCHzFBvCuYz+8ZZJVk9m8459qKCxyneSpBY8+/pI
 tKj7tDQUvCoNjMot8nJ+v2Ff/k9jrrwNo4FdWZ+cllwDtAJG3t8MzZ8ByxTc3ARQ
 y5U9tggcJIgJcRogU+5FZI2WEHtgZKJKS+wsEMih2BUbSmnUGmMYZHeWWWeNSi9q
 JD2yqlRvZyYYRJMzhAz7uFAHpaW2m7NPNL7pZJahJO2duXghiAWL3JkQxvIJDyol
 dwCEVUAVzcfTcRO4xVpFtHu3hvi6pUpmqi3/ALX/ANttHt2L2/PzyrrXS3CzXGiq
 nr0o6qlqIpp6KsrLfWdgiZJDSVdBUQ1lJOCG7c9JPFPGCjxSCQq3rIV9V30z1Fl6
 x60sN+oz2rXrfU9ztDy29NS/+Tr9qKuu1JW7a2GoqIbotprIaear7dSKunCuXedp
 R62NxQyiA9yQb1V5MDLAHD7QVVQo3FMLgr7VJUbgCKRPxGNMy2nqfYdR/k56ekvG
 i6MSV0iRiK4XG1T1CVCRdsko8NJNQrhyXaNo3VnjZXNH/wAQMBPyqGrhCTLR5d04
 Hp/y5sSVyOYbZfb2Sf8AqN4y41//AAV12HB9Uug1EISxeY4WO9QnHJp/82MYXTKM
 4Syb4xbkxg/gSujrSPSLTWjrtWX61xVNwvjUs1VVz11qqrYKSCOmmgp4YaeOmt9E
 IqiWpeQrHTygJSsXCSFHapzqrZYZes1fd77UikQ3WMVJQulIiJUk08jyCMtBlZOx
 PIhCldrSBtisk7PqZ67XGwVstq0bfr/NqT81Uftq36dp6GsjjpZKRqWmp60yqakL
 TyyJL26aWB5ZDLG2/dgUx60vnWmtuBu12td9qbDfJHqakXak/KVkoppMyrDTz7Km
 BWdMjE0izBWQIQu31m/kkpzw7JRx6Vnjk7tRnx/cyGQ9MQmR5IYrHI3ZUaSL49Se
 dZdBHGxMeXVRxZ45cn9Linlx4pwMcCTsJEYwlthJiJEjLduXa2PdQtF2GoslHcWt
 tQ9VNArCpa7S3OA08iqq9qFpTCNwO4P22KodyrkAqmdE6Ygp5Iu1BGIaipjj7GS0
 YR8h0CshVlKn9JHtVtoHO4IvoxrSm1Zo1rM8tyeOgpP3Irz3HgVCyyQJKwDmKJ0e
 JFf3JtZCx2nMrOiPTu79SdXaS0HYpo4r3qe/0Vgtk80DzR09ZdqoUFDUyRR4kkii
 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
 =H22z
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.178. Andrey V. Elsukov <ae@FreeBSD.org>

 pub   2048R/10C8A17A 2010-05-29
       Key fingerprint = E659 1E1B 41DA 1516 F0C9  BC00 01C5 EA04 10C8 A17A
 uid                  Andrey V. Elsukov <ae@freebsd.org>
 uid                  Andrey V. Elsukov <bu7cher@yandex.ru>
 sub   2048R/0F6D64C5 2010-05-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEwBF1kBCADB9sXFhBEUy8qQ4X63Y8eBatYMHGEFWN9ypS5lI3RE6qQW2EYb
 xNk7qUC521YIIS1mMFVBEfvR7J9uc7yaYgFCEb6Sce1RSO4ULN2mRKGHP3/Sl0ij
 ZEjWHV91hY1YTHEFZW/0GYinDf56sYpDDehaBF5wkWIo1+QK5nmj3vl0DIDCMNd7
 QEiWpyLVwECgLX2eOAXByT8BbCqVhJGcG6iFP7/B9Ll6uX5gb8thM9LM+ibwErDB
 VDGiOgvfxqidab7fdkh893IBCXa82H9NCNwnEtcgzh+BSKK5BgvPohFMgRwjti37
 TSxwLu63QejRGbZWSz3OK3jMOoF63tCgn7FvABEBAAG0JUFuZHJleSBWLiBFbHN1
 a292IDxidTdjaGVyQHlhbmRleC5ydT6JATgEEwECACIFAkwBF1kCGwMGCwkIBwMC
 BhUIAgkKCwQWAgMBAh4BAheAAAoJEAHF6gQQyKF6qmYIAI6ekfm1VA4TvqankI1I
 SE6ku4jV7UlpIQlEbE7/8n3Zd6teJ+pGOQhN5qk8QE7utdPdbktAzi+x7LIJVzUw
 4TywZLXGrkP7VKYkfg6oyCGyzITghefQeJtr2TN4hYCkzPWpylkue8MtmqfZv/6r
 oyqwTbN++E09FQNvTgRUYJYTeQ1qOsxNRycwvw3dr2rOfuxShbzaHBB1pBIjGrMg
 8fC5pd65ACH5zuFVA0CoTNGMDrEZSfBkTW604UUHFFXeCoC3dwDZRKOWJ3GmMXns
 65Ai5YkA63BSHEE1Qle3VBhdcG1w0CB5FBV3pB27UVnf0jEbysrDqW4qN7XMRFSW
 NAy0IkFuZHJleSBWLiBFbHN1a292IDxhZUBmcmVlYnNkLm9yZz6JATsEEwECACUC
 GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJMB/ruAhkBAAoJEAHF6gQQyKF6
 MLwH/3Ri/TZl9uo0SepYWXOnxL6EaDVXDA+dLb1eLKC4PRBBjX29ttQ0KaWapiE6
 y5/AfzOPmRtHLrHYHjd/aiHXGMLHcYRXD+5GvdkK8iMALrZ28X0JXyuuZa8rAxWI
 WmCbYHNSBy2unqWgTI04Erodk90IALgM9JeHN9sFqTM6zalrMnTzlcmel4kcjT3l
 yYw3vOKgoYLtsLhKZSbJoVVVlvRlGBpHFJI5AoYJSyfXoN0rcX6k9X7Isp2K50Yj
 qxV4v78xluh1puhwZyC0p8IShPrmrp9Oy9JkMX90o6UAXdGUKfdExJuGJfUZOFBT
 tNIMNIAKfMTjhpRhxONIr0emxxC5AQ0ETAEXWQEIAJ2p6l9LBoqdH/0JPEFDY2t2
 gTvAuzz+8zs3R03dFuHcNbOwjvWCG0aOmVpAzkRa8egn5JB4sZaFUtKPYJEQ1Iu+
 LUBwgvtXf4vWpzC67zs2dDuiW4LamH5p6xkTD61aHR7mCB3bg2TUjrDWn2Jt44cv
 oYxj3dz4S49U1rc9ZPgD5axCNv45j72tggWlZvpefThP7xT1OlNTUqye2gAwQrav
 XpZkl5JG4eOqJVIUX316iE3qso0iXRUtO7OseBf0PiVmk+wCahdreHOeOxK5jMhY
 kPKVn7z1sZiB7W2H2TojbmcKHZC22sz7Z/H36Lhg1+/RCnGzdEcjGc8oFHXHCxUA
 EQEAAYkBHwQYAQIACQUCTAEXWQIbDAAKCRABxeoEEMihegkYCAC3ivGYNe2taNm/
 4Nx5GPdzuaAJGKWksV+w9mo7dQvU+NmI2az5w8vw98OmX7G0OV9snxMW+6cyNqBr
 VFTu33VVNzz9pnqNCHxGvj5dL5ltP160JV2zw2bUwJBYsgYQWfyJJIM7l3gv5ZS3
 DGqaGIm9gOK1ANxfrR5PgPzvI9VxDhlr2juEVMZYAqPLEJe+SSxbwLozBcFCNdDA
 yXcaAzXsx/E02YWm1hIWNRxanAe7Vlg7OL+gvLpdtrYCMg28PNqKNyrQ87LQ49O9
 50IIZDOtNFeR0FGucjcLPdS9PiEqCoH7/waJxWp6ydJ+g4OYRBYNM0EmMgy1N85J
 JrV1mi5i
 =KVzv
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.179. Dejan Lesjak <lesi@FreeBSD.org>

 pub  1024D/96C5221F 2004-08-18 Dejan Lesjak <lesi@FreeBSD.org>
      Key fingerprint = 2C5C 02EA 1060 1D6D 9982  38C0 1DA7 DBC4 96C5 221F
 uid                            Dejan Lesjak <dejan.lesjak@ijs.si>
 sub  1024g/E0A69278 2004-08-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEEj2LwRBACdxv/Z/TqPsaxTmKrXZSOPnQca8L9UksW+71kI7YouAkbnnTyB
 maf7zCs0BDcUU6t2mO5ijJlxXe7Y4yMx/3mwGX9iWfWh5U9xobG0STcU8ET3ZQmZ
 /AM1vSL/weLK42YHxyqSrudt/oWxH4iDZFz5I/HI1DRwZMFhft3ja+pdYwCggAu5
 GwYrQlQJHJcCFbxnYUGJX/sEAJXyzea8rzP7dTUsaOYcLitIpy/eDI3vkB0aW7Uh
 JSicWASPW2erv99f1p2gkVQ0b0lrpMwPrysotfN6wLLYR0fowCWHm7hnASgohFpq
 VwB7aj0HDEHne7EIr6geSpnO8Y4QUtbFVWo9cq7HGzrB8NhwpLXQ5g9RgB+H9SS7
 SzVXA/4qPOAoJ8Fp+ZSznd46yd+dgFmVpSJuTs3g+hFolSioEkbi66fHwPMWeifS
 i02AkU8m/qiGMAXRwBm7s5jeLwQyJX38S4PnupPg8pOjZtLVYoTWaM19yuMGS5S/
 ryF5MaCGtuB72Wnsp67aZIkaHjfS4QAKo0WVH8yucnyOS+BFsrQiRGVqYW4gTGVz
 amFrIDxkZWphbi5sZXNqYWtAaWpzLnNpPoheBBMRAgAeBQJBI9i8AhsDBgsJCAcD
 AgMVAgMDFgIBAh4BAheAAAoJEB2n28SWxSIfMJkAnjxPSokKlZtVhYhAcgX9as76
 sadXAJ4yo003F9ilZw6avaThCBltR/MqWbQfRGVqYW4gTGVzamFrIDxsZXNpQEZy
 ZWVCU0Qub3JnPoheBBMRAgAeBQJBJQwqAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheA
 AAoJEB2n28SWxSIfOHYAnA9quQ97rU3eJHb1LzOTpwZVMSDxAJwJnLzSFQHfJu1f
 seG9fTyt5UpBAbkBDQRBI9jCEAQAza9XDZevfbu9BYjDESbKo38SRgyTd5/lIgzH
 IlF+9zGr2e9PH1WOIPr0m9m3LYQzkL3YiUm23UoJO7uhvWvCpxfChwVx3VFwM7Yz
 WqWBV+W27aZNROEmh5KheJACE/m6j0R6UECiRHZS/EsHP8FNG8roWro23ApNR0Vh
 zZ6iVNcABAsD/3glWDyCWMA/eX/YGPw3xN3hkENgruwtWKkK6TW6kYv94k4iD/b5
 bRsmIvGd31AM5/Qv/IQd7epXb2ovDaKvMl6+jAJb1NMCSzOkCnoqcQoKB0ed33d0
 JOVWuA34WCMZ2zHLFEtwuQkHZqmyNQcxRLGLkODo4WWsYNU7KeGHvAJDiEkEGBEC
 AAkFAkEj2MICGwwACgkQHafbxJbFIh9+8ACeNr7M+KLI/eWu6Nig8877cjrEP3QA
 n1Kfo14Pijwx26kysheLFV1jutrq
 =IfeN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.180. Chuck Lever <cel@FreeBSD.org>

 pub   1024D/8FFC2B87 2006-02-13
       Key fingerprint = 6872 923F 5012 F88B 394C  2F69 37B4 8171 8FFC 2B87
 uid                  Charles E. Lever <cel@freebsd.org>
 sub   2048g/9BCE0459 2006-02-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEPxAWERBACkn7HyvqMEJbJcf5eSJ57WR4Xoo1PU1GIsAYhdFhDOvmeWRZcH
 kwUyFyol4X3P7RyibrvZwnvc+nrqXqATzVeDHT2NhcTTeG7fq4E4a3VpdqR10uV5
 nswMRw/Arci7vuAQnmHzOYfnNP1ng6qLjA/CUizQ01WakhQeHGtbM9Q5XwCg2GEW
 H6d78/rWY2Lb2wo6cS+9Du0D/01cO9zPg+Mh2T43XdLMjnVp17jR99SuNajqJbBJ
 pNehq8yA6wb3ahZPjKtXpgELu7YI7omxhqcq1mxKvXa262aV72qdWqWoqvZzX0hU
 lOckg6Q6EO7qGvU/jOY02/tmHdzQy6UJzHB7JVsfZ9DGH5xW23AYmbD4WF8jXtyL
 Ey2eA/91IZpxEK7guIBt0FE0qMSCh5VOOlzOQkV+KtLswzEVPOWw/93wGpd/uilx
 jZESPZ70cSWuCWwY15FEFts/gs5gPhCs1h4asQI0Shft3sgQrBhE1/hg2uENccHR
 y1Af75hwezkwFkE2DUXFQqLuUlGu0sOtG+b7+IPrYuaGAB/yBLQiQ2hhcmxlcyBF
 LiBMZXZlciA8Y2VsQGZyZWVic2Qub3JnPohgBBMRAgAgBQJD8QFhAhsDBgsJCAcD
 AgQVAggDBBYCAwECHgECF4AACgkQN7SBcY/8K4dpvQCeMv7yFBMFOPxa8lF15IYP
 8LRYjaYAoJyIupvj/RgaM5zZXZdPUS+gro9SuQINBEPxAWkQCACPOzcRL0LbFubW
 3c8aJODeBG91aQRPz+ndMItFW6/+CW3EmyCGyaG8uxdtY0SOx0yALj4PiSj35s8u
 wqfsWFRuNixODl9lE8ihq4d5qfeiwpcAR9wVNwgnXD9boKXOOFwb70W+9pI/I4zX
 igHFxZQpndROhIFO1RLdoBlB89vV5iX/qzPKHFfmbbIkY4zvAsvW2MCly1WiEC2y
 GT5GJTFZgko5/VBFzb3VDvA0grCGGTbHK1hnfuuvouQPnbuawdSZO2XGMc2pFcKW
 gh+fgdw5Y/oQZelJKhLaL8Lz27buTz2sj5O/cYv5n7wDD/kSnb7+pd//qagox3JZ
 bGXKTED3AAMFB/42KW+FULr4keaGuhAZ07hrNs73Uw3QTTNIUYYOkSJVvgold8RX
 HMP38WANIkHtB3LBaZBxhqAOp2R5AppIPfyDrp1q0lTOGpzWfsQNQd10KRsXZGkf
 K6INVa6kpzQhNDxBUyLh4onp7hZyt9zXdZrfYJLexbxrxkP1LDRDNJJAY29LnVR2
 vyDHPrB6mmgijy07S6yKwC6iJIRoU8w4X3xFqIQ+KcA6VBhXqtqxSjk7GQnwyB7Z
 7l4Qg8iZvX5qj753w6BDEwDtXlCCbocDVsu5xcLRPwMN8BgH7XcYCwmZFEU7IgEk
 RAhqiHsjpnO7al5a+HQJi/KMOs5aDfwdkI48iEkEGBECAAkFAkPxAWkCGwwACgkQ
 N7SBcY/8K4fTZgCgiVDpYWzuROUmau+CUT/UVCatpHUAoIyg/KnHhe9PUB9Gav5+
 /KWhtyRy
 =T2Vu
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.181. Greg Lewis <glewis@FreeBSD.org>

 pub  1024D/1BB6D9E0 2002-03-05 Greg Lewis (FreeBSD) <glewis@FreeBSD.org>
      Key fingerprint = 2410 DA6D 5A3C D801 65FE  C8DB DEEA 9923 1BB6 D9E0
 uid                            Greg Lewis <glewis@eyesbeyond.com>
 sub  2048g/45E67D60 2002-03-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDyFNecRBACKn+4b36n2/e55yTfpLXS9a57gQNgx0WXBfbK9LMLf2D8otD+0
 z1DW2eclAOwJVtPftjvYP0HKFVC8Pes9Wvp6Z0sIEPpdkL2NPlUuxXUyh1b92u7n
 Bpt7Uwsom88fnn+BOPrvvPL8Arg3JBen+Jd8o9yRoABCYku8vQF6CEUDcwCgmHJd
 9hZ/kRb1rLdSLssB4VMQ3zED/0/SVm+6XV+2ObXn9FKQpCC6sMSq+PCoR9NzAVRI
 njTtkpyR0fjJZr69IN2E2MWPonv38Xg1tWJnR3fKUOnNqwiVHBQKKrKa9lGWsZQp
 TrR+ihtJ9hC626dCq9JDb1Ls7TXn9ha+d0WNuqiwugto/myHm/GVlCANhGzUuDNU
 Mo27A/46YEAMuhSQWOxgSZ/Z5g0ybgpswVePrxvD4sX2/AVfKClOYpPiNJe+S7YT
 JmfIPkpP2P7v+87BaN/uWgaFmxlhpUOIuat44w52EwwGB+K24cGgq52XncZsYTYH
 SrLitkRtt35tVdnn1v3gmDi83M8W/YunflpeJAgJC0QzxKuar7QiR3JlZyBMZXdp
 cyA8Z2xld2lzQGV5ZXNiZXlvbmQuY29tPohXBBMRAgAXBQI8hTXnBQsHCgMEAxUD
 AgMWAgECF4AACgkQ3uqZIxu22eCkCACfUuNYpGGlFboDl5FZeXlor/k/hogAnjyq
 /Vw8amjEN34PGuqBPQpMnFrwtClHcmVnIExld2lzIChGcmVlQlNEKSA8Z2xld2lz
 QEZyZWVCU0Qub3JnPoheBBMRAgAeBQJA/XNpAhsDBgsJCAcDAgMVAgMDFgIBAh4B
 AheAAAoJEN7qmSMbttnguMYAn14cqGfabS626P1D4GMcSkSagzaZAJ9LyH+vMrfn
 OI2x9+VLyaTSAvm4zbkCDQQ8hTajEAgAmuQukPFaefkzE7DTIgSDIc5vRmUHDs01
 bGp36R7f5GEmXwNtCZ+Mf+H54QSzuNh1QaJ6Nq/iYd35LA03/I7AgUFwSX1cEc/n
 fNjxqS27CAab6nIt9Syb9WAAKUKDMwZCjHBNv49CAPyVVb1aTUCJyUcv1gGSMNHX
 r2bkWpa4nIN4+rqD3hifHCX1j/2XMkmYY8NCVTY52zqO4sCbh+ohAMfYtW2yV2Iz
 z4ngppp0fUbmlGV6DVvTC1Mi61UCDkhO+TZFlE3qXeGlP5GR0SbpdQmPiI0Jpinq
 Zs43gcd2xtiUBM7HAMoQDpyFirDuyDKUgMWJrtJtAwWa4cf4Luh/fwAFEQf/dqpH
 bl48tu+REAPrjk9NWaGVqi1vv0r4LJXo8db9aGxwwAzKXDhwqHo69E6l4/Rd+hsa
 sIJE7vGNbGK+uerTg/W3jot90MqraplXHuS54TjOMyzWSSG7S6ypmDf5YnK3xQE4
 NfTYvC2GxphotkE+QmBzmeft/Mo3opVYlv3OOBqiQoCYB348rXczxEUPam3bFBw1
 wp5XjA0kqYRcUbxNE5AK9c+g6R2c/jT96EnDZDpMRCNZiAKHFLEjtHy66BiVHKvg
 tijWD0kxtlWV8KAKN6OhUpSSsCv53jsCIntNARAVENOKOV0RQVDfJgykeK+3eeNr
 UdIjAWFAWcVOEw5TQohGBBgRAgAGBQI8hTajAAoJEN7qmSMbttngHb4An37mZU8r
 E3SGCAlTJCLV1JxRDXVyAJsFBVshxisn1GycdT3UCwcJVAHJ5Q==
 =bx2+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.182. Xin Li <delphij@FreeBSD.org>

 pub   1024D/CAEEB8C0 2004-01-28
       Key fingerprint = 43B8 B703 B8DD 0231 B333  DC28 39FB 93A0 CAEE B8C0
 uid                  Xin LI <delphij@FreeBSD.org>
 uid                  Xin LI <delphij@frontfree.net>
 uid                  Xin LI <delphij@delphij.net>
 uid                  Xin LI <delphij@geekcn.org>

 pub   1024D/42EA8A4B 2006-01-27 [expired: 2008-01-01]
       Key fingerprint = F19C 2616 FA97 9C13 2581  C6F3 85C5 1CCE 42EA 8A4B
 uid                  Xin LI <delphij@geekcn.org>
 uid                  Xin LI <delphij@FreeBSD.org>
 uid                  Xin LI <delphij@delphij.net>

 pub   1024D/18EDEBA0 2008-01-02 [expired: 2010-01-02]
       Key fingerprint = 79A6 CF42 F917 DDCA F1C2  C926 8BEB DB04 18ED EBA0
 uid                  Xin LI <delphij@geekcn.org>
 uid                  Xin LI <delphij@FreeBSD.org>
 uid                  Xin LI <delphij@delphij.net>

 pub   2048R/3FCA37C1 2010-01-10 [expired: 2012-01-10]
       Key fingerprint = 27EA 5D6C 9398 BA7F B205  8F70 04CE F812 3FCA 37C1
 uid                  Xin LI <delphij@delphij.net>
 uid                  Xin LI <delphij@gmail.com>
 uid                  Xin LI <delphij@geekcn.org>
 uid                  Xin LI <delphij@FreeBSD.org>

 pub   4096R/2E54AB2C 2011-12-05
       Key fingerprint = D95C D3C3 8FA8 25C2 C62B  9FEA 0887 6D93 2E54 AB2C
 uid                  Xin Li <delphij@geekcn.org>
 uid                  Xin Li <delphij@delphij.net>
 uid                  Xin Li <delphij@FreeBSD.org>
 sub   4096R/7832B740 2011-12-05
 sub   2048R/BC50FBB3 2011-12-05 [expires: 2013-12-05]
 sub   2048R/C894647D 2011-12-05 [expires: 2013-12-05]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 SN0=
 =idxn
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.183. Tai-hwa Liang <avatar@FreeBSD.org>

 pub  1024R/F4013AB1 1998-05-13 Tai-hwa Liang <avatar@FreeBSD.org>
      Key fingerprint = 5B 05 1D 37 7F 35 31 4E  5D 38 BD 07 10 32 B9 D0
 uid                            Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQCNAzVZoYQAAAEEANP5N0PqWEDO1ml4yfxXCQ+hEhaXyaGyNboh6uLX7uNPXQTI
 9veETXNd20Fu+8yuzVFJk+KmmGerUzduHLXm6q+szHBvEQoJ2ZGk9AL9jj2JjFRj
 rCRsf6mk8SWuL0xDBTu04bZZ2ttNDxNiymNTqdBVZmX6Mdg/T2i3mv/0ATqxAAUR
 tCtUYWktaHdhIExpYW5nIDxhdmF0YXJAbW1sYWIuY3NlLnl6dS5lZHUudHc+iQCV
 AwUTNz0HC2i3mv/0ATqxAQGQ2QQAww0WfeHFmupfTBWWdmNSX9eCDIfN7Wsuiu54
 DgCi7T7ixQa6reIsMAKx1KHNX/GSBr+t3nyHT7N12Ee09qKXywQAw9W2nrdMGE1V
 nENHEFgJtvnoN76U1goANEfZGnLLhyuDoMyZGCZmVG6FiV6EoKrWxfwq+jV0Y9K0
 3AI/Cny0IlRhaS1od2EgTGlhbmcgPGF2YXRhckBGcmVlQlNELm9yZz6JAJUDBRNC
 H/ubaLea//QBOrEBASTEA/9H+78uZl6JvHwGKOXyZkrRCLTUgifJcR3thVfynGrM
 AImheJwqgVP7FQojDk8xBCBQ1b3tpwpeRPwE0V/Dr5MkFLfiaVgCIfMibqcc9zuH
 i4RYcRqKswiO3pFeDMyHiSxylURcHfx73CYijIDyG+HPiCQ4OGd95VJywUzOVddn
 +g==
 =jIT8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.184. Ying-Chieh Liao <ijliao@FreeBSD.org>

 pub  1024D/11C02382 2001-01-09 Ying-Chieh Liao <ijliao@CCCA.NCTU.edu.tw>
      Key fingerprint = 4E98 55CC 2866 7A90 EFD7  9DA5 ACC6 0165 11C0 2382
 uid                            Ying-Chieh Liao <ijliao@FreeBSD.org>
 uid                            Ying-Chieh Liao <ijliao@csie.nctu.edu.tw>
 uid                            Ying-Chieh Liao <ijliao@dragon2.net>
 uid                            Ying-Chieh Liao <ijliao@tw.FreeBSD.org>
 sub  4096g/C1E16E89 2001-01-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 gJ4OtCdZaW5nLUNoaWVoIExpYW8gPGlqbGlhb0B0dy5GcmVlQlNELm9yZz6ISwQQ
 EQIACwUCOuXFUQQLAwECAAoJEKzGAWURwCOCLMgAoJGhtnPbzYhZWHm5S9Dkgmvj
 QsgvAKDq9LzJ14Sojrtpxka5F5iViLoqEYhGBBARAgAGBQI7J4TCAAoJEGvZyNJ3
 mDKxzzAAoJFFuWMLf6HHO0TiPdafPjuruVpuAKCC0eE7oh9t4xMlTb2SYWMpZS9p
 hokBFQMFEDsyHL7DfcPfQ7mVNQEB9KQH/iLaexNwzgB9efMXg6RH+TtaWzxBdeEc
 7CD9oxjG/1tsfd8S10UScnr+JHTDNn3eh5KdQDjPmKkedPngAIjKHvb/Jux7jcxO
 OLmRnVeFD1kMyNlv5ggtJcHJ4QXe4rBko68qyU5ON9pvA/h7Xe/ulGw71dOCx0T6
 jBlpmLF8AZlHW7z8OS+DYa7fJFI65cDbtd6c9hM+O4WNj8PK7p6MPgilIaWsnJq1
 lS5fkaQK+dqaIaVEE4WqTt8v8xC805X58HZXRFma5D39yGFNd3LRCpu48mM5LDLT
 Q7tfs9jn1Ru7iUHyjI1Jel0hvRGblL8iW/zvwmS/XTXPsh3H0U/WfWG0KVlpbmct
 Q2hpZWggTGlhbyA8aWpsaWFvQENDQ0EuTkNUVS5lZHUudHc+iFcEExECABcFAjrt
 DlEFCwcKAwQDFQMCAxYCAQIXgAAKCRCsxgFlEcAjgknjAJ47s3GGw/KsEHKDjjRi
 D/kcOgiNZACgxKgabQRGmvwKMl8fTtNxiTbAyDOIRgQQEQIABgUCOyeEwgAKCRBr
 2cjSd5gysSzKAJwOKSwO0ZIm9II4sjcxWPeNUHAl5ACfXShCxB2mVs6kRDsD1o7f
 aWeuChCJARUDBRA7MhzCw33D30O5lTUBAaMTB/0S70cAqqqAqrJBZosRZhmXWixk
 Ah1gMH8SkNVygA3BE3k4A9LC3LNyvlnbCGPFH8PYvN8ymcn3sSPu9nyHVZ31VDU0
 mp7JvKeW49tWxBeoFWpNJeNxTv2aNpFCLahpiwcDt/HW8/1NC5dJirDrIrVTrhWG
 85UUYeGmMX/5qC7bFh+Y5FC6HxnFTCWlxpZQDtWw4Dbf8r4dMrw/2I9Uubj6brEx
 LeOG2gB5UAuSS5Brp/9eiAlJs6jRgLU883IzpIhYanz37nJcLV5MVHhbGiR1Yyhr
 IQlO4pQ2f3VhaEpkUu63x6lxfyVVJsZZ+vZU6EvtJSFACWR1nK2SbszGt/FRuQQN
 BDpaoxcQEAD5GKB+WgZhekOQldwFbIeG7GHszUUfDtjgo3nGydx6C6zkP+NGlLYw
 SlPXfAIWSIC1FeUpmamfB3TT/+OhxZYgTphluNgN7hBdq7YXHFHYUMoiV0MpvpXo
 Vis4eFwL2/hMTdXjqkbM+84X6CqdFGHjhKlP0YOEqHm274+nQ0YIxswdd1ckOEri
 xPDojhNnl06SE2H22+slDhf99pj3yHx5sHIdOHX79sFzxIMRJitDYMPj6NYK/aEo
 Jguuqa6zZQ+iAFMBoHzWq6MSHvoPKs4fdIRPyvMX86RA6dfSd7ZCLQI2wSbLaF6d
 fJgJCo1+Le3kXXn11JJPmxiO/CqnS3wy9kJXtwh/CBdyorrWqULzBej5UxE5T7bx
 brlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJP
 PT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrU
 GvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVb
 GI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcp
 esqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6z3WFwACAhAA4vXK
 JfvHChbHRCc0z99UHVCluHwRUDopIFNfuBmiAOA7Ozz19dmYBKDgudZpDNZtbE4w
 0S2eW3xVTkPUWdrhr0jDcibkhpdFI+Cp3x2zOhL16Yug1xFSqWDSOo3QX4eBVxMH
 0sCHiZMlcx/QGl1bwZ9PpO10PttjloI2SqWGUNK9FGDjVfJoX8YMy5DG4rLcaS8+
 m2IOb9BiYoRs2Dot9KZjWtL7+CDrFmLH4q8P6OHiE0RJy+7YoTvsHr0JU6suasHK
 NPfzrXlWZ8C5sKX0XuZTJNkfKojMVucM6olzpaE04NAtKjDffHr7Rr0md/6Zy7ru
 gJIOwClDyfMmVud0J9Sx/pLKlldakJl25Xfctcz/DXZJNGpvfeMm5+pzR/zulQc1
 zDopdrSq261hJKE/5N6tPflXz9UreUdRm1mZV7SEgCKODMxSxexRfw51O0fk3vZ3
 rfSjSgeIz9Fs3ypJHCd2q5C4LDa5XgX8vNSYxLKIevu62BnQXJVTKCyuvzUGOrvs
 nhKzR4GjrMm2575e+pxojQPVXcytFqzn4CS3QTWHvm+J1EzFwhdpR2kXAmaarpye
 JbUjuCDHDhJPegXY0oRa51lLhvcij1U6smqutADIQSck5JmyQKuC+x7Y8iLk/HSO
 3uni8G44oFCf9KJG69f5Va0RHgjBUOZgKMAlKA2IPwMFGDpaoxesxgFlEcAjghEC
 3KEAoK+jSxWG0hQa1aK0vkQ+IvD+Ag7EAKDahnKlbMifGmPSpYjK0zcUeojzyw==
 =NLH6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.185. Ulf Lilleengen <lulf@FreeBSD.org>

 pub   1024D/ADE1B837 2009-08-19 [expires: 2014-08-18]
       Key fingerprint = 3822 B4E6 6D1C 6F71 4AA8  7A27 ADDF C400 ADE1 B837
 uid                  Ulf Lilleengen <ulf.lilleengen@gmail.com>
 uid                  Ulf Lilleengen <lulf@pvv.ntnu.no>
 uid                  Ulf Lilleengen <lulf@stud.ntnu.no>
 uid                  Ulf Lilleengen <lulf@FreeBSD.org>
 uid                  Ulf Lilleengen <lulf@idi.ntnu.no>
 sub   2048g/B5409122 2009-08-19 [expires: 2014-08-18]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 L1JhS/1K
 =sCn9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.186. Clive Lin <clive@FreeBSD.org>

 pub  1024D/A008C03E 2001-07-30 Clive Lin <clive@tongi.org>
      Key fingerprint = FA3F 20B6 A77A 6CEC 1856  09B0 7455 2805 A008 C03E
 uid                            Clive Lin <clive@CirX.ORG>
 uid                            Clive Lin <clive@FreeBSD.org>
 sub  1024g/03C2DC87 2001-07-30 [expires: 2005-08-25]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: PGP Key Server 0.9.6

 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
 tF/cItKqIqZ9RhFcg+IisxgUtQ==
 =g51D
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.187. Yi-Jheng Lin <yzlin@FreeBSD.org>

 pub   2048R/A34C6A8A 2009-07-20
       Key fingerprint = 7E3A E981 BB7C 5D73 9534  ED39 0222 04D3 A34C 6A8A
 uid                  Yi-Jheng Lin (FreeBSD) <yzlin@FreeBSD.org>
 sub   2048R/B4D776FE 2009-07-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEpkXvABCADnsekA8rnN29OpRPBgLBo2RzYI3b+FCSkPqDatHJuGSfTqFUgi
 2WI8QItI0toqcePNpNtgyHie5jqsX3/yFBRGO1xyCSIEMSbMiOtZZizYLqlLW9pZ
 seNxwHBetogToNoveYHXNGsrptkqir5mx+vtSO5o6DFcDZYQRgZq9NTnKnuJkYwK
 wnujkHcTpUVw9pmnwj6ZxZ5V8fboCzd9ET1SmWH6194tpJ0Fq/HX9qGfF/c6Kl+e
 Hwz7TFi/hpMwsdwjz07SrDi8bumuWNpwZprOzHKORbHfdg3GZaEPcLhF7qjvYunk
 osYrnyUmz7+FpTJVg3u2Pp3eL0xdXU4TuwTfABEBAAG0KllpLUpoZW5nIExpbiAo
 RnJlZUJTRCkgPHl6bGluQEZyZWVCU0Qub3JnPokBNgQTAQIAIAUCSmRe8AIbAwYL
 CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEAIiBNOjTGqKQTYH/3kkQL00ibVSNCHH
 2VNfnV9tyIDBIorMHFctEZ+zTQ/mQRxXUS3gpD9pg4nYNJtrstIWxH9Y8GxDTjQ/
 pJsVbZ6WcYXANwihoH1jQetSR4ZZDLrVynSWQ2WeYg0XEedKxV6ZmxZQPAbN742o
 T8ehZpThFSaPVDtIYFh0eVnPkwsmR/mC5DQDGkwb2p2bsxdbkYCWLLRiS5buGFyZ
 iHZSe+D+mRJq5kxZriy2pSXcQUlqZk3jvpC9mXr8QzAwyzbPwHRak5NNuQxxCJGh
 CBDzTSB9OsJrLd7WOxISii2k9ZszP69EymO3wTpSnoCPyUllOsdMa0291xv8kw0c
 3ytWz/65AQ0ESmRe8AEIAMYk6s/25zGN9qnfbTjwtxPD2/K5AeyJaQ+kZ5kiOZqn
 DlpMawMccq+yvh25oX3j0NUug4j35FKFZqnzpLx4KizbJjhZX+V826lVsf9kx6mR
 UmpYAlOb1qQUZMuR2+41eVnuieAqNyFH4pjp2zR6mhaoI82a1AMeOdhVOLfTl1+Z
 mj2sL+1J+fkcBxuhMEC30elVKxuQo/8NphZlnZe/819Q3HDsuw2mEiQMWH2y/5B3
 aSpm7/LY/L13YI8oUNWZrvjJZYSYyFyhDryzkP60251Dhfwlu2792Jt2Y4dm/zVW
 Yi/QpUdoPLRqEQjipiBg1sWLH1UGYys4muUxBoUQItcAEQEAAYkBHwQYAQIACQUC
 SmRe8AIbDAAKCRACIgTTo0xqimB4CAC9MJzYzpUgnlhh275aZs6pXJnK9dty7HpQ
 zJ6UpoR7oBcmYivlAXaFBB0jxsAAzu3wKXwC9IOZZAB5y9keXWkG/2zdutJJ687a
 HAjXUUPi3QIF1uPGgvpEQPNfn+Gki8c3B/QOCVhKg9UEtewRzT8tZqCubeZLmc7L
 NbNX5xOta92KD29XOCXX+6htRJ3aBTn6nNzRdBpuVxKhzd+eLg4gRMKJebDfDXrG
 fkDmHta2l1EdhlLxyLCvLd0x0mMGS9rMBuEaTvc5hka6YsM7hhGMZe//CjCO8mGl
 CZyUepEymoFG7nCPpMTgZFxCHzOOljsoaEeOxg6aS2kNv2sTcDkJ
 =cF/N
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.188. Mark Linimon <linimon@FreeBSD.org>

 pub   1024D/84C83473 2003-10-09
       Key fingerprint = 8D43 1B55 D127 0BFC 842E  1C96 803C 5A34 84C8 3473
 uid                  Mark Linimon <linimon@FreeBSD.org>
 uid                  Mark Linimon <linimon@lonesome.com>
 sub   1024g/24BFF840 2003-10-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD+E2XERBADU5F4DbwP8KaHN1H+yz8zaPjOSLJushNA8Qu0hN7GXqd5vgRDc
 zzzeZIzVVxPVdrQ+I24UwSIYu4ww6nfum6kRv/i5khxbYM4zGGPG7s5pmqIECum1
 tKvJ21IE823lcJtUp0C4qhCTZvoc3lADMn9cPgOSJClzHjAYDasOTy9hhwCgsTqP
 aHntu6Uj3BYpurWHJSePWrED+QExF2asNPehIOZ4l7dwpaeGSTxeINH1FYnlF+J1
 N8lvpFQ2H3sfSViVgAtqM27Y/jOf3EkQH0Wym0iCczOxEUFbNH5NWAm6IOVT9owo
 tkh2PZgyfN0AJZBPh9d/oMN2MEKPb6wcqr3c67ZmQG7B+LGliBSVYhWDbd6E2YHb
 bvKVBAC0pL8fzNldEQUUYDTTrWhMVCr7IGzwrd6cEhIZ6b5kqQd1IsIChVG3jCVL
 wWGSgmXY4J7i4Ujsx8k/f6CluNLwmP5t9caycz32QdJAWkzQq2x4AQUy56HDbvui
 QFOqD+PGWqvoUUyJqLbzoASI5dcV35OY+m37Z1Wxhsn22WBE0rQjTWFyayBMaW5p
 bW9uIDxsaW5pbW9uQGxvbmVzb21lLmNvbT6IWwQTEQIAGwUCP4TZcQYLCQgHAwID
 FQIDAxYCAQIeAQIXgAAKCRCAPFo0hMg0c5j/AJwO+VSVExRY8saToDKF3hVe4wNE
 EwCeKFf5ysZjQIJY3pJ9tUzm8o3tX+i0Ik1hcmsgTGluaW1vbiA8bGluaW1vbkBG
 cmVlQlNELm9yZz6IXgQTEQIAHgUCP4yK4wIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX
 gAAKCRCAPFo0hMg0c8c4AJ99m0hHLctAVXjfZYurZBnl2dUL7gCgiG83BXm30rBa
 POtWm2AstMb6uVm5AQ0EP4TZcxAEAMQPPoRMfBR3cRc/T5NsWunFlZA6nB+3BkVd
 p0ham4FoseEh7q+hqa8udARMpTc4LIIL4FU6lIa4L0s3Z77d4bXfJmwlUHuUMSk0
 tnG003D4VDBc3HWSSX/W/CRyN+OBxPljJywTjI4goyXx9Lc31qwpGqYy5Ao8X6EA
 TT9g3IgzAAMFA/wMgON1JxPGr8MSvSLHLMY/xn2PR8lSVZmOlbhNE5hL2FzyFME+
 Pnc8hR31cohFjSXR7hb6SOWrZjYpdIVsa6qdqXIRDbcb5sKEGv9959W8yt+L/kNr
 RlN3oExA2pkYpEQfLpH0HdMmbU61NR0cI6p4ZZly4p6JR0kEajaUOlq/cohGBBgR
 AgAGBQI/hNlzAAoJEIA8WjSEyDRz9lwAn0pJVzrxxaB/PqtJsu034bH5PnlDAJ9G
 axdzE7A6F/UPmrURep9QFDq70w==
 =GflG
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.189. Tilman Keskino:z <arved@FreeBSD.org>

 pub   1024D/807AC53A 2002-06-03 [expires: 2013-09-07]
       Key fingerprint = A92F 344F 31A8 B8DE DDFA  7FB4 7C22 C39F 807A C53A
 uid                  Tilman KeskinAP:z <arved@arved.at>
 uid                  Tilman KeskinAP:z <arved@FreeBSD.org>
 sub   1024g/FA351986 2002-06-03 [expires: 2013-09-07]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDz715ERBACtUda6yExghzQAimIJ+aH4fKEXDYUXk07t8KURPZD+LOCuQkwG
 DF71fklUC5tC/aYOXtHkBD0trw1rxtCuJxtdwSioeCi/gslrd0X4iTmsd6cPsJ0v
 ZFmMcJpwy1TappXGeaZ1q67MS59itR/TTRv++z57mJBVtqPLYGLUH/H6mwCgkibF
 7hxfeFLg5UEQP1EKw/JWZ0EEAISeVnxqgJDaf5VsRRfdr81bxTVh5G5DksisElrr
 +ipHE0a68UicR+ci8Hg9mPxsJB9Qpr5fQ5NTd1UtEJx2C40LaJvebtFB2UJu7SEY
 jwQ1KzoJtbU0IfnHUGIqog+l2iLFDJdwho319kJzsatHlt1HT6Kt2ZCV6w0G/PbH
 +gDlA/9ocHK/4MuyM1bbHP2dYv+bbY9PgprgdNQYCowqRsjGFuuV12Oc1CJm5Ksl
 tLunUsa2DupQUe19Fw5A7nyU1Em5sRESCNs0RE6YgxKb22OuoejPS+u5C9agDKa1
 /6yHHm0Yk3FdsQh8uiCvGo04y32riGQZxwX8UHGQdd7KSSCDkLQhVGlsbWFuIEtl
 c2tpbsO2eiA8YXJ2ZWRAYXJ2ZWQuYXQ+iGgEExECACgFAkyHxYICGwMFCRUvhGUG
 CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHwiw5+AesU6t0gAnR1vfSnqzBeW
 ZMfloD9duNt2e6NIAJ4w2P2K7U+RiJ58vykWWlCoLT8gkLQjVGlsbWFuIExpbm5l
 d2VoIDxhcnZlZEBGcmVlQlNELm9yZz6ISQQwEQIACQUCTIfFoAIdAAAKCRB8IsOf
 gHrFOmOEAJ94FRGDYV+/TVAj6akdxTh9Qz3rFQCghXKiqhEEKEfSj+zJoL3IgO5q
 PIGIRgQQEQIABgUCPQEmVgAKCRBnwwMIcls3xu0rAJ9JTZQq3Lf0+JqbomleFZtj
 owgk6QCcCyEGx6Ov/eo1AUrzZlvLrTTLa7OIRgQQEQIABgUCPQEmWwAKCRBnwwMI
 cls3xlbnAJ4mqyE9U2svn5pm7AyG/j5GOyhOqQCfahDzCmIa4k5hMs5vZpPUlShq
 QAmIRgQQEQIABgUCPQH8LwAKCRCVZB9rJT5Y42Z6AJ9PWRjpvTsdMirhUI8FPcif
 ZdtmHwCdEOO9K/CNIpQyOOelSGIy1drTtIWIRgQQEQIABgUCPQH8LwAKCRCVZB9r
 JT5Y48oRAJ437TebpR5qH0UHfd2BigyWaGwLzgCdE0+oofRIkvnxNcc32E4VdqBW
 kYyIRgQQEQIABgUCPQPwmQAKCRB4y7mVGlcnua6tAJ9jIuzgIiKw4J1Dg0Ok2K6m
 uNs1GwCeO3jLGFFDbcdSW29fc0dC8WFwlFyIRgQQEQIABgUCPQPwnQAKCRB4y7mV
 GlcnuRJOAJ9LS7+vS3boxnAKsrPYd0qO6+2RHgCgsYwJn6OfnTm/cKC/4j+kLLRR
 a/yIRgQQEQIABgUCPQSwbAAKCRDOPNFAdhcTZ/dVAJ9p/xqvxrQiRxRun1BChjrp
 2gLxzgCfSpgGYCWl0Ft+BsDNoh40hvaemJCIRgQQEQIABgUCPQSwcgAKCRDOPNFA
 dhcTZ4btAJ9wSIQYdIiQid8R6N2kP/x/pj2bnwCfbZNfkGKHvzGBPdQ70pLx/1L/
 KUGIRgQQEQIABgUCPQTAOgAKCRBRrPatdb6Al1fBAKDiw3qCoOb8YoOALI/vsy2z
 cixyiwCgmckWY50BzodtvSfalArBAtKKTN6IRgQQEQIABgUCPQTAPAAKCRBRrPat
 db6Al8WrAJ0UGWD3ifEeDXhBYDkF2/EIlfuMOwCfaHvJ5BzWEak/uQAEYUzWb1+G
 rF6IRgQQEQIABgUCPQTZgwAKCRDjd7Y7dn78JGHdAJ9co+txuo+4bCpDy8560dIx
 9YenPgCfeDK3ytrX4InMm4qJ5HcAvyCpSS6IRgQQEQIABgUCPQTZhgAKCRDjd7Y7
 dn78JOxkAKCKAbcYrsygWfCdxRvMnKLZWmkGpgCffubUsi7Xsb1Nw3mjxHCw7zz5
 R46IRgQQEQIABgUCPQYM2wAKCRDu+906H+KB6xZ6AJ9+bKkfquLOJoiOCYHoo78E
 G+pAPwCfZOMGKKJ1ikkGjRViaA1Ygpvih4qIRgQQEQIABgUCPQYM3QAKCRDu+906
 H+KB67pwAJ9rd+2ffHCswoNT5zFIGbMc2qiuyQCgilA4iXbtYLDofNnkhusAnZ1N
 xr6IRgQQEQIABgUCPQeqDwAKCRA60+bKhIXg1yIIAJ0dlX4z/nm6sOKwyMKLBqSz
 QILOkACfe84UC47kK0loZF3N8wIZdIq61fSIRgQQEQIABgUCPQeqGAAKCRA60+bK
 hIXg1wZhAJ9qENZjzGa4hlWBMU5fODifYAJ1GACgqf2BCJf7l223znEV7bfiev49
 BVyIRgQQEQIABgUCPQp2qAAKCRBo7eMoW+RPkQEaAKCK8dGWQR8826M6a9kqjnNS
 ivTt6QCgoFPjtj5etufSylh0fMnmFnit/Y+IRgQQEQIABgUCPQp2zgAKCRBo7eMo
 W+RPkTUYAJoCV1CKRKzY/M5FlqXN3rq9xdRajgCggYofPiicSisbS/otey5jWd4e
 AC2IRgQQEQIABgUCPRc7QwAKCRANYRDWc4/ggTieAJ9itqP41RCGmuhB4EKjZ9u4
 tMCk7gCfeeAEjOLBk3Wshx4x00gzHZDiARqIRgQQEQIABgUCPRc7RwAKCRANYRDW
 c4/ggX4WAJ9eeEaBe2+ll/9CSagciyWQNgkaxgCfYJKYo/lHMJ4lZf67t0mDWQWD
 FeeIRgQQEQIABgUCPRojqQAKCRBJgeBkiD9BQiUKAKCnJnqI6VJ7T/mqeuuj4Dk4
 boEA4ACgnq8b8KWuYL6cdq1kMD7IKcKTo0+IRgQQEQIABgUCPRojrAAKCRBJgeBk
 iD9BQnifAJ9VmfUOZsTF6iElfMCc357hzDtYcwCgz9NrPqDjBjkGfA7rKJh9TAVy
 2hOIRgQQEQIABgUCPRsZ6QAKCRD9n8P2kOHjRo52AJ9I4xD6dcE1t6dEfFtYETZ4
 NcG5twCaA43zN7DTVQDUfWDpKTjlY8kArbaIRgQQEQIABgUCPRsZ7QAKCRD9n8P2
 kOHjRhv1AJ98t2dICzYBBz5HlGsCx2ZDz7qxMgCgxETlcarFyob2qPD9nQQCf3pY
 seaIRgQQEQIABgUCPSRdQAAKCRAoobUtGtp+LBhcAJkB0Bqy3c8SwgQKgl/MzEoE
 YpritQCgi684AJUo0mnOinIE2/l3kF2eNemIRgQQEQIABgUCPSRdQAAKCRAoobUt
 Gtp+LHUmAKCSBapTT6fM+UZH///UVFpxvC4SlwCfb5nT+bUE7ZJpFeyh2FEuW0Lb
 qUKIRgQQEQIABgUCPSdrOwAKCRB9n5GQbyq7LUyQAJ9COAIJ//JkGcLriMigxbk+
 scY5ywCcCwwddbIFHQIeaZ+RgAO8l6cnA/yIRgQQEQIABgUCPSdsHgAKCRB9n5GQ
 byq7LbgQAJoDxrU5j5yyPtUZJ9HRpkfs5M02xgCgwlE4kNBns6e2o0e1kWHY7D6b
 Ku+IRgQQEQIABgUCPxBYpwAKCRDW+vrdlS8//8wyAJoDPD5/H8mMBTdksT/Z4cQk
 NvYiXgCg3Hj1WjHKPtGtxAhHQvCvX9b64DWIRgQQEQIABgUCPxNE5AAKCRDQGfXv
 kCeriLl+AJ9Ry54K33xm7c5vKpku6cG4V3vieQCePC35hyeG/e0uaVOWfYnTpV2b
 GOKIRgQQEQIABgUCPxNsiQAKCRCt7CzRGpU351J2AKCGTahKxvPGtau2BMyBsa2C
 TpzabQCgiw6XHiA0NGhIZj7FKBaesIYOqdeIRgQQEQIABgUCPxZMXgAKCRBGzFxj
 8xilaqJTAJ9IMeY7rr3iuXFzhNdjN3qCh/QyzQCfdLgTk9GoTkkzwTWmETaxtTrb
 RxiIRgQQEQIABgUCPyBAfwAKCRAo3bD9Gcm2umvvAJ9ADmBcT63Qw/WqzdaIwkeH
 YgHnBwCg2IsMb94eYaC36CWvqXhudUWq8L+IRgQQEQIABgUCPyi28QAKCRBvI4vC
 T9paDO4aAJ9f0ZBq96krpf/RC67r6JsTCdPkJQCdGY/mP1lK/eoXrbiHpszvtKPw
 I9yIRgQQEQIABgUCPzX8tgAKCRBp0qYd4mP81D2jAJ4khMiylYyWBBQCM4JqcTbg
 BMP/JwCePS8q0JP2h6G213vsEzAtje38hk2IRgQQEQIABgUCQ5xYNQAKCRDGBDxW
 cgdxN0YpAJ9B4X+LppR/fJ3YY0LOsP0GmVjyeQCfV9k+QUVkH24F45BB0lEzG+8U
 uB2IRgQQEQIABgUCQ5xemAAKCRB54pxgsAY/51k0AKCQ3dWs1NeagQclUiclarjK
 QXlKjwCeIHQYiXE+7eKuCquNQ5Kikx/6g+aIRgQSEQIABgUCPQTfCAAKCRBxXtag
 fnuKyaTAAJ9DrEeMA/leLmS87AqDA/NLwis0+wCggUVtAjyQJGUmw17U9mdddN50
 7mOIRgQSEQIABgUCPQTfDwAKCRBxXtagfnuKyURJAJ0YPZBeSeWizylylUypUaIa
 bZsNcACghS4ODcpZcWMWAo+V35lLaZq9YVeIRgQSEQIABgUCPQTnQwAKCRCP8RrF
 3+gPsm0dAJ4vPnWGCV6GIciG/cgpMeVKhlssvgCdEpvkHMCZccw/sCwHIxtQ8UEK
 +tmIRgQSEQIABgUCPQTnSQAKCRCP8RrF3+gPsni2AJ9VZS7tSKFWzMVW93/zV4Fs
 QPzFswCfbT0ebezV47Nij/nyFRwJd03kHa+IRgQSEQIABgUCPj0tFgAKCRCrZOBp
 b9Z/ZGpdAKDfSIprUnXBqtqMA3JaBOVIiBj2OACgxdSzv7wcOT3RqPTlBMa3nz6c
 fsuIRgQSEQIABgUCPj0tFgAKCRCrZOBpb9Z/ZN5DAJwJoKyN83hPemvYW4mDXEvi
 HOGMDgCfc1AFRle9hJ8yxAPCYXDWZSO/OzOIRgQSEQIABgUCPxcLSAAKCRB3+BUz
 uw7oxxxOAJ9UeQetlgjiKlWoydGtur0VYcyhGgCeO13vKyzAHbWGs9KxKcnwjY6i
 Ac6IRgQTEQIABgUCPPvYYAAKCRAQfd2jSQzEOue7AJ9L1xGzD7TTWvhvB2VjcBsb
 8GJulACfSp/dc/LQMj85YxCEPdiCn2WK7pOIRgQTEQIABgUCPQyuYAAKCRAadH5F
 MOC52JRfAJ9ahzdeoAw8yE5ruSmOwnEkkJHaFQCg2hNNTGVzQ6A/Uvoy6dSBhvjo
 gwCIRgQTEQIABgUCPxGn/wAKCRDFwMXHIY0Y1/ZRAKDEsAfV6JjfFbVUjBBrt03R
 dwqz8gCeMF7nbOUED5oR2TfTCIrFHtdGR4WIRgQTEQIABgUCPx23XQAKCRDeeq9u
 lMCcfyN0AKDomH1w0pjfEDLFJ/i7vSX8I8abWwCg4itgho1KHushaVe/2AmCk5r9
 rIuIRgQTEQIABgUCQJQrdQAKCRCLCMMOVLxyY3yoAJwJcNPW6geqlgGpTBBcYGsg
 b3w4swCfd8NAP4/EihBGeXaZN9Lu28r7k1KIRgQTEQIABgUCQYTh5gAKCRCrL1pb
 FSVpkOkKAJ47g+nPopHCaW02KYGlSnOWTgxrcACfeKcNz/oohcyBURhAzHYSGfK/
 572ITAQQEQIADAUCPQX1fgWDA7hJEwAKCRAUETjdo+RdZojGAKC2ZWUvMRagUn3K
 6wMuW/QFav2+zQCg3I7OvwjBeKoFiBISXNuef/M8u+6ITAQQEQIADAUCPQX1fgWD
 A7hJEwAKCRAUETjdo+RdZrSlAKDccEcOlmqZVKnBISswIksqJjg3TgCfdWlzq7mK
 WL3/BhnyLpW4QDK/3SCITAQQEQIADAUCPScSAAWDA5cskQAKCRCcL8ZMCFV/3xDl
 AJ92rS9kDmlMWIdEKY6yQ4VBToNOYACcDUdj5slAxG4APKDotAM+0RvM6qaITAQQ
 EQIADAUCPScSAAWDA5cskQAKCRCcL8ZMCFV/35dfAJ9dgUGIxWUXNH5Q10YdPy9U
 F1IIMgCeLnhWdDN2GLI82DpdcUZG57sy81WITAQQEQIADAUCPg3ZCAWDArBliQAK
 CRCJ9buUZckShWIEAJ9luRJcJtNhaFt6edm5muQQSqoSegCfcl2zSZvQs97Dw5Be
 rpfo+x8YljWITAQQEQIADAUCPg3ZCAWDArBliQAKCRCJ9buUZckShaSNAJ4oX03t
 Py0gis/FjNHjDbkPdqJZcQCgqB0OtuGctkzDFhvAqnJV+1mAvpmITAQQEQIADAUC
 Pi+41gWDAo6FuwAKCRCFgFn/OmYfnR2+AJ9PQolOga55XY6fw+MR5+9ephV/fQCg
 1F5UoWuzPDWcA1lcTM5LzQvvyt+ITAQQEQIADAUCPi+41gWDAo6FuwAKCRCFgFn/
 OmYfndCwAJ49gSBlCebknQFZH+Wf5uYNLewguwCbBZE/gaioRqnW3O9t/Pc82ih+
 Q6iITAQQEQIADAUCPxFOigWDAazwBwAKCRD1ayajpjmec9fXAKCHvY2PoV2wXKWx
 0nR7m9X+SpcHAACdGx4TESIA3GR7s1l87A0Q34TuMJeITAQQEQIADAUCPxKmxQWD
 AauXzAAKCRDUPLMFlf7KNGMAAKCFR7Qnbit+lnDKDgs0vcOlaG40xwCfZUWCWEQB
 p/wgbWIDfnrZR0xvizaITAQQEQIADAUCP1xLGAWDAWHzeQAKCRBZe8xOEkKm8gVs
 AKDUXVVEJ4gow+wsXCbkAVBZnNZKJgCfeRSf7OBZe3ZvYz+Gm6RkLf0mNcuITAQQ
 EQIADAUCP8w/CAWDAPH/iQAKCRCgvp26O4hufUNHAJ9WRa8N14ePkRMhjkvfVahE
 b/LyOgCaA2pnJoWx1U0qTRqI+p/RlgPnmLKITAQSEQIADAUCPQWkmAWDA7iZ+QAK
 CRA19mF8UTrv2QbUAJ0RYBKzMEcuGDRrpRgw45Tyoi4WSACffVbIrg7MLNtZOrUc
 89qB/akLjKCITAQSEQIADAUCPQWkmAWDA7iZ+QAKCRA19mF8UTrv2crjAJ9F3pbY
 Oc+yY+vqbY4W/JR8Sz/egwCbBZBe73j4OjyTNwNQCqVmc0hCDPyITAQSEQIADAUC
 PxUKHAWDAak0dQAKCRA19mF8UTrv2UlQAJwN+wxB9zQ8udBQyYDNRj7bjiBC9wCf
 Vofu1lisNBsusnjHh7hh9JKR8seITAQSEQIADAUCPxUPYAWDAakvMQAKCRD0tLDM
 eX6/q5wzAJ0f5QlBrcEEcNgAOrMQV6ywQrAVcQCfUNVV8y08jS1Mm0H6dJxNHZIK
 I1yITAQSEQIADAUCPxezGgWDAaaLdwAKCRC/QVlbc3KipSrXAJ0cogUylzhbATHr
 o/bwlFiuRc9adwCfQXsw/fYEKTxYhjzBiSj8iRM9hGqITAQSEQIADAUCPxx0NQWD
 AaHKXAAKCRDID3RZrcKezZ9QAJ4kQGIyCyL2WSMi5axIlGNClcdlDQCghkL3rwov
 +tzCwI7Dbs1VJSMBC+WITAQSEQIADAUCPx8cbgWDAZ8iIwAKCRDnTSm4K+FtAW6S
 AJ9mZ79oEtU0NB9Bi5kw6A1vj6m6kACeP/sKFQc0pvEyIzl7sfi6fOGqhyiITAQS
 EQIADAUCPyOelwWDAZqf+gAKCRAYoMyNVwaktCTmAJ49xReMUK7dWGBFVxr/KPvd
 k1qEowCgxAn6zv85O7OFNneTSVShLo5ZytmITAQSEQIADAUCPyffrAWDAZZe5QAK
 CRCfzyzNPz5kJpHVAJ9eCz2189SKWysSPNJcoL4She7KgACfcYn6fbd7+lBxjqsd
 T7t/nbHoQ/+ITAQSEQIADAUCPyhdkwWDAZXg/gAKCRCWJIPhVmLHNBP7AJ0UqMrQ
 2mHtqTo9T7Pp7LefiuLanQCZAZyo6v1tEbEezvLn3OKpEUxVQYmITAQSEQIADAUC
 QOpisQWDAuPeXQAKCRAdR29gbPDq93CYAJ48OC8fM4/Txj1gh4K8cN2vGi+cUACf
 UOue3az9OtTlapA1yyQ3ve6jtvaITAQTEQIADAUCPQXkxQWDA7hZzAAKCRDKDhac
 KPo4iikJAJ4nfyPZHew0134b59JZCZeki0VTawCeJtGvngej8VgsbakCwbYjlk+2
 5TmITAQTEQIADAUCPQXkxQWDA7hZzAAKCRDKDhacKPo4iityAJ9aZij7lqY2Qsfe
 5o2Nyqb1kxotzQCfb1x2rlwmjedsLRsPr5I9iE0TMJiITAQTEQIADAUCPQYL8gWD
 A7gynwAKCRCNmjwfONntm2cZAJ91TujVG6twS8+8ht9+kURnIiY90ACgx7hMr2Br
 L7KJkS0TCMbYMSMtyFeITAQTEQIADAUCPQYL8gWDA7gynwAKCRCNmjwfONntm/o1
 AJ9FSqHTkIyW2VVxrKcGiAl0Bxb/rgCffXQ02gFA5F4AgwSFh05HKSyrFO+ITAQT
 EQIADAUCPQZwRQWDA7fOTAAKCRAYWQx96ws33CnFAJ91rADHNjNPPuLXzT4wBhSD
 ybWXuACfaWWXiupFFxbx1MvpwveBTKAkZVmITAQTEQIADAUCPQZwRQWDA7fOTAAK
 CRAYWQx96ws33FfIAJoC+rqlsSaP8t+n2QdRshtVQWsvMgCfbd4FCee8jcbO41vc
 TxVbNd1VbJOITAQTEQIADAUCPQZ0FgWDA7fKewAKCRApvl0iaP1Un5aTAKCQRIiB
 8JdIf55FHk81ddBZvUyXJACggPjIjPU3U4VUgeu9hCbzwhokN0uITAQTEQIADAUC
 PQZ0FgWDA7fKewAKCRApvl0iaP1Un9zwAJ9427nh1GyST65n26eW5xlDtpVggACg
 n4Dq9eM3dCnK6C2auLLe5dyOHviITAQTEQIADAUCPQh2VwWDA7XIOgAKCRCuMDyz
 GSr3eVGUAKCb7FAPK3DQHtnRrtPsrCqwkEeeIQCgptfXSnSrZcjDXZOycHoA8V/6
 Ff+ITAQTEQIADAUCPQh2VwWDA7XIOgAKCRCuMDyzGSr3ebLoAJ0UUSDnzAt3nfsJ
 l2In0HsaHczXYQCfdkm8496UTnqmFu7lXsCHXhk5zFKITAQTEQIADAUCPQu65wWD
 A7KDqgAKCRDUtDSy5nZxTGOtAKDaZEM9cQniPaS2+R0UJrHUYQoHdgCgi7G5aXG9
 am6M9/pp/zaweyDKutGITAQTEQIADAUCPQu65wWDA7KDqgAKCRDUtDSy5nZxTMCG
 AKDawMg6J0UHoaEHwHZSb/bibdlwFwCg1TRPu/MYIpsWte0OScq3w/Yjt/+ITAQT
 EQIADAUCPSN79wWDA5rCmgAKCRDmTDIV2hU/qwDaAJ0QgttdCgHOdcFWZeMmA8QX
 kOmJMACghFQ9vNTe7qLuTv4w6/NQlsphi96ITAQTEQIADAUCPSN79wWDA5rCmgAK
 CRDmTDIV2hU/q95uAJ4wyEJp75ujHwawFdoRa8uuZrgjygCfaPfnhRd5Ut4RKDqI
 hfJg1KcgU2uITAQTEQIADAUCPSa5DgWDA5eFgwAKCRBh2FHZpoIhU7UyAJ4kW6Ft
 WYNHnFBD0FVO7pU8Z5S2JwCfeokdWX3bKLHlKnoQYXWqpvS+UOeITAQTEQIADAUC
 PSa5DgWDA5eFgwAKCRBh2FHZpoIhU8t2AJ9D20Y3N6VmFlYV5j/92Nb5ScnszwCg
 wG9URDNJIyQaLdbBbLxNTA0jhmeITAQTEQIADAUCPVt57gWDA2LEowAKCRAxT3qV
 7BUpQjwUAJ0eJRIuyt86xdZQyKVeuPswBjdXbQCaAiVYgoClomccI+7txd2d3Osc
 xg6ITAQTEQIADAUCPVt64AWDA2LDsQAKCRAQu4D8Fr13xsWjAKCPxwwTakafx1WN
 hAabMjSrN3tKZQCgs9Y8kXyYPLmubNzu+vFPk7Jkwa2ITAQTEQIADAUCPVt76wWD
 A2LCpgAKCRAQu4D8Fr13xorcAJ0d12vev9ozWYskLLTxY7BkRwUlQwCg3BJpc4TF
 ehhWuPONffqe4bZpGw+ITAQTEQIADAUCPWCzCAWDA12LiQAKCRAxT3qV7BUpQl1P
 AJ429UFbcOerZlJFaYgjZOuYBUmKJACdErlKoq8qXcmKtV8t0Vwq9fPYcsaITAQT
 EQIADAUCPWpVVAWDA1PpPQAKCRD38OcPMH1W7RC/AJkBHvyEtg4q1kk9Jr1I7CSt
 yW1iLACeKEgJQvAsd/HwSonlQU78mAAu5yCITAQTEQIADAUCPWpVVAWDA1PpPQAK
 CRD38OcPMH1W7fmFAKCKAIKtV5yjPmhVP4CkRbNv8SNhHgCggJUw5vvaRaYjRLY5
 oJ1WLpZzoy2ITAQTEQIADAUCPg5g0AWDAq/dwQAKCRCz0KP8s+WtMQnpAKD2QFo5
 6YAnuMvgykWojafnkmA3AACgtXa+tRmy0yGNZpVWw93X0m4TTWmITAQTEQIADAUC
 Pg5g0AWDAq/dwQAKCRCz0KP8s+WtMRAqAKDH5fvDUk6GPN0W//5JXBGB5eRoAwCg
 6XNqo+7OPxJe1MG8XkRAlzC4qpCITAQTEQIADAUCPhBd2gWDAq3gtwAKCRAvF4dA
 2PE9vh9nAJ9YsrtR+G1eZ43g3VKFedIFHHMgXgCeIkFxxtWhNYFULqtejIApL24w
 7K2ITAQTEQIADAUCPhBd2gWDAq3gtwAKCRAvF4dA2PE9vmxLAJ0S5UEWNk2i2STU
 YpFFwlUMioNGfgCcDKGiJEDQOIFoepWy8kKOsBg391GITAQTEQIADAUCPw3AEgWD
 AbB+fwAKCRBsdheMoO2YLbbKAKCVp4yEkPtz1hVaLmhSxDf1t5lnygCeJjKbzw+R
 OwP5V2O/BHe9PHndGaWITAQTEQIADAUCPw3AEgWDAbB+fwAKCRBsdheMoO2YLb5u
 AJ98Mln6tu149IlYhydUalEwtAK2hgCfcJKoRNjrfosR1CDc9CeUtdXDi7qITAQT
 EQIADAUCPxEU3wWDAa0psgAKCRDhhSLXfHEry7dlAJ9YF7Dba21jcKVwZJklKeRo
 ym1mJQCgi75GvEUf0bq1P+aT8qrqUF74Tr2ITAQTEQIADAUCPxFFjwWDAaz5AgAK
 CRDqIZlBJHfK+F5+AKCJ4JVZmMF5G528fEc9ZZfQ1tXIZQCcCDU8I6X2+XWsVsME
 ic1kkGRasruITAQTEQIADAUCPxFdIgWDAazhbwAKCRAZ/tg84r6jQbsyAJ4i8CrB
 uHJmH1zoVu2YkvpMQgfw4ACfc6R+6AYimxsdRS3g/jfqc3tAoaSITAQTEQIADAUC
 PxGl0AWDAayYwQAKCRAoxvVrgXw1aOeoAKCdsK2tWKkW5Qg+NmPXTZIHrlYqtQCd
 GL1Ob1nT6IM0TP+8fuM4+Wmf0KqITAQTEQIADAUCPxHE9wWDAax5mgAKCRC+nIaN
 BGBOuCs4AKCFObIJmFfJERwY2HiwHAFsWGtlKwCfT20a6mkBTbt8VXco2DzI3Vao
 Wj6ITAQTEQIADAUCPxKUMAWDAauqYQAKCRBWbTYs7gl36LQ/AKC4OnnPcJvq0COH
 aA2TuQmaJLA0iACfSmKh2Nqmdts2p0eMHV7MEjRhJzyITAQTEQIADAUCPxMqOwWD
 AasUVgAKCRCSVb2f5oRNuVD4AJ9FlzO35fJs5H/jKQgsY3FIbMGzXgCg+x8yFNBl
 C+IKUCuAunnpiAo00j+ITAQTEQIADAUCPxPwuAWDAapN2QAKCRCUj9ag4Q9QLuns
 AJ0a2fNACh3JepjPTla6xMi7AUPbjQCgmGD6gG5x8tYaJhF6D9EObboQXzaITAQT
 EQIADAUCPxPxFAWDAapNfQAKCRC0deIHurWCKRCVAKDZNKwMT+5hxFoxnSrLTo/X
 946kfQCg4GoKvntxvBU+xAOSo+PPivoyIJmITAQTEQIADAUCPxP4CwWDAapGhgAK
 CRC5gsvVwOMfHeRaAJ4w35/OSvQ3uwDZEQXGyFp6Q54c3gCdEBNvxY8l4qRcZpug
 QTZmiDPnrNaITAQTEQIADAUCPxQlLQWDAaoZZAAKCRBRrPatdb6Al+m4AJ0d9dpm
 PFTST/WDg6BZj3JmOOHbUQCgirIUVPiMRVI2O/D9dyoT623xcKuITAQTEQIADAUC
 PxUoZQWDAakWLAAKCRBYKVdQBQCDizArAJ9NdaAEusVOt2lU/i8JCDQwC3Gf/ACd
 FmqedicO1+rg7m5w8jxvXOUSOuWITAQTEQIADAUCPxVhlQWDAajc/AAKCRCe0Hjv
 SzoTXN/qAJwKkqVrSIVrmHBk26Sshx4DNEENrQCbBr3qv7mos+5s3RSqpgAX4kzZ
 vSmITAQTEQIADAUCPxVhrwWDAajc4gAKCRDwI/gLJoQdW3a0AKCIERvMcVeKRqpc
 e+tLre/h/IzUkwCg4b4Y5hJJhD2v8gj2fAwTYGJ3l4iITAQTEQIADAUCPxVr1gWD
 AajSuwAKCRC7VaR/yQHDPnHmAKDLATxyZ2LKpN8IylxCp4MwCD56EACfb90Rsp81
 vyLiX8pQytGOsgXBhSaITAQTEQIADAUCPxXBEgWDAah9fwAKCRBL7yYkIt9Ah4tF
 AJ0bRlt8rxe2EPbzMDlqzHPXSt7UzgCeLIRRuePoe7m1VfCain0DGT4hGmWITAQT
 EQIADAUCPxXBTgWDAah9QwAKCRCVZB9rJT5Y46sDAJ45wd2vzojoHUx0VEQ3TUeu
 moXs9ACguRMiSAeDnSeHSlR2dOoaaDm08vmITAQTEQIADAUCPxaCqwWDAae75gAK
 CRCELNt6RHeeGNaFAKCHkC2kuC/39xVg/CE+hEYWpsKRrQCeJGl+k5wZ2fQKwZqn
 MvKM5DSUWjCITAQTEQIADAUCPxfgKAWDAaZeaQAKCRBTtrgdwTzuB+SRAJ97rifz
 eeiMpVn52e3YZAnQEWxoFQCg0FfTZqk9KVx17FstRaLZ06D/ahuITAQTEQIADAUC
 PxfwhwWDAaZOCgAKCRCRH0rmhqEY5uSuAKDauUbvMCMXq+rBbs6j6uE97lWY2ACg
 1c3TQPMB5bjQJIyXYTJjfi7hlaCITAQTEQIADAUCPxptvgWDAaPQ0wAKCRDOinnX
 mAFtx3ZgAJ44JXJJEysQiv8GpfDZtGgF7nL03ACfYXgUpzrL98wMH8g/AobcVhdM
 YXqITAQTEQIADAUCPxvSEgWDAaJsfwAKCRDTW7yZvH0CCvlYAJ4hHEgql/jqVPip
 Le8YioHz+F8t0QCgrjgcwPrNmgTWVYH/Vc/TEKYFDPOITAQTEQIADAUCPxw86wWD
 AaIBpgAKCRA7v893vYsFDVL/AJ92BTXTVnWXo8mWbSqEW3PfAks/3gCgspe1mZaC
 4LaRjREgQmzU5CU0c2WITAQTEQIADAUCPx+30AWDAZ6GwQAKCRCPubcPpM/JbgNr
 AJ43rE6KSYlmko1YSjV/dO87dpBnhwCg26j9NCtQ3mgbkRJUGY/n1DVTCSaITAQT
 EQIADAUCPyEWRgWDAZ0oSwAKCRCJIbXczRWog9M9AKCD+PHJLcPWz4T+avWyutp8
 0rp/rQCcCmD63aBnK5xd+mdr8tc3piHktbCITAQTEQIADAUCPyFkIAWDAZzacQAK
 CRD50BTwOMmFjflfAKCWRQexFnhLfsZfIaGX8f+r27qEiACeIFxDr+7084zqyf/K
 094FpWShjwWITAQTEQIADAUCPyFkUwWDAZzaPgAKCRBdD39J4OSfNGL0AKCsQFC7
 MT6UP+XzoJONdSsbLTBmRQCfWRT+RGJa6VD1UdedmGYnM0xVRHCITAQTEQIADAUC
 PyGAlwWDAZy9+gAKCRCUmyXsB0RyUvLoAJ4pZpNlrdBd/89pqBcZXwS0axA3ugCg
 wH03ckrfh4IPWcpqUlNxwV7PN3yITAQTEQIADAUCPyVxSAWDAZjNSQAKCRD4WZCw
 JIrrcwpsAJ9lNrcHI2te3SQl9N0GOQWFpUQgogCbBozNI9UAGUeiuf/71z0kLFGd
 LceITAQTEQIADAUCPyV/uwWDAZi+1gAKCRDytSpdCl+2h2OTAJ4xPoVs2RBkRYnJ
 i3/aPW0B2EmWtgCbBZ1BVTRYhzm11vKjA3U5AxBI5MmITAQTEQIADAUCPy1VJwWD
 AZDpagAKCRAsmD5a0opV1sWsAJ4wogB0nSb6JhbLNDDVgZjWLsz9aACgtBZYCpst
 xbhlZrBptD2SCbEQBeCITAQTEQIADAUCPzQjJgWDAYobawAKCRC7xxTRnGfNltN9
 AJ9sRDM1rJvigWD0suyGTSk9Sv4ligCePtyodfxR8NUI4qQ6eO/+6GpXF2+ITAQT
 EQIADAUCPzflRQWDAYZZTAAKCRCAdScAZahB7aCSAJ9JZiOPxdt51EQBGV4TuiXv
 WTkAOwCfTTkTvA8e9NxBlhgnXyaNDx1Ik26ITAQTEQIADAUCPzflRQWDAYZZTAAK
 CRCAdScAZahB7cIBAKDBMonkhy8E+5Vism4I+kFBwE44KACg1fwfc6P45HwZvd21
 oGsA/t+IlKyITAQTEQIADAUCP0nfiQWDAXRfCAAKCRBK8VQqljpUsJW3AJwNalE1
 xulge/kYxkeYBhoPrWdZxgCdGJrzltg3ojrzC80rJAs3SHg/I0eITAQTEQIADAUC
 P0n0DgWDAXRKgwAKCRCrEDAolpXyXz3BAJ41Ec4rifbskwHElGvb2qqMhiJdFACe
 Nncd8fpquBS2UslMNviDaqa3ChCITAQTEQIADAUCP0oL4wWDAXQyrgAKCRDvYpxU
 CbBuEG6yAJsFqbK3i7Gc10j7smhARA/I1g+TfQCePfHC/cc6UNbtgdbWtD5rwStP
 BcyITAQTEQIADAUCP0oPqAWDAXQu6QAKCRDAVIGGUGOgln5TAJ92xGOe5VnNsGTZ
 ck+E4SDnpln1ZQCgrZpHkJeLWpYEs2F3zCe/PiI1IYWITAQTEQIADAUCP0oS2wWD
 AXQrtgAKCRBvYja0ew/+hQ7PAJoDkIlp+2+/jjflym+SwnsQggawmwCgznxawgbe
 ED2VvuACXebwvRBa75GITAQTEQIADAUCP0oz7AWDAXQKpQAKCRBOqMTCFe883brx
 AKCSphbs8SccSPFKQyGrreUosQuzxwCgyPECtPmZLGoNquFIw21ybscdJDWITAQT
 EQIADAUCP0p5jQWDAXPFBAAKCRA7aIZa2GoNGSwxAJ44mpb2+fmb+miMUO1vnTc9
 lRWLUQCbBVfm5Yw22qVBnVOXs4IeYkW8e4GITAQTEQIADAUCP1IK0AWDAWwzwQAK
 CRClBubU3U1QiBQNAJwMXUTEr8sZ+COiWPvy8oj3dXfNngCdFtCN2hoapzZIIem3
 MkyllQ9u+YSITAQTEQIADAUCP1JScgWDAWvsHwAKCRAHZX9zooa1NqTAAJ941+LT
 +RZJq5q8Pcxm7VrbSYMdQQCfZjR95goK0qE9RlGaWykSYD89bpeITAQTEQIADAUC
 P1OXkgWDAWqm/wAKCRDWO3DJHwOkigS7AJ423oNIXcxJ14YsO+L62WbmLgO87QCc
 CUtYqpdCuAgjIaZpEkLzr4Pcd9aITAQTEQIADAUCP18rSgWDAV8TRwAKCRC6RIqJ
 nOjnrEDLAJ4u/bAmoWh8GBgsP+Wq41jVlpQUwQCeIIchYi99rPg30F/O4437Zsbx
 C9mITAQTEQIADAUCP2R90AWDAVnAwQAKCRBmZnF624NWeZiuAKC/qkZb6+K5TPwr
 JmounafJV7ELoQCggD9cMTUtzHBDVkfFeo0zoTUOD0KITAQTEQIADAUCP2R99wWD
 AVnAmgAKCRANlktmVw5t6th2AJ0bpaMM/xO728pmshlAaxEJRBwBdgCdHBmQWuLT
 gsTQpP31Oa122NkeoTCITAQTEQIADAUCP2R+DAWDAVnAhQAKCRBOAqyuHdazgLI9
 AJ47rbV9kGkXhrOF9DNtN2nCj+6XKgCePx4Zs5luBpGOMqXf+sPJMGu/LUCITAQT
 EQIADAUCP2TFmwWDAVl49gAKCRDI+nea9ZGa+LgUAKCC/q/MBo1Zj7PWVQhYxbsK
 nutHtQCgjue6LCYcEZB1/1dFeA92vF4S4cyITAQTEQIADAUCP2cgjQWDAVceBAAK
 CRCzFn3en6AefiRsAJ4wLdK90+50lO8hsvTdgIoingYplACgvESfAVuZ+ASuJdwp
 EaleLFSFMI6ITAQTEQIADAUCP2d+QgWDAVbATwAKCRDJT335ZvLZxv4AAKCjTVio
 Ov2vOdy/euB9KIj/LJWLQQCeLOsfIM70/x0urYPb+zL2YHQ21XyITAQTEQIADAUC
 P3WDkAWDAUi7AQAKCRBhJJohMJOcpWfgAKCiACV8qMaD5Pb7X7Cp6dGIraNtCwCf
 VidmswwHywHFgMHrE8hpGdDcIOOITAQTEQIADAUCP3beVQWDAUdgPAAKCRAXwi7X
 M3laLPRDAJ4q9p1PsipYhX2Iv/u+drD5wTrAtgCgoripl8O+a3Q4+B7rXqK1U+sq
 lIKITAQTEQIADAUCP4Mg6gWDATsdpwAKCRBNoCCKE+KQpM0GAJ9Z1+HYjl1nNYGe
 OZaxaB0AQo0SyACgg1LiWu3nzdvbDAOyTFOQ0VKpp2iITAQTEQIADAUCP48SdgWD
 AS8sGwAKCRAZyn8CMbyd1m34AJ9/aIF6dPmAx9f/cs4/s5cmToS9uACfbs8lVMJy
 hgoeZ+zqAEtBbF3X2C2ITAQTEQIADAUCQJjtNQWDAzVT2QAKCRDthAJ60Bobc+l7
 AJ499MNEN+fUuToZ9yBPr3pA3If8lACfRE5kLo6LJGinZYM+yWir9zOpySSITAQT
 EQIADAUCQYTXAgWDAzmfjgAKCRC/S9DmBJ24eY8xAKDMXfCOCiGKspxrveCsQ+mi
 neDGgwCgvxalG25JPInTwxYElfsOWR0cDs6ITAQTEQIADAUCQYV6+gWDAzj7lgAK
 CRCe11g/wU6ygprlAJ9xg9riz/v3FM+JlKq8DVc+5jJzhACfXyYN/eFatxnRL0UY
 0iPUGM93zL2IXwQTEQIAHwUCPPvXkQUJA8JnAAQLBwMCAxUCAwMWAgECHgECF4AA
 CgkQfCLDn4B6xTp4PgCeJeDwFmDP4U44kGdiU4PZ7nt/+eAAn12dBKB/gVGWPI0O
 M3pXMGmjCQZFiGIEExECACICGwMECwcDAgMVAgMDFgIBAh4BAheABQJAC9oOBQkG
 0ml9AAoJEHwiw5+AesU6pr0AnRh7cno052HUBE0aa818rs/8zlAnAJ9Rpxn1PNy6
 fHDfggn3CvfNoY4DfIhiBBMRAgAiAhsDBAsHAwIDFQIDAxYCAQIeAQIXgAUCQPwP
 kgUJB8Ke/wAKCRB8IsOfgHrFOm1eAJ0boiU8exzWwueG259FlMmE9O34GQCfX0Dt
 GbMndyRtcwbXqX5ih14WHd2IYgQTEQIAIgIbAwQLBwMCAxUCAwMWAgECHgECF4AF
 AkD8D5IFCQfCnv8ACgkQfCLDn4B6xTptXgCggbpZQyKe8BvYbC1NUXc9my720h0A
 nROeWBYTqf5E64r2kr3LEzijdJhbiGIEExECACICGwMECwcDAgMVAgMDFgIBAh4B
 AheABQJMh8GZBQkVL4RlAAoJEHwiw5+AesU6ALYAnjsibk9pPMjlukrokb/G+Ra/
 2B0eAJ0ayQl3xaQ8lGcYVzoStypyjoD3DohiBBMRAgAiBQI8+9neAhsDBQkDwmcA
 BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRB8IsOfgHrFOi2+AJwJOkvM9ojo9xpjptCz
 SxT6/H/LYQCeJfTX//MssJ/fb9IWCjP6woIJV1WIYgQTEQIAIgUCPa26mgIbAwUJ
 A8JnAAQLBwMCAxUCAwMWAgECHgECF4AACgkQfCLDn4B6xTol+ACfRh5HhzyG0v+j
 Rjo2CQrMyLsfc0QAnRFvG76CFgbaT6pOBGvocw8DwLS0iGoEExECACIFAj2tupoC
 GwMFCQPCZwAECwcDAgMVAgMDFgIBAh4BAheAABIJEHwiw5+AesU6B2VHUEcAAQEl
 +ACfRh5HhzyG0v+jRjo2CQrMyLsfc0QAnRFvG76CFgbaT6pOBGvocw8DwLS0iG0E
 ERECAC0FAj3zl9QFgwLKpr0gGmh0dHA6Ly93d3cudG9laG9sZC5jb20vcm9ib3Rj
 YS8ACgkQEFgWhcUhCX6wuQCcCEVMC2uxUY6TU+FZh1gYJQHeso0AnRvpRw0kFy4M
 uwxauGavfjau5uBBiG0EERECAC0FAj3zl+QFgwLKpq0gGmh0dHA6Ly93d3cudG9l
 aG9sZC5jb20vcm9ib3RjYS8ACgkQEFgWhcUhCX6JWwCfWBLfY0MNvg76j1aFNiDS
 N0+Kc+MAnjyL6sZi65007O2iMN5ZrpizKHEgiIwEExECAEwFAj0FGRAFgwO5JYE/
 Gmh0dHA6Ly93d3cubWF0aGVtYXRpay51bmktYmllbGVmZWxkLmRlL35tbXV0ei9z
 aWduLXBvbGljeS5odG1sAAoJEN6Fg/i9v+g4CnoAn2xsBlhU4Ar0ometcbozgfIU
 ifvNAKDHthneVq4UVMN5C0Lp/w79iovplIiMBBMRAgBMBQI9BRkQBYMDuSWBPxpo
 dHRwOi8vd3d3Lm1hdGhlbWF0aWsudW5pLWJpZWxlZmVsZC5kZS9+bW11dHovc2ln
 bi1wb2xpY3kuaHRtbAAKCRDehYP4vb/oOOKWAJ0SSTs2+mxevjqnan14AOzw5GmS
 ZwCeNlwGUMiPZzQ7Wk8Rc4qzkElJ9CmIkwQTEQIAUwUCPyFXhAWDAZznDUYaaHR0
 cDovL3d3dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5
 c2lnbmluZy52ZXIxLjAudHh0AAoJEKR5zcRatGBq4DsAnjYo4sY3+i+OfER0cPvH
 PNFweS0AAKCTKLfNHYbegvlreeK3itC+KED7EIiTBBMRAgBTBQI/IWPJBYMBnNrI
 RhpodHRwOi8vd3d3LnRyYXNoLm5ldC9+dGhvbWFzYi9jcnlwdG8va2V5c2lnbmlu
 Zy9rZXlzaWduaW5nLnZlcjEuMC50eHQACgkQeQV2j3WE9dj0JwCgquNEDw0PfLpP
 VpBKBFl4l5i78sAAn2wl5MUyTa5HT3xINEJRx9N4oLzFiQCVAwUQPSLOeb1ApukP
 zoVJAQE8lQQAiCSul7FIad4Pder4RTB8ow2nE52U4W0G0mjD78CBaETZOHGJuO8l
 lrqnx/rYDS7rsAL8Rj/v5YrsYOBbPY/6s94W6Jy6iWijwccQJRw91CtGueCTab9E
 sQE6WQnp1kxDyJC3FMytBchVE+gLmcn/7MhPnWj05xA4wLS5N0maYEaJAJUDBRA9
 Is6DvUCm6Q/OhUkBAbbpBACdcJbmmeUz2kxRjtB2dBr3l0mVGpIMdVMC/NaKqHqk
 5gxRm98cOnq2we9PSBI7H5xBmJSqX+ZJHRVUSDzoGaJ73A/yPFi8t7Q9MRMb/Xep
 w/bEx7jsvV7Lg+tXRedxG/gMQ5E8KS6CXRtQIprLUGQJ/rOA/wxylXPIUMGNaiEb
 moiiBBABAgAMBQJADIE/BYMDwb/PAAoJEL/W7lhX938JNtkD/3/2RKm28v6btjL2
 UrCJg8LjxoqxSOdU6N5SLplZ2YOef3+gZUTZSsYT1K4XvPoBvPif+6zd0a9bFp+f
 P2j7SGMrlhHTd6+aDQ/BHaEZzt4dY2dfFcDNyvqIKeOTXw8/HR+dwryHDNwRcEMO
 b00IPVjfVirOcdPNbn6jYP1LYnPniKIEEwEBAAwFAj0je7wFgwOawtUACgkQxEaR
 6Lw5pc2SzQP5AfSuryok2VlAgquMdE9fwF+A3bjTWs6TVxFkXdInfML4Ur+44z00
 p9kjkT5IJrEebMZqYHsnyNix2owkgAyddONo+ldGAyzTUYwEWY6IY0km1n97Tnz2
 f6SSOYNqHVJ50h3jxsclD5sHBiH+1OdDCCHyyzV/gL66y2JTbLZhbOKIogQTAQEA
 DAUCPSN7vAWDA5rC1QAKCRDERpHovDmlzaE3A/99qZ1tpSrkk3Mp/Hkbwdn/cbKp
 YtkMfm4yQyjaeRL52CrOtVVK68DobMTaRz+KYTOhI9QMhkwSn3sxFpA7YmJ5NcQb
 w9lp4UU+42+KNj5szfEM/C+tDOyMHjBw4sgBXvsyY5w05SLXMN9KU48OChg8TWKy
 LCaGZybsl0FG3D5zC4iiBBMBAgAMBQI92qAcBYMC4551AAoJEOUVKCUzHNpdbL4E
 AJNRKdSx9NEU/zO22hbv/1J0NoGpeo7U3CkJZKbfuSx6nB0EXNHq4rZwcouVIR0Z
 c/KpKLXZlKW5OEHuqYtqctz18g3KiF4jY+1qlZqzIg1Ybmm4xuq8+040wbwpG/3D
 sCgPxPlqvRGHeOwgxWIWngmiYm7WmiQIKQAoy8HTgbSYiKIEEwECAAwFAj3aoBwF
 gwLjnnUACgkQ5RUoJTMc2l3FHAQAki+C6EKYQRullCePZ2GMJ8SR54xI42JaPbSB
 zxpb684J/jabcr8WHHJvGXlapUmdl3vqlks5tatn5iFJvbE4qAPOdo6C5NXIpD5O
 SbHAocXj43QdrftuMVF7w1fyJBkWFoMrMZoa4FxiFLENbm7DknLebp1Bp282O/XR
 9R52PJSIogQTAQIADAUCPyFkiwWDAZzaBgAKCRAbsIu/KpIyJW/MBACnClO5+acv
 jHnfaUd53tcKfLkb+vWzMXWKNt37RG1d04bKqlkZdzJKT+noMBqflVf91rk3goPP
 JPDjwUtm51gGlSgPG4mPnhQRrUHwC8BM0lGiuB68Z1QdxF1iUx8B623GtPrJbfuf
 CexrAxIL6La7KosErbR1JXbjS9+d+M1p9oiiBBMBAgAMBQI/SiLRBYMBdBvAAAoJ
 EJugaRW/hasxbHUD/RqcGxjUaJgELwAfNcTpm86BsNL5tu6WJFe3DdIIzQTb27GG
 gbOfj5NRLFnk75xgQtk8lnKqsXQHMC6hm+pwh4ZGISBZE7NIqYokUSYDT2mbplDo
 2kDPyO2V1fWf8P5f8rI5e2QYIvn4kNFWidfQKh1Rw86MlZVIieVf8eVeS5qCiQEH
 BBMRAgDHBQI/FpZTBYMBp6g+hhSAAAAAABoAY3NpZ25hdHVyZS1ub3Rlc0BwZW5n
 dWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3Avc2ln
 bmluZ3Mvbm90ZXMuQTkyRjM0NEYzMUE4QjhERURERkE3RkI0N0MyMkMzOUY4MDdB
 QzUzQS5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3QvcGdw
 L3BvbGljeS92MS4xLwAKCRCrHktgRnVrHo45AJ0dD92uCPhsjLWrVsbhMJfwmkVO
 nwCglKPYurVXyo6uXC/Q5KdueASb3iWJARIDBRA9A+ZYlWBhpt2TQTkBAQY9B+MF
 dy8EKYP1mgbIXhZC8sScs2sSUsLhF0ZpSq6JcAMGIqjZZRSPfvDgt9Aqe8GnG6At
 Z7NXdfYARBq301Vaf1t/kNwVK0zcL3TswpGZ/j9Ao+HhJFA1ivPHb3zrazrmEluF
 HbbPHZ+33Lvx1APLw2AXP2ise5XmO/Ra52I5TgeNP9HJs1R+Qk8Pt+Pir5Efgego
 JngRgdySfvcFFo9O2Kinx1sV3a/KTzmP4kzmygsk2zVjTN9uLv/RV7U/MheTshFx
 IfQUxCFUofTz16Z5/nPEt2ePOWXQGPZrcW8grx6jQA3TnNQpy45kpBns7nWhvJAI
 7UWzBBdMaBwJUjLUiQESAwUQPQPtFJVgYabdk0E5AQEtVAfiArWPvzDkos9Y+cao
 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
 IDJB6ZO5bodnUoQycyKKn37YE5s7kEdKoRMkZXWZaJk4bdF1b9EQZxlDvCBIRDPy
 YV1HQyk3R7az4S2JASIEEwECAAwFAkEksIIFgwKpkIwACgkQG2jc/MBZaCO9nAf6
 A8uZ2u5TNZyJUSjevVElgUO4dhwF8EDMm5aYqTZeLU4/PYGVREJRFwfNqXQ1MFCy
 8nSrB3vDBC21MoRPTnfvqZHTNwc0SHoZA6gYi5JhzkX+NJwds7M1VXFnKesrjNsn
 f0+NYeMkiMNRj+ZpqXfhXxcVnSMeDmHHOTtxO5LDAn68irrAIg1SJWanRUL9cCl+
 7SOPa19pIKmjNKIWEtRnhR92w5TKvm+r32PwWUXyecqsNKvlzNxL+YPrPWOWtC3l
 GPATg/m9g1QJjsQbFSUM2cATMJeYXN1OA9ih+SctVQ5N2/OLHTapW20pEqZ9apZ4
 5/PuKOuQyN67GU9rHvSdVYkBaQQTAQIAUwUCPyFjnwWDAZza8kYaaHR0cDovL3d3
 dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmlu
 Zy52ZXIxLjAudHh0AAoJEPl8+eM6S39dRrsH/0TXa1EXhlnrO7TgyXTfjbH60w0J
 bsE00hhpjy/Ma/kv/VdtmdSy8xs4NuzCO1Qibt9Mx3hBSUzQ6eXw6zaMgqmTzv2g
 Cm0N0Nn2pbZoXj1jbGyGf44Ax2eqD+yKJC4cjHttAF0zTLSHGXDzpt72Kh5nFJ5c
 9yw58SiKDt/+rad6kOeskI6p/Uvkb3y/9a6vuIyQ8KgHqFvVUbqXCgBNN5OpxCcF
 UpvEBiQ2tGXPJ1AUxXILVLbq2TF5vBREIJDbWAhS/Va0T90/B9/KB38afAgOdFpO
 rkaqTKUHX//H3tjh1TLQibtBeo03sT15GlIo5mALPnSDgAvi+QhaIHPk2h6JAd0E
 EwECAMcFAj8WlgcFgwGnqIqGFIAAAAAAGgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1
 aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9zaWdu
 aW5ncy9ub3Rlcy5BOTJGMzQ0RjMxQThCOERFRERGQTdGQjQ3QzIyQzM5RjgwN0FD
 NTNBLmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3Av
 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
 85fcBYMCyqa1IBpodHRwOi8vd3d3LnRvZWhvbGQuY29tL3JvYm90Y2EvAAoJEBBY
 FoXFIQl+suMAoK9wMiePGVWghspdqtP9CzYpY/ZGAJ0bZJu2VkMvAWRlGOzRgT36
 eZA9uIiLBBMRAgBMBQI9BRkQBYMDuSWBPxpodHRwOi8vd3d3Lm1hdGhlbWF0aWsu
 dW5pLWJpZWxlZmVsZC5kZS9+bW11dHovc2lnbi1wb2xpY3kuaHRtbAAKCRDehYP4
 vb/oOGeJAJ9Fj3VCUQIZk0qd9UGUEJIXBH4m2QCYxLYupcwjq5IpO3TDnf1pcPon
 SIiTBBMRAgBTBQI/IVeEBYMBnOcNRhpodHRwOi8vd3d3LnRyYXNoLm5ldC9+dGhv
 bWFzYi9jcnlwdG8va2V5c2lnbmluZy9rZXlzaWduaW5nLnZlcjEuMC50eHQACgkQ
 pHnNxFq0YGqazgCfaWuFD/Y3mWHymdnU3CL15fZudaYAoMYSpXJwS+IQh7rsdske
 4ac4u1oniJMEExECAFMFAj8hY8kFgwGc2shGGmh0dHA6Ly93d3cudHJhc2gubmV0
 L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4
 dAAKCRB5BXaPdYT12CdDAJ9wa2zL0+9ucn4EEYye2ewY2ftnLgCfV0GGtD6qqswR
 XSX8xg1uVT8BvTqJAJUCBRA9IeIwxEaR6Lw5pc0BAU7xA/40Pz2+U1DqLqhc9q+g
 jGYaKbvB9cp1XD7TdtaZGQflFatqzjUWMFx6moDBNpH2ewJwERxaLFPIvl80Rwhc
 BVOanPYXS/Tk0AGwhsXYnNmSXQz5esxe9UIFk0NgZNF8je9vMOgD7+sNVu+3NPQc
 45XajKsoRq6i+vOiy48grLPrvIkAlQMFED0izoO9QKbpD86FSQEBPwwEAJyHvOQP
 xpnXgPRkcH+WBATeDfYACi8wRtYqpBHrUWo0i8x+05V9QWEaeJSauaKEhEoF5zjG
 0CQ+FZ77gWcF+W2AU3sBXXt3yK7hu2yVDu0dZ4V1ycN2d4LvV9s2X+Gig+lnF3m9
 n+hE7XkR3kjcvlToi7D1rAtQg4G5xJFFVxmPiKIEEAECAAwFAkAMgT8FgwPBv88A
 CgkQv9buWFf3fwm2fwQAsZtoL1euv11o+Jx/BSaxObERXUMTQ4WQHRh+uZSTWdxM
 0H+lLCvhBpquwZ1bTRKFnmb1JZTpkefUJ5h/ZG1MWBP8TA3vQMzVhwu5VrDiWehp
 8OK5hliRQKzXy7qiup30DbSB/bDo/70+jDGU1SclMdVWIAHB0RZ4+sMz0vm6LfuI
 ogQTAQEADAUCPSN7vAWDA5rC1QAKCRDERpHovDmlzaUUBACDoo52K7TgUbPWPP5O
 CCSXu3gq0MmsZkGa9ri/FQGErQB2UyxJlldsih1JHs9UDsxvcvi0PHS2d4UgAL7f
 Yp7BY64JfC1XA4lkrdrGD3DkYWDjkaGHwdzkXUzlTKro29bJvuqLtdSaEfmozp6o
 NyuG8I5NEIsY8Fczynj5or9PRIiiBBMBAgAMBQI92qAcBYMC4551AAoJEOUVKCUz
 HNpdilQEAJ2mlcltB/DyQtNOneX+qAQJe2L6fusQrfQxDg4c10Wk+66Hp3mvooRO
 RBJFOei1V1elBSrqwkihrioKVubPpHVVMSACsdbxf+OnCzp2xcEAlTca60RCk3Vr
 7HovwC3ok3FQYenOsjN1mim671DrEuShZdcXr28NmVbS/BxXdeBqiKIEEwECAAwF
 Aj8TM1MFgwGrCz4ACgkQtGuSO22KvnGBFAQAp5y1TghvnXEw0D7SVExX4YBjBc4W
 kjdYJNcPGv+e+lzhBQr4omRWfaXyJ1QI4wJhIOu9UAaeXncBRObPTawsD7bROf9k
 Cois/pPxwq8U76O7jHc0U1o243izjxloa52vlUVolysBTQ+9wbtB79YWCL76AxBR
 jZZ8ncq8IZ8AbrSIogQTAQIADAUCPyFkiwWDAZzaBgAKCRAbsIu/KpIyJSKcA/sF
 G59sCKxjoDnvAIy7tKe5zETyZg9esDUP3UE2EcLmP/ahWMPwAEU1Fm43WhKf96vL
 H94Td7rZisji7zxlU/6/g5z+iUA3zFBTJQ6O5WYVKGGRG/P2MfZlmAEUTIYYuPDn
 8Wo5lOw/eJF2jOAGAi7ILPeHhXxjjn72X1tqQuJOW4iiBBMBAgAMBQI/SiLRBYMB
 dBvAAAoJEJugaRW/hasxz+MEAJE2ZbBrCenJ67wVbJzITCAIgbC5s8K7DqHhEIxI
 RG/O2DbU1g3mgxbV+6PaAonnPvl+HEF3k82g217tPkTXYJuBrt5T/NgcwxzlkMZ3
 xUKZybz50KvxDAnKw5OIcpSnh2E7+Ja1AkBbzF5w/rYMdVKdlj11CUcEY9CVkwQg
 c0KriQEHBBMRAgDHBQI/FpZTBYMBp6g+hhSAAAAAABoAY3NpZ25hdHVyZS1ub3Rl
 c0BwZW5ndWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9w
 Z3Avc2lnbmluZ3Mvbm90ZXMuQTkyRjM0NEYzMUE4QjhERURERkE3RkI0N0MyMkMz
 OUY4MDdBQzUzQS5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRh
 Y3QvcGdwL3BvbGljeS92MS4xLwAKCRCrHktgRnVrHlyZAJ9DfCRr/epketGKHgFJ
 qEtUpKY5HwCfV2vAA6M5/ECBMbzYgnvk0AyXR/uJAREDBRA9A+0klWBhpt2TQTkB
 AXlOB949F4PDm6NH+kr4CRk1ZBe9XPvpDwi92dtW8XbnSuQeEiTyuuhsh6hxznc0
 E6hxp0TkSyyQQvCkM7jdepYUz0YTcrv/7B3l8PcSm3LptluQmsuaoE1DNh9jrngL
 wjQlF31/4DIAAb8R5FDA2E2Yes6S0EwPHH3jjvaeYT16+krw3Lt2cja6vnmslele
 gCc8HvxqPRvOQAZJKg2cOwQyNz30yYBaFEcEKCFDmsAKPd95/pOHzaAAkYlDHrzl
 NBQ/9ieuApOGnWe5zrTJ4U7zmnJk1wSOpVQtzliOj0nRdVtPGSzAy71XeiDkwX1Z
 puJs+6WnAsJysZRF7xSe+8+JARUDBRA9A/EIAVW64qCU2iUBAXx8B/0VFgPg08KC
 1EjdkdTmruI5RRhnurqrEDNuh9zhGoc+DIx5OMBpKdv/FuBMLvHy9s4rpg2q94Nb
 4fCoU2vz8KJMyFvDIPlLwixriqBBeITPqSdJmGQzh3bNOJ7tBoSBzRg+TDCCPyI3
 zWnoZpnv5ASu3nDODiImcBaMEM8XlvR4ciiv44kg16C6d8TZ1KlYUyYzGmBA1Aiw
 IuPnZdwkmHL1OOgviBZdopLUNdxMmuSpoZC7fkUPAgvyHUIXdaIeHBsO3ddQADWm
 EuaA+dt74CZJ9kooZwFIiVLsA4sFja1yvmLO6YO0D/xTGYDj4ptoKO5/EiBLCJgX
 XD201rZI0LG8iQEcBBABAgAGBQI9J5ZGAAoJEIz2bIET3TlQgzQIALkMyL6w/Yy9
 68ah5KswoSokkuCsJj7VfqHBXcS3Wd85yXG0gIpbDsp3WhoMs5F375UkzdvQvZW7
 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
 al9u9HJ4ZxOC/ZZ1AVm7qrgEeC8wFWKlMa29dt1cKO8ThB7O8+IxWTNQ9mGHQRZR
 JgvsFj+y4FSSZqI3uy2gn8nu68tqg4HvuzYGWw2og+9N+7VZYBxUQLi/gS4Oqyit
 QZC6psx/gPiXQ5LeRHMG8r+ErBLd/we5nxPGzqEcf3OJAWkEEwECAFMFAj8hY58F
 gwGc2vJGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlz
 aWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRD5fPnjOkt/XVHLCACzW+/n
 SIi37z8LxLdd2svzce3PLJ7xXc49oF0SdoeuZmpBRo+4H5Zh7HZQ1BEsRBJykYrS
 IU+9pP5BiW1TaIk6QBUTIwIy3pDGvyI/oGpJPVa9wc1ZoiNjhfK8yDXY+z0Q6KJR
 ab6nbOymsZo2mRdCQ4EVo+YvY8lA+e84t1C9JbzBsi7yqAT3eQr+O9Qq8I4M+vlz
 VOq4iWqdRaGTq8oG0ChumQhbFNXwWrKu/A5NOzLFuF3l3vhMqbbJJEj/EZpdss8k
 yq8jTN4lSsuNvf5DyLSbzj2IOJMRN/hSPrBiOtriMr5aNDw0ADK54AUTy6+ab1tM
 iP3Hc/FNHFJ19F/ziQHdBBMBAgDHBQI/FpYHBYMBp6iKhhSAAAAAABoAY3NpZ25h
 dHVyZS1ub3Rlc0BwZW5ndWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIv
 Y29udGFjdC9wZ3Avc2lnbmluZ3Mvbm90ZXMuQTkyRjM0NEYzMUE4QjhERURERkE3
 RkI0N0MyMkMzOUY4MDdBQzUzQS5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUv
 fmJiL2NvbnRhY3QvcGdwL3BvbGljeS92MS4xLwAKCRAZomgJiDj9lAmfCAC89hFV
 1QPBgmZe+pF5bxkpld4c/P6uGwSJZ2Mumi87GrkesKclpnamTD1PirLdJqO/Ffnq
 7zdOJ8TpqAWVXWnjJUck8oqlkNETlTWqNdqmT8ljIYoqPUTFP5p6PADy4xnmFueS
 ZPQwecXbiW/elXc1eHW3PYLuaw3jbtso68o7cU13cfqEzmN5n1HKnXixT7JMLvwd
 gbikGGIgDqxXHrv11/FbalEeXQL+PF9dw2G0ugXST0OlrTksShyEv5Nqm480rS8E
 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
 4ACggCxN/6JGgnZKzPcjQ1UIOrkLux0AnA+TSOEdyn5KbHslR/QSOJkiGWoNiG0E
 ERECAC0FAj3zl9QFgwLKpr0gGmh0dHA6Ly93d3cudG9laG9sZC5jb20vcm9ib3Rj
 YS8ACgkQEFgWhcUhCX6wuQCcCEVMC2uxUY6TU+FZh1gYJQHeso0AnRvpRw0kFy4M
 uwxauGavfjau5uBBiIwEExECAEwFAj0FGRAFgwO5JYE/Gmh0dHA6Ly93d3cubWF0
 aGVtYXRpay51bmktYmllbGVmZWxkLmRlL35tbXV0ei9zaWduLXBvbGljeS5odG1s
 AAoJEN6Fg/i9v+g4CnoAn2xsBlhU4Ar0ometcbozgfIUifvNAKDHthneVq4UVMN5
 C0Lp/w79iovplIiTBBMRAgBTBQI/IVeEBYMBnOcNRhpodHRwOi8vd3d3LnRyYXNo
 Lm5ldC9+dGhvbWFzYi9jcnlwdG8va2V5c2lnbmluZy9rZXlzaWduaW5nLnZlcjEu
 MC50eHQACgkQpHnNxFq0YGoOEACfTsirMSqINACr1m4dUD2r9J7QGEsAoIM17Lgq
 BjEMuYeVxx26AO+WjhFPiJMEExECAFMFAj8hY8kFgwGc2shGGmh0dHA6Ly93d3cu
 dHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcu
 dmVyMS4wLnR4dAAKCRB5BXaPdYT12O3iAJ9mZ1NU2WVpp9du8QOpTvp1jdAodACf
 U/wOv46EWpPHyLzGx7VHh0MoBrWJAJUCBRA9IeIwxEaR6Lw5pc0BAQ+vA/0Tlm31
 srrL1VhwixsEUO8BguGOG9P0go59CscjOyc2Ah95zpHQHwtFcZo6VR/qMxM/WnTo
 6+7JE0Yce6xYO6LWdU9w363+5cHtBPXpR59e/XVzNeqbMIq0NoQNAcKoAkxYAUaM
 v3ogRI0xMUYZLHzucxSAOYvkclVrD5YsbmRxWokAlQMFED0izoO9QKbpD86FSQEB
 tukEAJ1wluaZ5TPaTFGO0HZ0GveXSZUakgx1UwL81oqoeqTmDFGb3xw6erbB709I
 EjsfnEGYlKpf5kkdFVRIPOgZonvcD/I8WLy3tD0xExv9d6nD9sTHuOy9XsuD61dF
 53Eb+AxDkTwpLoJdG1AimstQZAn+s4D/DHKVc8hQwY1qIRuaiKIEEwEBAAwFAj0j
 e7wFgwOawtUACgkQxEaR6Lw5pc2SzQP5AfSuryok2VlAgquMdE9fwF+A3bjTWs6T
 VxFkXdInfML4Ur+44z00p9kjkT5IJrEebMZqYHsnyNix2owkgAyddONo+ldGAyzT
 UYwEWY6IY0km1n97Tnz2f6SSOYNqHVJ50h3jxsclD5sHBiH+1OdDCCHyyzV/gL66
 y2JTbLZhbOKIogQTAQIADAUCPdqgHAWDAuOedQAKCRDlFSglMxzaXWy+BACTUSnU
 sfTRFP8zttoW7/9SdDaBqXqO1NwpCWSm37ksepwdBFzR6uK2cHKLlSEdGXPyqSi1
 2ZSluThB7qmLanLc9fINyoheI2PtapWasyINWG5puMbqvPtONMG8KRv9w7AoD8T5
 ar0Rh3jsIMViFp4JomJu1pokCCkAKMvB04G0mIiiBBMBAgAMBQI/IWSLBYMBnNoG
 AAoJEBuwi78qkjIluIoD/20Zoeb8fUTz6dltU0vJwXhcfKyncAh9OEXJyu0XvoEP
 NQGEwk/XCogWhM5Wk0RnJ9xpF3F6cG4V196/KWnRLgcq3k2O6dyT4oViHAcTfXd/
 gqHHm19WOLg8K10OoNMpoOcLz5uQwGXPZo3vTZtBPclhUx377IyRS4NAV0VDV0EV
 iKIEEwECAAwFAj9KItEFgwF0G8AACgkQm6BpFb+FqzF/eQP/bS51MfoqqIEbo7bm
 Td+6uhTbbSmMic1bgwuX2BbDHml9+bHSG3nQ10/dbpmL0FyZ22jQhtGW4iK4Eowi
 CRo3oYl/L4EOz5Diw9+8Vhu3b0Zur1LT7kZtNHH3VwCVzHmd9+4JAv5AOV7a1BBb
 P1u4gOmmqRzPkRzRIrVTsO2T4NuJAQcEExECAMcFAj8WllMFgwGnqD6GFIAAAAAA
 GgBjc2lnbmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWlu
 LmRlL35iYi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5BOTJGMzQ0RjMxQThC
 OERFRERGQTdGQjQ3QzIyQzM5RjgwN0FDNTNBLmFzYyIzGmh0dHA6Ly93d3cucGVu
 Z3Vpbi5kZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJEKseS2BGdWse
 av8AnjQExVJnQN05g1TMyMD0OKcLqskYAJoC8yqjWLJoeHKNJ60RQbJtv/EzmYkB
 EgMFED0D7RSVYGGm3ZNBOQEBLVQH4gK1j78w5KLPWPnGqELtJMDE489APXweY7cA
 dnLBevcbyI6HuLIlTcSmFAgPoHjdO+7xWNpfaa8m6vSumkyUeoYMlK+TUnx2LCS6
 FvmPCYoEFM6g92HpASGLwZqcCLMp3+uemnAB/N4/QKaIqPNBAlSIAr8/gouF3Q5u
 mO18G7YPdrNMuKcxRFMjy9iaXIryRWAMbl+yecvT+SyewrD33TOdvHPu6eWcYIv4
 xLK3jcIJ2hoiOJorzam3u9NV/ornIhdtEB+mGzIbgobdk7Wm+wXKAPSxGz41LHw6
 KP/NdBSEQvDT/MJMXrfM0Mh7TDklFxQ5d0r1rxDaPcdUnqiJARIDBRA9A+0UlWBh
 pt2TQTkBAS1UB+ICtY+/MOSiz1j5xqhC7STAxOPPQD18HmO3AHZywXr3G8iOh7iy
 JU3EphQID6B43Tvu8VjaX2mvJur0rppMlHqGDJSvk1J8diwkuhb5jwmKBBTOoPdh
 6QEhi8GanAizKd/rnppwAfzeP0CmiKjzQQJUiAK/P4KLhf//////////////////
 ////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////
 ////////////////////////////////iQEVAwUQPQPtDwFVuuKglNolAQHXHAf9
 HIyylcQqNFatx4TC4LB8VvuMajy3C4txsU5IgkpCQlkxv7OBLUaxTtzi0UaTuzL1
 ogNOruD5Dz/sU5W1vFBDN0/nb/FgivCPlQZU8wX392LwZJ+BsyVeYNSODTeKLAxY
 eibXPYGrXBX+g97/gtsVih2dAFfglB5uduCQG9//n4kZHj2nqCq/6MYmyJv5jaJz
 0LqeygTn6QbKB0nhGmP+yqICop4ldnQs4ebi5980J8PzBypCaxY3B42Rc845g2gv
 bYpF1HGNhrEIPkqeF79X6Y7o0/QSiCivmqLbBv1Wehy75lGhWN1uHUPT6uYxZxDe
 Fc4n4bSilKLvAU+I2iTGYYkBHAQQAQIABgUCPSeWRgAKCRCM9myBE905UEgeCACm
 02d+IBhcQGXS3f74HImb+UF7xbC+sS0JgIha9bXbjcbuk5hrVA3dFrPlh403JHCU
 zj+Ucetjj0GFTp8mwoowZdgjbQoAphixJ0hCyePLVlxQmIey5kSmHO601SeHiLjH
 k4l8rE1u+2q6TQgY1basJMw0u1pzqIyXIOIZHDJwomjd63g6+NO+JbPDMa+D3ur7
 hJkWcKaNrRVRPTJemWD7PAJLPmMyyq3AXZFC0nJKab8S2AUuyxdCLSwkLxCQHXIq
 vImocpniny6eq/2h2Wt9LZ0G2BhvBEXA9YRJQnEwhDqf1GFJojtbdGxKmbQ6Vl51
 ZLgT9qiPFbwhLDGzj9S8iQEcBBABAgAGBQI9J5Z8AAoJEPy64gyiEfXtZh4IAInC
 8G4WUR7fF3puLovnymgaonudsm91vLE8H26fKAUMj+i4Lns3FCrKUKgsIqE6ykJ7
 cimFq50qO7EVAOEHA20L7muCT3uyuUViJey4pDiWJxn9gRklYwb7AP1Z70sg/vCZ
 pWpHibfmzh3NV+iqtA/iC3+mv0M4+g96xlqcz/4h1wR4NGuZwViO5iFbglrt2XcC
 u0Mivi9HhIPwNV0MDxAUQXyoGa0MLSreABhzlH2gCeoplFVgauSN5FiK/U1vJmkW
 NvuBQWlrb9mUxE1YLjCbJnVa+qrucZgBmAbWxhxZpEM4uo9W/CVyYs+Ar3rnh9x3
 lasLOfIzaizglb/xenKJASIEEAEBAAwFAj0Ew6wFgwO5euUACgkQCen5CopyTkWu
 Swf+PfsrzBwU7vwcb8Y7ZKMqU4byaCrbMRA1y0Sh1PQN6Am5dbo60poRwuuCs1ha
 iAEUncMsFzUDp6wWNiphqeq/1yRhVHZ0Vmo9LVJukml13yTHoxfQJfeB9Kwfv8PD
 EKbf7oLs5eg5OV8thrDeZH/ADOITFTRZ4RrxvrM0J7ycmXKos6bxTA5qvBpi3ksB
 4VWvG4zDaWaRCvxVYYHJeDYlOrsTLycqJY9HeRSfLYTvfYGHtKQS69AmlLd4EbND
 bh6cUe9Nni2L5PLpOibxZB5k/27rT6kljm+ZRmNs0GXTrJbUKXQP7rTMO/7DhgGH
 v4wRtHN2uo5sX32UpoHKThaVWIkBIgQTAQEADAUCPxEOgAWDAa0wEQAKCRBABhUO
 QAnq7WFRB/9i1NmKvCJEo1p0cEvylsUn43h5Z2G1kTQNGL6A9lcc+vu8P65BT4F7
 Ce/j2PLOFN94o8P7TZc2PBS2Ra2ZrNuZF6c8N1fDpbN/fMH+MJhjUTzAIdicVenl
 N0CWGaK2Ynks3jkQqxDjTCGEjQaRsBI7j+6wBqk20cpmn8MVk4MY7lTxtG/UElLC
 gumwfiXi8NKLcYoB6WvMSkdHITnHg5H3E61giWs4CBJ2Up+cguipaiqzQFHafOkY
 fidsuZZ4i6a9cV2yll5wwhLasJbl9W+T11wQudqQp8K/ghD5B0QQSuhPDeq1AoWD
 5L1TsAwC7mcs8cRXFQcyBSFLS2+beuMKiQEiBBMBAQAMBQI/EQ6ABYMBrTARAAoJ
 EEAGFQ5ACertYVEH/2LU2Yq8IkSjWnRwS/KWxSfjeHlnYbWRNA0YvoD2Vxz6+7w/
 rkFPgXsJ7+PY8s4U33ijw/tNlzY8FLZFrZms25kXpzw3V8Ols398wf4wmGNRPMAh
 2JxV6eU3QJYZorZieSzeORCrEONMIYSNBpGwEjuP7rAGqTbRymafwxWTgxjuVPG0
 b9QSUsKC6bB+JeLw0otxigHpa8xKR0chOceDkfcTrWCJazgIEnZSn5yC6KlqKrNA
 Udp86Rh+////////////////////////////////////////////////////////
 //////////////////////////////////////+JASIEEwECAAwFAj9Pcg8FgwFu
 zIIACgkQpaBgwm7CZm350QgAgFvhxzaOyCdMHtXLClUDQ3gWpzGP7eIze1UMkliL
 B1xf1q/OzsLCm8K82t0acH0W57pxQ63Co9vw64g+4Uw+wkY+zOPMow0DJ0zEy2yd
 bGPAfgprB3atew0jFIj9wCDl4BcyjxH9EIXQsESeWFMVQGLZqbWNbdSGy2Fvhx9L
 1MH7chXEWVfAx3cngZURkefQP931nTkBX3BMTuamzjWJ36Bo1+bEUWOc40EJ+Y+b
 1edotw1DEmsHigmh0go3Xn7Z51Iem1Qel17fKX17vyMnIWOymHc69zxAOj/uhUWN
 PsAnJGy2PKZnFT5ZlHOVsrVuAUWknKHVYbcqP3sPYHNsMokBaQQTAQIAUwUCPyFj
 nwWDAZza8kYaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tl
 eXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJEPl8+eM6S39dXX0IAKzx
 k0rDD/EMUKZLF2A5vIQhJL1untKV52bWhdb7fLLpk5yugHOWM9Ce8GgQ+/pDW54q
 68xbqMV1KiEN6fdadpaeZH0rABTJYNs+NGKs/Spi6l4e9e6slnzu4YG/yfyZY9s+
 6WULBCTwJsnfQBe4PqrSoNNPE4sADsYA+Q7jmd2v95+wZdq9GEZ3MH6cI0/rJi26
 HZSwfzSfYy87AGg+LjNW/iJ6MwZ6nOitPCHJCkOvovRtSgw3yzmt1XOOTx3TUSzZ
 sF3xR0NgWPoCAADdx7ZCes9xNWpK2NKP80Gn4idNa7mILAlM4f5/fHAdtU2VS2wI
 Y/yv7hQdTH0oWrOI7hSJAd0EEwECAMcFAj8WlgcFgwGnqIqGFIAAAAAAGgBjc2ln
 bmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35i
 Yi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5BOTJGMzQ0RjMxQThCOERFRERG
 QTdGQjQ3QzIyQzM5RjgwN0FDNTNBLmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5k
 ZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJEBmiaAmIOP2UNloH/2QP
 qs6n9ct6/Y/o4H/DPwayN2l0oLS/GQ33pPq2HVXDzESizH5wbqldZoTmtbz7BLJ1
 FuEOy1imTnAq3EHEvnhl4vEMoxxA9E7ubeYxepWqtasudpFWr9PKHPtHQ7sGnrCM
 TCrxVv6juJDNpS9wjytLhAZK3CjDfLGrI6/wm/zt+KtL+P07XT4M+nujiAALJHxI
 u/OS3dCVspJh+9CGABipjSqm6IprmsdzZWa4dwSJx/FVlo7myCo4vwITwLvM3+DT
 AtNOrfQSfgURXjZUu15IreXyw8meyWkeC1pK7BHQZiFRtg5uNliikYkCaCR4j9Qm
 iW/eadPs+EkS2DjF32m0IVRpbG1hbiBMaW5uZXdlaCA8dGlsbWFuQGFydmVkLmRl
 PohGBBARAgAGBQI9ASZWAAoJEGfDAwhyWzfG7SsAn0lNlCrct/T4mpuiaV4Vm2Oj
 CCTpAJwLIQbHo6/96jUBSvNmW8utNMtrs4hGBBARAgAGBQI9AfwvAAoJEJVkH2sl
 PljjyhEAnjftN5ulHmofRQd93YGKDJZobAvOAJ0TT6ih9EiS+fE1xzfYThV2oFaR
 jIhGBBARAgAGBQI9A/CZAAoJEHjLuZUaVye5rq0An2Mi7OAiIrDgnUODQ6TYrqa4
 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
 AC0FAj3zl+wFgwLKpqUgGmh0dHA6Ly93d3cudG9laG9sZC5jb20vcm9ib3RjYS8A
 CgkQEFgWhcUhCX7O2gCgpijOB8d9FnMMwYJGu+3Spq2sF/MAnjajGQJQdL3N1VPV
 VZZ8e3Yf3Km1iIwEExECAEwFAj0FGRAFgwO5JYE/Gmh0dHA6Ly93d3cubWF0aGVt
 YXRpay51bmktYmllbGVmZWxkLmRlL35tbXV0ei9zaWduLXBvbGljeS5odG1sAAoJ
 EN6Fg/i9v+g44pYAnRJJOzb6bF6+OqdqfXgA7PDkaZJnAJ42XAZQyI9nNDtaTxFz
 irOQSUn0KYiTBBMRAgBTBQI/IVeEBYMBnOcNRhpodHRwOi8vd3d3LnRyYXNoLm5l
 dC9+dGhvbWFzYi9jcnlwdG8va2V5c2lnbmluZy9rZXlzaWduaW5nLnZlcjEuMC50
 eHQACgkQpHnNxFq0YGpQtwCfde/EqZgmL2eVW6TR+uC1HoFE4EYAoLZZciBzI3ps
 0+YO694uqsEdrkU6iJMEExECAFMFAj8hY8kFgwGc2shGGmh0dHA6Ly93d3cudHJh
 c2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcudmVy
 MS4wLnR4dAAKCRB5BXaPdYT12LuoAJ9Wt7LpHCBxql5bSoAd8fZLU6ABfgCgl2Ri
 msmRsAuSK9DY8YbMd88CqJuJAJUCBRA9IeIrxEaR6Lw5pc0BARbXA/9alLowjmIi
 UFTd0s8l80en75x6nKXOvieebje/i10FQXVu7Y3O7znApQcyiN1dWOmtlelUEjV9
 csRgWgfn7aAqINDsqmp2IHDUft4iLzCeGduldvDKbcnPVG/HHetKQAxynFjNK+H+
 f+VDboJ8AjYPxL43ZB4NjC6iqQNiY8OGKokAlQMFED0iznm9QKbpD86FSQEBPJUE
 AIgkrpexSGneD3Xq+EUwfKMNpxOdlOFtBtJow+/AgWhE2ThxibjvJZa6p8f62A0u
 67AC/EY/7+WK7GDgWz2P+rPeFuicuoloo8HHECUcPdQrRrngk2m/RLEBOlkJ6dZM
 Q8iQtxTMrQXIVRPoC5nJ/+zIT51o9OcQOMC0uTdJmmBGiKIEEwEBAAwFAj0je7wF
 gwOawtUACgkQxEaR6Lw5pc2hNwP/famdbaUq5JNzKfx5G8HZ/3GyqWLZDH5uMkMo
 2nkS+dgqzrVVSuvA6GzE2kc/imEzoSPUDIZMEp97MRaQO2JieTXEG8PZaeFFPuNv
 ijY+bM3xDPwvrQzsjB4wcOLIAV77MmOcNOUi1zDfSlOPDgoYPE1isiwmhmcm7JdB
 Rtw+cwuIogQTAQIADAUCPdqgHAWDAuOedQAKCRDlFSglMxzaXWy+BACTUSnUsfTR
 FP8zttoW7/9SdDaBqXqO1NwpCWSm37ksepwdBFzR6uK2cHKLlSEdGXPyqSi12ZSl
 uThB7qmLanLc9fINyoheI2PtapWasyINWG5puMbqvPtONMG8KRv9w7AoD8T5ar0R
 h3jsIMViFp4JomJu1pokCCkAKMvB04G0mIiiBBMBAgAMBQI92qAcBYMC4551AAoJ
 EOUVKCUzHNpdoJgD/iTuEAKeayuvv9jrK+8dpFt44/Tk/094H6xVIYui06ywdD+S
 5+fTNohceNNAwexSIeS81sc9TsJr+hSAKoH/K9eTLrVM1EsgPR3yVwjP1NglCJbq
 Z4NcYV+51Dn/049qQL3ekeSLNeXJs/AmYOIxLhcB8Qa734PBOBpSfs60wRMdiKIE
 EwECAAwFAj8TM04FgwGrC0MACgkQtGuSO22KvnEuPAQAh8oEB8HrrihRnt0ydhBQ
 RDRPj4rtAEJ9Ft7G1D6cY32LsGlQgBRRy5IH/YmI9Ktwpi6ltX7qULUUvjPeLTxb
 BiKEcZgI9j8a+oon6L61T6P001uD65DHw0W/Hg8D6vzKDZyI0OTqAi/0MTir6otS
 NWB/TDhbUWX9NfABiBJ4rA2IogQTAQIADAUCPyFkiwWDAZzaBgAKCRAbsIu/KpIy
 Je5QA/kBgBlYScZSjhj9g/v9o+8vl/PuBu0LceqONiJ8kKu04CId1E3SbJx8hiQq
 WuvYaSJMZz+WmcYM4r8n8T1yQ9QLE7c2jIbU86irykBXKixX+af1vDo84B4moPZp
 vTs8jHBJDTWsBuGlWxxd6GHgOP7L/u1K4ZE2PC796zuSlegRNIiiBBMBAgAMBQI/
 SiLRBYMBdBvAAAoJEJugaRW/hasxDu4D/0DGiGqNXNF/cSeoAkt0hywxHKqEjzjG
 b1DTtJ4kLD1x7hC98LE4AaOAocDoK4FekUPbVgiyy0PtD3mNoJORWz28leSxNXow
 Wz3cPIrkn/Y5wrmw7Xy9ZJXJNv0h8tcxRJgUgLVN3BFrS4sx3sSjFMLbUH8znaZj
 xI9Et1iRl6VCiQEHBBMRAgDHBQI/FpZTBYMBp6g+hhSAAAAAABoAY3NpZ25hdHVy
 ZS1ub3Rlc0BwZW5ndWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29u
 dGFjdC9wZ3Avc2lnbmluZ3Mvbm90ZXMuQTkyRjM0NEYzMUE4QjhERURERkE3RkI0
 N0MyMkMzOUY4MDdBQzUzQS5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJi
 L2NvbnRhY3QvcGdwL3BvbGljeS92MS4xLwAKCRCrHktgRnVrHsTuAJ9cTEySl64e
 6UJgYUVyQ9FUhDBT7wCghZWaFgusjbcUY/8wh9C/OvsSCp6JARIDBRA9A+ZYlWBh
 pt2TQTkBAQY9B+MFdy8EKYP1mgbIXhZC8sScs2sSUsLhF0ZpSq6JcAMGIqjZZRSP
 fvDgt9Aqe8GnG6AtZ7NXdfYARBq301Vaf1t/kNwVK0zcL3TswpGZ/j9Ao+HhJFA1
 ivPHb3zrazrmEluFHbbPHZ+33Lvx1APLw2AXP2ise5XmO/Ra52I5TgeNP9HJs1R+
 Qk8Pt+Pir5EfgegoJngRgdySfvcFFo9O2Kinx1sV3a/KTzmP4kzmygsk2zVjTN9u
 Lv/RV7U/MheTshFxIfQUxCFUofTz16Z5/nPEt2ePOWXQGPZrcW8grx6jQA3TnNQp
 y45kpBns7nWhvJAI7UWzBBdMaBwJUjLUiQEVAwUQPQPmUwFVuuKglNolAQHpUQf/
 Rw37iEBl3wVsGFQqsz3n6tqrfO9ZGKG/EHRO+l7iCPHjt0UHwUWLPJ0dvE6wHbfN
 GFjBzWcIukJSnv7erLPgTgIv2mClN+uyMLXttYBL8OXAxG2uCsE98VG8E5fio88T
 5V9a6/NqkQQYlIQj98JO8SIMwvs/EMBFD2PzEUVj/pEFONl8Wh6cFE9Guntvx3+7
 nUPNC3lw9dbmdTjYKTq/JHJ/rqAW0qoRbzDNSB8tTWitQznLe8srQK3gp5qq+SqG
 vy5L6U2X8YusQSGm730QWEwqG0ek67TwIhq/TujYopw5VhXUJZukCGSn+ASABCVr
 egwXgZnhyrvgeAxNiE6U2okBHAQQAQIABgUCPSeWQgAKCRCM9myBE905UO4VCACd
 m9qniy8LWH5uOktlSqHKbzoI/qTofUmLFHuzuh5idJl/JXImM/516u5r3uZBmRpn
 PYImOi8TetADuwLjLTIHpxkfhVA3NRtrq1HwtHtice2K8cHUYne5RC8BigRv/M+A
 P6EmgftoQ8v4mbTgT8jf4IwggJz8GX9m70zpGSMXgCkcltLfJYYPXuDTu4bw0g7O
 OeQi2hjDlxm8b/stB5xJ9Qw3+TyhdT4z2msmt2h0UBDr3Ejs2Iaj3Vr3KmN3hhnC
 lcE7dXQNK7ry1V2J0JBBSOO2IZeBekvLHD15iwMxPL5SHz1L/95B2JfhM7V+QMad
 sQaaEYnHUh/GXXCc6nSziQEcBBABAgAGBQI9J5Z5AAoJEPy64gyiEfXtntQIAJYA
 w+AjUbAot7HWUhfqYXcw5Q6F36TY7VjNk1aD+Bh6WjKxwNUVPZH91fjwskCZ9hDq
 rwJs/KciU2zeWz7k9KhFj/1PGtfducx1k5zwJUB/HmgtNk7dsUJ09GjV+Sy9a+Sd
 wLOgjizIl+jDY/YUAs3V2f0eOEmANdUntXDvhyiu07uo3aN0VdhB31T6pakGObK3
 E+oAh/jkPw1I/dWBdKoKSHEfFeU1RgC9xBaJmoKVfCxedo3wFhZa7klgHurVOOs1
 WWLwUagqGRq/kQ4+n8B8mRQNTlXtTjkL3pEMYmesP0UwmNlBFL4fl4Yunu5wFpB4
 LdXrNLWLpM/0WZfA7GCJASIEEAEBAAwFAj0Ew6wFgwO5euUACgkQCen5CopyTkVH
 ggf/XyO3p5CQ+sqbLVr8IyBGBReqgXgNV98UbhngBm+BL9VFNJwJyb+QqaJGQZxB
 vn8Ng13cRBDgGIlzPzUWccs66zOuZoHkR9IeLnKYQud2VWG1bGFfUrq4p49xZsV/
 bD3kzORUUNF0zzTzc4EK2/xHgooqrbcsjCXsCS1598uaDOo8nzMnQBO9tRiiyYNE
 0gIAYsG766ZhdUHkIWJquCK+A1U0PljBTF4HORVruJfViaCvYguZCP22vyYbpXmO
 ZzGIWQ//m0yXJ40mhWae2AjtJJyQEm4zRLsWv6TRwa8+DSW2OMKM/uXbz/nLV4OS
 j64IEF+VKdznwRpcVVHkAKPRjokBIgQTAQEADAUCPxEOgAWDAa0wEQAKCRBABhUO
 QAnq7RL7CAC3H+vBpE14/d06iAiGV1QFIuiNF3/V+REu5/bbxqzuGY6XCmCmS8lX
 va08Rr29yoShJMUsvbtgQTbF80wQ5ZUlZpdlxkH88MW522rmkWD/PzxCF5tR6hBO
 W7p0ccbbAns5s4BoFh7bHSU7tDmaTrVZ5t5hcHGoXFfFvMOIRbNoxvidpxQOiqPb
 VNPqUUt/e1JTKucRjCaC91hXgPtCGR5Nbc4isImlUrMIfHqebsUzPxH66vW4eckt
 SCJQhRY32KBDs/fY5AiPZ3FMfN5QcnLPesJgvK5BkQ0DB1uDbG0ODL0YnilzR4HZ
 YtTv3kbCg2Kyz068ql6+Z16L5qfJC/11iQEiBBMBAgAMBQI/T3IPBYMBbsyCAAoJ
 EKWgYMJuwmZt67wH/if3kjo34L91/rzgIwlyimeM4ncnzfsCGG6q2fjTMkIWH6DN
 9l7geF2T3IN2VeC2cXE6n0o+7T/pA9pw4MnwqSxfgw7yiefSaLKlWt8fp+XIVNN4
 egyQ2AEA7wS0j0rQdpGt1j9P989F9iSh5sxdqXXF8NiJSLNk/6Qc3CBP+7JoOh4Z
 532jvx7/q1atd4qYXhFx2b9vA20FLUQwJOyMbpYoiG8d0a3uQ0xivTUERUkOrbHk
 um1Q1b7R81lDYSnts+Z2PtThb/RW21BgllkLhqwg8xQKjTQ0S/Y9UdYubffvegMX
 uUAT9RMyuwKjxlPnACE81oPS/nS5fdvz0WaXf9iJAWkEEwECAFMFAj8hY58FgwGc
 2vJGGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlzaWdu
 aW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRD5fPnjOkt/XSZCB/45brff7zO0
 wtcSO55jnl1ef/ivPg4jTKDRRLtTo9BEGf0NDYM4laaeFV2DAP/upFTG7I3vtRG2
 0W64jCxzuBPto6Om8DobzCWaqr4vnuwi0sHFpqeX+pULRHFodBPv2PMevLMDHTq7
 wVIh62hzJrWYPrX8CP3Fgl7s9f0O8YeoGIWQRTR+oJ9qwDqY55uVzKfhalrxoC/M
 Wz+Au8HAcdDJvZsTN0jEF7byIuKjnL0BQXjuMiEcIAmNZ8G+mU3F1tZaMaEkvIC0
 VuhgbuuUc8CvuSdSeu2jtVdAR1T4+o7JXl7T3cMe6VMRpIZSw8S9c9oYANM9W4Fv
 /CcfXjM0YZGViQHdBBMBAgDHBQI/FpYHBYMBp6iKhhSAAAAAABoAY3NpZ25hdHVy
 ZS1ub3Rlc0BwZW5ndWluLmRlImh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29u
 dGFjdC9wZ3Avc2lnbmluZ3Mvbm90ZXMuQTkyRjM0NEYzMUE4QjhERURERkE3RkI0
 N0MyMkMzOUY4MDdBQzUzQS5hc2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJi
 L2NvbnRhY3QvcGdwL3BvbGljeS92MS4xLwAKCRAZomgJiDj9lNvQCACUffB9VWqH
 ksmiZ/5q/zKBGtWBGChdc1KkjzrMcfwZPijE5taUdS1mD04+6naJ+KgSbIiOrtk4
 GsCuHJSLBIhJy9dtpvaZMhmU6kKp1ItxXfBw6VqD3bgllDPnkWkb5q034BOAmdg7
 Y4jXeD5iCdUNpIGemKlF1S1GNYnYzYnTKfRIcqgZ8G4QA8Po/vDaoPw42XbEY1p3
 pjUjwfuh4Uhqb3lZtM/PPCHhSkogT/EW6DdyB40YfZzvDQj4upYfS19jwbrREo6x
 sFAMeQ60nZFqxjbWD34BIIqnWGOGM3vU+4kTDJTH36MOHSmcpteXz4wDlBUTstG9
 MS1/zMPJcRt0tClUaWxtYW4gTGlubmV3ZWggPGFydmVkQGluc28udHV3aWVuLmFj
 LmF0PohGBBARAgAGBQI/EFinAAoJENb6+t2VLz//zDIAmgM8Pn8fyYwFN2SxP9nh
 xCQ29iJeAKDcePVaMco+0a3ECEdC8K9f1vrgNYhGBBARAgAGBQI/E0TkAAoJENAZ
 9e+QJ6uIuX4An1HLngrffGbtzm8qmS7pwbhXe+J5AJ48LfmHJ4b97S5pU5Z9idOl
 XZsY4ohGBBARAgAGBQI/E2yJAAoJEK3sLNEalTfnUnYAoIZNqErG88a1q7YEzIGx
 rYJOnNptAKCLDpceIDQ0aEhmPsUoFp6whg6p14hGBBARAgAGBQI/FkxeAAoJEEbM
 XGPzGKVqolMAn0gx5juuveK5cXOE12M3eoKH9DLNAJ90uBOT0ahOSTPBNaYRNrG1
 OttHGIhGBBARAgAGBQI/IEB/AAoJECjdsP0Zyba6a+8An0AOYFxPrdDD9arN1ojC
 R4diAecHAKDYiwxv3h5hoLfoJa+peG51Rarwv4hGBBARAgAGBQI/KLbxAAoJEG8j
 i8JP2loM7hoAn1/RkGr3qSul/9ELruvomxMJ0+QlAJ0Zj+Y/WUr96hetuIemzO+0
 o/Aj3IhGBBARAgAGBQI/Nfy2AAoJEGnSph3iY/zUPaMAniSEyLKVjJYEFAIzgmpx
 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
 ExECAFMFAj8hV4QFgwGc5w1GGmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNi
 L2NyeXB0by9rZXlzaWduaW5nL2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRCkec3E
 WrRgauA7AJ42KOLGN/ovjnxEdHD7xzzRcHktAACgkyi3zR2G3oL5a3nit4rQvihA
 +xCIkwQTEQIAUwUCPyFjyQWDAZzayEYaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRo
 b21hc2IvY3J5cHRvL2tleXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJ
 EHkFdo91hPXY9CcAoKrjRA8ND3y6T1aQSgRZeJeYu/LAAJ9sJeTFMk2uR098SDRC
 UcfTeKC8xYiiBBABAgAMBQJADIE/BYMDwb/PAAoJEL/W7lhX938JNtkD/3/2RKm2
 8v6btjL2UrCJg8LjxoqxSOdU6N5SLplZ2YOef3+gZUTZSsYT1K4XvPoBvPif+6zd
 0a9bFp+fP2j7SGMrlhHTd6+aDQ/BHaEZzt4dY2dfFcDNyvqIKeOTXw8/HR+dwryH
 DNwRcEMOb00IPVjfVirOcdPNbn6jYP1LYnPniKIEEwECAAwFAj3aoBwFgwLjnnUA
 CgkQ5RUoJTMc2l3FHAQAki+C6EKYQRullCePZ2GMJ8SR54xI42JaPbSBzxpb684J
 /jabcr8WHHJvGXlapUmdl3vqlks5tatn5iFJvbE4qAPOdo6C5NXIpD5OSbHAocXj
 43QdrftuMVF7w1fyJBkWFoMrMZoa4FxiFLENbm7DknLebp1Bp282O/XR9R52PJSI
 ogQTAQIADAUCPyFkiwWDAZzaBgAKCRAbsIu/KpIyJW/MBACnClO5+acvjHnfaUd5
 3tcKfLkb+vWzMXWKNt37RG1d04bKqlkZdzJKT+noMBqflVf91rk3goPPJPDjwUtm
 51gGlSgPG4mPnhQRrUHwC8BM0lGiuB68Z1QdxF1iUx8B623GtPrJbfufCexrAxIL
 6La7KosErbR1JXbjS9+d+M1p9oiiBBMBAgAMBQI/SiLRBYMBdBvAAAoJEJugaRW/
 hasxbHUD/RqcGxjUaJgELwAfNcTpm86BsNL5tu6WJFe3DdIIzQTb27GGgbOfj5NR
 LFnk75xgQtk8lnKqsXQHMC6hm+pwh4ZGISBZE7NIqYokUSYDT2mbplDo2kDPyO2V
 1fWf8P5f8rI5e2QYIvn4kNFWidfQKh1Rw86MlZVIieVf8eVeS5qCiQEHBBMRAgDH
 BQI/FpZTBYMBp6g+hhSAAAAAABoAY3NpZ25hdHVyZS1ub3Rlc0BwZW5ndWluLmRl
 Imh0dHA6Ly93d3cucGVuZ3Vpbi5kZS9+YmIvY29udGFjdC9wZ3Avc2lnbmluZ3Mv
 bm90ZXMuQTkyRjM0NEYzMUE4QjhERURERkE3RkI0N0MyMkMzOUY4MDdBQzUzQS5h
 c2MiMxpodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3QvcGdwL3BvbGlj
 eS92MS4xLwAKCRCrHktgRnVrHo45AJ0dD92uCPhsjLWrVsbhMJfwmkVOnwCglKPY
 urVXyo6uXC/Q5KdueASb3iWJASIEEAECAAwFAj8RTT8FgwGs8VIACgkQCen5Copy
 TkVorwf/ZHfXpigg+qo5D9nzURNgsckj7d5F6M3QfYUSpE7Hl8826m80iVciBIkZ
 Eo9R2H9mFOf8CJFBLqcbz6vxRC0Q+xMbZSw8o0tRrfVTEPyvdh5ayIwKsV1mgFux
 JwyDPN3zy7LejqsLQUA2IGY+pCz2kv7P0iWRvK4uaRO/z5qaF1QLd+aYssolkidm
 cMnkJph3+/UiN8Tvlr6UAcsAolj+ZShPM1whJ6aAOL1EnDmnHScVVmGIl6Qf2q1j
 tPlF3qG6CY9CyIaUSxSudAEMaGthTeM+MjP108aJcTYVF1PbyHnKy0e4tJlU/MW5
 OohVH3/KEmIj2lT2AvBUHbCYL4NW2IkBIgQQAQIADAUCQoDzmQWDAU1NdQAKCRD1
 wyAKI5xjhP8aB/9DnrJvwzgelLhZ61kZ6hHeMnL5MfRwe1ytJw32UgK8k11Rh2qX
 4aFq1z3jF/jRmFE6GRSP1dSFpu+YQjPSJ5rJO6urO8OyFXkgPVw5ERlbWxyU/E/9
 wQf0rfg2/fdOsLOkp8qO+svw9kt291WSWBvw78MeHYEUjnckGhYYuvg0bFMjCqew
 ZxPHP6+qxgRRlI624ArmvG7auGaLJvolDji9dc6RFoygdmDKFcB6oZZCfpsMRM5i
 SokRQJq6kcOxC9uSq0S5F3kqBpxaX/Cz7awWCpGJ2HJ8IM6KWhn3DZ3PaKFvFWkM
 fOt6IXQMCuz7uhLPeh9yn8HeE0+xrafU75VQiQEiBBMBAQAMBQI/EQ6ABYMBrTAR
 AAoJEEAGFQ5ACertOZEIALVSl0IYEbpqEftGbDf1uxfhioTFUS4IedO8x7dG9WrH
 m5WTOy8dBTnA1ibqD5U6kwfUkylDsSwjghQQtsEAd9Uc45LjFZVi4+w/3mj65IbM
 lizrunjZwRysce8eHgEVgo4yfDfyCF+LNHSFOVDIBawnUTm4j9PZiX74hq/W2aGP
 acKn+as0PLzSJMu7MtmCf/pds9TBVLoTlhRXcA4+o6P94OkMP0YMSNLe/0Bq+Sag
 QKAtJwdTbmSGZfCnd+iBdTQsEyCUYnjvJq+enNZgKTWfNHeRYbDBJvoyA39HKiej
 eRci4KjDfQhn1EDDz/q9mQr50cXfWxYD+LXzWeF6knaJASIEEwECAAwFAj9Pcg8F
 gwFuzIIACgkQpaBgwm7CZm2ywAf/dy0mCvoyH4ly1NzHMx0y1UCw/XF7YIbO9Vuv
 ILO2l4JAt+r8G7ebXp18q6vMCtPnoVAr6r7e4asp7+0BhvMXkj4nx/4N0W3pG9ux
 1/mPF9rpWq9hRcjbcHU7IqzS8VqaS+bVgIuGb99RT4Yeo9nA9hqwvTXFRKPzImv9
 uCRfPLcD4N2nUgUWcUF2GicA1gVQ6GhJrGCROTLt0s+0lLmCVrkT/Pg6ZpxXuogZ
 q2GHEZPqBUiPyRbhmz4GtZHGEZjMYO3V8nMgMkHpk7luh2dShDJzIoqfftgTmzuQ
 R0qhEyRldZlomTht0XVv0RBnGUO8IEhEM/JhXUdDKTdHtrPhLYkBIgQTAQIADAUC
 QSSwggWDAqmQjAAKCRAbaNz8wFloI72cB/oDy5na7lM1nIlRKN69USWBQ7h2HAXw
 QMyblpipNl4tTj89gZVEQlEXB82pdDUwULLydKsHe8MELbUyhE9Od++pkdM3BzRI
 ehkDqBiLkmHORf40nB2zszVVcWcp6yuM2yd/T41h4ySIw1GP5mmpd+FfFxWdIx4O
 Ycc5O3E7ksMCfryKusAiDVIlZqdFQv1wKX7tI49rX2kgqaM0ohYS1GeFH3bDlMq+
 b6vfY/BZRfJ5yqw0q+XM3Ev5g+s9Y5a0LeUY8BOD+b2DVAmOxBsVJQzZwBMwl5hc
 3U4D2KH5Jy1VDk3b84sdNqlbbSkSpn1qlnjn8+4o65DI3rsZT2se9J1ViQFpBBMB
 AgBTBQI/IWOfBYMBnNryRhpodHRwOi8vd3d3LnRyYXNoLm5ldC9+dGhvbWFzYi9j
 cnlwdG8va2V5c2lnbmluZy9rZXlzaWduaW5nLnZlcjEuMC50eHQACgkQ+Xz54zpL
 f11Guwf/RNdrUReGWes7tODJdN+NsfrTDQluwTTSGGmPL8xr+S/9V22Z1LLzGzg2
 7MI7VCJu30zHeEFJTNDp5fDrNoyCqZPO/aAKbQ3Q2faltmhePWNsbIZ/jgDHZ6oP
 7IokLhyMe20AXTNMtIcZcPOm3vYqHmcUnlz3LDnxKIoO3/6tp3qQ56yQjqn9S+Rv
 fL/1rq+4jJDwqAeoW9VRupcKAE03k6nEJwVSm8QGJDa0Zc8nUBTFcgtUturZMXm8
 FEQgkNtYCFL9VrRP3T8H38oHfxp8CA50Wk6uRqpMpQdf/8fe2OHVMtCJu0F6jTex
 PXkaUijmYAs+dIOAC+L5CFogc+TaHokB3QQTAQIAxwUCPxaWBwWDAaeoioYUgAAA
 AAAaAGNzaWduYXR1cmUtbm90ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1
 aW4uZGUvfmJiL2NvbnRhY3QvcGdwL3NpZ25pbmdzL25vdGVzLkE5MkYzNDRGMzFB
 OEI4REVEREZBN0ZCNDdDMjJDMzlGODA3QUM1M0EuYXNjIjMaaHR0cDovL3d3dy5w
 ZW5ndWluLmRlL35iYi9jb250YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQGaJoCYg4
 /ZQ45gf/fsceAhEWApzeJRYlY1Rc4/pH/AkiMqVovXleAoJvig+Ec6dJspMfUWjj
 0vNGBsTaGZ1rN6y6Lth2Q07zEhUXsIJDnKgvxR64BonW6APq1Ck6rMH6CLUh55JO
 NOZsPVnmRyiM7qmLkz45XRF6l7dEOn1Ed+EtnOd/XXUkk9n5mVmYoSqO8E31WK9b
 WX+CN7YM5KOEWypGtZEwjWje26ydS57MbL/qlqWV5JHgccxZvnItcIURCEZQkXfv
 imddFHgTvHn2YzUESejLWWk9pdjYwDLTrVFWKEEKetlPDGhkjeBmFJcehHhpYlRt
 uQcSKduWqhcRNWqMUd+D+ccaKP9LuLQrVGlsbWFuIExpbm5ld2VoIDxsaW5uZXdl
 aEB6aWQudHV3aWVuLmFjLmF0PohGBBARAgAGBQI9ASZbAAoJEGfDAwhyWzfGBLwA
 oKWnsa+E24L29Y9VyeXfZq3pg9k3AJ9hEEh8WO5fj4Z073lvgHVPG6qyB4hGBBAR
 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
 mULa76pTI+OatTM85Y5HEAIAoILfHVi3YI1uZisfmgatG/fld68viGIEExECACIF
 Ajz72QsCGwMFCQPCZwAECwcDAgMVAgMDFgIBAh4BAheAAAoJEHwiw5+AesU6LrAA
 n1b1v095d8SjY2t6825yYT5KsP+9AJ9OhFAQb0IjZSkn8JFqhKE1SX0FP4hqBBMR
 AgAiBQI8+9kLAhsDBQkDwmcABAsHAwIDFQIDAxYCAQIeAQIXgAASCRB8IsOfgHrF
 OgdlR1BHAAEBLrAAn1b1v095d8SjY2t6825yYT5KsP+9AJ9OhFAQb0IjZSkn8JFq
 hKE1SX0FP4htBBERAgAtBQI985fMBYMCyqbFIBpodHRwOi8vd3d3LnRvZWhvbGQu
 Y29tL3JvYm90Y2EvAAoJEBBYFoXFIQl+LjYAnjY+MkyNepSpNWZdvFTY8Qniy91z
 AJ9E/GLjolXZUMnhbrcbUNpQOJaJYYiTBBMRAgBTBQI/IVeEBYMBnOcNRhpodHRw
 Oi8vd3d3LnRyYXNoLm5ldC9+dGhvbWFzYi9jcnlwdG8va2V5c2lnbmluZy9rZXlz
 aWduaW5nLnZlcjEuMC50eHQACgkQpHnNxFq0YGrTdgCfZqBF6uPJ0sBVmPvVsMQ4
 6n7HrpEAn1KHK11mQyg+9R30JX/wfkfGigsRiJMEExECAFMFAj8hY8kFgwGc2shG
 Gmh0dHA6Ly93d3cudHJhc2gubmV0L350aG9tYXNiL2NyeXB0by9rZXlzaWduaW5n
 L2tleXNpZ25pbmcudmVyMS4wLnR4dAAKCRB5BXaPdYT12L7LAJ9qw5GW2sMJ6rFN
 VEK3kCkmcaon7ACggd1uzTHGX/q9b2HJrzGI0sfpu/iJAJUCBRA9IvmbxEaR6Lw5
 pc0BAUgTBACNTSdhlZl50lKY/Wn3lNdY8dTsfkQrrfP+k2VtXMfLGILBHYzo5pw3
 uwQgv8+d0wzZHTBVt+Oa0SiCi2kp6CGgDGcfNmIUk9P9VKOT+knRWySiLntWWxfO
 1+JpKFJtY3aZd7ZtyvnKl9joQw0rIFmejadJRlF1nyl3S1lZ/cnNuokAlQMFED0i
 zoO9QKbpD86FSQEBRsID/jmh0rI12txDWfqLVoNb4sLDyVPGw6KR1bkYlBGEevwJ
 ffzNAb0jzQxzs6qynJUKIntGtskHeryL9BJq5pYEbDsd/GLb4ovSSRictXPIbCKd
 F8f2MfY3sBXhzmkrZPqo8ioCWq9tqGmIGBbc3sXbfJ5KRCadl/vtvAKhnUQYGSyh
 iKIEEAECAAwFAkAMgT8FgwPBv88ACgkQv9buWFf3fwlYdAP/QoaUNlMdp8CuN56W
 TXIjQSb7vBEjVCLrOqGx7ATo7wNWhuw454Ralz6xOwELGKCeWWlWrXyi8RDW6oAa
 1vuZIqZLqqJyfbf9aAQTfZmZYieRlMCtrZrRQ9pJmX/UBhUResQRhFPxznmltomW
 M8KYx5M+/hs5nbqOWdG4/Vkee7iIogQTAQEADAUCPSN7vAWDA5rC1QAKCRDERpHo
 vDmlzUicA/wOJkiv7NtzzyxMpIgC1rqsmBc56f0Pch8XW5/fVyE5zC1epcBmAXc8
 WhAxRS+ycXadHQV3EpjHzW74OFQl/wsTNK7soOxyvV9B+cQdjxdBmQfbw1/kDg++
 J/hKiQYgVc8l6e+K9m9FebfDe8PFaxc0N5q8TCu4IvBMohAUpb/uRoiiBBMBAgAM
 BQI92qAcBYMC4551AAoJEOUVKCUzHNpdeoQEAJEP50YXbGVRgC5Y9LU2srzL1N16
 WZX2PwmRE/LGgU5SNMmKZr4jWYEim8rDRyZxEytd3VAFuCMvXQ+GlhlR0XeEc6ql
 KYbUem3K0V58tv9JPJsu+LER6rpQYmSQBkH6fBHha/Tl9b3+jT77/TbE7V+rJCAb
 b7fOTSJ3qdVDKjXpiKIEEwECAAwFAj8hZIsFgwGc2gYACgkQG7CLvyqSMiXYFAP/
 XVK9xQbCgN09K/U7Moh0szy7nubZYDUUA62UliMNutrqnafkKVuk3BDqmGPvkeLT
 2RwRq2bZaAznMsPuVoWTfVlM9WdErwLrll8n3WgfRaWTPh6iNJpNqDdYcqoRy9oQ
 EroyjWKJdTijSkOrkga5Uwl44TzsvLXV8H1AK45BpwGIogQTAQIADAUCP0oi0QWD
 AXQbwAAKCRCboGkVv4WrMcTwBACQzG2D7BX5U4nc002Ki5py7uqWXGn03haAqx1E
 slANX6FycgyeqE5zB7ApLz+J68gLWWWhnVsiJOnC2SWL2ou1ky9cpgROPfhgTC5z
 iwH15WTGIayHy3nqzoRGAoRAyvzvZlnXQX1hGqOzfXCGszDKVGsERTZI4ublEw7M
 LZXwY4kBBwQTEQIAxwUCPxaWUwWDAaeoPoYUgAAAAAAaAGNzaWduYXR1cmUtbm90
 ZXNAcGVuZ3Vpbi5kZSJodHRwOi8vd3d3LnBlbmd1aW4uZGUvfmJiL2NvbnRhY3Qv
 cGdwL3NpZ25pbmdzL25vdGVzLkE5MkYzNDRGMzFBOEI4REVEREZBN0ZCNDdDMjJD
 MzlGODA3QUM1M0EuYXNjIjMaaHR0cDovL3d3dy5wZW5ndWluLmRlL35iYi9jb250
 YWN0L3BncC9wb2xpY3kvdjEuMS8ACgkQqx5LYEZ1ax4N6wCgoKMUMJTeMgLrP7Sd
 EqKYc/NXdqgAoKub6jBnXDpsFcwHq1lzhnBEtvO1iQESAwUQPQPtHJVgYabdk0E5
 AQGr6AfhAXPkw0zq95J+Xi7N/d+0wPKViQyMmSeWD8NdWW/S0pKGsl/cxKVBCN/T
 H5GkDExI4WPc55SFO/2X4X6udCWODuypp7LkNsnROaXolU5CSpowxUpuqjlckxwW
 q+u+ThTeBJBWwzLpogUJtQiIcMdpmB5xs6chXKc8eeh0/F6E7XLMdcNdcXGAV21V
 AB9sFn3vH1v6jge4mRzvDB7ty5jbjJI8/gA8S/BuChufT0sFNxXp1/hFkEk1UGGt
 2La8DKgzRw1pFNuOgfw2lOQun3VC4haThtscPavQS3FKVjHdF8l4akFDXRcltrug
 RMFfLkrjJThH/3MUCxxdyOdQ+YkBFQMFED0D7RgBVbrioJTaJQEBn/QH/0NIkPkt
 R4yatrjNn3ngGN2RjxTFeQxts1ToRrUVeNTSoQFAoLMfdE5ol6qfX6erZeVVbQyn
 XGejdKCpdd27BaRgZaOFmhu+VTkphUMFuriWGzDa1Tjvpfz5eh9ttIoLTS/63KOl
 JLt+6jxKXxTVXBAkY4sPrvioI/7Ck24JLEk+ucREflDtwIECxc1q62ILOqCpLK4g
 w5kaHaq2k8Dt3HzvxzYlVR/2NqXrmQRIVYXM/h97pTtT71F5NCzpqXNVcSXdJvu0
 KQmj0VtFDVO8Sorwg5Vd9+6X9BdUOH0zLEgnhCbsCJSAufWv7P0fyam5r7TnmPxn
 avuWiH0t9FOwVLaJARwEEAECAAYFAj0nlkYACgkQjPZsgRPdOVDZqgf+LwLZ0vTE
 MFSqheRIh98mCqlk1S3cvbPiAOf8y82TWaX0+PEPPZIFY4dyfCED4+aHI7i6aU0E
 Yc2SS0oe3T1w/AvCKP3bvI5DPZhPiLOiJbGR2RYy05MDXJf0DougJdRhEWimOp4u
 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
 Di/aS01mrVBz9amobWhdwbdrJH45JSm7QxcO3yMmKNURjatGaBi6ih8yGRyHYL8a
 paZcY2VA32cdNTqCsVHeyUcml7mqfsyOKlpleEIE7IcFzokBaQQTAQIAUwUCPyFj
 nwWDAZza8kYaaHR0cDovL3d3dy50cmFzaC5uZXQvfnRob21hc2IvY3J5cHRvL2tl
 eXNpZ25pbmcva2V5c2lnbmluZy52ZXIxLjAudHh0AAoJEPl8+eM6S39dkwwIAKjo
 94Mz7+ryatxk1pmMylgu5u77qqnvJ4gwOLB7lvYJCLou/QAyyy0I5iwKSQpnWJmk
 zV1XZdnQ/qqvMSH9l49cgxA/kQTM5laAXf4JXCM+JdLqcWlvoNAApJB1T8uQzi3+
 vU2RdVKJgl4HehvyTOAS4fWMqQBhz1ha5xaXUdPFrnC6ih3bflmWxFxjK6OtEOi+
 q+sTlALfPZ5S7tUazNCHXYSjtC2AncW8zq1tp+TYMJ9/Cj2j30M3752HW73oXQAH
 W4E3cgfiNWlxRY8eC/9XR7PpnZYV9s3gbHoYrn5vkbxOmzW+bbw//y8CBV5vtLdJ
 o4J2bR1QueKjIAv6rBiJAd0EEwECAMcFAj8WlgcFgwGnqIqGFIAAAAAAGgBjc2ln
 bmF0dXJlLW5vdGVzQHBlbmd1aW4uZGUiaHR0cDovL3d3dy5wZW5ndWluLmRlL35i
 Yi9jb250YWN0L3BncC9zaWduaW5ncy9ub3Rlcy5BOTJGMzQ0RjMxQThCOERFRERG
 QTdGQjQ3QzIyQzM5RjgwN0FDNTNBLmFzYyIzGmh0dHA6Ly93d3cucGVuZ3Vpbi5k
 ZS9+YmIvY29udGFjdC9wZ3AvcG9saWN5L3YxLjEvAAoJEBmiaAmIOP2UNN4H/iI9
 8ocmrlSsXKH4kvKrAXdVR6Zt/eWN7bDhufaiCq5gPpkySvANnBSHv083bor6AoK4
 v77Otwl5SiTnK9A2YkPqfk54mYzX6Wyd9rkXfvq7gx1FZIv7Ad8Ht2aJqAhGlSZW
 Q9DE7b7lDtCDwrDREimWAdGozy2sjNsqPYyF0R6okrHfkOVheXEw9ogZY8hrPQYE
 Nabv4R5nIg0QsK3P5QA9c6uwcEPYvz9YLsJNPgub5PnU9hWwhinttwq5byt5f787
 YFF+61LoGq94SBEG47NY+j9++vvf9YCJLnMVzmZqdE+MZyu0AjcdXNzBIByBeaJF
 VzSyxQcnu9EjayJMWcC0JFRpbG1hbiBLZXNraW7DtnogPGFydmVkQEZyZWVCU0Qu
 b3JnPohoBBMRAgAoBQJMh8VeAhsDBQkVL4RlBgsJCAcDAgYVCAIJCgsEFgIDAQIe
 AQIXgAAKCRB8IsOfgHrFOpV9AJ9vGgOIsR2lOY8yuaVPkMN2IbwHXgCfcpcxDEAS
 sU5oeT6EpGXgyQTKHQm5AQ0EPPvXkhAEAJR+JXp+B5wZWFu2EzCwEH7rHNiXcQ/p
 nonR7NV2gbOUZ9LHskHn5jq6NNZPEfIwBJqs4RwoIb1RFNGkyx01qjx3yMUtORy2
 SGENCBBTH+c9kkrL1Bq4MnbR6tWtAcOKjefsZDjBE2SgXTPW4Jy+yrRfhhxa637b
 y25Wmx8PHlwLAAMGA/9dRrwk/jXPcGvqcyz4I/dsTM9IhCxyKvPJghBxGNTAmqHY
 n3WWR8H49cHfi3XW8HMNXl+tk4IULp7GA8akmKw48d65oqd9KD468k+UkagdO83P
 +Uoehtv8ROCbYECF5AkPgtk8px8N5EgHE2PANrXTL0EB/TFidNLdiJu+CUsDGIhM
 BBgRAgAMBQJMh8JUBQkVL4VCAAoJEHwiw5+AesU673QAnRxVRUIYUB0OZZ5A2d34
 bbJlJih0AJoCWn8cneSXT3oShBlbt8J3l133BA==
 =viLB
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.190. Dryice Liu <dryice@FreeBSD.org>

 pub   1024D/77B67874 2005-01-28
       Key fingerprint = 8D7C F82D D28D 07E5 EF7F  CD25 6B5B 78A8 77B6 7874
 uid                  Dryice Dong Liu (Dryice) <dryice@FreeBSD.org>
 uid                  Dryice Dong Liu (Dryice) <dryice@liu.com.cn>
 uid                  Dryice Dong Liu (Dryice) <dryice@hotpop.com>
 uid                  Dryice Dong Liu (Dryice) <dryiceliu@gmail.com>
 uid                  Dryice Dong Liu (Dryice) <dryice@dryice.name>
 sub   2048g/ECFA49E4 2005-01-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =No5H
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.191. Tong Liu <nemoliu@FreeBSD.org>

 pub   1024D/ECC7C907 2007-07-10
       Key fingerprint = B62E 3109 896B B283 E2FA  60FE A1BA F92E ECC7 C907
 uid                  Tong LIU <nemoliu@FreeBSD.org>
 sub   4096g/B6D7B15D 2007-07-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =nL7g
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.192. Zachary Loafman <zml@FreeBSD.org>

 pub   1024D/4D65492D 2009-05-26
       Key fingerprint = E513 4AE9 5D6D 8BF9 1CD3  4389 4860 D79B 4D65 492D
 uid                  Zachary Loafman <zml@FreeBSD.org>
 sub   2048g/1AD659F0 2009-05-26

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEocVOYRBACUSj+Rt8ZAKD0QoT4yHgh+f74lmw0pegpzvQ1DNBhGdVWfIM77
 n6hK4QSYPhSNT/Zz6qqsZlcnuSyXwKDcu82rOUJmo44UalWbWF/wvz4ICuMMttCy
 WRko6Z+lfzILBr+simnAUX2v9mIxfnkg8mEN5/rMc4rOda49Vbcdc0aFEwCg4/or
 HctUnKwa6r+ArXlZ8bxLX4sD/2A3JzXegkrD6LOwGA/STqNhuolad6ZZpvJGpr1n
 gsYX5ihLaYuxBBWK1ech3Rm8GojvsOpmcc5YTtjb37n/YU9WYoKcmpJukdEYNeSZ
 BQPi7jVXUb3joJobOT1LFYjrOX8/MoOgIxPI7RBM27G5Uarxe0RpF8r94bUxEqMb
 SkgHA/9KqKfxHB7suexO993OtM4fTcnJjCfarcL8qpBOQlYLAP2Q3IGZpjE39Bmy
 tnDNwrZ/8jZrJxBttZ5Fjt01pvMAEpFVHm+QNheqBOqpyN4jmyOsvmSjd4YL5ZZQ
 hUhuPS/dtInONvWvBmOHBsoKdrgoUPO2EuMW1pCm/0i7xHGCtLQhWmFjaGFyeSBM
 b2FmbWFuIDx6bWxARnJlZUJTRC5vcmc+iGAEExECACAFAkocVOYCGwMGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgAAKCRBIYNebTWVJLe4bAJ0Q8l/7TIpaYFGoaHUkv/YF
 VdcR/QCfVOdEcCe3gPZ2k5KLC1D8V4ESKue5Ag0EShxU5hAIAI7OSBr9s4l3skaB
 +lVNxA/eEkigb0ghP+OoLVRvd7k3LZpjM27jqMhdmu/8U9bTRTX6kA7Ur7uRF1La
 aSrc6unoufkWcm+w7M9sQv1vwdxOg/D9CZttjMxNJs18VRQokair4OAR9mMXybMT
 hBw3H8B+H0AZh7eLTMXUX8q6fc/Dy7u+sOq6fnCY3vIVUUDaw5XaRKI/mWDmQcMa
 4hB79gvNxHjCs2oF5ntyaCF4nsggmZ2guOjN9oBoo6gm09QFlVA5Nwz/g5s84m0t
 Gtz8sGSPK339kwaT2Tym6yR8UszENlyjG1wVVaQhBPHvE706jOlPXc2JasNKoSqX
 Flyj7icAAwUH/0z2SEPs78Ws3eZq58axkafUowgB31tEM9Ke0jLNy1nGkcC+poyh
 Shl4DNyUbLb86J4FrkFa7bmJi8VHteZYjTxrY9usKLKGkbZV8qNd8ry1emG0Lx2g
 JM5jcRp6ghT2qufHF9PukKwkmNRJJgvAbgSgLi9dWkMymmpo0LsKfKmnoVCy34tV
 704K7JOOBHob6Gi9vMXLYkBUPJCn8BALbZi0WRR/D5bB+OHucjJpEp6lHXYihkX7
 xgSyrzkI2fvDLmJg6/jmtsrQwJFScf2E24IWO5JGLRsuqoE1UUcnmqQKLZ+iH7vI
 fSYNaY/TcB55V2TmpzpYmkGBgI8G1dygrAqISQQYEQIACQUCShxU5gIbDAAKCRBI
 YNebTWVJLTvyAKC5FWGAM6MJaj/cNvWfkdMFaZqAGgCfaktgPFqyozZiZQuoJM5D
 +FztFoI=
 =isE1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.193. Juergen Lock <nox@FreeBSD.org>

 pub   1024D/1B6BFBFD 2006-12-22
       Key fingerprint = 33A7 7FAE 51AF 00BC F0D3  ECCE FAFD 34C1 1B6B FBFD
 uid                  Juergen Lock <nox@FreeBSD.org>
 sub   2048g/251229D1 2006-12-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEWMWfERBAC6P55NRPt7PWHQk3e3cp6yAYpxsNH4TyMZUNKFjE9E+g4GDe1F
 fd1ebE/as+qcZ7rnIoEqXMYyXW/8X8kdE7FJVoJBmH3RdlaJhHSxogrAHZJ87PWH
 yGC4mP7F2zvLjUqB2fUC6gYUJybmYi7F6run1zPKLr5A5Polx/SpqL52IwCg/5Kq
 vo2Lc3ceBT0L5BKOWFLHBWMEAI/OIOXhv4Hsu0k0Ol+Zdwp3vkw+geBo0MVHp0/P
 XItW5TM5Xi0iqQAcBU2KmPKUinaIJEEPAat5sPMZ/0BUsdmhlD6BqIp0qC8LXm9g
 Tqmenm3WpiJPsd486lW6dxzFqOZKdb6qq87SJ7ajnPB12SykRW26VkyHzNCqiETL
 LigDA/sFPsm499ccL62BwkRGax93iYylhsrV7zXT8FXAPIS/S7JasvaiyHTvRv8K
 u9XSO453WZtzN7TkNp6i3Vw1SSxbrwCRZZ7nspEdMXWF9ZdTtSq8mpA3R74X7dKM
 SXPbbsTFfQ5JR9v8x5T201nFiM/jPteU6WbfyQc1MuMCUqwzm7QeSnVlcmdlbiBM
 b2NrIDxub3hARnJlZUJTRC5vcmc+iGAEExECACAFAkWMWfECGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRD6/TTBG2v7/bkFAJ9/NodQJ3G3mLhNkT/rv4ncgpOV
 KQCdGm6jx53ESn4s8YJAPKWgym0AKTq5Ag0ERYxZ/RAIAMR6vbusFDGVMpB6AWhC
 cru/N6Qz/kfB6+Ufy2nXcYMMaD2c4MiSUSV6pF08s+xx8oqh6DiGdPvdJQ19ZAdw
 BJaD3tc2EeIv7Eh0upHhC7CuRk3eHHd+KaKFquLGU4HNMEvxXkW+DZ0wWrbVIu0N
 vRBYXJlil7B3RE9+9yQLdoK1IA/N7DtUvbezVC3Px/ZuNe+cnI5neXZVnm9ks9E4
 qlghKSdb2LLghwfBy0JRqssZnvvqS+kRz0LJgKIX57pSrHfx0L5Rwu1JWqvmWKYV
 hkCogZFXpn31ArmmJ54O5KEP4hYNR2FcF8hwNjMqfij29QRi7xpxDLQYgUjM/kTl
 g1MAAwUH/2TJn6E3LtPX7ceMUKVyJRO/OsS7/r8nX8hPRmX/cnnoHTtYOQ1S2F9J
 0IFTZKubxfyhp9ldRx55GiDWyRvGhhjCOuUH7VCSPMCURbMOHi67EDfqbHPzhKcZ
 1lmeqpETmPx4SbVQ9vQ1802gsyZzNy3BQcoK9GIw1Bg6KLYVQ/9rcSDHAB+ULVF+
 YkthjJcPDQPdcn8Zy+xGDuciav9HPaeRXK8nXvx8ERDti99GiuHI/S5+t3wDeTPT
 dZuMiiJYsVc3QuuEN4eMseohFUX6R/Mnm2L0qFc43k3h0vmOoTu65dMEnYZdsKiI
 wXTiy7GaMXH69Iuq9QK5wAQGHwTDbJGISQQYEQIACQUCRYxZ/QIbDAAKCRD6/TTB
 G2v7/Z/1AJ9MfhLFFNtQHDgvIwjgQa2xJX+N5QCfQKUy9vBwNhrVvrH86hoDMhjV
 d1Y=
 =E5fg
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.194. Remko Lodder <remko@FreeBSD.org>

 pub   2048R/6EB8C8C8 2010-05-28 [expires: 2012-05-27]
       Key fingerprint = D692 91F9 F4EF D363 7F3F  4D17 9C75 DF7B 6EB8 C8C8
 uid                  Remko Lodder (Remko Lodder's Key) <remko@FreeBSD.org>
 sub   2048R/011C6AA0 2010-05-28 [expires: 2012-05-27]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEwAJnkBCADaaSUOhXEQBlgiLmwmq2FKs8cSBc1KEWj5gZLLs+Fh53+rquTB
 yqCP5ZOcP6BozqjbHia/6TQJDgvMTtWpRuLOtdTK7DyMyiHAFMp6TUuQHpRMun28
 rjGcntGi+uoaUk4gUfY1vSZUurKTAWiQH0TiD35qu20PcHhKysNpGqCTtnJF9vYh
 ikZvwbEx0mXBfQrD0tp6A/wHNSGZ0dkobwTDTBsw1Fggqaljr2NJBJIzEUtezYbe
 VR0bquobnRRiFoyEYL5BhyWtXgHRrJKpsx+XoxNK7df6y3hr3uWj/nshx0JTfSxO
 Kp2jYuZhHSjOPpDIe2vsod1Qe/XpSJ60Yp37ABEBAAG0NVJlbWtvIExvZGRlciAo
 UmVta28gTG9kZGVyJ3MgS2V5KSA8cmVta29ARnJlZUJTRC5vcmc+iQE+BBMBAgAo
 BQJMACZ5AhsDBQkDwmcABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCcdd97
 brjIyJZ6B/0ZKYS5Tb+OI6QRgLOOwv3yoBjgrXCsJ8Fcqa2+gJ1MfK0NZeiofiZQ
 OhH9tGvt76pva8L1LiewbHpRXtbA9DMC7w6eBgECSrud7oGuE+Yd4kOPo1yc+qWQ
 DWBK6OS/MkfPZS12/lNYqxg5EXR3wesaEWPfrJ1VPC3GzRngV2zKxahmoZ4LwwNj
 m16QLg6jf4ltLP+5TPQnIM1ZdBpkOVweegsXbvxhoJUT1jVgueG9F2DuVfDAefKq
 y63IZu1MqendaXCiU5HTnIsGndu6CR89gxMAT7NrjqTN4vp4asOo50Jr91yc4HbH
 CK1shMzwQyWnlSx1/4bYw4iUuVvy0bwruQENBEwAJnkBCACmI3KaRWkpVcxrpt8g
 9LruHRBe2qr6SiuW2kxiUYFJuizKWELVhU1mgBipEsA1T28CkRfGL4LFuG2o3fR0
 5rkEnv4IV8WuYITvleJGbFRr67jfKkZVc/CwfLFwtkTp8EbXQquiKQ/k4eIbM1XO
 wRLdewsUjTPBaml6QjcPYluV+IUmEAbckx2UkN3YKef/DSg3AeCDqSWDGxCz59Vj
 9ia+jiZ22lvLqhNX0iq8sS9YE5N6rW52Y5njraclfZ3qY5FuXNmbzalVmFcRd1Vs
 o2sGGMd8P8L/GLeIwYNVFs6qcwmna9nl+xP6LxYxnJGjJBJF+8FcRA7FTaOARdbH
 9Y9lABEBAAGJASUEGAECAA8FAkwAJnkCGwwFCQPCZwAACgkQnHXfe264yMhjsggA
 taUN/S4of8EB+JV4srLho7s8Hzk2UK11PnWLplIyTZKmJWYTXHQP0L3hL93IRC5I
 Y5lG8bd2znMdAQrGxMxIOKKtYOBCxk6ph0xX4QYDsi3Vx5l7wDPSqCgX8DTyxgoS
 LK6wuLipVtg/dypNMiOJRwcGEKH0SvLjl3klCAK/Q8lEo6K9P99J0LvonBHsSl/h
 7VBH5TKJmuWWBiX9fmFRNE7iuK/dqSgT5Bu9iqlshloQOALofchAKVm0/2B//u/C
 Tb/LgkD2u5rFiqe+Cz9LWwF/CdjRM+1EXwL5C73gTmUkI5tT32cmgRWDlS3gFT1E
 2JwvVAHif+MR5Y2RMTMdyQ==
 =H/lo
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.195. Alexander Logvinov <avl@FreeBSD.org>

 pub   1024D/1C47D5C0 2009-05-28
       Key fingerprint = 8B5F 880A 382B 075E E707  9DB2 E135 4176 1C47 D5C0
 uid                  Alexander Logvinov <alexander@logvinov.com>
 uid                  Alexander Logvinov (FreeBSD Ports Committer) <avl@FreeBSD.org>
 uid                  Alexander Logvinov <ports@logvinov.com>
 uid                  Alexander Logvinov <logvinov@gmail.com>
 uid                  Alexander Logvinov <logvinov@yandex.ru>
 sub   2048g/60BDD4BB 2009-05-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEoeNvgRBADOJSDLfbgPuLl4Y1QO/1BjX2MFveYtMacSLpaJURRewkBmoKBz
 iXa9a5A+uKiQTtX8S8bnkvwmpzEua8RMWUN/XXb8aZc7DPcZbP9NFNaNZ8BLgnLC
 FK1gIEpJpcodAQ0K5HAGiLwjsK3RdM78pvDUJDDmWPaflk8llx4H7kjjTwCgwIRy
 /8f8FHQV3zUIGqmJDt5019cEALE+LTHjCOZkk0YKqVETY7IAKX48t/o3t+ybkqcC
 zFYIRA0v7FR/ipxkNgSzi+tKMaExDuFuV9aZEhepS54eXriXyGmzvevINlHlFgh+
 60WrUGIlkVtQYCW4EeP7kB66u6uV6PnKqFUXPLoF7MDg5nrJqaX7r4+9d0JopClN
 1L52BADKV1retnbON3PP460z4j9IJspst9n1AZ3y9S5ojZ0IvhL9UsjazvRheTCm
 fArizJMTtDUo9SxWXCtpfxruYJSB5jlhkZFMC1oj484mxm/MgNxJ8mov2RAT1Pu4
 85PjDNtAKq7yrTf8x7PbNVpoJkU98lZQ84Bt4RbaqechA3l/l7QrQWxleGFuZGVy
 IExvZ3Zpbm92IDxhbGV4YW5kZXJAbG9ndmlub3YuY29tPohjBBMRAgAjAhsDBgsJ
 CAcDAgQVAggDBBYCAwECHgECF4AFAkoeN8wCGQEACgkQ4TVBdhxH1cBPpgCfYR9i
 yz3P8GnzGKzKacDhYSSRdlAAnikohHSQEqzFyKimalh+Vk+yv1mutD5BbGV4YW5k
 ZXIgTG9ndmlub3YgKEZyZWVCU0QgUG9ydHMgQ29tbWl0dGVyKSA8YXZsQEZyZWVC
 U0Qub3JnPohgBBMRAgAgBQJKHjeCAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AA
 CgkQ4TVBdhxH1cCloQCdGWWbAGInaDd3AqGI07kIeHUfZjMAoKmujjBeu/1n8bsO
 OwUIcOutIiBRtCdBbGV4YW5kZXIgTG9ndmlub3YgPHBvcnRzQGxvZ3Zpbm92LmNv
 bT6IYAQTEQIAIAUCSh43kwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEOE1
 QXYcR9XA8FUAn2F8Y9LTsvK/GJAMU2gboZY1DCxnAJ9XnCdD3w7uQscd+sqIJKuV
 KlYsDbQnQWxleGFuZGVyIExvZ3Zpbm92IDxsb2d2aW5vdkBnbWFpbC5jb20+iGAE
 ExECACAFAkoeN6UCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDhNUF2HEfV
 wG/MAJoDJLimxPsysGqpRWMYb36855NBLACgn8ICeVtfyqCoxAv0YIYk3K0M9we0
 J0FsZXhhbmRlciBMb2d2aW5vdiA8bG9ndmlub3ZAeWFuZGV4LnJ1PohgBBMRAgAg
 BQJKHje5AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ4TVBdhxH1cBWygCf
 fvEVUFOSzEPylUJMZt2NKaiwomQAoKY66bHiWUIReF5NliBlsM3bv5qyuQINBEoe
 NvgQCACVC9Ks/nhrOVuHu9rj52KRW5J7S+20ZOZFOb90iVFCwFSn3/TstqGnao9X
 NQBiopv+i5s5AdmVjUyHnTSMggqVGfxltgG6ttxmY+iU7N/+aIXkbPzHZ/qZgKv5
 ey5MhS+kFV8Jh2IGV6beaQM0KNJ9LV9Hq1+V4ae0ulaGYFrNnbwI/rdXZ7vEETCF
 EVM3NP6xsgiw1NQ/V6b7iriTroeRytu7XoRlchik/7sQBLBwUvIVAD7BdHqjQ1NF
 SILyTr3aPagu1CxARmkCCDX2sfcqT2/9wVECubbgcUMRjVHm7k5BsZK7fGmHcBZg
 /5Rl7ngtUYwsR4h47A0aH4IPZ7AzAAMFB/47qL+Rb4wqF+sCWM/QqCrgFqMwz1JI
 qc26U0+a6bZ6kJBbMzvBcdrVFRfn52qacCdfFpdI6Yz3fWQyzrAZwqjCTPaGBeEd
 rSVbonW5dDjJTkSiKMlo53D19PcNklSjFnCrPeF4aFQ4VbT3RioWh9P00xhCHPQB
 hsg+cU9rm5ZASMht3K+k+bgpHT9gPVzckZTC73l3xaNetTDnHlRDw8ATvBYcUfYr
 kDp3tgkZ7a1pPRMz1oOKNWtxW5Z07HLj0Lt2xyZDe0BSImiAa7MYC4PKLi5VlDKB
 GPjLDrM9K1XUM3Gp8O3bd5qjnsueu6XOdGZA93g4wjXmzDqhFIXy5T69iEkEGBEC
 AAkFAkoeNvgCGwwACgkQ4TVBdhxH1cA3KwCfV8uCW9P5gm0+Dfm1miO/j6rvexcA
 niBfAchAUVjJn+UKjAd5RD1SFTAm
 =bSSP
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.196. Isabell Long <issyl0@FreeBSD.org>

 pub   4096R/EB83C2BD 2009-09-26
       Key fingerprint = D55A 42E7 0974 EFD9 3939  56B9 6E6B E425 EB83 C2BD
 uid                  Isabell Long <isabell@issyl0.co.uk>
 uid                  Isabell Long <me@issyl0.co.uk>
 uid                  Isabell Long <isabell121@gmail.com>
 uid                  Isabell Long (BitFolk Ltd.) <isabell@bitfolk.com>
 uid                  Isabell Long (College) <IL18685@woking.ac.uk>
 uid                  Isabell Long (The Open University) <il948@my.open.ac.uk>
 uid                  Isabell Long (Mailing lists address.) <lists@issyl0.co.uk>
 uid                  Isabell Long (YRS) <isabell@youngrewiredstate.org>
 uid                  Isabell Long (FreeBSD) <issyl0@FreeBSD.org>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 9KqO3oDzBigK/FX+SSZjPS51SaS1nA8CcceS6UONZjk2TSn7r4/qjH5F3eV4HVFh
 U0ojrw2w/zdhwRt5XeELFacGJi++0CcDpJzqkooeHQ9I4httq4z3UWazW4XfCz6N
 Jb3yic8Qt8GlbCvF8Jx8KKQfBoqv+TJ1tDpJc2FiZWxsIExvbmcgKE1haWxpbmcg
 bGlzdHMgYWRkcmVzcy4pIDxsaXN0c0Bpc3N5bDAuY28udWs+iQI3BBMBCAAhBQJP
 hA0AAhsvBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEG5r5CXrg8K9We4QAL4W
 jyHf47t/z57QKlGTde4gB8HyTQAEreDiZTxz1+0dvjAgbVtVwlPFfy0cWbO1bahu
 QhsUHLDTxgqwk2Aqpr3/nbvSDfHyYUYN0bfnBXZeJWRlEHEC43WWZh46ZBLGKRk2
 A3kzdDhyVMu3eWfebixrYWIO7TipRhfquyy2uc4H9UPDRuk4sbIlFKKLreDWx8W7
 /CRysA2Ld0zqWdVJBGCmchhd9tPvc2BfdCWQE6wFJl8elTQKTqkZRF+93LLOApCG
 BWk3p/9Qwm/qoz5DEwCFoTAe31MUzQ+7P0GfofaWS/NJNUjmuBHIVI3nKudJiBhu
 /YLAcF2ftNgRBQ4Q664bh62jgJ5zQS/UBY/dyyb25up6L3pBC9PfBpSmrs7hd5hH
 V1TSJuqoQpI7v3oyCNEMYhbgYB1I/V4Vq7okV5t244s8pNrK7eoNORvULILP8H6z
 t3FYcNdGcwYs04iwLRcnor/Zy4UV+yB6NABctLOUBhiF4AjtBUzgs9tdOwmoQuTy
 +lLuW9DTE9n3dbgpWU8y7O0eVxwhJjT306eY6ZLRhtZnqsfdOB2/G4Iq6sm3kBQe
 Z200QYbZqwTI3jEZNx4DxAZjKK7Veoi4dWvSl2VRT4d0bR6G2ElaFyyDfQfYNCzH
 KOEU7RQPTXz9rkBx/lijxr0eIzwLMEQwz5JN1JMZtDJJc2FiZWxsIExvbmcgKFlS
 UykgPGlzYWJlbGxAeW91bmdyZXdpcmVkc3RhdGUub3JnPokCNwQTAQgAIQUCT4QN
 HwIbLwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBua+Ql64PCvRkxD/sEvVaz
 G54T5Q59zG9RhNFWcmKaNw439YFKc68Sfni95BdUWsCaC63/7FnuGFd4Mp42Nr5x
 O46axkVrBWsNZbFrLdDqUd5/SqcoCpOn0t/Do2p6G2phRZb7mipWNe5H0/tblFtk
 xS04ucouWFCHkCSkBieNJoyMZx0bppHjfQKkZZVyTFxSJRglr3GYGF7ME4P5cGg6
 QUGFi3zTFZF8Q7AAy7uDR0XwAbpLEHUeFO4cSSTzapIJv/95KqjM+Xjq+zbmlDIV
 bHEc48AkQTN4LyV3WAHssnI9p6dZiFHFMqW8DXMt4vVL3ubmNUzbcUCrhoW6m6oZ
 oD+W/mFEGcAW/TwvmcTSwug+tu7z+vwJCce/PW+AC0rBSeusUThSsRVfFEn+YQk6
 vX4bkbBCoac9U3kc1YMngHNznHkLBPoONyQrsbwJMtazWbkl4ybkFbkOeczp7ij5
 kiPwDAL/sbBeatAh2LrvBJehdtF86Ab/RQXUzauf6l4zYZvTYLhQ1ygeJuI7VxOH
 6cnKORCdtMiWMebISihVrHrZkegtxo1f+I6u/6PmQf+IbGxt35XFwGrV9XP4OPhB
 JQVb0WC1eNisg9b2IJVlkzMBfyT6bKjWxq7bALasp7aRrwhm0cktwjGxCJTLkpUa
 9oODDG+NyTljuC2vYsVMcuQF9zYMi+QRot+/NbQrSXNhYmVsbCBMb25nIChGcmVl
 QlNEKSA8aXNzeWwwQEZyZWVCU0Qub3JnPokCNwQTAQgAIQUCT5mgxAIbLwULCQgH
 AwUVCgkICwUWAgMBAAIeAQIXgAAKCRBua+Ql64PCvQhpD/9EAIKbFh4dVVZIOdes
 Y9M7NFM6CN/zX/6DzUaYR28qoTgDdWu9cVGf2Iyju5VSS0RiTjkKj1XW9SMwDfVN
 K87J5V8GCPqd9F2uEocWAjA5RkFwc2gVTnSk5YJiS72SCPDvtKv++1fdYH8Ml9q5
 c/8WQMIxjg3/j8ZK/+LVV6wmX1/3MBPsU8fiB9KeOpi73Rn0YrqDUtdp+sYtyxF7
 3kjhksaSCbkedXLhnSCzUeEivrjdTDiaH7P5LLDZTYDw4OCPfce6Depos+hZ6Yhx
 9tqEmLIuSb1KkcKyUFcsQCIgdotKR8VX4Hi9pRZT39wWWwkEmMvNeedNmtYN2s6U
 0GX0h6H4dxsHT7+kPuUUScm2pZ4V79vZTuLE4w86swi6JicemAZtRtBW8XR8I3fF
 vwnXIpHMSQ8m7+sVyWjMdHUfNRCk4LyJ9mXqRkrHyUaoHglxQlPepXj16Hpqcmm2
 ziU4Sa+K6036pEHEZU8NapBBWBtPBT4Qr6lczfuII1CObLrmjNbOG/FASQ59aNST
 K+lt6h60vG63/8dwWNt2vtT+OqogCfX7BFhpZgccnVfK1XgVW/YvqhLFn6Vmu4+f
 ravgeIbpYVOQfj6EnN8VaB4ObofXtrOg6fAH/ILICLA10WNIE8nDHiI55eWAv5mI
 PMOrsNYPKCBRPOLtvcqn+iDQ1A==
 =yYCC
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.197. Scott Long <scottl@FreeBSD.org>

 pub  1024D/017C5EBF 2003-01-18 Scott A. Long (This is my official FreeBSD key) <scottl@freebsd.org>
      Key fingerprint = 34EA BD06 44F7 F8C3 22BC  B52C 1D3A F6D1 017C 5EBF
 sub  1024g/F61C8F91 2003-01-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.1 (FreeBSD)

 mQGiBD4p5ccRBAC+tbiJm4bc9dO8oaRhVGqWmNhYfi2GnX4AM2h+L7bcIU/7jWVn
 uWGe/PFHDcuOpEov/XRw1gmgoNh2DopTxf363DVMevmGW3R1842YMmLvCYZ7C0Rd
 0GdbHW1xXeRSygs6peLcPGQ/7ISK0BHMudFim5FrpD0tq3qrqRmuGgls2wCgyF37
 u+ZoP3xiP0wANhoWJtyBWQEEAIeYSHvIPKFIo9FG/+wckx9Fc+hLXPKwoETBPof7
 Wft9zXiYyowuGj6/ydb6v229nI3lJwVPR8X6Ptjf6rO1vjf7uUED9dNBLr10vdW6
 jYClBT8lqJAq3DzEpDk2kOlhYwtrykyld9Ys/7vgliuBB0XRUxGVNieqDck7PZWL
 ewz5A/947m/ZrlZbn6+jsshGk30/pEXZUhcDnUBwW26GuFk0TGlXBha3N0NFwqz3
 a7qnJcvSTKfeZJY5NCwqzCo/rLpmaNd9JCUrgwSd1MI9Txrbj3lDRy5dj4FZBQ2N
 BVgni7SRKaiPw1KeEprSOR8yiM9ZjbV1g5zPeZ2bZhSMCP7mdbREU2NvdHQgQS4g
 TG9uZyAoVGhpcyBpcyBteSBvZmZpY2lhbCBGcmVlQlNEIGtleSkgPHNjb3R0bEBm
 cmVlYnNkLm9yZz6IWQQTEQIAGQUCPinlxwQLBwMCAxUCAwMWAgECHgECF4AACgkQ
 HTr20QF8Xr9fvgCfUMy+qlN9qQtwMFAKWViSllk0xYgAnApLMv95d6Ecrj7+U9Et
 liAwNQXWiEYEEhECAAYFAj4p8nkACgkQtNcQog5FH332EQCghR98TNpvYGdrsg6Q
 S3BngO5n3VgAn1zo89iPy8VMP/kXq2jlzs/74+i2iEYEExECAAYFAj4p9igACgkQ
 2MoxcVugUsOwsQCfY34hwJIc8MapwIy8fWmCeLs4T0IAn0aVpewWF99H6SapelNP
 hvDzTYLIiQCVAwUQPioA7mVgqaw0+fnVAQEUHgP9EJXxzQlkaN8VsfRJo/UFmC4z
 wGkwu2yatUjMSZR58VpS9rF6CH1rzmNFtZZmIh6ItQ/mPaUDW2yObWBRL2r9vkVx
 e+DPcpcZAebM3ibjsOg05cftcphv41rLak0C2Nec3MXnxT15O7fcO6aO+d4oJ2Yi
 oL7YJX6RHrqNCTQn6/65AQ0EPinlyxAEAIGtuZXdf7K51Gb9jijgdV1NMPKwujoq
 K9f1PZocpDve0vwXN6AvzJ1L/LTrZPvBZ0UCAJR/zVtz4H2bnSqalbd8j8bmxfYx
 0SA3QNAKJhgBGNlnK4HvAGJCs8oXYp+6Ph9WWlTcPzkfscPFc42VcUEdfL/5kyLr
 OvGAUW6D7iCnAAMFA/9CWXarz2QMrkduiasc8bhSmv2lVOfUVcIdz9imc72Z5GUk
 FBiQJ2kuqJrxMUqAgoccnJ9R0QVZwCaQyRNakEQEcENBKq9Haa5LLo7nD3CAiqIi
 URqloJORSzXoQCrw8OelbBp9RaEqVdCecbNqAbA8Ru4NIwcyZCgvnX/bUTKq54hG
 BBgRAgAGBQI+KeXLAAoJEB069tEBfF6/XBkAoJtQ4ECj3ntS2xlODgB8N+cKIsdb
 AJ9Lwk2EEIZhvzhwvhpwIKAhWhHcmQ==
 =C3Jv
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.198. Rick Macklem <rmacklem@FreeBSD.org>

 pub   1024D/7FB9C5F1 2009-04-05
       Key fingerprint = B9EA 767A F6F3 3786 E0C7  434A 05C6 70D6 7FB9 C5F1
 uid                  Rick Macklem <rmacklem@freebsd.org>
 sub   1024g/D0B20E8A 2009-04-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEnY+RIRBAClGSwgcIr4i7G4CYEa2cBHRC2UOB75/AXFqxmzAOcype8WInbX
 f4xLBa63VMoM7eis27BouVRcHI64oREIL9yvvMPwRD2ZINY5UD/zkls7fw9F2NyJ
 AgntQEPRDkk14AEiIX5uvB3l+JyKmbMNpJuhrKpbxc5qvaDTgD02y9TurwCgguAy
 pMVQu2mtVccXkSb7WEh95SkD/0jTFzDTcuowbxALrPgQtlGEXo7RYLPIFxTI748F
 h8Tgra3flWp2QPAnWBJEzrz+9rl8wqQ2ddb9IydwtY49BjKIrXhj2Lh+8l/1oDKr
 RXzRbNH/lGHhmphW42DgM9mOCCoSWugUEu458I89FjuoncdBiDdi7HUxPy/rZ5MA
 tnRRBACWL22M5MPfD9dl9SHvnoBz47nwlBeg0Oxl22oNfiyTQdJ1q+g/wGpDPAll
 eqs3Svky7gj+f5375K/DEYaeFSRynXeetpdqpkBDlp4mRdDGcpd/4ImAx6deQTXo
 EraidVlZ0Fjr5cP+mFzoI41LAhTJa/VUoUkMxq+gJAsXsSF39LQjUmljayBNYWNr
 bGVtIDxybWFja2xlbUBmcmVlYnNkLm9yZz6IWQQTEQIAGQUCSdj5EgQLBwMCAxUC
 AwMWAgECHgECF4AACgkQBcZw1n+5xfFFBQCfbFJpzSEXUgmoEl4RBgoPNzu9SOgA
 mwW8fBCx0RDGfho/8S/PjZLQ38JCuQENBEnY+RYQBADMlW1YS4ZhBh4PCOXTJsjT
 Vda2DEn1W+2BzZw9j/DFAFjm0U05rlEsfz584Y/SLlPNbCZ979//3K7XxicRw7zm
 E1Mzahy2jrmGGJv2GfAZ+YyJPGA/xndNA3/ocT1x03LMWNbZwFBe4Kk5ShoqPgl3
 cO28w3TJUnrUZyo+h3WhpwAEDQQAkwVB18LmtI0CW4H0/jMgiz5B0z3yZdlinbif
 +EEFHhhdp1tXtxA/jyp3FsW7hOlGXQi/tACcxJ2UBcYAZh03+x7bUMnJpisPDnJ3
 UilCuwk5cAkQmGeAQ7ukNNBwVhJ0ZfW7p2lZ2RwW7zSjPK7RMW1EL4Scwpey/ojb
 Tv9fVXmIRgQYEQIABgUCSdj5FgAKCRAFxnDWf7nF8WUfAJ0TTs+DTEkwHeE4mHAA
 CqfpXJXMhACggkoKIIAH+lHNqv3Uy9q5RFd8t3I=
 =F39a
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.199. Bruce A. Mah <bmah@FreeBSD.org>

 pub   1024D/5BA052C3 1997-12-08
       Key fingerprint = F829 B805 207D 14C7 7197  7832 D8CA 3171 5BA0 52C3
 uid                  Bruce A. Mah <bmah@acm.org>
 uid                  Bruce A. Mah <bmah@ca.sandia.gov>
 uid                  Bruce A. Mah <bmah@ieee.org>
 uid                  Bruce A. Mah <bmah@cisco.com>
 uid                  Bruce A. Mah <bmah@employees.org>
 uid                  Bruce A. Mah <bmah@freebsd.org>
 uid                  Bruce A. Mah <bmah@packetdesign.com>
 uid                  Bruce A. Mah <bmah@kitchenlab.org>
 sub   2048g/B4E60EA1 1997-12-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =D0KC
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.200. Ruslan Mahmatkhanov <rm@FreeBSD.org>

 pub   2048R/F60D756F 2011-11-10
       Key fingerprint = 9D18 8A88 304C B78B 8003  0379 4574 0BAF F60D 756F
 uid                  Ruslan Mahmatkhanov <rm@FreeBSD.org>
 sub   2048R/B658C269 2011-11-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE67bzoBCAC/blN8XOxBx7pBlsAAwFJgxYOSYCw4fTFMoyoUBWEHuq0LcNIn
 BO4CqVyCiWcwMl/cLIh/1OHLjpU9orNrMSnJGdCvB2FAFYNm204ZMi3guRMe5xXZ
 zvxSa0v6zQtTRCEs5ny44XryxbZkPE5GGgyd4+sZVAcW65SX8hbmoIvL3v33Fq1w
 eom0nYBxU1EDIwZMl09FWaL02vBvlbSh3CYvmDTS6WD2t1ItDxhUG06+zoJs2YCb
 6f+iUk3ZLYon06aX3VB3lmT6ffSdAEX6uT4V5NJ0B60xhQP7WAEmSm9ScbnFIme2
 jpZcun5TKywwm7OSyOk36Z3EQyyxOSHRNJ3nABEBAAG0JFJ1c2xhbiBNYWhtYXRr
 aGFub3YgPHJtQEZyZWVCU0Qub3JnPokBOAQTAQIAIgUCTrtvOgIbAwYLCQgHAwIG
 FQgCCQoLBBYCAwECHgECF4AACgkQRXQLr/YNdW96jgf+Kyc7hvCTNlkisTOAYZ9+
 9n85WGcPLO+vyZJ6xlP41V02opzCjCVrddz3t4sq7eCFw7DTSIFovC6Cw7rAWgx5
 pa2idb6fhk/DMUwpd9I9CG9dm41WBWVkxRV3KMYyF2TYwH7VgL8KdvX1C7ZkD39V
 NKWHcSPwWxCEnrvfcGZz+wOHeZytSeC4Gpd4sEnAVj0HjulLXmF4YHN/cNy9Zl52
 +Pt1iSzjV5WJ9ywbruhOxQ7B8q9DQDveWdtSMbaZNzW8JHlj+gy8Ww/UvdsesjQu
 NE6Tc+QPIigBsx+MTbAwByDY6xj9OOCGNPeAxQFjNpz+iRS3Yuz04VxMy+z3cD5t
 YrkBDQROu286AQgA5FORCn/VS3x+aUO0zAHm/WmTJZFRxrmdkDexFZgxuHjidGUU
 fbGzvyu/1fRtft/3Np/M4aRpSI96qbYXLyCeJgQjNp36YRKqJkBiPBDQ9QLZpP6L
 nJn/NzF6/5pKLt+Sg3SdOV1x/4t+tkmcMa2+Y+yEjd9YWE67Cc5RevfO1As4B00v
 jFTl5LWxOc2kzVoB4OxxOLCdj/2zkIyxEPe4z/KswGDQsmsAfivHVcT1Kpas6Jr+
 sxCwZhSNy/BSuYtwHqGV8xw8vZlJkrOIn25StwW7hVf1oNYQnwTSBRwGnU8WVsqH
 /2VfIatSzoJ9L5EzoVjkgNxQ+9T5xrqf8G2ddQARAQABiQEfBBgBAgAJBQJOu286
 AhsMAAoJEEV0C6/2DXVvDjcH/1/sV6J33aR2Wk4fT8ChWWuUl3Dx7CnDUuCvKo/v
 oppP/bW473lbV+AlbG8WUpsCUqKy5WkU4uHjSfp3F1UAPDBTU0lgcj30jr13sGLH
 n4+WReFFZfDIwIBWNHqbLmPHEG2jItF7ssxL/nsYqTo1UWsI+3fToJX98Irz0PXL
 mX0e8pWdDe+pR34OcYDRB6Fe17cKE/5wpVSvd3+YZ7AYuq5wxfwvZVdOhcXSnWS0
 ksMRQMkG5A6BEY0ZpAZWNwRO1TcVqEJC4L6ujls1/sZEOIKSDj9UU1OC4tQYAsx2
 /yW99HFkq/4I+yL4zFzmqPug4j3GXKkNGqFNmExVys5uXv4=
 =Ykam
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.201. Mike Makonnen <mtm@FreeBSD.org>

 pub  1024D/7CD41F55 2004-02-06 Michael Telahun Makonnen <mtm@FreeBSD.Org>
      Key fingerprint = AC7B 5672 2D11 F4D0 EBF8  5279 5359 2B82 7CD4 1F55
 uid                            Michael Telahun Makonnen <mtm@tmsa-inc.com>
 uid                            Mike Makonnen <mtm@identd.net>
 uid                            Michael Telahun Makonnen <mtm@acs-et.com>
 sub  2048g/E7DC936B 2004-02-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =TuyI
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.202. David Malone <dwmalone@FreeBSD.org>

 pub   512/40378991 1994/04/21 David Malone <dwmalone@maths.tcd.ie>
             Key fingerprint = 86 A7 F4 86 39 2C 47 2C  C1 C2 35 78 8E 2F B8 F5

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: 2.6.3ia

 mQBNAi22tqgAAAECAPARUB5VpJvYQyHAzL0WITkJmKG1lpwFMPz4jenjJRplPr33
 OvKxQcXh1bAWNVFiJVDJsWwnfif94wQdVUA3iZEABRG0JERhdmlkIE1hbG9uZSA8
 ZHdtYWxvbmVAbWF0aHMudGNkLmllPokAlQIFEDCwQ4yqxsuiiP+uKQEBricEAKAE
 f18kbKpFKU/DPRVhVYlLHCkzXLzZCiTxBUGjMaXZswKwrjVLF2l8mrNQhqC9L953
 AGyUYNfPLtqw7b088v3ATCIrZ+izWyE27IrjZWSS57GZiDtnkm6moarG79yANBql
 LBc0sK077cHEC+/gDwXNBLg0NNpHkaVXPxixt/ETiQBVAgUQMK+p+pFKk8pIl/up
 AQF0QQH+ME6vPoS2+FgSN1q9R1hwmwEPAaYdyfhv2lj1/6KYDEaO9Lhw2u57nW7z
 CDpir9gNN0X9U3XrIxlJ7wWxa1k2PokAVQIFEC7vu/zjBB1VQDeJkQEBWFsCANX+
 qJO8J6qeJW8gcrmxMBA0l2MjEHcu8XNky6YT3yS6So72yL1lZbG78Sew03fXnWNS
 GyhRrPz7sURNLtJDNDo=
 =wpn4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.203. Dmitry Marakasov <amdmi3@FreeBSD.org>

 pub   1024D/F9D2F77D 2008-06-15 [expires: 2010-06-15]
       Key fingerprint = 55B5 0596 FF1E 8D84 5F56  9510 D35A 80DD F9D2 F77D
 uid                  Dmitry Marakasov <amdmi3@amdmi3.ru>
 uid                  Dmitry Marakasov <amdmi3@FreeBSD.org>
 sub   2048g/2042CDD8 2008-06-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =6qxA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.204. Koop Mast <kwm@FreeBSD.org>

 pub  1024D/F95426DA 2004-09-10 Koop Mast <kwm@rainbow-runner.nl>
      Key fingerprint = C66F 1835 0548 3440 8576  0FFE 6879 B7CD F954 26DA
 uid                            Koop Mast <kwm@FreeBSD.org>
 sub  1024g/A782EEDD 2004-09-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.6 (FreeBSD)

 mQGiBEFCGHYRBACI9ERMi5j2009Juy2kpXS860i9tJJ10mM9TNuCZVYcPRRTiSWe
 Q+YySmBtR9TA3OZfd6BA9EqusEgcwUJpxjZ8zjGzirj/OjcPtKwM9ZO6dadeMNaE
 wT32bJDUw//2ky2xflJCsjg+TSO7PxQi3g/YEWfau6Istg8PKfzHQan0EwCgxwrV
 6JijZQ85jIgQoceJjkwBLHsD+gKeeSUG7g2CO+NJf2d0tBj+l22QzmeAtlnuUskd
 nHKDAzzty80e4HXkUYw8IMueR7Fe2Tjx20OvVSkzMwiZYqevIJHVhiouCFZxYpSa
 JQHPYLpMXMVZ1X8d17tjbFRBXWmNrDcEhb4m3WoDKfQD/qbMCwBErsQ0t15dddnQ
 BVyqA/93dSzMYRC+Zm6Hzfk5Dz2MsvsxEE30ysSwFjIZ06RtYPKlN0x3ABCGba8f
 o5H0P6+gobJRLTQfK4xDS4J3G/d7TWO1bZGk9MPEzCJDexTt5yfKsY2jZRVRrikE
 fIbdSUgLnczBdUno5qC9IyMhGNa8O92GsjleDm7D+p+wkkoyCrQbS29vcCBNYXN0
 IDxrd21ARnJlZUJTRC5vcmc+iF4EExECAB4FAkFCGHYCGwMGCwkIBwMCAxUCAwMW
 AgECHgECF4AACgkQaHm3zflUJtqlWgCfWKIRLzsvZjBjuck31Ep8sEDP0GgAn17m
 X0hYq8W+2gbHbmYeqIFefHs9tCFLb29wIE1hc3QgPGt3bUByYWluYm93LXJ1bm5l
 ci5ubD6IXgQTEQIAHgUCQUK9MgIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRBo
 ebfN+VQm2sH2AKCnwIQ3C8+62/uQh05mqXqdzAaU8gCdEkRN+L9HY1OwFlSDi6Tc
 OAWLTPG5AQ0EQUIYdxAEAItGBQMO4f4rHYh9zc4fd62RhBfMHJpY1ex6HeiHt3pb
 i6KfBUai1zRYxgq9F+8qR9WgBLF1VhA4O0nCU9/FKOChc19W7xKa2auvE22Kq1ta
 xjCszahtPTDGIBs4K8u0fH/Gx4VSikQcfIGNd3IK4vALbLfH+iK/1RJNXPzQ9A4H
 AAMFA/4+UBNqZPucstZgmEwVB2H1Bt671fQqODpWj2eOMIYJWXKraUxdIjUqzm9K
 QhC7LBj9ihsn+LRsO49oWIAv5bks4zC0STACJ+Lx+FMb1i5ayAp/03DoZyrjRnGb
 SIY8Dtqonut2nic0NQ4XD5uqTkx2t7xlKJay/n4Nop2uqwajOYhJBBgRAgAJBQJB
 Qhh3AhsMAAoJEGh5t835VCbaOZEAn3wkQ7xISlGUox1/aiPU1CafRrZyAKCXgDLa
 wlCa23ftqh2DPxkAXtCnEA==
 =FIQv
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.205. Cherry G. Mathew <cherry@FreeBSD.org>

 pub   2048R/2D066FE1 2007-05-22
       Key fingerprint = FBF1 89FF 81BB E1C7 6C1B  378D 3438 20E9 2D06 6FE1
 uid                  Cherry G. Mathew (FreeBSD email) <cherry@FreeBSD.org>
 uid                  "Cherry G. Mathew" (NetBSD email) <cherry@NetBSD.org>
 sub   2048R/7B2C4166 2007-05-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 Rg==
 =lSy5
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.206. Makoto Matsushita <matusita@FreeBSD.org>

 pub   1024D/20544576 1999-04-18
       Key fingerprint = 71B6 13BF B262 2DD8 2B7C  6CD0 EB2D 4147 2054 4576
 uid                  Makoto Matsushita <matusita@matatabi.or.jp>
 uid                  Makoto Matsushita <matusita@FreeBSD.org>
 uid                  Makoto Matsushita <matusita@jp.FreeBSD.ORG>
 uid                  Makoto Matsushita <matusita@ist.osaka-u.ac.jp>
 sub   1024g/F1F3C94D 1999-04-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDcZe6YRBACDOZSZ5cWE6IvNkx2Ht6S/VdIY1OXFU8n+cOVxNIHFWXPUOrFG
 F526VZoPfjURnslubdxXC8TKGspX96uc1jdROHvEwsxUUELyzZ7G5oJ5wd4jHwjq
 K5zwV5FZoNm1SHdeN0FqZB9rlJdOt0kxVZS+b1PUc0j1i4oDNZz7+8rc0wCgltLi
 c2i5RQzjuvJvF9P8OYGujHcD/3Tq02ov/aNX+jIoO58uuOBZpYFL7ZfbCeiMs+4A
 dmvjTI9MpfLBP711iu1asuikx6HLQts9UTVk36qP9ubNmFi54kDHsej7Ce8m+dOu
 Cjcjle6Be71MGLq4YUxd9xZmGGDPhEFnHWbB/QPP4n/m3DN3hblWBgP2PsgmqDyK
 518dA/0bhL5pvw5LSaRtGxxWvFBInfWGzC5EuLw4ERZW+bEFB0To08ZnocLRN/E6
 tZ2JTr2O5aMLqUEM3jgsIvs9EOGUBwPRzyOQXpc2uQemn7J0pL6PQfuBIaUI/NOu
 ULM0gQfLIV3wOP6Y5gH0FBcLt/ofrqdYys0C6zTq3LqDW5FdQbQoTWFrb3RvIE1h
 dHN1c2hpdGEgPG1hdHVzaXRhQEZyZWVCU0Qub3JnPohfBBMRAgAXBQI71CCFBQsH
 CgMEAxUDAgMWAgECF4AAEgkQ6y1BRyBURXYHZUdQRwABAc3PAJ0VtHlKCmR8IjdR
 KJxY0C5fdmaDGwCfecy3f/dYGQsljHhv0Wr2PxciscS0K01ha290byBNYXRzdXNo
 aXRhIDxtYXR1c2l0YUBtYXRhdGFiaS5vci5qcD6IYAQTEQIAGAMLCgMDFQMCAxYC
 AQIXgAUCQ5F4YAIZAQASB2VHUEcAAQEJEOstQUcgVEV23p8AoJKAqle5nC6Wi6yO
 TZtcr4axeBnAAJ9ABx4gqACagCDc/OMk3pmtb4sy1bQrTWFrb3RvIE1hdHN1c2hp
 dGEgPG1hdHVzaXRhQGpwLkZyZWVCU0QuT1JHPohdBBMRAgAVBQI3GX1RAwsKAwMV
 AwIDFgIBAheAABIJEOstQUcgVEV2B2VHUEcAAQE6EwCdEPG7N7vmhgYEqmZqPLm6
 oqjHOpIAnAr1FfVDPXpfE2SmXUZenG7+5MwntC5NYWtvdG8gTWF0c3VzaGl0YSA8
 bWF0dXNpdGFAaXN0Lm9zYWthLXUuYWMuanA+iGAEExECACAFAkORd40CGyMGCwkI
 BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDrLUFHIFRFdraSAJ91gKAjNH0XzAKohpQV
 vo3uT7LNvwCeJSxDm0hpmaOpa+LCcabNP91SyhS5AQ0ENxl8HhAEAITl4uP+i5aY
 Wr7mPBLAaWfoQ4fyT3pUThtStiymqsrEDFKhVqA/KD3PUV1CeOBc9oq69x1+pUlk
 VYz3vDrvk0hP+dy6nerUEbkdGtMKLvGzakdond55jgSTZ6CPHxqyLva06QpY8tj9
 CODunFUE+MPVV4Lf9U4wMeEDZFEYvcajAAMFA/9kKoDY1ur1mAPJRWAcEONxnwiW
 qe7l++fg/294wra8IkAbF760iMnqq63qavsGT6xStMi9EwZC687p86sFex6KF+uv
 P04CTAyt+FAph7oa44AdWJo4tJ4SP8xIznOiZS8clWwxTaqv9Ncy6LZwbZf/P427
 egF1zuv5A/MTO3KD7YhOBBgRAgAGBQI3GXweABIJEOstQUcgVEV2B2VHUEcAAQEr
 7gCdHJTTs41XBpfprQCErm3tGXwRrG0An1zUSEtG1AA4jFXNgIlud0OO4aMm
 =aY+v
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.207. Martin Matuska <mm@FreeBSD.org>

 pub   1024D/4261B0D1 2007-02-05
       Key fingerprint = 17C4 3F32 B3DE 3ED7 E84E  5592 A76B 8B03 4261 B0D1
 uid                  Martin Matuska <martin@matuska.org>
 uid                  Martin Matuska <mm@FreeBSD.org>
 uid                  Martin Matuska <martin.matuska@wu-wien.ac.at>
 sub   2048g/3AC9A5A6 2007-02-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEXHDPMRBACme6PyRAt6LcfVO5LiPbtq6rYu4e8zrUjd7o+FiCEYjdF8VwXU
 3RQ76f1cx2tnNyvv7KEQX2/NyPHQH/3n3Cu5w8BToQrV6sEAMP59nWOIKSNTXNGN
 BAbFXvRDC1vlPXyXaeRt6InF90FmJ/ZJpTX1wYGenYymZtBSPd3q1iK6DwCgn/I2
 9FLTUjOm2qknqLGGZJ/w96cD/i6CDQa1VzwyplIKCbPDqNyJh3qW23JMkW3OGwRk
 nY8H4RrR3LNfCpiBuzw8JtO8vDT/NoUKG4rXFMYz0pPfPbWnJD+qtGEl3fXtNC3f
 a4YwTTDil5VSi846IjHK2rEwDvUkMAyiEbthOIf2U8JRn0KThPYb0alPyNuF+zaM
 HUUxA/wNYHb/qjqCI0iwSNxTYKeruBcua4yg7NKeeHtA0an95CfT+AyEW6inQ0Od
 WSrDljmZbq0YGFndRZnxlwClzA2ueS3+/F4ADvn0kONhzXfVewRayOHXLiXlcV2d
 4+g3oYMWVsR/DAi12ezzvkHnDWsSeeXPKkBXMAczmKd484RpbLQfTWFydGluIE1h
 dHVza2EgPG1tQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJGEkt4AhsDBgsJCAcDAgQV
 AggDBBYCAwECHgECF4AACgkQp2uLA0JhsNH48wCfbHM5Tu8ABaGHO1Nlv0jtrc8L
 D4UAnjIzKUyR6A0ReHlqZyAQA7XQ0lxztCNNYXJ0aW4gTWF0dXNrYSA8bWFydGlu
 QG1hdHVza2Eub3JnPohiBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AF
 AkYSS5kCGQEACgkQp2uLA0JhsNH6FQCdH3LhF9TLVQbd5q5sYYR48zmXaPoAljRf
 JtDTR6ZLdjVowmZAmSlsFda0LU1hcnRpbiBNYXR1c2thIDxtYXJ0aW4ubWF0dXNr
 YUB3dS13aWVuLmFjLmF0PohgBBMRAgAgBQJGEkthAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQp2uLA0JhsNHkiQCeMQACotd+npbhK1pJMKBcFOHrzUwAoJYn
 ZRIacsYvjMBNsx4UUkfYs70wuQINBEXHDQUQCADlHvWxPueR0sgha8L1Fwp4yTE6
 AbqAnkYw/nC/2q/oUDg97VFdZM0tOi67sLYHic3Fj/Il7w78jctdlpagW52b+R2J
 l3LFOYlbmbWkUj7iUFrDA0QZwO9IZw2yxDP3zkEMvPh9YtngmgI8CKRtXrxgY3+7
 9gEN/evBiEgS9rN5/tGI5V2Pt+VTXWfw25zRnOTTThgL/sRtqKykSJ6nsJfwO2DY
 0VFpb9ndFR/zG4ozJLupV+ku0EQv2xXlOdvhdWkLgXN+JRtrP1CxWzPTA6CP+m/X
 cYiT498yBauwk+JTGqeOKUfn27vpycGmf/VGwBoh2GrhzXRnOVBkDXb20ztzAAMF
 B/4/cFjtT3rdyJpFRoSl81Nvj8/DvP1ICovH2YUY+bIdUU83Id6AqKv5vOWhlhbR
 5Np9EtWkdyInXHhzs1MDm1xdNFmwkVFJB+M/XNmj5lgZ+e1riuoo07WcwKN8LdBY
 oOoSoKViSzEoJwlkQazOCAURSWHIlr7rYwM17oAgDjJ4PjBs4l3zjIt+wNU40wYy
 JOnBxjyK5ucKUAHq/6vgLmvj+QZvhcDLpKxRvw5M9PLeD1iomiY3qzNRlOF4aUr7
 GX8wbk+a9rsiC8dIGn++9D3BrvGvVLqxEruflXmpokyalalitIL3N3WitPjMu7gW
 EUotHnqcf3TGK7N7ffv0SXRpiEkEGBECAAkFAkXHDQUCGwwACgkQp2uLA0JhsNHl
 SgCgn7/wkepKhD2TrONJELS0/iy8WjcAnRhJSMsrJApfDOhu0ER1TqP+cFy5
 =HbmE
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.208. Sergey Matveychuk <sem@FreeBSD.org>

 pub   1024D/B71F605D 1999-10-13
       Key fingerprint = 4704 F374 DB28 BEC6 51C8  1322 4DC9 4BD8 B71F 605D
 uid                  Sergey Matveychuk <sem@FreeBSD.org>
 uid                  Sergey Matveychuk <sem@ciam.ru>
 uid                  Sergey Matveychuk <sem@core.inec.ru>
 sub   2048g/DEAF9D91 1999-10-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 /CYAn14opUDUCjxXXd3vrkwzNCIrYQ5i
 =iDu9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.209. Tom McLaughlin <tmclaugh@FreeBSD.org>

 pub   1024D/E2F7B3D8 2005-05-24
       Key fingerprint = 7692 B222 8D23 CF94 1993  0138 E339 E225 E2F7 B3D8
 uid                  Tom McLaughlin (Personal email address) <tmclaugh@sdf.lonestar.org>
 uid                  Tom McLaughlin (Work email address) <tmclaughlin@meditech.com>
 uid                  Tom McLaughlin (FreeBSD email address) <tmclaugh@FreeBSD.org>
 sub   2048g/16838F62 2005-05-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEKSlvMRBACEIyrOE2NlPjwg7bS3nUC4S/D1nPV22eEJ0ga9+LNHlQnsJON3
 lGOU6iMGa6QaBoqg7Qw3aL6FaJlogNQfIPWZCRZdfJjlbw0Yd6EzCpMqoowB+4y6
 XuObOhie5bdHFK8NVk9n1BZGUELcnPGMdhPPIQ/UHq7Rlhbqh8qkcA0imwCgzNEV
 oPAY1SeozW0kBE6YUXXGQXkD+wRzl9As4+1CE3ZgxUWtoNqYvZMNWYTbO0ZWMx6i
 YWJ5GkLCMdVqNZ7iCteeDBVoRzLEbD/FyVzazPm7FBSxzK71EC+C4Ybt2IQPWfBK
 Q0GI+2ghQ/HyLh4gLCLP5XEk9aw9DwXGJt2q7HngEJli5o8LFVo3Qiu5X+QeC7QN
 r6uGA/9/raZnDF33jfAlx1jrHnFVEa1xzs81q2LK2ii+RdU5bvTJQchoHFRKZMBW
 HszbXB4f+wqkSkj6B7od8hBINJwdumQXdjO6nybh2abkCT2f/nyK7ktCcq027AD4
 BjWWFltUZpvspzq724SOEyBsbYJp4YTB2wys+gcyDF/ugaJCl7Q+VG9tIE1jTGF1
 Z2hsaW4gKFdvcmsgZW1haWwgYWRkcmVzcykgPHRtY2xhdWdobGluQG1lZGl0ZWNo
 LmNvbT6IYAQTEQIAIAUCQyJDcgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ
 EOM54iXi97PYq4MAoJeuQSfnGZsPBIpzOZ0vHmf/ZV4ZAJ4kKyQrqbxup6u/vMWG
 lS9JqYlZj4hGBBARAgAGBQJDnF0IAAoJEMYEPFZyB3E3kccAnRcxLZQIxgo0T22x
 GUDB8tkAUUOTAJ93N4aVydp/zrDo+OE1HStNFEsWvohGBBARAgAGBQJDnGKmAAoJ
 EHninGCwBj/nLhoAn3sa1+X0ccAhA+iPHo1mypN2uKUqAJ9B46J73q8E7PU17U6k
 RHY/7eCLaIkBIgQQAQIADAUCQ826swUDABJ1AAAKCRCXELibyletfK2IB/9GoKeE
 G2qDTfQbwG2Gbj4sW2FjaeNryneSTxXRMpK5dBwiMi07iM8Ze+8NdE9KlOzA9I1r
 tkYgR32UCfteyQXU8YvsKf6Q4wRqKbpckqI43zXMdvXyzG23P6/gR/Ozqh96Z9vA
 i6WdnvxjZaY6jItk357LJPQDP6zQncKFfcw7W+QAPx2N8BrUUy8U94kW6URhS01R
 d3NP8JylEXqqF6L7cSxcmO3A2QAVjzDpmfWu6AvREuYY7dkSSZWGK9hpoEjPN5GS
 LDgwRaiYZKHYz8Bx2UUA6sqaoebqAHY09bHIZ4fMiEkm7SSf5PsoS0emb9O0q5U1
 tHI8+6LkM6Zhs57CtENUb20gTWNMYXVnaGxpbiAoUGVyc29uYWwgZW1haWwgYWRk
 cmVzcykgPHRtY2xhdWdoQHNkZi5sb25lc3Rhci5vcmc+iGMEExECACMCGwMGCwkI
 BwMCBBUCCAMEFgIDAQIeAQIXgAUCQyJDgwIZAQAKCRDjOeIl4vez2IaCAJ98fPNG
 gmITFIYH+M3UBkw1YTvfAgCfQdAkDAFJxVrvDZBDliO2NB6jAu+IRgQQEQIABgUC
 Q5xdBgAKCRDGBDxWcgdxN2PzAJ9d7HmdkCyM5CN7cgG6BaZ87AHY5wCfUjblYg9y
 tsrTj2+ip8f05PC7zhCIRgQQEQIABgUCQ5xipAAKCRB54pxgsAY/5+exAJ94yol5
 HuRwmESdxzjj9S70GoYbsgCgxad9osFjtuxHHX37vaxUgJyLEbGJASIEEAECAAwF
 AkPNurMFAwASdQAACgkQlxC4m8pXrXxT7wf+Ji6vtaE5wjEI3/puKsHfGJmmHklL
 UBkcl5acntPLPxhXa2Z742ZZW+3QXeUyyXnqU1/BSn6/NBYO6I8yUJc5QptnlCvQ
 sJpwJlnTd7jBhSzN+L1xGxxvmmq2LfzLIleW8ye27vBOW4JDPDSgz4gVTKRqc0JV
 1EYULkWCGpfDA/xPP+4Lhizz57Q6EqLVurxMjNLE2mqV7feIvYoGLxOX0RxbNSpT
 +uJ+6ydpyE8UhykkQwgN0vhaokwSHC1KWWFH0ET38hcdFvaVrWZsrG/GwGg0T0mG
 23CvIdBUGH9U0roJjUa6CDDQz8ohR0P04lFpVsgDi9AVPEFWTX4gcUwyILQ9VG9t
 IE1jTGF1Z2hsaW4gKEZyZWVCU0QgZW1haWwgYWRkcmVzcykgPHRtY2xhdWdoQEZy
 ZWVCU0Qub3JnPohgBBMRAgAgBQJDIkMNAhsDBgsJCAcDAgQVAggDBBYCAwECHgEC
 F4AACgkQ4zniJeL3s9hsCQCgjLOKwwiG6bABO6ue0mjHpvR6nhUAnidSAywDgVQa
 nv8Ev+hIv4/QpD2PiEYEEBECAAYFAkOcXQgACgkQxgQ8VnIHcTcenACeNyN5PiZU
 TJ72eTxbc60q6PpkVOIAnRInAWvK8iW8I7uGOMBmyYtZWfu8iEYEEBECAAYFAkOc
 YqYACgkQeeKcYLAGP+czFwCgkAtsuKGoojwfo/Rg6p9RCazIUjYAoJ0xxWeuZ/df
 7lkbyqcRGJOfLeBBiQEiBBABAgAMBQJDzbqzBQMAEnUAAAoJEJcQuJvKV618rKkH
 /1kUl4Cqj3n9a+acjUnl5gH1r6SVUuNK6pPJPVpBXDOGWQQPfVYl2LTtFfzIh+e0
 q7J5os8timFbi/6HaI3RNV21XoqrDVgmRA8lApxM3dfB0hlJ6jx9eoUjHgi4n08w
 nX3g43I0zoRc3lQPHFc0jV9yRhgAln2yHmrvdcW0SUb8Zv/FvyG26W1gyEvl0cPE
 /AvKerTr2oP3aKnWtQfylovIw6Y+MmP3AynlvYghY7qw5QSnw3PhITvoFh4Lg4hI
 c/AoY69TAdf4d+kHtbo9vssMoT/NAIaAN3K8hdzSmJ0Ifsj7/K9+qtYz3r3c/+Qz
 1pH6hqz1u13upXLo/slPV7S5Ag0EQpKW9hAIANJJ8W4+BYSzM6ihW2ElYyt3h2hp
 WXptNPnrZDAoqx7YtCyPnUpn6dJrlsz2NTJiW7ahdsCQqrCyMTRCzAZAbFN1s8Se
 0hlREeHxGBIw+trapap/B2u0VQHDfVEL/9ib+jUFm+Gp3izgcgf4y3tvJRmmPCgj
 Y9fFcFu7PrntYsK91OkgungUriZ1fbjx0OkHRaz7nnq+On+dVElFh2iTwpZKrG3L
 7Qws/iVWamLOSQ14d3fzWN/Y7pF09QjOo5i/iyN1QEYiOffYaUthWr7lJ35muuaH
 yEMeodSNkKCF+BqpmmWKgJohopQ1/f36WjwlaVKaRh0zCIxcpX5xPtSoMzMAAwYH
 /2OiL+gBLaaTC5okydoeHAE+G5TobT4CI2fw2P9htDWVYf1eIriTRYKywSyjF+YS
 nCc8hleBDCwrUY03GXCFEOq0SAR97cfRhzxlHps3n3iAuZp9TwcGDiskL0wAaNS8
 43AKNHlKRNWxXoCE4oBlq/t1+DV+7BnjdI+MCAUe8h4y/jACIxpxnRKjmAcN2qDh
 THauJKvmUjw5W9SvgDU8sHNXRAdTbCrDj3iEAvZ2bTUMLmh9h0tKhwmVD14IMpDp
 7ZELqCgJgtHjv9kAg0Yz/Dy34jdLgypTJzUreQcJYvv5Krp1QLRTMMtoMtkop56+
 oKcUsj5bqschZLFzuL2hj3WISQQYEQIACQUCQpKW9gIbDAAKCRDjOeIl4vez2KQu
 AJ999gXGK70qxOzC8xOb3luxRKE/TwCgleUyV4VszS8i918p+td30+xsf1M=
 =DTOK
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.210. Jean Milanez Melo <jmelo@FreeBSD.org>

 pub   1024D/AA5114BF 2006-03-03
       Key fingerprint = 826D C2AA 6CF2 E29A EBE7  4776 D38A AB83 AA51 14BF
 uid                  Jean Milanez Melo <jmelo@FreeBSD.org>
 uid                  Jean Milanez Melo <jmelo@freebsdbrasil.com.br>
 sub   4096g/E9E1CBD9 2006-03-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEQItSoRBAC0Dd1LYWYUcjRH9XabIefY+5q+Mwi7iBdvUjq96c/LgGZLXbG8
 ZlK92kraOdWvwrPcYUCjYQwwesOmjXryXPoS+AYiz9iVs7AR/A9drFECh50wfaiL
 J7X4kSpR9zDgju/yVPyT3rhE4ZEZ/81txqdu5DSG5+vD8dLoXdb3EziXFwCg8Njt
 Lcb+ETI3MvK0M4A5HpuBvTEEAK2H7mNZ5BoLCrB81244e1BFwd16raITUv7DiF11
 Wl4kFowGt0K9P0d6QxmL3bEdeud2wfNaVjAuiO2B32XlV4xskZmfalniN6fsX9b9
 jnzJzpFvR4tPeZdpw07ePYJXh5vZjx4Mkflv9X2+rWafLiw5vkmwPnkQPcnhWnD+
 Ia0UA/40hZZvC9h20eH9hAcJA865wLxzmUijzgAGHjXVjhNT2oYGneNeY70auub7
 hGVL7GwsDSYc76W6IhJOcAjgHcCfa3uGerFR56T9se0ysmlBrONiYTokVZ3vKFp6
 m9ZceaPiE94RtHsVVkDa+F2KWeGU1As8gskVBP8MycodYb8XgLQuSmVhbiBNaWxh
 bmV6IE1lbG8gPGptZWxvQGZyZWVic2RicmFzaWwuY29tLmJyPohgBBMRAgAgBQJE
 CLUqAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ04qrg6pRFL/NCgCgg1C8
 cFGpWahx1wgZ8IQxsmCSUV0An2YnP/Q4w10WTe6qp+I+H7c7k900tCVKZWFuIE1p
 bGFuZXogTWVsbyA8am1lbG9ARnJlZUJTRC5vcmc+iGAEExECACAFAkQxmpoCGwMG
 CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDTiquDqlEUv6McAKDC5MusdUU0kl9T
 /ymavKEu9a349wCfXWEu9GgVb0CCZ8Agx3BHHIuZNo65BA0ERAi2QBAQAPB4mj53
 L9vbS2WLCAPMMn4ZGDYGXbe1pB/mjRbZlTGnUYWE3NO1fLYXEaoilRsvcEKtbsWp
 Ynuk8Ou4DaNoVyX9I6I18rs5KMZBiLOvQZFYCBbJYSIn/nNycOqsTy6Nw9mz7mrw
 I6e6EhiYh/AQ+MI3zID3iYnbQlQFZo4gLMFTLKklpiV+DaPoDiEkQPGn+0mmLEIO
 pmCqiDTxCIrig7feExCXJa2+CXLj2OS+r6su38O7WJiGMq0i9nCeu+4NnezoKPwt
 +s5kVYAjOSzDRybWz0UDzi9M7Kxu9tFoxEQUikLDMdqSklPfRs95TEmpXIvksn3A
 lub2Vfum6/kdRNkxPPbUuyEvtzeCc87LB2cLpP2+EXcfHCe7MdrtowWleRqXymXa
 Lyun7uKk2etFpEIfAqCPC1Yd8Jf2coyVY/n+a6yotWzCtQ4vogO2dTTKmj17kkcW
 1CXZz4W73Jut9ixZmYL/zOJj61j+2S7K7VLfSNrP8H8SACH0oHxYP89BaqOSOO2N
 0DtvyhFfS0OsxAEBa/EgtCAZiON4nZdQGPyDvq2/uQ1SGxbykTCvgxElAQfyUh7x
 lctdQQ6f6MEEPHapdDwpnqX5TAcdY7v9eE+/DZNTeswUBc03qtqxee1II3K3+Rvl
 4R+DuGn/oPdgksnX0kX0wtHgclXRsZ6x+wEfAAMFD/9S7Z0ee7WeH4WwU9Mf9gSp
 3JGafoInoJZNSRsKAl4VFC8axivUGyUzJdTbADoRXDR6NfqJE94u+pP3vx4AAvVH
 cvzfGj10GlUOwQGbQxaYGgYtqVgQ6MKeS6A3xaj63WgBFtx8bbt3e9XTnjPto2ZC
 U/pM3lmwsvxHoJGgisRvEfdQeWW2cJlxcBfpqat1/2MFBK60Wd0WAr0x6A3m5xpy
 ejftkcUa08BT4LSiGAsmuNKtUYULA9OrbvJreUa90lrM+6sZy2Edh/kulNmXgS4Q
 Y+OVptuhHSgBeME+j/fM5+p3Uyyaa45xmCFxnx5u/XBWhzMiPvi/m+qYkXPECFLx
 CiZ4OC7Xso79UeMmYq+CTDMWR6pe6iGVQZhRH69ShA+c545Eic/RoOv4ra8se7/U
 R5BU29AWWtapMq50/h321Oi+JmmfJHrte9Kd6RdyahuvtlWb7bgnKPwzpaRXYtbt
 H9SskRTdESK14AwH2eUVAP66Dfr5xBoyuS2g9MkRxxhjHWmMi4TAyh47VgXUxOPF
 Uh1eFsIqVa1scXFaimmicdnbg7N5iVoqIIiuc2Q5P1xIuTUdxw1SjXOInmjAszO7
 Ckad599/WaNFS/pkDOgt8yfQaLOKCqVuKkimWa8YuZkm0g/aY1n1cE7TvNpxdrS+
 dw6TU3idxbY/DuNsWfHfrYhJBBgRAgAJBQJECLZAAhsMAAoJENOKq4OqURS/QrYA
 oIelyoPYInm4v6UTBo3XhOwNkHWbAJ0XXqE5J3Zv8FCqjQsJTFCmmNSoGg==
 =CyrL
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.211. Kenneth D. Merry <ken@FreeBSD.org>

 pub  1024D/54C745B5 2000-05-15 Kenneth D. Merry <ken@FreeBSD.org>
      Key fingerprint = D25E EBC5 F17A 9E52 84B4  BF14 9248 F0DA 54C7 45B5
 uid                            Kenneth D. Merry <ken@kdm.org>
 sub  2048g/89D0F797 2000-05-15

 pub  1024R/2FA0A505 1995-10-30 Kenneth D. Merry <ken@plutotech.com>
      Key fingerprint = FD FA 85 85 95 C4 8E E8  98 1A CA 18 56 F0 00 1F

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 sGDiYyJDVnPYxZcEN0h06w==
 =CRmh
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.212. Dirk Meyer <dinoex@FreeBSD.org>

 pub  1024R/331CDA5D 1995-06-04 Dirk Meyer <dinoex@FreeBSD.org>
      Key fingerprint = 44 16 EC 0A D3 3A 4F 28  8A 8A 47 93 F1 CF 2F 12
 uid                            Dirk Meyer <dirk.meyer@dinoex.sub.org>
 uid                            Dirk Meyer <dirk.meyer@guug.de>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 =b0g6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.213. Yoshiro Sanpei MIHIRA <sanpei@FreeBSD.org>

 pub  1024R/391C5D69 1996-11-21 sanpei@SEAPLE.ICC.NE.JP
      Key fingerprint = EC 04 30 24 B0 6C 1E 63  5F 5D 25 59 3E 83 64 51
 uid                            MIHIRA Yoshiro <sanpei@sanpei.org>
 uid                            Yoshiro MIHIRA <sanpei@FreeBSD.org>
 uid                            MIHIRA Yoshiro <sanpei@yy.cs.keio.ac.jp>
 uid                            MIHIRA Yoshiro <sanpei@cc.keio.ac.jp>
 uid                            MIHIRA Yoshiro <sanpei@educ.cc.keio.ac.jp>
 uid                            MIHIRA Yoshiro <sanpei@st.keio.ac.jp>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzKTzO0AAAEEAMVsAcUX89qHkwlI03RlAYBqQa00TFmgPwZs8sWvNUqTGtlK
 kOXcN9WNBvwzMYtEk/u5C1HukqISnFkDW7ZKYm+Um1sQPioFHTwDC6R2HRDZBCV7
 0fROlQpb479iBlr8wNAYDhOs0rl25FpE/uAXYThW9Ik/apgXN4rTGxk5HF1pAAUR
 tCJNSUhJUkEgWW9zaGlybyA8c2FucGVpQHNhbnBlaS5vcmc+iQCVAwUQNu4ch4rT
 Gxk5HF1pAQHYiQP+IoxOpfpSPg8Gr7MUtoU3WZPY/5IuKoOwnFNFcSyuhrgn/OOB
 pbxkYjTO3MLh7Xa+9sPigevHy/sNA4vVZdjk05sjRfAZxIWPrinRy/kzva0KOY69
 u1QfX+Vx2mfq/EfMJMHP/Am0H71nOfAZsscKlb/jmuo1TxIpCUx+wWmNn5+0I1lv
 c2hpcm8gTUlISVJBIDxzYW5wZWlARnJlZUJTRC5vcmc+iQCVAwUQOY7IlorTGxk5
 HF1pAQGQBgP+MXSjPfcnNhNfUmeLu8sM63DnrFIfRP9E+n/yhZT0wO51r2LmF4ZX
 YI04IJCywJiPjEpCFXNAhqDfypkTXWcbLTxX6gE5GNqii5iq+z+UuO4panpJO5OY
 4H0/90cH6I/zl93EZN9wfZJghn66vgL4tDTgILdRPekIOB23JQIXsf60KE1JSElS
 QSBZb3NoaXJvIDxzYW5wZWlAeXkuY3Mua2Vpby5hYy5qcD6JAJUDBRAyk8ztitMb
 GTkcXWkBAf3zA/9sDB0n/UlsH9hzaw4r2k0FT9F7Ixtk2i/vqmHDUUcrlEqGaeko
 /3Q+et2KzepX981mI7N2jdClqJgjlHapGoIQWZL3Jy7ocgCXDTYwGU2cFRF7kzkz
 h3FyYotm6bMi5F53GamkVbYZfogLo1MW7jmqIydJNdT1oseDbrwkjvXwdLQlTUlI
 SVJBIFlvc2hpcm8gPHNhbnBlaUBjYy5rZWlvLmFjLmpwPokAlQMFEDKUUFiK0xsZ
 ORxdaQEBjuIEALtVC6fjyDiRnZ3ReckdTO7k83VUTZiQH+2cMFNd8gi+O2sZ3YnW
 6veQI45VB3oHD9kzMjol3B1ld7iKcQzHC6qUEviW+mTRRN2Y26DB704FNeUrqm1A
 LO8NPL6iNKFvUNsu3T0ZRY7oX9a9nMmcD7M2bm6jxrhckS8hY7x1D0xftCpNSUhJ
 UkEgWW9zaGlybyA8c2FucGVpQGVkdWMuY2Mua2Vpby5hYy5qcD6JAJUDBRAylFA5
 itMbGTkcXWkBARgCA/0RBudh/8z/HWdX0GC0m3I0zIAOiGfmnJMPkzLryXuOQsbE
 dg28b193QnwTz6/ASF6PLJkivcd1vREXCz3C+jHz6OGs5jUKcSf5c0ZaIE4T21Hq
 LPKHSj0cYxgiC0auwY46m/yfO8I0bdiM6Ki3fSBTlTmDlNhWxOQ4Ic2RamKNNrQl
 TUlISVJBIFlvc2hpcm8gPHNhbnBlaUBzdC5rZWlvLmFjLmpwPokAlQMFEDKUTtSK
 0xsZORxdaQEBjWYD/i3EOU8lEoje9jTBHfQaps9BQgviFSaHk0G41emKszLSLnGQ
 BeMGZTyWda6sTSqeLKg56HEmmVGzC/nHlhwspC6bdYaBmOpnSmmzxVstcYq8oiXI
 mlfFEcL5DJEau1VTBP56Fk4GCffaibCTRGYrQcJz4yLfATjYsni5Y8zXqhWItBdz
 YW5wZWlAU0VBUExFLklDQy5ORS5KUIkAlQMFEDrvMx2K0xsZORxdaQEBTgAD/jO7
 tb78V3muNw+rfD8tA+yWXw8IdC4QHCa+Ga6Uwf9nw0WD+fuuz0I2La4iaC3FPtTs
 1hz1QlmrztffL3tfsePDeN59nz89m+WPW/Cu+mLY2Eim2Hm6AWKVvtxtndunOSls
 xQLr0uhvNN5BOzEqv2V+l0MrwadPxUrHG0izqmGJ
 =cmvD
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.214. Robert Millan <rmh@FreeBSD.org>

 pub   4096R/DEA2C38E 2009-08-14
       Key fingerprint = A537 F029 AAAE 0E9C 39A7  C22C BB9D 98D9 DEA2 C38E
 uid                  Robert Millan <rmh@debian.org>
 uid                  Robert Millan <rmh@freebsd.org>
 uid                  Robert Millan <rmh@gnu.org>
 sub   4096R/65A0A9CE 2009-08-14
 sub   4096R/41F37946 2009-08-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.10 (GNU/kFreeBSD)

 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
 =WNe8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.215. Stephen Montgomery-Smith <stephen@FreeBSD.org>

 pub   2048R/9A92D807 2011-06-14
       Key fingerprint = 2B61 D82E 168E F08B 6E08  712E 2DF1 2BD1 9A92 D807
 uid                  Stephen Montgomery-Smith <stephen@freebsd.org>
 sub   2048R/A4BA6560 2011-06-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE32uWIBCADUDbhOVgIwECdOVmR/GT/P3L2S9r/E079PRooPFPxLoqAxC+Me
 DoxyYoAR0RFWBs3Qcrf6bilhuovPdZOJ9+BgkGNp/Nu6QayC+4m2IvEZqFhV4Lqn
 5Dk+qmHGbCaM4K8L+vebdzDf6CAdIWo/ufaxBW2OzsuTi43QjYTH1/bs4NhpJRc1
 vLgXEgxE9JJ1TJVm+B0Oa7tnsr6VUZg5BszByFtSnnt0sV0pFaQ33/WSU6XdYUZ+
 RT1nhxfJ/p5NiP6e9h+IqnGf9yz/DtXiW9sqs4bYHs3qjZUB6HhECsSZMyaei1eh
 lvzQR23irMXHYHLI0aJUuNoC3f0qDLjzqJTdABEBAAG0LlN0ZXBoZW4gTW9udGdv
 bWVyeS1TbWl0aCA8c3RlcGhlbkBmcmVlYnNkLm9yZz6JATgEEwECACIFAk32uWIC
 GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEC3xK9GaktgH4DcH/3NBVtRd
 HMfrieIAMyUYkjw0ddcAsBqakaDPDkNauv2+pAUDNhvJ4XUBPUxRm2OyLatHnHPe
 CPPTibNyb3OYgrbccBI1aMQPnKn5s03X0+5Y2Y/5qYzls6bA97MlJWNaWDl9rI7J
 hV7T6YPxzwkva7R8VRHdMoOY8qsErfA168Iy0pm3m28KBU+dnOHxcdA7GHqkggVm
 T+KpkuRnTv3Z1wrna4ejkbl+VEF2VXh6e1AOENSel7ujgWg3j2ZfOwy4wzBGxe4m
 h7GO/7AxvMfBqP10KXBOc6Vp6bw54O4n8CTX+CjGKP2ZvrwntOwvLThj4o1y2lyZ
 ojqcoYjGwIxx72e5AQ0ETfa5YgEIAJgDBvxMoNpKwuKJIbi85a97J8dHGr16XADU
 3xBQe87nNAgOKj4/LYaO93syaFHoiP4KgU+A3l93tKXrd9vOpyBASID1VJehDPp0
 3wHpQHGdVuleaobWJjSGJqCxT+fIa9s0vZgX4uGqa++neFKYTKsYC0T4ZglWsVfQ
 /ZFYLZekCjmW+GUR1k8pfR+n8YN1Tnc1kBN/iytQ7BZg01HA3376KyoKbQDR3XgO
 /fQPySu0JUJ67xNyxz0HsxPEvn3q4+34+SwNjh8pf/7dS9iyfr72juo/MqxU3sSa
 xz18l0RsvZk2YBpewnN7AFQf7fIXObFzr8RXpOGE7OVI6tAMvEEAEQEAAYkBHwQY
 AQIACQUCTfa5YgIbDAAKCRAt8SvRmpLYB7krB/48W8EaOYk8dWPMw4QF55ozMFD0
 H4ooqQdRV+83ddWg3BNjX8w3aX6kxG4JZkrIesrl+ZLh6HCtinGehociZXNhxYMI
 P7FwGl+Q2i8YcMqHih3/7/Hfh9d7C7F9JWB2Y048tfs2jXwpnGY1NRngrnWE8mJ0
 XWQ+5Fk51xR+0qdb62ly0PVv3zigypBLmkOFK6knmrZo2E1s+rAGyadcDZSrHodU
 tgvV8afN+V95Qp5vH2WGlK7wBPyteqXLrIO5JL+cTcKuZBAbpmUrxmHlUE3t2QTm
 BuJg0zCxtNGxMlx3WeX9LtWqsGx4VFOpfTwF+DC8w976faOY4QcGgD5WcV0y
 =DJbN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.216. Marcel Moolenaar <marcel@FreeBSD.org>

 pub  1024D/61EE89F6 2002-02-09 Marcel Moolenaar <marcel@xcllnt.net>
      Key fingerprint = 68BB E2B7 49AA FF69 CA3A  DF71 A605 A52D 61EE 89F6
 sub  1024g/6EAAB456 2002-02-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxk42sRBACyzSSCLYA90zaZoMlg4zhMXhciG/YuiBZ005q0s9W9cuFFxwOM
 0mLFbBHQKj5TG5TNswnf9VreRg8lRPCzgQ63atc10RU2tfa88hIjWZ4G4WEFDeXS
 hlj4dIA6KO93UEoJmIyR7hswisb086mK4dM9hq9FxJT7YQ63PkUYmd+pfwCgjX/y
 xM6+aPj0sXuOvAcVVmrnp8UD/2pEd8kxAKIaWmxOm9aGB0/E6vjZWxCk1+CO7tgG
 4gInFYUnqniPB4JOXOWriwBGPx5IqWYwYpgeuoi/KeE/Wn7bRUEeCbBGEmJkHO9l
 3xJuPX8JKDkGuTNDvR3SINKSzx7gb77eGorwxV7e4FXBeXOyXLxgDqDhh7Sjv5/4
 ikr2A/99b5t1akHlNe1ITpuEETDNRcfu38/KW/nF3p1IKQ4Q+exSlEJzPFupYNoZ
 O7uD3A0YCNf3jIY52ufkZXqhqfsp6aRLetbqDcKVrZWSudAzGAEk3Q85a6Ei4mUB
 tfv4dmXQOLzfAFHezhCQIt5LIPJ5Dmz/a26+u0DmlfisgP5ltbQkTWFyY2VsIE1v
 b2xlbmFhciA8bWFyY2VsQHhjbGxudC5uZXQ+iFcEExECABcFAjxk42sFCwcKAwQD
 FQMCAxYCAQIXgAAKCRCmBaUtYe6J9pN3AJ982m/rtLgyiuHl1IM+/xfsZ460SACb
 BM7V955SU4T2b+1FW1ieOuuZEKC5AQ0EPGTjbBAEAKbxUKuiOJsAQnGKTXtbyRdR
 Y6BZQK9tPNXEIjIUZ94Crs9lVq/P3kyvpR/ziL+Yt3agUAELiX+cggUZ5KRzKBmo
 PJ6ZdWOuKLRN2+PfK1QVOQayeZV11XZAsPwyHI2v/hvjJnFvQNTEXWLZsBNnfTdx
 0zi5RBNhf5Gt1hyuT4cvAAMFA/9xKQ7aKkvi+C7KafwH6B5X6lIQxRbTQuaZaqKL
 M8pDmVLqo3er7S1ullwMWfarQLHtlwirX9IOQN833TCDev9QeeYZZ5g2MpWO5nx4
 kxEOAK6Lg+QBg4RcoLK9CpHUpLoChGQzNaDudztUixwVaaigj21O4PXFr9pmLLZk
 vj7AN4hGBBgRAgAGBQI8ZONsAAoJEKYFpS1h7on2XgAAnj0B9B7g4XPMXjizKVNP
 YLC2BYjgAJ4tZI/tGYxHex5RCeFv/fG4wN593g==
 =R/4a
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.217. Kris Moore <kmoore@FreeBSD.org>

 pub   1024D/6294612C 2009-05-26
       Key fingerprint = 8B70 9876 346F 1F97 5687  6950 4C92 D789 6294 612C
 uid                  Kris Moore <kmoore@freebsd.org>
 sub   2048g/A7FFE8FB 2009-05-26

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEob9xURBACHaqCbAqwyIXO0HHHCAVYPqVkhhr2FIS+yTvVJnCQa6G1KIasT
 LKGK0Z/Ae+suMsQoT9e1Pw/zhErm++aRSYqdTzyuMUjEDXtgsfp27rdQZRNiWDwz
 2/gd1nSEWYAKqUh5i0iJ89tkiL3JJx7/FD1+Nfp2sk318usUshT9/T+L6wCgmRvG
 A61Yo0rszOQexAwZ6PqE9fUD/3tGobQB17xQIca/AwUDyR2cw1lGs3S2ZN2G5xAT
 QL+h30wplhrrIO3lkyZQ7p71ZTPiAf5b5eTrXWrXVtO2Um3+wU04yhBVcmO9DeO/
 F6SLVzJLCRyTSNUSZNmWrl1EOFWooNnfBI4Emjke46g89hIbhYlS+qRL+qN0ugpR
 SnfmA/9d/UiazKlhp3fX9EwYRQmOC4WXDxuWS91I7kH0xsbHR/BHFJbUHDr0shsB
 lNRmfxwaZjiC6oHsJE0Du6FcSncYSfAChLrt+fqGvNgXf4hDIjsUtu2d5sxgoarv
 EvaSwfh/gelNuTnsgQll26LaeYjgmJgwf4Hb7I62UkkPuU5LMrQfS3JpcyBNb29y
 ZSA8a21vb3JlQGZyZWVic2Qub3JnPohgBBMRAgAgBQJKG/cVAhsDBgsJCAcDAgQV
 AggDBBYCAwECHgECF4AACgkQTJLXiWKUYSypOQCcCQagomGK/P/P4OedoFUDw5ZY
 2qIAnjRRTC0mRqUbIjaf/FWNuU2qtbiMuQINBEob9xUQCAD/zeiP1+Ru7ffCZwZo
 QTPjuYvm/PnAeeL2fBqN/Q367UuqR6RlqV03lo5nFxD1phheP0BmH6b0qyMh2dxi
 /6nq32g9b0Wb8s93pqYimxtujpNnWmZhwparaUm9tPyIGRdJ6wj8G43gOwyjDdwi
 GBPDAdSAqVZI0m+l59F5lsPiYJDGSkYENjLd6T7aAd0JzDjd0YLTx1+WLir6OrLG
 p1j81rBRCGRNipN7tGB0/pEB/mutU8GlDTTFaD1cWT4X3RGGP9MOH1UuS4wZXzJX
 8duq+4fKlpKEPOyJ9R51D25a9V71Dybdx/5mo+Bsec8T5+N0f4hK6utrnJvSQTes
 vinLAAMGB/wNS78TRKqFdjz83F/LB42srwFqDCKz03Pns6Fzespha8zWKOTiNOk7
 2WuXl6qWXhZ1aSithGzoWX3Xm6m0m3ZYk9wE+rDqT7Z3/T0tKiHmwG5z3QpuLOnp
 LGuBH/ra2gbyC+Ycj/faYXOz6Chf0e67bNRru9OGf289Q/EVcm39DinYBK1jrHcq
 xZ+b8jxtOWygo2D0SIS/hl4ljMDMaj/J8itwJXj0OyuoJ1IZkW32L4RN3jIXTUgn
 pGyhtw3wO4V5nhdj+YgvhP2VW1K2SVW1SqExlYdvB+HigKV5oHzTNluILcJgs4BY
 ntHqlJQ57QKxWImxvFZmS9MBaf69Tb68iEkEGBECAAkFAkob9xUCGwwACgkQTJLX
 iWKUYSziLQCeOWM0aLs+/NIGsNo/Lc2N4YTQ4pUAn0rL6J3fe3flPx5pBoj/SSto
 jjB9
 =yaw0
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.218. Dmitry Morozovsky <marck@FreeBSD.org>

 pub   1024D/6B691B03 2001-07-20
       Key fingerprint = 39AC E336 F03D C0F8 5305  B725 85D4 5045 6B69 1B03
 uid                  Dmitry Morozovsky <marck@rinet.ru>
 uid                  Dmitry Morozovsky <marck@FreeBSD.org>
 sub   2048g/44D656F8 2001-07-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =iYsU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.219. Alexander Motin <mav@FreeBSD.org>

 pub   1024D/0577BACA 2007-04-20 [expires: 2012-04-18]
       Key fingerprint = 0E84 B263 E97D 3E48 161B  98A2 D240 A09E 0577 BACA
 uid                  Alexander Motin <mav@freebsd.org>
 uid                  Alexander Motin <mav@mavhome.dp.ua>
 uid                  Alexander Motin <mav@alkar.net>
 sub   2048g/4D59D1C2 2007-04-20 [expires: 2012-04-18]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEYouBIRBACKCnll/QyL7oh1g8bNwX4mX4QDz26jOjGW624VOCOb0jarxzV/
 s8NF5V7ddCLMbf8wqA2QqeyrNm+e0FdsLbxVAN6NtF6hRCK0Uwc438toERXBLq5j
 Ss6Ofc3n9KBdTbUDfTp3t9Tda1oajF7JqembMz6cIWXmcU5P+7a5b48KCwCg6dhG
 X2f8H0s3WZkFi4gDXkUOMMUD/AxfkpYNv3CMGZx/6XVAlNltOoNRG2j41tn1Bhkz
 3xgPueod38HbXewTESMVm1qPW3IdNLCrVXg8/TxeUw97h8d1Xa3wfX2DEDfUSCWp
 IyH+gAchvZxJebdf8UpGtXMrJPzVznMHmChs8pavhnZfqtJ2tplFEf18HLbvzU8r
 0GpGA/4hNHGvKtts3CTV7XoQlQrWqhl9okjAUarLjrf2iCVsUhyE3UpXmp0il5bq
 mhfVv5b4FHUkrSipOsJmVSLgoc0muL9G0BNvLkMi3/vUi/6TOjANYOCnUF324cKv
 9o7ojNylp6eTh79wx80tHt99ZgNh1butSlQAQSTXk0aLLbOSqrQjQWxleGFuZGVy
 IE1vdGluIDxtYXZAbWF2aG9tZS5kcC51YT6IZgQTEQIAJgUCRii9JQIbIwUJCWYB
 gAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJENJAoJ4Fd7rKBAsAnR3+WbuhVRDu
 7AVndqKop+Qwg68hAJ9W8/4LOHr2XjLT37RQyxPgtodbvrQfQWxleGFuZGVyIE1v
 dGluIDxtYXZAYWxrYXIubmV0PohmBBMRAgAmBQJGKL0GAhsjBQkJZgGABgsJCAcD
 AgQVAggDBBYCAwECHgECF4AACgkQ0kCgngV3uspZMgCfafiI8rCSzlLwyWRXCpyH
 smEYsgcAoMuqcyGJ9P1yzcddYw9SZUjkoj1dtCFBbGV4YW5kZXIgTW90aW4gPG1h
 dkBmcmVlYnNkLm9yZz6IaQQTEQIAKQIbIwUJCWYBgAYLCQgHAwIEFQIIAwQWAgMB
 Ah4BAheABQJGKL0sAhkBAAoJENJAoJ4Fd7rKJFoAoNe3pxIgHjKb+mjocFUrzkAn
 O5pkAKClil44JNQKWePpy+xNRNG8ko5487kCDQRGKLgSEAgA8Y2EXU8EbnSyZ5AL
 RyHn7axmxr7p2qzEkDI8EidMlJOxfyCj7b3t+5QbIbieb/pnDMGuXPc+7lcK7Owf
 pu9DTvWPdLRjvXNFJbuRH5mXVUdHS3j7GnAqqgb8ydTbUrKRwY2BijJaU8imXibc
 +ujXgO/ZVrvYpiXtZx38cwfoIDA+LFpQlLBUUkV7GRpBYcrkrVEGMrLBAPht+l71
 Y/IBMht4z5VBFMxJ13TogMseOKKDrRVsxmMqbBjr/S23pVZqpjQYGwkNo96+JxeD
 pQGlbbbRftiuObXEZsk4yGp56jXTieZLUlq9L1ELkzHIjPhNoeudx/tdtgZPSwsp
 I6M7SwADBQgA2eUilFtIbEsAizp1Jd88J+2Z/dZ3M0LK7rqZuBVQdeJZbpYBfL9v
 +JEbjw1e8HV2goYtwkVgfP3tJX/xqzmwIZxd3wLLzDucPrtmQJfDDcD3fDBVvCeZ
 Z+EjaGp8/rIE/h0LCk9XXHjK+JOZaKt8tsCtkpp5nbAMaPRBrCm9sGB9Oyt0rrU2
 /ryvMIf4W602iKDka5oUl1fhNP7R2lnkLRK8OPEPdboVxOrzzdBB8XN67B3kzDRt
 +nBHqFZNn6GafIYpvoJS1jqAskug2IjmEUIxDxEuD2EhIiayLAuwmGnR8d3iPVcJ
 /KF/URy/Y7PBtkE2amogd725uRTxXOXAA4hPBBgRAgAPBQJGKLgSAhsMBQkJZgGA
 AAoJENJAoJ4Fd7rKMlYAoNZbw8I7WBascnxVyObkqE5rLKxJAJ46TGlVlvBS+PXT
 L4EaOMcBYbTvTg==
 =ZML6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.220. Felippe de Meirelles Motta <lippe@FreeBSD.org>

 pub   1024D/F2CF7DAE 2008-09-02 [expires: 2010-09-02]
       Key fingerprint = 0532 A900 286D DAFD 099D  394D 231B AF20 F2CF 7DAE
 uid                  Felippe de Meirelles Motta (FreeBSD Ports Committer) <lippe@FreeBSD.org>
 sub   2048g/38E8EEF3 2008-09-02 [expires: 2010-09-02]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEi8sBIRBADJt1SLW/mX5HmXKgbG72GXupRR8V+lDbtquXx6dJ+3E62S9xFx
 KehNrX8YcYnp+dcuHktXxQPJ/BAzOnvPdHKgzdXMARO5ApOfQ2VDgZgAcs0dVEnn
 LILvxiwQ7YlyJjOTJwbcHBpsTdolhNooi2FEE3N5ShSMRlPoH3GXF1qdnwCgqV/g
 IlQTCLudKrApFqNIbDCrPh8D/AmN2MdnlnIk6d7zUgLWuu3coohYIYOxaZ+ovKDb
 S8siSZ5uaEZOhWHVLVGYXTmzLrCK7TUBKdK1sW7YrYKQdPjhYnYXrwS4AaWupWwX
 K+fZWTaZsJiGLbOIrszAd2hRHUgQ5VeeoM0eD9eyAWHp5SVi9YcixMUNbn5ERPu4
 ppK2A/sHynDjmkXHXzuNwN8dwcUjTMTVt9bxGrLVJHcJUsK527dv6/UG1CfZYnzT
 nca4GNO42/FBjQtyJaTQd76aJQ/PSU88MMGuMUh9LYl9rRdMQKn4FXm/6t7NZOqx
 qvXzEC8jFw1BOvxhmykSEZDlwZFwQngDre9Ux68Eu6Nut554yrRIRmVsaXBwZSBk
 ZSBNZWlyZWxsZXMgTW90dGEgKEZyZWVCU0QgUG9ydHMgQ29tbWl0dGVyKSA8bGlw
 cGVARnJlZUJTRC5vcmc+iGYEExECACYFAki8sBICGwMFCQPCZwAGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRAjG68g8s99rlhsAJwNTFc1W0eu3Em6+RjD9WZWtX/1
 0QCfb2riDssKYX42D7HhVjDvTe1BtXq5Ag0ESLywEhAIAOQrj0PRt1WOC3Gh1njF
 KDacQl1aJ5f52yaz0FLpu7igTRS/8ET1+uHvIwzcSbbG/4xWqPwirMxpNZwpFMzX
 9l8bURIX5szmJ+bEl4VH+La1p+w31YswBn0PDTSYtWhaIn1LMXED4e2Kg/wUCpLT
 M8htMa1pg0F2ZcmvbNZFuXMd3BBAkvWrRJTYuDXy8HHnbALjUd40laUDT3Wi6FRB
 W3HFj5lIiEjnJG52iTSxWVEkoChy7l/qDQ0zsguCCZZvLfdQz2DAFscjX/HltuUK
 s/gkzVR4jZDVMQPqCATuCvDYHrDWJnfU/R317Eg2kp2tJrNibrnFX+ciISSuq1+t
 UmMAAwUH/1XXvFtLACv8NFLVFVWM9wA70ZTLjZEEfewbWRYgT1yvOChn7H2ef3mn
 I7/WoLF3ntm8Qcw6TcSrzVbZjgdWpS65Wc5YZn1rMb6nP419kjDQPjvB8RUA1g9v
 7LuOv8qeqqo1/mT6PIh8ZnhWR42ei8l3QcbyGJMQGPHyUZk84qbd1TI9gO5GjWHZ
 LIi80DPb0cpazMCIgYjrqZsOoq4XcYJZah85Eu9jdqbx8aDNnag4NeO+9jhy1msg
 xC7WuLYPctfFZ3q5ZwdvvtfluyeKjqY5mzkAuXKbtK66yMLugU4NnR1IeS7oI212
 NF2FmCRAkCMB26n8sd7xavpd9uF+6ciITwQYEQIADwUCSLywEgIbDAUJA8JnAAAK
 CRAjG68g8s99rkWyAJ9b53BhFJ6+49cr0IIZLxVBGlWNnACfX4O3OOhx8kClRzsH
 1wm6VFjn7qg=
 =q3W+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.221. Rich Murphey <rich@FreeBSD.org>

 pub  1024R/583443A9 1995-03-31 Rich Murphey <rich@lamprey.utmb.edu>
      Key fingerprint = AF A0 60 C4 84 D6 0C 73  D1 EF C0 E9 9D 21 DB E4

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAy97V+MAAAEEALiNM3FCwm3qrCe81E20UOSlNclOWfZHNAyOyj1ahHeINvo1
 FBF2Gd5Lbj0y8SLMno5yJ6P4F4r+x3jwHZrzAIwMs/lxDXRtB0VeVWnlj6a3Rezs
 wbfaTeSVyh5JohEcKdoYiMG5wjATOwK/NAwIPthB1RzRjnEeer3HI3ZYNEOpAAUR
 tCRSaWNoIE11cnBoZXkgPHJpY2hAbGFtcHJleS51dG1iLmVkdT6JAJUDBRAve15W
 vccjdlg0Q6kBAZTZBACcNd/LiVnMFURPrO4pVRn1sVQeokVX7izeWQ7siE31Iy7g
 Sb97WRLEYDi686osaGfsuKNA87Rm+q5F+jxeUV4w4szoqp60gGvCbD0KCB2hWraP
 /2s2qdVAxhfcoTin/Qp1ZWvXxFF7imGA/IjYIfB42VkaRYu6BwLEm3YAGfGcSw==
 =QoiM
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.222. Akinori MUSHA <knu@FreeBSD.org>

 pub  1024D/9FD9E1EE 2000-03-21 Akinori MUSHA <knu@and.or.jp>
      Key fingerprint = 081D 099C 1705 861D 4B70  B04A 920B EFC7 9FD9 E1EE
 uid                            Akinori MUSHA <knu@FreeBSD.org>
 uid                            Akinori MUSHA <knu@idaemons.org>
 uid                            Akinori MUSHA <knu@ruby-lang.org>
 sub  1024g/71BA9D45 2000-03-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDjXWqERBACDCxgN9+yMfpm3yvkYp+P4Uw6xxPdcZ9RvnTRkBX9zXaRgSPmM
 zeZ63LpB99uVphVZrv/EdlyTf+cRdz6VXXRcTBloA/FsyY86IluBnWCH054WyXzr
 7az5WB9yDbPnlwcSL919bq0UqTuQUlQswdQAoDQG5LNNZNa0T01ydYtNlwCg3weS
 I/nEJrGCXGy2wrjg8LiwQ28D/Re2JHQPTYqDEZl6wj5U83wT55ChnTrjPRbGmr/C
 UdJP6CZQg6+DXYGYulcp3oL4btcdFDRFglJzmQNkUYmqiVC20SMVKUctrOCAI60P
 7VE40UtXz9EounPSRQQ1lSdMNeRwrZ9o7IcrSj0EBw8lw3d2WxyM2Rs2crZWfOI2
 mu8dA/9LbmAw5sLk5Lo5i41nAWP76pyuGxSia6zMRdML6ynoC5kmyrI9TwW5LNU/
 Lsq1Ru2XSA+CwSBpTt0vdwS88dDwPGxRuUHhWVpa1M5t7K7uYODB1cD5AyNoNnR/
 lHpxfPZOJNdA3OPgfssN9K+PIuhbBU5xONCoAcdC9TEqSezfUrQfQWtpbm9yaSBN
 VVNIQSA8a251QEZyZWVCU0Qub3JnPohWBBMRAgAWBQI411qhBAsKBAMDFQMCAxYC
 AQIXgAAKCRCSC+/Hn9nh7n1bAJ4vkEQX0JkcYgltt0Vv5qkS3bGqNgCguxfhuEzZ
 vBzpAW9/XdstjA/DSPS0HUFraW5vcmkgTVVTSEEgPGtudUBhbmQub3IuanA+iFYE
 ExECABYFAjnly3oECwoEAwMVAwIDFgIBAheAAAoJEJIL78ef2eHu7RoAoKn5Lw0y
 C+/lju5+pV0WI5dmxTzxAKDJRtsRSTBcJ7ohvzztxZqyjfSK+bQgQWtpbm9yaSBN
 VVNIQSA8a251QGlkYWVtb25zLm9yZz6IVgQTEQIAFgUCOZGiowQLCgQDAxUDAgMW
 AgECF4AACgkQkgvvx5/Z4e4t+ACgnr8RmYw81/oC7MKS2CSoFb9cg6sAnjKay6ho
 14iMG+YcFNbjxwGvSE9EtCFBa2lub3JpIE1VU0hBIDxrbnVAcnVieS1sYW5nLm9y
 Zz6IVgQTEQIAFgUCOeXLZwQLCgQDAxUDAgMWAgECF4AACgkQkgvvx5/Z4e5+zQCf
 Z/09J5FOgAqw3UrTTAzR6QWicG0AoJdlBcdUltEO4WV+q3FRlw4RVnA8uQENBDjX
 WqwQBAC09OxAmKbGn9FETdMA/5abvOY7JgNcFhQutEVnJ90mF/npBucWkCRbOr83
 t+NB0h5Te+lV/c+mjPyOemfWdAK4R9zQsat+ZqATv4Vgiy0UbJ/5TPfSraNK+QkX
 nxcDrhpcJXZhX6VYzbWdRSn8xSZzPT19qq0BFafz9UhZKXnLDwAEDQP/dpZe0jWw
 rED/Kbyr8CDoEKuun/5gPi5xmNz9iJlyvcsdOgok7yen0HHWgdaZAGX3GzjpB5gA
 aISX/kK66s+NeM1XQ7YXpcI8naf0jPa6N3SNWjLf3xPxLbMk0SyaGnrnSQNikk/H
 Bk2Nqyn0kcEaaBbdfrgkuuQWPnBDrq2EdOOIRgQYEQIABgUCONdarAAKCRCSC+/H
 n9nh7oxxAKC+gMyhZmSZdTvT3a2Y0RDOx5kRLACeP3JEvGZAZuo1sJeEw504+jr8
 1Xo=
 =M+Al
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.223. Thomas Mo:stl <tmm@FreeBSD.org>

 pub  1024D/419C776C 2000-11-28 Thomas Moestl <tmm@FreeBSD.org>
      Key fingerprint = 1C97 A604 2BD0 E492 51D0  9C0F 1FE6 4F1D 419C 776C
 uid                            Thomas Moestl <tmoestl@gmx.net>
 uid                            Thomas Moestl <t.moestl@tu-bs.de>
 sub  2048g/ECE63CE6 2000-11-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDoj/ekRBACnO84k2i5lLHZKscyV8tjQSkkr26hasdbc/uyV7HTiPhMUjEAz
 Pamk+bDmy/Ls8k0SJ1l0vILBBd31G5VYtKonIrgp4vZ9gV0fBdCyFDXb8bh11Pk3
 pEZiG9vJevq40OPvsThLKHCLNhZ5zLPp6gd0IHwRJ0LU94pouFXd33MzrwCg4gTJ
 K00Dw0w1hFtUsq6WjNC+1B8D/2WiEuzBMnO6gz0p/eJ1eZ7mvrBXLQZ0u5vJ3eg2
 CCPrtS1ZITq3ICPDN6biEiMgtRmlYn/VYvDQqxwNE0X2yMfB/9sdah45zma9EeVn
 Iy8meaCFDLhm4aIYc1foUuz3WbCNlJFY5xYPXCMXLkC65xdybHKng5TXh6NOOWf3
 PfCWBACPMotTRKttAuw5YcZE5VDrSXPYHu/jm2CpIVmrac7+kDj9pGH9sB7BdUxw
 vczqtAT0jk7MrT+u3FH9wBtEFTXl7ksGTmDOFWJgYn3ZOEaVaX/OqD89UNhrOA2v
 ZOaaoKMYxK/pszPdr1Ghd6BQCmYKtLBlFYiTDRM5UMVHTqN7VrQfVGhvbWFzIE1v
 ZXN0bCA8dG1vZXN0bEBnbXgubmV0PohXBBMRAgAXBQI6I/3pBQsHCgMEAxUDAgMW
 AgECF4AACgkQH+ZPHUGcd2xMLwCfdEkPZVBgEmYnlyOKfyTSslMhud0AoKDKZNXA
 huNslb4KF8yKWBNRwfPStCFUaG9tYXMgTW9lc3RsIDx0Lm1vZXN0bEB0dS1icy5k
 ZT6IVwQTEQIAFwUCOo01FgULBwoDBAMVAwIDFgIBAheAAAoJEB/mTx1BnHdsOfMA
 n1xd4f7iAe6id42DLg4W3fibsCwsAJ0cT2lf08RhHkT+zLVoubyIDoY6ILQfVGhv
 bWFzIE1vZXN0bCA8dG1tQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI6pO9pBQsHCgME
 AxUDAgMWAgECF4AACgkQH+ZPHUGcd2z+7gCdF5fq/lebn3/gp40O8xP/J0XFbiIA
 oKJP186L04qpSNamc/qG3gs7h3DGuQINBDoj/wkQCACl8M8ObSTJaOY4SgoQkKgB
 CkJJP5ScUpfYV9w3dxKL/77cyfghfYsnAWuA9yXJcjA0F+u+jRf8gS7OaHD9H9Mm
 pMGq54Aa0KUQaDbL/Jzf5zrKS/RASHzl1vYXuZB1OIzPfeAIx9u3UaziVEGXJha3
 1KgTur+TU+F94ZFTi8uApq2VoNT6sFi/V2x79bxlLFr9M9yD/0+kMZKovWRODy6T
 gWJzzcdd//dkvKp22tNf6C2wq8Bu60cWR81+awgG2otgZjCPUs2Bwhqa5opeUqGn
 J+f+PXo6+m2UF21m1vLARENuumu6SXf3XqGIUiQbT6jCdJORzwaxeCiMfu0qNnUX
 AAQLB/9u9gZN0N0r21ZjM6ZRmDC/REouCdYHEj49+f9g/xLXCfacpWVcrK9lIrcg
 hxRE2mQ/nlQLeHroC3Dp1AfThKSPFX3PRD/9CcRu480imT84ljf+6vonAZ20Edm5
 vVO+UoJMZQ2G+rWRRf4bDfwFoyDw3DsNmUL4yH8m2RpTxXn0pQtD2riJD8CBCXEP
 K95TYT4MomJ7Szg7O5/QLngfw0q6QdKRm1vEIP7r6t+UbVNp9+5g9qvz4aqm3beY
 pw1QCDHcqpDITnlTxTdV2SgNpF8JPg7joaOa36AxWwRzfLFyzyw/JGQE8RwJa8BN
 iTu0IrKuiF1biRxqiYO887GBA/8QiEYEGBECAAYFAjoj/wkACgkQH+ZPHUGcd2xN
 TACgkS0AGqqd2nLtWhpbE72tD660tv8AoI24cRkUa2op32mti5zfLLMsM4AZ
 =76WN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.224. Masafumi NAKANE <max@FreeBSD.org>

 pub  1024D/CE356B59 2000-02-19 Masafumi NAKANE <max@wide.ad.jp>
      Key fingerprint = EB40 BCAB 4CE5 0764 9942  378C 9596 159E CE35 6B59
 uid                            Masafumi NAKANE <max@FreeBSD.org>
 uid                            Masafumi NAKANE <max@accessibility.org>
 uid                            Masafumi NAKANE <kd5pdi@qsl.net>
 sub  1024g/FA9BD48B 2000-02-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.2 (FreeBSD)

 mQGiBDiuMYURBACEgL3d4mL0pojugj8TZFEQef+MKkXB3lazrqV2ahgWqt6K24qr
 5fZrGkI8vxmYR4VkI1eLfe0Q4LoBZifL5nJYEvMvWPmdLuYjp4iwjgBdzLnwr59+
 k8+T/fohGDOqx45voCdq68Jmxg283zFGQ4FChMP3ZMlOPmFRIp01C84xxwCguNFG
 BVPeuM0y7JH0ucRygUqc4acD/jfe/UEjGBWxOCfZYOnXEp4NXWis3xRyUDO3cuoG
 8M8MEmg0dX0onFuNU5yrEBFtzPw2GO6DMM8h5hJXdSWkiyusn05PGk/jVSP9/MD5
 TYyqKL1tG/fKUgtevZSi7o1x/N0bgIBqmzd30Cqx29p7juVV+SBcKCRT1qloz6fc
 a5B6A/wJD5n3HOAStsWpZ6To/Apdb4A3PD4+ePfQxSICsHCFg/M04FkrG48So2qc
 7dSq6UH3xLsoiRIUonwCQsT+PaQQMrZNKjfal9xlEFfw1TV/squ+oNE8E24Lkzxt
 8Kkn86Ec5uiUlRulSMG9HJuWM+9Qu7TF76FWP8llVp6ELkYCGrQhTWFzYWZ1bWkg
 TkFLQU5FIDxtYXhARnJlZUJTRC5vcmc+iFcEExECABcFAjv4RDQFCwcKAwQDFQMC
 AxYCAQIXgAAKCRCVlhWezjVrWUEIAKCgwVSawCg1Lzrbf8uZdMAfeOWFXQCcD7EF
 tsdhbEV62AOUeQQWPr9de1O0J01hc2FmdW1pIE5BS0FORSA8bWF4QGFjY2Vzc2li
 aWxpdHkub3JnPohXBBMRAgAXBQI7+ERfBQsHCgMEAxUDAgMWAgECF4AACgkQlZYV
 ns41a1lUuwCgsIhWJdtPBebkV6w+NQ/8jlkJgrwAnj9lZkiTAgl1E/vcF7yPbY7f
 HlHetCBNYXNhZnVtaSBOQUtBTkUgPGtkNXBkaUBxc2wubmV0PohXBBMRAgAXBQI7
 +ESBBQsHCgMEAxUDAgMWAgECF4AACgkQlZYVns41a1nv1ACggYgtKhaprmMs30oz
 yoC0NatFJ44AoI0XSPh2G9zHEjF8AyYAe6sVCLqvtCBNYXNhZnVtaSBOQUtBTkUg
 PG1heEB3aWRlLmFkLmpwPohXBBMRAgAXBQI7+EljBQsHCgMEAxUDAgMWAgECF4AA
 CgkQlZYVns41a1lYRwCcC8l4PdrwHKNrZlTW6vod6kYgR3YAni8iLUZW5Se6nTH9
 WuN0XYPpZRG5uQENBDiuMdYQBADVzBBn5+1UQVCLS51y6eCD3TidT/uJAr+eeiWZ
 IbTmXrltNm5rGs7OT9QYNLhCFFPYKJxa9hFbrGpgserEFnqBfxcbMLa/wyIm9m/l
 MI+NNCAU4IpgDWtgjf1kjzwnJPwH69YzcqS2jlEKIjkCrEa/Bpr1Nvo4aLvqlTR8
 tJh+1wAECwP/YBMEMx/zgTvS3Jtji6nPceRe8icGRHb4SD7MVF/WxYu5VK7wlmuw
 9I9WXnHyYaL4c6Q49FAvwhkppByqJFL0txyJ8+nNa6H5mit8m6dcsCMG3NzyvxBP
 082h/MWbJn3Xdg89lp4UG3UP8sV1oWyIchd8rqxFk/EVB7fVQWNz/gKIRgQYEQIA
 BgUCOK4x1gAKCRCVlhWezjVrWUlcAJ467I5lFNlkwcENe5vND+DPaWyreQCfddOu
 6Va2/bf7Ln4TKyl17uRro7Y=
 =VmY5
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.225. Maho Nakata <maho@FreeBSD.org>

 pub   1024D/F28B4069 2009-02-09
       Key fingerprint = 3FE4 99A9 6F41 8161 4F5F  240C 8615 A60C F28B 4069
 uid                  Maho NAKATA (NAKATA's FreeBSD.org alias) <maho@FreeBSD.org>
 sub   2048g/6B49098E 2009-02-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEmPtPkRBADEcSQQGME+Df6I9jnjUBNMxvX8aMAH0+SKJEn0xTZvu9WLQmJv
 Bx1Hh6AN8fD7OONFBYGsDAxbbgFnwxc/KPBctXHUxoTE3lRTFRwYJJKIKvrDhFjr
 qDWwLJ9TsUn/pDsBflPFe57okBlPgSywTLGLuurOaT7oda6Z2K0FOiALVwCgn/b2
 7R19gm0uKjzsEPejafW6lZMD+wQK4qETffrdqRoVRnzzpTa+xa60kQxxsIeibffy
 dovqH7HIWeqiqDwls17zmbMc7auNliyN7VJ1bQ2C5SkojMUqgEsVle/8gfe0cWhS
 2jJ8A3Xg+/IzYwj+TtlWqUkzx/b1Ck8v/9aRmLtTNo9OdC8H9Nu1onF3Cp0WqsiN
 gwNHA/4+8w5D5gouNWfuYkkzoQQ2jIFJ4zhe0GCb2MIrqKrf0N40NOcYFLi4eJ8F
 W1DAdQbQjfMMlYAknm7MBpnsagTqjS9MniPVygYUUre/xMx0tszvWdGdRSjEY/5U
 AXoCevBci0meKTm5ZSDb2RPOLezF/zOV82IY3T+OKXTHcLSeubQ7TWFobyBOQUtB
 VEEgKE5BS0FUQSdzIEZyZWVCU0Qub3JnIGFsaWFzKSA8bWFob0BGcmVlQlNELm9y
 Zz6IYAQTEQIAIAUCSY+0+QIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIYV
 pgzyi0Bpf4UAnjOqrSHlb4NdW+ulVFu3o8W1hbTKAJwIdn91S2W9V3ueKsbFqq62
 8dPYsbkCDQRJj7T5EAgAuaHr5IuEXaxoUcoZryGZweRs+G2Oh+jsMIvMABVGMZJ1
 iov7vSypm1EF6/cO3O+rn+Zcpuf4XKPP3TK1oKWLIYRgdkvTWwzVc/PGWRHdr6/S
 fo1B8/jr9tWW50p+s+KZoMPV/Rdz84AN8bNZVAMxNWXooYrGMxMvEDg3rX8KZW57
 25KF+GlYYBoIXxatMYGlZKz2lcaeD7Mf9EFs9jtpyZ2lhlXjWu3NZBdf4ClzWt/C
 uQI2mM2oEX6oZEDCgWvGoIPKzMruI/lAPi8I4Q9A3fH7azEz/BHW6yqLcXfmUrMe
 jsGTS/ovpV/dyxqNzsVpt203ZBxSSkSjOOMO4OzBOwADBQf+LVc888G6GxeCJGxp
 X+uACx6ziuaGO2AIvfUWN2KlDEpiCHwKf1L4FBE6mKm2l9ZloNyisnL8nvC/lmes
 whiTQkiVgB014EDhR7IoljZQJwpJqWC6HCwED08In2O/fI4JX3XiPbUzYSmQSpd0
 tMMBVBwkB3m8SnTaF7cnYrZVGL2oCrBxfbYYhxDtxmGnD3q1/me7dixUJLbEHSmj
 wXvORtzMuADmNuz3RkkEKrtHXgqtqYluZwb3VNlRa9T/MxMYMfMA9V8IYw4gQkM0
 xEM4UOUuweNyXRUSyuvcLQJthhWiw+Yfi9ATzdbnbwh1rwwVOoIhcM4QHBgPhnir
 vrn/k4hJBBgRAgAJBQJJj7T5AhsMAAoJEIYVpgzyi0BpqXQAnjkUgOmypg8bF5kd
 ZDVC/M0s8sUfAJwIJuJHTepRSP6qVkZKiXF5TRMt2A==
 =Rtch
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.226. Yoichi NAKAYAMA <yoichi@FreeBSD.org>

 pub  1024D/E0788E46 2000-12-28 Yoichi NAKAYAMA <yoichi@assist.media.nagoya-u.ac.jp>
      Key fingerprint = 1550 2662 46B3 096C 0460  BC03 800D 0C8A E078 8E46
 uid                            Yoichi NAKAYAMA <yoichi@eken.phys.nagoya-u.ac.jp>
 uid                            Yoichi NAKAYAMA <yoichi@FreeBSD.org>
 sub  1024g/B987A394 2000-12-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (GNU/Linux)
 Comment: KUHASIKU WA http://www.gnupg.org/ WO GORANKUDASAI

 mQGiBDpK8uIRBACY5SwFQXiqzDlO1k/syoFoiFIFl/Dp+QmwK2oovIvlBVo/1gbx
 EhXrKRrfC67KSxxdUsgN290v/VVTmq8Opy1/RF+RAdxM3JrUfkcm5+IBWbSUfXFP
 i8OXBVgh7wNENVtwwD52F+0CFIWZXkClaif4DGkf38V6LJ6hBIycxuNDQwCggXTT
 Kj5SP2hFC0ueyQtPDoJEgbED/0bPL9R08io82IQqksOR9IUy0OdFJkLVWLnollEY
 LGjXa/AHgE8L8oWU/2eF1WM4JrtVRdcKe0Ja2e9LuH6IonGAdwqUeeAOwA/RdGj3
 63EglH5ugv4rZZKWZ3/piuNXvtq0bhAfl6zBHi5iUB4bgPVoVJGn3VyykPWxdqfX
 sT5+A/wIml11cFMogN3RXy/2Y3JRWeBtUCfdoRjeQPgK8++krm2Pr/AtHgcqNSjI
 W0slX4cLou2TEhV3BHb/4npsdaY0BzYgL7V1YggCv0Pu1s2D53Nzi30V66SRP0BZ
 OlNTA88WdMfoF3ttb04swSenG9X8dbpyYEdlvxNbbKKbUiBORbQxWW9pY2hpIE5B
 S0FZQU1BIDx5b2ljaGlAZWtlbi5waHlzLm5hZ295YS11LmFjLmpwPohXBBMRAgAX
 BQI6SvLiBQsHCgMEAxUDAgMWAgECF4AACgkQgA0MiuB4jkZz3wCeIi857V2zyRA7
 gRVsx+DcoCLeC3YAn2G3gFd+v14iZHXrPaqpd1gSjjayiEYEEhECAAYFAj2pty0A
 CgkQFwU5DuZsm7CchQCfdD/itI8d/uhmH9A0upJYYoYS46YAoOAfpFKvAGe/vBpw
 dy40SxBG/qELtCRZb2ljaGkgTkFLQVlBTUEgPHlvaWNoaUBGcmVlQlNELm9yZz6I
 VwQTEQIAFwUCPai4HwULBwoDBAMVAwIDFgIBAheAAAoJEIANDIrgeI5GKx0An1kh
 KzDAfR7Fzba/V7DHq2BRLcRQAJ9nZFgBncerxFMYAanwJruIYtPnJYhGBBIRAgAG
 BQI9qbcxAAoJEBcFOQ7mbJuwe4kAn1E2VVFpLajGFYgipCmMgpxRXPmxAKCUa/ee
 BEW5LPNf8xhaeIGlAtPZm7Q0WW9pY2hpIE5BS0FZQU1BIDx5b2ljaGlAYXNzaXN0
 Lm1lZGlhLm5hZ295YS11LmFjLmpwPohXBBMRAgAXBQI9qLhMBQsHCgMEAxUDAgMW
 AgECF4AACgkQgA0MiuB4jkYrnQCfUgkHO/ioUTHeBtYJHGeL9qthlnMAnikYzk6K
 gDV8cHI/ETcNoh542Q6piEYEEhECAAYFAj2ptzEACgkQFwU5DuZsm7A/JgCgvX8u
 hjU7WPofTfM2d11+j+ywHm4AnRS8iRNMqbP9+crcNzCRSQ7OZFqluQENBDpK8vEQ
 BAClmz0m/wuG01nst/7X+riyNgZ3j3oRurb9Fg2pb7wkci6nlhzCHTcFNCZiY1nS
 Vp+/3tRkC7HQPz3zhYo3ieCf12NUweJ8jhbZubp1fYY9ubKoj12I+LXTfZf3kA5G
 UD/n1nkAqxH2yP3eVz1BpKUc+Lz+5USiDo+XfrvfxQcZHwADBQP9GejakrIdVKcA
 /4UTWnMh8HK2b7tDLwLKyJg/8lagBkIAH5tPpCXi1qXuvHe+T9SjbdwW/lyxSARV
 FAz1ejp4QEWsAGQ/pchjb+S+iYvNq0VfzkZPqFFllLMaQc9mo6blgGgSEqLNpba6
 gDmVTJZ5jAhVxFBhRPwchSdPP3ewVRWIRgQYEQIABgUCOkry8QAKCRCADQyK4HiO
 RpwtAJ0alZHYWdBCXaPF9G9HCl/T40wzJQCdF5K4aEEsIG1P0WmNjbY4PEAVndc=
 =NZ/b
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.227. Edward Tomasz Napierala <trasz@FreeBSD.org>

 pub   1024D/8E53F00E 2007-04-13
       Key fingerprint = DD8F 91B0 12D9 6237 42D9  DBE1 AFC8 CDE9 8E53 F00E
 uid                  Edward Tomasz Napierala <trasz@FreeBSD.org>
 sub   2048g/7C1F5D67 2007-04-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEYfTV8RBADcVRh6fWX1XI43cTrdJBctCOxf9jZ6eedmhajkpMRhg7b0JPPL
 cYL6H1x1xqKbXtKxWE+BzQfdDJNJhwjQIwaXityWHihnkw5XBCRMuCGrUuaW/pPQ
 31EX1Am9d8k+ckUK8tPMNuWM8+ZYjXTJppLg20pIPBRwvmRR/hrHDhMvbwCglDGC
 ZfTHYkv36MFnkPHJH4iaQIkEAKoy+bcyOiJK0iuAx5KeF3CxP53Nd4sbsHKcbibP
 OsWJKKUHPlVTts6bUvM6RH+zUHOeWpXmgNvZTsvmoLU/E0I80BN5ngdOwV7oqeAk
 V03iltsBGIeBv5B0xxYDyQBuo52LV5CGZ7F65o1jGF8LWfZbtPh02gTmhYymmLeV
 QryDA/0WbmKavL5Dh7L4Ugz1JVIC6miD399IsLV+XewJjcaXnnngIplz0ZjK9hHx
 kuG4w3pi450z6gMTmpY1IPC7R158j/fLhygYLhB0sffXaGs50nizBlBoZNR/RZRJ
 7Ik1Q1E4dV5kVhgqBs6qPCfAdVMKGTWpM3xF2uyFT5xbuVPxIbQrRWR3YXJkIFRv
 bWFzeiBOYXBpZXJhbGEgPHRyYXN6QEZyZWVCU0Qub3JnPohgBBMRAgAgBQJGH01f
 AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQr8jN6Y5T8A7L7wCfa7dxDhHm
 WYOcaZ3PiBCxbMyMeW4An2regIquPmK4ZyrJkfXGd7BmmgGKuQINBEYfTV8QCACv
 /cPnRLjvnYJdozvbzoBqC4m2sAmBClDV9cRtIGXu//ULZ0CnDmEByfp7W2Aqlm4a
 +WnDBlbKaP4td0uwvly3m2hNH3DS/7/aBaDYhPUeetmIP3GZrelGlQHqe1ldJuwD
 KEiR0ANagAikuSiO8Fv76YY2dFmUSWh6mNd6+/F6hYahByJbDXrsYNSMI7BtpH/C
 fPaSew66982uu86IGIZPREfKSYouLuuHPUwrGRbcwyeIL5y/0i6Eyxi3JuPHCYSa
 a0jX5VQ8Gn3P3SukTdK+rWaJQMlzjbdaZknB/GeRDEc6ND3eqdmQa/PdnkGVwHeI
 S17IutKHDCsxDqSJgak7AAMGCACJtwmr70SqnOxtHugDB0G4tAEN+poeol9zfEnE
 A1nZImvDNLUoX11YZRLHCc9nz2V7HIzTacNL8ue5DenmtSs72S3zHM/DnIhXjx8r
 hBFrSW/DdJB80LLcC/NhRcl3U6sof4nzYuipkgr7evAeoZqWpHiYcuag0ZRRH5Jv
 4Yh3R8zFYAg2NSKs2Q3CCX4c0vs1boZ1f2x4QQhxTpsDkjJxGPJ8OEAR7W5BjDOY
 KZBL9+02bzJKnOcbrtRkbylGZAQCxX9DoZDGHSCqaUBZMJZzWauW6xcwd4s91pMQ
 MVG1u5WHvZlOEo1Cg3Y9QSyehMKkcLwyuBj2zP+ijlkIBuFhiEkEGBECAAkFAkYf
 TV8CGwwACgkQr8jN6Y5T8A6VnwCfZdSh5TaDbb0wjcyUkVYAWZIo4n0AoJOfSvnF
 MeOHsJ51PEblZGwvjW0k
 =hc/r
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.228. Alexander Nedotsukov <bland@FreeBSD.org>

 pub  1024D/D004116C 2003-08-14 Alexander Nedotsukov <bland@FreeBSD.org>
      Key fingerprint = 35E2 5020 55FC 2071 4ADD  1A4A 86B6 8A5D D004 116C
 sub  1024g/1CCA8D46 2003-08-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD87tOARBACkfv0/19ar/kUNsj2vL+APjo/cx0A0bubEmaPhwNuLOjtafdNm
 /pUULYi28lDVDxQJ8UM1voqrCcue+finCyy+k2L0nR37tlUA4t/+GH4gq4y2xL7S
 o/D5DqHDA0cTDAIQCbdD/rj3Z7nJw2Vkn3tAwZ6NUXV7OdLS+csbpJIjmwCg0HB1
 tzahpgegUe5XauCly+NXNMMD/3UcnNA7kBKSZMcuOVq7TkqYYvQZPoroK3yYcAZL
 Yo4WoPEyjtlD/ZpZVysQiSMxLXRHjsEbMAMZL7Tx/Sav01XUiBHBGDHXaWWVdqmg
 efxtBeoG7MZxAAXBLfcSeV0bjkd9oGWW/inHrl0NgEljZQqo1kbIEb5asooyT18v
 vZgjA/9l8xZdOlSJv7Ct+VGrfMStMmpBCn7IRSjeJRq2pNe0pbJtzXAnAwyrB62X
 gF6n7ONKdLk/WPihRdfrc4BZnNIWZU0q5P11rOENQEnToprAOYebhmS6cY0lx0SR
 M00HVTTgzsNVWDy9h+uOobicBSHPh2La7KGnFRtMb6pZFg5Y2LQoQWxleGFuZGVy
 IE5lZG90c3Vrb3YgPGJsYW5kQEZyZWVCU0Qub3JnPohbBBMRAgAbBQI/O7TgBgsJ
 CAcDAgMVAgMDFgIBAh4BAheAAAoJEIa2il3QBBFsAUoAoIGf7gn1DPL+Miw3/2W1
 YdJPT3TjAJ9LOVjgV1mZks+FjRdl1IETcJ4fPLkBDQQ/O7TjEAQA9yIaEvU/Vbj0
 L1xFjIOGEyM5vFvn5xP2LibOI7hUH+cMDaWkBgrSLqsI7k6P3HSTVWpkKUTl+vJe
 OJnIx1gFE/WJDPK5trnjzHQI9kWf6j8EREXCFuuvDy3QhuJiHTjB+I8IVYh+oiXl
 6SNo0ekvQd6KZlkPUXy8rczb8Y+A7GsAAwUD/iPYrIWC4xSX8kL6HFjaE2fS42EW
 iyfyb7slFSE2xtRf+xZyBa2Mu5XQsg+vJcSBsjrxpYdd+OuyTLuYRsYvuLZnB65H
 tTli1/ous2J56useJyeik9wJfFyZBlOtmw1QFLxELly+XgKiyGRNkTrws+smyFjC
 GWwhlhc40r824oWPiEYEGBECAAYFAj87tOMACgkQhraKXdAEEWySXACgwFVr9ZgH
 TYnmgWGXAmQWvJV+xAQAn2HlGDmOpuTDzfO5PvXOOWnFjvIt
 =bcPN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.229. George V. Neville-Neil <gnn@FreeBSD.org>

 pub   1024D/440A33D2 2002-09-17
       Key fingerprint = AF66 410F CC8D 1FC9 17DB  6225 61D8 76C1 440A 33D2
 uid                  George V. Neville-Neil <gnn@freebsd.org>
 uid                  George V. Neville-Neil <gnn@neville-neil.com>
 sub   2048g/95A74F6E 2002-09-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD2Gwe4RBACw78PVfE2fA9U0mISJrV1ohjdkzVTly0WQ/YwMgyB/J/Z/M35G
 zIc8yKi8YR/6QYGqgEzeKAhrUIDyBfudhaJ527gyR3Xi+QHgWMQDvd41NlqM5DBn
 yIVKj10DmDYjcHm29M1OHAkXKZT6tHCqp1dKFD7EXtY1bOakvN7TIKld7wCg6AS/
 iPmIvGE7wpFlcFkYIjjL4ksD/iKpKneEwB7dEksyDQX8l18v58x0lH334WDgRO5a
 X3Wlc4He8b3kWzBWK0z81XE8Z7ip0Io13LHhamLp1P1eDX4sWKQpJmdRtHziC9R6
 4GwW9P7aCUCCf91XxaYEU2j755u1Zby3gF1tbookwO1iXQERYuo3ZHezH1bkdRk2
 HNecA/9+HCfVESjRFPfOEVqljx+Lm5atTx5VX/D/6iprDUARn0YgW5xrwM8doeNI
 UxkBOUszEUPDpXPnMI5RWB+0siQhZl3yX+lUPtASrEj84rpOSXZtNPAkHit/iwva
 pW75gZjt9yN7IhVQVw8O2OMTRGNoWsshzKzznqxNP3p1JYYq/rQtR2VvcmdlIFYu
 IE5ldmlsbGUtTmVpbCA8Z25uQG5ldmlsbGUtbmVpbC5jb20+iFkEExECABkFAj2G
 we4ECwcDAgMVAgMDFgIBAh4BAheAAAoJEGHYdsFECjPS6hUAni/U8Zbrr+TFHLt3
 cLg0VWnWxCI/AKCNqxRmA/HlZLPRzhVCQODgfbOG4LQoR2VvcmdlIFYuIE5ldmls
 bGUtTmVpbCA8Z25uQGZyZWVic2Qub3JnPohgBBMRAgAgBQJDtkW7AhsjBgsJCAcD
 AgQVAggDBBYCAwECHgECF4AACgkQYdh2wUQKM9LtQACfTi75crWjtxxVJUmGSn2+
 CDnlCesAnRqM+XSv9/KnZ3O/GRtpkNwT9NCJuQINBD2GwgUQCACvJfoCKfRo3y1J
 kaisLLtSVsqCeF1mlwfBGyvD0Lu0VnDGuy9aHExafNEbUaW+OQe0YXtZeX70CUPF
 nizBcDEsHEj1pC9HoZCSoYXtqORBa3ZIUwz+jJbjHJErs7XM/EshhAollC14rXKt
 K7+UVCw5JkCmialF7LAyWgqeBilwtKUBpIaXquf0/qws+uOikcZb3UttamQFUW0Y
 l4KKHP24cvCOXSlx8Kl9l2rQzfedjQPXI98zkcR3SEjZ07cDs+mQOTax2OgVS3F2
 nDUEqLQmAiftHFWQ0h3RBpEYLGTNd3gXXxJPxZdR7YIBnxvJ7RZM5qGgZfTc0Jm4
 aM5s+As3AAMFB/0dVB40Fvk74U6mwHLMwEkzHiZoVVZPBUMsuqb3FlgZrMYmwa3q
 APNhPhWSO9pLQlPJ99nFFj1lRUU7OO/oihsdKLEfT2CT5tqa6fAWoiSQIKBBbkrm
 bQedeXPWtvJezS0FY17rOfK8242Lnq+djS8ihBxSKpCVbwWO1DPktu6hGzWQz+x2
 B91jbMfM9/n00xEkZ4Z2H0dSZNY2WKqK+MkqAiYf6uJBs7BZV391WWQ1fagCP/Tf
 HPM0gDnwFfqSJmxJzPm3upTmYgoSRqri7NH3Wec5pY15b67JFHMpMFbgauEsiDSi
 CCk4YxHfge4SMe6noPICAjN6PCkIMDldxi+ZiEYEGBECAAYFAj2GwgUACgkQYdh2
 wUQKM9KJgACgwzfFmUB4diy5sTzLVLE3TCqwnJYAn39ByQnv/FeLGSY/blYrVsQK
 aCpC
 =SotO
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.230. Simon L. Nielsen <simon@FreeBSD.org>

 pub   1024D/FF7490AB 2007-01-14
       Key fingerprint = 4E92 BA8D E45E 85E2 0380  B264 049C 7480 FF74 90AB
 uid                  Simon L. Nielsen <simon@FreeBSD.org>
 uid                  Simon L. Nielsen <simon@nitro.dk>
 sub   2048g/E3F5A76E 2007-01-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEWqLYARBADUgEaHYK73qi4nXVO1DfcVKqzWZw0lDYXv3mVQO74Y41hP7QV4
 IyvRuuWmKK0vm+ibh4WQTRGhqeSr+tDrgUIqs/tavDVx27DdBeOi5fQwFiyM0s3B
 1o3VOzfmW3nOEAEEfAd/zQJVrz0GG6ao22zFSVRHEpJle8QD/HTsZ5sWIwCgiYNX
 Ok6oK9IdCky3kl0xwE/wkpMD/jKoZaj2/rc7t8ZtwBf9mQFECou+SsM5YFFMx2JV
 nHShx/6z/d1PWu59fnPOP/t+QkqBa4ds5msot4wJFqsFwuTmtCYySsK8j9yBbh6B
 KH2Iyjwnr3IFU2PopIxzscuGT4EKbLes925X6tjCfx+r4uGIVSJ6Xzu+9jGXK0KI
 TZshBADIuS+wneCYZ1Wnc/cwaG3SMXaVTOkThQS+l66o3BfXX77TN0HbjB+/CmP/
 lWjcUv4tTYfmI5kQg4pRA7rSEsMBwec19CIy+mf9QD1HDVNGex1tGdGNz7oaOvwm
 oT2nug8mCt+77q4ESQOmfHzLjIQqKh9D8zX08atp7EVhHw2sH7QhU2ltb24gTC4g
 TmllbHNlbiA8c2ltb25Abml0cm8uZGs+iGAEExECACAFAkWqLeQCGwMGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgAAKCRAEnHSA/3SQqxOqAJ9qfsJx+6hT6qXy9k0Hkuto
 pyh+lgCfS+cAvWkzwcTlZwmj7xnVMqex1T2IRgQQEQIABgUCRao0HgAKCRAV1ogE
 ymzfsoOMAJ4qsIQaHkhYT6FB06o9Hjd0JElbzACgkPVfATTcp5dDhiry+UMCPxfl
 4Wu0JFNpbW9uIEwuIE5pZWxzZW4gPHNpbW9uQEZyZWVCU0Qub3JnPohjBBMRAgAj
 AhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AFAkWqMP8CGQEACgkQBJx0gP90kKtq
 rwCfc6UlwvCI+OQ8PV4Y7xVVNK8ZWLsAnjAOOQET1C1XacStkK9icK7u/n/fiEYE
 EBECAAYFAkWqNBwACgkQFdaIBMps37LD1wCgmeJUFusBpliqQMpOYaP3KL9/HDIA
 oJox4FwHo8yhvqG7ww92FMeknNCxuQINBEWqLa0QCADNQVSiZOL9KwsEGkCLtUGQ
 l7hmf9iuis/GxokTE/9aPYiCKx29wjo4b4pURS/gHdNGU70KNfqli96Q1zlS9CGY
 KhQoce0ZDOxpO/6ZZzaOtLw5x2/8M45BDJU45STx54+F/7Lt3hZMNMlNvjZGF/W7
 f5vcsPHqGAyFjDkjuL8QQqhsbaPsCTlqngFYh8/4F06+cd4GM85xGu/LM9M91TP6
 9ulvz4H/5TiUNvDjt1e82soRhwY9bwHxq7b6s3Q4Wgwo9l2Y2oW4T+TVpcCvgu2D
 vUSXo4U1ygPFl/CQ2Mz5IEp7e0aanzOU5FhMeEoAkJewRq5747noEcnygiPUuoOT
 AAMFB/9KyjWpXwovVjmNITIB1JPuZSO7NLhA10SpeFz0YXJVIiteQcHnUHOUn+7i
 tO8XbOg79a2Pz/5tLuX8YqNQQjODFKpFnFymlFr+aPpzEJPoXWHG1FkcM7rjmLpy
 gj6eokmEdQdr5CflY+IkJMNC0DxDfhsI17fQVAsaScWgnmSgfCNYT7uPFw8K8omH
 WawyIlZuAKa+l1Q03IFt0oDLqLrcMK7DnSJvSkyM7WcH+3ObsMaCXVziD9LOlW5B
 M3mZyXS3Z5A8/menv1lRYm7kxCt17HEmhxnHM5waqFyK0y++X86lNpwmBQZgzTN0
 2bCE2wlPqyT1LCVu4s9RAyET4hy6iEkEGBECAAkFAkWqLa0CGwwACgkQBJx0gP90
 kKt1pACfS9WAfr2P8Vx/ps3WYdd8QYumnQsAnAwoaIe1d968x4FIKOewpptF/JdB
 =ggBj
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.231. Robert Noland <rnoland@FreeBSD.org>

 pub   1024D/8A9F44E3 2007-07-24
       Key fingerprint = 107A 0C87 E9D0 E581 677B  2A28 3384 EB43 8A9F 44E3
 uid                  Robert C. Noland III <rnoland@FreeBSD.org>
 uid                  Robert C. Noland III (Personal Key) <rnoland@2hip.net>
 sub   2048g/76C3CF00 2007-07-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEamZvMRBACgUM3B+Z/7yw5DtYP+4jNaSvvJBNPtLbHeCcXzAytD/Le3Tx/g
 /joJFJZS92agbQSt6p9SPnw1xguQ2YMdBQ5LFbE5ZgrXnDX9JUWjhyjTPKRbkFPx
 5G+JkTG9I75/ZVq6AhcOjXwsq/mkANhu87uOPRO2Uf/e01o3CplYIjRVPwCgiqwz
 wycuIxPvmWX3ao5gkV5iUgMD/2cVqZQ/uareIN2HF559LZkfjGdBA7U4H1cOD7hr
 pK27HTNcSAMpHP368AY5nSEUezQ8iOArCxx2xYMIvyxeaQ5wFgQ0kuwb21JieUdm
 6+cQ3uynJMSVVic5T4qoyC3mpu00VNBpCLJIk2zLk8CPDPQot6yB41622xXXHaix
 1efSA/9oJBP+6Ffdrni7hxAEgP2uG/lXQ/oG67UljMC1LFkiV0irE9O6G5UXFEVE
 FOQfXmXqLRoIjWaqDLdfADerSl6jeva70UfbiGfxHHkbltMZi2v3Xd6H2wmZKcSl
 RDYhdvNIhNDXfGAoaYneHN+JWYPDYebG5MyN1QyU5+kB7n7grrQ2Um9iZXJ0IEMu
 IE5vbGFuZCBJSUkgKFBlcnNvbmFsIEtleSkgPHJub2xhbmRAMmhpcC5uZXQ+iGAE
 ExECACAFAkamZvMCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAzhOtDip9E
 47ceAKCI+rqu84IxKD8Rb+a1hL/+NqHotACeIg6ZGwFCNA2OOUchxF3hXvJ+mfqI
 RgQQEQIABgUCRqZ50wAKCRACwq9DxPQf7Ay9AJ9xShA298xcySmevKvX8sWC3LQ4
 iwCfbsQ7+AB2L4j25YgHK9CjF6f8s2K0KlJvYmVydCBDLiBOb2xhbmQgSUlJIDxy
 bm9sYW5kQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJIhOEYAhsjBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AACgkQM4TrQ4qfROOE6QCcC085r5aDgvzVDPvrZU+pSitB+BgA
 niwufou7zDg3AJGyf1MeuuFaZ1r9uQINBEamZvMQCACOvnyHYPRaWC7fFfrdqGxj
 C5ZnjHjYTg4vIUgVmPE096H+WflesmgOZ8bQH6J+3Pzpf+l6HimYtF+gMvDLIz0I
 HD1K2z75Ne6WlPKh8Is4lty1+knbOIDLqCSgFWcU1hAkj+Yr//oqUTlJ9qIrghoj
 L4w7QdMHGb7jMMLL/VHg+MXnQliD/UFAk9oF+/UbTfQwsanJXaydby0yjmXecyMo
 X20orSA/UKJe59Rc7sGOHf7uFoVByqsWQ/yesRmVsjxMNFGNMz1ekKFKHop7xcAj
 8DLYnrvdilD3MuC28USAZjSa2b84+oQJADQL1r+wT1bqWCEUvaIqf64b3Tpt8bIf
 AAMFB/9J9pOfPljyE3D0jy2azVr41mK7FG32FBpz4S1SIeq8DAz9OI+XuCoXd2Ol
 FA6oSepyBxG1Cz2dzhkobE3COPzwS6jRzPdsmZtkJ1Lp/t7w0FSMlOYqNkdD9OCb
 OxraGoL4PfoPgCsH80dY/On7e8COQs6rRPTOmx+FGqkdEaNXVyF8A7EoIUNi881j
 Cn82QjfR4pwFJ4KNeJRt+kBVE2j//VmsqlMcc1xBPzSwcO2YaURhF90qB9ql+bZx
 ENkoYgqdbkQwcPugdKJm4GzaX7OhdGprjH/E7Yj7fFmXhE2VsyQ8heGjKrRHgy/g
 4mTYKTTJnYHSXO+MThJ6JPwcgHxUiEkEGBECAAkFAkamZvMCGwwACgkQM4TrQ4qf
 ROMFAgCfYpxRT6ReISfiSqGLMBQndCh2ol0Anie8hp/BanOvY2jOiUUcfvyhIqrZ
 =bQIC
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.232. Anders Nordby <anders@FreeBSD.org>

 pub  1024D/00835956 2000-08-13 Anders Nordby <anders@fix.no>
      Key fingerprint = 1E0F C53C D8DF 6A8F EAAD  19C5 D12A BC9F 0083 5956
 uid                            Anders Nordby <anders@FreeBSD.org>
 sub  2048g/4B160901 2000-08-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDmXNAsRBAD0WcmPy11DRvDsEpadBPCATmPrvAImfj5XjcxBAJlBJoc9fiq4
 8OcnipVdId6STdVKvB3K3h9aNsb75+rD/W3nMi8MumjyXJoHAf8d68cnjppizcPd
 uQPOy76lkbiyV9OYBtaNQqmU8hE8MTr5Kew9NBCoC4SB4NX8kVh8iglrZwCg8J4F
 ltBYDz+Z5ZGoh54fnYN6IAED/jO7ISCvWbFtnzCw1FOghcgueqrWoy0OYKq8ZfuO
 m046fuIlHcswJOKLLexTajsYAC0WWe9H3SvKvv1etexMh5SsrgWTsSuIvlPfG4oj
 D5vIYqvH5NiqJdh9qiFEzGsv44jgESDVy9qaErbXRVe9htuRZqbtEPnB5cRRwTr1
 WhfuBADW1VLXj3UGw4OeBBd5KPIYXCx7RKS4nfrlBCqMcIaiD+K42U+7PXEJB8uM
 2sJ6uRYs0j4tTLBbDC2TC1QfT5NIVLG5wWkIh+jL7PODH+i4LF8n0pQyuLwJOFAx
 s6RIHNPB2fdI5sqB9lMIBszlb896wVJf9PPWFAt/5Aekw7eTLbQiQW5kZXJzIE5v
 cmRieSA8YW5kZXJzQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI76xZsBQsHCgMEAxUD
 AgMWAgECF4AACgkQ0Sq8nwCDWVZnYgCg4fzk40pYLg3iNayO9dDNp4yHS/MAoLi/
 WCYhNOS0TMpap9SQXC/2e0MZtB1BbmRlcnMgTm9yZGJ5IDxhbmRlcnNAZml4Lm5v
 PohXBBMRAgAXBQI76xekBQsHCgMEAxUDAgMWAgECF4AACgkQ0Sq8nwCDWVaoNACd
 HR57Uuyyti+OqVr4zaVEIgg+bYwAoMcFR3xdqArQmp561541p+k1IBUWuQINBDmX
 NGsQCADRkDqg2uW9mn5YCXlzx9KlhAfPRny6kF4+B+ga0ZaIzJng2pY8EsAxKn88
 yH6ERs/PYdsy/AyksG8vzuc9CalW8JFEc+kvtJIL0HhBonlInaeUWHPixGEcOPcW
 ab8dPhW3zfEgOqquky21d8Zg+G3Z29tmKGcYKSQgt6W59z7vITK7+gv7tOGp2IpZ
 1kGqPZn+JqvB3n/uWo3rTxOGA/tduMwfESA5gHmEzKmU/17yIkE0SflKOp0VIGdl
 Fp1A1ULJDDVXjtDkxFvZ1I+WpqF7p9FCgy/OHUfUa0py3uHIEKMahqpAZ9e8D+GI
 nGizPR33ZY5PfM72ABXeGhFnweP/AAQNB/9HPBzxoJJFJNLyosSlI+Wkmh51K/nC
 EawQG6a+tgL6cPHgJQkgthPUywkI+2g7SUSurgPz0hRCPg2PjHP3PwVhjKzUgfAj
 y9eVnu+JSpst/a0Y5LEQdNnwG+Y+Cs0q9xj4T1VXw8B9fA3y1wS1a13zCQjfLrZP
 ziIGjHIBvpOFrSU3ML1rRaVfQpm2wQXsGHzjkaZq7HQy2EOVLzik34XkPBY1DrnY
 nSEwSurfjTrKTLNYsN53xCGwJ2w2347qXr04j87XhRmGCJQ/Nrrin4z4LQ/zNm5Z
 bErlts8PAfR13kqP7rx/H1n5obhpOoXUqb4Rm94c0r/s9JRah9ppgADRiEYEGBEC
 AAYFAjmXNGsACgkQ0Sq8nwCDWVbTvwCcCG0X50Tq7V4NeGgREttltmR7UlYAoOgK
 1OFsIdCCq6JjrwvfN7ry3pwc
 =clge
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.233. Michael Nottebrock <lofi@FreeBSD.org>

 pub  1024D/6B2974B0 2002-06-06 Michael Nottebrock <michaelnottebrock@gmx.net>
      Key fingerprint = 1079 3C72 0726 F300 B8EC  60F9 5E17 3AF1 6B29 74B0
 uid                            Michael Nottebrock <lofi@freebsd.org>
 uid                            Michael Nottebrock <lofi@tigress.com>
 uid                            Michael Nottebrock <lofi@lofi.dyndns.org>
 uid                            Michael Nottebrock <michaelnottebrock@web.de>
 uid                            Michael Nottebrock <michaelnottebrock@meitner.wh.uni-dortmund.de>
 sub  1024g/EF652E04 2002-06-06 [expires: 2004-06-15]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 isNkDxI+R1w=
 =LE25
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.234. David O'Brien <obrien@FreeBSD.org>

 pub  1024R/34F9F9D5 1995-04-23 David E. O'Brien <defunct - obrien@Sea.Legent.com>
      Key fingerprint = B7 4D 3E E9 11 39 5F A3  90 76 5D 69 58 D9 98 7A
 uid                            David E. O'Brien <obrien@NUXI.com>
 uid                            deobrien@ucdavis.edu
 uid                            David E. O'Brien <whois Do38>
 uid                            David E. O'Brien <obrien@FreeBSD.org>
 uid                            David E. O'Brien <dobrien@seas.gwu.edu>
 uid                            David E. O'Brien <obrien@cs.ucdavis.edu>
 uid                            David E. O'Brien <defunct - obrien@media.sra.com>
 uid                            David E. O'Brien <obrien@elsewhere.roanoke.va.us>
 uid                            David E. O'Brien <obrien@Nuxi.com>

 pub  1024D/7F9A9BA2 1998-06-10 "David E. O'Brien" <obrien@cs.ucdavis.edu>
      Key fingerprint = 02FD 495F D03C 9AF2 5DB7  F496 6FC8 DABD 7F9A 9BA2
 uid                            "David E. O'Brien" <obrien@NUXI.com>
 uid                            "David E. O'Brien" <obrien@FreeBSD.org>
 sub  3072g/BA32C20D 1998-06-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 wFQ+RbHSXThyO1HZCYdfSaaYVfrrLv5ooTBRHzP5DlSXk13nddBOE4g/AwUQOT3B
 NOMeMj1ArjBSEQKxUQCfY3XjdW3Yun2hWKmKaPpXDBKonz0An1Wr4nbjBvlsovrs
 eysWYs1ovDgKtCdEYXZpZCBFLiBPJ0JyaWVuIDxkb2JyaWVuQHNlYXMuZ3d1LmVk
 dT6JAJUDBRAw9rraP9k6yEHOCYkBAZjmA/9lczxVp0UjLAXM3jfErQv2dzpLDAiT
 QVp10pi+a8mAzPVCnmCfcNy4fQJbInAfe5FC8gxBe9DnsjLfHh5vlZzDHANpbq5P
 MLW5C2igBoAg0Im4RpevDhD664ZgYgB6HXHhPBSB3Gaarnpx+R6JpfDBolSg6Boi
 IN3q+kzftlTaDIkAlQMFEC+a5SFlYKmsNPn51QEB/tEEALKURfb7Y7metDHx5oV5
 LybWyV8cTJKINUllX8HDnz6zZQ7bMYlQ0qsqRqEIDMpMk1tojT+/HI4te21uW0T/
 FCemdm7leZM6g38Ne358L8jY/34iz0bIFeZjDzLoOKW5C8wtG/N88voiE0grVR3e
 iFEmtwWT5lRaV+DmKYQ4kXxAiQCVAwUQL6UVDceLqoSSZB6ZAQFokgP9G9xfWcKj
 CxbEr9TAEDsKIsNkKQKEFlfqGuAjSVWOBqEIyG0Wb1pZEQKHI379aEK9nVNSsQ5m
 Qk/E6JRvYENt9q5uJ9mp6+wPUVYt83YL7uv1YJJSy788tdr1esutgiAeLNmNMmOg
 Rw3vz8iKYJozmSyDSK/HwHS7zZ2Q9K5hpDCJAJUDBRAvoGvwym8rg/wMAtUBATFj
 A/9h8jSR5py9wPy6WkjsYQbml8B2fVjsLzoQbMI+b5IFYeDkRYLTnSLJKzuK8zHn
 1aFeXIhD0CRY5PC9jMAu84I59iE90x95uLPAH00rSJam2gEqPovRYcinADluivOT
 XGAn5qN9bKlmdsFNLMIFs/rohnIFab7wG3+t+i+8YYY2YIkAdQMFEC/kX5DT8j9C
 J2rqEQEBOFcDAKcdXpMcMjw+uSDwNc0pjOEYkfnpaW6MKnOo0qbwALmuSn/l21+J
 eypp1kr9VeWKn9tcUHucBHyTzswxeu21jI/KUUIRzuQsupgnop5LyNNrpDjxbQvN
 uiBIX+jAVQvxsbQoRGF2aWQgRS4gTydCcmllbiA8b2JyaWVuQGNzLnVjZGF2aXMu
 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
 lSVmAKDF3kyQAZDAyz+21MQJnmJ2O5dFJg==
 =cMCa
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.235. Philip Paeps <philip@FreeBSD.org>

 pub   4096R/C5D34D05 2006-10-22
       Key fingerprint = 356B AE02 4763 F739 2FA2  E438 2649 E628 C5D3 4D05
 uid                  Philip Paeps <philip@paeps.cx>
 uid                  Philip Paeps <philip@nixsys.be>
 uid                  Philip Paeps <philip@fosdem.org>
 uid                  Philip Paeps <philip@freebsd.org>
 uid                  Philip Paeps <philip@pub.telenet.be>
 sub   1024D/035EFC58 2006-10-22 [expires: 2010-10-13]
 sub   2048g/6E5FD7D6 2006-10-22 [expires: 2010-10-14]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 l8RtrT+2K2WI9QQQEQIAtQUCRT5aCIcUgAAAAAAQAG5zaWdub3Rlc0BncmVwLmJl
 Imh0dHA6Ly93d3cuZ3JlcC5iZS9ncGcvNDI2NzEwMTNGOTRBMEFCRUI0Q0U5QjZE
 M0RGQzJDNjJBRjc5RDI5RS8zNTZCQUUwMjQ3NjNGNzM5MkZBMkU0MzgyNjQ5RTYy
 OEM1RDM0RDA1LmFzYyImGmh0dHA6Ly93d3cuZ3JlcC5iZS9ncGcvY2VydC1wb2xp
 Y3ktdjIACgkQPfwsYq950p5ImQCeJo41Qrs93qfxYgL+GsMhmoV1phAAoKT2UTKH
 OaxnC4TDwXz67uxbP+0EiQEcBBABAgAGBQJFPLwpAAoJEILS9urEu56fXz0H/jGb
 lglqrcuH1KX12m3OTCWr8exda+NQ9fqaLd42xMHw8l0wEjq1hB14J+vVEQBLqcaP
 NA8YUT6rF5feQwZCSfvTIZtxIYiufXuLPnl8xmNGWMVMjqraSkg6eYlwAHYD//R5
 YgOXuY8byDKM2OyRYwAHSCDGGQyObdxlKBnBTiPskubLgTEKtluAiYRUPlLJOWC6
 TribgLa4o/+1P0fnb+qUOelSE063CX0toVfxZGUptMraSxm8M5AWnYkFHtqSN6/R
 f8zBkqM/R0cowKJOco1eSx2YQM3qrBVPLNBV5Eyf4w22M+5g83TpDocZJ438Vlcd
 Yz5JxFHPl8avzRi9eD2JARwEEAECAAYFAkVXTTYACgkQLtRdZmGgc+nvfggAlq4o
 amMXxVclsWrL0O/BSmqyu7cvONkT77IhAs6olFvHJDVjpMEafrXCe2NH3/OWbxZv
 8KK3into/X1ex55ht0vuhNax+hR/GUYY/MF+C+snZgWiyvYAmv7zQw4UQG3RB30A
 tODe6jPozNwzzVzGCNZ9w5G1HqIIFrYJJs+nLpvdIE9CPpoHVcZdZG3vx0QpIUob
 3DpihUnRje/ieIioIoD9e878g7KvkbOMqdCNrgrgEl7VvSqnoeWiJ5bpAm5lOAkJ
 eDE7vEtqSHhI6oE/UjiLVMb+qAbmnF7q2Apg2Wpg09tR6my2PJj38hwkla/MX9bt
 meG4gV8AM+MZ7LqnsIkBHAQQAQIABgUCReNH2QAKCRDo4GL2DcsEMV1/CACcggZE
 u0pl6VGj8O3MJITaRI8MPT+5n1pu7Hx4rH7dr9CX439eCP5SHRka9WGOVSSc4FAs
 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
 ckSXC5QqAJ9ic1QAEQxO4Us8nb7XDma0mgpc0gCgpug02QF2GHfWZcd1uRPyytIE
 CaqISgQQEQIACgUCRVSzOgMFA3gACgkQXyyEoT62BG3o2QCeP3ANQeCZqkeYOY76
 KBkmb8mvJYgAn282Syns2QBXaRdh32CSowOjVUK2iI0EEBECAE0FAkXxgyVGFIAA
 AAAADgAvIGZhbGNvQG00eC5vcmdodHRwOi8vZmFsY2FsLm5ldC9ncGcvMHgwMjFD
 NUJEMi0weEM1RDM0RDA1LmFzYwAKCRCnfEveAhxb0gWyAJ9Dvb+0THnTnzjpujK4
 6qx3w4GjbgCgk7+1sjtvEacRzzsFXpRB1GtRNmWIvAQQAQIABgUCRe++kgAKCRDt
 oh6UtWVxbx41BP9qnNahfVcdoIUx+SW0qgniCvpkqJe+MEZkW+Uctmc1MHMd0Isf
 mvLwsNJLVSKvbsnWhroGpHKas+L+IQ4/c/InfQ+2cgU2lYueqfJNQeL5KXVWvfuw
 8TsLDO89WNWRaxqPAmh8zmq0g3SMvZeYGHfUoTamCbGIFdP6JTtD/7Jr5u0A/VQ1
 NtHFOnKnyQeLxKiUE6VcqkCrHwZDU0+kNc3RiPUEEBECALUFAkU+WgyHFIAAAAAA
 EABuc2lnbm90ZXNAZ3JlcC5iZSJodHRwOi8vd3d3LmdyZXAuYmUvZ3BnLzQyNjcx
 MDEzRjk0QTBBQkVCNENFOUI2RDNERkMyQzYyQUY3OUQyOUUvMzU2QkFFMDI0NzYz
 RjczOTJGQTJFNDM4MjY0OUU2MjhDNUQzNEQwNS5hc2MiJhpodHRwOi8vd3d3Lmdy
 ZXAuYmUvZ3BnL2NlcnQtcG9saWN5LXYyAAoJED38LGKvedKe8vgAoJUZ/vyqJjh9
 O9J8v3WCn8OuBvUfAJsGpOOA7zm+c1tUK/ThAJ1LA6YPH4kBHAQQAQIABgUCRTy8
 LAAKCRCC0vbqxLuen3zTCACCuWXUoJQqS+pX4CX6gflKWf9Z4aHfHojtaJlo7tPQ
 re3dO2YB+5UpByiYIVNggrk8Im0nHnL4Cwt5OEmWBl1Ux766NH1IuWQWg4wwBOMt
 l4o2NrzdYX23+AZsRlnNQI/r1b9E2HBzDro1Lh1tNkBA61OpGTOm9Mfrd+yARqq8
 GqkSYAcDFtAiMuaYTYaCEjmcCKyehrjiHLXGBUdAL2GMKyqhF1FyQmhLw1WiNeaD
 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
 Ht3BGEU4sXrZQcq46mb8/z/p4Ij1BBARAgC1BQJFPloMhxSAAAAAABAAbnNpZ25v
 dGVzQGdyZXAuYmUiaHR0cDovL3d3dy5ncmVwLmJlL2dwZy80MjY3MTAxM0Y5NEEw
 QUJFQjRDRTlCNkQzREZDMkM2MkFGNzlEMjlFLzM1NkJBRTAyNDc2M0Y3MzkyRkEy
 RTQzODI2NDlFNjI4QzVEMzREMDUuYXNjIiYaaHR0cDovL3d3dy5ncmVwLmJlL2dw
 Zy9jZXJ0LXBvbGljeS12MgAKCRA9/Cxir3nSnia6AJ9WPIdOlKIIwOeSCBx0uYlM
 UM2tQACfQKbqhzbKM8RyO3QXO4XE3CybJ8aJARwEEAECAAYFAkU8vCwACgkQgtL2
 6sS7np+53Af/RSNZhaUC0B+D06crMIfkqfA2c2K6EJatcm9c7mXH5VLXKkkqjH7x
 80wOtDi3GKzZLOwCkwlk6d88eISpx9dBMipxUUlJqYC+a9FMWMaZgcLd7EPuDTuq
 kHfCHQLpPkMDXFIj+XP8T4pt3pdG1a+eoGUdz00KypSz2Fk64ylznd1XHEdexlW/
 I4E1ZAlWEmcLENobjarXiIHzcvJJj9GQXLCxO+b6H9Mew0OBLxcJZJzrurclo7Nh
 Nwh0JSEwkoB7xS6jerfSndbeKg6mJ1fGmmhkyvhe08/zv4ZyzP3rtArBqJq4sPJ3
 zCX/gqqkfm6Q4OMD8scaCCs59x6fdubPT4kBHAQQAQIABgUCRVdNPAAKCRAu1F1m
 YaBz6WyGB/9TroL46iD2Ya35k+/eQVEJzpRtNXZZ6BkSismkWY11psNGiYFyTJuK
 B72s8g+BAij8XmXnywrZYukz7IdHwWa0avkMGQ7kne5ATn2629UTbvQy9/ceStTZ
 mWjqTP1+g2ERDMmXM834cSimbFJBCW1SZllRBqchTBBtSrBLRomBOquEha+wffpe
 mMRG7F7d3ARGFsXG4oWgOV3BiKs+J+PV8ajolC1jDq7Tnrdy+FbOZJunkwdGmvKH
 GU1QnjzZV69+g0dzOif3gKi1gsrirce3YMQTpayINt3DZKdZw9ki3DCrizqTJU5h
 huY/JFlZ8bj4EwWDbXY1Mefy4zwZNp+8iQEcBBABAgAGBQJF40fZAAoJEOjgYvYN
 ywQxp2UH/0x7Yzrj4RAOEVkmBl514m/OqBB2++EftWhCCj+Qpa1diejZKol7/+xY
 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
 AAoJEIwl7g8NwLfWE6YAoMPz6GU0qjr+TKlYphjlJKZtHcaKAKCNNgXR/3sHhcc0
 G8z0awGUymF8mohGBBMRAgAGBQJF6t/bAAoJEEHcHJByRJcLjTQAn17ykf+m0+RB
 N2/Uj1UW4M2yL6g3AJ4/hfu8brIfsJ0HMxpeKEtVRvQedohKBBARAgAKBQJFVLM6
 AwUDeAAKCRBfLIShPrYEbaNVAJ9dCSUkmKdSi88RxPKDhen9M1CBYQCdFRhJlyA6
 +pCx6sKas7bv6ZleLAuIjQQQEQIATQUCRfGDJUYUgAAAAAAOAC8gZmFsY29AbTR4
 Lm9yZ2h0dHA6Ly9mYWxjYWwubmV0L2dwZy8weDAyMUM1QkQyLTB4QzVEMzREMDUu
 YXNjAAoJEKd8S94CHFvSVUYAn1VOGjali5cGBQBcO2OXXepNIS10AKCckhrCG4Aa
 BGfhoWdJJuXSEpTCfYicBBABAgAGBQJFVcyrAAoJEB9/qQgDWPy9kLgD/RICpKsH
 41qM1mt6XZeO66AZXjo0O1yB9Nl5XSBPiE+Rs5wDfLMheFbbgAOwhfTvwM4g7eBi
 Lb0U77DP5uCK/8rvsIowhJYmwJaaQrc4SzQuiIHqe22ybUOOcP68NBRozASuecg2
 3hlmcNNvHz0I6ImX5Ql0QpgT5RYSxupejuoPiLwEEAECAAYFAkXvvpMACgkQ7aIe
 lLVlcW9PAgT/cYFUQ3RsdPPpidzqp03htsyx4Rj91ugKmMSQ3uciUKmOdpJfAr9P
 jE4eQEMg/q1KHOxLGlOHjpYdlNgGOsEZHXIGyNFbKdCy6iPb3/uhfEWXcKVMEkr2
 uKN9bgQ3xMHR3LnmqIwr8/f72yYXx0MXYN5TfsDdG2gnlfCAjmWeZDhdoBRwOnEd
 C2I6Eh2QKClbgGSu53V/SSskplrypMn/voj1BBARAgC1BQJFPloMhxSAAAAAABAA
 bnNpZ25vdGVzQGdyZXAuYmUiaHR0cDovL3d3dy5ncmVwLmJlL2dwZy80MjY3MTAx
 M0Y5NEEwQUJFQjRDRTlCNkQzREZDMkM2MkFGNzlEMjlFLzM1NkJBRTAyNDc2M0Y3
 MzkyRkEyRTQzODI2NDlFNjI4QzVEMzREMDUuYXNjIiYaaHR0cDovL3d3dy5ncmVw
 LmJlL2dwZy9jZXJ0LXBvbGljeS12MgAKCRA9/Cxir3nSnp05AJ90DnV5DBT3yYYg
 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
 ea2QDDN2P5fNexsliIqIRgQTEQIABgUCSZapQgAKCRBYgr49723CGjImAKCHOGhU
 +N1wOTBU7s/iSbT2dmqHbQCgy+wFoFyglknK6Em6cCV9XyMqCWqIlAQSEQIAVAUC
 SZfb0SaaaHR0cDovL3BpbmRhcm90cy54czRhbGwubmwvcG9saWN5LnR4dCYaaHR0
 cDovL3BpbmRhcm90cy54czRhbGwubmwvcG9saWN5LnR4dAAKCRA61vgRgwDMAqYJ
 AKCUe9AkTOK+4n85grnkhkliFYpWRgCdFk/sA4D3La/mQQF+22b0us/93LuIRgQQ
 EQIABgUCSZdNeAAKCRB5tCnAg1ZjWSBeAJ96VEru8vbBK0wu9a6zDlpRdHFZXwCg
 0SP89HegT2PqvO+MGg+u/Q35KqSIRgQQEQIABgUCSZg6jwAKCRDVybdRxGUyJ4al
 AJ9ujFGF+jKHnzotfS/TpJ4DE47qIACaAxj1CMWVK8uBqNsRSpdnBjcCFNCIRgQQ
 EQIABgUCSZnEPQAKCRAtzj8oNtTk9db3AKCAopptnFQ4azphEhFA3jicMwzRZgCf
 epstTTM0FT4DJ1sqM4aQTaNx3d2IRgQQEQIABgUCSZsgJgAKCRAJgdtm+JTkyMEZ
 AJ4tgMWJOK4vxJzR3khy4X23yz/YMgCg3TK+6c4Q3LtrnDkIRoHT1XR5K8KIRgQQ
 EQIABgUCSZsyzwAKCRBK2x+Ia4hUQ02fAKDCCWICugRtfV00EetrGd7sm2B+hQCZ
 Afv46BTUaTA5xEbj4ZXztHtrTvGIRgQQEQIABgUCSZ3C2gAKCRC8dDys1l6elO7D
 AJ99gIp5Pk0j8/hAWz7sYXJuQ+bzHQCdGfAEk0FckcLBbHaabPKTyNk6aiKIRgQQ
 EQIABgUCSZSa2gAKCRCQNcN/cCQH95pUAKDHR7tfF9Ne1eVkRYB36kkNoC4d5ACd
 H+y4zpF5cM3GNfeoxoQpOFMnYF+IRgQQEQIABgUCSZ8yxAAKCRCB59WGOBmFTgRL
 AJ4tcnL5xEJbB4GHqqwOS4ZFOVmE0gCfdZ5gN24aPFkJJkfhyaury/XbWPOJAlcE
 EgECAEEFAkmsJN86Gmh0dHA6Ly93d3cuZGIzeWRoLmRlL35kYW5pZWwvZ3BnLWNl
 cnQtcG9saWN5LTIwMDkwMjE0LnR4dAAKCRDe6rvUuzDONbU+D/90fBcNLxIIVapG
 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
 y2QsdOtKMckN16UxC4sajo5/VRqI9QQQEQIAtQUCRT5aDIcUgAAAAAAQAG5zaWdu
 b3Rlc0BncmVwLmJlImh0dHA6Ly93d3cuZ3JlcC5iZS9ncGcvNDI2NzEwMTNGOTRB
 MEFCRUI0Q0U5QjZEM0RGQzJDNjJBRjc5RDI5RS8zNTZCQUUwMjQ3NjNGNzM5MkZB
 MkU0MzgyNjQ5RTYyOEM1RDM0RDA1LmFzYyImGmh0dHA6Ly93d3cuZ3JlcC5iZS9n
 cGcvY2VydC1wb2xpY3ktdjIACgkQPfwsYq950p52xgCfXZth5pnHae2J5+Kc2Eoh
 MYzW7X8AniUizIhcHb3zAim3F9zYAj3tGxQXiQEcBBABAgAGBQJFPLwsAAoJEILS
 9urEu56fmYYH/i0vpRRvs0U4yC6mjQTCYCnRRK0F3WXaQaPQpd2qI45KpMnVS23B
 ko/OUPSwlgSIkBkvAaep53EpAMNqbzDjrxYvungQdG5yckxVsuJPCfg/bEW8Eq5u
 J2T+2u8x+Xns5keaEWJVe1MqOtyxe1v4r/gZkyowe3rHAS54/rZZH/KJTA5KWW0R
 3XqRJdWmybPmwdUqdA8DotHthF98sJ6gpNeJcVYYjB/yJEexji1EbiTX8HJJ/+dk
 rKg4m7SUzIOgF7pW4JmK0u/CE1Ds9QT4mjocNQIMIXGmZE+0p95+5V8H1xRRS5RU
 Jjj13bCDBMhn+FygcllVbg04RD/jqFWEXraJARwEEAECAAYFAkVXTTwACgkQLtRd
 ZmGgc+nkzwgAjYIAVqbrUywYgywoww51I5pr6No7eacWeo2ck6yzK1EkVcNEYwEA
 ifFH7QbTLq5irzaTbhqWxzsturv4BV1lN//bVS/e0wlJLo0LMhwzpb6rSHRFk8d1
 Y4JtQFORmML0Nv/bSOfN1dAZ/vYt/mf9WzWU70zVZCX4jZaiQka1YXrZUnD9X1ZP
 wm7od8cE1AnhN+DwW2Wlpc9dYS1p2DS6SFf9vuTo5URC4R2qx71lZNB3Bg+nLoMr
 gRoRp/5CBrj8gfpvvPfIgBXSB4DpBRGyZqxi1ap2x/SfGH6jxRrAGZ/hUcdd/s9U
 BA50WVGQBGo4kR5VLtm0DcQeMuuQ+CAZU4kBHAQQAQIABgUCReNH2QAKCRDo4GL2
 DcsEMUPaB/9cw9jOdvGOaRsaShiPqVnid9IC5dntKZQ3z7+nvMDFAXT22ceK6qHR
 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
 =srgn
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.236. Josh Paetzel <jpaetzel@FreeBSD.org>

 pub   1024D/27AFAECB 2007-05-11
       Key fingerprint = 8A48 EF36 5E9F 4EDA 5A8C  11B4 26F9 01F1 27AF AECB
 uid                  Josh Paetzel (BSD UNIX) <josh@tcbug.org>
 uid                  Josh Paetzel <josh@rephunter.net>
 uid                  Josh Paetzel <josh@pcbsd.org>
 uid                  Josh Paetzel <jpaetzel@FreeBSD.org>
 sub   2048g/E0F5996B 2007-05-11

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =Xmyn
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.237. Gabor Pali <pgj@FreeBSD.org>

 pub   1024D/9E3F9BE6 2008-04-17 [expires: 2013-04-16]
       Key fingerprint = DA0B 2143 0FC8 EE5F E211  D329 7D4B 6E18 9E3F 9BE6
 uid                  Gabor PALI <pgj@FreeBSD.org>
 uid                  PALI Gabor Janos <pali.gabor@gmail.com>
 sub   2048g/A780C60B 2008-04-17 [expires: 2013-04-16]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEgGzt8RBADdmkWC/Q4tpLhYpw9oidgWjyRRx/MgPRrGhtAvVdNTjbVoT4bl
 5e+v3CHoBih7KIh0BVQrux+H4UJ1Fou1wwwCrPH6ismBR5P9iZEGmBR/K0+1gBph
 /aUBANM1QG1FpAKMsYytqXiNk7mH/+oxomsbXBg8ZFGzlOWCwp3gvMZBGwCg7UY8
 YtV9L46nZMFIfzlj/tkNzh8EAMeF8nLv2qFsBT3ihYJRb27c/GtsnSUCQgwU5CVS
 Zx0QVb/zpy0syLHO+AeJnUIQWBKOhPpysXRlyMpjDlPu2b/VS9av01uLeHCCR9YE
 G/Jp4mCNswD0RLoQh0WrNtdr0kR0htr8mZrkRbZo+YoZPCdp/lD5JNq6fkS/Dgc+
 OGBsBACIOunHi0iEMnThJNznfLSA4hmjSdkrI249U5Ie8KfA5aXxaCX5o68tMgUV
 s/9hUBIc9cKoAkUf8t1XEADTik544HYm9FNULU55K1yEoG6dQrVm1HYVSl7uklE2
 mHkkg15nqapedChp2a+UhXYK4IthrBYcI4YVvQMBsMIFvo63krQqUMOBTEkgR8Oh
 Ym9yIErDoW5vcyA8cGFsaS5nYWJvckBnbWFpbC5jb20+iGYEExECACYFAkgG0YIC
 GyMFCQlmAYAGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRB9S24Ynj+b5rQSAKCs
 f7zv5XU0wXzKF9Y/9kIH2CKg2ACcDIvhQGclbBZy1NWr96IEkesPVd20HEdhYm9y
 IFBBTEkgPHBnakBGcmVlQlNELm9yZz6IaQQTEQIAKQIbIwUJCWYBgAYLCQgHAwIE
 FQIIAwQWAgMBAh4BAheABQJIBtGPAhkBAAoJEH1LbhieP5vmlK8An3aLBPTXu/f0
 dWAovygPqgvjreGXAKDUrndv2PP84EhK4f4HDDwfeIVyPbkCDQRIBs7fEAgAyLRw
 XdnvIKENQFgcjI2XyPtcbe+mCs2miAdRWKPRq+RuVLu7ub1kYK13W9pYTJL5LAiF
 TBVm31uuoiN/sQaJMDz/Hz2DOLRsEcb+d5f/9ssiPUxMdYKnE+kYwXRvm15y6Z6G
 dNhFZWleNpFRuPYqy/HaUb5q8/quF5VcH/cDVS1tSTErPtM7i3mmnJOpdIdBrCPe
 VVJXZo5MWUp1wG2IIuyap8ddM5S/kHhhyujLxLNDnlTxYogGZz0qad/R3LeiYTfl
 Drn9cZzvFdPlmrSvdw78RH0tB09fRLoI8KjGHi/bTiF9Pai75OUwVMv4PmxjAF6s
 OLU9q8zGpr8XE2ykwwADBQf/XVmkCPL+BRd45e40ayCo4sqfMoh0mK6dP66FmO90
 tAHtlIfkK74mcb/XrHC0KoX7c/TSaG9C8uJ7NGYzEFQzlzY8LlAfW/P+LjIpXjk5
 frEItGm0fCNU/+eBwcobO9gfWHDHucfocar8/pnot2PhwJpRFy1/xUa8oHXxNfW5
 IXnb67uCDPl4xFy9GkPPsgFZ4QI9+S7do0XYDEwfvzELeNTANAzMK+jIs5yzJ7mB
 mwI9orFltPfmc1y/EVc08LlR7qCsbosb/HMHO3jaMeKq1NIHyzRd70RZn5ow4B0Z
 zPQTJCWzfM0L5vAF96N/Rmrigwsg83+dE/a5e2791WRCRIhPBBgRAgAPBQJIBs7f
 AhsMBQkJZgGAAAoJEH1LbhieP5vmWAMAn2t7GwTeP9Hq3t1I1uU8AUGgS47cAJ0Q
 0CAkpRuxhi2FZn58aNBhvQPcog==
 =JvPF
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.238. Hiten Pandya <hmp@FreeBSD.org>

 pub  1024D/938CACA8 2004-02-13 Hiten Pandya (FreeBSD) <hmp@FreeBSD.org>
      Key fingerprint = 84EB C75E C75A 50ED 304E  E446 D974 7842 938C ACA8
 uid                            Hiten Pandya <hmp@backplane.com>
 sub  2048g/783874B5 2004-02-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEAscLQRBADERe+RX2eJpYLoaJ7d29B8YcTYzNlsfzghM1R1/Dx2RDy5poKa
 Jn9j+Iptq1qS9GkTHXFcQh8LT2K7wnE/MZTCxkZvg2ZkfQbJ4Z+0z3A1A6Kvg0tH
 X5aqmPUeLXvnps7nqZxkhl2ibcjhH/VYZK3mdRikd1wtJD1EhbbeqaR8BwCgkQAG
 vdJHN9gfjLLcM12EitkjoUcEALoo1bPoULWd4YhVH7W5L3Qp0dr1vf5pYC/V7FQ+
 8yPXZtGzMvIld8iX1sv/zsw4EoXXsaRzJo/ixdCS1WYBPowryu0G/LX5w0RTTGHc
 ihcHLm6ZmyNuIsTQ1ifLNASJoLkNBlQAuA0VG4evAujrmaWyEHbbIDSQKUJOjL9u
 jb2HA/9pycrr3+735Aa7B5jThN6p1XEC8GQg5MDx23QnTPj9QHXH4qs7s+hwxZq9
 3WkVFBcJtDBi8PeEVqfD/QPeU3ewbnNnfaF46miGV1iG1mzU4zMq4n5oBdijf5eL
 cRRdOJytYKTvlSCe8gf0MzfaB3RqD8+Cjcs3PtQOy1VT4aQiv7QgSGl0ZW4gUGFu
 ZHlhIDxobXBAYmFja3BsYW5lLmNvbT6IXgQTEQIAHgUCQCxw7AIbAwYLCQgHAwID
 FQIDAxYCAQIeAQIXgAAKCRDZdHhCk4ysqEPZAJ9ByMndfTtnnVIbsyHc2NjDp5F/
 vgCeP6o87Lw4aHuGo5guA9yeWwtwAla0KEhpdGVuIFBhbmR5YSAoRnJlZUJTRCkg
 PGhtcEBGcmVlQlNELm9yZz6IYQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX
 gAUCQCxxDgIZAQAKCRDZdHhCk4ysqLchAJ4+01/uQVdqdDeESGodcvgKsrieqACb
 BIW7HMvh85WqofTeAK5pJu7hCM25Ag0EQCxw2BAIAPXEkkg6lSxGRmVH1yzRnSKr
 /M48xyRXYDrRPaVVBFkC4Af3CR5MjncJtjbzm7xH82glC67cksRTfTZRs7kJsid+
 g62V53dAu1Uoj8ecSDhblb8yW3rTLKVqGcliGcTRFivcm+ZFm0kc0xCQE3rd1COX
 NLEomMV6xuZ9PVzDAbJwAoGdpCYsCl09eZrTErueQ7pEVsLx9/0zQSmC/uDFEVZ7
 23GsJg23+EUBT5KuTxQ4i0k++Ccr4HR/OiUy6KmyXSNsKsBsXwm3map3Debqqqx1
 ssrDXa+PHkKEUrONQBoYbZ17DpPZb+NKWibi0Vp1HKPP2vZl4NZQC0GBLXbEudMA
 AwYIAOYhwVTWKQSgeEZUNe4PwvHczx8/3VNjYZGY6/ZRjgmfO3+MagjonZqfxYha
 GpsEV17NXm4WIg6HWtI43JwIWfkUybsdxQVH4i5lWYuA26wD6UtNXw9laPHKXonR
 DvmKDC6K0iFbSxTqXRZVQ//wMxh58/Yw/fX+fYtmH6u6kPaL+CPRkhQLezTzZWHj
 2wF6v+frdglW1/LpwpCFndb1i5+36ogZ5ZudG/iz53QzlOF0IZSGHIb9tlQ+4gUn
 KfxpQloI+5vAyqpHDKIH9K26wTBzKsp5Mt4W6cLfgjXs7TNc8BVT8d4rmmbGpGnG
 pSjj7b1q6EhpIVBkAMLw7qanLlCISQQYEQIACQUCQCxw2AIbDAAKCRDZdHhCk4ys
 qAuZAJ0VNEtJSZOAGetxBJ/BMWahVD8xeQCfVKwTHdPh83Qcf28xx81icY5OKY0=
 =rF4D
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.239. Dima Panov <fluffy@FreeBSD.org>

 pub   1024D/93E3B018 2006-11-08
       Key fingerprint = C73E 2B72 1FFD 61BD E206  1234 A626 76ED 93E3 B018
 uid                  Dima Panov (FreeBSD.ORG Committer) <fluffy@FreeBSD.ORG>
 uid                  Dima Panov (at home) <Fluffy@Fluffy.Khv.RU>
 uid                  Dima Panov (at home) <fluffy.khv@gmail.com>
 sub   2048g/89047419 2006-11-08

 pub   4096R/D5398F29 2009-08-09
       Key fingerprint = 2D30 2CCB 9984 130C 6F87  BAFC FB8B A09D D539 8F29
 uid                  Dima Panov (FreeBSD.ORG Committer) <fluffy@FreeBSD.ORG>
 uid                  Dima Panov (at Home) <fluffy@Fluffy.Khv.RU>
 uid                  Dima Panov (at GMail) <fluffy.khv@gmail.com>
 sub   4096R/915A7785 2009-08-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 gvGn3mxLairK5wBG/6nAxa+uon8t9tl7FKwiMg==
 =Jlk7
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.240. Andrew Pantyukhin <sat@FreeBSD.org>

 pub   1024D/6F38A569 2006-05-06
       Key fingerprint = 4E94 994A C2EF CB86 C144  3B04 3381 67C0 6F38 A569
 uid                  Andrew Pantyukhin <infofarmer@gubkin.ru>
 uid                  Andrew Pantyukhin <sat@FreeBSD.org>
 uid                  Andrew Pantyukhin <infofarmer@gmail.com>
 uid                  Andrew Pantyukhin <infofarmer@mail.ru>
 sub   2048g/5BD4D469 2006-05-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =47um
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.241. Navdeep Parhar <np@FreeBSD.org>

 pub   1024D/ACAB8812 2009-06-08
       Key fingerprint = C897 7AFB AFC0 4DA9 7B76  D991 CAB2 2B93 ACAB 8812
 uid                  Navdeep Parhar <np@FreeBSD.org>
 sub   2048g/AB61D2DC 2009-06-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEosaGcRBACOXnXquGEW53BjpMt2jViod/TUf1xgjMekcbDxqOODPeX7eYfr
 wJ8G6BCNOpGjBmWDu/JcNj4Z+gmTilJ6WLZQ7ecFZfEeO91pt6ys0cyWh0xfO+/m
 T83D7W81S/kqrJBkQbBIdV6LumevdErHo272r8RcMELC4Ru87eRtX3hmEwCgnnGN
 JMpQFUfYTt5XE7nY0yQoeV8D/0OcWmJbEZWxX9O7AuliCe3zd2Dw0B4LB9SZ2Dis
 7+gpVd3xVgYnt5wRE9kM+ThgrMA/wqr807qmEG6bcfUsfwwGN9YUtNF3xAN07cXT
 s026sCIFNZK816PrThBzCgkwR7pDpkMzGWIBr8WiXXy0eB+JlQ6UV4PEiXuZ5ulz
 P0b1A/9CZm3wJfrNC0r1gMyrfVedg4zwKU997bmPLGcYs+rWXDTI9CvMseOUYn4C
 oDZQCp/9zxuHK+VU7Y/w0c/hVE5ERACSn4SjN2unEDstK9njZBMHEPVkAe/YvSG5
 cmc97SHlVE+eu/bbLKcvFb6rRLPOaVFQJMJA2VJEGWtYhvP7ZbQfTmF2ZGVlcCBQ
 YXJoYXIgPG5wQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJKLGhnAhsDBgsJCAcDAgQV
 AggDBBYCAwECHgECF4AACgkQyrIrk6yriBL0MQCfUJOiS2PbJFDeiav1ylcXXwfp
 ggAAoJRoS7GDENGyM4BzjJ4b0ptZqTLRuQINBEosaGcQCACFCWs47SL4DQA6bNDl
 VJu4w8wLf8uVOyatuGmdXX8Y/OTVQJgA3vS+ODNVJCxhKVlvhcn7bhBdGdWKS9K+
 lr8+eEvr4hf2bQpesoHC+uFgKyILkCBNL8raixbhysyq0pfZWWDJMyn+G42BG1yJ
 Ji+bykygdpYnbIVA8dYHmBibI8mkPKOHSohjXT1SRfGGn+l1w54OO4NlJhCXMkjT
 A/Z9Bt4XeaiR85uJi0UUfV8FGZHhgSvT+/P1xIvz+nytuehSP/QLXl13CtAG/nKV
 kAcZnsT/3NrJ4Z2r45k+c50Wrf210scAaBogrrV5eIHfNGgOANApN8+8vj+aXO4p
 XRuXAAMFB/44ea8rd+P5N3OMrfuM8i91Qe1bJ+BIoroKPOr8jvCry0h3QpdfLKUN
 IgaqbS3JZeBJ8HHnWSGCF+o6H5gzRe1hvylPEclLPDCuPe7T746h9Mzejf2hNDJv
 Og+BuweDZW4KhovVbdS+syJEvpGF4bO8qgHT2CKgruXSHbFetdQWbkM0rfMmTuo0
 GcR2BEVrPb/SPFv64ZZyAZzmnGO4vT1bzClnTzJixrDpH74M3vSEYegMB4KdbLYB
 i8Jx4QUKgVEhJHjJubKWX4etyU/uuehOC3xYrmr1UXvsom3U8r36Dvdo77Yr3dgD
 VXa7bolNx0TIhdWxZI+R4z9E75QY+/wgiEkEGBECAAkFAkosaGcCGwwACgkQyrIr
 k6yriBI+JQCfUxgyqGtzZvLh5Al7gsTmRc11PLwAniD3NfWGRcO2+9uxSSQqRH1y
 wC4n
 =tqY8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.242. Rui Paulo <rpaulo@FreeBSD.org>

 pub   4096R/39CB4153 2010-02-03
       Key fingerprint = ABE8 8465 DE8F F04D E9C8  3FF6 AF89 B2E6 39CB 4153
 uid                  Rui Paulo <rpaulo@FreeBSD.org>
 uid                  Rui Paulo <rpaulo@gmail.com>
 sub   4096R/F87D2F34 2010-02-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQINBEtpXcMBEADA2Fye/cDy2Tiay+ieM9avchk+igtnLNdmHv+07rHP4OMXfJ2D
 HcAl0+Mbehs7vLQBKvpIFXJAE4z2JAaLw16g/o8AUEO0/tchFy+RGjqxzwrY6Xv8
 ur3+lyezJ/Xs34yQb7h+m2i7gxp2lXsk15zc/V3bJ3EGnTPAxTD0/UGT5UMBSK8a
 TVH/YTvYuAoQ162qtjrfdSWgO83+mJHtyO52asF6Jcv4PxTc1KjPNJ4CF4qmRAGn
 0RH+KCHN4PWxfLx7tZm3W1y28rEOkzjezqRs+etz4yGwK0oiQU0l0xJ/HocgmQyK
 HTytMRU6SJZ0YWqMOr0avZzjIkupcKYwVjOEy0p80gcREj0ka3aep7PCUh07ftgJ
 w24Oon6xMVt17sGyqqAAzfVVWiCa790SRYsuu5cQdel9RnyH9ozWWM6Ki6q+cq0v
 mSWwS4TIqWWkXxZsF0H8C4TM2UkzskwfZDvAw1qlmmEsZ18x5+SWCYf2k4j7as49
 jXFUZRU2XBF1enVkqFYKnHwTpAMk9JmFsFXMQv+WMTndoEjSi1YG/NRLRboaIT0X
 i6+AHTAdh3oZ8bqdifE1jJCivWPn/sAsUICkpuagGygDFHC3q+5BgYVyMnJuS284
 +gB5HKZ3ww0gk10xc0EG/fMoSUEed96vceyk4qTBxfCl+bM/2KstlXfAjQARAQAB
 tBxSdWkgUGF1bG8gPHJwYXVsb0BnbWFpbC5jb20+iQI4BBMBAgAiBQJLaV3DAhsD
 BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCvibLmOctBU4ypD/0ci/Gt1KaD
 khN95sad+8ZJFK4K6W4o0g+dMjDa9Bb1U2gfyKobO/I2FWg9z9a5PTO5BaeOtU6L
 iGwhNVJ0iOfZrAr+cnUvbDL6cJa1gy9khzvNtVj/eUAd1d7RPImTcwq6Dn4fTstZ
 122vuDQZeh82e8W9srJPEcGgPvSk3XIZF/gilRBPcfN6KmOt0Ixx7U2rqU0sblG+
 jQKG8nsDO1huNt1dYgCh34vxeVzvsvGqFeilh1a0cvxN6+GQa07uF732lA77lMB1
 +1fEhiS/n7K+6T0w51sNjoieQAn5pE2hw8Q4QZ4HTaXaI4YG2n7dOclTtDYm3FCv
 Vdtd+4Wn2l/2VpUQfJ26Ge/BslqgF4RiljyAQ2fLcPhR1GWFzsvgDuNZRSM395xi
 nS54SGVsmMkEPoblIPCvhG26C7UszmcUfjyI++0nMRhCK/R4n/aV0VKxBWoUIhrD
 uksOFfO3jmI/58fmYD4WvDyvv9nyeo7E3MpGQMAZdNPKBdJSmFHzRFvC7LGgLxaT
 lR5uXyPEMrly68FjPiYqHDhUP4TxsBy/IBwPkizxoTtS2OEvR0uQDR0vXAY1+Njv
 YEeob+aaL8WNM4FfDZ1ZBd7Ux+qnDXuxuvR4MU7WlrzHunqWFirC1o3PslMbHNP7
 oz09YhXXNLSM+6j3Jb4zDEfsgsg02SpqxbQeUnVpIFBhdWxvIDxycGF1bG9ARnJl
 ZUJTRC5vcmc+iQI4BBMBAgAiBQJLaV3zAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIe
 AQIXgAAKCRCvibLmOctBU8XwD/48GsS6Zxmc1I1qhnGPf7+b6VeHgSyTHtu62TjA
 BGoGHeBcBiMe48ws8Atoi92EiA7pM+43aW6Hkkc/h9/1cGugsPHz3G1haw6/ikSv
 X1TU4Z3Sf+5E9NaWL0nT8o0LtQ4ZJ0BriesejV3fRXckE9gbsqOaP5legSqs8xje
 mk9lio2VkHGlBC23d4z0NFsXv2+Y/ilrvvoJMWANGaV/Ejgscb2EvK3xGgxOB8cA
 MvybOjLvDKbXAx0LfL2VtPIdsF38n744B1bsr7yreYQvMkjYxR5ASgaVVx80Bowb
 CntPsNWzyTSNMeL9IfKd5spO7QawJ9dNQzTG38SE3svv2iAf6f8uS2WNmVQxQHDv
 oB+mZ/ertNsxE0VdFBTzOuwnoRzurtOHUZnRvt4zLFOfunEQOMeo4HnXIoCHbaIK
 svXmSRl8+lK/jn5Sm7uXFVMPWCEwOlGfcey/30mAUj+9aY8TBEII6xy3d6n64cpf
 26scuS9KaYBCuqOECmQ4wDZKHHVsWQqjSeH1WOH94E47IYYhecJB+yaleP2E/4LU
 CokiRbyLlAklpT4P9x4RFt+MoWHrKMlesiR8NBVpdhV/rZSk0eF+vDuoqdrNA+8k
 dyPkWCRiKra3rRc+cdQeoD8tW+7Gg8mcFnyC+UOdTyHF1bSxP/hoODW+eu0mm+Q5
 OPlB6LkCDQRLaV3DARAA3XVIRwiM8YFt2haoWsU1yoBPTQhACxaH5YNXfgtbV4dn
 ENswRzVyDi3UvOSmC4CX645b+4RslzFTAW5iq2b0ExV0TQqEHsCuujCItUmdYeql
 6stEgVfNBiRVeYFa+6a3rWkh7dD0UDxk0PDA6pkWbUMgOGUwm+oVB6irHvcllN3q
 DAGouG23BuurPyFXC8ripXp1Oj/1PJcH5gr6Z675raaRbQuXa4ysLAPMbfxKPpON
 FhVJ77ilFzDFRknFPYBNoodQYLSmFqOZZ5rqYnBK5aiJFiDBSgYQtCJ4cbx4gCwd
 Xs9wF1lOZcKSiA9L47BZOmUL/nvGOXff/ImN5abBhJzxgm37niqZlRbHEaQ+8pJ/
 jLLqL7wzRXw7YpzVyXD+ru431nFBO5nUbfa9Q1b5VPVgsYV7r/3j8Purv+PeCZTJ
 RAU/qUBm7FhxStwPT/5jBM/oSdwLYX16naa4xGKgXwyccZ97vUsspRQnSDaxmbaz
 4s1iwClPauHfRir57opc51sL7IypnGBfnKXzebApbZcnKgYFKxVZbIVoaNFlHc5S
 Ti5CcP031vFf9R4uB0Til9qIgyzdUVpRTg0XNGxQjSh/n6/76gpQqah0jh60ae80
 frB74alM6JCdJHmYWzr664FMnplUx4JTiggAL9CMpU1Y6kYTkPMrk/dpfcAf4JUA
 EQEAAYkCHwQYAQIACQUCS2ldwwIbDAAKCRCvibLmOctBU7KiEACFQ4Dd2cR3ybc2
 rppjM7hI4i6wvpqDu3qD+4xjKfa1h7Ihtxh/QInl6a6cwTwKhM68gIM/43nrMrsD
 vfukfNGvgavrxdNQlxAbItEybDP7PFJEqIEjCBl36KAAYMbkzlXloYAHX3eyIz4Y
 ZOKGVF2lQkhqmA/SrmM2Wqk/uB4oATrbzOUvKFa+9R+PVV7MMZbpM0tiVak2fUn1
 M2N3S+t2usxMXVIfHjv9LexEokaWZcr+vj8NM3X/HVYiv+YXf3bO5D2Yw67ISa49
 ucFYpbOChs5a3ONrfd5v3smvkWE1ReWsPzpJ286lnGj8ZOhe0R/P+xv+dRBJzf9M
 mQTHR6L1VOgVmYkjONbZDCd+Q/Xhcuj4qeTPQtbh5ek5PqsQ6sukppn7YccbyMoA
 HHyZzZJsByT5M1DqjsioOiiW1iCRjXZfKttxx1So7aTmpsH4i7V6P0s848sME30p
 6yCsgCJgt3YPJFQqtMRCczmPWYMFKqBxQT//akRnThlIRCC1rjJBML1yoLvTzG0u
 16vOXdfscrwaGM/fOyC1sZEypyeXT7LjojQvVPfBBY/qXKjLckdpZ0YeXNSoquku
 dixFpPDnlUBdk/iuCcVRtWg8B5fPN/fbeJVRpNXnedw8aNes9JZhnj5jmTXYUlqA
 ik5Vxm3qOoCKPgBkTCUAZTCmZZ13YA==
 =vI+5
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.243. Mark Peek <mp@FreeBSD.org>

 pub  1024D/330D4D01 2002-01-27 Mark Peek <mp@FreeBSD.org>
      Key fingerprint = 510C 96EE B4FB 1B0A 2CF8  A0AF 74B0 0B0E 330D 4D01
 sub  1024g/9C6CAC09 2002-01-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxThkERBACPf5/QHmyM944qrl3hWlWvK9fZZR2c37rhxAeqDJ8WsEMPBTZK
 WPn9BsMk+2d8e62FkzYo6L5juekd8invwd1nnszFFJdTDWx+vpMMgYuHBmme0QuP
 OnlU2FwJUCknw5Ed5pYV8F6azGgUNjYKIIJi/L3D9S2qDZ7l+3DgD0knKwCg4o8Z
 ZE2vd9uQw0AZ7lIa+li3hB8D/jHrVZqHxhOuUbxIXoJG3g54mH4i9GF8uN8ZdhA0
 9AxLVLzjLr4CQd97++LdSLagSvgD9N6OrtMPeqge4Frr1anJ+LRPDeOQhd0meJZB
 iCiekil4DSOsowqgmIG7DlAJx+PNV66qO1ExX1fv1ugyoWHJqYmdBSF9x1fHU788
 GxCtBACC9DLBMmMVu1Fsw3rnkZaR7xX1a1Bu95ZUu6TKJP6qUS5GnQOxF7dDjuwX
 /uRinkQ7W9vR4UuVvcV+Ct5R/yq7e+SfLb+YFQ2BmWeGNs5AVLxIZsZ0ar16fwB9
 XdxxHU/IkA3kYo4JfTvi3QXjLn4mbYUuBIVGAL63UO1kx1c8crQaTWFyayBQZWVr
 IDxtcEBGcmVlQlNELm9yZz6IVwQTEQIAFwUCPFOGQQULBwoDBAMVAwIDFgIBAheA
 AAoJEHSwCw4zDU0BXeQAoMlSoeOO5WtFMyC8viNAafpPcT6hAKCcjmQyI/cI0id2
 PMX9ZOfrKd/ma7kBDQQ8U4ZDEAQAw9gcDj02cAlUh8G9bLIQazPLJnX0fah7KB3O
 kxh8wFn0LliP7W7HLB+nQNyO4TfNgI0bhVyKDQQbKI2xJ4hylo9Z1K2R7GilgCnB
 FUqIp0MdqAswX2Dq7KXoyYAZRBOnQounUMaQ+6cfRI37mWc6dC2uY5qHne4zmLML
 /lVOjVMAAwYD/1ZArkN4IDk/VALPnzW4VYcCcT+101DMZfIMvHK2MiwWFmO+Er/K
 gIo9DrybHNQ6+bVQh/F6PSlxDrgWey7dQbHQSssC364v3RPOCmuBJCMTEszaais3
 VekHF9i9NMsUzbGpowaQv+YKMFQu4Rtlwaq7NUp/cD4a+jaxto9ij4EliEYEGBEC
 AAYFAjxThkMACgkQdLALDjMNTQHvuQCg1PrMlcafQ3BUaXAQRlGoyvF2WcQAn17c
 HA1RAO/MXM99nT62+AKLlpeb
 =mfY+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.244. Peter Pentchev <roam@FreeBSD.org>

 pub   1024D/16194553 2002-02-01
       Key fingerprint = FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
 uid                  Peter Pentchev <roam@ringlet.net>
 uid                  Peter Pentchev <roam@cnsys.bg>
 uid                  Peter Pentchev <roam@sbnd.net>
 uid                  Peter Pentchev <roam@online.bg>
 uid                  Peter Pentchev <roam@orbitel.bg>
 uid                  Peter Pentchev <roam@FreeBSD.org>
 uid                  Peter Pentchev <roam@techlab.office1.bg>
 uid                  Peter Pentchev <roam@hoster.bg>
 uid                  Peter Pentchev <roam@space.bg>
 sub   1024g/7074473C 2002-02-01

 pub   4096R/2527DF13 2009-10-16
       Key fingerprint = 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13
 uid                  Peter Pentchev <roam@ringlet.net>
 uid                  Peter Pentchev <roamer@users.sourceforge.net>
 uid                  Peter Pentchev <roam@cpan.org>
 uid                  Peter Pentchev <roam@cnsys.bg>
 uid                  Peter Pentchev <roam@sbnd.net>
 uid                  Peter Pentchev <roam@online.bg>
 uid                  Peter Pentchev <roam@orbitel.bg>
 uid                  Peter Pentchev <roam@FreeBSD.org>
 uid                  Peter Pentchev <roam@techlab.office1.bg>
 uid                  Peter Pentchev <roam@hoster.bg>
 uid                  Peter Pentchev <roam@space.bg>
 uid                  Peter Pentchev <roam-guest@alioth.debian.org>
 uid                  Peter Pentchev <ppentchev@alumni.princeton.edu>
 sub   4096R/D0B337AA 2009-10-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 KXQCmDuAAhfLF4IJaH7iSZYLqolgrSl6l0j+ea4kWhgfeHcSoKFsMjV/uKn9qCV5
 Mk4UNEuEDDSqnQTXZjcmMvhyMvzORMGLN9bRsdjLsa4UjcoLoz91wYrrrdAGxxiL
 CvVcMfU+2JMsf0GuK7CjP7Ije4qkxDojjPcorQ6hW33KKrc3R2tXUwQqlnZzZ4xT
 Yxu4um2uIpuEw/CIKZpZb1dwKcny06XF1CWAsd7nfsU6EnUVnQS4Ik3xSAikgmZB
 /VX6N475Ky7ClXKK1ptoh2YCJMfrI/RIbaWPftJC110kAJgWfrsvAnkbK+g/69yi
 mz9NUQE8zf9v4mf8IUmYElPl3UeqUX9b+JhJiYIGlqYw7eWX0PqUJmGgkjsizPR8
 l5GcbGFvcYEq1ldVrKPbyJtn58X9cEX+4Dw/ushUaiPiaYN+7NEK9Gw0mCaTjveB
 QLfAcj9uFoPHvrWzTKn1caO1febZawer5BCEtPZxHzTxAJ9Mwhy7I4lI8KEKUW51
 hbb7hNPFCokrqAKRMTAMiokCIAQQAQIACgUCRUzvCgMFAXgACgkQvJlvTb+wLG90
 XA/9F9qCy07Km3qz9c6x3Cya/37ev6YSo3H9OUbR3DkB3LqPBab/6qvYUxemH4tw
 RETpRIIEWFa2nhyhaj2My7g0I0STQtavOQIsoy3Zt+syS+2slvXY6w3whLnxg1bd
 AyZieKMOrZdHnQYB10o291oIXTmue79Dd3Q7TWaZyrV5NkRrAVWkVz7lz5XH/rVr
 m9FWhEox6iDY06NyeIDncDf0aHPfFQYK2KhSVv2OM+u5jBc1EBp+EP9+hlluj9t4
 u7BVhqQenHcROYZ9qNiDDC+FxCa5+rUK2muXQTlMz5i10o/1hkxL4NCyz1TjyLWm
 cGhEGHwDBjnxdkr9CO3SZdRfandPxmigwMGZ44zsf6WeEEhGkkaUR6nybZXZfdLY
 AGUF8g+h8Pf+BkQLZLnyu8L1zgj0xOBuLPexhA5Htdkkd1pFX3UrVMGeSXMbxWIE
 ve9GY47g0Qh51qu7PVGH38HKUHa2hVMZ930s+jxN4apKQgh7gcAqMXXlvcEIY/zc
 NtbK+LHKI/Pq9Vvw1Cf5Ix7mnfPmo6LZp3g3ZXkNsS68z76r+MFIkvYKpuCEnP0j
 dGUakq0CtrKbSTG5STHkp3Sx4CKRBNRYpinUlZCSY6nSOHcCmelXVbkfCQCt37vr
 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
 jjAqbYfJRPjeyqTOUA==
 =S5L6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.245. Denis Peplin <den@FreeBSD.org>

 pub  1024D/485DDDF5 2003-09-11 Denis Peplin <den@FreeBSD.org>
      Key fingerprint = 495D 158C 8EC9 C2C1 80F5  EA96 6F72 7C1C 485D DDF5
 sub  1024g/E70BA158 2003-09-11

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD9gSfARBAC0ZC5VEuEzqk8KQ3tFam5rugDTaigVzYDmT6XBrQuVwYrFY5zj
 gz3o87e/KGmvh0FgpulhoJpkOW9l7oPQpp0wvEm45WRq17+7quW9VppgVCzs79FL
 Cc77A4g5LAuO27i1yygfMfPrr6J/M5bM2FyuUS35QvKBTlkZiB/Zt1d1QwCgzJML
 PdRvozXQdg6/bPc+M3Wh9AsD/0NxL7cwGExg57hnxA3oNB4M7IM1MwbDDaEQvJbW
 Ls8c+x2UMzdE4XHMhr940GiwUzEa1lyy0M7FmB+cdFgqhJ1VFjYE6VyGkyYtticL
 my6Im5S4Pfvx7pO2qLmYW+OnbnC6FFgFPbsAZVl/1fy4hN7U2zQIMw3kIodFBnyN
 RMsvA/9uzITCim3ov/9x4OYX0BfUNNmczIZMvXbmcuDH+NfwkGu9pmRitx/AWHGJ
 chOv4vMuMnBHU12TV1dstlWrb+Q5DVrnbVUq90mUbxg2emvlv+xK2oZ9EBKjAv/z
 NFqySi52vd+OmgopbVI6bI2+VdKrKeNcDByt/2zRGo9Y9hDULbQeRGVuaXMgUGVw
 bGluIDxkZW5ARnJlZUJTRC5vcmc+iFsEExECABsFAj9gSfAGCwkIBwMCAxUCAwMW
 AgECHgECF4AACgkQb3J8HEhd3fUzKwCgj1hA+IDNLHGdD+ua2bs3nPcL+vMAnjR8
 6CwsvOZIL5cr0EyveMsGNWqnuQENBD9gSfIQBAD+YKY2v46TD994B3h0KtAI8/Zd
 aJ+K1yUNIDxjueo7v+c3jKaWPgX1h+Cr/O936IVnG1zg81zEF0Ly6NcwWrj70UDO
 deA4tvx8HQoYfjwRA2kYAv73yvt+UG6WS3cGkX28dcLb8/JEV5M64AYKhgqRX12m
 VJWIKdqMYzho8n0mCwADBQQA9WcaZB8RVj22I88DA6okYxiU2vqAN+QUvZfX0X1/
 7Rh3mB8iAXBuASEw6NbQnGtky8RlkTDgYu1UJt0aSV2U2CXKOyPCJut0Ka+YYtOM
 prdHmnNSksNvwThju8F6js51nrf3D/7L9SFhc+W8JTfa8iz9Zfgq1HQkZ3foSO5J
 W0CIRgQYEQIABgUCP2BJ8gAKCRBvcnwcSF3d9Ut3AJ9WFh2gFxmqE8O3B85dO4yx
 z/OvxQCgsQynjVGZI9JJn1W0KOAYSbihdu4=
 =kQUf
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.246. Christian S.J. Peron <csjp@FreeBSD.org>

 pub   1024D/033FA33C 2009-05-16
       Key fingerprint = 74AA 6040 89A7 936E D970  DDC0 CC71 6954 033F A33C
 uid                  Christian S.J. Peron <csjp@FreeBSD.ORG>
 sub   2048g/856B194A 2009-05-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEoO/iURBAC3FVq7xH4uRIEWRvmPzD1azqtwlQE3zipCf4K9B4EjKidksgP0
 56qAkWMvngWG7OW9YNCtZYgDNAINOGdw2pZYioERq7U+cdIPKSZrIP5WrpORdi8A
 4i3VmRKh19ztJEGb8jvthYDlEyvoABXmz/Bi3YHDkfjT0py02SnkcjikxwCgkGkL
 rNwWGviRd6hsBZZEeximSKcD/0OAthVoMmk4bMByWPoEWf5i3I3JHDeC4g3oEgYp
 7dxMaxboqjFmiTZ2xMwdR9wlpwE0ITSeVj5pMtswr8q3ghLdlXOpd4wn/vLu51/G
 ra7cFgNex3kCb+5tLfqZQCiK/Y8fQ6TJdowaxN0xtrdGbTtUR0BJMi7/AhNF1GxW
 HeE6A/4n/K5Z8EDq7e5HZ5S0lx3MAKy1QgS1tnO0aaHK3v+DtD4xbe9aV2ls39sh
 2Xu+z5QGkrx7q3HOSnC/DzMSYDG5I45GGNdDoBVmJ6IfvNICzXgM4hDh8KgIXNZZ
 PEkHN+uwTWCnIj1yhothpk86XBvyiEAbCTwQ5jWBmZkvLI2GdrQnQ2hyaXN0aWFu
 IFMuSi4gUGVyb24gPGNzanBARnJlZUJTRC5PUkc+iGAEExECACAFAkoO/iUCGwMG
 CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRDMcWlUAz+jPOYNAJ9WfWDy0ZlOC7q7
 KUyrq7e49no1SgCeO4nUcK5nLZKkyGXxTbnghFZegGS5Ag0ESg7+JRAIAM8UbDPn
 dVBYrvJqBwdWQA17XN6jycQC2smWLnJ6geaQfBgXAff5/Hn1LtPPG58k048yF6QF
 xOCzPOTrkjaL8GlyKGLK9jfctyC+zRl5FvNyJIBIgFRsJjBB9K3FpZEsxWltSyqc
 5mxf4D8VwJeDfWdgeqVgORapBruHm3MAf5B13PfBN8lV2Yqbo520U6ZWUtdTscsL
 2QLTZcrIN5aq5Wsuy4r8H90h3JYcOUK4PJTBNLmlmLEuTlENbv8E5YVvvgx/ZJ9H
 lX9FWz+w/hrEQIR2xnF8MJeAaOR3Q6cKgvFrH7PUHwvYxAXkXGWv6xsJ4VEA7a3g
 IOytL1l/8Zo0fiMAAwYH/3Sn6JzdbiF7peLiQ3SqbNSQV3aKxNP+PuGvuALiHKKd
 WgF5xjrBfgSjJbybwm4YtNfqLU/x8SEtEXVkyMozgWSMn2K/vFrgwURjG92IhDXJ
 bOzEDyx86/iJosMn2glcb9eBYGrmz92H+9a1Q1xMyuk7uD/+nFcJOj3GqnuFK54L
 //A6ott10Ddgg8JB3jehrzrOeg8/IdPifhT845X9q24b3kG0orzCIOk0/xyUyps+
 9A3j54Fp/atyVmHFPRedjGMwYPIqKQvFnzYuaoN/NT1yJZEFbyud/h1Kpi4+Z2/C
 Te9glz71eqlUSond5WFnLSd7GSuUxXprwC0bGQ61tASISQQYEQIACQUCSg7+JQIb
 DAAKCRDMcWlUAz+jPNDzAJ4lJdUYDs8aONEFRW/TpLMiepzPqACeN0HmbLJjwaVk
 tI1h5vM9MqGGVwo=
 =p6fK
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.247. Gerald Pfeifer <gerald@FreeBSD.org>

 pub  1024D/745C015A 1999-11-09 Gerald Pfeifer <gerald@pfeifer.com>
      Key fingerprint = B215 C163 3BCA 0477 615F  1B35 A5B3 A004 745C 015A
 uid                            Gerald Pfeifer <Gerald.Pfeifer@vibe.at>
 uid                            Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
 uid                            Gerald Pfeifer <gerald@pfeifer.at>
 uid                            Gerald Pfeifer <gerald@FreeBSD.org>
 sub  1536g/F0156927 1999-11-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =3Uph
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.248. Giuseppe Pilichi <jacula@FreeBSD.org>

 pub   4096R/8B9F4B8B 2006-03-08
       Key fingerprint = 31AD 73AE 0EC0 16E5 4108  8391 D942 5F20 8B9F 4B8B
 uid                  Giuseppe Pilichi (Jacula Modyun) <jacula@FreeBSD.org>
 uid                  Giuseppe Pilichi (Jacula Modyun) <jaculamodyun@gmail.com>
 uid                  Giuseppe Pilichi (Jacula Modyun) <gpilch@gmail.com>
 uid                  Giuseppe Pilichi (Jacula Modyun) <jacula@gmail.com>
 sub   4096R/FB4D05A3 2006-03-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =jIdO
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.249. John Polstra <jdp@FreeBSD.org>

 pub  1024R/BFBCF449 1997-02-14 John D. Polstra <jdp@polstra.com>
      Key fingerprint = 54 3A 90 59 6B A4 9D 61  BF 1D 03 09 35 8D F6 0D

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzMElMEAAAEEALizp6ZW9QifQgWoFmG3cXhzQ1+Gt+a4S1adC/TdHdBvw1M/
 I6Ok7TC0dKF8blW3VRgeHo4F3XhGn+n9MqIdboh4HJC5Iiy63m98sVLJSwyGO4oM
 dkEGyyCLxqP6h/DU/tzNBdqFzetGtYvU4ftt3RO0a506cr2CHcdm8Q+/vPRJAAUR
 tCFKb2huIEQuIFBvbHN0cmEgPGpkcEBwb2xzdHJhLmNvbT6JAJUDBRAzBNBE9RVb
 +45ULV0BAWgiA/0WWO3+c3qlptPCHJ3DFm6gG/qNKsY94agL/mHOr0fxMP5l2qKX
 O6a1bWkvGoYq0EwoKGFfn0QeHiCl6jVi3CdBX+W7bObMcoi+foqZ6zluOWBC1Jdk
 WQ5/DeqQGYXqbYjqO8voCScTAPge3XlMwVpMZTv24u+nYxtLkE0ZcwtY9IkAlQMF
 EDMEt/DHZvEPv7z0SQEBXh8D/2egM5ckIRpGz9kcFTDClgdWWtlgwC1iI2p9gEhq
 aufy+FUJlZS4GSQLWB0BlrTmDC9HuyQ+KZqKFRbVZLyzkH7WFs4zDmwQryLV5wkN
 C4BRRBXZfWy8s4+zT2WQD1aPO+ZsgRauYLkJgTvXTPU2JCN62Nsd8R7bJS5tuHEm
 7HGmiQCVAwUQMwSvHB9/qQgDWPy9AQFAhAQAgJ1AlbKITrEoJ0+pLIsov3eQ348m
 SVHEBGIkU3Xznjr8NzT9aYtq4TIzt8jplqP3QoV1ka1yYpZf0NjvfZ+ffYp/sIaU
 wPbEpgtmHnVWJAebMbNs/Ad1w8GDvxEt9IaCbMJGZnHmfnEqOBIxF7VBDPHHoJxM
 V31K/PIoYsHAy5w=
 =cHFa
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.250. Kirill Ponomarew <krion@FreeBSD.org>

 pub   1024D/AEB426E5 2002-04-07
       Key fingerprint = 58E7 B953 57A2 D9DD 4960  2A2D 402D 46E9 AEB4 26E5
 uid                  Kirill Ponomarew <krion@voodoo.bawue.com>
 uid                  Kirill Ponomarew <krion@guug.de>
 uid                  Kirill Ponomarew <krion@FreeBSD.org>
 sub   1024D/05AC7CA0 2006-01-30 [expires: 2008-01-30]
 sub   2048g/C3EE5537 2006-01-30 [expires: 2008-01-30]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDywg58RBACh3rn8lR6mEBpFzQUN6oRmHo2mlkzY2+Pz2d5luRyE51WVVOlO
 0juFuR2PIz1LXPy0Mucz+lGjZ3FPejU4PaiVe0WOeV57UaSeGvB4D+wc289fO7EA
 ZUiI6vgSGnK55FbA5YN9eDlDqr50zh9/XS++bOovtu0VvBQ9CbXGz/O8UwCg/dHO
 aHTyTA0pE2rQq/7c82+xl6sD/3etZa4LnesLIEHfZbueuAJ9x3CGwNn/vdecjv3Z
 i5rb9Q2i3jTZDWoyRSwusP8ayTh7lslkAAVlARJ9pF8wbJ/V7l1DdglVovvHuH2C
 1Zf4GvzBCQcVvDhuTqTerxmwe2QE6r5bwPOP8hSguvfzaR4+6uGlsJZdoN+vvmhB
 wNnhA/wKulV96Cx8KDX4g5QY0+xD3v+9fnA2pPIdVOXmEfYEyN1oG3LTaF7VSxc7
 XQimrpCwtRB+1bYa/edezf+PitI5994zqrd2HP0x45zwhiKoWZ/terUrGCkXbHB0
 Z9cxxO/yG72uq1De7EuNkHPQ1MdW+G4LV/myN3ukSQ4MDmvrRLQpS2lyaWxsIFBv
 bm9tYXJldyA8a3Jpb25Adm9vZG9vLmJhd3VlLmNvbT6IXwQTEQIAIAUCQzvfnQIb
 AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEEAtRumutCblFnQAmJOgPgOtUK3T
 nqi1fGcdDmQ+DXcAoMRbUwjle2JCQTrxi09rAenIfV+FtCdLaXJpbGwgUG9ub21h
 cmV3IDxwb25vbWFyZXdAb2Jlcm9uLm5ldD6ISQQwEQIACQUCQzvf3AIdIAAKCRBA
 LUbprrQm5TFSAJ94r2JZk+NGBfm7EzXQDJS9mqV4DQCeO5BoipB1cdjx59VmCRn3
 2AurMMmInAQSAQIABgUCPjEUowAKCRAiRgxqA8L7LcJgBACe3mnRYBFsxbQZxPEF
 MjUUczKG3r6Ih3KJlL6cmIWRmsDv8vI5t6PGn8RQkkaSsu1UaU7Y/P4aR4dpxh2o
 FJcWihGvy/yafGutqX/DcIU/9F0yLoCBU+4fATSj7QBIi3TzwWPRzds5fDCuM1B/
 LQvX/LNBOTCiUpEN25HLUwcyTohfBBMRAgAfAhsDBAsHAwIDFQIDAxYCAQIeAQIX
 gAIZAQUCQOb6jQAKCRBALUbprrQm5dBdAJwLZBpW1uqk4vnlusPLVFNZLU+obACg
 yUlbUXvZWYuVttMHdXBHSLb4GwqIRgQSEQIABgUCPjEUjQAKCRD31D6TzwF+Vw5W
 AKCNttrx9eqoWj6A+g9EeigFvaQQigCfbegIctSzNceC0Xk3FafegcECZyqISQQT
 EQIACQUCPjo3awIHAAAKCRApq9wmu0emN3zXAJ4kyIOyd2nbs5kP3dee8uBKGHjT
 iQCePnMuPcuH28UhpfQ2aJckKvfS5xGIXAQTEQIAHAIbAwIeAQIXgAQLBwMCAxUC
 AwMWAgEFAkDm+pEACgkQQC1G6a60JuX5TACcDWhNm3jRvGl6QzSfLJGg2AKYJf8A
 oJNeLlYGBjnWKCHoZRlNwJ2hAMddiFwEExECABwCGwMECwcDAgMVAgMDFgIBAh4B
 AheABQJA5vqRAAoJEEAtRumutCblCMgAoK/CR1Xe474X4BZFGMBliy7O2FfqAJ94
 GPSa6CkvttlrCin30W25O1U5N4hfBBMRAgAfAhsDAh4BAheABAsHAwIDFQIDAxYC
 AQIZAQUCQOb6kQAKCRBALUbprrQm5W17AKCI1UI9O/mT5mfNdGLQbCqidpRsxwCe
 JI8QrBYfg4d6iIgANSnhtwWlrF6IRgQSEQIABgUCP89DsQAKCRACPu77/rnef70Q
 AJ9KMo7bzzW234IulQ2O4IEFMmIPTgCfZbfO3WWWNn7BpquKVf7uuHu7SriIRgQT
 EQIABgUCQYJCwgAKCRAiylhMenujwJyKAJ9FX0TwJTuIp1selT5xsadto4hdVgCf
 Z8emg4RJr/B6r5Eut72SF8fzETKIRgQTEQIABgUCQYOyZQAKCRCpF+nMmW4UXpKC
 AJ42BIE7TOH+yCbf3+17BpW1Fp84GACfb0Ilcg84ZnMKguWzalkiwAE+K6+IXAQT
 EQIAHAIbAwIeAQIXgAQLBwMCAxUCAwMWAgEFAj1iJO4ACgkQQC1G6a60JuVz2gCg
 jGNfdrIPH+bPGVt5Xi68mq8BOF8AoJ7Xh0B/iF/E8M9yWJADeVtUZFqJiFwEExEC
 ABwFAj1iJO0CGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJEEAtRumutCblbVUAoN21
 SsteQ9dwvgr/CFJvAqLpJnhiAKCimyFDDWaQZB+ZzUpFtvbTPoGBIIhfBBMRAgAf
 AhsDAh4BAheABAsHAwIDFQIDAxYCAQIZAQUCPWIk7wAKCRBALUbprrQm5Vp2AJ9a
 2uCo3MpXBJ1PfUZUNYFTKaQV5wCeLkLx8V/bzG55wI14WPg02YZm+USIXwQTEQIA
 HwIbAwQLBwMCAxUCAwMWAgECHgECF4ACGQEFAj4476IACgkQQC1G6a60JuX1cQCg
 mXQygEurSCm92i/zfzMiCFz1jFIAnig2u+V1fZ0FSttJRT1jtoeen/8uiEYEExEC
 AAYFAkGFe0oACgkQntdYP8FOsoKFWACfWrXTLi9uiSYwmyIINer9dJs4YmYAn21A
 GHaOXHZ5vC+UOC5575qECus3tCFLaXJpbGwgUG9ub21hcmV3IDxrcmlvbkBuZXRp
 Yy5kZT6ISQQwEQIACQUCQzvgBwIdIAAKCRBALUbprrQm5aWZAKCa1sk42yaYjCBp
 685gHFsijMJGPgCgt7FxG9z7K0AGf3qajYufF+Zy7BuIXAQTEQIAHAIbAwQLBwMC
 AxUCAwMWAgECHgECF4AFAkDm+pEACgkQQC1G6a60JuUODwCePGW49pmVaSjX1GjV
 mvBAWkZFAvwAoNW1uJ7fFAEbfXaRwakBgRElOSFSiJwEEgECAAYFAj4xFKMACgkQ
 IkYMagPC+y3CYAQAnt5p0WARbMW0GcTxBTI1FHMyht6+iIdyiZS+nJiFkZrA7/Ly
 Obejxp/EUJJGkrLtVGlO2Pz+GkeHacYdqBSXFooRr8v8mnxrral/w3CFP/RdMi6A
 gVPuHwE0o+0ASIt088Fj0c3bOXwwrjNQfy0L1/yzQTkwolKRDduRy1MHMk6IRgQS
 EQIABgUCPjEUjQAKCRD31D6TzwF+Vw5WAKCNttrx9eqoWj6A+g9EeigFvaQQigCf
 begIctSzNceC0Xk3FafegcECZyqIRgQTEQIABgUCP6d+UwAKCRApq9wmu0emN95m
 AJ4y8/2ZJoQaECoYdaGo8ZSNtbpf2QCfThLt4w0bRfYcmhTF/4QCZ7Fz0ueIXAQT
 EQIAHAIbAwIeAQIXgAQLBwMCAxUCAwMWAgEFAkDm+pEACgkQQC1G6a60JuXRDwCg
 hGV2pc5fTdA9cIiVJyglpUcdHhIAoL7T8XJosiNxB+DgBd21QiMIuKT/iF8EExEC
 AB8CGwMCHgECF4AECwcDAgMVAgMDFgIBAhkBBQJA5vqRAAoJEEAtRumutCbl424A
 n2n34YG25f4KegjUUavRc5SPtUSvAJ9vh1VvX5H05xi8jEs12IibgHkzPYhGBBIR
 AgAGBQI/z0OzAAoJEAI+7vv+ud5/Z+UAoIVi8c4sDkHCNrdKzdAoLrBuVmdLAJwP
 96LFaYaOMcHnEPD8+Cz9HZe004hGBBMRAgAGBQJBgkLIAAoJECLKWEx6e6PABTMA
 oKgxR99yRHNApvrvOUmiQtAKzyRxAKCCqOJ+ZyMRHsLEC2W8DZOEEXkWwYhGBBMR
 AgAGBQJBg7JnAAoJEKkX6cyZbhReyq8AoISXZwf9atA4+X+TZowHl+JZ7nIwAJ9W
 JNVoIVYPX9gn5VVOmVZW3mgnbohcBBMRAgAcAhsDAh4BAheABAsHAwIDFQIDAxYC
 AQUCPWIk7gAKCRBALUbprrQm5XPaAKCMY192sg8f5s8ZW3leLryarwE4XwCgnteH
 QH+IX8Twz3JYkAN5W1RkWomIXAQTEQIAHAUCPle8qwIbAwQLBwMCAxUCAwMWAgEC
 HgECF4AACgkQQC1G6a60JuVCWQCgorM+0KdXDg45pjCoUb+Wi6KAyAAAoLsoEOWK
 6eGqHdhGfCoSdd6eZi8HiF8EExECAB8CGwMCHgECF4AECwcDAgMVAgMDFgIBAhkB
 BQI9YiTvAAoJEEAtRumutCblWnYAn1ra4KjcylcEnU99RlQ1gVMppBXnAJ4uQvHx
 X9vMbnnAjXhY+DTZhmb5RIhGBBMRAgAGBQJBhXtOAAoJEJ7XWD/BTrKCzwsAnjaQ
 1B3xIijhfU0bY9+ciHECAWSfAKCM9qCT7HU5gyZBlnzZakoJ8sFKwrQgS2lyaWxs
 IFBvbm9tYXJldyA8a3Jpb25AZ3V1Zy5kZT6IXAQTEQIAHAIbAwQLBwMCAxUCAwMW
 AgECHgECF4AFAkDm+pEACgkQQC1G6a60JuWD9ACglvGqYhfbQFtmUllo91eLDkyP
 tNYAoIKaONf0SDGy/KXOJs3MrxLRYVO9iEYEExECAAYFAj+nflAACgkQKavcJrtH
 pjdDdQCcDeFqdZf5xo13MGSntJYqeRYgo4sAn1wW6Jc4YtkTHomgGOMKZDmKmevQ
 iEYEEhECAAYFAj/PQ7MACgkQAj7u+/653n/AQwCfaET8Jm26uA408mc26UmP/Ouo
 RLoAoLJxKhLAfPuSshj+7ABwwOj57lYkiEYEExECAAYFAkGCQsgACgkQIspYTHp7
 o8AWGwCePjXyJyFCFygVuY3iM2BV6/W0EMkAn1K79ljQfNng7EhsaPDGDan19782
 iEYEExECAAYFAkGDsmcACgkQqRfpzJluFF6u+QCghB+5YspNSN4sbOPXuRLcQhpf
 2HIAn2u/pVDphblCDMs3jc3+BSe9ZO3MiFwEExECABwFAj6YESgCGwMECwcDAgMV
 AgMDFgIBAh4BAheAAAoJEEAtRumutCblSzYAn19J7vtDM8wmVHp1ewEsfTIRxir3
 AKD21tPp/AUKEWyxYv33jJfxGQHeaYhGBBMRAgAGBQJBhXtOAAoJEJ7XWD/BTrKC
 xj0AoM/PvuVaHrER/GWAd0vCtqHtdTwzAJ9N0fS7w/W9ps7nmfkyhm5TbdqM6bQk
 S2lyaWxsIFBvbm9tYXJldyA8a3Jpb25ARnJlZUJTRC5vcmc+iF4EExECAB4CGwMG
 CwkIBwMCAxUCAwMWAgECHgECF4AFAkDm+pEACgkQQC1G6a60JuWuCwCghzLuoJla
 zCcTUdyTr2ucyCGs9B8Ani2RMiTeHHgZ0biUq7cxPpsa6d7siEYEExECAAYFAj+n
 flMACgkQKavcJrtHpjeQqwCeN69PlhJ6+evCdm3kuYFjNTqM5MYAnjHWWcFXdjdp
 noC0IFLM9NbaXTJuiEYEERECAAYFAj/sfmIACgkQSypIl9OdoOOXdgCgpL1FyZpl
 uMeKr0lBh0dkRyoOsC8AoNbO2KwRBJQX4qihiYA4JLyXMcamiEYEExECAAYFAkGC
 QsgACgkQIspYTHp7o8AAMgCgvaiBzwONqocWYIfT+gm+aOFcdgYAoL/TKjNZL5xf
 AQkCYnHanTYdoOhiiEYEExECAAYFAkGDsmcACgkQqRfpzJluFF4BSQCfZQHleSVe
 sP3Zp4N1OHRzIOdexMkAn1rUD1iM2a/+s4zuHHbdUu3PMtLeiF4EExECAB4FAj8a
 /hYCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQQC1G6a60JuXBVACeIesPvX4O
 xrCyEVg4EdWtaHVSWU0AnRVTx9ozo2I5JY24AZpbDR5BHYmBiEYEExECAAYFAkGF
 e04ACgkQntdYP8FOsoIzhwCgo8+i6YtHWQndOyT9d0byglXLKEcAoJqOUHg04hSY
 50PZq61GoRvjspJktC5LaXJpbGwgUG9ub21hcmV3IDxwb25vbWFyZUB1bmktZHVl
 c3NlbGRvcmYuZGU+iFYEMBECABYFAj8c6qkPHSBubyB2YWxpZCBtYWlsAAoJEEAt
 RumutCbl3rMAn2S90LgLYaI8Mq8eYazFBuKi+AMZAKDt7FHkTFxnW2krdPsbNyp+
 31fbZYhJBBMRAgAJBQI+OjdtAgcAAAoJECmr3Ca7R6Y3rbEAn2vsY2oejzqXeHWQ
 rtnRWgM6oHBRAJ9pJdFeeHgspUQzs/KUv3w0tU8OzIhcBBMRAgAcBQI97yBdAhsD
 BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRBALUbprrQm5RAcAKDnHNqUhX8CYuOZcwf8
 V+3y1HK3xwCgiM3TddgGLXMsYuqVzw80P4UEA6uInwQwAQIACQUCPjk1jwIdIAAK
 CRAiRgxqA8L7Lbm1A/9jVq2A0HxK7lyUeliRCPnmnenb2YUWHfiUIx4vrvB+6DOf
 xKxzLACnDkO4lgIHSYS0VyoxP/DOwAQurOnGxAIr0qhw3lmYnfdLwXamqR2Q8a70
 vBevnA5eK2YUz+OeZt1IAaYqtFZH2P1NuFClqQ07XG6oty3wHJBsGlA9qDJEmohJ
 BDARAgAJBQI+OTWSAh0gAAoJEPfUPpPPAX5XzVAAn2Wmbk30E9/MewUZKgFO6bm8
 9bL1AJ99Pt7/TRkSmAmixHoaH5TMnDsyP4icBBIBAgAGBQI+MRSjAAoJECJGDGoD
 wvstD64D/0960yPzqfTRCybADBCszlLIn8CiboKHFymC/NtVXeO8EGERPtVmxhoT
 +o3BplvOBsrDfDRUClgN3nxH5jtv6VN8U1a1b0RmTaPx3EA4KSLsGAIF9ewa3FN2
 J5VpKLDSeO3doISs8p6Uo9J3dMC78cfS/+mkIirgxvysSxL55ZWriEYEEhECAAYF
 Aj4xFI0ACgkQ99Q+k88BfldDYwCdEAMd2/9SBL1eYn6RoxmAfS5TiBwAn3o3hX5N
 MLb3hR/H7I6yg4+/D8p3iFwEExECABwCGwMCHgECF4AECwcDAgMVAgMDFgIBBQI9
 kuNkAAoJEEAtRumutCblbKkAni4Ij1OFr+AIeKeabUSn4heCvQ30AKCvqWMHlMDN
 Sd50qKD8ZhAKqFp2O4hGBBIRAgAGBQI/z0OzAAoJEAI+7vv+ud5/nhMAn3F8y8SF
 eG9gB7nMjdzSRQFZxd1KAJsGrgdih8ipPitUEnTK40DFeJYjqbQvS2lyaWxsIFBv
 bm9tYXJldyA8a2lyaWxsLnBvbm9tYXJld0B0LW9ubGluZS5kZT6InAQSAQIABgUC
 PjEUoQAKCRAiRgxqA8L7LZgnBACI1na6AlmmQtnYpi9PYpOrrjrHQ/nEGKejU76N
 9NygpHWtM1OwSzREbSB9b+HiHOd4SCFWYEYMiEkckJwry+LnLosuNLjS7J4az7lR
 v0lpwAAxarpXyl+C/VWMNdlAJR4MChEBOnuyRk90By8QvUkoWR/C9ZQ29Pw3YYeU
 5MFYPohGBBIRAgAGBQI+MRSKAAoJEPfUPpPPAX5XqzAAniETW4ZW7lPtGZ1O0fzn
 zI2Gw562AJ0TRC53/cyjm5V8vPGxGngT/Hyi9IhZBBMRAgAZAheABAsHAwIDFQID
 AxYCAQIeAQUCPLCDoAAKCRBALUbprrQm5WSOAJ9JcURIAP88Y5G3uCZFYuMlXnps
 AACgyfJXskNyB/d6PmYO3juzndVdNE6ISQQwEQIACQUCPjk0KwIdIAAKCRBALUbp
 rrQm5WBmAKDhsv833kIEsJAABkecn6T6Vis7hgCgxnnbyUSRzLRKUZfGespCfjO8
 5FeIXwQTEQIAHwIbAwQLBwMCAxUCAwMWAgECHgECF4ACGQEFAj4476IACgkQQC1G
 6a60JuX1cQCgmXQygEurSCm92i/zfzMiCFz1jFIAnig2u+V1fZ0FSttJRT1jtoee
 n/8uiF8EExECABcFAjywg58FCwcKAwQDFQMCAxYCAQIXgAASCRBALUbprrQm5Qdl
 R1BHAAEBbYgAn1486u2jzX6/5y3vGlk7Yp6CqTtYAJwKj5xDJgCXxH6t+XQIhDpV
 j89tF7kBDQQ8sIOiEAQAvB19+liKQdIpwXF7FYgfXBJcoNOwETDUJ0DWx4cv8O5z
 MlNuMvERiSod4+lDO0E51TAzTJY5scjSDgXgDUrhE9BriwIGCtSR6NezsdesGsUO
 tuvJAWG6WK0P5Iq3PB6c6bhVcYrsTTCzZ9G1dsG33aTOQBRL0bY6NYdbraln0W8A
 AwUD/RJtSNbtdSP8CEK9rJ7qlpJvQIOgmBN+F5QJDPQKfFfTU0YC7VHRuglLlMFD
 w/uJ3CjTzUAK4Xi/G4iqRYCSAPZLuwqwnMsNo1QKciNXrA2R3SoP4nPvU6yBuFdf
 kTLuzqEbPCBpPFhpvkVWZ+UZQ2Uyz30dgalfnk14+38qks0ciEwEGBECAAwFAkDm
 +6wFCQYXq4oACgkQQC1G6a60JuUKfACfXEg4tAhXdEK2szWGva4E00ABdsgAmgPg
 ggBoopYQ6DmFkRrHXMFQi37ZuQGiBD43+FkRBAC6CRBHzVwjw3b0789Sz23niUFz
 Kw9NtWo4VtHg1CdlA3/7+hrXHOmxcAo2SwaB8viHczQrlYkXaAQbtdGZdFlD1Y1l
 UNbJ+aruP+nvH3FBvEAqNb0vNpqeXyQshD+PYwRuozfK4wxprWdajAXVYVyolieF
 xqyYRKAGqaL9wVcVbwCguIC3no2xieR7PROKzOq+V+QkoBsD/R0rItfbrTRoj44C
 A6U6AoUjv/lmPD2HY/mkNaeJxZ0llcyzEFeEFAKbFYg2UMfqaGPVPiCxjd2UyFtn
 8Im8SLjgPQrUT/0/lPmxunFuRT4gZRbNAR23O94Bg0Vy3ENrvEGz0GwjfC+VG2sY
 Ie86WTgXT8eV8SEoHy3FKpJThZSZBACfkNAM5zNoozsG+6Wy3mFqtGTlZxu3HDN/
 u3oZx2iTyp15vk8i/BZwgQ/9dhUlA+ZJnsLDptxlxZ/ijAl4lay28BuOD9e7pkCS
 lkTsyppZQgrLxcc0qUSlUpHq8njNfVdBNw6frPZ1bahnFswkK8fYudExSb86b0G8
 isz8uUmL5YhUBBgRAgAMBQI+N/hZBQkAdqcAABIJEEAtRumutCblB2VHUEcAAQEJ
 JwCfVNDbmFGAmYfovBUdHECf3wgxSPkAniqYGRFgyTNE2Xd69ZSHBQqTeb3iuQGi
 BEPeZqoRBACTA7MjMMsGG7etACeRtt/PXAjaDVCU8BbZir65iauH4eT7fclN9KWZ
 PD0TGtM2uvk11qmlKqStNzadBtztWjspC/dYj0nYZXSJlW38FUwTYHNdlS2fd6Ng
 BDJKeD6jkhiM2x2ItnQ8DBmFMH7Ht9v/9NPLgwd6eZn0NYwOctWNqwCg/JsIvBzq
 QXEAi+LHZgRKCOQJkckD/0Aa4PeMPC0RLsL4/I3/EsgaQu+h6Bdf2QdQ2Gn79qzx
 SU+EofIVpwzQlvxSQVNJ+RX+vWXM0zYJaeEt2i6oYcE62TkV7vYhH6Fyu8E97DM2
 l5FeoOnIaRGSjgy28xzRf2lXjFkgcbV2+LgehAJB5y9CbiRXBO9xa5HdySLDeZWZ
 A/wIHmRInOk+t4ifo7SSvV8DA96sk2vBF5n7h3+zoZIz7I/kePcpFXYrqUeTWBT1
 EfUgOZdbwMGyYXec+BBR6TUvYEBeJE1nSAfrJp3NRXFRCekMuIs5laA7vXFveOSg
 bhlh3pSS2QCalwSyh3wf3j1fj1Zt55JtauWZYq+a4zoNaohPBBgRAgAPAhsCBQJD
 3mkjBQkDwml5AAoJEEAtRumutCbl6v0An0VQkbwR/gHNcmqLZZe5XseezcSJAKCS
 YShlk9jSrQJY/yGMh/SVSf/MsbkCDQRD3muSEAgAg+59j6HezJydLmHIPEyBD9Bu
 8f8gKjHaoQ5glrgFMYKbLdEOOqzOejjnzF3BJBhFlzlFIQWCkUlO1Yf6tiG8rX4T
 QFochpx5jxEWSW7UCx1lYyztkOw7LmHTk7zhcs4MWD/YjQIfZ/M+/ZXNACYwr3Lx
 xTOKz+tIgPix/ixl3IVRteM3pej5PlBvcyiODFsFBpUXoJiL3nx2fQFtWKsqooIG
 VrrNsscvC8sn1pvGPZTc3gpyQYyzxkiVR1djz18NmOh8yXe2RYxJjhn1tQNpJgPn
 Tk1e4caJcS83aTS9sy+j7MXyV4WGVcJ/4MH1Qq/ehPdKMXAs/VV5ooocsYrr6wAD
 Bgf+ICK3je9GpUf+ZsDRhv3CQmwbvRdRY3wY2bUM5DckJw7Lx//ozE1po9SDB5yz
 h3+P7UqBHi4z1ShTN/S+CBGzQ6+ikZlPpbzMppEDf6+0SQnJYZSlvAD1/Qud0ff/
 aTa4WBbACpg1bVKENA6p8ZwhYPXUyrYkLSTMLyfkvn2fQ8la0/ojXqtVbMq3OPc6
 L4wv+5CQgZRmMXMhkUVg8QYZSi3pYKC7fg+aR2OY4fUbWt8Dr2p6LVDVOdR7F12c
 G45gQfEdycMVUrmdQvaxphTUzxo7n0x6bI2m2O4IY9neEjbm1+osY2IGmJVDy1RK
 Ya78PZp3pb4F7NsT2LYoghixNIhPBBgRAgAPBQJD3muSAhsMBQkDwmcAAAoJEEAt
 RumutCbl+OMAoLl0iDfAr3+Sek9FeA/LpkozE+ctAKD1thZXB7RPP7lZehP9cK2v
 6MXOtw==
 =3Md4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.251. Stephane E. Potvin <sepotvin@FreeBSD.org>

 pub   1024D/3097FE7B 2002-08-06
       Key fingerprint = 6B56 62FA ADE1 6F46 BB62  8B1C 99D3 97B5 3097 FE7B
 uid                  Stephane E. Potvin <sepotvin@videotron.ca>
 uid                  Stephane E. Potvin <stephane.potvin@telcobridges.com>
 uid                  Stephane E. Potvin <stephane_potvin@telcobridges.com>
 uid                  Stephane E. Potvin <sepotvin@FreeBSD.org>
 sub   2048g/0C427BC9 2002-08-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD1QNM0RBADbw1IMsD6ShBkXQirwG9TUFkBfZOaGUB9nZZTGZzkDWsj9/8FP
 TacAKze6REEdtfADFyYolZrps+o0xVUI3ib5kzXnzz8yj41HTzR7PG0FcgINt5Ls
 yuq+d3ETSu2AALwNfolKy/9yIIcRFl1bI5cawOua5MB4VUaf4JHiyOikfwCg/zsO
 QReMvoKLcZkn9pcCH6EZHtkEAIxZKMcRaIuGe0vF3oP4GfuEXIa7K7R9ez0u3iiD
 inNPQ5vQuY0qJMLbZAu6wyqEP9wVXCdAiclBbPYRb9tabcV5gFkuXpLvq5E7pGkN
 hRF/rUeDxf/EKIklqe63KNqgzMZ2nM8lvoDkUrdSQL5dc2Y5a6VIq22QsgaraYmo
 j4p7BACAfCiZjND9VcNAQmTvEyNGslQ63gzUfE7D8Xlx2Glv4PP9AmZ2X+FRliY4
 YaARKDK+62bNTrJjQGiaIzz9LsFV5zpYvHBQ9KP6NIp5bP3ljaUwyAJt5+GT8sGZ
 ZOBpSmau+s8RmSPajjvSwACjWF9tP19IJMtnk+pMn1SGiVbMA7QqU3RlcGhhbmUg
 RS4gUG90dmluIDxzZXBvdHZpbkB2aWRlb3Ryb24uY2E+iEYEEBECAAYFAj3s8qYA
 CgkQpvaYsfdm3ZH1VgCg3x3Qbvq/n5W/xonGXqI6+LJXLw0Anj5AgE0GPTC1naYn
 KpFmD9Hb+m6LiFgEEBECABgFAj1QNM0ICwMJCAcCAQoCGQEFGwMAAAAACgkQmdOX
 tTCX/nvccgCeIGN+hK7GND/4+9BbHpXOOnnlsJ0AoOavUpZeUj/t6pw+ld4CU7t5
 iUrhtDVTdGVwaGFuZSBFLiBQb3R2aW4gPHN0ZXBoYW5lLnBvdHZpbkB0ZWxjb2Jy
 aWRnZXMuY29tPohGBBARAgAGBQI94tEZAAoJEJnTl7Uwl/57WiQAniYT7h0K32tZ
 1+PkyM0UUvu/Vg3JAKD2VXNsiI3w3o/xm20IqR/UwZtAVLQ1U3RlcGhhbmUgRS4g
 UG90dmluIDxzdGVwaGFuZV9wb3R2aW5AdGVsY29icmlkZ2VzLmNvbT6IRgQQEQIA
 BgUCPeLNjQAKCRCZ05e1MJf+e0K7AJ9YssAR7btTX0oE9MNYYVQBbfYNpACfdyiD
 QeQhD+7FNqs4cZ+GEsWMxJ+0LVN0ZXBoYW5lIEUuIFBvdHZpbiA8c3RlcGhhbmVf
 cG90dmluQG5tc3MuY29tPohxBDARAgAxBQJD6jKhKh0gSSBubyBsb25nZXIgd29y
 ayBmb3IgTk1TIENvbW11bmljYXRpb25zLgAKCRCZ05e1MJf+ewE7AJsEexwRGNC9
 uR8JUPjttVJG012/VQCfVg4M1xq2+h3Ys/DecKUVxt0uVsK0KVN0ZXBoYW5lIEUu
 IFBvdHZpbiA8c2Vwb3R2aW5ARnJlZUJTRC5vcmc+iGAEExECACAFAkXQf8MCGwMG
 CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRCZ05e1MJf+ey10AJsHFjVs9WEaui/i
 L9xfITeCmwkd/gCcDlRcmGUW3ov/jmeDzGFrE+MQsqK5Ag0EPVA0zRAIAPZCV7cI
 fwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ
 +AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm
 /xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1F
 HQ98iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzh
 sSlAGBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZ
 Jrqrol7DVekyCzsAAgIH/3fG4jw0qo+iUk3wwS3oLPf5USbiPYOjUZ9jpaII8pYE
 iH7i741cPL8qNpFgshJANd4sz3Iu/hu3xj8aWaZ+jDOM674U69lcv1hl/rrHESIR
 oHIwfjmExLtnFl/2NvQ7uKM2jKoJNERtbi5P7PfLqD2Y8xK1W8cFZmPuD404SBRu
 ubk5BrYXv94VU8rxE34uhOEuAW/I6uv7DhCcr+bVJzJQYCsHxHh79kHsHEW6KAGb
 W34S96t9m8mgl7Kb+KCS7CqmqlmP4/itf/26wfXf5ynhRrWpUuc+jbf6n9afjjzm
 0CWCBS6/f2OALgJX+J5DUG5TggtFVKMMQRf5Bv79F0mITAQYEQIADAUCPVA0zQUb
 DAAAAAAKCRCZ05e1MJf+e4YEAKD8ArLrD9l/sJDn45ZDBjs3PxAEWwCgoy+go5Wt
 0MmiyLIGfKRYTeFnh6A=
 =AbPN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.252. Mark Pulford <markp@FreeBSD.org>

 pub  1024D/182C368F 2000-05-10 Mark Pulford <markp@FreeBSD.org>
      Key fingerprint = 58C9 C9BF C758 D8D4 7022  8EF5 559F 7F7B 182C 368F
 uid                            Mark Pulford <mark@kyne.com.au>
 sub  2048g/380573E8 2000-05-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDkY4OYRBADvB+3Uh68SGrlbrq1MTAN/gnVaj4ztmA15X13bunGYdLKLEJdq
 rd9xFv5OgxGZXJ+sDhbKomJ7yrBGtUwC5kIrKXN+MPbO60yy30+kIVLKjXIv1d+c
 MlWhjFzHra7WGFmvhzYnbOI/zjlOR68iKHnwxhtKFOK9m2O3voURWLEuqwCgzK/S
 j4UGrPUmZf9XOZcKdnN07nMEAJrNh6aoVgK1xwpyO9uTURuCppqAUym/fr4xNQqh
 mngblwIACnV9FpBi1ogtX1iDo4YeQa7t7ALgdwTBbU8upVFYzoVByid9ibNu3OKv
 j9JvL55jUVg0wv6a8bEWjxnNK/zVa/HCzTbAzHob0CSgH9WmEJJEUIqI2/PG2dj+
 ZX3QA/4y6Gon6iya2wk0Zs7mrTj80kxLRMnuPN6geTGVNTfrxat+sA1PVpT2WWSo
 qOrPoyxcpUBbJ3VlFmuYDDgld4lJiGD/2SG5BkD6OoGlRnD5AMgUxQtQFnkloao0
 3md8UDucIJnJRF94pttQtv4lVKaocm4z0Fx6cWC4Ysupj1AG0rQfTWFyayBQdWxm
 b3JkIDxtYXJrQGt5bmUuY29tLmF1PohWBBMRAgAWBQI5GODmBAsKBAMDFQMCAxYC
 AQIXgAAKCRBVn397GCw2jxyVAKCbPwK2rDZx/oahfd4M7XJ4GoF0xQCcDExtL+DK
 wOugUQwfVIExB+HBM3y0IE1hcmsgUHVsZm9yZCA8bWFya3BARnJlZUJTRC5vcmc+
 iFcEExECABcFAjse9k4FCwcKAwQDFQMCAxYCAQIXgAAKCRBVn397GCw2j/OXAJsF
 bdYQGgCs3sXMOdb7pNUi2DL2kgCdFOFSojmWV9mulpzH6ceb/fKgoJC5Ag0EORjh
 UxAIAMrmc2VXtnp/WWhGne6yTirnnWjR/c+rSK8ixbAqTkdYnocY6gtBJliR7LSh
 Cv2RD8TaUc0ZZseHC5vR7VZKXobXUF7QqB1Rgzz/CpsFeEmxxQxZrVKNjwcMloSt
 wmH17yW5tBDg8+6KhFwHj40oV88/49L8utVMEW80gh9O9TlYw5qCAp5QKqkFS52A
 hO54xjTNdEpv/9yXpwQfgUqkAHM8MQhsaxmKCIQXUGt6Lp13aHDAYtMizED0LBjV
 3P3qCoc03P9k2nWwGGU7dukncYNNuLDW9xwkAfV9VQuPYCHEBiPTcRnn99imyvNz
 FNhOElHDttCyKtt1FdZZVAQzXusAAwYH/18mnEMMv4rMZglYb0PRCxaxwQYkxESt
 KyXEclTc0kgyaZnf4Vbdz1rroxxZLIf+16p/MVNFierz/7d5FbJYggCDSsBAaj4r
 Qe2/Os3oCnHyyQY+zF9Ac30CsxzgDxMYxYGJHr6x+s9cloZ3WwBFAO0bMoS/9T/9
 /S7L0d0litecox5et2yEw4AqHdCslGx5mX0os66uh99eeEwW2EQHSLklwUPReb7U
 6m+fNyWxq5w+qTPG+zcXdiW/117T1aONVmg29tSNW8S/syha2PCJ+IoordBus4mU
 kfa49yCuXyZAYDNLbkiqMVTDCqrH2+n1mbUuhRBaSZEvgqVfVLZzRziIRgQYEQIA
 BgUCORjhUwAKCRBVn397GCw2j7T3AJ0ZDGzVqNQBE07ntRKuzQQmou8YhwCgibYR
 ZJyP31xlO+Lt5FgzzeqcQwU=
 =DKp2
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.253. Alejandro Pulver <alepulver@FreeBSD.org>

 pub   1024D/945C3F61 2005-11-13
       Key fingerprint = 085F E8A2 4896 4B19 42A4  4179 895D 3912 945C 3F61
 uid                  Alejandro Pulver (Ale's GPG key pair) <alepulver@FreeBSD.org>
 uid                  Alejandro Pulver (Ale's GPG key pair) <alejandro@varnet.biz>
 sub   2048g/6890C6CA 2005-11-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEN3W2YRBACt8uucrC3Gv8Q2PoAppL0Gdmy+ufJkvp+e3QpNnEvYPU7jivtZ
 MBuMVzadeiE2FMfzAhD90bLOxomZSwIKAc+uiMqqXrciOGMEBFFcHNOgHGI48me3
 fBvzQ4weJjGQrdUVOuQOtCNEmPHHdXOG0Vks+2ZD2czYDmixUkysso1gXwCg5ETt
 H/u9qXgKHxwQN1znhppBHu8D/2/ikj7Y8S5evZauwQ5m1qBMz7GS4FyXH8LZPPC3
 KJW9AHiNSOl4a0g6bH17OTaa6OOljyO0MzbM0UQDJON9JvGLH4q3ML0QQ145yfvQ
 fxLbFMU0B3MSOgFUkpRrWflbsleBp0BH6MCUNzdhDVgyQxyLkyr+mdX6m7N+EiF1
 m882A/9hz6+cmex12xdJnhx/frVL2Ji2deY4JntneNcZS7FBCWCe5d4weYUlLUJa
 sAZuwe/8q5BftMfHXeJzwLc+8zJ2EU6HEX7QdJTezSb7Mjh8Py8T/7TkyjK9LYJ7
 hg8BSx7hQ0xo1KJoDx057GjkE2PGW+ngUyAExGvZHc4Gos3lgLQ8QWxlamFuZHJv
 IFB1bHZlciAoQWxlJ3MgR1BHIGtleSBwYWlyKSA8YWxlamFuZHJvQHZhcm5ldC5i
 aXo+iF4EExECAB4FAkN3W2YCGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQiV05
 EpRcP2HiqACfSVe9jQLEj8zM/iMLO3S5aLY6EawAnjIo6VapDopNW66BjRzFKQ+D
 P56HtD1BbGVqYW5kcm8gUHVsdmVyIChBbGUncyBHUEcga2V5IHBhaXIpIDxhbGVw
 dWx2ZXJARnJlZUJTRC5vcmc+iGAEExECACAFAkQy/PwCGwMGCwkIBwMCBBUCCAME
 FgIDAQIeAQIXgAAKCRCJXTkSlFw/YcLPAKDTcYP8Uso5mQls/wFYuOsfruyyXQCa
 A/xZlNpAz+akVuPQZRh4qqHH0nC5Ag0EQ3dbdRAIALqYTavt1809JFOCuiaOZBeC
 /qK5Hvi70rgyIyUJj6q0RrC6FzEOTKGQIaLZSdxhG50lw2KFOCkq0ARfhdrezR0a
 0WQApeSb63hd1lvOz8ocyPkUI1IKc7aD0aQfcplaf3NmQJ6HF0rEzenRUoxy3mro
 R1yddUO/HosbvaeSCRabM1ORqx/G3WFfmX6dHuLltvbModDmOr04QbQ4+gctmplR
 qtk7eRXAFAG+Fo7lkhF0z1KUFQF56kL3rDXaAQzE/Vv6Rgk9vOYGXLJQdngNIXhC
 KVzrkqrZXj4El1gfSR1Dl32AzZtY6acGF2GvMGm2R2udTHsYeyCYXKlBRu6xakMA
 AwUH/iRn8SsuszctzdLqNxideej+9FQ+nHaMBw3Y+N1tlkHeDVmPDNiTotOzYo/V
 aRhW3bAebwEQr5bOs/6bnDrK86b2PUuwC/XtE9nXF9f1QQvApIyKzW6VG/FsQIpd
 +5lNWfRDKmoUZpMeKg9bQCjeFk8tFXsnp6kn8NhEAMCCeDwiWYUl8pcFlNIwPs1M
 brkZ7QCbA8OFAK0YkzUqYmvKPIS2SjpMA+uPJ0674v8kMuh9VhcQj/1RKKR0q2Fm
 sUykWFoGEp1FAVpMkKa2cKS3vYgpobMjVYeMWhsWXAFM9hZT9gI5oKVo7ECUZEBO
 f9dufNDZ1UHAHlAojMMCW53/fGSISQQYEQIACQUCQ3dbdQIbDAAKCRCJXTkSlFw/
 YY8XAKCxojHrj/8OzUI3PFFTS1/afkj3HwCgz5wfMMjyDZG8rUt9ZFbUVN/RPs8=
 =iWC8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.254. Thomas Quinot <thomas@FreeBSD.org>

 pub  1024D/393D2469 1999-09-23 Thomas Quinot <thomas@cuivre.fr.eu.org>
  Empreinte de la cle = 4737 A0AD E596 6D30 4356  29B8 004D 54B8 393D 2469
 uid                            Thomas Quinot <thomas@debian.org>
 uid                            Thomas Quinot <thomas@FreeBSD.org>
 sub  1024g/8DE13BB2 1999-09-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (FreeBSD)

 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
 =mFN1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.255. Herve Quiroz <hq@FreeBSD.org>

 pub  1024D/85AC8A80 2004-07-22 Herve Quiroz <hq@FreeBSD.org>
      Key fingerprint = 14F5 BC56 D736 102D 41AF  A07B 1D97 CE6C 85AC 8A80
 uid                            Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
 sub  1024g/8ECCAFED 2004-07-22

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBED/zxERBADJcZlF+Rzm8wL5lPTTPA1zLwa9u4ZZeVheS9vRGTOC6Sfi2NV9
 feWCM4TR9CVtp2tAcVlrXjBzvhbeNajssCPn94qUh4z8ERJKT1R8n4zlilTcMTSQ
 qZ9t7mIpcpsmpCO1FvfozjfexpUSeLHONKlwHhXXQFdJm6bw3X+kZKUeQwCgut4g
 ilrxtY66n6pzC7jt8GaM1ikD+gLzk88lPNHA8hZurRaYoRD2cD7jOMk0WNuuRZLA
 4LsG+hJUyrPU5vLKou+2iXl6MBvjlYwY3FS5wc1PZ9tRRbMNIq71xCTXmSapks50
 M+/cVYhJhQTVWCFhY+HZLDJpiaeMEkTHqoXo6ePVSMgFDQXADv/hMIPkNheXzmXM
 yhw0BAC75FBSMcRJz8jOaHXSZ7AM9EdMhH4mru1YyfLzwqk0DQS7ToXc8mEpo9SJ
 c/rYfSHf6Egx9856sncCfLvoTScZDwWXvB7kJPOfXK0u8KK1uZBDAqEacmm2oEHd
 Xi0KbfW1zyqIPnLKjgu57OqSGyDBKzC2XuQvWcNk7Sol/Yxp9rQsSGVydmUgUXVp
 cm96IDxoZXJ2ZS5xdWlyb3pAZXNpbC51bml2LW1ycy5mcj6IXgQTEQIAHgUCQP/P
 EQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAdl85shayKgHKNAJ9/qmkJgaMW
 zOFnMUGcH/fc9ksrZwCbBhYIuo/nnHe9tC53mIlqDoXOz/a0HUhlcnZlIFF1aXJv
 eiA8aHFARnJlZUJTRC5vcmc+iF4EExECAB4FAkEOc8MCGwMGCwkIBwMCAxUCAwMW
 AgECHgECF4AACgkQHZfObIWsioA0SgCdF2eAlmqyihMQVf/T8r/x6x385vIAoIhZ
 hhYxTsWZ4dUA1XmbEfZxMQPvuQENBED/zxMQBAC8M+1oDgxVjVnYlhapOHWNMDlU
 1LolN2B9sUm56K0UaCpnCsrm2Jc/kzr1egmjqxGkV1dIih65W+oPZQOBqq4mAvPI
 SRlE0MrcPCeRyzN4zSwqwu1o0rcCWaacPpNxnG5icluD1RPBDucRPhc8gFMmcfEq
 5pgw3LU58ZIrvB3FLwADBQQAjM9l/u6o0CVwRZ6XshuJQnc7Kt+su/xyZjkYqURp
 sZ8Q9xWgKI4Tv/x+IbgkU5D2vCu6FyfDpBMWsNnSxVJ8FaHCWDKLpDHxB0+RUcme
 HRcpvV+HnLvJtF1V0dRB3XVtD8h6TcGuntFlKHFTKKQk4H5X+fbsUdq4ycNwgNm/
 IfyISQQYEQIACQUCQP/PEwIbDAAKCRAdl85shayKgJrjAJ9S1aS1G9Vpq0kYjZHp
 pFmvrw+CbgCeIgeeepmX9+n+2YEAuWfJlX2KZCs=
 =Snnd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.256. Doug Rabson <dfr@FreeBSD.org>

 pub   1024D/59F57821 2004-02-07
       Key fingerprint = 9451 C4FE 1A7E 117B B95F  1F8F B123 456E 59F5 7821
 uid                  Doug Rabson <dfr@nlsystems.com>
 sub   1024g/6207AA32 2004-02-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEAlXqcRBADYFElOoUIMntNwwMiVO/7bQQGYgo0HOz2ih10GpP3iyNletvOt
 AbH7AFCB/D6eHO/pOs3khk3ys3xL618e8vxttN7/jC+GWlPb6zReE92A75iP7+ud
 aDCccDlpfsoLfTt8FlZnFuA+d6gJ48Aie5meq1T/IlFV/EJGZ3BfTyKkAwCg545G
 dnVFL0hRjIJkz6Bs5xKqpxUEAIpfe1Ik8aXgwgbW35dZPUtUNDU3OmullZO8z2BU
 HefkZDyL+y5MBO/9aGtjN+TpnhmhWcVKD7rhTsL4w8v719Kq3cGFfNL/E1D6YyCp
 /BU0/Hm9+1MMxPg+nIUkhU4HmtZGoLT71xRSendbZjCr+s31XXxA5YbLruztTRFT
 YcNyA/oDbsyMIcEemO7F2ypq2FPlnjjCISS2Fr0HsBQltedY1Kr+hfOnjYAcMfIQ
 QyojMPl3bV4IFcavIhkiQBPBwGJsj/SNgNhOek9v9c4iuLpXzzbOfO4WiRBkpUY/
 Fzefogi7d+9t/PyPVzd5Rzwx4eqrTYOeMT8TJmGLWkoUwbMe1rQfRG91ZyBSYWJz
 b24gPGRmckBubHN5c3RlbXMuY29tPohbBBMRAgAbBQJAJV6nBgsJCAcDAgMVAgMD
 FgIBAh4BAheAAAoJELEjRW5Z9Xghhw8An02BsS5+rEgyF+f+byeZy5sIrDnJAKDK
 GpoGPWfwZ8leK1MqENlxZZerx7kBDQRAJV6oEAQAvo0FvU58ew8t5XAo27wvwpxV
 pdWoKRTF7lS7ENfhwoiHVW2qsX/TfxyRw50BEtDUlFe7lBqSyskJ/3ejcVXuJ5cm
 vYmxrUEfas57AnBsJqFerQhqB2Pr6BwDUU9kpmJv9vAlt/vdX6lIkXTfvGcrSFWF
 7cDEL++0tD63ULOVQ4sAAwYD/1CUpkXjwmFkg72LddRrvmXtKxk3crql4dYj/wjQ
 JeWeZQT+HKOOIHYFENZAqC8GSfQ621DeFD+TIN9SNeBG8K1LNqxUk71QAwiYSz2R
 Cm3n97esKKD2SB0yJDQJo+MsQ7PKdQPJtCDk34x0JvA4eijiTj9yGdQX8jWi8Sd7
 H0NPiEYEGBECAAYFAkAlXqgACgkQsSNFbln1eCGOuwCeLy66OJdIebn1pU3UXo8O
 xlFnyncAoOYrXS8vPETOhlx/yeBVsgfX1vcL
 =ZXPM
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.257. Lars Balker Rasmussen <lbr@FreeBSD.org>

 pub   1024D/9EF6F27F 2006-04-30
       Key fingerprint = F251 28B7 897C 293E 04F8  71EE 4697 F477 9EF6 F27F
 uid                  Lars Balker Rasmussen <lbr@FreeBSD.org>
 sub   2048g/A8C1CFD4 2006-04-30

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBERUw7QRBADJY85JY9QB4nxv3rXAPnlW59gLmWzuuVNnKBrQsoD5jq6WrDEs
 fqqU2h/JwHB06RZMm/VUSH9MnsrxpGGKbIuJ9bRn9zA4qbgP0kPCMoyb9AmyGEYx
 bIp0N1PeYni64IQH3XGaycloWNhNDDLv6o+c6e+wNnRfUv1qygKhM8vf5wCgyN3/
 KgxrTIo27FnrLDatjxYgHeMEAKtOpeyGk8VhkxXX7t6/sD1HPvDiuYLfM/14VKWB
 ZXaWcOzhytZRFbu/DDG2sMiMFdK8Xu7a1Zsfa683kmpgqHkG0FYcS14Y8yHDU1IM
 GpCRz18v8tZwW4N1npJ/vthpL1B4Hx0SUhGo2HgE85pRHdsDbhp0S6pZW2ff25wZ
 ljhABACI2/zM6SbfibbyRsvJcyW/TOfnEOxHUFfqT3SFYAP79hRBsqCN8v4fSR54
 Tf+jHv7uYVH2lK3zED3sXn2VCgjD3jJNLkeGB6qY/WnWYCB63YwUXk2igOqGijJq
 XEVplNG6ExaQIco5vilOseqWuW5ONJKMM+iEi5TpfV1cPGFpAbQnTGFycyBCYWxr
 ZXIgUmFzbXVzc2VuIDxsYnJARnJlZUJTRC5vcmc+iGAEExECACAFAkRUw7QCGwMG
 CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBGl/R3nvbyf/xeAJ98F2AdELJxK6Po
 3rTPUqnJK+GZawCfX/0jvc82JWnGwbDcpyp0+xUJ/xe5Ag0ERFTEKxAIAP2AWduS
 +WfuTAqZlD2aIzyvzZPOJ7a8ZDmUtBDxbxuBetLMqC3oFMoZ1/857wV3J7Jvxx7u
 LFbpdYS/0zXTjyKE/NWqeHIuGH9fDOIDuUKT1ZkEh+OzfWQaUihYTib330LwWP1s
 9J8zLCJM1SdQSHVDOG9m+28JXH4ITmK3LkR3zdb/QYEOyFmHfhSqVQpZ/KEBYZ1K
 Kn0gItwqDILuk4v8BvR3ioWF1Ywod6JEMAgJvwypyDlyglvVVvav8UcOYIYfyv2i
 6g2EjIqmCpzaEa3m/RumCWaCLIIeZUqpM+rIfQyKcjgU8J254dFMqFYFIX7iFGnO
 FVhT8tyNXolkKWMAAwYIAPrna0LxXoNVdwCyAW6pcNR9LkWsalQ+cCTS15jnguq5
 V6HmMHsbAIwcXqZn6benX5g6Gx68gIrSS/c3iBMS3jiauIu/bjvhdTMLr0v/jXpp
 7HjdOkgwfdE184hxVzsO0w3UeWFVhmb6sW/Wb9OtdRTj160mHj5UsCycg7Q75R20
 2sBke5vP6o22CCNOZQxM615oFDgotYO/D5I8h/x08IQHlyxzgG2VXFbb/vvibOVs
 iFA246TaRzxYjo4pJ7apRKhXWX9Bm6Tl/X3X41idqbkZXXcdOV8i1jjJ+8hvmUXX
 BTrU4DyOHeRrKD2GRBGMn8WxhPL0DN+w2zBRpRdM7sWISQQYEQIACQUCRFTEKwIb
 DAAKCRBGl/R3nvbyfw7kAKCnpl/jNh5Hx0mkJ6BEDWlmGzuvMACeM95BWxxghmcn
 J6BmOEuZ+TPmHxc=
 =6byw
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.258. Chris Rees <crees@FreeBSD.org>

 pub   2048R/E1EBCAC4 2011-06-11 [expires: 2012-06-10]
       Key fingerprint = 2066 B855 E4B1 226A 8B4C  B6E6 B084 92D1 E1EB CAC4
 uid                  Chris Rees <crees@freebsd.org>
 sub   2048R/FA45D5D6 2011-06-11 [expires: 2012-06-10]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE3zP7YBCADI9977L+dBZPFBuI436OF4Q4MtVao5W1AflipqTpvt3PwUvNlZ
 1abmJFjglvOP8ilYEPyPjW7+E+r5/rGP6hce695AwrnU4fip5lCFyMUKKCQuSqDB
 n9gbKPiZKY9oI8dqJEn8zehvkdujgzy7dC2WB+nL/sOe9dagMvEiIM60cR4JTnNu
 pBePulRWX2p+GlSLbtrovOFChNGdwUhVIl869FOBWMrfMYRXIHwF88lBhzjm0zrL
 pjZUIKbBzbJ+jN11A/MC2UaI2jEHgoFn35g6s8AmVKfYp3bv3t05Yuy/najRaoa7
 qz7IZVnmqBbZlFL34ANIzNVlvyGYX6A01cAVABEBAAG0HkNocmlzIFJlZXMgPGNy
 ZWVzQGZyZWVic2Qub3JnPokBPgQTAQIAKAUCTfM/tgIbAwUJAeEzgAYLCQgHAwIG
 FQgCCQoLBBYCAwECHgECF4AACgkQsISS0eHrysRkgAf/QhvWrXPbdghpxWFJkO/E
 L8A3CbJCyEUvTLs8JRM+I7g0kdDQH03uw23GMHSNvnn3loncFGavSx7035BeJ22b
 oBmcVkjAKOoa0JPjGvrJiXlnCE8vxi0ed6O14WR7rZwN4WQftOY/pX+SOMgSU3wS
 rnm1YNp49H0f5H24qXRrpAjrvdPgnzEkyFWv/VzADsruA+8N68ut3DLP2GKaYBus
 GRvlGHMkt+rXgR1yNvQgwGikQ4wX+PhwqL58dz6Sp0SRikQnNba8ExSBWbd3Z3PD
 WGDzJUj3h/TdEvlRsGecFviGdBms0EO9RlJVPa+EYYx8GOlj/NkKLwHVGKbC0PmC
 V7kBDQRN8z+2AQgA2ItQ76DHBjDTfygxQcofK7jfI9JIe4zLHiQZSDs5452KTgp3
 A1apSyI40HpujPPR7cbAwXdwrFy6lkCY1u+dqh/jkpcqKEmUoPbOBQEBylfTn3Ca
 UZdilthppduRaHag5zJJiMOLBR38tM1enszIVU18BYttBVf/DEMEOyWAcSUDLk2R
 ioZqRLQGSjSwAbCuHaOhPoVl14EOgPesk3SSAQm8h5eHsiBOMejuyuMi/qFkvbXT
 ynUCNXYuw8i7xgWrP8YEn3GJFwLlZMwt+GYaCretXgL7Fp2Ytg9hLyfjK/ceiW7Y
 oTuTCRgb85RuwWsofEhsS+nPQMX1G4UJmjzXqQARAQABiQElBBgBAgAPBQJN8z+2
 AhsMBQkB4TOAAAoJELCEktHh68rEBugIALqhzu8BfqNxIVIROJSY1PcqFgMfDJac
 Oax9dOTkCjZL+Yim/EprUY4YwuRt3RX2CcXBa9QQ/p4e40P63IyX6r3jSU0QRu7h
 kLxSTn6l1tSYacskfumTQ8X8usByBIgpn/oRCTgM0Hl3QGZqR5EPGV4E1rzYsmie
 LbGNsxX0BH6xe7uJz2DLe6bhqCxasiW0mz/WQMcPWRMAD63fcchkdelRi3AcmTkp
 yeNUyIzr8jApA1SG5H6Z/xc+p5/vPj6uxbhCqXGXD5nKdMpX2zpmro2paM7oZNUJ
 LB0OcxVcma6qTL8orNQz9fs0mT9XITzjC7P5CbCJ5mEgORR9XTFz658=
 =7XI/
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.259. Jim Rees <rees@FreeBSD.org>

 pub   512/B623C791 1995/02/21 Jim Rees <rees@umich.edu>
           Key fingerprint =  02 5F 1B 15 B4 6E F1 3E  F1 C5 E0 1D EA CC 17 88

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (OpenBSD)

 mQBNAi9Kb+IAAAECAOaa/3k5Zo+9i/fUPQfU4fzrRFwNifp7ujcxLNFsnMgcWeJZ
 XMd6iGiomTlBSlIHeNKa+JMGPmBTRrL7I7Yjx5EABRG0GUppbSBSZWVzIDxyZWVz
 QHVtaWNoLmVkdT6JAFUDBRBDA7AqRrL7I7Yjx5EBAQSTAf0WL+tTm+n0NFF2xQUO
 ZfxpuqnERjNQY5KaWQuC6qk4UOVCwoBNA24ZxY7TifvhsNErMHMc6HTKGvzhyGyV
 q/pGiQEVAwUQOhrmBjZ8FqYKL4flAQGcEwgAwPj2xt3ITbeUWf6HiqA1u6FiIy+w
 T+GZC2Mit4UQNdjKuNJad7t56Wqem57IhOGDWGYZJoZki65y9jD0BB7MixjuQhhW
 CV/vjdiX+pDxa0HG/75CNS7PVribIuhpbTFR2tG/EZh0sl8yMUpYho81yUDMeHVN
 UV8YqerlqntgqVra2cfPanScFve9YYXVgEbM2wQyWnEG6q0wPL+upmoZ8ppozHfr
 dVYiOonwl6QrgtzavI3tHTHtxDajMJpnQLC0rWHQRmY0Xd9xs+YUpaoUcOQFUH8L
 PEp7d1OQDd6KJOV+mQ/Bf7tZwl7as3cl/16nCMZoDJVGNGCuug4vEeV36IkAlQIF
 EDMEqXeGvtRXff+FMwEBX3sD/1Uf0sqHFBfFtuphKG5ZK9cz12NRANLpVf0welRX
 Y/Yp9AIL9xGGiEFvlma1TN8IA50Gxgxq7cEiHDWT2Zh4Hps0VWmuH9vGwc84D6PW
 JXuuPV4sdfCZnJUj+g13P7ypSlPSS8WIDVET5vG+K5m8jOQJ0NPsWGaZMGknXfLT
 ZDWDiQCVAwUQL8yKYkDqOE5/AdFlAQEmFgP/VwyNP37Vaunu7DdvBblDMpfMStds
 9GY0Jmhe7q1EkkGjwSJHtkn31yPwdb/93d25puCU6rZ1+qw5jKMY9qa8RvCOnnNF
 vN0fOqGso+We3q2rGamjBYtVnihYBni7jCBTJ1lvHixWM5XjyGkIQsRBoh3qNUNA
 I3LeH1ArE3IHzDSJAJUDBRAvxTnlxS1HbQ2/kG0BAeaxA/wPKsCrDl3qJsxrLPUP
 tMfXhGBeOZWPMx1rulCknHpTgfjPpA7soh7K9zi9LAatR08sotD7oAFWslP/OR/F
 DsaLWztFjSmu1laZyU5E7yCIsHgILX0aIsazYW0UoYqCm87FDzHP1kjXs7c6mgOJ
 g2YIY6o3UH4azIigo37B52J6Ng==
 =O0QA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.260. Benedict Reuschling <bcr@FreeBSD.org>

 pub   1024D/4A819348 2009-05-24
       Key fingerprint = 2D8C BDF9 30FA 75A5 A0DF  D724 4D26 502E 4A81 9348
 uid                  Benedict Reuschling <bcr@FreeBSD.org>
 sub   2048g/8DA16EDD 2009-05-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEoZOPQRBADIhhxLB7VS78ooK4j9HuEjamF7QZTXvti7rtJdnJRZtpHW2Tzo
 GWbmlyYBQoGTk8DVuUoQCO6yy0PNe9CVUDxyXz5dUL8/fSfAOhwZowXF7X5mSP5I
 2G70oN9PgdMhxazIPoUlRFAtuDEZl8udtCOVyhiLylXnHj3LJS6XG2oetwCg33hC
 UWM/ZW2XZUt7+LQfdbTvgycD/AqrDrqazX86fI5MjeRuXB75i6OCUGorcWH2T8i+
 P6r3+1A1zjxhXcYMsCI4CDBHo2Z9oq2LN7ullvutfQA3sFR2KxuJmOa7GqHFI7Zl
 PYiRD4Zkuma2bAxIzer65IwQaaC58MCoBxTUqyKys4cv0Lalj6bh+yVArG0v8is2
 5E8aBAC4GptIHT6kfx1515W/1aBiPo+2Qu3227FLyNypKu3x/EwmFu3igbir6EOf
 uQLbjWclnJv2IXZhxiS08EoD6sFFrgDYAcXa3qPpIMjYEEmH5RziISGDwqCazgFY
 63paO2B8aHJB1W+A7jz7PYMsLNXt0JhwG4hLgK8fWT0NKG2TSLQlQmVuZWRpY3Qg
 UmV1c2NobGluZyA8YmNyQEZyZWVCU0Qub3JnPohgBBMRAgAgBQJKGTj0AhsjBgsJ
 CAcDAgQVAggDBBYCAwECHgECF4AACgkQTSZQLkqBk0hwvACeKQW/gMO7z6hv57J2
 4Ed012vx6mIAoL2JyQyqhtwjM3QJ90ZCvB073uTmuQINBEoZOPQQCACi/zTUlqiY
 dA+XNPPH93JSArILJcRIamP8n+Ans6akcluVONe5qRG1txgpclh9/v0Cv3qkr3hM
 Whm3Hh0zCtlrpZbd3oS1qdejpnCJxWTyISI/n6LXyoZ9YHI+IdYkcQowxxFDw+0J
 jIF/ROzHRyAmHqN0ORPyN0a+Xu4st+lgWBCj84op2xzzId+d4mTTyjvlAzbBaijI
 xMdbca3R5V4ISFzGiOHtEWQYb0lUz/DZVXYC22JnQdqtOJy/vZ9IMsSdi0tWsugo
 DGRtfdLAsg6PHIQZgTwbfehQmdSsLAAy43uvs1ywT7Nh0ffCmQawvvOhUOlIrYXU
 jxnIxQkncTqDAAMFB/91mznM5M2NWRhEIG5p0SKJaq4rrXUngMA0Tl4dhrJhlkol
 TfTTlS2u8jSjEK+39Lbs8uWZDXg8PHK2i8LOmgmuf1JfRV0clJMa01D/ZHIBRVB/
 TrJ3ia9rM7EG+2GBFzjkuMEpKBFrW/YLtCJZUdYfyQRjtLRCa3NEfQolvUvA3V+W
 ehixnxIpUJrz3JjLGcDVJx0tkgtFV8f1D6O9WEUc9jLzAM7ehrqbA1QQFlnwDcZo
 T1m0+Js3cIOfiLMqHB6iZi0tBTj5A2h5C/lWVCdw0HYjZkRKc2uG7nFfv++9mqS4
 HyiCcDiyStR01S/CuV5TCLZ17tW1Ihi53EGO8K3hiEkEGBECAAkFAkoZOPQCGwwA
 CgkQTSZQLkqBk0jJ8ACcDgRWhxql58ou07O1MZZbCBzDnkwAoI0ngzxuGBDgIIyx
 vPpqAjKmWnR2
 =WFIY
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.261. Tom Rhodes <trhodes@FreeBSD.org>

 pub   1024D/FB7D88E1 2008-05-07
       Key fingerprint = 8279 3100 2DF2 F00E 7FDD  AC2C 5776 23AB FB7D 88E1
 uid                  Tom Rhodes (trhodes) <trhodes@FreeBSD.org>
 sub   4096g/7B0CD79F 2008-05-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v2.0.9 (FreeBSD)

 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
 =S+Kg
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.262. Benno Rice <benno@FreeBSD.org>

 pub  1024D/87C59909 2002-01-16 Benno Rice <benno@FreeBSD.org>
      Key fingerprint = CE27 DADA 08E3 FAA3 88F1  5B31 5E34 705A 87C5 9909
 uid                            Benno Rice <benno@jeamland.net>
 sub  1024g/4F7C2BAD 2002-01-16 [expires: 2007-01-15]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (FreeBSD)

 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
 YbCuiDguaEN052KDrSoDvk4S
 =L0S4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.263. Beech Rintoul <beech@FreeBSD.org>

 pub   1024D/ECBFDC44 2011-08-29
       Key fingerprint = 6921 47CC 8B61 7C02 70EF  4D00 16B4 EAB7 ECBF DC44
 uid                  Beech Rintoul <beech@freebsd.org>
 sub   1024g/F1FD1C3D 2011-08-29

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBE5b5cQRBADUMThWYK/+cy0IO39D+w5sREzc5rvsCh8Ia0n7EIh7BqL0LrO2
 AGRjImOC2GCDdXNTS84RD+/TwonAOWK6tLn4wDTuYJQqi/0Z3IrPob7jKKwhK4o8
 zVwb4XLLWKTV+nfKbeUfcrp7eeD0mDRX3YJ1b0piT8AFkLjqQGiF4L7VrwCgkO8C
 uIffCwAV6oAFo+taWxeNQNcD/3luZVyWCffbWXHAYuXIBCwX3/9ehSqS1u7RL88b
 2xD0D9ZAaXC3kiv/ccu1ZSUx+olq2uHTHfFRdeoH26OOS1yMD9x0oyyY/hfpiWHU
 MOG4ZMkV0M+vdIGKOyCoQj13bUYgEYxoOT2FR8rjMWtdy7kgyJrVk0k5b3px9Jd2
 qGlMA/9eqgeEQuZsXoX1mT/0ZgDp4PRxnQ6RJ174HPM4zgG3bhEiAhUAz56NSCR5
 mKq5Lj2FqWq8jlb7mVD+hL/taKIBBAGBjaXhotkTY0Lhpp0SzgVtkDGsmgKxlqfh
 ZQqLC4cgTLsqAYQOt0IqlK54cLkwwm21VeO6q4Mo0HSiuLVdUrQhQmVlY2ggUmlu
 dG91bCA8YmVlY2hAZnJlZWJzZC5vcmc+iGIEExECACIFAk5b5cQCGwMGCwkIBwMC
 BhUIAgkKCwQWAgMBAh4BAheAAAoJEBa06rfsv9xEs0oAnRCR2Md2jKcIx8F2WPDM
 sQAaSqlzAJ4h+qVgOzfFULS50q+1kvB/PJ3C6bkBDQROW+XEEAQAp1lE3HT9kFTH
 XeaNi+IMfaorNcaYkHmGwqHuTiKXTWDmhbUEIqT8jsPcRVF1etw7gK7l5eNilQsE
 qHd9IgBx4SfP/j3rl6wH9tYx53013NZTrDcR8C37+9HhFO2xwHMCXEk+4rSkyBZ4
 D62qtZeiYouL6Y2vfhEsYJcy1tgRWocAAwUD/3RQo+7vgIMIGbQVcGcQNFKHLj6/
 WMSVDIuRj5fm22TYnqTVBbOUOEEXXPnops5+K0X9sv6QXFb2mqkPQR2Hed1RNIdo
 vp834XCFS6frYNdc1ulPSAevsFwBR9ub9fQS7Ca7m98n16M7xIl2QTktQQl/RuGb
 fIIHpH2i7AuB+RcKiEkEGBECAAkFAk5b5cQCGwwACgkQFrTqt+y/3ETvMwCfQk/G
 2zlUtzB5mYNsSNNHflFIGSoAniU7mn15Z82cwMAE75DMhQKaBHYD
 =Fb+t
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.264. Matteo Riondato <matteo@FreeBSD.org>

 pub   1024D/1EC56BEC 2003-01-05 [expires: 2009-09-07]
       Key fingerprint = F0F3 1B43 035D 65B1 08E9  4D66 D8CA 78A5 1EC5 6BEC
 uid                  Matteo Riondato (Rionda) <matteo@FreeBSD.ORG>
 uid                  Matteo Riondato (Rionda) <rionda@riondabsd.net>
 uid                  Matteo Riondato (Rionda) <rionda@gufi.org>
 uid                  Matteo Riondato (Rionda) <matteo@riondato.com>
 uid                  Matteo Riondato (Rionda) <rionda@riondato.com>
 uid                  Matteo Riondato (Rionda) <rionda@FreeSBIE.ORG>
 uid                  Matteo Riondato (Rionda) <rionda@autistici.org>
 sub   2048g/87C44A55 2008-09-23 [expires: 2009-09-23]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 zIEAn1IOi7barh7DDNvdtZ5nQ6V31XmDAJ9Lh/KNe/dgiX6GnqA5ti0fEwB8N4hf
 BBMRAgAfBAsHAwIDFQIDAxYCAQIeAQIXgAUCQXVk4gUJBTfOpgAKCRDYynilHsVr
 7IKJAKDU1KY9xWJZmmoLaHnOjNcMt7OsewCfVaLCIj5OI51InSN6rube6W5gmtWJ
 AkgEEAECADIFAkVVuYgrGmh0dHA6Ly93d3cucGFlcHMuY3gvZ3BnL3NpZ25pbmct
 cG9saWN5LmFzYwAKCRAmSeYoxdNNBcf/D/9erGdyo3vlqA2jUIOQRPQMNCS/71J+
 2CFBSmJ2I9WmeFDR/aMFSVrd8AQ8YmgaeC0qA9Ql0IYaT0dTfd0FSb/vwFlPsd0J
 xBSTAtnNVxwFm70WT/Ny11MDqveZwbG2/k/JKICDQ9bgfe5CVwTybrtl4scvTPDS
 KIPUG73BDMurgRsUF4zHXbzo9ltEO/b2++sq3Y0f+V1IMMMGGWMU1NF1SbkbQyx4
 T7jGJUPbDrMF7lmdZKRW89EIxYQ3jLPVB9A5zksSrc7oWSQ02NUjLffju4wi2nbp
 4SVYmkaL1rDP03j3QrCVHA76wtNg3A9Z7pwPmau17dcvFxmrc8VTiiaIwz0ssClK
 Mcf19qeWNDvnD8Yx/4xUL5QpJe0QpRzY0kI8IWhiLqZAB0NveemmIZT3OoeDBXDM
 Xa8d+WD7N8O8LZkjWqKDAP6aMAlZ+Vc6Rr6xkdvQlZejMWqNIgQTnfi+DbEGG03t
 CFTiH+ymssuph1yz0EaP3wwwmIqLO6onFmemVfStgfww7jRifnpeD3jWKicgL7PY
 6k39Lsn1WTBHXrCM3nIfHGn6toKdoPMUsf7tCKcjEcdpzWih1lEbBwRK9GExXeKw
 3FtEToJJtyCEWVIaWPR4js86/NwQOhWpIZqYLaGMy3OtNdTYfvDSKQmoOhfU9Ma1
 MdgFreifHUYrO4hfBBMRAgAfBAsHAwIDFQIDAxYCAQIeAQIXgAUCRvJKowUJCrtL
 5QAKCRDYynilHsVr7Ct0AKDGZfOIDsaFhDfcgsQyosFn8MGztgCcCSCU7JryVjKj
 fDuu8pFy1BNwema0Lk1hdHRlbyBSaW9uZGF0byAoUmlvbmRhKSA8cmlvbmRhQHJp
 b25kYXRvLmNvbT6IZAQTEQIAJAIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAUCSMP1
 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
 LlxcQeUB
 =cJab
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.265. Ollivier Robert <roberto@FreeBSD.org>

 pub   1024D/7DCAE9D3 1997-08-21
       Key fingerprint = 2945 61E7 D4E5 1D32 C100  DBEC A04F FB1B 7DCA E9D3
 uid                  Ollivier Robert <roberto@keltia.freenix.fr>
 uid                  Ollivier Robert <roberto@FreeBSD.org>
 sub   2048g/C267084D 1997-08-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.2 (FreeBSD)

 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
 izq3ic4=
 =mgE0
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.266. Craig Rodrigues <rodrigc@FreeBSD.org>

 pub   1024D/3998479D 2005-05-20
       Key fingerprint = F01F EBE6 F5C8 6DC2 954F  098F D20A 8A2A 3998 479D
 uid                  Craig Rodrigues <rodrigc@freebsd.org>
 uid                  Craig Rodrigues <rodrigc@crodrigues.org>
 sub   2048g/AA77E09B 2005-05-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEKOK8MRBADOO9VIucM2dGygVera0+Hcu9ud2f3MrcfVgsB7/awfE/MgIYtC
 CFtCJrD1Ml+p/spmiuzJNDSamT8NHywsG5R+GO0EC76+mfL3hwXvGUJoQV+NcDu6
 99s6OUWTimi5OPOURzG7lXYpO0wVysx3R5Nzg7tIC06fmXNXuj02JvCm+wCgqkPx
 nZgCFoqq2mHoiLL59CUExbED/iOnglDOuZsncR9xRZJfbSLUJf5z9NE413FXAx3f
 THY7+akGk8kWChrOeyIvLvSGmkHHFQXgh1umG4fFd7TCJ0Sexh44s5q0ROjEK4ge
 nwAsS0iheMB6JqW8ibBfawr2iwu3ZAkqfelU+NSbHm4sEeHxEGyJtZKA7rOPGDm8
 YOBZA/45n2E/Z6hv6D4Bm1xEDGNICK28uTqzXh0wyCJJtVOortd4CmKZZrZJj7am
 3aDdtFUZ1yZc5FW2E0xLa7Oz8HUj7eMT7Ljfd0c5yNna7WcNjqWNAz6WMhHByRZv
 nOPiUMQNvCbyrKw9OsFKNNbrSnjQcc/5yy0SiIMVm4rydXzK0bQoQ3JhaWcgUm9k
 cmlndWVzIDxyb2RyaWdjQGNyb2RyaWd1ZXMub3JnPoheBBMRAgAeBQJCjivDAhsD
 BgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJENIKiio5mEedzB0AoIXeENkxV41KlJMV
 z0ozHJ/q1ESdAKCimzfOMwz7Qyauo4VHs4rk7NEPerQlQ3JhaWcgUm9kcmlndWVz
 IDxyb2RyaWdjQGZyZWVic2Qub3JnPoheBBMRAgAeBQJCjjVzAhsDBgsJCAcDAgMV
 AgMDFgIBAh4BAheAAAoJENIKiio5mEedT6wAn0IjcGqARj8Qe+JZThbQCQbH0ERp
 AJ4w1pYLdsKphwaEB8GakvaeRsrBTLkCDQRCjivkEAgAo5DHUcjEBK54Vo2S403y
 InnfqiiUDXqb8Oof18CICB6JgA3NjP5g9BE5+7dI8relt4Q0ILg2IJvISIlfmyDl
 +GuegA3dMo1IrghmtI5+IWN2mm1iNy96jpJ1TQhvHTFDlETdV/BE57CcO1ZnKHiW
 m9G3GjnMrunVyLMEY+6TJ6ykqP2VzYBsc847iCv477LdYFe1+vedZb8Bk9xpeeZJ
 tuT3O+JiR+B/SHISpycxyM3ei+C7eRRC8wV+khOw/8xirJ1Wzyg3GrolQPtJsTNG
 mqg6DXIYPY5wbF3SUBT5ZA7pLPxXhUWNewU/8mXisuM0hp7nz9VLQ4JfbMuvGF2j
 wwADBQf/SCUw06q5l8qdJ9G3WFfPOE449mq5uXHGlfeamCkjx9/SzI/8yldrxwdF
 5XiAZWRpeQoksUbPI+tmxWqi8NDxt+KLDNhSCg0+C8KRFBY0ZI4CDmUg+MX9Mix2
 ir/RK6eoEYNXdt32raX7MzQP87LTL+cnxJzbQ702HYpVqrJUOgSRwQ3posbp7hwV
 djfiE38r9Hd/E4ZxxAIT3GafZ12KzxQZ8dSxoa/2tP8VfAfe9jt/XX4F0QD2yIGV
 2wJMd/CZWTZgDfNW1anGR+9AyV9dT+8cYi36fkgTQb5rN25rJKzHd9RA/EGJXSU4
 l1hNG4gBpYjF5gD/UTuSgGI6XInycYhJBBgRAgAJBQJCjivkAhsMAAoJENIKiio5
 mEedTS8AoIa+gNX84jClqNvPR5lMlQGKeB4HAKCaEmhTA9kGSY5JW3hsfDiwfr0a
 PA==
 =hHZm
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.267. Guido van Rooij <guido@FreeBSD.org>

 pub  1024R/599F323D 1996-05-18 Guido van Rooij <guido@gvr.org>
      Key fingerprint = 16 79 09 F3 C0 E4 28 A7  32 62 FA F6 60 31 C0 ED
 uid                            Guido van Rooij <guido@gvr.win.tue.nl>

 pub  1024D/A95102C1 2000-10-25 Guido van Rooij <guido@madison-gurkha.nl>
      Key fingerprint = 5B3E 51B7 0E7A D170 0574  1E51 2471 117F A951 02C1
 uid                            Guido van Rooij <guido@madison-gurkha.com>
 sub  1024g/A5F20553 2000-10-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 jwCgnb++jBLoAgqu7BiWMBVe9sCLfMY=
 =qL8T
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.268. Eygene Ryabinkin <rea@FreeBSD.org>

 pub   3072D/8152ECFB 2010-10-27
       Key fingerprint = 82FE 06BC D497 C0DE 49EC  4FF0 16AF 9EAE 8152 ECFB
 uid                  Eygene Ryabinkin <rea-fbsd@codelabs.ru>
 uid                  Eygene Ryabinkin <rea@freebsd.org>
 uid                  Eygene Ryabinkin <rea@codelabs.ru>
 sub   3072g/5FC03749 2010-10-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 Edu6GCfjXE66i3XaSUcQWu+g8BMQUo5Huw==
 =xPkv
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.269. Aleksandr Rybalko <ray@FreeBSD.org>

 pub   2048R/4B7B7A4E 2011-05-24
       Key fingerprint = BB9F D01D 7327 0B33 B2F5  6C72 EC49 E6ED 4B7B 7A4E
 uid                  Aleksandr Rybalko (Aleksandr Rybalko FreeBSD project identification) <ray@freebsd.org>
 sub   2048R/99F9F9EF 2011-05-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE3b+zABCACwiwsbEdmRqU1Tsb/ErrEGYPO6uGPy04niDFSwT4EoW9tJmX94
 bZSfD07hMUHm3yk3sSNBVPYYqvolCd+Wa/aSBo22Ru8MT5gtFT6QmRmo0r4ye6hp
 0jddGbTE3gS62ojQCDayRrSWhqYDtxMTVhF28+GVf9Yb8xD7booHz+soOEOp/lyi
 rMbAKKpAKKzlbTg+JF4xuNAOCQeYq/iw+5/Yv0WRdlPFlAhefpC9HGnm7Ci2oX9O
 yadz6O5B8Z3mvXrprHVf/gZaxpMbqHtiCwUCOjyu+65AJxZ2RtXOZGlgixVldzZ5
 1/PkPjf66PNOE/jei7lQfoiXSelbMsn/0m89ABEBAAG0VkFsZWtzYW5kciBSeWJh
 bGtvIChBbGVrc2FuZHIgUnliYWxrbyBGcmVlQlNEIHByb2plY3QgaWRlbnRpZmlj
 YXRpb24pIDxyYXlAZnJlZWJzZC5vcmc+iQE4BBMBAgAiBQJN2/swAhsDBgsJCAcD
 AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDsSebtS3t6TkqnCACNpw7DnH7mPLVtJ9Hk
 5V6kzsY0Fkt155HcOw5IqK2UJUqGZTa1Y6SMjqC7Joq7P/3myjWOyN62xByQ/kcL
 VT3Ee9Nonknkjx1S/7Y9aVlCoT3koB/no9BQRgTsWX2oHUEakBftYq/8sx/1jzAc
 YN9DffiOIfXH43435MtYc5dct8lRaQkMXL6hDrswqqnsC2lefISiRojWgSpX2Iax
 VsR9KA/gDGXcFQLYG19ivgQ/MWMwfHCQd5EyPa3JGsx/G3Me0uA2YC8igzuEG/PJ
 29G2eAhA48T1iDbmD7rHsMRdNvr9+0vHemNLyBysyzS+d1opwAE3HPeFYslbRfQp
 UxJuuQENBE3b+zABCADfEA5d/HafarrCijuoKqv7miY4JeknD9CezUiI9KgsjIAQ
 Nv6ObNUoAAZyO/tmKyK1c6ohOQn1m5knH9ldSU0aj/loeBwD/tSjqenqI3rk+XH9
 ZUW1t8U/2fEt152hbaZIeW3X5ovSwNJxL5GCjvqiy1bNq6rV7hiQfnwET3cV/FmA
 KJUlxRZKNbJn3VutSIF4vgOVJTdZy/0dDcpUubHcfVFXeZRiBMQiBqy/WW80VL9l
 /RZ8js/ArM7fNqnHtGN4Hgxfh5HEUJtQncYs1JNkFiUD6aYL3zsJAbcXcfyEwo6Y
 Hpsn8hxuEYpAVzsaO7E63Vdgyag1b8ELRBbYpranABEBAAGJAR8EGAECAAkFAk3b
 +zACGwwACgkQ7Enm7Ut7ek5nnwf/V0kzZ9N92h8oes2ZWwnuWWbZewdp5p1AZmaj
 FDeM2Usiqb9tOWizJwKI6B9Z66S2TdLTrCwtcPWhrr/MPfWTNffCgrVI4jOczCeT
 Jm9Y6OBVdlT16sqF2gskwLlA73R64TYJxS7uYAjOMvhFzXeZuJv2BLxSI2NBvpfh
 HfvoeBAM7NRmuJrUXz90ik117bzEcuEBwIDRc/fGUvSdWm3a+AmbVtyPR24RFMGb
 OK2UWrTXa9TiTAKKLWKyDDYf/B4nOtGoF+OCkpwLgTNJE5kwh+PnJjN7wsdiAvL0
 2cUXjLV5wX/C2w1FFMtM7PA/7aURr6CNmS+00mriikVFT++FDA==
 =Q1YE
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.270. Niklas Saers <niklas@FreeBSD.org>

 pub  1024D/C822A476 2004-03-09 Niklas Saers <niklas@saers.com>
      Key fingerprint = C41E F734 AF0E 3D21 7499  9EB1 9A31 2E7E C822 A476
 sub  1024g/81E2FF36 2004-03-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEBNxyoRBAC22NnMqcH1hXXkz+jC+U2QGzOJdGHZtLRXDRpS4blFtRgAf4ab
 tZY6LJUMnjmdgaPP3Mc7YE/ITF1hGnzYF2jbJazNm17nMSP/66dGJt9dK4XAE4cc
 5nYo3GnEkacAa1zUvM6e9OGaAIkndBDUW6+a9aSQNcNyMnYL1/APv+wdIwCg2G4C
 N221QrjrGbxVQPiBM51lY98D/11d/h8aOHYkf+nirhIj9GvRmXJfD3RANZUDjOsj
 OKGgUNlXm/AT6I226v9urfdtrhMg+5zdO+I2p7dZMad/RpnSYo0GMdLRzOlN6aoI
 +4JYoACq2C7iR8pmItb+L4Nl5nNBwmcLBXD+HaZebGffZy9Uvy/A5G0ty08I8LKm
 5STvA/kBMybZhX+RTq5v1Kzau63bMBJR8MPHyWYAIBW2wTMJM1ndW5RrbIMJ71qC
 8DFFTHFJd97s/fqBMQ9rj094CdDxCYQJUkZy5+qiBkRta//iSlgsi54Xhj9prgPj
 nBMWxUjAI5Ih0VPIp3/z/q5aQRvey8Ro5JWmduzH0KpLv2Qe17QfTmlrbGFzIFNh
 ZXJzIDxuaWtsYXNAc2FlcnMuY29tPoheBBMRAgAeBQJATccqAhsDBgsJCAcDAgMV
 AgMDFgIBAh4BAheAAAoJEJoxLn7IIqR2/y0AnRetbhzvjj3kKOV28bx2Qt+YRA/j
 AJ4yY9wDPJpwq63IsGeo3BYXi32zPbkBDQRATcc5EAQA2SipeeJJjvrzqqILHNA7
 X+m/PAJonO4QhyIEXXMhzNGdiUVJ7wli23gGVF0Cj3V97Yw5KFGco3qOvvsWkO4c
 CLwd3NHbVL6OHKM36LcFd+a6RiJO9qAGGixyqUIkqYeWCmpObihrkZy9WADsSJTc
 /qOrLghJ0GyR4Ga8CoFNT/sAAwUEANfA3lWeTj3QZcDnJZYejt1aJWt7oUBQ/KOc
 HhTjY/A7zkQsAdgbcmuhzSiIH6eoofTwNOl/Kl0ieSdIyFMFfVxrmYEN/HUUUI4q
 J+BgWZgppinaeUEabnZPfY03T+ZanJ3DmB8s8x4HdpFi3jgtWY0KfDhDfHtNIeRu
 CYmLAzjYiEkEGBECAAkFAkBNxzkCGwwACgkQmjEufsgipHbIOQCfSaudT6wnsh4G
 6D9TZkji6aDqUBwAoKqxWnOya/v/MqcgrXGSCih7phIL
 =Hz+C
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.271. Boris Samorodov <bsam@FreeBSD.org>

 pub   1024D/ADFD5C9A 2006-06-21
       Key fingerprint = 81AA FED0 6050 208C 0303  4007 6C03 7263 ADFD 5C9A
 uid                  Boris Samorodov (FreeBSD) <bsam@freebsd.org>
 sub   2048g/7753A3F1 2006-06-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBESZt5sRBACyDUDxsmkdq0XNNJfbsdVO07/vtUc+rP5hBEdMzbetPnLdujSX
 JtwzS2b5kQFk1ONAuTs9udlcZhhq5T2FIyhqpvgLG3tnt4gDabRgFsOL6oB4dFKv
 yL5emRwnch+wYlwfaoWXsXpWfdHQCwFfL39lsYLIR/aXcMwjXF1wl9yl6wCglkCt
 NECUgmsoUYE1iOyC5PnqHkMD/088reqeJuH2hWHupCOihIOOddQPiKX3EY1Y6piO
 I3aQFxOq8BdYw+3WAlBs4vegMmzk9MYEwP2STsVcPE+eu55m1GCRRds++oyv9tQO
 TFZVsYEuvJALvHSW3InTGHWfhQPrHcdodyRjhgo2bKY1RwO3RHYDRRQj5i8LDn/9
 kRSiA/9Y9Cl8Abr7kuPbgw7uWb8lRta9/le1UWQXpU6GAZHXEgppHenDaRqvbaag
 MhXXiKuuFAz4LNHf8UDqyQ4fjjfR0EajIivV17hpzagPWIzzEdr4j3RBpwHMYLbV
 1yfyml5QT46amMd2Vwq83Zgn0cUObu8E0IITqTMkweEvH+soOrQsQm9yaXMgU2Ft
 b3JvZG92IChGcmVlQlNEKSA8YnNhbUBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCRJm3
 mwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGwDcmOt/Vyam2gAoJHvCp76
 i+XiNv4R3pJgG0ZxTCjOAJ0S46VswPDByVJZNF95pfy1qEDb/rkCDQREmbekEAgA
 vAUui6QrSn//3FHeSvH1smd0432C1r8IHvR7m0Ki+F1cRolkWF29y6JMpoPcXrWC
 D5OpGfZaZQ9SwhedFr776xAwMDWAHlrHEpPC4OE3RPq7YWENc40hL+ZKfsZhGA89
 H8fiU18UdDlARgg1PDBbVi+F4ZFfKSyNcTUO3brIIpUy5OfAdTkgl3JFKERlqZic
 ZWjS9PXjsyaeTYn1Ny2T9WZqbk9Ghsb2/t8bIyayu9KNnI+vRSafRtaomeUEsKme
 YZyU4pLutea2Zj6u8BtEVyxp9Gcy0Whn/HwQc/FZE91Z6UzViucBqKmFmw3A/OHF
 HV3DAxd2ctkBrt5jzgJA2wADBQf/dD7RVzfD2ea+jpgqJW5EFDqYebjPLab5GZJ6
 uUWWZu73ynDm92lemzcT67JYirU0H0sQ6QmcZ9ZwqqdW/taCjvpsXPFb88B9AL9c
 aQD41otxgpCF/zMQwgS24DCrdtPXiKceTjHNEAMOM9xS3FBNAWjy23Jz6rIt3ROD
 o0X3iAta9cT71Q6/u6BYo1YRuLIAWZ1rpkELb06NUxsVuEQmBKGMBKf00LEw+AV8
 0FkaEukzFuG1u3k2qkeFJEZW0C6d04JT5jsskRiTrIzkd1FTyaEdueaZoiPBQybX
 KE9GyClXn1RMWA+dzAjjNvJOo556NAIpebgvXMd1rHSRxumHdIhJBBgRAgAJBQJE
 mbekAhsMAAoJEGwDcmOt/VyaOikAnRQNCxBdrbQSOLIxrChaMU5tNejQAJ4hpoO4
 tGfWhh+Ib0+vCD7UaSphYg==
 =fafd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.272. Mark Santcroos <marks@FreeBSD.org>

 pub   1024D/DBE7EB8E 2005-03-08
       Key fingerprint = C0F0 44F3 3F15 520F 6E32  186B BE0A BA42 DBE7 EB8E
 uid                  Mark Santcroos <marks@ripe.net>
 uid                  Mark Santcroos <mark@santcroos.net>
 uid                  Mark Santcroos <marks@freebsd.org>
 sub   2048g/FFF80F85 2005-03-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 IdA=
 =F4/l
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.273. Bernhard Schmidt <bschmidt@FreeBSD.org>

 pub   1024D/5F754FBC 2009-06-15
       Key fingerprint = 6B87 C8A9 6BA5 6B18 11CF  8C38 A1B7 0731 5F75 4FBC
 uid                  Bernhard Schmidt <bschmidt@FreeBSD.org>
 uid                  Bernhard Schmidt <bschmidt@techwires.net>
 sub   1024g/1945DC1D 2009-06-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEo2DaERBAD6iTY24oR5YgIAGmKudAPxNNLLaZPm5tsa1eQjNCRp/WPLIXCS
 /x2oZPk8JoKOPnHNuvfzKnDwh3sB/hKAQOwSTHmtKQ7Gq9Uq/IpuQXHOfF3JqJ8p
 4pOEHCSdJPv1rGNdv2Uh5Pmas3qfkI1pcn44B/XAYDVoYC2CsHmTHSMfwwCgwKIP
 BELVfQZDMaV/Zkv1etazaLsEAJXHS06o4TFVmrHzvhMPlBmS/MDJyt04MaqJwCkh
 IzZGpJ6c2rS+a9UOj5Fy8zeim3f94U5L4pUJUmn2SitHTGm14A+ZN7r2dmBC8jw5
 Oki0tbz3yObM6KSzYV2BuZ7BLP65KXAlUnHM5h4rw/EJaTL6bm0Z0sOLpc74KnZd
 qgi9BADzkJnZ0VKRRZ18xfdbPqa8FMeHJI/IhlBrwEPSeRqEjZCtTYfePzutbpm7
 YRpXk2cMe+k6Xt+FrSVF4elNT5/b3SjWjmZr7jLQ+/RvN+AH/5Ru9bQHVfuL6uSY
 zoHgl9Y5RKJMkzWfdn1LknaRIqE/ciWq22cESYJ8e/Wrk8lFVLQpQmVybmhhcmQg
 U2NobWlkdCA8YnNjaG1pZHRAdGVjaHdpcmVzLm5ldD6IYAQTEQIAIAUCSjYNoQIb
 AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEKG3BzFfdU+8UXMAnRd2NUzksPzw
 xY9oQMyjeP1cg1R/AKCWoPmmPjJDsf1/CQIkMFMb7RuTDLQnQmVybmhhcmQgU2No
 bWlkdCA8YnNjaG1pZHRARnJlZUJTRC5vcmc+iGIEExECACIFAkttpeICGwMGCwkI
 BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEKG3BzFfdU+8Ht8AoJS8LxsUX8jA7J6S
 WKwM9JPJ+adJAKCPcJC5vcz1C78IB2XBmnbbKmrYLLkBDQRKNg2hEAQAzfaS1s2p
 EOwwH6ZS9JJ0mnoEfVUkO2I3yfMvXZ4HVkf/lmjQziSsgtbOUPIsIZxh/0V7sDU6
 4ShmeYcY2GpBRE5NFAOo721nOMzXtSbwhUt8ZNZkWXLOCXE/oaS1UoPTQ8KW21IN
 prsFPuVORaZPn1BKXSt/g0l2mkKDdgjMLe8AAwUD/RCMR4fDfuKULk+PG4DrGuyz
 sz/6MC7cmxH76SBzLARw7HOKFXQoVPUfBbQ8oi5ynqFobgENEL5iiWrPhRHLYiJ1
 ee/RiroqJlDxSHno5qU4FIjVGm6b1WbunQ1m3bmK4ExFrygOvHwI0RhoySoAhxiR
 vttEGBF27GMdkRaaUyniiEkEGBECAAkFAko2DaECGwwACgkQobcHMV91T7wEHwCg
 tY2Mbu5ssnZVqMYfEKlx2QIJvZYAnRkudrXyV2F4QME4eLCgAXrjDptm
 =FKOV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.274. Wolfram Schneider <wosch@FreeBSD.org>

 Type Bits/KeyID    Date       User ID
 pub  1024/2B7181AD 1997/08/09 Wolfram Schneider <wosch@FreeBSD.org>
             Key fingerprint = CA 16 91 D9 75 33 F1 07  1B F0 B4 9F 3E 95 B6 09

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: 2.6.3ia

 mQCNAzPs+aEAAAEEAJqqMm2I9CxWMuHDvuVO/uh0QT0az5ByOktwYLxGXQmqPG1G
 Q3hVuHWYs5Vfm/ARU9CRcVHFyqGQ3LepoRhDHk+JcASHan7ptdFsz7xk1iNNEoe0
 vE2rns38HIbiyQ/2OZd4XsyhFOFtExNoBuyDyNoe3HbHVBQT7TmN/mkrcYGtAAUR
 tCVXb2xmcmFtIFNjaG5laWRlciA8d29zY2hARnJlZUJTRC5vcmc+iQCVAwUQNxnH
 AzmN/mkrcYGtAQF5vgP/SLOiI4AwuPHGwUFkwWPRtRzYSySXqwaPCop5mVak27wk
 pCxGdzoJO2UgcE812Jt92Qas91yTT0gsSvOVNATaf0TM3KnKg5ZXT1QIzYevWtuv
 2ovAG4au3lwiFPDJstnNAPcgLF3OPni5RCUqBjpZFhb/8YDfWYsMcyn4IEaJKre0
 JFdvbGZyYW0gU2NobmVpZGVyIDxzY2huZWlkZXJAemliLmRlPokAlQMFEDcZxu85
 jf5pK3GBrQEBCRgD/jPj1Ogx4O769soiguL1XEHcxhqtrpKZkKwxmDLRa0kJFwLp
 bBJ3Qz3vwaB7n5gQU0JiL1B2M7IxVeHbiIV5pKp7FD248sm+HZvBg6aSnCg2JPUh
 sHd1tK5X4SB5cjFt3Cj0LIN9/c9EUxm3SoML9bovmze60DckErrRNOuTk1IntCJX
 b2xmcmFtIFNjaG5laWRlciA8d29zY2hAYXBmZWwuZGU+iQEVAwUQNmfWXAjJLLJO
 sC7dAQEASAgAnE4g2fwMmFkQy17ATivljEaDZN/m0GdXHctdZ8CaPrWk/9/PTNK+
 U6xCewqIKVwtqxVBMU1VpXUhWXfANWCB7a07D+2GrlB9JwO5NMFJ6g0WI/GCUXjC
 xb3NTkNsvppL8Rdgc8wc4f23GG4CXVggdTD2oUjUH5Bl7afgOT4xLPAqePhS7hFB
 UnMsbA94OfxPtHe5oqyaXt6cXH/SgphRhzPPZq0yjg0Ef+zfHVamvZ6Xl2aLZmSv
 Cc/rb0ShYDYi39ly9OPPiBPGbSVw2Gg804qx3XAKiTFkLsbYQnRt7WuCPsOVjFkf
 CbQS31TaclOyzenZdCAezubGIcrJAKZjMIkAlQMFEDPs+aE5jf5pK3GBrQEBlIAD
 /3CRq6P0m1fi9fbPxnptuipnoFB/m3yF6IdhM8kSe4XlXcm7tS60gxQKZgBO3bDA
 5QANcHdl41Vg95yBAZepPie6iQeAAoylRrONeIy6XShjx3S0WKmA4+C8kBTL+vwa
 UqF9YJ1qesZQtsXlkWp/Z7N12RkueVAVQ7wRPwfnz6E3tC5Xb2xmcmFtIFNjaG5l
 aWRlciA8d29zY2hAcGFua2UuZGUuZnJlZWJzZC5vcmc+iQCVAwUQNxnEqTmN/mkr
 cYGtAQFnpQP9EpRZdG6oYN7d5abvIMN82Z9x71a4QBER+R62mU47wqdRG2b6jMMh
 3k07b2oiprVuPhRw/GEPPQevb6RRT6SD9CPYAGfK3MDE8ZkMj4d+7cZDRJQ35sxv
 gAzQwuA9l7kS0mt5jFRPcEg5/KpuyehRLckjx8jpEM7cEJDHXhBIuVg=
 =3V1R
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.275. Ed Schouten <ed@FreeBSD.org>

 pub   4096R/3491A2BB 2011-03-12 [expires: 2016-03-10]
       Key fingerprint = A110 5982 A887 74A2 F4B1  D70A 6E5E D8FE 3491 A2BB
 uid                  Ed Schouten (The FreeBSD Project) <ed@FreeBSD.org>
 uid                  Ed Schouten <ed@80386.nl>
 sub   4096R/81BB41E6 2011-03-12 [expires: 2016-03-10]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 Y6j1y6QnLaPN
 =FiVI
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.276. David Schultz <das@FreeBSD.org>

 pub  1024D/BE848B57 2001-07-19 David Schultz <das@FreeBSD.ORG>
      Key fingerprint = 0C12 797B A9CB 19D9 FDAF  2A39 2D76 A2DB BE84 8B57
 uid  David Schultz <dschultz@uclink.Berkeley.EDU>
 uid  David Schultz <das@FreeBSD.ORG>
 sub  2048g/69206E8E 2001-07-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDtXc9MRBADg4tN94el8rq0ZMUqB2jEVACg/UfYjtsaboDL4HBBUH+P+Wxic
 9JqotcTbT8pJGeRpeXbfO0YHaAFnUfilhoFkeLyAgDvnUP9Z77DjFpliLAKlvuCz
 Lxi4UxgQXRdedNCg3omrxQWx7Yx067GT/yw4RgvogOuYBX0l3AJ25/WBxQCg/6Dj
 TMTu6iYR2Y6dEL4NGs9PnBMEAKBlhelAhzYoMpcWpk2VITUgONMW+Oi2JDTmwDd+
 1FAUDc1mHSoNBKPUrCWyXiwfzL09/ROlK/KMR6YoYtV6d66zZ/dQNuzrMhsis+Ou
 PCtvcaR5NGln49THgcw7/K5gTjwrG1xA/wcwnvUp6sxjh4p88meI/LNBAstixb3z
 FiLDA/9pAqn42B9ZBL1le98DTiLDemHvQFgXu8Oj20IIF0umyJRBfKwDY6iIx0gd
 1rUKua6XnqMSEg+LmHmSfDBaAOsFTdnL7wVU0tLF0V9goxU4qDZjw5EeMEqnk7tg
 /6REIvtdOA/GLOmr/Q0WA4JEukcih3AQ9iFnwg7WAp0S4GF6gLQsRGF2aWQgU2No
 dWx0eiA8ZHNjaHVsdHpAdWNsaW5rLkJlcmtlbGV5LkVEVT6JAEsEEBECAAsFAjtX
 c9MECwMBAgAKCRAtdqLbvoSLV78JAKD4iJ2kNeTsYQnWZ2DeytAeqVaKFwCfTIQE
 lFPZyaQr7yjthREE+8SPZCG0H0RhdmlkIFNjaHVsdHogPGRhc0BGcmVlQlNELk9S
 Rz6JAEsEEBECAAsFAj5S1iEECwMBAgAKCRAtdqLbvoSLV4b5AKCljokqRgi/pbDa
 ZebYLluQCIkbgQCg+jSKAIi1r+CZiaCJdqk193IZVnm5Ag0EO1dz0xAIAPZCV7cI
 fwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ
 +AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm
 /xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1F
 HQ98iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzh
 sSlAGBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZ
 Jrqrol7DVekyCzsAAgIH/1AtvAGCJchvLFoaR5KNocKcoUMe2NrpRrFS3DsYOsXU
 0U95pmAHJaMt+wv4UDs/wNzOzC6stRML+3lg6sYnSgddH+N/DA0b5jQSAyNWlL87
 j08h3ATaPeDD6qhqFRe3uzpQMAJJWbeTdyiT2vwgglgcaJWuVjYSfkkxX7AVDFHw
 C4IOuZ0aQhHyHQsGQURTg+sotMx+kX68o7oGZqBBOcr8VdFyrlq0Tq1b/i0fJnn2
 Nz5hY+OOXbyeoJbaY0KiGnnMwHmeZ2eJWk1cCHUZnrY5WOxYQHail2KHXxhYuPoI
 xsL0y+XdErX+lc2BiEbvXROs+VxEo/3/BVJXAIar3nCJAD8DBRg7V3PTLXai276E
 i1cRAsj2AKC26JMJWsvd93UUWRXDKmU46MgLggCfTOIjPheQwY9VCN3jO9YROzij
 QVE=
 =qhh7
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.277. Michael Scheidell <scheidell@FreeBSD.org>

 pub   2048R/34622C1D 2011-11-16
       Key fingerprint = 0A0C 9ECA 18EC 47AC C715  2187 91B9 F9FE 3462 2C1D
 uid                  Michael Scheidell <scheidell@freebsd.org>
 sub   2048R/8F241971 2011-11-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBE7EJJwBCACw/7AoltcqlzLBZfdNZTb/9zMBRV2X7Qz8jtOrmFj10GpasMCe
 oHWLXHyWbuVgsu2QeANorUcEMvVpkCkNWG8EewKH5QbUcehqPfs8L51N+8Xxdzr3
 LlAoOiDFI6FWhDrHvdXRgzWM0xU7OMAxPkXpVNhT4cTmLwWGXmVNtxL48MRTsUz4
 XRMkXpfEEfXJ0xGsz+Q5AMSUbUIAOq6cKCreIk1s2Ir9UHHBJ5E68W4jHFk/PnYP
 WAx1z+PugI932b1RmnZEycjs2U+QN925vJ+V1172tU31TOPF3yTVkeltV/R7yXgB
 Pn5iDDrhILjOjWxj3xOGXJja/ikERYAPUEqLABEBAAG0KU1pY2hhZWwgU2NoZWlk
 ZWxsIDxzY2hlaWRlbGxAZnJlZWJzZC5vcmc+iQE4BBMBAgAiBQJOxCScAhsDBgsJ
 CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCRufn+NGIsHabBCACaxRmi/WgvVt5y
 r/9DfYDKMBRZwdvTmPqSc3qa/HyCH5b8pIzEep0UsVw977LmOnMbHr9TEzU9YuF0
 XyA1WZNdzjnVjlRl2VW6/Cwo28jnwnESiGD/KNdU0e0T4ntqP4eLEd7t4Y4WhpTk
 JBidX0r6d2+CQyCFk74zDc5eTXS/sLZZJommr5JIo75L7LWetuxR6AFrZ3SDdanc
 ktHJspZAN69yVb3XxoDveVF0XXE/RSeStWtWHLJNN0r+6Oq2CAf1fJZhFOZybPhs
 zYy6xWFp3N+myhq9HgPmlQcB8BCPHu++S55Ybe+4ZDqtuLaALQaT20zr73Vv4VHi
 QMiB/TYnuQENBE7EJJwBCAC7Qjm0lGOxZy0JoPTkZ32KW84TxsQ8IH/6QhAP2AVN
 kCaVrlZcGaZKd2WBQIcd0Br6FErD+jrYB9+hv1kGj/2Q3dL9UbB/Ee7ywm6++rLc
 RdRhlyeG1or+zjcQEvJyYEzyGdJi4R1+6SIQLaJiPrGL2GvGWfx7xk7UoJe9vayX
 ie9LNBoqq/qlXNRRRAu8DvOk4LIRcZHwv1urwZIGoK/Kmj0DQJ8+mrqXBugkI35G
 /XVeIgOzAoDGHkIR+eHGp7iOaAxDWwRGgtcYp8hgUASLgMxOM7npc1agozdFD20A
 PmI5uLqS0nmHiGaQYbS9azkZh5zwDKXaq6xz0LDuBcgHABEBAAGJAR8EGAECAAkF
 Ak7EJJwCGwwACgkQkbn5/jRiLB1lPwf/bQmsQnuQIM1O4cWxS8zKqFp30k1GaU9k
 GEAUEeY9JB6z/vhhleNwiMV6DbIfzFN71JWs00iyI0NAXDjNp+PLR+lBXH0Ztca0
 C4N7vqNnbsg5CleKK5n66fOc/HVB86rpmBFU2ji2ZQ3NO+A47XlGKyHgPvZ//XfW
 +WfeuCJ3tCWnx7lVTFXh/tIKO4fPyJ+dmp0JzumT7lmwG9YPwKovx6s42DD+62NM
 kf1yKac03ta650N6s90zB6XswCa8Geb4pn2f2PGkobY7OUfqymf+Rnj/kfnkRFo6
 sHoeErC1UGxAi59bZaVJ69y1/fmJrRD92ymTEj4DZowEs02c5NhwtA==
 =S4If
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.278. Jens Schweikhardt <schweikh@FreeBSD.org>

 pub  1024D/0FF231FD 2002-01-27 Jens Schweikhardt <schweikh@FreeBSD.org>
      Key fingerprint = 3F35 E705 F02F 35A1 A23E  330E 16FE EA33 0FF2 31FD
 uid                            Jens Schweikhardt <schweikh@schweikhardt.net>
 sub  1024g/6E93CACC 2002-01-27 [expires: 2005-01-26]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxUIHoRBACGAbIspofa2HTwV0Y81ZgrizVgvsHduKRMYmu9scX6eFSQWC2a
 JLXXnMJMK97LG2m6qX/hzjxZKU/n2eNpHa3h9zLYQ/8VdN+AFHGZtgmZ7xe7UpBI
 V2YohykdmgKqg8WuVQGrNTwbkaAFeLnG3yXhR83qukRvv+qFfXbEF+1S2wCg6lLg
 YJ6U4J1pfTO95Rd4hw5v6DsD/0hUfa6C6C6xjME6P7r/ORd91+nJsfO0pcV1rK0s
 yCMdAy/zdUlKpsNF9vS0qhCFonuOHWxMEe7D8L80oUAwlk4RrFBm+Ch7RoBGYGru
 aEom/7JGNoRqUD2CKbFnkAYi9HP6XlXcpgm3GO4c4VtIcEbgywjw7rNhmNoYLrZV
 YUb0A/9mNCqpPTd8ngm7kPyTTMJitYEVaBPXEdiPueYJND+eI9AQkcqYhs6LWq4c
 jgmTNeImQ+kR1UeDj3dOwUDqhGmLPN60nD+Q2oHHBif8NJOu47mx1dgdriM9FsTN
 3UbeSve+mY8Z8zcPIYKl2UJLPZckWgq4pZRrE147cnKHSHHM9LQtSmVucyBTY2h3
 ZWlraGFyZHQgPHNjaHdlaWtoQHNjaHdlaWtoYXJkdC5uZXQ+iF0EExECAB0FAjxU
 IHoFCQWjmoAFCwcKAwQDFQMCAxYCAQIXgAAKCRAW/uozD/Ix/ZB8AJ989jyDH1G2
 T1KMoNd7gPk9tAw1VACfXJgkrI42ShC4cHz37xrVLXeJp9i0KEplbnMgU2Nod2Vp
 a2hhcmR0IDxzY2h3ZWlraEBGcmVlQlNELm9yZz6IXQQTEQIAHQUCPFQ+0AUJBaOa
 gAULBwoDBAMVAwIDFgIBAheAAAoJEBb+6jMP8jH9P+YAoM72fnNwxxcDjb+3Mv3A
 CfbHonYCAJ9lfK9fIbkgfAHo+2kwnOEN4yWxzLkBDQQ8VCB/EAQAzzIqOgms7u+e
 UKampP/5U9G78HA3GIkVLcAeq5FfpFtls4NmSKz240zNxXmABWTSlBmOQvMdhB08
 vRbzEsxPoVdNaF+QvRZYEr5+2bOM1pnHqYYMyUKwN83LXgTDnXxas4mtrkgngZTe
 tGdFQ3PIVqW4jV0MmnEmaqde0nMJ6XsAAwUD/2z82PDDwFBu1Ogogh63qE69HSQt
 8weHX+Skmi75jE3r2niUlx6B0IfLXzFqP33vyrsov7QHgAuOjNficisbC73o3gjp
 voJ2RYB2IfUCgeFvipLpqY1TWJ3bF52TYnJg4rrEWd5OWs4FB0iaJ78LVWgq3WsN
 zfgcgfQ38d+scJu4iEwEGBECAAwFAjxUIH8FCQWjmoAACgkQFv7qMw/yMf1PIwCg
 nSP0i+q9jhEf9T5xA0+qg2yYB/IAnjvd/tA+2/5bP4pObE/oRNjIVZBZ
 =YPu9
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.279. Matthew Seaman <matthew@FreeBSD.org>

 pub   1024D/60AE908C 2005-12-17 [expires: 2012-03-21]
       Key fingerprint = B555 2A96 274E D248 5734  0EB4 F0C8 E4E7 60AE 908C
 uid                  Matthew Seaman <m.seaman@infracaninophile.co.uk>
 uid                  Matthew Seaman <m.seaman@black-earth.co.uk>
 uid                  Matthew Seaman <matthew@freebsd.org>
 sub   2048g/58BFDA29 2005-12-17 [expires: 2012-03-21]
 sub   1024D/9B19F956 2006-12-18 [expires: 2012-03-21]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEOkOLsRBADcDzeuUj4wolwtY/cLV4BQVeH+JaLt/B5aHAsWdaxEisTSVU7l
 Q7ICQke6tXkPsFkW4ikQ5CSSfI2zI1R437zPwVvszak650RAwT210XIq0OFZnJE/
 fvOEgWmlUaBi+POuhdZXUEMPWmZDV50tloOF+ZuUagx0m9Ugg74bKMhlAwCglg8g
 BzOwtK3WzhmotcQSpmuzed8D/05iE84NObuIPdC2kvwzEAt/gkj29zgLyBL8uMHt
 4sIrHD38u2t1BQOngxaLJxeRyDbB488HSsSkW8PkFRm3X4oMyVblktdPIBovgtd6
 brg2f/6FqZu5SsxcMMy2Wd/3ADP+/XV2DNi+y4UoOBHRKGPjinJ1DUFcnzjvtksp
 7eVCBADZiGnF9rKBufbZ2nRsJ9YqUo8fJ44sz+7LSci7isNQcx32NTScys8CLNUz
 NnLW143AsTS1i6wxRkxjRQ3W2/0JGD13oAlYYIqB6vQM8q3KiIXs0xX0qWXAtyt8
 sMIN2hstNC3CdR/LH0Ocwzj7Nu1Ju+zJuZdn3Oy81zvKtvSMhbQwTWF0dGhldyBT
 ZWFtYW4gPG0uc2VhbWFuQGluZnJhY2FuaW5vcGhpbGUuY28udWs+iIAEExECAEAC
 GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAIZAQUJC8WlcAUCTyexwRYYaGtwOi8v
 a2V5cy5nbnVwZy5uZXQvAAoJEPDI5OdgrpCMiWQAn3Johvs07DnBXTz4eRKsWk7C
 F+ujAJ4z+Yod+LJoFs3pzagNmh1Fi0zG8okBHAQQAQIABgUCSyQSQgAKCRCQV4eJ
 idhUfkMuB/9F8X4c5oD2yN+wzYbDjRlc9xH4N2XlKhcw4I8++JxG5Jh+CMUKnJbI
 Nf+uSMv6r4aEjzMzYIv7hnRaL6LBz8eIM3NIvvt3RXvV+TLV7ceWHidV1xOZqG/m
 30jSgbX5/30zPMt1FDfvP0rWu2XCFoASAlKPAOkhFK7K7QFnELfykPd6uwYtuanr
 yLHl/ctdOp/5IWHLvWeduN5OhEotNQqhLZfNLSHyQl8Ls3rM1Qzm1N6bV0uxgfZe
 U+gd8HjDSTmsMjlrl8/q+CD00p3v8Xxnl6F6RHZ+Ki9wx7+xFybTGWqHXyBUkEZH
 hNZc8bp7FNoPP2mUhOA/sGM+F/KJaFKniEYEEBECAAYFAkOkOwwACgkQdtESqEQa
 7a0/xACfQ0jZn3AOdOCTrMP9yCtQ08BIafIAnioctM9ch9g5sME8+yFqWtX3AtJp
 iEYEEBECAAYFAkj+lZsACgkQs8akEzLMdPf4xACgjTCSoZFAXogeQqGmaXnPusJg
 /q4An0WtjZVb27Jm7TVYU6H2EwfoinvRiEYEEBECAAYFAknHDOcACgkQel6DcrUX
 o7kFtwCgizH6uepwpZGf+kO4FFtaeV1W7KkAoI6h5hJXgJ/CvOxmsPaWxgDIbt/H
 iEYEExECAAYFAkdIh4sACgkQNhME90BHCy05xACcDjROApyvFE5W5zWBrg64RNpw
 1CQAnjqhHowVFAxQAZDs+TlEo9LqU9fmiIAEExECAEACGwMFCQHhM4AGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgAUCQ6Q6axkYeC1oa3A6Ly9zdWJrZXlzLnBncC5uZXQv
 AAoJEPDI5OdgrpCMWScAn25ZeriT+SpHDYC/pkn8cY+RhezcAJ9s+thFpkS9s4H3
 2lKjDwDoGAv4fIiABBMRAgBAAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AZGHgt
 aGtwOi8vc3Via2V5cy5wZ3AubmV0LwUCRYZU+QUJA8NPvgAKCRDwyOTnYK6QjPb5
 AJ9SSBOa0zOG/B7TLeshB/0oWzL/oQCeM4uxuUyp4gUwiHwUg/Vn4sayNYmIgAQT
 EQIAQAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAGRh4LWhrcDovL3N1YmtleXMu
 cGdwLm5ldC8FAkdn9w0FCQWk8cwACgkQ8Mjk52CukIwQcgCfRQDuiUj0DuNU+trQ
 yISdoIrLsMsAn3geBMbJYQEQiTJE1r63JAby9prgiIAEExECAEACGwMGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgBkYeC1oa3A6Ly9zdWJrZXlzLnBncC5uZXQvBQJJSTNU
 BQkHhi4ZAAoJEPDI5OdgrpCMqv0An0Y0jy5dNEaHD79ep/LsCdG7LtJUAJ4/yUfM
 QyxDIPN2Y8OatPaHV/okboiABBMRAgBAAhsDBgsJCAcDAgQVAggDBBYCAwECHgEC
 F4AZGHgtaGtwOi8vc3Via2V5cy5wZ3AubmV0LwUCScIvEQUJB/8pyAAKCRDwyOTn
 YK6QjEQeAJ95u7S9DsaOQfeT4Ds1BB1yLoScbgCdEVkpw/xL8V2Xf3DxP98y6Qvq
 mTqIgAQTEQIAQAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAGRh4LWhrcDovL3N1
 YmtleXMucGdwLm5ldC8FAkunWWEFCQnkVCAACgkQ8Mjk52CukIz8GQCfbpGJmGq2
 fpZl8pubfemJmU3jtzAAn2P16jfN4hnj6FvsX1p30qgxitKNiIMEExECAEMCGwMF
 CQHhM4AGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgBkYeC1oa3A6Ly9zdWJrZXlzLnBn
 cC5uZXQvBQJEnqQiAhkBAAoJEPDI5OdgrpCMCykAnjhKKDMDBymeSerBI8Vt6m2s
 hWOeAJwLNZzMd7i9qETn0ok+w7tOHMQ0fYiDBBMRAgBDAhsDBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AZGHgtaGtwOi8vc3Via2V5cy5wZ3AubmV0LwUJCeRUIAUCTEq3
 owIZAQAKCRDwyOTnYK6QjI2DAJ9r2ted45M5GkCuupmDK3RURzj2TgCePG4YEZ6B
 bOXgm+pFGRGpVeBzugK0K01hdHRoZXcgU2VhbWFuIDxtLnNlYW1hbkBibGFjay1l
 YXJ0aC5jby51az6IfgQTEQIAPwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AF
 CQvFpXAFAk8nsckWGGhrcDovL2tleXMuZ251cGcubmV0LwAKCRDwyOTnYK6QjHqx
 AJYwvyX7WdkRVYZIdKwY8+NzCgUvAJ4seIKFkYZf+KEM9BpGvKCu0BEm54hoBBMR
 AgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUCS6dZWwUJCeRUIAAKCRDw
 yOTnYK6QjKHwAKCFZOGlsHnK69GEi2/KJqNTgyeWZQCfZQin2tqFeaOtEgwjcEyQ
 aF21Jw+IaAQTEQIAKAUCSydjtAIbAwUJB/8pyAYLCQgHAwIGFQgCCQoLBBYCAwEC
 HgECF4AACgkQ8Mjk52CukIx/wgCeMIQh1HIgtSRYjf5ijxVrYVTBuTUAn2b0lpGF
 1G9vK1yNvk+MVIh/4AcHtCRNYXR0aGV3IFNlYW1hbiA8bXNlYW1hbkBzcXVpei5j
 by51az6IZAQwEQIAJAUCTm3Xoh0dIEkgZG9uJ3Qgd29yayB0aGVyZSBhbnkgbW9y
 ZQAKCRDwyOTnYK6QjIhkAJ93P9XfvLQK6ElehYK8s/JRP18o5wCdEy1bcYa5b44h
 E0MvvpqhCSCfm1OIaAQTEQIAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AF
 Ak2Iqr0FCQvFpXAACgkQ8Mjk52CukIy5fQCfT3OF65tldj40wESBkpFf9N6Y8c8A
 nimGJJveC7YZs43ptUlQD/PIAUZFiGgEExECACgFAkxKqs0CGwMFCQnkVCAGCwkI
 BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPDI5OdgrpCMLWUAnR280+C2LFPCRhxs
 HeG0amb2CaJoAJ4rfGiuBPXfyOvGzIvwFStogJFFf7QtTWF0dGhldyBTZWFtYW4g
 PG1hdHRoZXcuc2VhbWFuQHRoZWJ1bmtlci5uZXQ+iEYEEBECAAYFAkOkOhYACgkQ
 dtESqEQa7a3JqwCZAZ42OAvUig8uT6ivq4Hvs6035m4An3o3FIWWlOM4FE8Sm/Ul
 Of/gA3WyiEYEEBECAAYFAkmVTpgACgkQwgT731Z697LkHwCfYc9PiEFzcxib0h9P
 enxUYMXJXVcAn1rnP2oQIyLGpddu2VzUHOBXlSPOiEYEExECAAYFAkdIh4sACgkQ
 NhME90BHCy2JXQCff5GU+fC7ZLtBcXUsKLnmECXgwM0AnRqE3mEzHHfG3syHqJwY
 vcYDiF06iEkEMBECAAkFAkxKt4sCHSAACgkQ8Mjk52CukIy7cgCfQ+OJWX+YNOxA
 9Su6wTr0EWF8mWoAn1He+g1RvEi8ir5GvDXPp0p0wsMFiIAEExECAEACGwMFCQHh
 M4AGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCQ6Q6cBkYeC1oa3A6Ly9zdWJrZXlz
 LnBncC5uZXQvAAoJEPDI5OdgrpCMN5gAoIy7f78L7z1BH73dh7GZXp7tpuLjAJ9D
 HG+Dv+8PDKvP2xRaJgwrXpXMkYiABBMRAgBAAhsDBgsJCAcDAgQVAggDBBYCAwEC
 HgECF4AZGHgtaGtwOi8vc3Via2V5cy5wZ3AubmV0LwUCRYZU/wUJA8NPvgAKCRDw
 yOTnYK6QjEB9AJ9MSzymDDUq18pjbJ1TJ4n8szmDXQCggZA+OM5A2AiNhejtnuKo
 5xa0z0eIgAQTEQIAQAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAGRh4LWhrcDov
 L3N1YmtleXMucGdwLm5ldC8FAkdn9wcFCQWk8cwACgkQ8Mjk52CukIyrhwCgjctO
 pLz77Mpyfa+tOyWNCkvfjHYAn1sAT5G6o7sGLzwiafGcImovgQs4iIAEExECAEAC
 GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgBkYeC1oa3A6Ly9zdWJrZXlzLnBncC5u
 ZXQvBQJJSTNgBQkHhi4ZAAoJEPDI5OdgrpCM67sAmgJxCUojlWVEvrUkbeuHVfqI
 UDRpAKCTWTmSvpFsnLaYgOTCEYjQVT0fEYiABBMRAgBAAhsDBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AZGHgtaGtwOi8vc3Via2V5cy5wZ3AubmV0LwUCScIvAwUJB/8p
 yAAKCRDwyOTnYK6QjACxAJ4+exsl6EDvi8rg7PsNhLJH5JXUvQCeNCV1ms5dP+jP
 2IJ2bvKUPP3PlxWIgAQTEQIAQAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAGRh4
 LWhrcDovL3N1YmtleXMucGdwLm5ldC8FAkunWWEFCQnkVCAACgkQ8Mjk52CukIwa
 LQCbB18PzquPfG7KiHMSNQXE/UeXd78An1e+ugozwIiR89I6mlSBbbZxBecPiJwE
 EAECAAYFAkQieTEACgkQZlK67e0lul1HhwP+PBsAVM96wA7DzqVf+Rm8jayTo8iL
 phQ89Vq0eMxUiTsHHgT9PX3hC/Vlfmn4WxqlGbMhROleJ3K7tP8zjgbVDVBDjhKG
 GASnQjehcsGux4HBU/atsiErYCoIKbWgLJWRsKjnskZaxKRqWoNzfbsd0dE96mIz
 1B7kPy2x7atPUeeJARwEEAECAAYFAkskEkIACgkQkFeHiYnYVH7Bdwf8CcY7cm5p
 RfHYLlkCvuupqKg0Vd+oT32C8cBpJUjkLey0nAqKvnq+mIw9XLlr3oZ9r6TKABr0
 0RmW4I/Yxq8k5FAyufpB87lukB7dcTuAz0RCeuu4xvwlQpod4kgGhBCqYeswQjSs
 P6iV48m3AdHxzroESiKeSvVq27a1wroia+A5d9NRfoieeZVvX7p8lNjVu/syvxeg
 CkXIwZohPuvT2PhYP9OWh5Pt2SZJdggzOpVB9JNphOFv/HDI02IO1KGY4ahqT2uk
 4L9b+dW9+EyOCjpz+ks5qR6vUvF10Ouzthh5Ye25Rns/PlrNulADr3TCHhNX+s5e
 H5GjayvYeoThkrQkTWF0dGhldyBTZWFtYW4gPG1hdHRoZXdAZnJlZWJzZC5vcmc+
 iH8EExECAD8CGwMFCQvFpXAGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJPMYLa
 Fhhoa3A6Ly9rZXlzLmdudXBnLm5ldC8ACgkQ8Mjk52CukIyMggCfRLRHpvxEjA8q
 qz/1R8oK9wH7ij4An19WHcAHX2pr2NyqOfX96fnpk0PquQINBEOkOMYQCACWNtIm
 EMT8kt/KKfdORB/87bIcL5vMf+yTeQ3+t+cDk7Yyf5tzaJ4JFWmn6GL5Zom+LYwB
 sEPj8+qqhRdq37oqGi8bzHWZF5uQGJ3XTNG8AdI7cbWxA8tyIkG8WqkuRTWPElxW
 dBM2l1jypMopejY+PBLhF0ePoNqHzbXrVjnXe2nebq0XcOIyQ9txU3DyPekFS6Qq
 YEQboClzpDTbkfjfFrJViEn8Qj5L2KjAJh4e+7/cjd/KOoO1Bhms7OKhZCjbLW2T
 bMFNpuXVinm5HRWhX2dUgDQ+mhipBE5Okm8MapPlrdj8GLrfmuofJ3QZSJw3E/Zz
 HmdcOFmXjSwpmVS3AAQNB/kBIjhnZcbZ7qw8Ax3xcpo+ncbfCVWGvNbfV/13Yusy
 7n7Csw8JEJb7FChZwlsOr20YWWZWGyAQZNQ6iZXrVeKgnvY+RRRPBhKZABAWrdlZ
 hocs+cruI+MzoJu3WB/yMR5SdGoHJ1JZPAv0TVIF6hseb8UkB8GyQCAtcnS6uQq4
 afVeBgM3wmz/ngS2e2KsP+HTQ8N0whn1ZUR7TLJ3maEHICG3jibk7vtVEpB/dH2N
 mHtibhaYcvMppSf4cTzpXpJKjUs6eMe/bHlBuIHYO8e97IUkcmA89bxwrihCvuDO
 YYO6n8rVNPMf2p4RYQ8zRNwPo+EtheDSYw+FUfjhG/p6iE8EGBECAA8CGwwFAk2I
 qt8FCQvFpZYACgkQ8Mjk52CukIzLDACeKH7nPSsIoRc1V84/Yx3F+KjoNmUAn0OS
 jqM6o10mr09XfBacP4uM3t4nuQGiBEWGVlsRBACbFSAVsgVyKeuLEtuD1FzAUAJh
 frTQQ8CydFdVOpC/k/xZGFIGaE0GzMDlfzGhCkH8v0MiJSLjnGysK0OZf9EBjRSH
 ghZmUeJJUq1IHsW5/5lCE35GFMLKBcysPLw2tHZeP8J7dgp6b1HG2dzZ8tU+5Emm
 p2Eo8wS8YKdSs2FOMwCgxJ34RW0ygwzd6LPzaE7AgFwum+0EAI2svSjBw0olDtIJ
 izSANtZs5HSDqlV+nbytGMZbCSD1gQVIQT6V2/aS7wwspm18Sfyg1wdvDu+KkjSu
 pjMIE5uXpd22YPDUTyC5VLfJxlKNflUNiNXqThkuKdnngg2T9H1BYMlPjpKqU8kt
 pbZRSdEZqo1vjqtW7NA+9MNeheqwBACEiboaYEP8o9TWgNtHhkqTB27q2iy6Ridi
 sx7Ez+OfVUYxScp+R6rCEmH4N60gpWlyBYdxKZ7oA4m0IDiMPwYEYa4eakRxK5Qu
 pchY/rwc/HRDOoMiyQfT6IJpAsMJAPFhJ0jm/Q/qUlpTwprIdQylwzW9SXhXOBsG
 frZjjHWFYYiXBBgRAgAPAhsCBQJNiKr1BQkJ44gXAFJHIAQZEQIABgUCRYZWWwAK
 CRDeMOQ+mxn5VjVXAJ9wUjzdKom+ThOk2dpQo5Gv0O/ADwCfQ4uBOUoXTdB0Z+qP
 BVnNLrZFIFMJEPDI5OdgrpCMWAYAn0r6TnkaKO5BWEzqD8AgKEBQ79vwAJ40sI7K
 sg4yrGkH4IXKBB8csDYR5w==
 =IPI8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.280. Stanislav Sedov <stas@FreeBSD.org>

 pub   4096R/092FD9F0 2009-05-23
       Key fingerprint = B83A B15D 929A 364A D8BC  B3F9 BF25 A231 092F D9F0
 uid                  Stanislav Sedov <stas@FreeBSD.org>
 uid                  Stanislav Sedov <stas@SpringDaemons.com>
 uid                  Stanislav Sedov (Corporate email) <stas@deglitch.com>
 uid                  Stanislav Sedov (Corporate email) <stas@ht-systems.ru>
 uid                  Stanislav Sedov (Corporate email) <ssedov@3playnet.com>
 uid                  Stanislav Sedov <ssedov@mbsd.msk.ru>
 uid                  Stanislav Sedov (Corporate email) <ssedov@swifttest.com>
 sub   4096R/6FD2025F 2009-05-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 syiKxh4=
 =OeD1
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.281. Johan van Selst <johans@FreeBSD.org>

 pub   4096R/D3AE8D3A 2009-09-01
       Key fingerprint = 31C8 D089 DDB6 96C6 F3C1  29C0 A9C8 6C8D D3AE 8D3A
 uid                  Johan van Selst
 uid                  Johan van Selst <johans@gletsjer.net>
 uid                  Johan van Selst <johans@stack.nl>
 uid                  Johan van Selst <johans@FreeBSD.org>
 uid                  Johan van Selst (GSWoT:NL50) <johans@gswot.org>
 sub   2048R/B002E38C 2009-09-01
 sub   2048R/1EBCAECB 2009-09-01
 sub   2048R/639A1446 2009-09-01
 sub   3072D/6F2708F4 2009-09-01
 sub   4096g/D6F89E83 2009-09-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 jJLQtFy144uCNLgL5JagmqMiXx9rL6dHFHc=
 =sXgu
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.282. Bakul Shah <bakul@FreeBSD.org>

 pub   1024D/86AEE4CB 2006-04-20
       Key fingerprint = 0389 26E8 381C 6980 AEC0  10A5 E540 A157 86AE E4CB
 uid                  Bakul Shah <bakul@freebsd.org>
 sub   2048g/5C3DCC24 2006-04-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBERHS6MRBAC60MHcIa5gqGjSmHLxJeZTkLTDK0zEo7MRJuMeF90Py7wdP9Fy
 jmRhyBS/tYfOtPrpHwAdn5FIkVzajEklv9L0/JiUx5WDrmJFWqIgRLdRPYw909hE
 7pW3uTs2qotWjeA8ecefzlTX9gdZVgy2uPhihMG9cn7pL1aXluca8AUsIwCg4lUf
 8pL0Pn6pZ6xP7nG1hEvkzr8D/1LR5Bm47RboJ+dvoMf9lwlXiEBP0m40100urcxR
 7e+AHDX2yr6s4edx7pPRCq2ubPgzK2rYv4NHN943AY8EYbrazp5F3EItDOLHmIus
 JasvCgPTb7HYWO7Q28redJyUIfBUTPgVVk2z4EuCb5QKDU2/2DyqWThrLEwTCTRh
 mR82A/sHQE/xib0291VjMxGKiatd2Xm5hu7dSzCeZwc/5uF0g33OYcd02fosyERd
 96SWmGigFWLbQ/kFiAoN0OAlQQoNPuWjGzIJVrxiy9y3Fw2hnoiV3MAWAGr43+UI
 FR+XB/MxOKIozYrMouhZHtmw237fKVH6Ewe/rFkthkgm9P9BpLQeQmFrdWwgU2hh
 aCA8YmFrdWxAZnJlZWJzZC5vcmc+iGAEExECACAFAkRHS6MCGwMGCwkIBwMCBBUC
 CAMEFgIDAQIeAQIXgAAKCRDlQKFXhq7ky+oMAJ9Cth9LlPV2on7lTedInW/6T2mh
 YQCgm6bY4yyoJbjUxop0bcuKYGVVuSO5Ag0EREdLsRAIAK/+InMhz/qJB/+Rwq08
 K6TtPPkAs5+IcFQqjShCtFWiaZrvBqvcTPDqVIMu6CAnBf6QTOKQc+L7lSUE6QdI
 0mE3jiieYJ/cDzSqntYZBkC5glW0AzemgyllQRlqKrIawWu8M+SwZipvKb0YCIFo
 rmhoHCjzK/DKlSi0MOjPVTbsyS/rTvhAoXxodogKfNzRpb4MwDjM4Lda9mO+hKlI
 93CsBCzNZaOECYJ/1vkpuGqOBhvezrLtNCYFmul2JtVMyCb86mOIJAeiwn/hiZu5
 eU3QYdvcCOfYh//B8AZOVSW1x8HYzMFXuznVtx1P5ygvtWY3u+uIlXC274XuV0aJ
 NNMAAwUH/1rSg/fSdVGEG3ge+sGtFKHPOaGW014dt5nHCePrhLwHIe/udyZPCD3a
 axp6RVlx5Yvw2+nMBWiW65KACBUQslSHbeM5u2aPH6HaAAEYCJ682vKUWyEHGljJ
 zDBBANYKThYwle1xRxiE5MT9B2Bz33z2/BQnCgo21KYAU/2bwi2qVG0jyF0i6ryP
 6r5w2zZbZA/0IINcwENYRhYdtU+QtyB/HqX//nshVnxZFgG0pIPET5ltq9VM+6Fj
 hxJ2RXwGOxBJW3+yLw5JuDVrqoOz2lAOulY2uiQY1Nk9xHDBKZ1U172BugHuOIbW
 EAgbLB4QFuIE0HF1h6bNSISULLt0/yuISQQYEQIACQUCREdLsQIbDAAKCRDlQKFX
 hq7kyxbGAKDdITbPvXRBxINGLWTcNxtRqjXl0gCbBVmMqSG99Tl8uB7wTZRDjtCX
 5DU=
 =iFzp
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.283. Gregory Neil Shapiro <gshapiro@FreeBSD.org>

 pub  1024R/4FBE2ADD 2000-10-13 Gregory Neil Shapiro <gshapiro@gshapiro.net>
      Key fingerprint = 56 D5 FF A7 A6 54 A6 B5  59 10 00 B9 5F 5F 20 09
 uid                            Gregory Neil Shapiro <gshapiro@FreeBSD.org>

 pub  1024D/F76A9BF5 2001-11-14 Gregory Neil Shapiro <gshapiro@FreeBSD.org>
      Key fingerprint = 3B5E DAF1 4B04 97BA EE20  F841 21F9 C5BC F76A 9BF5
 uid                            Gregory Neil Shapiro <gshapiro@gshapiro.net>
 sub  2048g/935657DC 2001-11-14

 pub  1024D/FCE56561 2000-10-14 Gregory Neil Shapiro <gshapiro@FreeBSD.org>
      Key fingerprint = 42C4 A87A FD85 C34F E77F  5EA1 88E1 7B1D FCE5 6561
 uid                            Gregory Neil Shapiro <gshapiro@gshapiro.net>
 sub  1024g/285DC8A0 2000-10-14 [expires: 2001-10-14]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 LsOLmQ==
 =GprF
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.284. Arun Sharma <arun@FreeBSD.org>

 pub  1024D/7D112181 2003-03-06 Arun Sharma <arun@sharma-home.net>
      Key fingerprint = A074 41D6 8537 C7D5 070E  0F78 0247 1AE2 7D11 2181
 uid                            Arun Sharma <arun@freebsd.org>
 uid                            Arun Sharma <arun.sharma@intel.com>
 sub  1024g/ACAD98DA 2003-03-06 [expires: 2005-03-05]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD5my2cRBADKOgeJz+IX/4UT65iwvAMoR5SMctMAEGNHvTk96H0DSYmDmqPE
 6D4PWxjiAmbFdMmxGvmPlZDGRk7IpZhrvmsAuAvwImA/UyGb3Qnb0zOoOlAIQiGz
 NXRvum8vzoTeW5r9ghLOKkBuze1qi8PZdT+ztreaYcPPZBI9zPNfnZd29wCg4Sqo
 eWA46NgWICUsOpC3dkhAmdMEAKBUmh8p4kOZQq5LPv3y1fo+5MBI1gnawiJoO955
 nzVuisH5h1yaNjz0nkB5VtEG2Ub2mhBjckze4EP4FzPgIpOhSMdGfNh67rrByvv5
 DD/SBwjULSEGbBlywn462QDb1X0PxFX5C6IYK2Q6i/vbWkOFMI2dVuQX0PUq9zjN
 D5QJA/sFeXR7NcutCUaLknFCaV1cBTITJNurKn5Vm3QQq5s6R2cFTxdouHcSNkto
 EbhcAvMapxlWl146h7mAtLsXXa5s3wuMWq+igOXUk0wkcm8CqvSQtnVYl4Xy/Ll3
 zXKxtzKHZ1YxAdYQXGkesBuaSafCN6VYDFFSEwChHrwe1sV9obQiQXJ1biBTaGFy
 bWEgPGFydW5Ac2hhcm1hLWhvbWUubmV0PohiBBMRAgAiBQkDwmcABAsHAwIDFQID
 AxYCAQIeAQIXgAIZAQUCPmbLaAAKCRACRxrifREhgYRWAJwLdcAEvjkJf5bHy975
 R7q7Rp4KUACgq214dvKu35ysWriNNxu2jtIj1he0HkFydW4gU2hhcm1hIDxhcnVu
 QGZyZWVic2Qub3JnPohiBBMRAgAiBQI+ZsydAhsDBQkDwmcABAsHAwIDFQIDAxYC
 AQIeAQIXgAAKCRACRxrifREhgVrxAKCXiBsYhu++BPQX9prGf2BeKNYaswCfaS2Z
 eNyZsxSNedBb26k8ARWrZzq0I0FydW4gU2hhcm1hIDxhcnVuLnNoYXJtYUBpbnRl
 bC5jb20+iGIEExECACIFAj5q4pcCGwMFCQPCZwAECwcDAgMVAgMDFgIBAh4BAheA
 AAoJEAJHGuJ9ESGBbWIAnRAlo9PVZzdar5pmWDGspeyGk63ZAJ9X3x6ZQSD7uYeB
 ajKe61NpPAamJbkBDQQ+ZstqEAQAkgu4UWlgyF1IeMM+vwHQ43zik3Rn6nhpJXRb
 Arpg4QyVHQNQshVT4XsmSvcgw0TSUub0x5m23dqnhcoB/mk0kAIymVQiEaa4SLjI
 tTXd93yRvSgPd8JEUNFwcSE43ZJrrmSAqIc6MUJ0hI/pAeCFvRWYQ80+82xx30Vn
 fJLOJR8AAwUD/R2xFX5geJ7W8OyLtB5XQirkL1YPGLNNx4lyAPXFJc1s1KwfZ90q
 LYNw2qLRIacYKmY2X9BrWADXPrEZIDKljn+Awz34lSwerLHWwYDDoeyjfMt4Mmra
 MsV8UIjaBGO1ptbqEDSVeb1tiWQGa622pT5YaZp/r/OFdlmg+JvkAzHkiEwEGBEC
 AAwFAj5my2oFCQPCZwAACgkQAkca4n0RIYGWkgCgxhDAezhK5kiSC4N74g9ifsF2
 jl8AnjujFRJcMfV2R28jiZ2BS9mnvqjU
 =klyl
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.285. Wesley Shields <wxs@FreeBSD.org>

 pub   1024D/17F0AA37 2007-12-27
       Key fingerprint = 96D1 2E6B F61C 2F3D 83EF  8F0B BE54 310C 17F0 AA37
 uid                  Wesley Shields <wxs@FreeBSD.org>
 uid                  Wesley Shields <wxs@atarininja.org>
 sub   2048g/2EDA1BB8 2007-12-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEdzy+MRBACwXYsfLwZzbzYru+XqMIFKVIIszXJK61UejvQqcuaZRNLSQyM8
 Fc5dI6AfciZV9tH8LDqYmd/vDtzjmBp/h2SPqQfiVuREQ0+c+aplvWvWc2TjFQg6
 CZbb730TtazPXbObZvSMRvLeRM32W9Abj5L8DXoQbpMtC8cllG21fsY4hwCgyngp
 xK9e32zih9ddXk+NgjK627MD/iPPyo0N4cb9omNwOCot8YIRpdJhmvR/yPh+8rmW
 NUu61gV8jn2XB6Ldto8/dR7chqqbBU7bS+hsk/lmbOuLNe2XkQA3e7dd0EEHSYYf
 mx6zjw/dEb9EBANAWI6QOyjNM9npWb/shZi8Pehcty08t2eytd4M7wPI9zLAXsMV
 M3nUBACgxIoW4e9yXeNQ3CI2KD/Dbup+SNha1uCEmzN5A0VfPJzyi4Avdtl9URGC
 HUFnUAs5B366yQTgmkjUcfcWqTKBicp4TAZ2KbuDzMX6f6cikb9bdbl4P62vN718
 5iclN77KfTfc6j4aOdIbnc6J9GStvYY0R2eZRKkr3CsqSuebxrQjV2VzbGV5IFNo
 aWVsZHMgPHd4c0BhdGFyaW5pbmphLm9yZz6IYAQTEQIAIAUCR3PL4wIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJEL5UMQwX8Ko3juoAn3bIDWeVAWOfi1XjXdaA
 HN7HKkMKAJ9RJ4F67NZKo37U5E3UnnVSRLCZ27QgV2VzbGV5IFNoaWVsZHMgPHd4
 c0BGcmVlQlNELm9yZz6IYAQTEQIAIAUCR348ggIbAwYLCQgHAwIEFQIIAwQWAgMB
 Ah4BAheAAAoJEL5UMQwX8Ko3KPQAoJYfbksQ/n/1FitmpqJb+AmpOmkPAKCVXF0g
 Clk43/Af2rVb3Vm91NmuvLkCDQRHc8voEAgA6Tped4TSVLcdXmDMeHvt29i/9rGw
 EO6lbwUZfamHGasMALyhWC2/nWhoCdo6tTP2XT9guEX5eu/FoN+nAEIKKHqNiiuZ
 6jyOuzUFD/d6n8pUkjHRLqLxFznbgW8f0aaG4rNJTQEQy6+X4/yKEvzRxjroNbZQ
 l300+liw6Q5OztzgMjhkcva4Gxf+aVhVMueGVuANj1QhPPqvIT2roRsBY6PPNCGY
 AaymLWBq51UbvE5j2jtCF2nfxYnajauqnJpZK0tSkLMkxWd/Khvv7GmO4v47qx/U
 DTx6iQP/i43JZIqSg8zSGjY9Lr9XJpzxr4FVyW/rs5X3Fp9ZCQxF3Sty5wAECwf/
 Zs93KXphXLWhCal07JQsu0T2y81+EXRue7QltZs+VTHvGZuc949dgnZrq6iRckpD
 unMRJUXNrKP6BFNOJuDAVRVOxxDQc+ydVGwpQFzJes8/9C0TYOaw0k+ayCZapfVf
 L6zktK+g8oYOXVjjdo8hX9xsus5ie69x73Csve59VmGgCwvywuLUcjCWEgMZGRY0
 hBL9ec4uRDVRIdsl15hQ3NGwdxiDEPkJu8QzQv/t4cde+omnI0UdH+Ywk6FZ2qxj
 62QaoTvFhuNfWUdmnEAbIkfRCFnHVEL5KcQs0Z9CM2V6qS4kdD9wzthhYtcRgWjS
 paW/fPyNYLmXuYgvfyk8XIhJBBgRAgAJBQJHc8voAhsMAAoJEL5UMQwX8Ko3AxYA
 mgKQnqx2baAJtOI7VsgWeTBFEi+HAKCaIQDFpsRsUtsuEYpqj+/zH1bwhA==
 =kNwv
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.286. Norikatsu Shigemura <nork@FreeBSD.org>

 pub   1024D/7104EA4E 2005-02-14
       Key fingerprint = 9580 60A3 B58A 0864 79CB  779A 6FAE 229B 7104 EA4E
 uid                  Norikatsu Shigemura <nork@cityfujisawa.ne.jp>
 uid                  Norikatsu Shigemura <nork@ninth-nine.com>
 uid                  Norikatsu Shigemura <nork@FreeBSD.org>
 sub   4096g/EF56997E 2005-02-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEIQ08kRBACP8kqP9uJbHt3w8lPR08oRyvhkUgDO4ZtkragusqjwQ2qfv1GM
 P/cr01I7QH5k8cexhrjroWoaeXIcMUvNtMOODgj+BhjF+9mj66FG4ed9RkVxvqo4
 3v41Hed0bX3z1vrnTNC4KBfS2HZChIZr1ZnQbosW+MRAcvclgOkF4RFYZwCgtdPh
 WQv9+Lo5QHqpt2hgz8tWklUD/RXBD2HpVfbQX0zkwKUYrHIoE+0oMizzFTdQe4RP
 HsGiCfZ19msSb4Pjewm1K+Rhg6wUq9hCE0gX2U9J1BUtXtqAoy4xY1JSPg40bigo
 +kjEAIJ6mA/a1UJXpJ7lDMBzKtwWfxc7F48M2iIJLUaXQzSVyWcZ/V5e9y/1VBsS
 MclmA/9+1Zr0zrpl8/HnqLfHiyT/3CNGKPodqfEb6qkSP2M9RtYRTmeX9BBVh9of
 JyfAlkD3XlDyT+wmLSZKTRvAVeenBe9ApvJIYvShVU3m0R6nfDtREmWtILtFf3Jf
 fwDvNJRoRL0UwkR3AbbMEkhe+6fzUHir5jRCPlV2EiJYrurEsrQpTm9yaWthdHN1
 IFNoaWdlbXVyYSA8bm9ya0BuaW50aC1uaW5lLmNvbT6IXgQTEQIAHgUCQhDTyQIb
 AwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRBvriKbcQTqTkIIAJ4vawXwVjgwFZGT
 wx+99FNG27QbygCeMaOv1igYzwl3AR2Ex5DQA4kSHPi0Jk5vcmlrYXRzdSBTaGln
 ZW11cmEgPG5vcmtARnJlZUJTRC5vcmc+iF4EExECAB4FAkIRRbQCGwMGCwkIBwMC
 AxUCAwMWAgECHgECF4AACgkQb64im3EE6k70XQCgkVmB4DE5TioLKXQjDLhFarws
 7VoAn34rlYTkNXPKyyCfYNKnFy4Kvtd9tC1Ob3Jpa2F0c3UgU2hpZ2VtdXJhIDxu
 b3JrQGNpdHlmdWppc2F3YS5uZS5qcD6IXgQTEQIAHgUCQhFFyAIbAwYLCQgHAwID
 FQIDAxYCAQIeAQIXgAAKCRBvriKbcQTqTka+AKCkKxW56I7qwivXmENPOmIpSCoq
 kgCgkXJC9xya2xLdpejt0QHA5vKdqDO5BA0EQhDUlxAQAL3egLJ0c9xHZnD4u5c5
 xVixwR7I0AvHynNRNqbXKPg2sPBAwDjh/zN8EUSR6tOL28WGlk35x6iYopvixb91
 NKwFzk47Zv9k+71JGKtaSVpxhttI6gO8AabD5mkpxXbaZZhj/mw/7+pliDLZQXRW
 aDJgCwD7XngxVIVkUetTmLT7Zchmj6332X/B0NdG8zRDXoH8CStJdJJdegwJ+zQe
 U0MRZRl9VoHjSAagL2Hk9rrlDwMUN00ectEGurih5CA6qVWAL18GIConndLwD2KK
 a9J854xf1y/VtQKDzU2I3f7eQfgUZs+f6XBGm4mqFJg3+h1dEx+i7wgVZfEN9b9o
 i2JyVk4kHNvuHQt6Eg6oL42Y58v/sbqIrroxtVPciBvYaw2bfQfhfzOS7Ho/P53O
 TXGNUBznH2RIW/GWhJlT9zgfqnchn2D3YUZ2Fa63gItvUwVYoRDPygxMhGqxGRsr
 HIr0envWXjpmozE+aBV89rsWk8f4bt1mp4jiMHKRo6Z8/50wkzWDBtSSguzig2ac
 gMDhGG2QWEKTuOYS7EM6FEz4vhX4KZKk1DGVNkpK5736QE6MNqILlcsPcfGsT3QU
 +7u4DFHQHGg7rdLFpBnKH5KtzHaJugChrxKhJiRTuriM8GzFYvKwOMVrtfThsX65
 ZEzXsIirWKNmDoetffGx9MuTAAMFD/42QLAegFaiqHwjiK5ju+YUu0kme/VMu2/O
 0rXIHDFruxCV9wWzICsvb5Ung7DBFgVTumI2FVLepzVkqXjhye0XJE0IiFdyydMc
 2ahcuwoKsTlCbGzqqsgLcVXmSbrSyDZUjvfPnuOWZjSy3QALssLvbWl33bFl88H2
 VvxRjk4AIDkJm6Q9i8fTp7tbyJfdtJqCFMU2MHK46vPVP8jQqg+mLhh/hPOhoknU
 mlE9DrTGLOqoa8A9hOXjyrZuNeIb8+PMc8YPytFaIOL1Kt93qjJrF1wauzEaeZx2
 fQMpHW5Ud7x+CwSrDK3QV4MLWLMFzP6bb4a7bf57Y9OLn30KWx6ia/Ff5ZYHANH/
 4fK0fgaD1TropYUMkTXn+CjN8GeaEM3tz6FUWYUBjqa2n2coLfFR5kSBK/sO2MmO
 BpFXNqcUiZ198exbqmaF6fpbBaIn2eo3LGGbw4gK4/nmGQb9wvoBPwJFcMXmhN8R
 ymYE+jOFvMJ3W+9DHnryYK9t3b/+5Us3BC/oQKu13e+snXAAcQhtgNTjExU7qzcJ
 CsEwOOdwZF8Zf/0aPgFmkm/PXghZYJfdbmLLbhEdSOmikm3B7pBx2S1ZTAAoXIuB
 uofutdCctHUJs9Qj3ZRE8L+vRWlnzufhX2knX//WegDRpD0wdc94g0BqZpOT0Iuq
 fBx0K+foFYhJBBgRAgAJBQJCENSXAhsMAAoJEG+uIptxBOpOFfoAn20qdgTPaPmI
 Dx8oV0GpgT6zW3ITAKC0fDtfsq7z1vlOerBQRbCc4Rtmeg==
 =/u/r
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.287. Shteryana Shopova <syrinx@FreeBSD.org>

 pub   1024D/1C139BC5 2006-10-07
       Key fingerprint = B83D 2451 27AB B767 504F  CB85 4FB1 C88B 1C13 9BC5
 uid                  Shteryana Shopova (syrinx) <shteryana@FreeBSD.org>
 sub   2048g/6D2E9C98 2006-10-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEUn9lsRBADbufFsrk3YtL2jzdLYUufYV9goSp7joMMOwSLhSWf/98DoaW/d
 1bhwr9yAFfA81/ByuCEkigZl6jUW5AEEDuoJ4hxZG6th7OasSMCLHrGv4QCIDsiR
 Yo3TUFlh3Fg7SYZAxmGsMm44u/nB/0oZOWJeTzu4IkoG2QCfoRi+RUIEZwCgupdk
 xn2tovdQA+y5l7uxhm6MW2ED/Am3BVCM5EojGESa8QKTynKoWOzPFSvUvarqORru
 pEpmy5JdPjmf5mnfPvWcyccgAIi4VyuyGeqckFOJBBUaQ7w0Es7G9p+egp/e7UVC
 vgAVRKtSzix3TuXaaB04K3IJVY9vmEwTGO8Jy70Ab1hI/R4MbUUfzuWVaKUic9jB
 p3oRBAC8RgIM9zBTOtbsFTQ/LpiBL2X6oSRrJBvaLtFZEyG4aDGPxF/ESdfzIPrW
 3YePPinAgB1EhVawmP/uj3zhZQML3g69tVu9YhMhRb6C7v1h/nVC73wT3KDnGrPS
 eZzFhgHDr4zfEomXoR+HLjP3u9EMguyzlCfEO58QtTgeXKzZcrQyU2h0ZXJ5YW5h
 IFNob3BvdmEgKHN5cmlueCkgPHNodGVyeWFuYUBGcmVlQlNELm9yZz6IYAQTEQIA
 IAUCRSf2WwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEE+xyIscE5vFGEEA
 nAhEEHq5H3tzKRdgX+PFn8wyzSgqAJsECHYU7maqvBfs8l34AOwuoK+TR7kCDQRF
 J/Z0EAgAxyVxRfbMBrSUGeCXI1FSWvqZJkrLUeQ2aCN0FiEmrjUMqTgkiZcxortS
 BS9Iuk8aEXv7d4S6qhJLfidM5XgxZs/wXFHNO30S+HHw5EwQuSDg1OGM/vY2i5y0
 hJqZuQos3SpUWx2Hl3y/BlExt+D5jwFyU9hUE1nNru3SltmryJwr+6PDFfom5iYc
 1FZpfnm60ZPK0cWDYk04uMYebgXd55acArmPvZMdzEYl/ChrB2GEv/JTVCJZZY0q
 rfI7WE2wwPb6/+WK+QINb9fqAdGsOlpOgkuFo7Xu+iKdH/EDGWnKQkLMPClM1xMK
 dclJKMz5y+l/GB/dTYWH4NtGeiIk5wADBwf/TLTluCRCFKDHkBuV68mJs/ShXpXw
 tnhaFF5snAmmtAH0zk81byw4Wt1+MUMYZ1rYrmhqyhXcqnAcHYatUbj2lyvzvCxo
 W2qdW6CE+0bj/pCM41oeRZi4LzJx3pYwSS2fPWaBWAeWZ6qLrHWT8lc0RrJMlteJ
 kDnchDP9AVxmi4bvpmUbNPdERDEE66XFtQ3zXpzmb0hLV1Hcv60KVYd3zzRADOaM
 tRnRMN53/yC0C+DDDoV6H4TJwxiTo5MTT7s9a9H/EfMY40RxFGjwojRukCTGWpuh
 pJf2WBCsnvBqVsqJLeOHyxwlbJhm/KXVRbFoAp6rZTshQ8M2kplmygIJEYhJBBgR
 AgAJBQJFJ/Z0AhsMAAoJEE+xyIscE5vFzHMAnjcjCi17pcNEGqdUuGWLXFCyQ5X/
 AKCNc4ZJinPdFRM5W3TXJmKRuGTOVw==
 =DE3R
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.288. Vanilla I. Shu <vanilla@FreeBSD.org>

 pub  1024D/ACE75853 2001-11-20 Vanilla I. Shu <vanilla@FreeBSD.org>
      Key fingerprint = 290F 9DB8 42A3 6257 5D9A  5585 B25A 909E ACE7 5853
 sub  1024g/CE695D0E 2001-11-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDv5ys0RBACm/dkRFFWNFb6pafzsHX3YHfyYBQAhyoT5ZPvvh7e6RdHYdxYc
 tYjgtOid4jL20Uz7kXYwT5OVYo/l9j/AqknacYoboO5AHcJrfO3QjfztJaorUSqv
 w9dv6DSOQWwTmexeshp6v5aEsOpDbfPtUnFBwcJe5lOBsokk2CqkzI/XqwCgv49G
 uNLbdtIN87CrUwyiLG5nsSED/35/A/9b/KNwjBoBbheCJDByHNPd9svQIpVWTuk5
 i5RKVQQET4ZD5tPQWPnSZ95ztkkwcjjOak+esHK85yTYXXjrfcP7JiE3HIZhyj3S
 dxWaOFEbSE3Xc0BT+8BOAPFfb2WMSdCQFowkRqbMiFudLnz4tZnBmTQcuxqp4G7S
 AFh8A/4jBhhkKaw0KeWtkFKugVgUWZNWZ54aJhUaLg5wGbSTNME74YLO0Xc+wkjY
 id3gG5ayJyecZXCMUf175/ZaSPeNRCBOfMjDnl3G05b/huBFUnXzxTkWCcmopOwW
 5tz4C69UVP1UHg4XMu+f6D48srIaFu+DOMTwniL95vqcGkCUJrQkVmFuaWxsYSBJ
 LiBTaHUgPHZhbmlsbGFARnJlZUJTRC5vcmc+iFcEExECABcFAjv5ys0FCwcKAwQD
 FQMCAxYCAQIXgAAKCRCyWpCerOdYU/oHAJ4kKjpX6iMF1Y0FjPMyFiyUlgjT7ACf
 a3czQMrflxJC/VNuzMAmzA19j3y5AQ0EO/nKzRAEALHq1lBY0OBQBeV7sGOvTaBN
 itMZeVDrGDYUQ9xunaDsEHfz2fD3jXCZLaUayv4LZeWzRr4DbnK4F0AmZLR1v5h3
 LxBuvqHPRma5RyyFRftwTNHM+DWu6TSqnE43QS7Ci+z8ua96CmcDa+PnEfubyNLE
 dco8gfE4oHDqni1R2qVfAAMFA/4uVSYj/DvIzckbZ05FjG+pg4HKsyxyFeFsrm9D
 8JD9tC26k4YxLG5FPBdKRsDrN/lZbnLWHTtZqhE3WlX6DRlea93T9Vi2skbujKcN
 mbao5pyVXWl1dboFquP8ku91CRTZvmdLF6IBnPo0LfOu4jD6DsD5O0UZ7lD/Y+6p
 8WcDfohGBBgRAgAGBQI7+crNAAoJELJakJ6s51hTsJUAoIB80SN0z90ocSdxYGwl
 xkOSm2cvAJ93DigXb3moOsw3BRLlLPQRS6TZxg==
 =aR5H
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.289. Ashish SHUKLA <ashish@FreeBSD.org>

 pub   4096R/E74FA4B0 2010-04-13
       Key fingerprint = F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0
 uid                  Ashish SHUKLA <wahjava@gmail.com>
 uid                  Ashish SHUKLA <wahjava@googlemail.com>
 uid                  Ashish SHUKLA <wahjava.ml@gmail.com>
 uid                  Ashish SHUKLA <wahjava@members.fsf.org>
 uid                  Ashish SHUKLA <wahjava@perl.org.in>
 uid                  Ashish SHUKLA <wahjava@users.sourceforge.net>
 uid                  Ashish SHUKLA <wah.java@yahoo.com>
 uid                  Ashish SHUKLA <wah_java@hotmail.com>
 uid                  Ashish SHUKLA <ashish.shukla@airtelmail.in>
 uid                  Ashish SHUKLA <wahjava@member.fsf.org>
 uid                  [jpeg image of size 4655]
 uid                  Ashish SHUKLA (FreeBSD Committer Address) <ashish@FreeBSD.ORG>
 sub   4096R/F20D202D 2010-04-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 KuE+idQxbU77Z0BRtvqrcDwuelghJOUZ4KvLT6s8BNb5rJqJASIEEAECAAwFAkv7
 ddAFAwASdQAACgkQlxC4m8pXrXypJgf/RDjEqFUMxcyAXtsvncpNnJHjEqtlm8uj
 GyDOK69lMe/td44ujCJsqvqP2Pjj1dhZ0uh+R1Nd6mCBPviM0uH6lJ4QDoq8WRgf
 Fq03HGHxFAe2CbTaZbUa7aRHuevHzZwsAksNlsqFdp5Xq0P9c/rt91UNW93Y18cs
 edp6vSFVIcY20j5xxc9Q/xbjBIqcDJ75Mm6h+5ZlzgD6LDuwg2vQ2cWScUGFAu8M
 RzcPkCfLMBWdaojlXRCVYROA2UIwHknWtfEMtCuK7JiPRqzOoz7nRDfYvR6AQSLC
 aBsjMnf9fMfdd/XHaPtH8DJz5qlrdmZ4a1e+ByNhVxQL9T1sWGThQokBIgQQAQIA
 DAUCTAyZhwUDABJ1AAAKCRCXELibyletfM5aB/wIo62JuZQKCuuw/yry8x/TYAVb
 nhuQaD3HXZeiw7FT8bX58JQNGhRE6cWze9ziI9SEiCQ+n8J/VmXcYezXTOwWENSB
 u3OkE4h133CENnyqgJhmDboQTKbpq47jgHpBpATVMnLcDpKmg1ypXHUK/1zo4dWB
 hdNf/EK4adzLOCSnlYc4/4knkAiaBuy65oEYVeob9FogGK6q9xIFehzpRN53Pcgz
 I3LSf+I3gaHlNLIpmqvLAOZK88ZsnidCPhA4u0br9ce0FOKaTGzNN6zDWl95pBvB
 xoy+Jgovp3emI1OVNW+aNqK6Syt3WdSqi7UXNabpN0PgfqoHzU8a96aEYcuU0dGC
 0YABEAABAQAAAAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQEBAFkAWQAA//4ABE1l/9sA
 QwABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
 AQEBAQEBAQEBAQEBAQEBAQEB/9sAQwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
 AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/8AAEQgAZgCA
 AwEiAAIRAQMRAf/EAB4AAQABBAMBAQAAAAAAAAAAAAAHBQYICQMECgEC/8QAOBAA
 AQQBAwMCBQEGBAcAAAAAAwECBAUGABEhBxIxCBMUIkFRYXEJFSMykbEWgaHBJCcz
 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
 72HtYsmNE4TLbl0fMctolg==
 =ID+y
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.290. Bruce M. Simpson <bms@FreeBSD.org>

 pub  1024D/860DB53B 2003-08-06 Bruce M Simpson <bms@freebsd.org>
      Key fingerprint = 0D5F 1571 44DF 51B7 8B12  041E B9E5 2901 860D B53B
 sub  2048g/A2A32D8B 2003-08-06 [expires: 2006-08-05]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD8xcj4RBADp/ttN/vrU8xXimyZDEJ3NbJXMRAdWin8hhY5cVDT6n6t6Kih2
 5Z+orVfRUA77yyYprxpkMKJvfsRspWvJeM9/7duQe6C7CSUNwB3bXCj5Q7PG9Oqa
 a6ZNPQ8k0EGZkFRgbbkru8wpcttMr4ngsdIm5cU7Y/bk3O2L8kh/Do1XwwCgraUA
 0z9KKZR+PpMgM6YXmAy0fh0D/3EP//MLIF7RW+wyabjmTGxMB9RapZXlZLTjFFeX
 sOrAhgcjFodwigDHEqLtG5I75wz+z2vuyaLtTPHYy9fkFxKXNE8wNWj++6GMJO3l
 OWRyWNlDLX0d3D22vVWOeh/rLq+PvsEHso1TnOJrYn4Dn4VwVXzSIaGmzGAPuPoO
 KaT7A/9Pgc8gwGPtG31yrp6AixoMZ32wVdxuqndD3M9XK+jtcdDtKvICQcMWCL5T
 E8dwmb2qzN13bBILJHktut5JvjgOgYOJeLZKPAMRZz4MON7KcKNZKmPBuNw1a6cF
 KGkBJfbCh1GIx7DyF/CcFeg4/7IhQoANYZQNc9Zm/tRbg531SLQhQnJ1Y2UgTSBT
 aW1wc29uIDxibXNAZnJlZWJzZC5vcmc+iGEEExECACEFAj8xcj4FCQWjmoAGCwkI
 BwMCAxUCAwMWAgECHgECF4AACgkQueUpAYYNtTv0bgCgkdyW3YFhooTeMExQJT5Q
 FbCTYS4AnReju20M/WngliTt9bdbnbmPeGFOuQINBD8xclEQCADhc4W1TgKJBO6M
 bEnWC16IXR3U8sXU7meMMbclb5vWt3j1jHVczrYVdkEyGxzu+ydxVlPhdGXtxT1W
 8CBjXsfz8DRKs9nMttqPj5u6KQdr+O0zWiZZkoqOdT29X7WZNKWQreKK10PgvmDu
 1rzf0Y87B7M0qnqjKjhqinVhLrOHqJIwfFQmB/E06MOhE3BQqYXc5qvBuq4U9y7X
 Qt/Cxfobw47iwAJEJIExai4mMsbXXtydsj9O1tg20c7IBzJEEDecOFJPhIKtcQ7p
 kRNjVGwAkQhWmXsPZHKkMjgnkhTmH0L7MT2YGK6LHvLiuAbjULYiSZ7WLXMDe3iJ
 al4lDNSrAAMGB/9X9K1Dmdu6pWOub3zkgNybFFh8OoguKJkdO/bh1RejzeNfI9Q1
 M8gO3ePzgXF3+BgJIblOA77t6OhNUQLRcjSs/xZwXG5KVQjRF3XJGkLZQIl3JGmB
 i5eNE/rBIMHSPn4GM8FSDZ8bPGzgaTBhEIos/8nCMpyxf70f+gsbjjW/Dq2HXHNr
 wToHezXX1LzzCqIl2fJgubrMXVbKYQBLy7d/IQnfZp1sGfvTcSJSZXT3wo6MH1EP
 jUpwmfVOGDN1NDQTbuu1vYqSETt2xzIq4R/+y8/xbm8YKBYDCL2EyCGQcwWhFU4C
 RAgXFkuWPiXx/PjfYC4YpKd57/7xgRO9i++LiEwEGBECAAwFAj8xclEFCQWjmoAA
 CgkQueUpAYYNtTtwzQCfc42CUSzItmXxtmWaVRxFSbnwJTsAoKPQ1LsUmEHNo+1s
 X7criQoU0Axa
 =iL/w
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.291. Dmitry Sivachenko <demon@FreeBSD.org>

 pub  1024D/13D5DF80 2002-03-18 Dmitry Sivachenko <mitya@cavia.pp.ru>
      Key fingerprint = 72A9 12C9 BB02 46D4 4B13  E5FE 1194 9963 13D5 DF80
 uid                            Dmitry S. Sivachenko <demon@FreeBSD.org>
 sub  1024g/060F6DBD 2002-03-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDyVYkARBAC2Z/8odq3zwRIQZ9XOF4ZoQ8ITJRrTUwwYjwOf4Kz6gTH+zIGt
 Q57m5w1Scse3J/fDdIZzw0gJgH0XRpKOonWi23di4B3Oyvrdr1Zm6OlqUjoty8CC
 7jo5WlLF/05Vai2HCUmFeqiukCN0mfm3Fd8S+hf1IpE1gaIxCKNvYaf14wCgpoVG
 Tqi+lIMCktV/vxUf3h7KgOsD/3nBeANz3U+Izr9g/AsF/FnHXeawl2m7USaIB7b1
 4CFrQp8FDl6TCAtPHQyQ6pdnh0HZ3h+7cfPB1poRaXUvDimQZR9KHZO9uIilpC2n
 MdBjbkXmvVQ5FhOJz49cXw51Lck11n/+OuP4N4TcIHdt0DQJoUrGIB6X6Op9aOrP
 Ob70A/sFsFfebYdfH8loLsJkHU8VbB2Y0KZBXSnhysQ9muvj1HqT+n66o/3SliCE
 R3cNVMgg51pqxzUC0o6qTVKJbfOrI5b2tbYjvx87ejugQwafhKu8t1liDuUYQK0Q
 S549pzLKUr/NUvJaYU//6QlFIPNSzwB6x4wjrWAKBv6Vn+x0c7QoRG1pdHJ5IFMu
 IFNpdmFjaGVua28gPGRlbW9uQEZyZWVCU0Qub3JnPohXBBMRAgAXBQI8lWJABQsH
 CgMEAxUDAgMWAgECF4AACgkQEZSZYxPV34DFVgCfREoIUfpKaEeGyzl0zKThVC7J
 XccAnjiB85SwuNAxMraQuGDJXojukUfwtCVEbWl0cnkgU2l2YWNoZW5rbyA8bWl0
 eWFAY2F2aWEucHAucnU+iFcEExECABcFAjyVY4cFCwcKAwQDFQMCAxYCAQIXgAAK
 CRARlJljE9XfgA6GAJ9RFwXlNqYap2SI14IPRjX9ZAzvjACeOC/Elh0HkwQ2HZMT
 edpgzOuknUK5AQ0EPJViRRAEAO4VdFfYGd/amgG2MDGqD269Kb5vTFbS5mDczgjM
 6gXZgOjhbvj3x2auo+Pfos6M/bOtHuIk7QFOeOEJ1wcg8wgE3L3kFQPeEPeOgKBk
 /eA1ExIW3hiPeuwNxT3iWEv0GF/rvCSeSK3nuuDBNmkSpJ4LHIyO8Kf5YJNp8+6D
 yJ8rAAMFA/4jaulRHxSsWlFIm3gpBR9aiXGGX1pZTuJpXqjAQcRzDa9cuVatiSJS
 H9wzfE8R4353s5HpaY3AkVRjY6s9AB8bygGdUCQjuIuifTS4+tG/wmaXNgyqBqaB
 6V9gTgfW/7XqcJUGeLLMUpccSRZhlQvHd18aTfPWPB49xu2+arw6P4hGBBgRAgAG
 BQI8lWJFAAoJEBGUmWMT1d+AYlgAoKZWZs7rDLdQbn2d0CVwmWb6hQLhAJ9E/r8N
 n3jf2PI8Psl2wtgvWazpaA==
 =mkxU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.292. Jesper Skriver <jesper@FreeBSD.org>

 pub  1024D/F9561C31 2001-03-09 Jesper Skriver <jesper@FreeBSD.org>
      Key fingerprint = 6B88 9CE8 66E9 E631 C9C5  5EB4 22AB F0EC F956 1C31
 uid                            Jesper Skriver <jesper@skriver.dk>
 uid                            Jesper Skriver <jesper@wheel.dk>
 sub  1024g/777C378C 2001-03-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 Crfzumk=
 =Ru0+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.293. Ville Skytta: <scop@FreeBSD.org>

 pub  1024D/BCD241CB 2002-04-07 Ville Skytta: <ville.skytta@iki.fi>
      Key fingerprint = 4E0D EBAB 3106 F1FA 3FA9  B875 D98C D635 BCD2 41CB
 uid                            Ville Skytta: <ville.skytta@xemacs.org>
 uid                            Ville Skytta: <scop@FreeBSD.org>
 sub  2048g/9426F4D1 2002-04-07

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (GNU/Linux)

 mQGiBDywu5YRBACKxY/5WzdUtpL2aK2Yy/Yde2spYiEP2vKj3bs+ovV7a9129lki
 ldCu8PhoJO+x+96+AwbrR/T5FlXyQrInMa9U5os/8/HQjTXtY/oeq+UNDNFZrnMR
 Gu0zYICbzgd1rW/tnZJBkB3X2Ao6k0hSATGmP5/sowT7EBSdaM7ZhhqOywCg5A5n
 J7+062MfzdS/3KoSn+Utex8D/2BN/BMLvrItQBUjy0tn8Vsomx+FHbFKOm1cuOeq
 smhsOmsANwIafiZnK4+SnQlVbXJLM6exNTqSimH93y7Q9BX7hmWYl0XVpUui0mBR
 UrVG00PEa0jTLasOkvlyYBS1En4gZ5J2ArE2cYFPkv7jndqJ/pAAZkG+tQnXJ8l5
 g0SLA/4tJHLJ6kPad98V3cVbTfhY2Dn/i+QbHvzBbBj+bETLEUdqOKzADGrWoJeE
 fADfxYi24wHkpH3U781p4SldZpOUvkyYj7YmjqZP0AH6SsKI3i52z1BDQF49gRcD
 uc0sSmv57yvjKCk1Cehen4/qaVcqXWTZ5NfyGb+hbHLtA2FxSrQjVmlsbGUgU2t5
 dHTDpCA8dmlsbGUuc2t5dHRhQGlraS5maT6IWgQTEQIAGgULBwoDBAMVAwIDFgIB
 AheAAhkBBQI8sLuXAAoJENmM1jW80kHL8KkAn1yTiwsMLq9GsqA44hkh1Sk0etM/
 AJ9BiDSqgX0S/wzyXAqfYcsmxS96qbQnVmlsbGUgU2t5dHTDpCA8dmlsbGUuc2t5
 dHRhQHhlbWFjcy5vcmc+iFcEExECABcFAj0dWzwFCwcKAwQDFQMCAxYCAQIXgAAK
 CRDZjNY1vNJBywFtAJ9NCVHRa6GxtfTxae+6ZkTh08xQZQCfcGNMwhcSGJUyjKI2
 eYucgrkwp2C0IFZpbGxlIFNreXR0w6QgPHNjb3BARnJlZUJTRC5vcmc+iFwEExEC
 ABwFAj0di4oCGwMECwcDAgMVAgMDFgIBAh4BAheAAAoJENmM1jW80kHLzoYAoLqR
 3unds+O73Z3EppJna4gECkQ0AJ0Uye7ZXLMTJo7pNmZSBSz6bA/qFLkCDQQ8sLvS
 EAgAinenfe1g5Cdp8bf72+idBePq0zHyPUOpCuFGkiKXecXpgQUHCVYM8IiafB1M
 Or9V97vy1H56sr+HaBsC75mpuPC7lnltoY+zq0zIkNbi20+p/546W7A5MV66xtTx
 D6uUSyZ3jksAaVch+6yQNNxr3CDWiNSjomkK1ExPsjaPAA82L4yExAJJGwUYAPOS
 B1Gw6N3dUtoNuQwJdcw8fjsaRektXsHm6Nnm++3gB0YJ4/x3gcvxlNlONHNp5vdW
 msQAJtWj4isSMfqi6Y4SQsw2MWOKrYr8Lt++m4cQC6/VZXafTR/TrDZCqYhwovyX
 vgLMdKfxTZLqsyZwgWDxFKOEewADBQf8CCEh65lRfWQG3MopboOs2fFp3BsfVMvA
 stV5AYktLHvwGXTW0rx7sCdb3kBtKjiuNFob3gis2Nd05NUxFrzrZsyaktyDiZmT
 gjmEL1LvodDg/mXLRQgl3QDzUL1nlfFQRkcKqlDfCYezbgYFxCy4EGsC86cf8s8F
 ZI0hyXXY+zir+xJ/w4KBtL+cY5LJExh0FyPfNnL+tXUthRuN9wxZwVyQ9I4RTlkv
 ybb8VTWEgzkIf5BiDZalvcOJNAujptlgz2cLnV4Kzu55Xy7jOi5YfYjMbSDa6W5c
 vO/wbcAG3gwZOoeHBRjwTNkn4iBkDPq71o1LDDxHvWUVAO+jU3TrZYhGBBgRAgAG
 BQI8sLvSAAoJENmM1jW80kHL1RMAoNsmDIuxlUf3YwjAr/fSqBOKWgN0AKDc0CBV
 uZAqlAL0tDv8Fiz3HvICMQ==
 =mEvy
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.294. Andrey Slusar <anray@FreeBSD.org>

 pub   1024D/AE7B5418 2005-12-12
       Key fingerprint = DE70 C24B 55A0 4A06 68A1  D425 3C59 9A9B AE7B 5418
 uid                  Andrey Slusar <anray@ext.by>
 uid                  Andrey Slusar <anrays@gmail.com>
 uid                  Andrey Slusar <anray@FreeBSD.org>
 sub   2048g/7D0EB77D 2005-12-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEOdg/YRBACkP7DeG+wypqbAvKYmIYMBHsYFCmIf5928MvpCgwO4idtg76IX
 Qd/AQH0sF2uFJiikI9NiJuq3OUXsyRk+7xltLLrgzl7/0GTT6jej8tWFH0AU1/0r
 nYhUJ/svVe+QNNEbMOvCCcZLslv4/fuak4Ilvgcb/SAir8iUL+nfNzwLwwCgw+fG
 2DBpULmZtyMUMZYwyi2UQ2cD/jycHnx1+AHLt24OajcWBoBG88DlcK3ERpg/J+D3
 PYoNfs4qcEhU4UVQw5vhMXBnWxD+BiZf6yrh/GRay11oqShMWl/B4UQrZZBwXBVN
 Lvx4aY6LRA/DAUd0R2CUIwsjaaeBQ2gmvISau4UjtE1ezNI5s/E7oFDNDKkv06Z2
 hrucA/9G3+UlrLhDWd2+VMt99O5FFEhtHbClMUXIhXYwFS/41zy7cGf9p4wA+IQC
 SeXns1bvdZYBxPAYTgDK0XGP8yi0TMpICcXB4v9gkqKIIuO3scB3mH+We66RG5mI
 7sls5BoJ3ARfsJuidRS1Uu0TXqCTcj2NTCtDNWd82nRarNpDwLQgQW5kcmV5IFNs
 dXNhciA8YW5yYXlzQGdtYWlsLmNvbT6IYAQTEQIAIAUCQ52D9gIbAwYLCQgHAwIE
 FQIIAwQWAgMBAh4BAheAAAoJEDxZmpuue1QYMTQAnRGPeBTIOHdEj4nOmVtECGhv
 jpqsAJ4pcMFoOwSyCqy5YXoetkQWrsq3IrQhQW5kcmV5IFNsdXNhciA8YW5yYXlA
 RnJlZUJTRC5vcmc+iGAEExECACAFAkOdhSwCGwMGCwkIBwMCBBUCCAMEFgIDAQIe
 AQIXgAAKCRA8WZqbrntUGGMkAJ45WS+CK9Uh2UYk3kGG6/jmx3kVFACgl3ALZehS
 E1Z1ifNha7XLh8C+U3G0HEFuZHJleSBTbHVzYXIgPGFucmF5QGV4dC5ieT6IYAQT
 EQIAIAUCQ52FUAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEDxZmpuue1QY
 MzsAnA1T9Wkp8yaxQmPBuuvZNrTdJOBjAJ0TJrwVeQW/+3zffBICU+rptKA8xLkC
 DQRDnYP9EAgAjavYUHgBttL7+qFwfeOJ3oW+sNVNsMp4VGWvy6QeVCeFvVK+Kpb/
 eN9ScAFJM+8wzhNHv3eyXFht0jwSadX48a0FzcYApm+pP3OH6y4Osxhz27P2tc2u
 yzKMV19nZz28cikY2mtH3Y2GtSyn8pOIL2Ar4sc+hK1LnszGTPf6YgLSBlJSnGH5
 +TMg1Pxq/CSDIq4zEv9IyBLlbuK+w1/fqDzLBT5L51FdKDUpsCBZNPaRiin+ZkBx
 LI742GusIYz+aIcwsRBDONnWdemAHbtSFDxMup5SSEvlAtEU5O0gO6bZx3tv+WZT
 6EJ66QsE5IszzTGkw0qK/H/BrsEbyOPbOwADBQf9FOrU6qF1Zj/ONad4vzbjDrn5
 nI1vnrBkJ2QJnMM/d6V2ItUVjz9myqXTgteERmwN60DD1jrTqsw5xWHJ/rjJCoW6
 mUHWjVkUram3OL/HO96t8zmTZDynrGXfnzLqykkLgJVsVmoU/1OCusY6h0CMAiWr
 altooE6mD4dpBQq1svwJEe98/X97LJix0J8W1QLOwOi8lD5kApFf6feTRCzJKcOy
 Szr3NiiwYGGRyHDQhe13KiGoJZQbhoJlbpS7krBTAxyUll6RRtQmlITLF5wmP0jV
 JWPN2tZ5BdmqYEqOoH4h6Dj+D1glXT19YN6kh+CV1w/d6iWWiB1lDXwDOQMtFYhJ
 BBgRAgAJBQJDnYP9AhsMAAoJEDxZmpuue1QY+tUAoK4RQLo2F+0c9PlfrfUOYpOk
 GAzYAJ0dMZ6xeDy4UKlIBdDq4KPZk8IGzQ==
 =vOBB
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.295. Florian Smeets <flo@FreeBSD.org>

 pub   1024D/C942BF09 2008-10-24
       Key fingerprint = 54BB 157B 8DB2 9E46 4A3C  69AB 6A9A 3C3F C942 BF09
 uid                  Florian Smeets <flo@smeets.im>
 uid                  Florian Smeets <flo@kasimir.com>
 uid                  Florian Smeets <flo@FreeBSD.org>
 sub   2048g/4AAF040E 2008-10-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEkBvUMRBADvY21WeriAMR1JjTxq3UGnj/gJL1WLXxym4OkZqIOmwcMdL4Rg
 BWzbp5n0eTiY4+p463NC0rRWSoJYnuncUD9uJNW8Hsne/MZ//eUC0TVQOmQeX4vy
 vdeCj2H/Q+oAa/AFqbBAA2bcvqWuwiQ6vg3aSWHXzYtrVPoWFqc0myW2mwCg5j+l
 GKb8J4zs3RX6koAzT++JrcED/RxUcUp9Hh0/J53qwq/OrhdG8R+TVUSqA8Zdc8Gj
 YTqmr58Rrlb5C6EpiWL716B7+iS2sxU0pDlrOhK2xzCnBhaViNjrrEMCiYPm1OyM
 QJAwAlV8aulWKK5bullZ/IoOwfN0Y/3xqcyb8pvNNk6FGueb+c4CCRZA069Arrxd
 ix2IBAC7QAMM8TKpZjuMtRdP+InmJhIkq4YRDXcdIzQopTSuaQlAZ55SX1YPHcn+
 kYQDZhsJr1mQYcpxNSV/+GJmnMNcaLMOdtM6IwyV6B75k+FRr2TDDAHmLXl9+SvI
 QXCqy47IFLWrAtByq6bmnngMqDz+YQJF+yZIoRvLRtBf21g80bQeRmxvcmlhbiBT
 bWVldHMgPGZsb0BzbWVldHMuaW0+iGMEExECACMCGwMGCwkIBwMCBBUCCAMEFgID
 AQIeAQIXgAIZAQUCTOudOgAKCRBqmjw/yUK/CR7LAJ4+IhYW52GMrD3HFP6aMcbi
 a6i49wCgkDLQgMjlhmrxqZBcrNSGzKHXmhi0IEZsb3JpYW4gU21lZXRzIDxmbG9A
 a2FzaW1pci5jb20+iGAEExECACACGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUC
 TOudOgAKCRBqmjw/yUK/CRckAKCuViBlM0f2r8KK+KLl8pyfVBXJ3QCbBifsn5Tm
 NFB5i5+GQqr6rbl1yZ+0IEZsb3JpYW4gU21lZXRzIDxmbG9ARnJlZUJTRC5vcmc+
 iGIEExECACIFAkz1m1sCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGqa
 PD/JQr8JCcMAoNtjrCmNfjb1ZjLZ8uZwN7R31DpNAJ9q3fORQoIZcYmBl6b1X1Xd
 v6+VYbkCDARJAb1DEAgAvVokUAGgNoLIb5atFee/teRvn8+WDIOwWHNMZ/F3w9fO
 1kPovV97Ux0n8mt6O0Z5bERo7rnK5vAqbd9xvW8HXjSdJxvYT23FyrwPyEKnvXvA
 92/yuZ+y7L+xxoHn4RqtFGg1d8iM3C5yGS3o1P54RRAbZ+8oc1p08k1kYosI2a06
 gIKKbvxVZH3ePv1Xl1b25gQKhj14GHm87xq3qclFtiDdP2fZIX5+H2uLwqJGhcPY
 ab3sl8DVLlSr/r4fUzPhSI6vk6MsuVCPUqqwTBybbIFrGMQxmJQjr8UCb/455gZw
 8eRDAxAgPttnk8Iqql/VTxEY3MzlQLGquCC0CpreBwADBQf41qghbeUBIng/1/NT
 6BJkk8irsNCfNeHHCPjkeaR+Dz/3lQb7tJyQ8TVD3i51rDhqaThONi3NqIrs9tLg
 zJOWBvooOzoQ5sGAi/ZtwmIFpRwX2vIm359ZXw2Z8C8HdFshDKcQ2k8cV4z7mbOg
 HVQHPIzXaySglp1m0KHkB9F2ph60l/QNYojXyNI2q+T/vBJMnf9OnF18lPOui2Sp
 peb0CFQ01KSUMXR+oK4p1JKjq52ua4eAo1gk0U931rBr9kZfN1mhcUvD3eSVUwZS
 wKmgZuZLu38IACQGrSBcgHDcBlc5eHTFuoKUn1cEJWi6J4wG6xFsrsYguyN0HF7m
 CVi1iEkEGBECAAkCGwwFAkz1UBQACgkQapo8P8lCvwmVNgCfcS6lzlVs9R2ut11P
 Qpic1Iujn8EAnjI/dpcnSOomuzyI7ZC3xvZLCtch
 =Bnxg
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.296. Gleb Smirnoff <glebius@FreeBSD.org>

 pub   1024D/1949DC80 2003-08-25
       Key fingerprint = 872C E14A 2F03 A3E8 D882  026E 5DE4 D7FE 1949 DC80
 uid                  Gleb Smirnoff <glebius@FreeBSD.org>
 uid                  Gleb Smirnoff <glebius@cell.sick.ru>
 uid                  Gleb Smirnoff <glebius@bestcom.ru>
 uid                  Gleb Smirnoff <glebius@rambler-co.ru>
 uid                  Gleb Smirnoff <glebius@freebsd.org>
 uid                  Gleb Smirnoff <glebius@freebsd.int.ru>
 sub   1024g/A05118BD 2003-08-25

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =buTJ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.297. Ken Smith <kensmith@FreeBSD.org>

 pub  1024D/29AEA7F6 2003-12-02 Ken Smith <kensmith@cse.buffalo.edu>
      Key fingerprint = 4AB7 D302 0753 8215 31E7  F1AD FC6D 7855 29AE A7F6
 uid                            Ken Smith <kensmith@freebsd.org>
 sub  1024g/0D509C6C 2003-12-02

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD/MDZIRBACfyWbQW/cZnu504r57DAQbCbTYNG7V/TgfZwphIPyC8YnLtmJv
 vLdtl7+ToiG7UJUJsBE9OJdb1qA7JP5+jha/TlzIAUMW8doWNyI52nM1zHzBAZVE
 aB4Gxy7pib9yBsrGYiLbuV5YfB7TUyea31OXpZ4jPl1E6RxlYdVuzEhq0wCgnOeC
 SuO0cJZMXisY7DhoF1Q8ucEEAIALzShJ6bbjABbcvMWmoRwXvIcBsAcjKSdRcIp0
 AP+9i3PSZkNXV7rfYM3+SydTa3sJIVBbdXChQakcZqu9+rmfL53rErErYuRwKqhX
 mkp4+3GO7cKm0Oya1xLF9es/OfkKcQ9LxkEytNEnU7xlUNoP8fkCMJcBIwagzPfY
 7UAzBACEwGP/o1e0R36jOAjrUZsxe63Zopz5138bYdZtmsqwI+QHK6+/tS5I7FCL
 EQZL6fEjR7gF1lcj3gC2nypjO1aqodx0hShlNnz9d3uJ0q8EChjJuc30UhjgTcbb
 ZQv3hssKHkvTJ5ch0x+ohYCfH+Gcd8jbXCZvvS8PcI66DRaz3rQgS2VuIFNtaXRo
 IDxrZW5zbWl0aEBmcmVlYnNkLm9yZz6IXgQTEQIAHgUCP8wW5gIbAwYLCQgHAwID
 FQIDAxYCAQIeAQIXgAAKCRD8bXhVKa6n9nfpAJ9MHcwNehlbFRJn8B9tlLBE2JvU
 aQCeLuore1PhiLZPjHriz0/npGn9xDuIRgQTEQIABgUCQLQblAAKCRDYyjFxW6BS
 wyFIAJkBI9/2PBvvTvB0FZUF2yd3JEQJMgCgpWVGTdChec2z/YGMQ/EeTgNDThy0
 JEtlbiBTbWl0aCA8a2Vuc21pdGhAY3NlLmJ1ZmZhbG8uZWR1PohhBBMRAgAhAhsD
 BgsJCAcDAgMVAgMDFgIBAh4BAheABQI/zB/pAhkBAAoJEPxteFUprqf2oVkAnj0Y
 vcFOkVU9JWyJJKieWL/+OuNSAJkBvi/uFt2RgkNgUOvHR61SxZrGeYhGBBMRAgAG
 BQJAtBtxAAoJENjKMXFboFLDvxkAn21uVgtvwLN82vOpKTvBzwAUVK/gAKCKEQDk
 vfyMyQZayoFeC8cMagaUCbkBDQQ/zA2UEAQAqYnqd58qHyrKfsw3SrTE74/4qneU
 ra7FY74jcUhGhrxOElG5hXrHHEHo+0M+0zFwhqedecj2GZbrzGEl5SxVsme3slAf
 Gt5OaAk/ojOY5d5rTezG5v7jSr4EX0JKDkdlve8RozHsutXznsXmUY/BfO1qACek
 herQeczznycJPZ8AAwUD/1MF+jo626W+4/gMgjgCQ+saOiNI6AnGlS879MUjV0Ef
 j6aPfAJ5Xi7zNqkM+HdNBxjPtyxIK8RqmdAjHDMR8FjlZjf+svwuL2CfXk4jCk02
 OXD4dxJK74w/ZTK2kSW1VW63+5K1lgsRmZvnTpGZ4ijxj4H0r2bJFQ7iUd2kNxpO
 iEkEGBECAAkFAj/MDZQCGwwACgkQ/G14VSmup/YeOgCfcaCQpDfKaEvYiw7XJryW
 b4OXclEAnArceW10G489Csi2QR94q7clHU0G
 =gLKU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.298. Ben Smithurst <ben@FreeBSD.org>

 pub  1024D/2CEF442C 2001-07-11 Ben Smithurst <ben@LSRfm.com>
      Key fingerprint = 355D 0FFF B83A 90A9 D648  E409 6CFC C9FB 2CEF 442C
 uid                            Ben Smithurst <ben@vinosystems.com>
 uid                            Ben Smithurst <ben@smithurst.org>
 uid                            Ben Smithurst <ben@FreeBSD.org>
 uid                            Ben Smithurst <csxbcs@comp.leeds.ac.uk>
 uid                            Ben Smithurst <ben@scientia.demon.co.uk>
 sub  1024g/347071FF 2001-07-11

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDtMtwMRBADrWbrHZdss5Nlj/VpLW92lUpmYdmw5l2wYRtTTeHXrfvUk++pX
 dJ0l1bSC829hokrlQiJZJdiPqu0fGnhxXoeA5QMvrtjMAG8E+MRSLIUaay08SLeJ
 NhQR/ymiLFmh5ZyzXyG+qhZj7/xw3ynHLQ/KHPhRJpAs9ef0x0rgMZxJQwCg00Y2
 8eIQKg3mikkLllnK7OHgMYED/jEhj6G2BLjKc/QliKn7KZZ2Ev4MMKUj36LPgzqH
 VTEhliqbRylW/nCFWhMyxbqzRjR0t6ng3PJYlSltcwwJheySHRogxV/gUvYMwQau
 WKkyFZfiO8/OBZkbuQotLI+4tU2cQFzBTuFIogh3Eg6PRDKUFx6g1AlbloFgmimX
 mdHABADTVFYFKHY9YuUTfpD0S0uLFQrtj3xyZGfA4tjXtc1xCgSmkxIVUoTzg09u
 EtcEvo8FzmmH5JQQV7cM8TTZutSFcHuCftwbhoMH562YkbuY160TCDHB9xc7hzk3
 uzij7HKskm0b6QmMCI6LAYHhAuTk1IKY03DwLBIgEX8g68wyBbQjQmVuIFNtaXRo
 dXJzdCA8YmVuQHZpbm9zeXN0ZW1zLmNvbT6IVwQTEQIAFwUCO0y3AwULBwoDBAMV
 AwIDFgIBAheAAAoJEGz8yfss70Qsc6oAn2Kxzsk/d1GDM4VssT3U3jaHDX5FAJ9l
 jFv088oFIgnhUiBOmoPEcwnozrQhQmVuIFNtaXRodXJzdCA8YmVuQHNtaXRodXJz
 dC5vcmc+iFcEExECABcFAjtMvDsFCwcKAwQDFQMCAxYCAQIXgAAKCRBs/Mn7LO9E
 LEV6AKClm5AuE0PobuyUVri0ZPT4Qzn/SwCfUO4Q/dz2kXJfcoi+svIdboVWsz60
 H0JlbiBTbWl0aHVyc3QgPGJlbkBGcmVlQlNELm9yZz6IVwQTEQIAFwUCO0y8XgUL
 BwoDBAMVAwIDFgIBAheAAAoJEGz8yfss70QsqkIAn3CdGD3kdBP8cNCWB/mmdlJJ
 2Ba5AJsGjmI0R+adewxQuNIGxPuwfuhqSrQnQmVuIFNtaXRodXJzdCA8Y3N4YmNz
 QGNvbXAubGVlZHMuYWMudWs+iFcEExECABcFAjtMv/4FCwcKAwQDFQMCAxYCAQIX
 gAAKCRBs/Mn7LO9ELCM3AJsF3zHJhMdP7zGhP1Sbwh0vOA8WYQCgxONfpOQhAWu/
 WwnZZnwNjUcnbh+0KEJlbiBTbWl0aHVyc3QgPGJlbkBzY2llbnRpYS5kZW1vbi5j
 by51az6IVwQTEQIAFwUCO0zAYQULBwoDBAMVAwIDFgIBAheAAAoJEGz8yfss70Qs
 txUAoKltbmA6D+5e4f43LWOOqfv6P/jOAJ0eUczvTczRuBzg+7fs0MsrtYtteLQd
 QmVuIFNtaXRodXJzdCA8YmVuQExTUmZtLmNvbT6IVwQTEQIAFwUCO0zAkgULBwoD
 BAMVAwIDFgIBAheAAAoJEGz8yfss70Qs57MAoK3vUyOUBVsEoHitX5eXJDos2JnX
 AKC4pG7X9x0EziSKSi/SFmRRNhx267kBDQQ7TLcHEAQAoByKPA5d5RrBOmmVb6cA
 5T0sQvYBsgHpn5INcPr4/B3pAXROzu+SveIh1yg6f5poE4LhxQ0Yva0sCPVI3WPU
 YDpOSu4l0BikO26sQ1WdGYpRiTxuFaqzKLapIiDOz1lpY4o5yChEKtJw6t94Hckr
 Ss6dPH9uE4hoaWxdbvquTrMAAwUD/RrkuvBBqAjN7flRrnNuQA04j8Oc5/znRiHQ
 Ojq8i0w7t1qrT5zCNbd1S4Avo8hc5+G6ap9nv5KA3G9TKsgBQjcCB038k/k0pzRg
 JZhIOVBXpbPb8ZahMk7Tdm7nGgILJzfW0cg2AwToKpEcxEVrhdtTjc11/J4q+wBO
 07lDXfYgiEYEGBECAAYFAjtMtwcACgkQbPzJ+yzvRCzdZwCZAXcRSox3VdhHpoJV
 FlnCmFbg4FAAmgPfaRZc9BE1SF825LsiKDAvUzs+
 =D508
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.299. Dag-Erling C. Smo/rgrav <des@FreeBSD.org>

 pub   1024D/64EBE220 2006-11-11 [expires: 2012-12-31]
       Key fingerprint = 3A1C 8E68 952C 3305 6984  6486 30D4 3A6E 64EB E220
 uid                  Dag-Erling SmA,rgrav <des@des.no>
 uid                  Dag-Erling SmA,rgrav <des@freebsd.org>
 uid                  Dag-Erling SmA,rgrav <des@usit.uio.no>
 uid                  [jpeg image of size 3315]
 sub   2048g/920C3313 2006-11-11 [expires: 2012-12-31]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 BAOo
 =h4i6
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.300. Maxim Sobolev <sobomax@FreeBSD.org>

 pub  1024D/888205AF 2001-11-21 Maxim Sobolev <sobomax@FreeBSD.org>
      Key fingerprint = 85C9 DCB0 6828 087C C977  3034 A0DB B9B7 8882 05AF
 uid                            Maxim Sobolev <sobomax@mail.ru>
 uid                            Maxim Sobolev <sobomax@altavista.net>
 uid                            Maxim Sobolev <vegacap@i.com.ua>

 pub  1024D/468EE6D8 2003-03-21 Maxim Sobolev <sobomax@portaone.com>
      Key fingerprint = 711B D315 3360 A58F 9A0E  89DB 6D40 2558 468E E6D8
 uid                            Maxim Sobolev <sobomax@FreeBSD.org>
 uid                            Maxim Sobolev <sobomax@mail.ru>
 uid                            Maxim Sobolev <vegacap@i.com.ua>

 pub  1024D/6BEC980A 2004-02-13 Maxim Sobolev <sobomax@portaone.com>
      Key fingerprint = 09D5 47B4 8D23 626F B643  76EB DFEE 3794 6BEC 980A
 uid                            Maxim Sobolev <sobomax@FreeBSD.org>
 uid                            Maksym Sobolyev (It's how they call me in official documents. Pretty lame...) <sobomax@portaone.com>
 uid                            Maksym Sobolyev (It's how they call me in official documents. Pretty lame...) <sobomax@FreeBSD.org>
 sub  2048g/16D049AB 2004-02-13 [expires: 2005-02-12]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDv7rWERBADAnp/1Nc02OyU3eiXisqYDw2CaFNG7CpTNalQbJCX9KDuCzNbh
 RKS7slRG0Cp/IsCIoJ0WLugslAZHBtLigl5XxdVeTYKJfXV1gKXLBnzW942oswUu
 zMeZzpcrCYHK7AVaTtZJEQTDf/SIx/ZYu8DJPv/7m9I7aY3EYXQsHIqj7wCghRzg
 vhbpzqR9KiIsH82z5ctlGHUD/AixgJJ6dCf/bxIq3siaijMs1fM1JNLTIL5W7i+I
 LWUjM9PJztfasAZMj4kXjimZl9345CW+0+jV2oe7y+AFWGZUsQHKb3azruH9frZc
 a6JSUOwvy4mQjMwtQC2ngJsUQGqrfGl3DLaa4hJzlgQ6i0PHTN1ljKvrMNgtgnZg
 dypDBAClZuCCjn1RffnM4FzWuDZLYL/wLhqbtzMNvQXe5gwnDeg1QM1xgfUtaaa0
 7f071Ayv+K54wVk+7XIRZLP0Kbgo07kJlXw5AzznzY4167RkcrifLPtG4nbDQCaS
 QreYjUG902h8T7ckkmTV6VAPGUEh/ms9aAeFxAg2XOXiwCaYerQfTWF4aW0gU29i
 b2xldiA8c29ib21heEBtYWlsLnJ1PohlBBMRAgAdBQI8INsQBQkB4TOABQsHCgME
 AxUDAgMWAgECF4AAEgkQoNu5t4iCBa8HZUdQRwABAZRqAJ4ypOHGqZA7mf+m+R1k
 kUCSxtirZACeIXLS54rLLTauEHQtuHfNKEQolCC0JU1heGltIFNvYm9sZXYgPHNv
 Ym9tYXhAYWx0YXZpc3RhLm5ldD6IZQQTEQIAHQUCPDcdsAUJAeEzgAULBwoDBAMV
 AwIDFgIBAheAABIJEKDbubeIggWvB2VHUEcAAQEdMQCgg67lgOG0NlSy6RlNxeqT
 mREvqt0AnjoRX4MwyfWsHmD63XoByM5XjdketCBNYXhpbSBTb2JvbGV2IDx2ZWdh
 Y2FwQGkuY29tLnVhPohlBBMRAgAdBQI8Nx30BQkB4TOABQsHCgMEAxUDAgMWAgEC
 F4AAEgkQoNu5t4iCBa8HZUdQRwABAYJvAJsGythE5SUctWSmAYIxYHagnEUU/gCd
 FQv6AywESIEMOLK5iaONMFb5NGO0I01heGltIFNvYm9sZXYgPHNvYm9tYXhARnJl
 ZUJTRC5vcmc+iGUEExECAB0FAjw3HwsFCQHhM4AFCwcKAwQDFQMCAxYCAQIXgAAS
 CRCg27m3iIIFrwdlR1BHAAEBbJQAn1tcab5GD07XKi33AdcyP521kGhHAJ9eo7wb
 PMLk4e7y6ZiQEeMd4DF1/5kBogQ+e3iWEQQAsxiirVfUk5G6X5YyhHT3pX2Tt6n0
 F5hj36BLxU/Cbn7viUMP2x6qafIolWC5wW3JEklsql3wXovUl6Uuaah6S57XD+45
 YNAztjJ2rOp4wW9KD6i7IWkbtgz0eRLQBNzEvcvdMfGqH/1XujGn033Q3tpgT8sH
 WfbT68DXuaUTJCMAoJhav+twkmoLhT0o5KSjSgcmtjOvA/4oJZ9D5H4rSRKWhQNG
 5A5FZlNX1q7K9/WYcSKWsE6R+jnOFigZOt/wEXA4tUiI1b7SaVnSPNgQ26iMPDIZ
 uauEmvjQmVDSdO0ZsS545VQ9xJtksJdHZXnTVKWyTNiRWGHWT3ucR2XFJ40U+so/
 AxKch0N5CqtYy9A27aO6KLqBOwP9GJUvIE1zB5plWP70d9Kii6Gf9c84VwK8sYcd
 w45M4DozPUJqMUcfP4ycvK5AY80MRvNr+UP0VgfpuKElh2JCUpgj9XTE48vuAdyd
 3q6lVEC4SpjZu29oFNyzcX0dILPHy49pTaNOUK7EQgdS1S7OWksP6XCWQ+Fmd8E7
 vtcT+BO0JE1heGltIFNvYm9sZXYgPHNvYm9tYXhAcG9ydGFvbmUuY29tPohiBBMR
 AgAiBQkB4TOABAsHAwIDFQIDAxYCAQIeAQIXgAIZAQUCPnt4lwAKCRBtQCVYRo7m
 2FP7AJ9QC+MpLfOgfrBZ62ylXJbgV9rSfQCbB+djelAeWNwsPCSI1ztdLW71gIW0
 I01heGltIFNvYm9sZXYgPHNvYm9tYXhARnJlZUJTRC5vcmc+iGIEExECACIFAj57
 eW8CGwMFCQHhM4AECwcDAgMVAgMDFgIBAh4BAheAAAoJEG1AJVhGjubYpG8An1bD
 +5ViByos/wyRoQ3fL5eRnPbYAJ9orRZWWPheXO7sO4kRB4p0tUGZQ7QfTWF4aW0g
 U29ib2xldiA8c29ib21heEBtYWlsLnJ1PohiBBMRAgAiBQI+e3mWAhsDBQkB4TOA
 BAsHAwIDFQIDAxYCAQIeAQIXgAAKCRBtQCVYRo7m2EMFAJ0SKWhO8mbbRHNjJZhr
 Z6gRvtM7RACfXwBb7dbxG1ZEcJHfvaJxo/VxF2G0IE1heGltIFNvYm9sZXYgPHZl
 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
 =Z1Sd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.301. Brian Somers <brian@FreeBSD.org>

 pub  1024R/666A7421 1997-04-30 Brian Somers <brian@freebsd-services.com>
      Key fingerprint = 2D 91 BD C2 94 2C 46 8F  8F 09 C4 FC AD 12 3B 21
 uid                            Brian Somers <brian@awfulhak.org>
 uid                            Brian Somers <brian@FreeBSD.org>
 uid                            Brian Somers <brian@OpenBSD.org>
 uid                            Brian Somers <brian@uk.FreeBSD.org>
 uid                            Brian Somers <brian@uk.OpenBSD.org>

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 3mPjEgv3yQyXxmScDQ==
 =g4uu
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.302. Stacey Son <sson@FreeBSD.org>

 pub   1024D/CE8319F3 2008-07-08
       Key fingerprint = 64C7 8D92 C1DF B940 1171  5ED3 186A 758A CE83 19F3
 uid                  Stacey Son <sson@FreeBSD.org>
 uid                  Stacey Son <stacey@son.org>
 uid                  Stacey Son <sson@byu.net>
 uid                  Stacey Son <sson@secure.net>
 uid                  Stacey Son <sson@dev-random.com>
 sub   2048g/0F724E52 2008-07-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =uagC
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.303. Nicolas Souchu <nsouch@FreeBSD.org>

 pub  1024D/C744F18B 2002-02-13 Nicholas Souchu <nsouch@freebsd.org>
      Key fingerprint = 992A 144F AC0F 40BA 55AE  DE6D 752D 0A6C C744 F18B
 sub  1024g/90BD3231 2002-02-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: Pour information voir http://www.gnupg.org

 mQGiBDxq4ZARBACJSN3t0e7d8A7LNfvsKsNNfMWbANu/f3vEhDEj4D4X2QLKyk8t
 Ti5/wO2Z7HJiT5QfI3zeRWetvHMWXhAYc24GrTUMdCt2zhUjufi5BdysmcbLiZFt
 9wjJpJITW4A6W7YP55ORkZs6ye/j4Luf7YN4xISWvM9/kzpUtU8R6txC3wCgq28H
 0tdFPUDvyAwr+97vHs97z/UEAIFPSIAsrH00DuudiLpqZB0LE+BcDsSKgxBQsZJT
 06EQQaE9XMN4f46nAtxzFhSbGZL4qIBUO3Ny1Pp0rqjCfumuwONLXZSK829LaaJn
 WfZ5ux9ZjvfYJ86NgUV2tFnwZm2UYQXc4234FfzfebeiSmYI27BMvLJ28xXU+pNw
 vUvhA/9uPu+i3Dk+ha+0UaBTp/HNTAveoTKH6lNOS12XhCNNPQUL0gonJTeWThRO
 z4YttxgLa5I/MoNsub0+GtNrlyhLyHKzjBBHEqJHJp7+zkyfCODnJaxUqoKskUSD
 QF5VX6v6vEQl5UBjGwonHmzsrnuqTb9pyYhfPTch9n22eS6ZqrQkTmljaG9sYXMg
 U291Y2h1IDxuc291Y2hAZnJlZWJzZC5vcmc+iFcEExECABcFAjxq4ZAFCwcKAwQD
 FQMCAxYCAQIXgAAKCRB1LQpsx0Txi0J7AJ9q3/ulyXnWjGWlR0L+3QtfPKI5EgCf
 WTLlr+SXYF+nrW4VvQcJvuyzZyG5AQ0EPGrhlBAEAKQjsjIRO+kHT+9qCYsw6HPi
 BYzH++xP0i5143trUJ66FoEfqOl4UqHwNJ7GEXq9MWgzBH9wDL69Bb4kSKQ9vKwD
 EgAnXObS3FOUPLK5AMXc5jy8rRaUru58+cGs1cNIg69zgQ3FQyWF0FHI7kGsAdz9
 8iUZhXL22I7+EVBgd9DLAAMGA/9oK+Xjo7xdLZvkW8b4nNIA7Xyml2uMLYjg/OVg
 qRkVU5f7KM2oHna7+VtvdJrIl9bTVc6mrTl6GY1/0GYb1edgSu2Axg+msj3fVkGd
 8hWuNQ/T5v45kgPcoJxWLzaWWkDeLQAf5tq/QVmN8hofl6UsrsNDvYTBbl7129uo
 3BJbG4hGBBgRAgAGBQI8auGUAAoJEHUtCmzHRPGLta8An39UVQwz3OgsZQ5e8upC
 VEBCvTUmAJ9/8mbmXF+Ii/JdY6STmU1MMfmQvQ==
 =A6my
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.304. Suleiman Souhlal <ssouhlal@FreeBSD.org>

 pub  1024D/2EA50469 2004-07-24 Suleiman Souhlal <ssouhlal@FreeBSD.org>
      Key fingerprint = DACF 89DB 54C7 DA1D 37AF  9A94 EB55 E272 2EA5 0469
 sub  2048g/0CDCC535 2004-07-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEECPOARBACeiKSpedo952tApwSI+rrDIrp5LOC5FG1crAiTpAqy6aP+n60z
 c2euoVDGjH/ncUZ+TxUK/MkzSOFXTjU0TETFgq2UMxSzZCLwPrmQibfHbmnF08+g
 0EjlslsszccPgTEZz6F85aZGYWjU4dhQ1VYP+y5Im88CgahggCB6J+8hHwCggMu3
 f51egcdCrodzFvL8poUYKi8D/i644gOjVN/YamHS5QUGNPJ9xkcq5G4OfK+Ubjq8
 6T1dd7UkJ22sePpKGtRhPNATeEar/HwzLB7r2h+UAD4Yrl6+//EwWB73BgxyCqcB
 X57s57K3+UMblbLR3NWJAD/HpxIBFxXfj55VPk6aH6GX5LzayMxfZVYccMyWOcsK
 UZaNA/0aJkearTpmitBL49fOhz8Je/QIF6riigkdOuyx62yAtYRNrVbDrQvvornR
 Z1CLUp+mixUc3bT+emLFpz2ZXmGqCr9BMAqENh0gayGeekyk8IYLQudFSidL3yHo
 WErc76neXoBE/5M/v7jZCrQS9loS0vITFsui0Rv95BcsNbV0iLQnU3VsZWltYW4g
 U291aGxhbCA8c3NvdWhsYWxARnJlZUJTRC5vcmc+iF4EExECAB4FAkECPOACGwMG
 CwkIBwMCAxUCAwMWAgECHgECF4AACgkQ61Xici6lBGkj0QCbBe+RP2fX0+t1fiU/
 oOcORVeRc3UAn3Y7M2TfTKmSh+5RXsaxcVKWDqZauQINBEECPPgQCACOxltxnJKq
 MHIW1P1u4pjby/v0ZsVWbhqmPzW1L/o0SHbBdPkLn+NZmOKG3sXFkitq1nnXQMq0
 pdWwEK55rN3+iYMpq2OJgubsEDJbo39Lom49w3xXs3ElHKWmgjNUMmiGi3yA3Q5P
 p9E13ze+ZBTTZrlj9xtTsXYPCkoihcjA8iD1G52CJYuVQOCxeKo3d8EZi4sFXhTs
 yGfK7ipLN2jO4H8LSrImMlT5z/ePmhTgo59A+vsIShklJpRlHqYB861sMobUlbCd
 0n7Fng8pD9jIG63usHJgU32AVEeZ9BMaZ5Gjsm7KvIwJH+w8DGnR7016hleSXSEk
 wVbS7zjXKfAPAAQNB/9GQcWpnuKYlVa7olq9XOVHe2pHrnK20wLy14ormB245Aip
 gTCN/SEIgwc09nF2QXXXhzZrxsFCPphgJh7CT8g25LCJ2rchOhCpShNS43I1ol3d
 II4nK0DtXUJc/3qG5PgPaNLHHyskwIIyfL2rKRlufTgByzF3AKXHweJQ9suxGkGS
 i2+l1NBwLwsjee59gEyKXT/cbfkV/IgA+NBpj7QaDs0yhsbPSDAJszbo53aBAB9U
 sZjWP9tkrzaP1eoSbl+LFttLtrivG/v8HZuPlI4lELeRboslI1aUUfZVt7xx4A6P
 u3L1DWOYm9rQ0q1KMlhGQKa/JBtaKy73wwzZujSWiEkEGBECAAkFAkECPPgCGwwA
 CgkQ61Xici6lBGnrNQCbBljRUNo/9EHyCk0D07YM27DYC+8Anj9wU0uuZE798XZ6
 n4y0m1iMcuSh
 =Fl75
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.305. Ulrich Spo:rlein <uqs@FreeBSD.org>

 pub   2048R/4AAF82CE 2010-01-27 [expires: 2015-01-26]
       Key fingerprint = 08DF A6A0 B1EB 98A5 EDDA  9005 A3A6 9864 4AAF 82CE
 uid                  Ulrich SpAP:rlein <uqs@spoerlein.net>
 uid                  Ulrich Spoerlein <uspoerlein@gmail.com>
 uid                  Ulrich SpAP:rlein (The FreeBSD Project) <uqs@FreeBSD.org>
 uid                  Ulrich SpAP:rlein <ulrich.spoerlein@web.de>
 sub   2048R/162E8BD2 2010-01-27 [expires: 2015-01-26]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEtgnPMBCAC3bCUDqq+6pLElEuqGoN33TBfDGjX3CPciCBGBY33u0ThbKFHO
 8VYStfwkwofutees9itDAjbQbJ7vIiQSe/1gt9WLfVUhgo6j57i5lbuVi/P3RMMA
 QjJBSZM/0r67XBqUXdye0xnPuJDKs5LmfY+23AWiWroRieeEBhbkJBQOyvY/fEdE
 dQ4A26/aLR+PDIxB8vrmsTRgwLYmxpnXqPkbmQ1tjS3MtsPgUMAaEQQOyoZJ7A9k
 loivX3S44GGTmehrKaCOivMtK21zR66Sslfr2zCCvzHXp8votrRorTBOGSTMC9ed
 Gp4ZlCAWa243NOVgCYWLsUAT7sutuI97VZunABEBAAG0J1VscmljaCBTcG9lcmxl
 aW4gPHVzcG9lcmxlaW5AZ21haWwuY29tPokBPwQTAQIAKQUCS2CfxQIbAwUJCWYB
 gAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEKOmmGRKr4LOtLIH/0G99k70
 FWtU8wLnHAw4d5dkV+MpSJOiNK3xfqoEgzcBSnK8h4kkEibwzsUggtIvIQ/xkLzF
 oihFGhL/14+yM9aiyp3cVjPT7TqCN7j0kfKxwDOf7otAAwI+hYUrVG1XVM7qe7Gq
 sIS6ucEAnhjK5s/vxI2wJM8xcEQvx2ubPPtuSYAn3k/+JryIfSJaAiSmxuAfYEsf
 TBKmACwQ0CfthLkOSnBp3xNbmXnOJ7mVA/wZwTZjD2Vm4Iu9SGBNF+gsx7Jhs0/X
 ow6JpY4YsoZehFHzeLg3RINUdq5qmB0eqg0VbYV3YcH0a31nOUTGqrztfJs/V4Ap
 M8pJ3WbDrPugqDaISgQQEQIACgUCS2CgGwMFAngACgkQ524iJyD+6d3PZgCfZ+Ow
 SV3Z2p3IE3rQgIf+f67SZxEAn08H7gIDjHWv6P9Mt0JveEgBqqaftCRVbHJpY2gg
 U3DDtnJsZWluIDx1cXNAc3BvZXJsZWluLm5ldD6JAUEEEwECACsCGwMFCQlmAYAG
 CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJLYKDuAhkBAAoJEKOmmGRKr4LODJYH
 /j7RKNrmeszuP7hQ0sQpnn+8xmbp6bmNyXK+h3L78y1mVagMWlrJRbPe8QVLR9xq
 AmI7jIR4oVkcLhm/jnYnlqIAIyNLgrOQ6dIFMbwzd26AYS/Ozy7Grl+THXZJMcZ1
 YTNNcPpmUsC7U76viLLw2CKTMzP3LHribNCoNmfhvplGdZibwW3so+ZjEzrhmjtP
 efLnYmD2AlsJADMhmOy7vgEUSdz7UnIiVgInpf11yQQWarAwAoiKxDSR1D3MaQcW
 JmyG8mhRqyJmFtbmARZaH/eGm+QyZKYuFY//NY9/ugt8xBhhUTeWN80dwZnx2rw2
 6kLsWh3iy36yWNRF1sY7x4WISgQQEQIACgUCS2Ce8wMFAngACgkQ524iJyD+6d35
 ogCghywJlVYXlcjHCqUJkZ4mc8/sW9cAnjUU3AThywjlZFNaB4ngPYGIXHZxtDhV
 bHJpY2ggU3DDtnJsZWluIChUaGUgRnJlZUJTRCBQcm9qZWN0KSA8dXFzQEZyZWVC
 U0Qub3JnPokBPwQTAQIAKQUCS2CfRwIbAwUJCWYBgAcLCQgHAwIBBhUIAgkKCwQW
 AgMBAh4BAheAAAoJEKOmmGRKr4LOELkH+gOD9ML6IDd4Hdu5I7JcmquHejOJoEQ9
 rJRmbExegiCLtTtxI98f2GF9fMgYbKEZ2DRv9dT4tRYhJgm2ko6kf+BsLv1ilP9j
 MRJmzFe5RtVt+ot03+8bgN2TAQ6J0DknMT4sbpKWfMKgw8DQCDgK6aUxAHE/PO2f
 49Wdb6ZxXIwYQKBUsPhAB/a4Jn7C3cjG/CqtkcsWm/INNdrr8wmqFQlQByYkE8bN
 U/LS8UEIf64o59sQW8qmZfMwy7MWsL5VDvJwG/llAAYK5V+Uu+kLDwn3Vuxp5144
 rR7HgAgt+lX3IuMjvM72bc0ooljxqfGRwyfXkVqS0u7YKMIylibWlwmISgQQEQIA
 CgUCS2CfegMFAngACgkQ524iJyD+6d2hcQCfXmKCFRSNF7KxaIqfFbAZUFhHR6MA
 n0G6al32pXWhiV2i3sHyjDq3YCrCtCpVbHJpY2ggU3DDtnJsZWluIDx1bHJpY2gu
 c3BvZXJsZWluQHdlYi5kZT6JAT8EEwECACkFAktgn6MCGwMFCQlmAYAHCwkIBwMC
 AQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCjpphkSq+CzppbB/9X2o72Knam5vdu9nAK
 vmkXmOmKMtp9gJ6MDXLCG/a8DME5weE37i3lmHkm/lKThNRteLajeWz1OWTEODSD
 4lq9BOpr0fDVtSEGsrgQOIj6m/RGpKhmKmyZcsGhTC9OXpcrUk5QnFFb47+25PhC
 I6cfzADL06WGPDkTEFsB2f7ugJw00iC2Kcr35YG5TvvSR/tGRCo6HZ7ooTbLAVmu
 wMrAxwIsPv/ycFBZ5e4DQiIaxsVDPS5sQDHmoIhhRgOovoIinXXCpEl0JvnkegLG
 P9ZWHsmUEIlzU20iMBDmwDmxbsMhtiIFpSNNwA1c3wE786mTQ31vcvscR5p6JJCe
 v9yHiEoEEBECAAoFAktgn/4DBQJ4AAoJEOduIicg/undB58AniViZmymFbmu6LcB
 IQdX7tOfkKQKAKC1L+dB4cKQwTLHMv+PTm3ZZQUCiLkBDQRLYJzzAQgAs/C4imB/
 b+pPBbSm85RC5tgzng8RgF9S1WXVUJupa7QEetNn58yodQr+j+ACoNeX3EKHd58m
 Ja2HyU/cKo0UwNOJA6iKwfrWXOGj7DigxdZdZ9QE/IyzsyrQPIbAVxZn1v3zmpTn
 ngueh9dUda0KKzeq8n5J6OjpS+G6wrMe1tnicM1vh18wIS1JNU/EgQ3hQ5y6Docs
 4xjiYmmO+UlmW/SiiFhwR0b5pwEaQwSLLX4OjEdpxb4E2gxh4+V0Bk1BzpS6GygU
 Qvk1Ct/elQZX3Cyo88OlLSG/UiYGI04JDuyA8wwbriQezVMn0PbVXdo6tR7pqpCD
 QAtI+LFEM9VjbwARAQABiQElBBgBAgAPBQJLYJzzAhsMBQkJZgGAAAoJEKOmmGRK
 r4LOtMEIAIrN0mDZgdvcsV6RmSfoWWawDOklTOh96B20iKYKWxBSOrGNwAAkJRfL
 4E+y/fu3DMoNUKJAAUZvjTOAl2YXv6U5LNK6IDQ5vGtERKS4VukBeDdgK9bLj95P
 cOQ2khuq4RVRL+4H4sdZyxLDD7Dad77rsuavECIK72Dlb9KX+/HJuHERxpqPNAjs
 FlQv2pfbfbr+SoOTjknLCIjct+lDV//y72WwlJeEYWQhKjVJupxPBGOyQEDCofML
 FvzDnuVl4Ft3qP/dLNwObtfghIz604M0aCpYwtItHA35zHRI/R7u24VtluA4D+Bc
 vKKK08LFvCJ5WIK8LKm1Ad/oQh3yuwI=
 =h+sB
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.306. Rink Springer <rink@FreeBSD.org>

 pub   1024D/ECEDBFFF 2003-09-19
       Key fingerprint = A8BE 9C82 9B81 4289 A905  418D 6F73 BAD2 ECED BFFF
 uid                  Rink Springer <rink@il.fontys.nl>
 uid                  Rink Springer (FreeBSD Project) <rink@FreeBSD.org>
 uid                  Rink Springer <rink@stack.nl>
 sub   2048g/3BC3E67E 2003-09-19

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD9quKgRBADeV4lxkbaQyNZMKsSxS5DJHYKbIy150H97+m+J3vYI9IPhBtlc
 oqnlQTaIpoSn3N8ExxwMADRmevRhTHLhXxgfym5iDEAlIAr5uDMKPfwc3yUPPjkG
 CKKUQhEZeRvrPZyE8D/CicuSDtunnsXttK+7xLsWAS00gCr+cHsMPebivwCgyMiT
 z4YpZ8AlVx1ZDxHIR1CgZMEEAIIcBI4MB9cfOhu9Mje++qIHyAz2jsK6d7/Xu4ua
 r2eyDKb5zsbQCwALBRi/vXdR8lt4XvDjvmHQ36J5vGDnfA5t+KtgmQ3EXInggk0M
 ZTEvnFL1q3H+bHCKsf436Cb4Nq/bPQMCznPQ7IQjiMBWJPRd6Fv93kowNKdtEAlG
 cOn3BADGc8z7dEq+xwNmeXvc0jWJpZXTzT+9eRSQK61wqyJH2gWu8wd1T37pa32H
 Efp3Wod5IUFaS7E5P7kthuoMwhKYu5YJJBOA/iV4a1BAKjTJO7sGPwXXIvKMpoYS
 wcnicf1rhZ1kSLmX06PA8x+2GFPK9ZSBU0XXhbV09JcpTSbScLQyUmluayBTcHJp
 bmdlciAoRnJlZUJTRCBQcm9qZWN0KSA8cmlua0BGcmVlQlNELm9yZz6IYAQTEQIA
 IAUCQ8tX5wIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEG9zutLs7b//Bm8A
 oKysvuif0y9iIRSvLA0KBBDYBA1MAKCWEpH45Gv3c5lR4keGHo6O1EuFv7QdUmlu
 ayBTcHJpbmdlciA8cmlua0BzdGFjay5ubD6IXgQTEQIAHgUCQb6gRgIbAwYLCQgH
 AwIDFQIDAxYCAQIeAQIXgAAKCRBvc7rS7O2//ygBAJ9uO+LYKzNfgcKAv8EwEmKg
 UWvd+ACgstc4SYQz7IDk2V9ELXsLZNJHu+G0IVJpbmsgU3ByaW5nZXIgPHJpbmtA
 aWwuZm9udHlzLm5sPohhBBMRAgAhAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheABQJD
 y1ntAhkBAAoJEG9zutLs7b//5pEAniSKnGBZhNgxgPI4xFrBefn1FX1nAKCJ7l21
 9H5w2fIng8oy+Mc/lipRE4hGBBIRAgAGBQI/un1kAAoJEAahzEOamxxah3cAoK6L
 o2tmYvVDKzXSuyODzWGMIPO3AKCoqHpnLbHUVCK6uNCtUMsP10k4EYhGBBMRAgAG
 BQI/unuMAAoJEAdJki0OPZOdHooAoIY0GBH5xaMQHLT7U/H4kEJoy8gqAKCEFO00
 fn3ipm+gEe1xpp+B4ghWOIhGBBMRAgAGBQJBdq2kAAoJEOU3f22J7zgDoi0AnRHx
 J54/6qgkzk3XYWytM8kORJ8LAJ4kbjFKaxN4FMrfmCXyiobPAdFX4ohGBBARAgAG
 BQJA30+nAAoJEMsdesnWoa8+Ql8AnA7jacrDH6VeCyCVPG3bCehRJGFlAJ9cy75M
 r+7vyd7HiIDkumKda0v1yYhGBBARAgAGBQJCLf29AAoJEHs456GxToKx7HoAoKDH
 l2h5HvFTNZR2yeHfjMr4XKqqAJwPng1h5Oq444Na6toMTxeYmfiQCIhGBBMRAgAG
 BQJCLf3cAAoJEGjhJSt9pcU7QtsAoJFIRKi0yuJBTyaZHUYc9/CspFwOAKCv2fGI
 ZYVRDvIILnXZayCVPJbtsIhGBBIRAgAGBQJBp3poAAoJEFECJ1+oE9XuIDMAoN+y
 gQsgchoxgjgj7xvc+phiXrx0AJ0Wrk5qkVMxH4SThHTmUcWtgUy08ohGBBARAgAG
 BQJCoEL0AAoJEJlSOEh18JoRhu0AoJM7SvWSprG7QDHKOnEXf6naqFjoAJ9r0RXn
 b38Vh6C/S1mkkvlLMhrObYhGBBARAgAGBQJCwePKAAoJEDYDstQq8oA+VQMAniJr
 UHQpCWO9Gl7P2U9mSUM9bmXGAJ44+xRxWgmcbaB5MfNxc/+EhttYoIhGBBARAgAG
 BQJCwln/AAoJECtXItZQPuZ/ie4An23xXBcj8uubd0RH4T4eytcsT/APAJ9UVS4C
 +A6oZ2syWMhLwhM8De7aaYhGBBARAgAGBQJCwl/cAAoJELm9u3R/Ejcr/sEAnAmt
 TRDaCx52VtTFUCZ3gqdJJ2nNAJ9LiD6qEUEsR78lj8KtHIFd3gJyXYhGBBARAgAG
 BQJCwl/jAAoJEO0ktfyslxhcw1kAoIeAi1yRgvSjscfriPPLJsfItirAAJ4svEJC
 OZRTtcLaPTCGljgzNHe1mYhGBBARAgAGBQJCwnenAAoJELa66j1B5mvZtVwAnibO
 IGxb784vCzraDVqA/eewItNfAJ9FqdOZYw/CovHLAj3w2nXFTsGvx4hGBBARAgAG
 BQJCwr9aAAoJELOADYxWullRPjYAoIJm0zbOeXuCRFTtpHMyjVb1VLPQAJ0RAtgr
 Ms9M9CZrOhojTARULOlEYIhGBBMRAgAGBQJCwZauAAoJEEJrd6pui7AhX0gAoMAp
 9Xqrbmk/RMZrNc0l1qo7Z81TAKCfroUBS3Ecih8v1jGmTgPUSkTV8ohGBBARAgAG
 BQJDHqqEAAoJEAYGnPKWlFfwIZ8An3dUfKJR8MQkDF46pY7ehQzyjoyhAJ9I4yiG
 pkBKVRlQnl83NxXeL9jGuYhGBBARAgAGBQJDIKKmAAoJEF924XqIxu326E8AnRSy
 bi01ic4Un4XXDT7zs9BX0GtCAJsEgPknCSS/yYPgK+Duk45J3jdf2IhGBBIRAgAG
 BQJCywt8AAoJECdq1e/TZ18Ig28AoJbmYoCkCeUozLToGrESAo5OuhWGAKCYdOzJ
 9sPgsvr8x/xa8whXrdIB8YhGBBMRAgAGBQJC0F7lAAoJEBLMC0rbivl4Qu4An21t
 BQWlJyrHZ8ZxLeWb3bLC5RjtAJ9zdPh+fDYt4/Z4h9twvCe3nKfAeLkCDQQ/ari1
 EAgA8g7iohL/Ws7gm0fHBa1iStYxJxK6p9oy5zvuN8vfgVsj4Efjm/eS2l1RH6lP
 jw27XdtAMBuEctGFAhtBajgdYhryBhOKeUIOZo94QkRLMRf2mw1gAM/yaTVlixTt
 imq2S8KfLYLTKb8T/ysQQLhaGHuI37pN4BIdISskMiFpDS3vuquN1Q7y6i3cmUUa
 8z7km9Gx98uQfPesUPn+pcAgkL0f5LBH5smNeobJ2TbVTfqKm8070NZ4md8kYtZX
 9YvF7W+6CT/gK0mYwbMkoJdyiGHXLmzbWwnhf8LrOH4cB+2SaGowaNwNon93KHX5
 gyTo5Ok/VSWqtacxKg0i7JBT2wADBQf9EDMyjJ8AoCH2/fGePWfpTb6y+z465AO6
 UA0LUNcMjVO3Fm8KrgvIf/k0SFuEkXfchVPmeBdR8uGR47+A3U/49wJObRrnKjNJ
 BtNZBxqW5rtWHAO470MQ1B89c7Wu2f5SJfqu4HJjy7LAWNCJ//KQ+tsLYrhVawbZ
 /fmmt1cur1qJA/C0OqNhay3CBw00dr4IE5nzUw1qjXQ1Oc1h82JMV3IimPG/Mqkr
 cmwbg++OY0U21uEcya002rhfWSNiNLxlAthFHqK1LNDd5EsePRHkUbRXKM0TWvV1
 8fSN39nNtd3O8nMZn9KvmFyKY6uDAYegHv+Qg3L47VJu2UKVrVVhYIhJBBgRAgAJ
 BQI/ari1AhsMAAoJEG9zutLs7b//78UAoLxcADrltOZuLTJMieSR9zw7nruqAJ98
 hpneRV17ciF5APqU2SSiDrugQg==
 =Gfya
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.307. Vsevolod Stakhov <vsevolod@FreeBSD.org>

 pub   1024D/213D0033 2005-03-14 [expires: 2008-03-13]
       Key fingerprint = B852 0010 761E 944A C76D  D447 A25D C12C 213D 0033
 uid                  Vsevolod Stakhov <vsevolod@FreeBSD.org>
 uid                  Vsevolod Stakhov <cebka@jet.msk.su>
 uid                  Vsevolod Stakhov <vsevolod@highsecure.ru>
 sub   2048g/786F2187 2005-03-14 [expires: 2008-03-13]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEI1ezcRBADE9OSKYo4FwkV9/HZCsEuq3afu/4cEiRlaS/pod5b5/tv1DGAl
 QQdQeNxW8nzDLrODbyCtmJDxvOib4Z2qz2NZOgjTujnlHeKecJJKkXg7bYIgMWy+
 JQNX613fcsgQicUQDyi0nMKcvd8BcKuzDUCGEuyMxEE5UyBPXOKDuPLZNwCgznDP
 rjh6cffp737SBR1ViasIresD/RYo8N+aMdwIQwqWXYXuSj6sCDutU2MUsRe9RxaP
 iDE+XvLuxRa5BTAitMWrDJqKdCjysADTXl6Owic6+Y9ppk35+VHDq7vsow3v4HrI
 znJVb5ZOl7nyaBtsd7v/nRFjQEcko11PxbmAAY8UevbGSmUsOmyT2ZMgYkNgGrvl
 jsGZA/9UtsG0IaR9+EGAuvOGey3Rh5AfNVontxJ+FXpCyHgKXWFrJIzbFPJ+iaYN
 xd2uUnEcAeGkY6UsK3z6MAvAorJC383tcRyfZQ7nAYhR2tmPVjFCNU/wPLT6MiZQ
 LgPbYh+SBWTpofpnAcVmVRk18tqtAXuH3kb+m+JG1EppxT4WMrQjVnNldm9sb2Qg
 U3Rha2hvdiA8Y2Via2FAamV0Lm1zay5zdT6IZAQTEQIAJAUCQjV7lAIbAwUJBaOa
 gAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCiXcEsIT0AMwPVAJ4z7YKxK+3XB8ic
 Ml40/9QdnfzA8QCcDbtrLjTHVfMsLZls+CpS7SVOZLK0KVZzZXZvbG9kIFN0YWto
 b3YgPHZzZXZvbG9kQGhpZ2hzZWN1cmUucnU+iGQEExECACQFAkI1ezcCGwMFCQWj
 moAGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQol3BLCE9ADOu+wCgvhaDI/qqW88t
 h1qkpZiSoj1QGhAAn0aH/9Ln20qZlzOzflE+RMNroro2tCdWc2V2b2xvZCBTdGFr
 aG92IDx2c2V2b2xvZEBGcmVlQlNELm9yZz6IZAQTEQIAJAUCQt/YkgIbAwUJBaOa
 gAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRCiXcEsIT0AM18MAKCYLPaRezw9CggX
 0WGxZ4V2AO/H4QCfe9H8leQkgkf81O3xijejFh4yo225Ag0EQjV7RBAIAPegYMuM
 CjkzEiNYAWZNa+IgCrfWTZWuiCkvfvbYlnx2CLCMhtCi6kDIGm8k8ub0MrgI7JnR
 z3dVaKUi/ky7lbTCkl5lqLdJCX7lAOmbXrtV8Z/w4ke/9aoA5mRcA5U6IDKemkr3
 2mfEEDY6ZOYltLaOh0oPcX1M3v2NIeJhITi6QeDLOpprcCB2fBaZLNC7elgExxaf
 4Ij/Y+QYvZ8ejdOG+AOYHm4DOhWXPyfhhHLRG/U8QY40mYY1BhXZnm8ki/n6ATNn
 5/iUzVZVYYOFuuOhl0B4TG01TlDuhvzm3nBblXx4TkXmlJGY+jy9pzyqyI8OpwpF
 b5/+Q68f2OBltX8AAwUH/iaq0BjgK3Rk6Z/0Efw0ZVk4oO/RhQWcY0f5QDzPnoBk
 DgQcsraDpK+fMRAbNXNjRA7qnTDzyVSjURHEJluNGpXQVXkrO1j5+N5yJXZy7Y+8
 nlUm31UKp8bgzCSck5LcluV9dOQKSD4FvgRmyrt7Zf1Ge824/KkoQaw8MqXGd3hL
 vWta5S3YRJZ1xKKYdld9P7GI9PkOSsD1f4fYQpaHiHTQB+/LIsLiiEWzEnVvWnqN
 CJoatLuznMB4uTjAmKMrOAjVw85+x98Iz/tgIjA/eFO1OlOx1+3UpwdpAibKXDf3
 dIxbuhsp6xy2G7xbYr+ErgZcpOePy+vvnOxc1gwS4q+ITwQYEQIADwUCQjV7RAIb
 DAUJBaOagAAKCRCiXcEsIT0AM/LDAJ900L1+vJyKrr3hP0al12mE3cy+9wCcDeQp
 6wzJCGiOCfCGViOv+39ADh4=
 =gaWL
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.308. Ryan Steinmetz <zi@FreeBSD.org>

 pub   1024D/7AD7FAF2 2004-01-21
       Key fingerprint = EF36 D45A 5CA9 28B1 A550  18CD A43C D111 7AD7 FAF2
 uid                  Ryan Steinmetz <zi@FreeBSD.org>
 uid                  Ryan Steinmetz <rpsfa@rit.edu>
 uid                  Ryan Steinmetz <zi@zi0r.com>
 sub   1024g/058BC057 2004-01-21
 sub   4096g/0EB108D2 2006-02-27
 sub   1024D/FEF36DD7 2006-02-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 ZTV4zXhavRs=
 =wi3x
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.309. Randall R. Stewart <rrs@FreeBSD.org>

 pub   1024D/0373B8B2 2006-09-01
       Key fingerprint = 74A6 810E 6DEA D69B 6496  5FA9 8AEF 4166 0373 B8B2
 uid                  Randall R Stewart <randall@lakerest.net>
 uid                  Randall R Stewart <rrs@cisco.com>
 uid                  Randall R Stewart <rrs@FreeBSD.org>
 sub   2048g/88027C0B 2006-09-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBET3848RBADitK8bahB8Ftqi9wtYsFRGfdm645cTF5fAnxFjC+ouPfLk+cfD
 I6VG1Vib3T+SYTTJ3xPm7tV6RLLlRsdAfSE4P73o5qVe85Dq4JBKYgdCms+0Z7B+
 O0yB7B0KClaXhZpsQtK8yLtROjiJxw1WQ9uOS/me5AHi2cZruoOcYxkzbwCguMmd
 tOy1SL5V2RLfJiQKAFQ23M8D/3m42RjkoMB791fuJ/pH3i98EuXhCwrSv7eZ3xYU
 TY93OwMEwPYaABK3jSygMETj9hu2pYFbrAFKSHQVPLcUBrKYw9+Fjd4XTOOxYZeI
 /+n0xSRk4W+sIQX97jCbvCrtk9jqIz2NQt9IlKxG0Xniio/Q8PsNNbO+jd5HSXqE
 ja2oA/9+r3LUi3jKH9rpY6x4Qz/DBpcNK4v5Fz24mtkwTfjyfC2nTlG58bSbmulE
 1tfOLDL5BHmGoyWIqaFzIVIA5oGo9EYG2RCx7Vr+WgsY6jr5tX7HlhByoE5Wemoz
 YN5CDC9KCKe7TCpVJtlq57c02kE0OT3gqYsflidfV50Qzt9jI7QhUmFuZGFsbCBS
 IFN0ZXdhcnQgPHJyc0BjaXNjby5jb20+iGAEExECACAFAkT3848CGwMGCwkIBwMC
 BBUCCAMEFgIDAQIeAQIXgAAKCRCK70FmA3O4suHBAJ9kvtlm5qy8c6qSizjcvuzj
 q4gFJQCgqthVasQ5jNFZf1p4vM+gD1T84M+0I1JhbmRhbGwgUiBTdGV3YXJ0IDxy
 cnNARnJlZUJTRC5vcmc+iGAEExECACAFAkT39KoCGwMGCwkIBwMCBBUCCAMEFgID
 AQIeAQIXgAAKCRCK70FmA3O4slQYAKCNWFpgxPkfqz7PoTUcobiXbu7EAQCcCj0F
 mj5AKPyuPbwP3JT7Cyf4Fs60KFJhbmRhbGwgUiBTdGV3YXJ0IDxyYW5kYWxsQGxh
 a2VyZXN0Lm5ldD6IYAQTEQIAIAUCRPf07QIbAwYLCQgHAwIEFQIIAwQWAgMBAh4B
 AheAAAoJEIrvQWYDc7iyy60AmgLBwWw0LjdY6+zyUyUhRm9s4vZEAJ9F6dw61khm
 NQlfhpvoBh24pl6GTrkCDQRE9/OUEAgA7GAeZ2BgjNDYa42+GV6uo1FxadTNppdN
 gG22xgg+4SXnWZ25O8dofrHIwP9rk/qomw452MoAlVevV20uYthVqAXBWRGEhO/q
 zKfyZxTe8aCOs1mjCKu9fPkSgNUDoCl6jCac/5mDdcLdVT3domBJvGiqqSQ/B1JA
 3YWrYCnnLTUN2a2aPW0ZK14zCSjaWQFDcm8kPi1WwKu9yldGnAPoT03+JF4KN0kB
 YkdmfEAFOJ4kjm2UROJc2aVUtjeMH3nqvdlTmuw6c6cmMMSIlXkcrTO7gRLmnx2J
 HgSdukq0vEtgND6O/o0n9Rnr+UccOCCz6EJkltL9knjKwutdQz9x8wADBQgAkEfc
 D/VQ1sUCgS5xyrer45zxW5NdeuFI+h12D94MKopczr73p+7Tc1bSDZK1M4e432qV
 8hNy8Q6gYowhuuBqxI0LYcEtrJld0ma4cnMraRjkId2jmyK82c+O/K1w+vcGUsYu
 nxYBiGwtTTo/R+202kp6VGD7jnIxGQs5WsMmnh8EL1m4BXeFm6BzfT29SuV4bdoZ
 6/YHyPLGVgtnPBCNQUjLvXqdaOlk3E1wCBd4A90pC1dDiN1rsAxOTcxwgyKfasXx
 CZsdBaXEYYUIfm9WrAFc1S/baV613184I1duBfCJWMKxGXMSr68CeFQ+I1036lsZ
 IdHoq+Y3nZ5jPRUIYohJBBgRAgAJBQJE9/OUAhsMAAoJEIrvQWYDc7iyXiAAn3XC
 FR1XLpBIlAr5dn8ozSpbwfoHAJ9ZDFSqbQt/EDawxqaoYP+4p4Q85w==
 =jM4N
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.310. Murray Stokely <murray@FreeBSD.org>

 pub  1024D/0E451F7D 2001-02-12 Murray Stokely <murray@freebsd.org>
      Key fingerprint = E2CA 411D DD44 53FD BB4B  3CB5 B4D7 10A2 0E45 1F7D
 sub  1024g/965A770C 2001-02-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Comment: For info see http://www.gnupg.org

 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
 qN+IdvKuAKC6p9c3lJBbYHFlhxPDhBvgBaSOKw==
 =WyeV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.311. Volker Stolz <vs@FreeBSD.org>

 pub  1024R/3FD1B6B5 1998-06-16 Volker Stolz <vs@freebsd.org>
      Key fingerprint = 69 6F BD A0 2E FE 19 66  CF B9 68 6E 41 7D F9 B9
 uid                            Volker Stolz <stolz@i2.informatik.rwth-aachen.de> (LSK)
 uid                            Volker Stolz <vs@foldr.org>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 G7oQ/NdFiVk5IOo=
 =r3Jh
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.312. Ryan Stone <rstone@FreeBSD.org>

 pub   1024D/3141B73A 2010-04-13
       Key fingerprint = 4A6D DC04 DDC5 0822 2687  A086 FD3F 16CB 3141 B73A
 uid                  Ryan Stone (FreeBSD) <rstone@freebsd.org>
 sub   2048g/A8500B5F 2010-04-13

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEvD5ncRBADjSSeOophd6EZMLRUyyqvBTYhHJiCmYqDfog+PG84/Fsb7sXXe
 3W8uZ/Wob/wF8vZey+7V9aK8eoJP9aK52SIMFUR8hdbXTrwhHlTc1QrFWLXjVqJ7
 Ct+ORGcqsUO9P/KwG6Waf8UG1Dnb4IZ2bQCoy+hEXpwiE8KLhR5X3vdq3wCgjARv
 ef8JXQvjUiiGUmPTtwumbmMD/0QmTbZOhdjC1TbIEOoj5BRZKWUv6rj2bXJL+miw
 DCTdpwwn5VfmZiYHeTcCclyPH+GfkNAhrYf4XQ0qUBtB054A+0ZuK/oEbHpqw8ky
 0qj2GGCt0m1LybiX0g9MhEZU9/Coq69TGoAFcysGisrEq4gJm29oc1gcXKXdXAem
 pP9NA/wLMp4p5BTd7Q+9fVJo2X7JTAtCL3djhvFpgbSeExhKCHflH+g0gw7qiMKv
 po1ozRY0r0fwr/gv/LcIh/XBImeyodj9Hnx3xd1jhToGoVP4Olm54PxNKLtcRize
 7CfrQr8TPG6MCY10EGVczIz6Qel7izPdqacXeeB8u8RYnoh4d7QpUnlhbiBTdG9u
 ZSAoRnJlZUJTRCkgPHJzdG9uZUBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCS8PmdwIb
 AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEP0/FssxQbc6NYEAn3Mm+6fmwl8H
 JuLh1vhMkmO+liK4AJ9m5Btl2vy1eKMfijZ2a/zIbGcydrkCDQRLw+Z3EAgA9LNT
 KPMCyYCuRn0OjAMiCcHiaj20sbY5kO8o6GSOT3Gk8cXxNQgglcvfYxuGxKjG3uIs
 9+1Sa1uGkyVwTCt9DUo9EGvtLxZx/AUU88M3aVF8kt3WiIjTEow2EiS1D7gmancP
 PI2snFh3qqbkN3oWcD3rg9uEwxa9i7ptb/45KnCFJ1bB4jDkuNRqeEOGg7uPV8sZ
 /s8EYFqTl5mW8hTvUY/XgKZl8TvFHxDDXQlA83OWa7RW1JI6G6zuJPHA7q1zwKFF
 DZTabKaXB/gQHYj+j5fx8FgzIa3J7s6MUnZLq4e3xf/3yWOgfsRAxgMjL4WUe/GF
 6vOvE3oxTbUMrQ8FQwADBQf/awmIQZWNMi1aVo2Jls5GpvcV0QZTo5HCcItzoEax
 rY8HMaaApvbiGFckN75O08GuKPEtoet232CEBet2D0NS+VKqp3yBcRwKELTttOFl
 fi0ZUWH/Mk5NEJUSR+lUzptNGRmtu4ftPW/apjrtzRTR6k7KxVPZ0q171qQfF90n
 zFeWklDK1lw1PGWk5X0p4qHCCMs+6l+TEgYjCXZdaDJ/e29bNmXdz3ZBiWbu/Kjw
 jk4s6/17TVXl/KhDAyvfZ3IN3d9BN6h+R1gqE/cp7tGvgDTVZ4+nPm8NVaOr5sOl
 4L9EagqjMAqQzcbhtWHG8PE76P7wnbU2I5pHbexqLlTpGIhJBBgRAgAJBQJLw+Z3
 AhsMAAoJEP0/FssxQbc6JK4AnjiZo91wrPy2ZqMytQaPL3SJcmv8AJ9Q9jvmFruu
 qi/JXA9b5UcmNn7xoA==
 =J2di
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.313. So/ren Straarup <xride@FreeBSD.org>

 pub   1024D/E683AD40 2006-09-28
       Key fingerprint = 8A0E 7E57 144B BC25 24A9  EC1A 0DBC 3408 E683 AD40
 uid                  Soeren Straarup <xride@xride.dk>
 uid                  Soeren Straarup <xride@FreeBSD.org>
 uid                  Soeren Straarup <xride@x12.dk>
 sub   2048g/2B18B3B8 2006-09-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEUcBVMRBACN3a/+siykVNlKvwCmd4HVMogG+Oljeu9wyLsI8dJ9Y81bkY0h
 fi7ve3Tfu4GeRcirnrc2FV9Fcsv4dt9DtYQ7PQTPH8kjrSXr3kQoiHE4fGGJl4IK
 IVIHj+iC26JJgbqFcSU7CKGdvZIOJ17IPPh/HhunKBv9ljNJ5MM+WL8kJwCg20Ez
 J3CRnHM90EFk/nfAlJRvXk0D/3rqR1ODyY/8fFDtpOIjkApkw7k2eoJsfqy7tbtX
 YwdMKQptAvz2NxW4Qjfo3NbgGbfN6eAlhoy9Srcfm886KPMA22ZAvCWopFNbqAGX
 e2iOEwbU4JflSq5vLsIhOVz133W6mK1c7VJ0cf2zl+iRWtISES4fOY5s9rEacIjA
 NcAHA/0ak6bks8LqzC64zFdI6bj2FfJbOoTrga1/FQEBSw8bET14S20G/713ZCD+
 tQXXrs8I9YjBQREsKYmy0ixFYFmxMvG0NxkIyrwD/GEqpBbNdkJlx7pUhqv3zyRY
 rzvcmca7jIguu6K9nYi3t45nmCVo4ku9EE34YHzvgFQ15+1LdbQjU29lcmVuIFN0
 cmFhcnVwIDx4cmlkZUBGcmVlQlNELm9yZz6IYAQTEQIAIAUCRRwGPAIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJEA28NAjmg61AFysAmgIisxdd6032Jk2xeI17
 gcHuzXvuAKC5z1x4XxCwELWC9mk9HUlVTWcMW7QeU29lcmVuIFN0cmFhcnVwIDx4
 cmlkZUB4MTIuZGs+iGAEExECACAFAkUcBVMCGwMGCwkIBwMCBBUCCAMEFgIDAQIe
 AQIXgAAKCRANvDQI5oOtQAvaAJwIhTZcNVO1HKFwW5+hfnpE55hAMwCgtgTvelBA
 dhl0HgdkEN+HWtZzEnC0IFNvZXJlbiBTdHJhYXJ1cCA8eHJpZGVAeHJpZGUuZGs+
 iGAEExECACAFAkUcBtACGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRANvDQI
 5oOtQBgzAJ0e+6mp3n17yH4hAzcE2toJ/CPBPgCgrDC3mRdXEOD8Gegm80agUykc
 Fq65Ag0ERRwFhBAIAPf3jtvf8pJMZoO7SQ3/Et3jla1POUcJuk9T70om/Fqi9Y1b
 mxTXR7yu5Rue/ZSN20laoywnJQAJ3BENx7mZHZwCzZDfEU9QU6WipPykt7KbhBG7
 DjXBONGY34wl4RearvGn61FuL77/pkSA1XQ4+5U/hWIisTWnHRufxoykhlyo7QTN
 x/S1bEXA6eTtfT7acA8sZfMRiqb8opOtJPiSMO7vBEYHfkleUGhSJwI7R7ghux2z
 y92Sp1sFO7xb7ZVlKVPo+edqbu5mKRLvhykLiA7keNv/YGkfVjPgLthAo14JIL3b
 95dOkGV/iI+DlYWPa/sDOM2KL0S/wJ7dXMtMVO8AAwUIANqJ9nqvDnWMoiJ2/Zuc
 H9y7CMmSZEdzQwKqaJysyDqiV6LAK9TXsxzzl1UXximPMCb2qwtVGOaRKAPR8qjD
 9GQc0Lb/BCFQ213o0eb+pvq7fFmUxrt7kMUvbwRGhiRbHyo1qf/z+VA2bntosYmW
 9YSpa9eoE3iXr3cF6wQVw/nUF7jm6QQ4M3ak1MiaoICxxCy1x2WzW9mrUePPWz25
 x0Pj0+R3mnWMTewLC6kk3QFM3usdxudGXJqDVch3w47BHV59WgSnzYPshGFp0VlU
 xeJNWJYu0DM/8WeOvRdf/5VdxwJGDtxRyQSDX6niYHWg6tL2Bx1cCxJnnzLLnXDp
 PziISQQYEQIACQUCRRwFhAIbDAAKCRANvDQI5oOtQObqAJ4gRDoYRjl6DWCd2DgO
 ECDwvMM5wACgiAYFjP/BOSY6RZdSBTxOSdyeVdk=
 =Dgd4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.314. Marius Strobl <marius@FreeBSD.org>

 pub   1024D/E0AC6F8D 2004-04-16
       Key fingerprint = 3A6C 4FB1 8BB9 4F2E BDDC  4AB6 D035 799C E0AC 6F8D
 uid                  Marius Strobl <marius@FreeBSD.org>
 uid                  Marius Strobl <marius@alchemy.franken.de>
 sub   1024g/08BBD875 2004-04-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEB/3xIRBADGjxOPVRN2LvXTd6jXqKf4/6pPVPQlKqtwpOZj9JgDVE+V0Elf
 kjvwfCXA0gqt7kkal8i2TU9v2g6IIKP1eUoNpBy/s15Wc8JMlESB6CkfFPNkqj5o
 ohRSoKuB8dud0KR3T531rPfQNmsVRWtxrPYigkrtYZHiTPSZFgL0e+RiBwCg+i3+
 p9+1JBby6tthOolOGdr54xUEAIYounibXk8p54DJeunp0rMbzKYvbXYTOyc4HbD0
 t9kOH+VI3BJ+DlEuCejgwRkxkisjhQbSTa4+EGROKYcVIBBTtsj8JGHiNyRVSQ0D
 +A1KDuZQh7iDwuyatT0xvcvFw52In0dj3RK5hDV2ZX1ec1WiEMKdf8It+WdTSQPT
 UUF+BAC1WEPU92FZefdEDIQQHu17xsCestDOyd6xUBpxyPV2dyUwm8k7OhRalNuk
 nAIXfbZcVVZ/+RWDdfiftoSxQmODQg0JtzhtGEQO2q/FozsCy4Bx8XPk6CQmPMJk
 x/o8MwR50qDlsmcMRR2NDF+I1QOyRpEmugZ6sO+WXm8bkj1J6rQpTWFyaXVzIFN0
 cm9ibCA8bWFyaXVzQGFsY2hlbXkuZnJhbmtlbi5kZT6IXgQTEQIAHgUCQH/fEgIb
 AwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDQNXmc4KxvjaHxAJ9+D0jNIIFzozzz
 6n/bx6N+yV2rwgCfZRtKVbN4QNEBod9tfer2TgmRlqGIawQQEQIAKwUCR3O7DgWD
 AeKFAB4aaHR0cDovL3d3dy5jYWNlcnQub3JnL2Nwcy5waHAACgkQ0rsNAWXQ/VgC
 ywCgjtPLCzZAAgOuFiLwNw4vF6ZXJBQAnRPxbc9SwccyaGrkk8kiCX1nxVmFiJwE
 EAECAAYFAkd2QQ0ACgkQ722CQfCBGV1D4QQAgo9MiuMFTfyjZn/qfQmSenruVgSW
 GpKiz6DTPhmT767GqaVqaaChoWqPY6/PGPTbk71NleF1v2HU1Orzoj3KqgzE6vVM
 MMfmMXJ7y/A9hg+xImKuThiwMzfJJQ+nrvCc1beJIiMxhJJLHxmBJZve/mbMUs3V
 HC4tGEcdrGecFY2IRgQQEQIABgUCR4ekWwAKCRD09yJxgsm6KU0pAKCIgvYV8BNI
 ES5/8AK02J2lApE5kwCgxetWv8ToTTbUhW2AhaIEHlg8KQi0Ik1hcml1cyBTdHJv
 YmwgPG1hcml1c0BGcmVlQlNELm9yZz6IYAQTEQIAIAUCR3QWxQIbAwYLCQgHAwIE
 FQIIAwQWAgMBAh4BAheAAAoJENA1eZzgrG+NU0AAn1xgOlGk3+FpLagxQh6/O94Y
 8iz1AKDvu7Im3yfxj4LRh5UVKnNYMIJTtIicBBABAgAGBQJHdkEIAAoJEO9tgkHw
 gRld4JcD/j52TeNiPNJ4hDyd0QJUItk8RXcvBtrg2dSl0TGmNs2f1+3fjZ6vdrE+
 5Ry0qh38ywsxs7sEFURPavre4i7EbdOWv6NawUfaIsgXp8Os91bQr+UrXe2esAEC
 SICQS9hHI3qEl8hPqay7rPl/lXM3ivofmrRXXfBRCtxUqy8+CFoeiEYEEBECAAYF
 AkeHpFsACgkQ9PcicYLJuikeVQCdG97q3ZUAYRy7za8JihUzddma5wIAnRS7veJj
 ENbiKHg6MJc2BMFGZ9H4uQENBEB/3xUQBADFOTE426iijaR8FaZLMIRaSexGfOvc
 nPJFF+rkoktpQzP+9BKDwKvt1HmlDXaiaeJfwEfQdK7/oORh9+ynL9ag/KaocJtT
 8eAqhVnoC240NF+PhMlX7YblUwa9+M5MfNmDkNEV92ZFIJ8QjRAzn/G3rQIMo6ax
 BmsF+1P71QEIgwADBgP+Kbmf5TjcU45Wuc3ceZCAEm9o7VMhsU/tVu69x6QRu379
 HqJ9RDuAOdcBWQ/67Jw7blSbe3yWZpqhxLTWwYELJG7/XSNnIsFl3osF34lm0Y9M
 lJl+XBQ3UV2kPgtIMDTXDuklzuhdhbIlhWOXJJf48WkSxeB2WGnnlVvBCjBTx3+I
 SQQYEQIACQUCQH/fFQIbDAAKCRDQNXmc4KxvjWiAAKC5xnCwJYOHHwqreNa98Dah
 W9e6+QCgjchyumMlSJfpEEnGG8vU08TmXrs=
 =QOvV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.315. Carlo Strub <cs@FreeBSD.org>

 pub   4096R/1ACAF57A 2011-06-29 [expires: 2012-06-28]
       Key fingerprint = 3019 F948 5F92 E45B 5B33  6EA2 22A3 B308 1ACA F57A
 uid                  Carlo Strub <cs@carlostrub.ch>
 uid                  Carlo Strub <cs@freebsd.org>
 sub   4096R/648E9F32 2011-06-29 [expires: 2012-06-28]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =gAxt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.316. Cheng-Lung Sung <clsung@FreeBSD.org>

 pub  1024D/956E8BC1 2003-09-12 Cheng-Lung Sung <clsung@FreeBSD.org>
      Key fingerprint = E0BC 57F9 F44B 46C6 DB53  8462 F807 89F3 956E 8BC1
 uid                            Cheng-Lung Sung (Software Engineer) <clsung@dragon2.net>
 uid                            Cheng-Lung Sung (Alumnus of CSIE, NCTU, Taiwan) <clsung@sungsung.csie.nctu.edu.tw>
 uid                            Cheng-Lung Sung (AlanSung) <clsung@tiger2.net>
 uid                            Cheng-Lung Sung (FreeBSD@Taiwan) <clsung@freebsd.csie.nctu.edu.tw>
 uid                            Cheng-Lung Sung (Ph.D. Student of NTU.EECS) <d92921016@ntu.edu.tw>
 uid                            Cheng-Lung Sung (FreeBSD Freshman) <clsung@tw.freebsd.org>
 uid                            Cheng-Lung Sung (ports committer) <clsung@FreeBSD.org>
 sub  1024g/1FB800C2 2003-09-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBD9iAJ0RBACJHmAyofYftDx6hFkYRkCrM999YrKxfYGybHI+MoN2fFPXMvSh
 idYzBGhij1a8E7DGuZ2fGwSxdUZXcUA9PlDPuTmxs/xI/ZgX/qnG4yPgeT7KfZ5g
 UqRpm0/gz/7g5UsvNBw0iUzSbI7tTXprErflhUXX6cC1bPHTeEQbHe+nSwCglpMT
 cpcV93CQpMX+GC16UvwC8MUD/2TzigXSQ9rJNoTLuhsibSK9fh0vzq6rhCrzy2Ma
 G4M9kLvApu7+8YEk9ydVk9EE0PxHTTXGAxnpZzTW/bCCcLubhBqv8eXs2GOOxzHG
 YXb9Oyo+FDe0EAEZ5Swmf/V2eAHV4bYDmXzW9okxIUK6skXtFxQ70DxqcmtAxlxa
 QLgbA/9plT+d5g2s1c11Z0p5CQbxa8sJu4nLFT36DzhR2BmhTEM/X2wSARGe7PKu
 LdWI1WfU4Avoj9sWehSF531tMekMSZ4lp0gb0rYOyzGTqTWjq32mkqep8MDP9cT9
 6H1UaSU96yyc1sprUdU7XDf7TA4jZp2LSLlOEB2UCOa0mBL9QLQ4Q2hlbmctTHVu
 ZyBTdW5nIChTb2Z0d2FyZSBFbmdpbmVlcikgPGNsc3VuZ0BkcmFnb24yLm5ldD6I
 YQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAUCP4IzGQIZAQAKCRD4B4nz
 lW6Lwc3gAJ91P1UQoV68L7emHnjqlf3nK6qzmwCgiVtWyaqQJq4fayifeKfFmT2U
 0EyIRgQTEQIABgUCP2SPxwAKCRDm4NvoVAvGHGhiAJ90wTMq0zYb41tG8M+RoMyv
 oVsgtwCdGko61SUEB+884zRD2bHhwFMg+OiIXgQTEQIAHgUCP2IAnQIbAwYLCQgH
 AwIDFQIDAxYCAQIeAQIXgAAKCRD4B4nzlW6LweOrAKCRWdRCC8hQYwWCa4/upt6N
 hc+SRgCfVybP7alAFua8F010HJiSfXdNtFuIXgQTEQIAHgIbAwYLCQgHAwIDFQID
 AxYCAQIeAQIXgAUCQSQbpgAKCRD4B4nzlW6LwVB9AJ42/CQFoYKDRYz+XmCqBou9
 Y+Nm/QCfZv19FBbMSOfvRW6R7nJTSkf3Uj+IYQQTEQIAIQIbAwYLCQgHAwIDFQID
 AxYCAQIeAQIXgAUCP+GGogIZAQAKCRD4B4nzlW6LwUZ8AJ9q3BbkGIsEuhnp6rWX
 uSkcXYkWWACeNSCb9l9g/650wnXPEHcHsRpzBLK0UkNoZW5nLUx1bmcgU3VuZyAo
 QWx1bW51cyBvZiBDU0lFLCBOQ1RVLCBUYWl3YW4pIDxjbHN1bmdAc3VuZ3N1bmcu
 Y3NpZS5uY3R1LmVkdS50dz6IXgQTEQIAHgUCP2SMCwIbAwYLCQgHAwIDFQIDAxYC
 AQIeAQIXgAAKCRD4B4nzlW6Lwb3bAJ9mJttWnct/3ej1XlvmnAxRq6ZkOACfdZDT
 sLSo8DN73ZKDbiP73KqDPdmIRgQTEQIABgUCP2SPxQAKCRDm4NvoVAvGHONyAJ9t
 QrXQSZDkm71qAw+6HiERQ+qsEgCfWuA857Lrda9ZR8X7IJJ3XLO2HPi0LkNoZW5n
 LUx1bmcgU3VuZyAoQWxhblN1bmcpIDxjbHN1bmdAdGlnZXIyLm5ldD6IXgQTEQIA
 HgUCP4IyxQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRD4B4nzlW6LwecsAJ9F
 HNrKHPsCJ6ZesY1gJI5HOVijvwCfb5G6dT2YW8TH8GNRFe7rWPXO1E60QkNoZW5n
 LUx1bmcgU3VuZyAoRnJlZUJTREBUYWl3YW4pIDxjbHN1bmdAZnJlZWJzZC5jc2ll
 Lm5jdHUuZWR1LnR3PoheBBMRAgAeBQI/gjLeAhsDBgsJCAcDAgMVAgMDFgIBAh4B
 AheAAAoJEPgHifOVbovBz+wAoIJhcDpcOVIACy+wboHG4nGOQfiWAJ45qvE09ckd
 IX+MDl7xez7OMqDU/rRCQ2hlbmctTHVuZyBTdW5nIChQaC5ELiBTdHVkZW50IG9m
 IE5UVS5FRUNTKSA8ZDkyOTIxMDE2QG50dS5lZHUudHc+iF4EExECAB4FAkAoN7AC
 GwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ+AeJ85Vui8HhdACeNn9owhjpYr2y
 cYCkOFDv+q3xIF0AnAijfOOUq2oT0d0+B9sALIz0HHrEtDpDaGVuZy1MdW5nIFN1
 bmcgKEZyZWVCU0QgRnJlc2htYW4pIDxjbHN1bmdAdHcuZnJlZWJzZC5vcmc+iF4E
 ExECAB4FAkESZaACGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQ+AeJ85Vui8Em
 ywCdEDYOgC1/YxPHqyvEXGs+JTFFqfkAnjfkTpRPM492elqZkBlQimFGLeWutCRD
 aGVuZy1MdW5nIFN1bmcgPGNsc3VuZ0BGcmVlQlNELm9yZz6IXgQTEQIAHgUCQSQc
 2QIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRD4B4nzlW6LwZ4TAJ9hByDD2ep6
 ixTnazmBJSg3epv9tQCeOM4JaWNwvbOrF528n8PQcgpe/3W0NkNoZW5nLUx1bmcg
 U3VuZyAocG9ydHMgY29tbWl0dGVyKSA8Y2xzdW5nQEZyZWVCU0Qub3JnPoheBBMR
 AgAeBQJBJBoPAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEPgHifOVbovB564A
 mQGePiZdxv8qVwvtdyf6m9SvosGoAJwPuv0oR/D4PIDKFYtlTqfYN35I47kBDQQ/
 YgCgEAQAwHkhKy54M/yuuJgb4Gcit2+fDnlRZ8yRJkGe8OSl7qx9Gaz0+kwe1Gir
 V+DQFGC/W3gJqjEN12jh11ZUabE3Seeofec94rDZz/YBkf5ofMT1+tN1kwr+ju7C
 lQdZCwNewaS2p6C5PsXCUQQ8ZHfgs8YB7Ze/TY6GvpOoDKqYHO8AAwUD/1ZvVV9P
 e36FE4RkHg3P1YLkMNs5fxleXD1l6LZ8ElQy1V0RVg8sD2W22xh0wP2W9RplsDYj
 UwFKuRtxxoEsdXvDNLaUyG4hXmNUVBz3b3tmZSvENiuj5EchJWO85T+AFT0g7ap5
 wWlxOqmvHC5NZRiAP1fpKpwoSvYTLP418YSsiEkEGBECAAkFAj9iAKACGwwACgkQ
 +AeJ85Vui8E94gCdEqq8xPwuUc/LJQyc1ziacZJ/FmQAnA41/zThbZg2nf994Wre
 OT332jJ8
 =EtCd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.317. Gregory Sutter <gsutter@FreeBSD.org>

 pub  1024D/845DFEDD 2000-10-10 Gregory S. Sutter <gsutter@zer0.org>
      Key fingerprint = D161 E4EA 4BFA 2427 F3F9  5B1F 2015 31D5 845D FEDD
 uid                            Gregory S. Sutter <gsutter@freebsd.org>
 uid                            Gregory S. Sutter <gsutter@daemonnews.org>
 uid                            Gregory S. Sutter <gsutter@pobox.com>
 sub  2048g/0A37BBCE 2000-10-10

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 sTEQABKrEX0m
 =fxvp
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.318. Koichi Suzuki <metal@FreeBSD.org>

 pub  1024D/AE562682 2004-05-23 SUZUKI Koichi <metal@FreeBSD.org>
      Key fingerprint = 92B9 A202 B5AB 8CB6 89FC  6DD1 5737 C702 AE56 2682
 sub  4096g/730E604B 2004-05-23

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =xwme
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.319. Ryusuke SUZUKI <ryusuke@FreeBSD.org>

 pub   1024D/63D29724 2009-12-18
       Key fingerprint = B108 7109 2E62 BECB 0F78  FE65 1B9A D1BE 63D2 9724
 uid                  Ryusuke SUZUKI <ryusuke@FreeBSD.org>
 uid                  Ryusuke SUZUKI <ryusuke@jp.FreeBSD.org>
 sub   1024g/5E4DD044 2009-12-18

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEsqyesRBACDA3KsPNZg2Q88N9Vhp0kpoLW2Yp0xWbJ01tD2PPcGCq4nGE0W
 NgEvynvUwVJ4ODryLEIL3Po79fBIpkOhjraWdFH4LMcXjOequoERDWCMLOSBzP4R
 PKPqhSvOGw0H54357fcjzo3X2ze9HnfiOI5d94qaUpnPeE8JioJQcTEW9wCg9wKy
 KijAwG/TQBIHrS/bp6F/4GED/iCdSQ09Q6ZQF497zS1oNTgXDmD/qaAzW8F0bu/D
 rp9v5GVWeN1vfXHAtvug7/kIOO/eFZqU7IZRIf9bSerWXtaSV34QZSS81UZOr4u9
 YUGG1qk/A2a06GFzPCzB80c57G1b2c7i9Ktbw5cQ5o01eLcbqkdLmc3OcjIjnmCy
 /wnfA/9tlfS50UU7RFfwj199z7R6vxZ8HNoW0DwyNT0G/Sumj96o7+GXqU6NGZ3c
 X4g0qQbF1NY5h3cXkR9y3w3TP+guQFWtJEqyXxykYHZWAmUfNbaG7xiWdP0iGa6N
 pAWzMjpeHFXKCLmD4WzRx82TPvxSaw8W7H3PQwi/QIj1yBFot7QnUnl1c3VrZSBT
 VVpVS0kgPHJ5dXN1a2VAanAuRnJlZUJTRC5vcmc+iGIEExECACIFAksqyesCGwMG
 CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEBua0b5j0pckoPcAoNDzMLDEsOm+
 GxbYMxiTpRNqR3/IAJ9TZ2g1dD8D99ipOUIADN8DyEZRBbQkUnl1c3VrZSBTVVpV
 S0kgPHJ5dXN1a2VARnJlZUJTRC5vcmc+iGIEExECACIFAksqzV4CGwMGCwkIBwMC
 BhUIAgkKCwQWAgMBAh4BAheAAAoJEBua0b5j0pckOEIAn1Q0VUudnFwmFG2/Gim1
 u+C8cmZpAJ41a06jrPg/BwDeHLHVhd5FzmXyqrkBDQRLKsnrEAQAg7+aWadgT2+8
 C6Hb2GzSs3/sJnLUWCGfmzBqKNQwyTMAlXEBD1w6MIeYURz7PuPgkOvB8v8b5+2Y
 JBU6i1289khWYSq1pn7XgX988+GsX//IfqCHl9i/RnuO4dVL9KXl3lGFvftpsm+A
 /l+4NkyWo5T/wpzyrmNfuDrsuDUf92cABRMD/0NsHSpAxZpt67PoIrnAXIByQU9g
 grORKLEHjYe6XpuVsz8XPARBjskYScU9VcPEtWIUWh6PXCjNk4aiKwE0jY7XX0pE
 DeiZwa2WG2eFlDqJ03aPgxTQouwEKu3zuo7Xnd/dlAThHK0wZdNWmV6ebYah8rrt
 TJ3PrsYQNptn8iogiEkEGBECAAkFAksqyesCGwwACgkQG5rRvmPSlyQyTACeNfIm
 DBCNKmYGktQUlB1U9kf7o2MAoK1PxWrRo9/d+uKirJNnzdYXTJk4
 =69IH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.320. Gary W. Swearingen <garys@FreeBSD.org>

 pub   1024D/FAA48AD5 2005-08-22 [expires: 2007-08-22]
       Key fingerprint = 8292 CC3E 81B5 E54F E3DD  F987 FA52 E643 FAA4 8AD5
 uid                  Gary W. Swearingen <garys@freebsd.org>
 sub   2048g/E34C3CA0 2005-08-22 [expires: 2007-08-22]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEMJW1ERBACGUsHdqFuQjrrtjpvx2pQ7GpZYl+HS/jVPn+0MjMcZwRtk2T+g
 b0/EzS/0oeOqv1biX/aZN19T31JGdlSm8FumpTc9zPgh830omlJx8V3g8wi0ZHzl
 UjGa2MkmkaCEVeP5bX/NyRljP6fpnOy+5h4F0WcpkqwlXRuhOzM8UgpXlwCgjjPk
 0CLI2jSVsnqIKtMdunOfsd0D/RaALnZrVkGtQfDX6MDo1Ws+ADGj8rGtmdN5TIoo
 ivJvilG/5HSL2nsqOcIKWA+C4lZqzMIlo5iPSz3BijMc1Ni6LaQo4E4zvh7ID5fs
 fXsMhiE7H2KNSGTjmmL/8Weq8Zgpu9TBD8CHUZLD6BU4Wmm9I/R49A16T5Gbylgs
 fEwaA/0VYP+u8TEechtQKLuAfOwL2ruFE0YKmnXq2S7MixFvSNaRilB/t41I1YcZ
 mcWbRlIBezvchln5qRommEKfp/sWVcocR+AuSTcLT3683SkeJ+9205bFx9xXJnrE
 PBhqjMmRNNlmijcBFZHk+W7tCJQBbLGJkpLfqllfVkJ+rY/NVrQmR2FyeSBXLiBT
 d2VhcmluZ2VuIDxnYXJ5c0BmcmVlYnNkLm9yZz6IZgQTEQIAJgUCQwlbUQIbAwUJ
 A8JnAAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEPpS5kP6pIrVGPkAn0i58Ikn
 S9M9e7cMI9Fis6lXDoAxAJ9eRxZEgPn3aQ4DZ2ObnuKbKSqcw7kCDQRDCVtWEAgA
 7jU7l7ssKXwc+/ynNfiLAm9nvCY4jMw+CK6hwhtuOmrgFH14jeEY8wRVBrOUkVi9
 Y13Z3qkTk5DD4iX9f25iK8PJELU5XJWStuX64hIEyqowRZ5KkvsdydHjQ1x2koS5
 oTW5kD2nWChnBKI7iWPgRnFnfthrXE83ZY1sV+/OBRZH1ZS5KVxOzClcoTiTE5Q0
 Q4Py1vlS/Bw95Nhejef7gSf6fN+iV2DQn8KDF81+MIj1jTWt5LDa80G+T5yGWeuz
 asAZVzBfPEHbWbVmRjT9Ajmump1D/0gUvxSr0fpnVfPtEFJ/MbLdcV1kyTtI9YLm
 EWnov/J31bGCDlhGjYfaLwADBwf/TBu+b48oClOPFJznnNGVVJUdD528hfVor4Wy
 3ph3KXSfaysOmG1xo+nQ3JpdzbC3nXgfVGM2wGvFEgq7ogBZ9YZNzwSP0vseJlwn
 oXNKvKKDdCyVJC6Xi0Pd6L4beJRTjxf0LPQUjYdQbwrk2RqHXZ/RUapYjlfOWS2l
 4ZqHiMoO7ZIAj/bdBKxySu8qVs3zmu59SE+ZQgxSXwxw2mF09XWOLgXsKTfhXlkl
 ZyKhjcSlVfjy4SXiXy2zFCh9+T0eiCeEzz5kS0QkA3npOooIFftI2q0IKbHOExSA
 YwOocuVEW7eLzeBfCoDa0SoapeXcjyF7KbiDwQ8xu9gEIUkpXYhPBBgRAgAPBQJD
 CVtWAhsMBQkDwmcAAAoJEPpS5kP6pIrV3wIAniAehy9Ttb00FbjcevJetKN5PWe9
 AJ9XhpsYKAyHxoZLFzGdR3EGBJNAbQ==
 =EQll
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.321. Yoshihiro Takahashi <nyan@FreeBSD.org>

 pub  1024D/8394B81F 2001-10-15 Yoshihiro TAKAHASHI <nyan@jp.FreeBSD.org>
      Key fingerprint = D4FA D8CA 2AED FCF4 90A3  3569 8666 0500 8394 B81F
 uid                            Yoshihiro TAKAHASHI <nyan@furiru.org>
 uid                            Yoshihiro TAKAHASHI <nyan@FreeBSD.org>
 sub  1024g/B796F020 2001-10-15

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDvKlwgRBADKGTPgNos5F4dobTyIhNN1nVHwKtvdTM06orzFj8VccmdZlJF7
 DLp1UH1gwiVGLu1NPOrQXKeaZmK3iO11fTV0zbCUlUnfgSQsJJeGUFMx7/tgu/F3
 L1qe1p37txNYN09SSEBJe7rlTLhM4VWa3LeEG58Td0d2qP/fJeikz9HIVwCgzIJd
 aEclfjgNmsx2lM8jn6qxJXED/jyqV1eAgTD8C6MRPGYcqyLUZoIy7SwdhvQLKlT3
 rAI4yHy5m8Njj0bk1oJM+2PAhZN3o16tpsjQEJuWoIGWxe9P4AX2Rr6htpidn2Gc
 UOXaMFZyy0MX4ULfph78FEzRC8WGEV1hWLW9pNnzaASY/RwNNvW/YnGyKSCq9ilC
 YG9mBACfcmN76QnFFDHd76otrltwwjj1zTRoHEnBgfj/EldDeOaU5cBG0HiV6cbv
 94MYUi16AnN6462qG8RHJmSPblsm2Og1e7aaZl0CpVgOq86QBwqDHFXh0q0UtgXU
 EQChaBe68ydZRwd9TScAknuj5iAXfXtwAeyhWbzmVyJH0Kk8QbQlWW9zaGloaXJv
 IFRBS0FIQVNISSA8bnlhbkBmdXJpcnUub3JnPohXBBMRAgAXBQI7ypcIBQsHCgME
 AxUDAgMWAgECF4AACgkQhmYFAIOUuB9UUQCgwTQSPrbTxhJvi1DdGsYhHOsT0PsA
 nRNBwMyeLPQPhLxw8EPLgyno7+EHtCZZb3NoaWhpcm8gVEFLQUhBU0hJIDxueWFu
 QEZyZWVCU0Qub3JnPohXBBMRAgAXBQI7ypdXBQsHCgMEAxUDAgMWAgECF4AACgkQ
 hmYFAIOUuB8q0ACfTgzsn+Q6wc4aDQ7nT3+M4HPWXhUAn3nhtyq4Ucu2A6oHXvVt
 1oAhhGyPtClZb3NoaWhpcm8gVEFLQUhBU0hJIDxueWFuQGpwLkZyZWVCU0Qub3Jn
 PohXBBMRAgAXBQI8VVkOBQsHCgMEAxUDAgMWAgECF4AACgkQhmYFAIOUuB/XmgCa
 AgHmONlOiOhKdY5LtVJoDi0+cOgAoK4wJFYzstYbpXayj0LqbgmYiY3QuQENBDvK
 lwwQBACBBH7cM4WCT6D1w1XAQnWgL4eE/fMcR3aPiHBDd8eDWFFOhwSPh3W6jZ5T
 STUEZCF7lgD3k+QJtDhVKE0U/hha1ZFMgdTTbhEW9Pl9DHW3BYxPXxq/SURwpGFg
 0GriV65Hx3Dq6cxkBfzGZzrZA2JfRwb3pXisNSGDILAtNRw3jwADBQP+OSbFQWL2
 n+KrBX4dPbp5cuFVL1/NNOWhSOwU+IsR8jDaCYpLy+Zkn7Bn90bIee7zsdWOkGWf
 /qV0qm6dY7xLs/hoCKgk+0jPPevVcCayfCTzBZ+d76qPjWQtEgKN7/LJZn8rMCBf
 B4kHxrcclf9z3OdI+BzTNrPZaCeHLd7nMKeIRgQYEQIABgUCO8qXDAAKCRCGZgUA
 g5S4H1r/AJ973EUo0J+SF83Sj/hL0zDTQBKlKgCcDy1o6LmSduT3NE28KB3Iw10I
 kqA=
 =eB3G
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.322. Sahil Tandon <sahil@FreeBSD.org>

 pub   2048R/C016D977 2010-04-08
       Key fingerprint = 6AD2 BA99 8E3A 8DA6 DFC1  53CF DBD0 6001 C016 D977
 uid                  Sahil Tandon <sahil@tandon.net>
 uid                  Sahil Tandon <sahil@FreeBSD.org>
 sub   2048R/F7776FBC 2010-04-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =jPKa
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.323. TAKATSU Tomonari <tota@FreeBSD.org>

 pub   1024D/67F58F29 2009-05-17
       Key fingerprint = 6940 B575 FC4A FA26 C094  279A 4B9B 6326 67F5 8F29
 uid                  TAKATSU Tomonari <tota@FreeBSD.org>
 sub   2048g/18B112CD 2009-05-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEoPodURBACCCL74hQbB00H/yUtv9No6sBynaWyH/blLogfrVbNL+86XIKDz
 yricgZ6/GDT4tbpaxs+o0wPdI0SrvvZuvvLfiV4ZxiCa8TNJF5/4GEzjKE89Pmtr
 DMK/i4RCzhRfs+PfzQdTRA7aQ77mds/tYGJYsqk3m1bWwOGggMti4TBk4wCg21tx
 RTopEa+HVDn1NTLgsAs9a/0D/3lvX6trmF07ENwCp4VGzBRTAZUAGgXziQ2zdjVD
 WcIWPO9PLxM1C1Crifbh5IOFoCsrUZeEsuLalzEVWZ2O4NqLRiRfuSD4ku6Rnd/k
 DBwkHiDy03JfGybBNEKUGvhXhhu53uij6ZXxNW9xR0KclDmrBxxEyj/Y/GYMte3b
 gV0SA/97szSEf8LmQmUD1sd+VHDBaJ9QUe5xNEJ9+8ZfCsVh0zamLvrAOLnZY0mU
 hPr61esTetdjDv1UAbn/OPTMfp4oY6/4Xa59APshxuK6urXaKExwWrvio4OYTHq5
 N0Bq73HwZV1beY+yP8wRRI4AzPoeHa+vIOhfIIJO++v5u9Hrp7QjVEFLQVRTVSBU
 b21vbmFyaSA8dG90YUBGcmVlQlNELm9yZz6IYAQTEQIAIAUCSg+h1QIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJEEubYyZn9Y8pRqYAoIpC8dx4p/BaKVxueFll
 Jm/w5qD5AKCC5KSc0zMxM0Iq3FigA/tDjiyj9LkCDQRKD6HVEAgAqVPZwxV9bFbv
 PU20xAQ6HA8YxPp6QYUbb+r8AoRmqPNLoDqfNglhMimj5nPEFLvBgDHQaPQcqcja
 5Qiz7j3I8xFrBbkCrx8xp4XYAQB8An4iy8np4Ys/YjvDjittYUn8CywN4rVGIppz
 S8BDY9Ufjy6v9iFERXGEGcW3x5gFA3S1hGJZ308QhlWMw6OachMadUnAXcoO30fe
 q8eITtyJZN2MESq7G5TtaywDHz3Gg1K7m68bPeQaeAHwkQBwC/0xvDtJ4uyq/Yp6
 sQrlWJN50vaTnSAQ9q+b0tHQMVxQnxU0dVYgtE50jpPHApbc21Krc6H7a8VhNu9R
 JIanzAEUEwADBggAgJ1JY8XGrOVeYJ9F6S7F6pZKxyj/pYYBYA5dAIOm1df+cpvu
 Knen7UTOb6CgkZqGlX0BbYwYsfzr3B4oS0P5ScqE5gNVeWrCItZrZV6fuA1ZGnNn
 bvnEZ3xCZsb49CtfUcMLqNp1KGVGg1iVvh5YA7mtBmp6W12sq5YM4jx20ph+AHrs
 8/eIts+MMJ70QDI+GoXtwgS5IfFQK4x62K8W0RAmp77/qvRE4hrdsL55UYwD1zuY
 qzwfQVNaPNUUiVDEyL6K3K5GYfkZ5zPz8iJ6sWtsuLEyG4CSWLwkAtJj0Xuc71vN
 W/gkbM4ZpQgqQGQDZvN44Sj/prcJlnbyh26ajohJBBgRAgAJBQJKD6HVAhsMAAoJ
 EEubYyZn9Y8p4EkAoI+bYGMuNB+i74EdgubvW/fTinfPAKDGBmZorrcBfYrnictP
 T1jCoBbEow==
 =0Wta
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.324. Romain Tartiere <romain@FreeBSD.org>

 pub   3072R/5112336F 2010-04-09
       Key fingerprint = 8234 9A78 E7C0 B807 0B59  80FF BA4D 1D95 5112 336F
 uid                  Romain TartiA"re <romain@blogreen.org>
 uid                  Romain TartiA"re (FreeBSD) <romain@FreeBSD.org>
 sub   3072R/C1B2B656 2010-04-09
 sub   3072R/8F8125F4 2010-04-09

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =AUXU
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.325. Sylvio Cesar Teixeira <sylvio@FreeBSD.org>

 pub   2048R/AA7395A1 2009-10-28
       Key fingerprint = B319 6AAF 0016 4308 6D93  E652 3C5F 21A2 AA73 95A1
 uid                  Sylvio Cesar Teixeira (My key) <sylvio@FreeBSD.org>
 sub   2048R/F758F556 2009-10-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQENBEroxHYBCAD8d4HA1tGibcHpjyOTeiQ7+yclqvB8bzWazJf1OeHwHcY+Rt46
 gVxADP5QPLhMaiw4nYNr+bSg+RDIOG3bmxqDZpmw38508NWd/W8XjgQSV/PhnjU0
 pfrvhXfmGG/f6C5D5D+IRJ5dffW65YuDXtsIPTOuBCwmq9NSRK0/w4VZBL1+ihDi
 oDhAWnkxfaFXN5luY98o1GVxQNpd/ZKjb+lsvAwsoXDSjn3R2bGZbA2LBIFh1Y2f
 KHa1vL4p5ZaNp0hnHyGW0mxC+SWse7zA3c500Erbm5d5I0HUgCEGNdE6tEryklFT
 zr4HfPxclml+QnlCDVZDSAf3+ExKfNLlSwjdABEBAAG0M1N5bHZpbyBDZXNhciBU
 ZWl4ZWlyYSAoTXkga2V5KSA8c3lsdmlvQEZyZWVCU0Qub3JnPokBOAQTAQIAIgUC
 SujEdgIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQPF8hoqpzlaFKYQgA
 mO/vudKdpx8jYDFmCOIE0OorvjqXNue+0VowONs2qSWiGwsvwh7YDUg8ZKEiBZHZ
 KV29T32y0JIQJ8tKloCF+XS3IktqWA0hlXqnN+Kmw3H0+MmzjgzCPhfTxG8jUUns
 r3qnYrFQDLzQXr64rUi0o6SQsxcsyb3m3VZX/NWXLyZm3RlCOfQzIRHWKGsP7Q5+
 sMcLA/obV+C2cEOlsrT1EQWw6pBdhoPr55ssNG9Gs1oZtPhepoKjTq4X3VRIkm5n
 LEcR5WUOe9qOJxxLWSWI2lWl7KAMuGt7KmOpbSYZNWi6Z4ASm2U8KhtFIDmQINzJ
 Th4Qkph0TDAr1mhKSaRVZbkBDQRK6MR2AQgApzi1h0Oy/HVxC82JSxsfcQKNgQbF
 6H9d3gkyb57koVVP52jBhcXx4vpce7oSpyWkm/uH6ZGZi5qkjSBliy1SdE+daymV
 8FEh9KQCMPvM3BArrDlbHUzpgRDwxJ5E25FfY/ggFF6/uzY0vLsAtLdyWowOh5ZM
 Dt0sKXsAMzBRaZ8VsWeBfxJJpecRLa6igK7w0+oehWQ7v9iC+XqBpfXR2S4pxTi5
 bshXeEfezqkut0wg9UBQdOZwMdzV3kw2Zis/qvi6jte19FrH3JVe3jhuoZCVKxec
 aTL2nawtQHqCN+7MhTog3ap+ZhghWr7NK3wlPWYmk0fDCRLW2bzh7e8OawARAQAB
 iQEfBBgBAgAJBQJK6MR2AhsMAAoJEDxfIaKqc5WhBt4H/ArRP3bzyv5ejeCZ25fr
 OCR7Z1vwdFFWvWqEAPO70x9XolGZMEhuF7OVjZpIXFgjDPBAoN5nxn4A3SJqMcXg
 zDsfqOJC4N2JHwWluX4D/CZ6caWOfI0p0sM7hYyXaoAEouknPO97IvermEvmiqnO
 gpcqUHbDL9DRKBnMyqDsSE3S83kEyuwD86x+UXJNCJk6awcUTWoETg6tVrpJ6Jma
 ccMPVsn4QucbRYyY2e9tIvJ1YbcqZH2munFGa4UXeY5+UemX88tg0rHHIYoN1B0d
 qMSWsm6YwNRBuyFC4f6RkK5x3FQExsTd36UaDkxMbimkyAf2y9uMmHf49+anaTUb
 QaI=
 =7/gk
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.326. Ion-Mihai Tetcu <itetcu@FreeBSD.org>

 pub   1024D/21FFA1E5 2008-05-08 [expires: 2010-05-08]
       Key fingerprint = A880 42DD BD71 BAA5 AED7  AEA2 27B1 88BA 21FF A1E5
 uid                  Ion-Mihai "IOnut" Tetcu <itetcu@FreeBSD.org>
 sub   2048g/0B30E680 2008-05-08 [expires: 2010-05-08]

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v2.0.9 (FreeBSD)

 mQGiBEgiuBIRBACCfhdBIfKQoYWIJBFmDWoGi/FISis2XH8eupI+0iiUwjAUDScY
 dCuGAxQEekdsIXrpqAEnUOGsqIi+AINub8KM1ibcN8vdlFSd1RGG6mpQNSlTZ4QT
 BWFpHylCe7SRW22kU5e++LVXcViTlAvSzMs8YB/a9j3DPKzh/IXMwSaqKwCguN5R
 L36o7GJDqTIPx5pD12SaDFMD/1FJ+V3xXeKtulLzTFKVrUJhXlDTBiLVcpzAeR0E
 V5/trtZM9tJldeIX/nqKvR2QF9i0VzoCIUWNS2M8MneCFIzuhQSnt6uGWvj58V6t
 gKtNhqTNPt61BrkaTtWgg7UX6kTUcEV5nztkAePGbOAfShtK6gVBcn8MHXBRZ7De
 nqj6A/9sD7tymktX1hD7i7UlBcQhBr/Fr324qv4E33dfGKuykH+HWFxg9FAD5PTG
 CyNYoKLvl82zZso5PaDXIa42ZphviKHttMKVidKR/FuI/gTqX8Oz3mYfDoxkvFpO
 7PzMZ2+KVBxoXBwXYf6R9nZWv5cd869A18dyNvhE9tK6exVJQbQsSW9uLU1paGFp
 ICJJT251dCIgVGV0Y3UgPGl0ZXRjdUBGcmVlQlNELm9yZz6IZgQTEQIAJgUCSCK4
 EgIbAwUJA8JnAAYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECexiLoh/6HlhDEA
 n0viPwOZWOfZGT/nbOSPmg+vvpuLAJ9Y6+VqpB9fdzyjW0GI26TlkcEpaohGBBAR
 AgAGBQJIIribAAoJEAV+n4tJOil7ptkAn1HjJyNBvKgXB4OY/SRbSmSikBXfAJ0X
 uSuQRMFbLqHM05bXqY95Ih3iArkCDQRIIrgSEAgAot/xHX8AzSLS7u2xyiraitRH
 fYcaMBpRYRqv0ceC95XUnBWZdy6piPBOr0p5LEGVaPN8RC6fM/9KIMCL+mEJtvZn
 dmxxCk+6GE2UsdDzMWdI2GZppjIAwPVY2YEB0kfa6fqSTV087hlyrkf7vMOl6dTp
 kAb50G1avwhy1jBoYR9f0LLn83kJV+77B/IUTe9sdgPsi3kovJNYIiAhTw62XqHL
 V59OZN/QVd1qPI0t5XXxpKbdyTRImtfF/EQ1HbqIha8ao8trmz2MtFMsT60piAoQ
 Q+usY3tHG5PPM4GxRnLW8Z0nZ0dWii42v5W5ETal2FaPUSH/9cDPAEphlcUomwAD
 BQf/RiXuGG3CBDiUYeVHlQiyNHQP4Rm5iVclcezhPstcQbb1R5rZ/sAu4FaUQVc8
 LRJ8c1UiemEhetGfTSAZnoeWxWfJgtcO0yK+fM5Q+ThqxCIlGPjAgmlbZw5R3Own
 BxiQAJMiax21BNVrxHMW0DigJqLVxvYEQDbw/DuMPwLG3Bf82zy1z3RUZ2pc8DEi
 nV3vtKfMH3UEvBHOxwdubOnmal/JYTWL7IR9mp+csXs0ZxJ5S5ELh5JlMWMa54Le
 3lujnkaTZYrdTxF+GWaFOxseNiLr6OcT4oZzTDnZ1Xn+CqS4TJDM1yczRrYPDA5c
 khpeSvqlv28UV0GvfDL0LR0mo4hPBBgRAgAPBQJIIrgSAhsMBQkDwmcAAAoJECex
 iLoh/6HlyokAniQgaL2Gi++v6kKS0faitctj+x9aAJsGV06R80EabXHH0d6Qd0vU
 ZMG9UQ==
 =e2YQ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.327. Mikhail Teterin <mi@FreeBSD.org>

 pub  1024R/3FC71479 1995-09-08 Mikhail Teterin <mi@aldan.star89.galstar.com>
      Key fingerprint = 5F 15 EA 78 A5 40 6A 0F  14 D7 D9 EA 6E 2B DA A4

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQCNAzBPh/0AAAEEAKiF0rNVbbuQue8Mo+knlGKtZJXWkLOhmdzE+FPxTSRv3TOS
 OHOfFbEbTlcuplvYv1US6o4liAyyx6vGLGa7ZW0zLFAtTOJTfwW3GPmcMTieOIK3
 wwzJtjH+wi7VeXIQCU/mOcLC9A8QaLqhJ86e3m9FODSFMIluSoucrgI/xxR5AAUR
 tC1NaWtoYWlsIFRldGVyaW4gPG1pQGFsZGFuLnN0YXI4OS5nYWxzdGFyLmNvbT6J
 AJUDBRAwT4kMH2ldntvsCqUBAVAcA/4x53VCfOx5Bm+BtneQNEvHgV8aqWW0tM4r
 31KtsSjMwuHF3kl7PJtCfVk4OpRvog4u9V5G7gtUhUIOi/Qfuia2YHvvxIh3sx7Z
 Gg22e4FxNzNob3qV+YiPOr+Aa6EoYfHB45eHSLFXryCBS60a0CfZies+CSzcHBy9
 /Zu51dCtnQ==
 =f57V
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.328. Gordon Tetlow <gordon@FreeBSD.org>

 pub  1024D/357D65FB 2002-05-14 Gordon Tetlow <gordont@gnf.org>
      Key fingerprint = 34EF AD12 10AF 560E C3AE  CE55 46ED ADF4 357D 65FB
 uid                            Gordon Tetlow <gordon@FreeBSD.org>
 sub  1024g/243694AB 2002-05-14

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.7 (FreeBSD)

 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
 =1nJ4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.329. Lars Thegler <lth@FreeBSD.org>

 pub  1024D/56B0CA08 2004-05-31 Lars Thegler <lth@FreeBSD.org>
      Key fingerprint = ABAE F98C EA78 1C8D 6FDD  CB27 1CA9 5A63 56B0 CA08
 uid                            Lars Thegler <lars@thegler.dk>
 sub  1024g/E8C58EF3 2004-05-31

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEC7Hq8RBACUBh7OsXzgLr6Hz1QigRoSr5nWAUdj7Z9wNIcoE9t6J61MIUtP
 qGL3x73LspmwBGu/aC9muJ5b4Ont+BBBkVkC3Cdl7pKSvT70/ZB7TKw9f9HA9S67
 jK/NnrgG4R9amixfd0KyycNpf3yvug2FV5VZBiUqvuqWipqXacOxsD8rAwCgksWW
 74+msARYAf+mTeR7/NCEH3MEAJFfoV3APPGGECWfwrDmQT1IiBhObbjsVKbo4z7w
 yHxK+3Qm9nCG/sVthRll96C+rtAJKf+FEN8nvIx/9Z1UQ3Y7zTMgzlbz83BhhPnZ
 lAZEZI+EfmWsltzmyjJHnsvShRvjEp/YQ+0tfZV5uAPy2yrICw/rvozhCmqTox5l
 zOgXA/9mfbgbJR8NS7IwzcVSH+YEW06lyxLHjEd31aIj6wgX7O9H7JdXOytTqbSR
 VXN+5GjJhEaw9GmAd6tsvusHMy+1GBgY7TFFUNYO+JqHn6FKGzfPiFyxDyvyrF01
 QL033peqiNVxTS5nvJzmKQCpftlU3S85R+K62Alv6xO70HyaALQeTGFycyBUaGVn
 bGVyIDxsYXJzQHRoZWdsZXIuZGs+iF4EExECAB4FAkC7Hq8CGwMGCwkIBwMCAxUC
 AwMWAgECHgECF4AACgkQHKlaY1awygj74QCggWeR8IRwgHIsxVv5zItpzdtnkSsA
 n31ytm6noxfetU5J/5NnR6bwV4WetB5MYXJzIFRoZWdsZXIgPGx0aEBGcmVlQlNE
 Lm9yZz6IXgQTEQIAHgUCQLsjTQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAc
 qVpjVrDKCPikAJ9a/Or2be00A9PeXyoo+b7VuLAzhgCcCX9kI2DduTtitld/mY93
 vZDnQPO5AQ0EQLseuBAEALDSStxYn/CidImaPKwDZoYVpXpHucmBZ/nK/rFwMNh/
 /RZD8ZdBF1PEDf3EA78qTxEk7PfSnoEWcxmcNfiMSALiTkehI4nWQH7j0ZSwqC/5
 Du4lP1v1PSeR35IkC58n8kur74olLMdoYxlpVOwh7jGR9W/3MSEjQ7NJP9AZ4yw/
 AAMFBACv3/ZxNdO78IPVJ1kQsfGUnwfpiw9syDqK+CMA6FyTCI2VUc6kY0Wc23Qv
 uoGv8ROk75pa2MJxEH/GQJNSZerJCSzLqdCyEW4tuxxJPQ7celSZ7PL5QutBzytL
 4rUQ5bUlYQBFlCx6aOuG2+zQqiFbm1RqX7RYdOf3LnlRmkaTDIhJBBgRAgAJBQJA
 ux64AhsMAAoJEBypWmNWsMoIibYAn1x8xlAkuQC2ZlUID9ORxSIgEMyjAJ99nQWi
 rCVB/qZMKoL16f9mHKvJ4g==
 =OYqV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.330. David Thiel <lx@FreeBSD.org>

 pub   1024D/A887A9B4 2006-11-30 [expires: 2011-11-29]
       Key fingerprint = F08F 6A12 738F C9DF 51AC  8C62 1E30 7CBE A887 A9B4
 uid                  David Thiel <lx@FreeBSD.org>
 sub   2048g/B9BD92C5 2006-11-30 [expires: 2011-11-29]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEVueHgRBACBqHSbbyc8BoznmojkguHMrDQtqISv33b9tpIsNSHDgz4Wpoqs
 MRwMPZpStu/FwULPzRUkceoYFIkyRyBwyIqTAD3uq2nisPR23ffDKRe8Q44Y8ccz
 sAtc7zPz/XpoI+2tLVGBCZyk9UOuIK1HkrmEjJ8uG2/eqyuckjO39oA/3wCgorer
 I3uzG/mJG7V0hHaCEkhQVx8D/3/i9YwqVVf2kqfKEGUASik/PXDpoeHfC/v6GFik
 Ss47TSaiuMOCoxF92m9EcOSoYCHOmdkJ1l+AVAWCZvKHKDM6J20dRr1zNqvR37jf
 FlmbF5B/MhRcjaSvrOLnZsP1wlz5sRkdAOdHNN/J/mwqkaatkFwtf7XcFMheB2qi
 1XvRA/kBi8lvPw7/PGibDIZXBxUmWVHLCU0dtrwKjbHE1HIpMwgjbTFrvh0pjmXh
 +qjn9VTcduP50Lrd/J3bh6WSgdc16xT2zxSAg9G8nJctDSJVgOJiYFUfLBpPBeLS
 O5ZN3GHw3TyLnDV/NvaAfzp1GXaGUB4kEuIaiaxxNugT82R3OLQcRGF2aWQgVGhp
 ZWwgPGx4QEZyZWVCU0Qub3JnPohmBBMRAgAmBQJFbnh4AhsDBQkJZgGABgsJCAcD
 AgQVAggDBBYCAwECHgECF4AACgkQHjB8vqiHqbTvNQCghqU1WwfsIQgI4bQn94M7
 z3PY/ZYAnRPT7soJ0GrlKAMRplxFoRWH1C1TuQINBEVueIUQCAC2nNYNyuKG/uCP
 l6/GUoumFRE8tcbH1jW5yrFbi8ahcoi71iCQ6Ozdx+XM/qIu13/iEJmTOvoVyOFf
 0pn0vVjgJ6yWek2oZmqh9Loj0WX2bRvV2uemOfvNwqUvDLCvbdftHgQAHOff5Tij
 GJxEBzDylhkAlF7MlZbCejiIJ7Of9fMC066Yi5M1lg5wAX1gPG27PiXJLMjcLI1B
 BsaIEtJsInd+UWsgjUE4tq1xoFhCeDZZWHCAyc7XyI7cy9FFQIII7SWkZ8TkZwKO
 T4UYyIHKtRFtgrMTkcXAc/Eul0LEo2z2e4L/G+8vF7q9LicIyv3/BF62fgx3iCKe
 HkJRWueDAAMFB/4lX+vF95ESlWuZ6DH1orSDKMzWlaJfl8ImE8nCT+QN/3ZauO7Y
 4kQ11jy2Q+vURzltl5r1uMgAheBR//qDp4OTlqxqSyYFx49iysd3rjP0vnc8WGD9
 BpGobsbcgw9axW6z278IZzJ7aroYBaceOHkEM6nNboZ1aKCn7jYqxFyzNUuJqqEY
 0vxx82C2wHIPb+b9k5LCz+kMrq8fGDPERYYcFFKHMuKZ9oyide/8hQ83KadXbvJB
 /GAqx+prMs8axuAMoGgksMRV7Er+eRZNqYyeCr31j+Oh4qpUbe1q3UPzkoUg9OMI
 qJXvBn5S1M2B8epkggu4y6HDsbVXqgT+NCaWiE8EGBECAA8FAkVueIUCGwwFCQlm
 AYAACgkQHjB8vqiHqbS5dACfWGE7OYOJs3lJUh0fHYJEYGfcOKMAn3Spx9LXSIcR
 mVETDDKHRmZTSiZX
 =iAPM
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.331. Fabien Thomas <fabient@FreeBSD.org>

 pub   1024D/07745930 2009-03-16
       Key fingerprint = D8AC EFA2 2FBD 7788 9628  4E8D 3F35 3B88 0774 5930
 uid                  Fabien Thomas <fabient@FreeBSD.org>
 sub   2048g/BC173395 2009-03-16

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEm+vTYRBAC03EXAZTDbUh/ShE+8WHHaB98hrIyAlHsMBRpWdouqNVbvEWBQ
 08to2fDMF8zpWY7GB6U1w8bH274bWjIFk9KkK9fLbfoKnwQOWBEB1IFOei/G/4Ro
 xfufEQUOWGjAcVlZp+/crXEJQEljWe4OOjh2Seruxo86qWmm6Pp8LkmPvwCg5+t8
 iQL/1Ud2c8fyLAS+AARuAhsD/R6MSZtQSselAtbGB5S01reSKO4enb7yFdU7Pcbp
 iBAqgE0khMZqcQFeOWyAiTFTqyt4t076R1s0G9uBoTCI5/sDslVvyaglnGVrL/Ej
 6WEyBEHXFHOS+pf7Aofke0wHyQhl9YrN22cEFEKWNDMCu2T+K0mP1AVKtnbLqwVG
 clIuA/9+qeScAK7n1Nu33c4WTkbhxdpxqcQGuUti+vHLrSy+wpZgEP4e3A1AurRs
 JXUGTuqT0g8wxpCMEassWuoOphrNUz3Y3ckspvo3PLbht8iWhkAS+YjvTgBPu+at
 rxqS4vuog8z12Gl5C69oUihXozh0c+9WNQUahsy2RM4ldFu3qbQjRmFiaWVuIFRo
 b21hcyA8ZmFiaWVudEBGcmVlQlNELm9yZz6IYAQTEQIAIAUCSb69NgIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJED81O4gHdFkwWz4An1Jps5d16oHpy7qh7jro
 87IPMczmAJ0f4rYdOnxuFuRDnBLwVbdb1gLQcbkCDQRJvr02EAgAlrdKSnI726B0
 hGobE1BE7jwjS+u0ozmeTh1JLZH1rKNJd/LszO7ubB6X0VGA5ustPYVb1eVoSn6L
 LkvbspsdvNitklU8Ys4FF0dI9+AvrT4u84f8AjKKSTMHoTu6vv07Vm0qEdt2ZTim
 YTwG0OKuRbwCDNaMNzshkncWxWNd/KgrP9NlfdVJ/3NxlEl/GUm6v4bw1CM3F+n8
 DanJa1jKPk0krg0bdZc90flknwaH1rQckFrxICLa/9MnV8HjZEiE/h6M4Ay3Okb8
 zQnYywHqklRfvi2nUm85AZ+fJ1X06QCJD+Idg+/Tgk2SZ3oG+yOBS5GASiYiY5Bu
 3fUtBVc3CwADBQf+NFw7Lw9mLYqd7E8VFr81U6JH4WU2sG7YEqbcZ95jqiaOby99
 jaSZ0FKPGvm2V3VpgvXchzf7noqNMWUXbQadg5U/iJnRRhdhnVUbMq/T/mx5u9RL
 jH8Bp3zF5hElGpa/rPQ0TJSI9lltUUHD4c59FbgEXqmG69sTNcXBeH+w1LBoqmyS
 VQvLsPKan6FKfFDzvvuOxdP2SFor36zu7ecEuDz+teETk5ixRiu5wpEq7geqgZfW
 rgO/2HN5OgHJCIGvQfttUwzrDLw+RHiy5wM2f+S8wSi1bka3ggE39KPODMHQR6z8
 zunYn+Xjw+jL3zrDu/FAa58nbaFRuuFEqG/V5YhJBBgRAgAJBQJJvr02AhsMAAoJ
 ED81O4gHdFkwb+AAoKtrw8aIkc31k+gGotiqv2Z+v6ZoAKDKsv5LDbNe2fncnihP
 0wGrqiKLdg==
 =HImo
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.332. Thierry Thomas <thierry@FreeBSD.org>

 pub   1024D/C71405A2 1997-10-11
       Key fingerprint = 3BB8 F358 C2F1 776C 65C9  AE51 73DE 698C C714 05A2
 uid                  Thierry Thomas <thierry@pompo.net>
 uid                  Thierry Thomas <tthomas@mail.dotcom.fr>
 uid                  Thierry Thomas (FreeBSD committer) <thierry@FreeBSD.org>
 sub   1024R/C5529925 2003-11-26
 sub   2048g/05CF3992 2008-02-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 oMybWISax+SEH2PZ7dgbNw9pgQub
 =oY1+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.333. Andrew Thompson <thompsa@FreeBSD.org>

 pub   1024D/BC6B839B 2005-05-05
       Key fingerprint = DE74 3F49 B97C A170 C8F1  8423 CAB6 9D57 BC6B 839B
 uid                  Andrew Thompson <thompsa@freebsd.org>
 uid                  Andrew Thompson <andy@fud.org.nz>
 sub   2048g/92E370FB 2005-05-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEJ5esIRBACGrMoYYIu2yCvXUOUgySagPjKetJ5zKOCFDa/Gl65tFtCcc3YR
 IjSDCvKuxcuS/qPo87pNP1sHPT0gVhMr+zcTrj8rgLWfC+CTzV3FPTdIA7LhVwer
 +evZ1jSHo/MY+GHTYBiDj/GiDkk8zBk6Sppo0OdzqZ0O8IW6tvh9n7RNZwCgrPYX
 rzBYHlAZxmZfQTDhgi8rPPcD/jH740waoG4l564X9hfkHDbxe2mrwKrcxfUbNi0h
 yIOTyl3glTULTno/xG6zxh4qG/COxIWhjC3Nkwllq+VzWqzYFoPIV4E/nvPNrLLY
 5a4/19ANLLkrw2kiLxNKLPu+SwnAF6cLdnbpPrGZSGOg/DhquXulAs8foTxv0SVN
 F5dAA/9O9GFOk9IcZ6D77A7Unysoxoa3WwqNHikJTo+bHvENJJw6BM1e93keLXbo
 bljw02y2cBXMz+cwd0S3ysj2tEPvEWpUJCVbCk7bB565R1TBb8SJB08MQ7PuOzbh
 PCCc9nB2TditjUTuL1yTrOW4qki1fHMA8ySNuYBiw/iUOkHgbbQhQW5kcmV3IFRo
 b21wc29uIDxhbmR5QGZ1ZC5vcmcubno+iF4EExECAB4FAkJ5esICGwMGCwkIBwMC
 AxUCAwMWAgECHgECF4AACgkQyradV7xrg5vQjACfboFkm4m9zZmor2J1+T5IknZ2
 z2EAnjX7sCxeTxGAUp0gv1+ijFir8Ju4tCVBbmRyZXcgVGhvbXBzb24gPHRob21w
 c2FAZnJlZWJzZC5vcmc+iF4EExECAB4FAkKUyikCGwMGCwkIBwMCAxUCAwMWAgEC
 HgECF4AACgkQyradV7xrg5tJswCdHh+UXADhzk4yJKgLuJlLYsSCK4YAn26SPktp
 Q2fQpBC3mGRRUYVRowhZuQINBEJ5eu8QCADgBVHTfrvthg1lDFvuZVlSgZueFEuq
 dBn0tyJULht4MyHAYzY1fBkKtRPxp/c+sGKzd/nXZ+zqQIJRYtrAviGAi9CyHTiI
 URcpMACCvofuRoMJ8djl35UzioL8O+icL2aoSq1w0MBzzkwTDcmaiceWVIC/RZka
 U0/irf31HSzAxGYO1wXtZuYp6BrEwcRezDZQUkO/riGKT9+UUppnTFVBbyelvVjt
 D9iyeRnL3GEOH0IvXbPRo400EwOHs4ieOZhNO4xyzj2qexMcbFq2nUis/qctukth
 lynv0mYVstLgS+GQiX8+VsbmK1QkTfKTY2ufTQDPJTcAa7Kneb+luDYzAAMFB/wP
 UyXix1pw1+qSJS6m6T7m6wmPj93/BoB+sadJvmjdaGcE5yKtCLdQYHZyI8Pvl3aA
 uktn+k/IxqSwLgJCSHv9CQ0AwN+kuIPHyy+hsJk1w5C8Qd4q8sYWecyt+aycYz7X
 Op9EB2rpKgg5E+RHFsuyx/X2dI4/n9XsF0xTDXmvBYHLw1E22rliiS9WlJ1C8UHn
 gjVZ8nqd4bI9HcwQMadtjXj0EcyarnJnrqLkJopzmLSJfOtnQvXyaTzwfS7fyQYs
 lnj+k/jJFULvgolWLmmfx149+3ou9c6c9KItAE8kfl7dSaEwOo4oE9cKluzhFHeC
 ezponq9OPdSpXUwBXjJgiEkEGBECAAkFAkJ5eu8CGwwACgkQyradV7xrg5szjQCf
 WQNYMndCd/TFxFqNF8k6Nu45/lIAn3oxSJ0Gc09OwQB4oiL6kHscyL/z
 =SFfV
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.334. Florent Thoumie <flz@FreeBSD.org>

 pub   1024D/5147DCF4 2004-12-04
       Key fingerprint = D203 AF5F F31A 63E2 BFD5  742B 3311 246D 5147 DCF4
 uid                  Florent Thoumie (FreeBSD committer address) <flz@FreeBSD.org>
 uid                  Florent Thoumie (flz) <florent@thoumie.net>
 uid                  Florent Thoumie (flz) <flz@xbsd.org>
 uid                  [jpeg image of size 1796]
 sub   2048g/15D930B9 2004-12-04

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEGyCSARBACWd64iJ+56C42einT4AIwy9qon61Lx+LO4BOMgeaQTGy9/fKq0
 XqQmPddhp9awRtm0+QoeZQ00q2qyY6ufmSZJCr9iQg2a1b/fG/UKZSIKBguDuCCk
 O6acsAd3H0fmZRu8jAD+pMsJb9gO5T6YLIHK9p8uVPG0lRKzulTXm5zsEwCgkoi9
 h+S/dIPXfX94thtJgVcUeLEEAJK9ZO2KFfGx+YRKDpbj7ocGgjqMlhkDFw13Lycq
 jopPipNwpey4ZKjJa2w2fmIbcqpUZW3EH1Ld8KBOt1bhGlI92uqvrssalNH82PGL
 cbiuvYMHXOfE05tOWD2JgxJE5tY0KtED4SDaF77RAcy4z9nFt4og4YknB/seOQZ/
 5oSKA/980pHAvnm3TFK7jQN+AIckWxOS3mXxvwHmvM/MzQEVUrFAPp0C/aCh4JJF
 7Tvy54cRKEUJQpXuTeyBT0pMU0ataaESMfk4hM/WDhvlV0AXebah44uJfBAcHwJt
 f/d3c+1I5eRkWuN+ey+6FfBCooW4KvqVCnrWC/Kk16VqAyn9UrQrRmxvcmVudCBU
 aG91bWllIChmbHopIDxmbG9yZW50QHRob3VtaWUubmV0PoheBBMRAgAeBQJBsgpP
 AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEDMRJG1RR9z0Y7sAmwT9GkO3Wcrl
 y9KcPtsQV4x6dvJhAJ0cGtclPmdOM34jMC7U5NQol2bV/rQkRmxvcmVudCBUaG91
 bWllIChmbHopIDxmbHpAeGJzZC5vcmc+iF4EExECAB4FAkGyCSACGwMGCwkIBwMC
 AxUCAwMWAgECHgECF4AACgkQMxEkbVFH3PQ5igCgiRkJPRjrvitfZOrvLhx+oScK
 3moAnifC/FHLFLr7hG/NlgLbF2yjN7Fv0cZXxlUBEAABAQAAAAAAAAAAAAAAAP/Y
 /+AAEEpGSUYAAQEAAAEAAQAA//4AbwoKQ1JFQVRPUjogWFYgVmVyc2lvbiAzLjEw
 YSBSZXY6IDEyLzI5Lzk0IChqcC1leHRlbnNpb24gNS4zLjMgKyBQTkcgcGF0Y2gg
 MS4yZCkgIFF1YWxpdHkgPSA3NSwgU21vb3RoaW5nID0gMAr/2wBDAAgGBgcGBQgH
 BwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5
 PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIy
 MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB
 /8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF
 BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY
 GRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqD
 hIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW
 19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAEC
 AwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMi
 MoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
 U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaan
 qKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6
 /9oADAMBAAIRAxEAPwD3Fic02nkAmmleagsSiikJ496AAnsOtN3Y7ivNfHnxL/sb
 dY6KFmuwcPcHlIiDggf3m/T8a8b1DxL4h1KYtdaheyZ6BpTgfQDgflTsGp9W5z1o
 zivlTT/E/iDS5EaDVL2IKwOwTttOD3XofxFe1+BviNB4hCWGokR6l/CyKQswx/46
 evH5Z6UWA9CDetOqPqKkpANY9qRetOIzTQMGgCbuaKO5ooARq4z4ja3Jpegra28p
 juL4mIMOyfx49DggZ7ZJ7V2bV538Qrb7brWgwAH70mT+KZ/lQJnPaV4Ksrq1iuNR
 V5ZnAJTdgKOw4rbTwdoaqQunoAePvsf61qoViVRwAOBVtCPUUyTl5/BHh90I+wfj
 5jf41y+reC4tMzf6W7L5RD7CfTuD7V6XK2AefyrKv4i9tIigncCOKAub3gvWJtb8
 MwXV04e4BaN3wBuIJwSBxnBXPvXSVwHwwR49Kv42PCXRGMYwdozXfg0ikFJjnNLQ
 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
 YhEx5U7AKdGZ55po
 =hxwJ
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.335. Yar Tikhiy <yar@FreeBSD.org>

 pub   1024D/EA04CF5A 2008-08-31
       Key fingerprint = C063 6788 AFF2 A62F 06B7  516D 200F 06AF EA04 CF5A
 uid                  Yar Tikhiy <yar@freebsd.org>
 sub   2048g/20443F06 2008-08-31

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEi6nDMRBADDmOkKUcTtDy4VHqTIJfILJsWmfnYBNzEzqQiRTO9qWDpmt9ah
 8lb2/MYT45AMdpUQu3NagY9oZq8bkUsUZ527gDHYOIclgwVulGEcDuwGSJrUi7mV
 5SrEWqi9FspzRgaEwjVSB1XDXqb60J7UHXzyxcUb//f5Qibxco2k9fqzxwCgtZF9
 XBidVm+Vsj/cKoJ1FXm9NWsD/RgYQzE4WUlZ3wVw+EX4+kIgHgPh5vfx2KdK4R1u
 KdWLOnamegQRQG1pe/4nAHH8WTZOkoL+eN0Vgd4Y/2/vrohQWEknqz5f4uxpOXgA
 cWp9B4Dfk4i280vNvWWoCclDTvk5Ukm305YaR4sSVHpSdwu8s+KBIZ9ia5LXpZIQ
 iKVvBACT6K15alAx71Shv8XRGiU8aYiRHq2/vBzDOPsEwomM1mIeCrJddZbangab
 GtbyizFtz4ZG2aA7ctOFVDnfbU9PHfXD1wywkjz+LBHAr32z5QU1irSUJSRGP8vr
 pOvNsrLaSS/L4Ux+kjfrJ1o/sX7isr9izsxuob2RKULBZMFx+rQcWWFyIFRpa2hp
 eSA8eWFyQGZyZWVic2Qub3JnPohgBBMRAgAgBQJIupwzAhsDBgsJCAcDAgQVAggD
 BBYCAwECHgECF4AACgkQIA8Gr+oEz1omLwCgkAutx32AF5bws/pj7R+zSWy6bcIA
 oLC9q/1fLyeiFMyurmx92vT9d9W9uQINBEi6nDMQCACnALycl1uAKREjUAYiWjO1
 CjLEmjFXNM4gryW+gm2ZMk0kWCFzdCSMTyk0pkMV33wa2H+BOMRk5XhwY3AdPnmN
 mwYwNnptRxeIrHc4J8RuQkI4apKwZ8Z62iA+c56LZCYluJGzNCrQa65LgW70fDuP
 Z6BeBCvF0pSAmUCaivezhJPQAuiZg3B2Nf2Ty7ZsX2DwuyvJVwx5mGudQ+b9YKS6
 A+nkBke0AE7Q/CS04LpCewlK+acNka3b2JlAtDpOLSvx5bzzFsZcyMmhJYF8Am2C
 4yv0F6aD4cTdH7mSvFRND9pkDtpUYDuPpJt+RgSSelXEp+nksvwTIqX3tM+vn7qL
 AAMFB/wO3l7LM8z3QaQB/eMZV4U+14wJLsWvVU1vAAR0GG5GqefSgDQOvcw1MmSm
 YsX50lGKBdtpaq6UqXcEVKJtyg84HySwMBNRGFeibiiTO2ldaWaGS4c9e0eVu7vY
 Pch+DA2rrCNuE+lb2bWlDfkDsrK/doOiYVu0XiIQK3WFF8bTXRW+9T2OWyCjAcTl
 Yml4eKqedob/PWApJPMvMzLpg1h+VfV1JPcG1xmeoT+mtRSDME14GZwoF8JLfci8
 Gnp4odmfgx5f7dTU60DPbpps94idR7dkFrTeWervPeXvFWb4+hSENb6fgJKoBkt+
 SsC+h7OmCBsWu3GCEVQ1XhB6jezfiEkEGBECAAkFAki6nDMCGwwACgkQIA8Gr+oE
 z1qM4wCfc6TUkmIxEfS6j6S358z+qkLadQ0AoK6vPNvtYK734zGuUg7w0Lm4KmHY
 =xzp4
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.336. Jilles Tjoelker <jilles@FreeBSD.org>

 pub   4096R/D5AE6220 2011-07-02
       Key fingerprint = 4AF5 F1CC BDD7 700B F005  79A4 A2C4 C4D4 D5AE 6220
 uid                  Jilles Tjoelker <jilles@stack.nl>
 uid                  Jilles Tjoelker <tjoelker@zonnet.nl>
 uid                  Jilles Tjoelker (FreeBSD) <jilles@FreeBSD.org>
 sub   4096R/14CB5775 2011-07-02

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =sGf8
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.337. Ganbold Tsagaankhuu <ganbold@FreeBSD.org>

 pub   1024D/78F6425E 2008-02-26 [expires: 2013-02-24]
       Key fingerprint = 9B8E DC41 D3F4 F7FC D8EA  417C D4F7 2AEF 78F6 425E
 uid                  Ganbold <ganbold@freebsd.org>
 sub   2048g/716FCBF9 2008-02-26 [expires: 2013-02-24]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEfEDpoRBACh+3G72OFXvEjpBhfsiLhudF39C+E4zZ47xuWC9oAV/8y4jJdD
 70TjTBYydonraDCxhx+GdjfCzaN3PYw5fOMTric9xi3g8s11oKtzHG5NfgHfMIMV
 R1+7D2uXzgl/10JeYIz8DriaUBdHSKOhge5eNyXy6l1z1dPvnkP+/sQ0QwCgnaaU
 gIVvEj7qRiemJG0WRtWPU5sEAII5NYtidbx5SKM7/JzRtRI/BG497VVrcNVKbEZF
 jH5WklnTTQ1v9TnQfP7iksTZ6Ik6k86/opOagqtCRZ/Pdm9ldU/dZNFoA2f/4iER
 Od4Hhnm4rQ/rSUwXl6aZfE/26iBmH4/KkfkOX/mnRHAhs4EttXl1Nt7ew1BYwIAu
 +1eFA/40VV0lL93ab5aqvZ0fX6MmbXWjZXQ4q7YscqKclvGJK/BL4C7GTHk5Sn38
 uv+b9l39YR5yuZt2mByWyNCBBu8nXQ/vSjQ2V6wzFizAVZv3b6k13aGj4/ZUZiV3
 Q1WuU6qHvafvl0BJJBw4ywOC5gSU9eR2roGQb37fvcwH7nd747QdR2FuYm9sZCA8
 Z2FuYm9sZEBmcmVlYnNkLm9yZz6IZgQTEQIAJgUCR8QOmgIbIwUJCWYBgAYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJENT3Ku949kJe/EAAoIFqc0wekId4QcEDk35R
 OBMT0mpPAJsE2LsdqX17BXJLuVfuQuxIR9RLP7kCDQRHxA6aEAgA4w40fvHBJOqJ
 1RtowjBEX8uDEOwH2LlnKK7S5P5Z0PRM4/p+a4/P7KKRYAVehaBPc56TW4eqIXWE
 sjGNoJd8SIS+M7LIhlgBe0E0qKO1PXq7Alr5QMSR9aSS3z8NPWdKHU6+bJRomM8h
 1v8l0dBfFdYsrP11FXoAtRhkRnxB5E+A3rMJ35Uz5WPs/omz422M6SNziVn9lTXT
 N0Xk/pg3KHIVjosIakfbV25ZbrX0XYWNvh3zEhGyvbV5A4QuEXg4HSjYd43l5p+z
 FreZCrQh7IN4Oj1SfIbWzsoIygn9IacXQW/iASvpVcqP3yozcL8oi3VNSZtWY4fg
 jZZTIEJ04wADBggAoha5dSArTS2Tq04ArO/Mew4ZSZyOYg8Zay2TURrx1y2BU6on
 F56WwV2/C1qPzCOGDeVnYiXKKHnc9bNIefzKTMsJdIihw9N1CfD9h8MZ23GbhKcg
 VbiRC6t1b2BR1C7H52rPs8mXtywSGiI9pjzl8bA+ARCsvWHKe8R8iwL+jw+IVF6R
 94xcbHtK9EKOD7U2bVhiRb/uQiY6df6+VjL9lLoJMSLSWXWMtk3KJoFt6peB/XVu
 NIvbdxcU+xpgqz/SBPUs3MIgt9dG29UBsez56l0hgDAU7lcR0EIpCeBA4MskhInp
 AEJ38BJ6zL5MNmOOXWki2+FT4PbLjndwqxP0Y4hPBBgRAgAPBQJHxA6aAhsMBQkJ
 ZgGAAAoJENT3Ku949kJeYScAnAxcM/ZxE+XdjWrIazFTBJITMR0LAKCdaevdwU2m
 HFVwUGCsG1R5u7ctUQ==
 =rUEt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.338. Michael Tuexen <tuexen@FreeBSD.org>

 pub   1024D/04EEDABE 2009-06-08
       Key fingerprint = 493A CCB8 60E6 5510 A01D  360E 8497 B854 04EE DABE
 uid                  Michael Tuexen <tuexen@FreeBSD.org>
 sub   2048g/F653AA03 2009-06-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEos/K0RBACA1Ck3ZLIpeSiYRNYG8RXCxbvHFOsI56DCwbRm6VXwjbbH32wv
 FZTxIR+A6LQQLCLDEvfklgI06Ksi4uWfAoLRB/CoiX7crEZGvYDc4kYSVjumjORh
 OzDtUiechd17/gyo4j+u1PDtw/5XXpSaTIRJO3g/UobVpUPjl4dMz4Ks/wCg25PC
 MPQI2rqriwffFak4PZdJ/JED/RSqsLqjsBOpk0hrY22VQrDhCHrWsVopq5hcqElw
 W1iuLMBhGK/Lursari5M8pSmjJVeWMEQwDqfF64MctbbfmOfMaRRggX2meVdMq3c
 o7bAWWEfstFB5WlUkCg6TIQjLV/4QbATfX2YkIcwuxiwC+CMq2trAJ/X8A6VdaOY
 tkHaA/4iyk4gCbvCxB1bhDp2HiDZfAWm5OlkHefzWeMIY7O4k5+vpaS69ui1xgYO
 WhXKB6RpDXcJzvZdBQqrXqFXdfBgOwhbUj1uOgkBCMpC7EXT07sxzvrnaW/RR51f
 KTeplrRMX0tXMij7nFh/WzJFSfFK+0W6+yaRVzXa42ds+VARd7QjTWljaGFlbCBU
 dWV4ZW4gPHR1ZXhlbkBGcmVlQlNELm9yZz6IYAQTEQIAIAUCSiz8rQIbAwYLCQgH
 AwIEFQIIAwQWAgMBAh4BAheAAAoJEISXuFQE7tq+FHAAn36ou5m91emjHT6ziIWw
 80iHtiyiAJ9RL3W/bShdgmG0U3UKDnPrSwebdLkCDQRKLPytEAgApnToBctsJKyI
 YBJp2wusPzd+8H1Ab0VCcL4pcKWzCIy7dTJSknLpJV7c6ts82+pZBKUMp1XHfnsT
 Q8YwoaIUOQjkBqqlkrxqkexidwj3VVZfUvHfXvU8Hw4JM862MtYa6ZHRoz+ZSVQi
 x8idPMFhs+zD9Pb0ct6YsINeKiEGTGnanm3XJIIeNg1bOlrTjDiWB6KnlMmmeZ/R
 o4vGdnO7wsP03VtJBUnPNaQ8luAs4SHBTmC+tXNhBYwn7Kh5PGR1TVH2ROpPOYTS
 StOktseR6iMJ//6mJEBOt3cypOx2d7hbXfy/LOijg5Ku4FkUUmJrM4yDMgN/2bPw
 RGw8KgOvFwAFEQgAlw5VA4FwTgo/2+pDtQxtp96WuvQxw1IL1fPPNwGO7b2TVlj5
 KTqvsqx5MP9jLCTPi93KKAFzwFfzXxOD+Isd6AxeuotlxLOUXeCdcpeyYHepURYT
 7bjYg0DaaoqZopm0L+8c+hvOLfPaJLWVbUCEy219SeCA3xtGvRtFY1JXIFk9sbgZ
 y23S592sG/5CAantKyI+SHzZim2mj4iRiI9HlGDLpGn6QAyz5HX6a+TXdHijg/xK
 3T0xfBLn/xh5tSlBdzKR7cXSmzbtP9HL5rewVgVAqqg/Mzc93nD+gY67bMwAeyHq
 u2OCE6YkLNJz9kSqsSygcMDI8vKoPU8cqDvyyohJBBgRAgAJBQJKLPytAhsMAAoJ
 EISXuFQE7tq+/EgAoLrfM3GP7IAcTezTbs+BjUQcoWHhAJ9sJmO1S8JcXD8f9G2J
 AOE2UIkbvg==
 =adk0
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.339. Andrew Turner <andrew@FreeBSD.org>

 pub   2048R/31B31614 2010-07-01
       Key fingerprint = 08AC 2C57 F14F FDD1 2232  B5CD AA16 EFB8 31B3 1614
 uid                  Andrew Turner <andrew@freebsd.org>
 uid                  Andrew Turner <andrew@fubar.geek.nz>
 sub   2048R/9ACBF138 2010-07-01

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 BuY=
 =WLSs
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.340. Hajimu UMEMOTO <ume@FreeBSD.org>

 pub   1024D/BF9071FE 2005-03-17
       Key fingerprint = 1F00 0B9E 2164 70FC 6DC5  BF5F 04E9 F086 BF90 71FE
 uid                  Hajimu UMEMOTO <ume@mahoroba.org>
 uid                  Hajimu UMEMOTO <ume@FreeBSD.org>
 uid                  Hajimu UMEMOTO <ume@jp.FreeBSD.org>
 sub   2048g/748DB3B0 2005-03-17

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEI5K/4RBAD0LiHx/Tl4UyaX8yFUGjX1+PvATTJloNZGXl+jagSUQxCOp6Hv
 emDinSPskld/viupoAxjRImlkP905Y0Q6iDMne4s5fM/75lpeG9ztKRSgDQrQLTL
 HhXPXKNMtDV91yDqFEkwptS+0MaTMY0KrlR29RtGnpjoa347TU2BzU6TcwCgw+SL
 YdOWeSGs/7LKdUIyYlrldjkEAMqIQwnDl14vZBe9EOCrjSA4gHv6g2IQP1TRCpBu
 +/Fpi2+xcj117xO++uqMMzoi3aWwsqarao0/VSJ7ZD81by1H56Hnsp1d0r67neJy
 PKsyh2JfSQww9cxVkQjuZAjZNN1SLzDeA6xtSZrcmim+f0GIxlz3JFS9za/scs8x
 mGqzBADRF2My4V5HEMeScREj2hoquRv/uG727Nw+jftwiE+7TB7+JUwwyakAStNv
 x4+YEFAVSpKxyWgOeMqOWYd9bOSwJk40t9y1Gk6TTgV2C6sYwGHMSNOWYZbhYX7c
 84cxm2PtQFIq7g4Q30IkfAhYFzEwKmPJ8eV1zO0uNIhE+SO9QbQgSGFqaW11IFVN
 RU1PVE8gPHVtZUBGcmVlQlNELm9yZz6IXgQTEQIAHgIbAwYLCQgHAwIDFQIDAxYC
 AQIeAQIXgAUCQjxiFQAKCRAE6fCGv5Bx/qe3AJ99w7Ipfxs4CF3/+eCf53HO3FuI
 +wCdF/xyvVjjNdAYXCMxCHtUF85bD++0IUhhamltdSBVTUVNT1RPIDx1bWVAbWFo
 b3JvYmEub3JnPohhBBMRAgAhAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheABQJCPGIY
 AhkBAAoJEATp8Ia/kHH+3c4An3RGo6JduyjPTZFh0eCBezNgzxdnAJsGRRE6ERs8
 nyORm56bvSgRTw9VKLQjSGFqaW11IFVNRU1PVE8gPHVtZUBqcC5GcmVlQlNELm9y
 Zz6IXgQTEQIAHgUCQjxgkwIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAE6fCG
 v5Bx/iTtAKC+8mS7jAYMz3QsCe4dJeIPaJcFGQCcDQITgNpJcUmBZ5u21Jotvp1X
 T/y5Ag0EQjksbhAIAP1+LeYSauTBi/ST3343W0lkqYr6HgZMNS7RtoCGFWcjfiYU
 99ybRgr0XwH5yJrn6JASp27f/ve5cwt/7ERLZ7flcfFi53AekeuRjFDkThLx2N4I
 s29ZQZsYubdOKHapnMflnFE3PQfkB7Og1MoFxkp0kOAEP/rOyuLMc9CbUaWczxWo
 FS8bmZDJ5ZNzAQ2vQFu5ExxomOENApy3ZCm/Z6MU5YJ2trsP3dkYStyG+1pT4NsU
 R4+TIbQfFzwZjowiC5w8rM4FIV4FMQ+3YvIEVkT+M/93hLGakh5tQENsitj7JsrC
 VA2mkomV4Hnjj94YCxUiPu59kHgiKGgXbdnceX8AAwUIALF64I+guwCaHbjoRPVg
 HWRuU2NzuKN93xii+xyIpImf+S30aTbFy0D6ZTQRSCs34oVNMSkUzySVcVn9DTG5
 +KVCHCOnGMH/Iv3dRWlHZ3HX6Gvr/cRyhDfWYDEec7KCDGT7Q87UbmTZ9cmOh+/h
 M4ND0NoYU6/EaaOqyRH4D8/LAeg0YsEpilClYWhlXT7VS7noOBf1JuB9Q0nOGycR
 DstkHWJf5om82lH5FzAuh9kEAduv8JdBdsMh3Zh4N80tCV7OyBQFWHV0UgjARSLY
 msEuelzzaFcfR2vIrmpYIElr6JzHGBiux0XK3Qk98kexGRdbrDFpaxbrsjs1/8m9
 MVOISQQYEQIACQUCQjksbgIbDAAKCRAE6fCGv5Bx/mRWAKCAQQ67iDvQq08n+bHa
 QkK3EDOmqACfZmJe9AepCkPAUkvp0ketnOPBXAE=
 =QZ8N
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.341. Stephan Uphoff <ups@FreeBSD.org>

 pub  2048R/D684B04A 2004-10-06 Stephan Uphoff <ups@freebsd.org>
      Key fingerprint = B5D2 04AE CA8F 7055 7474  3C85 F908 7F55 D684 B04A
 uid                            Stephan Uphoff <ups@tree.com>
 sub  2048R/A15F921B 2004-10-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =93PR
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.342. Jacques Vidrine <nectar@FreeBSD.org>

 pub  2048R/33C1627B 2001-07-05 Jacques A. Vidrine <nectar@celabo.org>
      Key fingerprint = CB CE 7D A0 6E 01 DC 61  E5 91 0A BE 79 17 D3 82
 uid                            Jacques A. Vidrine <jvidrine@verio.net>
 uid                            Jacques A. Vidrine <n@nectar.com>
 uid                            Jacques A. Vidrine <jacques@vidrine.cc>
 uid                            Jacques A. Vidrine <nectar@FreeBSD.org>
 uid                            Jacques A. Vidrine <n@nectar.cc>

 pub  1024D/1606DB95 2001-07-05 Jacques A. Vidrine <nectar@celabo.org>
      Key fingerprint = 46BC EA5B F70A CC81 5332  0832 8C32 8CFF 1606 DB95
 uid                            Jacques A. Vidrine <jvidrine@verio.net>
 uid                            Jacques A. Vidrine <n@nectar.com>
 uid                            Jacques A. Vidrine <jacques@vidrine.cc>
 uid                            Jacques A. Vidrine <nectar@FreeBSD.org>
 uid                            Jacques A. Vidrine <n@nectar.cc>
 sub  2048g/57EDEA6F 2001-07-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.1 (FreeBSD)

 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
 =lY5L
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.343. Alberto Villa <avilla@FreeBSD.org>

 pub   1024R/44350A8B 2010-01-24
       Key fingerprint = F740 CE4E EDDD DA9B 4A1B  1445 DF18 82EA 4435 0A8B
 uid                  Alberto Villa <avilla@FreeBSD.org>
 sub   1024R/F7C8254C 2010-01-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mI0ES1vM6gEEAMBJJFEzIesoeff/XaJ5baSLJwdZ87H26x51KPodOiCK4pvhSOvA
 1Cl+/moYBVOqhqzfNw2pX+EPWJpwRHToqZMba0rxALNhRaQgQAVk29V3bqsQhwBS
 yfwQirouhXGNaUGbdYh4ay0ZoyY0FUtKsj4GxhpWdHlKrjsHAliHM6U3ABEBAAG0
 IkFsYmVydG8gVmlsbGEgPGF2aWxsYUBGcmVlQlNELm9yZz6IuAQTAQIAIgUCS1vM
 6gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ3xiC6kQ1CoucYwP+N72o
 Hafp9Oj0004/rsgDKSLSfru89cusN7G7FyBYICjFQXJfwRAr3Mqo+4JwMVHPbQ6z
 ReRiMKN362M3e2cA5GMhtYqDTq7FSJzsWBUyfMhJmKOcP5rtQlm7sIt+XFGvOxRx
 6HXoduhiDmqmDUrxVxBYQTU5qGqkOXsIA/lITJ+4jQRLW8zqAQQA2HR/E+7JRr4r
 6WkpHb5WVe8w6ipuOpVRh9KjLOeDtxlCCuZ61asE6dVTYxhLrxhmzXcz7WQLJb++
 89DaQj5bSAFy3BfujeO+HUik9qB9Dv+t6eNh8SlPByxObyNx+NNNP6k5xiyx0cMC
 AMfUJbbZ91SN4gh+21yf2VqlS5uAlWUAEQEAAYifBBgBAgAJBQJLW8zqAhsMAAoJ
 EN8YgupENQqLLXUD/3qVTKnHAvQqu7EcdV4SEMbXtxHauN6tushMAbTiSI1tCz+3
 2nThTiXvLp4mQfwdH8uTQL+n3Yf3xZATAXe6Y/7Q+TvUp/Em3/5QOzdTEHirQDDe
 Cpks3VK9i/ud2nOl/TD1sy/5ad2aBKE2sAYgtILxAsdnxh4Cn4oBYc8Obg0N
 =UkFd
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.344. Nicola Vitale <nivit@FreeBSD.org>

 pub   1024D/F11699E5 2006-12-05
       Key fingerprint = 2C17 C591 2C6D 82BD F3DB  F1BF 8FC9 6763 F116 99E5
 uid                  Nicola Vitale (Public key for nivit@FreeBSD.org) <nivit@FreeBSD.org>
 sub   2048g/4C90805D 2006-12-05

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEV1n44RBADfkt4OUwHA7c8DbobkvhyXCRHC6w0NDQER6Q/uAE68nvEgPcdO
 dAvGXUpNNWFXbKEnIc7ANCm0V7F2VDfwANAzePY1wBfVM8UQBLuSV2WIAfs1beLl
 MZzO7sth2oeMuF7l7WwM31qwgRLTOOzXs7zG+m2uh1c1nMTKG9wgQ4rz8wCgmT5i
 oJ25GpzaM0kgX3HQWP/MkFMEAK5GUSesXqHc37fEnO4WVvdB5afc4RTDJzvniXBm
 nXkHin6uAWw4HSJOEOLPv8MtRZuIxOfznukjBpHnz19R0fEvWdRKzmDoc3Yn0BW+
 FdszOxY9Nt+LtY3/ZdcbgAtWu662/t3SvgWULgCQ7bvi0Nu75Zn3nui4j2uU5fNf
 6v4KA/9x8FXQ18BPO7EuYe5ewQwVaGWKvzrMmz8NsiZuRs4oxWXL1x0nSCumetKA
 03UHxGAQli+vuMNDcDXg5zpaGN7hIqS1N1fR7XEouvkgTDTUPsjjQUdmQ98lnEBf
 URB5D+qDq8nq7H9R/4rOmxKdiA8xmBzadnolJ69Iz9nyJ4mvb7RETmljb2xhIFZp
 dGFsZSAoUHVibGljIGtleSBmb3Igbml2aXRARnJlZUJTRC5vcmcpIDxuaXZpdEBG
 cmVlQlNELm9yZz6IXwQTEQIAIAUCRXWfjgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4B
 AheAAAoJEI/JZ2PxFpnlNbMAoJWh5Yg1lOayXo3b8seKn09ers2UAJQLxlE9lS9G
 qzU9FITOFNllI+duuQINBEV1n5MQCADqyPgr+kjhfCz/2N8y3FmWr4CSE0b1S7rH
 i7fy27u0QcNK3vN/l0Vbj6dsacfP9DC3+aGw3W8uY8LK8q72AIAwLh1aoYtJfzMs
 v1kqY4shMAANF55VgcAb7lyHpSymFraVZCai0nzNyccjJtSNQgC9s1BkXeUrRTS2
 su078DDYVgbXs1S14PkZOyrZ+0R4y4M6QKvD8Th46K+mZMaXdcn+wlIvOISFQppP
 1htkyCnHexg5L6PE/VsdobiCyZ2zNKd+d6GUillVuO2Qpkq1dlLTPtRgFMnpjhRi
 L0+a84b8rs6TE9g/ZLKNOmfmbGTTk3u4vQ7u6Mky6GCGO8W8WHW7AAMFCAC9NGWK
 RU0l0hfHY3kjLll9Ygcnt42nAj4ipmnzMp0jAPV2AgShnzDJLZ1KHmJcUfby4I6c
 HDKrI5lt6B8OD1hAWbHaAJ1Js1vfiwGDqisra5ZvkfJQMY1CDv1orXeM/ZnWzLSp
 +PqVXA30ei/NtngXFYlw+BJHnbB18eKw25jT6n72Ls0T9xZscwgseAmSKZsrb6M+
 N0tjZkkueWRbvrFum1i8Hf+VYhCgRkQFcTtEEo/Ulb6GRDXaFLPZzklfQMvjgWel
 yfWpv5Qg6knJFGbQyZrJ/jNBAi7aM8XAuNhhjC1oHVyNlIRM1V+1MybvoheREjMY
 qcdWjs5YCrg43SWAiEkEGBECAAkFAkV1n5MCGwwACgkQj8lnY/EWmeXXJQCfW3pc
 YuXRQYv5d2NC5AfgnvxmjnEAmgPFcYvU/gGprH9Hz/bvXp3KrT7M
 =NcNR
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.345. Ivan Voras <ivoras@FreeBSD.org>

 pub   1024D/569C05C8 2000-05-24
       Key fingerprint = AB9A A555 C47C B61D BF83  154C 95D9 C041 569C 05C8
 uid                  Ivan Voras <ivoras@fer.hr>
 uid                  Ivan Voras <ivan.voras@fer.hr>
 uid                  Ivan Voras <ivoras@geri.cc.fer.hr>
 uid                  [jpeg image of size 4567]
 uid                  Ivan Voras <ivoras@sharanet.org>
 uid                  Ivan Voras <ivoras@gmail.com>
 uid                  Ivan Voras <ivoras@yahoo.com>
 uid                  Ivan Voras <ivoras@freebsd.org>
 uid                  Ivan Voras <ivan.voras@zg.t-com.hr>
 sub   1536g/149FDD60 2000-05-24

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBDkrvE4RBADgl43F4E9yq9uGfw/sc7ulsKvz64g8Sj4XjtG2K1VoEzJ+eKZB
 rgaH//pbAH7ULpV89oVpvBbvVkIlM6WSrCOWydTlvFGZgRHL10nl9FxFyuX+yykJ
 Qw3I/zhpE7TbowDwEivNtBt3p+PE6xRCpvPA++BhMs3RADvDXSeq1a1LGQCg/wUn
 1cZgybe/i0KEgOLjSYIcfWcD/05bn0WkRXUq3evT7wYZ/zi+HEQsCUV/LOPY7Zom
 sDkKTuLKlNXx8xk4EcIb1LOqmcI8qct6CLEhGfa9ek0KrxpaFkR/1fj5zZWlLbxj
 UREeaVXt7ESlawmHTwVwRAmyMDAUulxDz7MgYcJjfi0RICHCsEeopgyo6Mm7z5SH
 MKqIA/0er6aLclMRbE8+AW+4TYFyYYmlc8ek7tz3KTCGrustE4ZJXSGt9pA5puiS
 +KvlWEm7XjG5H8xUJGQuhcv6L1sY0U+1LLFZOoU9l06Rbi5QaR/J7beRqKhitLIt
 5/43PpQZ3tmdHjvIRX1EfPV3M/QS/yB2xsiJu2nChutM0n6hB7QaSXZhbiBWb3Jh
 cyA8aXZvcmFzQGZlci5ocj6ISQQQEQIACQUCPBddlQIZAQAKCRCV2cBBVpwFyOnX
 AKDsmTv7Unk0LeLnzrNHKrM2Cd00RwCffqq2vBc8Okr6cu19JJRqcRLlC+uIRgQQ
 EQIABgUCRh9mWQAKCRBtO67R6hYNC70GAJ96UzOIyYn0HMCpE3IvUAKfmPXBjQCd
 FM1iFq5IKcHYW7Chf2RBy40NtZa0IUl2YW4gVm9yYXMgPGl2b3Jhc0BmbHkuY2Mu
 ZmVyLmhyPohJBBARAgAJBQI8F10WAhkAAAoJEJXZwEFWnAXIx+8AoJYexih6EYDs
 iVst13lTI61claABAJ0WRoRfejnHcgBDidpt3P86xOv5iYhJBDARAgAJBQJErs38
 Ah0AAAoJEJXZwEFWnAXI4FQAnjATnWkW6jqhS4B0q0Fyu/PSomVjAKDX3n5peLqe
 n7copp3k3fvNTD8AXbQeSXZhbiBWb3JhcyA8aXZhbi52b3Jhc0BmZXIuaHI+iEYE
 EBECAAYFAjsrwhwACgkQldnAQVacBcj8hACeOJt1Oqq6erPIEh9smx3Ri3TUHwUA
 nAxb1miM4siElBik0NbqaRJUqBtriEYEEBECAAYFAkYfZl0ACgkQbTuu0eoWDQsp
 VACgkQr2lvyRsMrLz9Kt2FS4MOgZpeoAn3B32Z1QNnkT81A39SS21I5i6b2ntCJJ
 dmFuIFZvcmFzIDxpdm9yYXNAZ2VyaS5jYy5mZXIuaHI+iEYEEBECAAYFAjsrwnoA
 CgkQldnAQVacBcjnYACeMY0ipykUA4WTTVYsjE8H89r85JkAoKwO6L6QUprO5qSB
 me6M6QldoV2RiEYEEBECAAYFAkYfZl0ACgkQbTuu0eoWDQvFKQCfbWH3vb6MRQx5
 lAxLQuUEDPt0EAYAn0UX3UduAYZMR/dAsXSVooSOWDP+0dEt/wAAEegBEAABAQAA
 AAAAAAAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAKBwcIBwYKCAgICwoK
 Cw4YEA4NDQ4dFRYRGCMfJSQiHyIhJis3LyYpNCkhIjBBMTQ5Oz4+PiUuRElDPEg3
 PT47/9sAQwEKCwsODQ4cEBAcOygiKDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7/8AAEQgAkAB4AwEiAAIRAQMRAf/EAB8A
 AAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAAB
 fQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn
 KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeI
 iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh
 4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYH
 CAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRC
 kaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZX
 WFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz
 tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwD
 AQACEQMRAD8Ara2MX591X+WK5mU41d2I6Kp4HoAK6jXRi9Unug/ma5i5BGpOf+mQ
 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
 =9LWk
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.346. Stefan Walter <stefan@FreeBSD.org>

 pub   3072R/12B9E0B3 2003-03-06
       Key fingerprint = 85D8 6A49 22C7 6CD9 B011  5D6A 5691 111B 12B9 E0B3
 uid                  Stefan Walter <stefan@freebsd.org>
 uid                  Stefan Walter <sw@gegenunendlich.de>
 sub   3072R/6D35457A 2003-03-06

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 Sjk9E6QR
 =iXXA
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.347. Kai Wang <kaiw@FreeBSD.org>

 pub   1024D/AEB910EB 2006-09-27
       Key fingerprint = 3534 10A3 F143 B760 EF3E  BEDF 8509 6A06 AEB9 10EB
 uid                  Kai Wang <kaiw@FreeBSD.org>
 uid                  Kai Wang <kaiw@student.chalmers.se>
 uid                  Kai Wang <kaiwang27@gmail.com>
 uid                  Kai Wang <kaiw27@gmail.com>
 sub   2048g/1D5AA4DD 2006-09-27

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 Hps0V71KXA==
 =v7/U
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.348. Adam Weinberger <adamw@FreeBSD.org>

 pub  1024D/42C743FD 2002-10-12 Adam Weinberger <adam@vectors.cx>
      Key fingerprint = A980 3F2E 80A8 9619 9D1C  82E8 A3C2 8CD9 42C7 43FD
 sub  1024g/15D67628 2002-10-12

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.0 (FreeBSD)

 mQGiBD2neE8RBADgkTfNUPbm3AVnVPn/Ds5lDO89yKowW3ULixWqJ6Mti+7sIQ6y
 A4v5/dlUODTH0sdL4Cl3q36pCOP13IIq7o14h4YOjMhdMhsv43678VYK0PvR70hK
 /PxqIRV3lQsP2g8LihKLpRy6sHleIXu1hRLbIBI6/iJTmFcENQfivyHpBwCg31J6
 6jew1OrTLlB76aWmmRJIlVkEAII7j0gAqV/zjR16sAsfiCSHSg9A8RGBmC67zUfK
 PxnrLiw0gqyrt77YnXvANGWDdIMHEZrcDBrb8ciSO8agBO2+/7mOVDVDU5I/SJRi
 rfJTQvFphcnOe7F3MaxdfA/vZE9woXq4JLXfnmcgUAey4iYB2QbV/+v1HBo6wys6
 qyDXBACMsXFWZbDNDwUZBxGVS66bLwpZ/UhWqkrAyvK/7M/HQjkFTUUX2fSTPnWh
 AkcA82asPxQFTdbd7BOs4JnXUY4m+wfP3pzGaCbgL6WYumRjvmvkmeyZtFD+2wxL
 nu/F3oO9PC2f4mGa6E928BLy2bRCV75L0OMmbR5Fd0Z+95k3kLQhQWRhbSBXZWlu
 YmVyZ2VyIDxhZGFtQHZlY3RvcnMuY3g+iFkEExECABkFAj2neE8ECwcDAgMVAgMD
 FgIBAh4BAheAAAoJEKPCjNlCx0P9I7UAmQGWPEjqlXfxptWgb5WKskfl+rkkAJwI
 OSvOdiBFM7/EBBgn9pUQ/6PVUrkBDQQ9p3haEAQAzc17FQj9ePY4tW2+nWiQzj8I
 GVG+8fsVwFhDb4hFcpJxPiR3/J07tU4iyKek/qUiOQdW/dI30vm3rOSIUa3r9iaj
 OaJilRVDO3ErUCdcrJjGf+fTWZFa8t2TLwOooyV8tJ5IUYLwJ8s7/3OpwWh1pfCQ
 qxGACCiXeKQo0a9jxJcAAwUD/35x0sm6jV2OZaHxX/JteeLu1hJOE4hc8oRqiE93
 4j8frz33jIsRFpKJ+H28LXtRmVXtVTdq3RuHll5JRCMG+IPLT3Tns/d0L90twpOj
 4r+2BFIK6SYE6JYngf+J5clwve3vE7Y/b8NbSawEApvVxdrpsevGH0Sn5MSdiukm
 EkJviEYEGBECAAYFAj2neFoACgkQo8KM2ULHQ/1NRgCeJ6ZJYvc1oOUBdEKd7SoH
 rFA6N/8An3A9ukQlZm3lPMutMia2vnsb108k
 =0qTN
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.349. Peter Wemm <peter@FreeBSD.org>

 pub  1024D/7277717F 2003-12-14 Peter Wemm <peter@wemm.org>
      Key fingerprint = 622B 2282 E92B 3BAB 57D1  A417 1512 AE52 7277 717F
 uid                            Peter Wemm <peter@FreeBSD.ORG>
 sub  1024g/8B40D9D1 2003-12-14
 pub  1024R/D89CE319 1995-04-02 Peter Wemm <peter@netplex.com.au>
      Key fingerprint = 47 05 04 CA 4C EE F8 93  F6 DB 02 92 6D F5 58 8A
 uid                            Peter Wemm <peter@perth.dialix.oz.au>
 uid                            Peter Wemm <peter@haywire.dialix.com>

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQCNAy9/FJwAAAEEALxs9dE9tFd0Ru1TXdq301KfEoe5uYKKuldHRBOacG2Wny6/
 W3Ill57hOi2+xmq5X/mHkapywxvy4cyLdt31i4GEKDvxpDvEzAYcy2n9dIup/eg2
 kEhRBX9G5k/LKM4NQsRIieaIEGGgCZRm0lINqw495aZYrPpO4EqGN2HYnOMZAAUT
 tCFQZXRlciBXZW1tIDxwZXRlckBuZXRwbGV4LmNvbS5hdT6JAJUDBRA0OJBeSoY3
 Ydic4xkBAREgBACBqWM1pZHF5MqOpsxyCeNdxsp8VXUSoReSmaZPeSY5caIV0NgN
 cUw4AdSKPOu2jDeRSQNzkUk7+/PyK6k9dunZJS4Dnze5QqvTUgi+rHYnEs+DFBRT
 CcMERiSftaP3gDqK3XyWgXDvLXxAkhiWp9yd/QsnZ1+ahz/qACVi+JxdB7QlUGV0
 ZXIgV2VtbSA8cGV0ZXJAcGVydGguZGlhbGl4Lm96LmF1PokAlQMFEDGxFCFKhjdh
 2JzjGQEB6XkD/2HOwfuFrnQUtdwFPUkgtEqNeSr64jQ3Maz8xgEtbaw/ym1PbhbC
 k311UWQq4+izZE2xktHTFClJfaMnxVIfboPyuiSF99KHiWnf/Gspet0S7m/+RXIw
 Zi1qSqvAanxMiA7kKgFSCmchzas8TQcyyXHtn/gl9v0khJkb/fv3R20biEYEExEC
 AAYFAj/dD9YACgkQFRKuUnJ3cX9ejgCfbm0bT5x6nuCY4BD2scsMVKV8Pb8An1lj
 aVb0KRqDjPRrd6FUZoMGWT/3iQCVAwUQNA+txx9/qQgDWPy9AQGHRAP7Bzyo2Hvu
 049m44kNFgH7Kkg60SetOcYWzGKVe1nEEvBKWCMgICCfh5nHY1q/xv7pQjCBLQS4
 tfl8gFBK9s9kyCS3qSNRposFeHRAIPOweGBJxXFSWhdxkAklSoa2x9xPbcOTGUSd
 gHyAyIl4DiXmplB3/cOpDSH2hmPwp92+Erm0HlBldGVyIFdlbW0gPHBldGVyQEZy
 ZWVCU0Qub3JnPoiNBDARAgBNBQI/4zjgRh0gUGxlYXNlIGRvIG5vdCB1c2UgdGhp
 cyBrZXkgZm9yIEZyZWVCU0QgZW1haWwuICBTZWUga2V5IElEICM3Mjc3NzE3Ri4A
 CgkQFRKuUnJ3cX999QCgmUQdMERtr8TqSg0FRMmOilnHEcIAoJtnsVDKUAKfdtep
 mV92lCYIxEtCiQCVAwUwP+M43UqGN2HYnOMZAQE6PAQAnTVrljiWVWjKinJS3yXJ
 5aRuymGUww1KyrBuuR6rK585tPhSDun7ADXhv2irpvV0mJvByXAZGccvkasxazi3
 GsgvDHQ+Xa7OB3LV2tBuVc+3gc8wSmLV1bjp2L6/F5j9udR2ThGxLAM22XTNlcdV
 gbg29tovg/44SOIRyo5Xqx6JAJUDBRAxsRJdSoY3Ydic4xkBAZJUA/4i/NWHz5LI
 H/R4IF/3V3LleFyMFr5EPFY0/4mcv2v+ju9gbrOEM/xd4LlPrx1XqPeZ74JQ6K9m
 HR64RhKR7ZJJ9A+12yr5dVqihe911KyLKab94qZUHYi36WQu2VtLGnw/t8Jg44fQ
 SzbBF5q9iTzcfNOYhRkSD3BdDrC3llywO4hGBBMRAgAGBQI/3Q/ZAAoJEBUSrlJy
 d3F/lX4An0WzfBUeF0RTqfr3BuK5BOZd2zEdAJsEfC2B8HKf7u+izDDf9DuwOKAv
 hLQlUGV0ZXIgV2VtbSA8cGV0ZXJAaGF5d2lyZS5kaWFsaXguY29tPokAlQMFEDGx
 E+pKhjdh2JzjGQEBtYsD/2rUV2eeTi6ekZCwbfVBu2vgDNpAPmb8kcjiBGZKZuPq
 W4kyA0bd+k7ToZ39nu7HIIkHylOy3ZrwL+WM5hnFZP7m5LORBd4yLlxhwjWxltSm
 Qe2ao9brbeGvU8HdksDVMhxNtBb43MmzFDU9zpcb18aRP1ZdBbdeF60A/6O5VMCE
 iQCVAwUQMwWTcXW7bjh2o/exAQEFkQP+LIx5zKlYp1uR24xGApMFNrNtjh+iDIWn
 xxb2M2Kb6x4G9z6OmbUCoDTGrX9SSL2Usm2RD0BZfyv9D9QRWC2TSOPkPRqQgIyc
 c11vgbLolJJNeixqsxlFeKLGEx9eRQCCbo3dQIUjc2yaOe484QamhsK1nL5xpoNW
 I1P9zIOpDiGIRgQTEQIABgUCP90P2QAKCRAVEq5Scndxf/DlAJ42mhP1IL7KSLcu
 XzLycYhfZMF3GACeMpnznDS81f6WxFoZMk0NX8WJzdm0JVBldGVyIFdlbW0gPHBl
 dGVyQHNwaW5uZXIuZGlhbGl4LmNvbT6IdwQwEQIANwUCP+M4HDAdIEFkZHJlc3Mg
 bm8gbG9uZ2VyIHZhbGlkLiBTZWUga2V5IElEICM3Mjc3NzE3Ri4ACgkQFRKuUnJ3
 cX8vqQCeMnLOym0UOXg67aQWRLKRdmk+ez4AnihpiTT3k/FSD1D3ufrIU8b6jEfF
 iQCVAwUwP+M4FkqGN2HYnOMZAQEryQP/SViHEK6K9A9kQrFvTxXdPEWSKPLOz1ML
 y4pqGJ5lqKgrk30b5DyqdOITaHKy6JUbqXa8yYHYIcGxavpghMaNqf19O4zakL03
 j+EIpgkM3m0kkfOfgSeQDpNS4QecP0ZUtqvZAPdMH7252gsIWhXufYuoXR6Rz8Yu
 +Ueb4KSZa5CJAJUDBRAxsRItSoY3Ydic4xkBAXQOBACpjRZY/ERfR0LKCN1Gm572
 KgFjecAsBAeLvmX/M6ujh4nNt086CtUj5ZknQRNXV10Bkumog5C0/sTnXnsDbO53
 1CHB/wwY0rpJQDicypYlz0FuxJLijcMuHquW5fo9xwdu4vlgV4Z+jmjTUGOu+Cxm
 keNRBquOFqOQE3CInIoP84hGBBMRAgAGBQI/3Q/ZAAoJEBUSrlJyd3F/2noAnAsB
 UsEvLVczD6f4yWR0Hr7aW7RFAKCCv30Zh8Xz29ZiePY5rBfRNs5p4rQgUGV0ZXIg
 V2VtbSA8cGV0ZXJAZGlhbGl4LmNvbS5hdT6JAJUDBTA/4zgjSoY3Ydic4xkBAWEI
 A/9M3nKAv2c5QVVed5uhiElOPt5P93R2JigQJxHps/eMDcI9ZMqbyi2XsSQa6MjE
 RUyqaa7MVtoODWamaLxRx/86YaFJ58eVMvlmhPE9zBSliwnRflP43ilwsGOTdBOi
 NWil5QpxgDeWVsjpxcE9QgN3oUSWp10IABzdZRgQUeHwN4kAlQMFEDQRBydKhjdh
 2JzjGQEBJkUD/RF80uSrMZdUWgCkWZxpZbLxeI7JHyDdb/yt1dZwj6a2UdR4zYZb
 uJUiqBVAP1/T9Sp5JiuZYapuOu4xcMVfz7k2u42FUWlYsQp1/iH6mceABdXYjUuh
 2NQvH25i1OjQv1awOVp75bSOKUMF+4fDRDb9EV5UkutJG1XkguvC74XktChQZXRl
 ciBXZW1tIDxwZXRlckBoYXl3aXJlLmRpYWxpeC5jb20uYXU+iQCVAwUwP+M4J0qG
 N2HYnOMZAQEB1wP+LA9S3CJngcL/shPRsero2O2U0XgIdOTSZMoJmTyQZzOUy4ez
 o7ZltMYw38WpPBhbC7emTuuBLD5LOW4/G2RHP1ifB2gZrXq7LG89ZZITPGLyIynM
 iF+IYHx+E1gLCz0fVBO3EVT3nChxXYndj/utPKTw/7v78/k58liosWLg6UmJAJUD
 BRA0Dvq3SoY3Ydic4xkBARsWA/9HWzohwzoCupAVpdlalGOAaz1og07bWcGHiD54
 5ziuY0qRU44F0W5P6b+TlclgRxeLlnmWHvugfSx78uthRgRXVVQdLjjq9jHZ0sCV
 fR1Xq/KtBiHYrhcEvj0O8facILlZwrpYdVNGzP2jlef0iRimVDJ9IJrqmItZMTC0
 nB20gbQoUGV0ZXIgV2VtbSA8cGV0ZXJAc3Bpbm5lci5kaWFsaXguY29tLmF1PokA
 lQMFMD/jOCpKhjdh2JzjGQEB8PMD/j3//QRFuCrF6bZ+Y2DbuW7Niss9aZ+EC1Fp
 ZVgZcW+cMLXXWG0U2x6bt81f5CzDmvAtdgAWAqtBusZ5CRIij4E7mRdqTTpxuncp
 bno5tlEiHtWPrJJh17wAPDQhSj+PhaZJAuSege6Pk6fmlJFd7t4X9US4Ao+c7xoF
 PU+Bf/kqiQCVAwUQNBEFTkqGN2HYnOMZAQEbxAQAuQ3kMgykHW5VdLu+QIE4tlhs
 Zrqz0c5AWtKcmp3p917qusaENeOciuZucVeDPQrvEoaIeRbbGAZSrlvoZmw8gDyY
 5qakVvd2bqee4QxpIVGGldpwSxas/xKN02ZqMYLLyyO4z8Zj7oLaFGtLnooiKXFd
 NHQZKPZ7NTkNF6scjOWZAaIEP9wv6REEAPJ+eB/ATOWQ9xhudn+Q4RCP7JNN8yXL
 tUIpP+TrISKWVwyxbA2Nia4cm7BLoMXuNvcePtQfePKgQ9VjKly+wcTdi2DMtGom
 MqbKxfPeR56aX8GtjAL2OuGcUViHDdqj72nHtxuW0b90NXI2kmdQ602BJc2tdB68
 wosuvd2FQXlbAKCj+CZr//uspel6cVTMj5/OYDcSYQP6AvUVKqB48ClSUHeAn4xv
 SVYdwRx0XOveoovjzO76FAGSqZyjmS3u346epqchopUDIZyP+gQPgnSgIE+a7GJw
 aKCWVDDG7A29rZ9yxfGbChN4JhQwR029jIiXbC7+/g7a2hMs+JRa8kt1upRyQnS7
 xN9M8vkNxNCy1DcI2s9GrUwD/0QGxLawN03i4FzxWXNVbkoHDnjoy9y6OMHcyCc+
 9fpVo2/dLkP6mmM6jDtzPmhRB6sQiiwt8nmPEQNyJ0t2XaCKV7H/0EnzP/gvGkPk
 jVanTs2TKVmJ6HKEz71VtlNe47YjexFWjDYC75oL3qAliIVZBnBdFcOwOVXnnFkO
 kPdKtBtQZXRlciBXZW1tIDxwZXRlckB3ZW1tLm9yZz6IYQQTEQIAIQIbAwYLCQgH
 AwIDFQIDAxYCAQIeAQIXgAUCP+M5sAIZAQAKCRAVEq5Scndxf9QyAKCINvg2tANg
 tPj9gjP3yds3IjLDqQCaA+t0nyL1p+YFkA7M+kOuGIIvhyyInAQTAQIABgUCP+H/
 6wAKCRBKhjdh2JzjGUPCBAC4/X+gbycm5wlXEllp2zLg3GQX2MpQ09hbf+uvzhdv
 7kSliLEkDlwe/i3kJGDrELhPwQiMlSHHTpRi8qSjB1fiJssOCT0bPc4ZgK8seMGq
 kifu8OAjZNU9aGa2NxS5h7UrVWhwEt8G5LtMYIQM63h9DqsnE+o6FcbeR5AgMvr5
 PbQeUGV0ZXIgV2VtbSA8cGV0ZXJARnJlZUJTRC5PUkc+iF4EExECAB8FAj/jOY8C
 GwMHCwkIBwMCAQMVAgMDFgIBAh4BAheAAAoJEBUSrlJyd3F/qcMAn3QcesapMg30
 ZHO66AkrCJXU5RODAJY+rXGUUuZvkGBlLvoY/RRVNZ0PuQENBD/cL+sQBAC8XvjG
 8k6ZmwcTbymtfdUo3HO4I8vPXyAl2yca1srl0Hg743hI9YTkyrVaS5F2jtQLzOkr
 8ivhiRCy4jFGMUPKMCnAWNCT82UW14xPvBrvpNwQw9o91IkuaB0OCu+UWdqgdD6S
 jy/3govRbKzkwFt8p7prjPYiAaCAa/2Xj+nDnwAEDQQAk0EKWZQ3Ehzi4/xDCiGi
 daIGuebke9JQdKIT6qVHFw7IgljTlhOe771JyxNVq3NUF9XsWBirbELQ3/Yn0Ts4
 Dfk/i/8fT7OMv2h4/btQGKF6cawrdFLqB8bJicv+use//gWE95+wiXX2XM216MGd
 3C8f932CcSTYXYQYYEwnkgGISQQYEQIACQUCP9wv6wIbDAAKCRAVEq5Scndxf6Xa
 AJ92UAmSdqxsLia2QHbHRcLfifePfACeO0dqdCjrEkyPGGahXeDcVrvpO8g=
 =7AWH
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.350. Nathan Whitehorn <nwhitehorn@FreeBSD.org>

 pub   1024D/FC118258 2008-07-03
       Key fingerprint = A399 BEA0 8D2B 63B3 47B5  056D 8513 5B96 FC11 8258
 uid                  Nathan Whitehorn <nwhitehorn@freebsd.org>
 uid                  Nathan Whitehorn <nwhitehorn@icecube.wisc.edu>
 uid                  Nathan Whitehorn <nwhitehorn@physics.wisc.edu>
 uid                  Nathan Whitehorn <whitehorn@wisc.edu>
 sub   2048g/EDB55363 2008-07-03

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 mQGiBEhs+ZMRBACu6CWtdlJ/GkGO4O6epy4SKwxV2s64od5j3ZG/+CkdXfHVnvDf
 NAdvytDwRPjFdQtwDmLTcotdm9akMpmoI+nuTDOC/wyoojh3NlTp/YmzSLntBoaQ
 W2uwp8oAW4dszTMptgb3Dpce17cHQcCuQ8Ql9tnZlFOvm4XCP00y7pmGrwCg65cu
 0wxbDYVp2fpPIG0D67q03j8D/01g68qU+JQqCZtCTDSJ7tG4w5zlOH6Hu7Q9wRhb
 XBDKX6fiO9CiRDorgi54DoKqjQoHWnFXrKBcAughLEjle5BSZ+Z+eu/tfMwDEfhL
 FMMPuvT9BVG/nukn4ufmk8BqPbw5PGalYGbdJvvjbyWhVIu/dexqGe9mT3DD7gk0
 WZArA/95nvE5+LRH31Jugq1GJ7cqjJyd/IPQC96z7JXdme7oPQ8IYDsLjsT982MO
 8WvwNbQPnRrj3Sgjp7EcuaFt/J66P7KvpU1lQKJDfZgk1LTL0Nm8wzLj2tXSwZWg
 tSOZewMItr2yKwBlpGDsS5K7CCpbocsndrI5DOPEzuYr7y+56rQuTmF0aGFuIFdo
 aXRlaG9ybiA8bndoaXRlaG9ybkBpY2VjdWJlLndpc2MuZWR1PohgBBMRAgAgBQJI
 bPmTAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQhRNblvwRglgkxwCgmC82
 iM6zfYaJwcFsqETyxS+9Vv4AoJCemsKBmBQiN7o5K84/DuaCZTWutC5OYXRoYW4g
 V2hpdGVob3JuIDxud2hpdGVob3JuQHBoeXNpY3Mud2lzYy5lZHU+iGAEExECACAF
 Akhs+tgCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRCFE1uW/BGCWCFSAJwL
 f5HwF8PEUIEo/25Dwr72JCW6DwCeIm2wQjiyXl+wy1QIP5eX5Emy+Pa0JU5hdGhh
 biBXaGl0ZWhvcm4gPHdoaXRlaG9ybkB3aXNjLmVkdT6IYAQTEQIAIAUCSGz66wIb
 AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIUTW5b8EYJY+GsAoINx6fjsHpdy
 JT0UWgiIr48kEhtcAKDetW0OzAVCF8HmXMHWR/zyjVqHSLQpTmF0aGFuIFdoaXRl
 aG9ybiA8bndoaXRlaG9ybkBmcmVlYnNkLm9yZz6IYAQTEQIAIAUCSGz7AQIbAwYL
 CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEIUTW5b8EYJYgiQAoM04WRCQ0LI5L78O
 d4VFwQSiUiDtAJ43eEJzvlPmvR2geTEaB6lJGNrBMrkCDQRIbPmTEAgAypfp7UhW
 ZPvGO8EfI90WkCclB/H7hSfpTgcZfQafWis6YllJ/EC+orAdQ79I/vdp5x5as6VS
 HsvN/IXXxoL30uHj2PTFV4qi0Tx8YMcw3xUK+wskQ0HonWsmZZvqHBSMbh0+JpXg
 75ZHXxOg/kpaFIjYz7cML9jSFBxD1S1/kmHqFnJISJ5wFAeXJj1loPfTbu6x5NB5
 BGbR/ysii9FidJUAXPk2EviD82oltntcNrUJS29ghFwM3FO/sZFdStQppNTgDnwO
 mUFyYxpwzG8vMjWYl3DWlc8ozXtKRotGzzsXuwUvdnC9e9MRX8xsF7x1vMrV5j6+
 5SGMnz6KvRzRIwADBQgAhDEuTI6+glgo0Kale3FKlKaOdz9R26uTCWVlK32O98jp
 mrdCfG1u1cknYrLlIVZIlrTgu3WqjRS9j23z8mIKQNW6wudu+/50/N7wtlV8k/s3
 DKmoUjcXH1b7vPxxnhFbtg41COFOUziIyXkupHEOJeaF+Sz4EEi8nXMKBEoGFlYD
 rh61rOFsfrf24E3dIwdLyjoTify8trdL5pgug27pHPMgXXx5cjLooq73VFvzlqCA
 3zFyypgED7UsYMH9NjmyLlA77gK4gfuAlGXwEWyh99SVksrvvHqntHyg9p+HdCQJ
 GyYwRMNUXTfdSn4cWVc+Qip1jpgdH/bbIwZeTIMaIYhJBBgRAgAJBQJIbPmTAhsM
 AAoJEIUTW5b8EYJYA0wAoJ5oqyCt4TZRVfofTeTGcm8K+a8lAJ0YGUPg2rEaTf06
 QaoupCN+daK2wQ==
 =hP6F
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.351. Martin Wilke <miwi@FreeBSD.org>

 pub   1024D/B1E6FCE9 2009-01-31
       Key fingerprint = C022 7D60 F598 8188 2635  0F6E 74B2 4884 B1E6 FCE9
 uid                  Martin Wilke <miwi@FreeBSD.org>
 sub   4096g/096DA69D 2009-01-31

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =S3Qn
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.352. Nate Williams <nate@FreeBSD.org>

 pub  1024D/C2AC6BA4 2002-01-28 Nate Williams (FreeBSD) <nate@FreeBSD.org>
      Key fingerprint = 8EE8 5E72 8A94 51FA EA68  E001 FFF9 8AA9 C2AC 6BA4
 sub  1024g/03EE46D2 2002-01-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxVl7cRBADbXnR4t/xRvvOSiPuGPnOGeamrphPbpPXsWD8Nm/pjfN3fhSfa
 0gv3Y2n/IyLTg93gWZhWloMznkdg59Oj0oPSUxjgPauVw4q6l3JJIcurJNlp/Q7l
 DH0KLFJ8GuL6zxAz7Jcx1BpAIEu+G2SnI8+ZuGvq+YwaDxPFavfCqmVaBwCg/iPu
 OI+84/W54yZXvxfUN7dkDmED/3CxYLGeWqPqE8B8Eq8BlmgfP/FwaqXXb6xR7jsE
 XBaqNOIita6Iz49sYTYKYY2rMv6dMXjX1FM13wNW3rS73xkNvuJz0WU6sWl9Hw1e
 kjNjCN2oIqkqB5/1H14NMSOcUPLqERP7goFIK7OAJejUmm5Nc3KjG1S2G97xxjPe
 39mlBAC0QFfa8J0Z6TORFa8Uqyx90pC/Y+I/S+y0vP/59ReP/PnQq/aUdDPLt5OZ
 edtpz7M4A2GtoVkWtedPRsw0hYK+Q3CtOMemQSnlfVjTZq5edL05Po09N89M/WMz
 hB9aRcdY7IN/btsQ0H12ZH+rEj+O4Adu+qEjsWePfW60Uj74GbQqTmF0ZSBXaWxs
 aWFtcyAoRnJlZUJTRCkgPG5hdGVARnJlZUJTRC5vcmc+iFcEExECABcFAjxVl7cF
 CwcKAwQDFQMCAxYCAQIXgAAKCRD/+YqpwqxrpMSwAKCVuyt4B1Pc1tAwRMEOmmZw
 2nGIIQCgyRvB49snyBl86TikYv97ZifyLmK5AQ0EPFWXuRAEAIghycOZtElvBhfw
 r7TisjtVtzKhbF0Kj9cGg5brCC8/bJLK7PxNe48NSdlqMJ7algumsgYR37b/QBmq
 sOSEa2wXCnvCSD0ol+bdPn+Psb+hyi+AVNmVgdlJwuxHUHny0lWQnxeQLrt07SAw
 Ye/Nnc+arH6GXzBwXSpsQ2sOaMajAAMGA/9Hzjkv6HmJkPlKT2TNx33mbLaDk8xv
 vAJXxogxDcUqDDwqszWPcqShaW0IkMZo+grZfykZJjA0/8QUCaEUwhnYIwHMQRdA
 uNegCF/D2x4yzkF4d9gKYCCykDUrwvFDztIhGkinyzu6+xwe9qFcL/esIxnnonz7
 Wx8/3e7pRvS2QIhGBBgRAgAGBQI8VZe5AAoJEP/5iqnCrGukuikAnAt8uA1EIv/5
 WDCIpvNp0lgmwes9AJ4vD1R35+Db6UIw+R5EJaxNBY84zg==
 =xbGI
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.353. Steve Wills <swills@FreeBSD.org>

 pub   2048R/207B1BA1 2010-09-02 [expires: 2011-09-02]
       Key fingerprint = 98FA 414A 5C2A 0EF9 CFD0  AD0D F5CF 62B3 207B 1BA1
 uid                  Steve Wills <swills@freebsd.org>
 uid                  Steve Wills <steve@mouf.net>
 sub   2048R/E9B254FD 2010-09-02 [expires: 2011-09-02]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 eYhPE7EaCOyuAA==
 =7zxq
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.354. Thomas Wintergerst <twinterg@FreeBSD.org>

 pub   1024D/C45CB978 2006-01-08
       Key fingerprint = 04EE 8114 7C6D 22CE CDC8  D7F8 112D 01DB C45C B978
 uid                  Thomas Wintergerst <twinterg@gmx.de>
 uid                  Thomas Wintergerst <twinterg@freebsd.org>
 uid                  Thomas Wintergerst
 uid                  Thomas Wintergerst <thomas.wintergerst@nord-com.net>
 uid                  Thomas Wintergerst <thomas.wintergerst@materna.de>
 sub   2048g/3BEBEF8A 2006-01-08
 sub   1024D/8F631374 2006-01-08
 sub   2048g/34F631DC 2006-01-08

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 B5lKgt0VCQCfdhlL5hMDBDoaMdMtBZXFL4/Vn10=
 =ArNG
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.355. Garrett Wollman <wollman@FreeBSD.org>

 pub  1024D/0B92FAEA 2000-01-20 Garrett Wollman <wollman@FreeBSD.org>
      Key fingerprint = 4627 19AF 4649 31BF DE2E  3C66 3ECF 741B 0B92 FAEA
 sub  1024g/90D5EBC2 2000-01-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 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
 iq7OH/kskwCfeEvJINcMBk0UEdjpgO85woB6QKI=
 =stB+
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.356. Jo:rg Wunsch <joerg@FreeBSD.org>

 pub  1024D/69A85873 2001-12-11 Joerg Wunsch <j@uriah.heep.sax.de>
      Key fingerprint = 5E84 F980 C3CA FD4B B584  1070 F48C A81B 69A8 5873
 pub  1024D/69A85873 2001-12-11 Joerg Wunsch <j@uriah.heep.sax.de>
 uid                            Joerg Wunsch <joerg_wunsch@interface-systems.de>
 uid                            Joerg Wunsch <joerg@FreeBSD.org>
 uid                            Joerg Wunsch <j@ida.interface-business.de>
 sub  1024g/21DC9924 2001-12-11

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.6 (FreeBSD)

 mQGiBDwWI2kRBADM4C4YlBiLozC/bZDedK12BMLyfnv9yOppj/doC1cOEaE+xZNQ
 7/aDZfhi7FNQzt+ehh52DLihV91G7gOsACtUk3gLR8G+0q6U76dBY/gvAGzCYUu0
 bJwlQCcPMysF4sNEwvsuct1fIVAHa+660X6Q+WI+eADIwZyN8wR1GrEqswCg3uGM
 xm85EYtxPFx7tyxfA8q/d+MD/i+SPmt9xEZ/KZOMbQVPw/vYmeWW4lVZGG2HLKmH
 J2FiAW4YjryoNqhpbbqlJigxf6staqgnQL4uuzBrr6v+OIjbljTHA7fs0WA4mtTX
 u7YcAKPXBTztw/O+f3tZz08Ep+AHJ3Q+pTbbRQZpikGGdOpjfLcEyAQBh1rNA3zl
 /MiLA/9IL7yfpyiA6cjX+MuUCqlqbPW2awQOCsmDBOcpXdOYC+MsBUhlT7IcFtQd
 BUxUiqdIKlRtIT4l4LnqzhL2HASv6Zzc06zGS+tlG6BlpCGlSxz8fp4asbTYdJnp
 d7lqme75jOUNjygal5lxJApincaLjv+4IaNUWCC5RjQuRsd3t7QwSm9lcmcgV3Vu
 c2NoIDxqb2VyZ193dW5zY2hAaW50ZXJmYWNlLXN5c3RlbXMuZGU+iF8EExECAB8C
 GwMCHgECF4AFAkGkelUHCwkIBwMCAQMVAgMDFgIBAAoJEPSMqBtpqFhz3+0An1WU
 SyLW5PtVk8AN2wZOZoIbdpWJAJ9UZjNCICVixY7lc+me/lfu7+nCsIhzBBARAgAz
 BQJB4lonBYMB4TOAJhpodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgucGhwP2lk
 PTEwAAoJENK7DQFl0P1Yu+kAn27zpfl6Angb/DIsaV6srJ6SB/hmAJoDHPErifuG
 2L4KGF3NcagZRoUl77QgSm9lcmcgV3Vuc2NoIDxqb2VyZ0BGcmVlQlNELm9yZz6I
 XwQTEQIAHwIbAwIeAQIXgAUCQaR6QgcLCQgHAwIBAxUCAwMWAgEACgkQ9IyoG2mo
 WHNIRwCgnTUFJ1krhK0XISLLossxl68fS0MAoJEjQcOZTKtIp8S4Dqo7/VJYUVKF
 iHMEEBECADMFAkHiWicFgwHhM4AmGmh0dHA6Ly93d3cuY2FjZXJ0Lm9yZy9pbmRl
 eC5waHA/aWQ9MTAACgkQ0rsNAWXQ/VjuVACeKGyJ5VTFr26fxsDgqrlfXjksoBMA
 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
 =SfCl
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.357. David Xu <davidxu@FreeBSD.org>

 pub   1024D/48F2BDAB 2006-07-13 [expires: 2009-07-12]
       Key fingerprint = 7182 434F 8809 A4AF 9AE8  F1B5 12F6 3390 48F2 BDAB
 uid                  David Xu <davidxu@freebsd.org>
 sub   4096g/ED7DB38A 2006-07-13 [expires: 2009-07-12]

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 =jyox
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.358. Maksim Yevmenkin <emax@FreeBSD.org>

 pub  1024D/F050D2DD 2003-10-01 Maksim Yevmenkin <m_evmenkin@yahoo.com>
      Key fingerprint = 8F3F D359 E318 5641 8C81  34AD 791D 53F5 F050 D2DD

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.2.2 (FreeBSD)

 mQGiBD97XL8RBACC3CMLdwZY/RcLw4PM6h2KYj+cG7TNSfNWszZO5HdQYrd6HZKQ
 h0cL7cyW1Low8a2ZulxtEjM1SfofzDlhNaTYhyjlO4xBnJM13dMFchmM4j4qF0Mu
 al1MEeO3EbLntFsh/aDX2sOKEavz5id8eKmAZKez2O5Z27bymkFf4o2UbwCg841B
 WuuWHsy4O1zrac0WidkS3G0D/jeVbYA09gylZA1KSd3djHE55lQDQrUt3+2xWxjG
 Lg60WIqys/yxei6nVO7/Wr6Q1WISiX0bYXAxHCZZQrT6cuNtEBntPPa9PnXRewUx
 8xwVCBIuSLK5Kw2WZ2FMuQWTzfd4fwt8P9vghJlaV3h5Byw3e6/MdoDID9Jkg/ml
 f5FuA/9kZBwtE4zKJvx3Pv7EG6T0w82QA0SFtcFyRnNarUIfqyUsFXNkr8hoQT3Z
 J5haO/lW2HW70KMr26GxK61XcF8LQtfvphv9M+4yF3+DZSu1YxUM1Vs/q27EQhXa
 3Cs4kJkKdzW2xDbIbuD5ZJQqFAzWX7IiTTNXnEGZStPTQMYZLbQnTWFrc2ltIFll
 dm1lbmtpbiA8bV9ldm1lbmtpbkB5YWhvby5jb20+iFsEExECABsFAj97XL8GCwkI
 BwMCAxUCAwMWAgECHgECF4AACgkQeR1T9fBQ0t01FQCfUR367fJJ37Wl4HvZVBoF
 peBX9ZEAniaaK/D+n/JttkgY8jJf2ZvjF0SSuQENBD97XMIQBACPpJjDdDw42++u
 vPMW/R7Iwqdpgs22T/bzVlFxDGx2uD9xaoNKI03jkOyUWiFlHbuifMRhxTwO5Vyg
 nj91Y0fk8hdd9bjT0ee7lJuQ8PBqzb/uEVGFIC+56/ocFzuBANdN5fzEfxp5AA0o
 zAPotyGEmLLK8+3ApZmAbsnQEveOwwADBQP+KgIxPzWAxYSn/MFPK2QBEjHuCCsS
 JB+VOShc/QaSn/wFEKc8Brjpr1KeAEi7dFrK4Sa2Rn2+k9tRSJptxi1m3Hrr0J2z
 0JofnF6cKkvmIsCse5OGCK/LJmuWHuNVqYI2X9Q0am+soHEYsRaqB/BDLT5Mw0mE
 5NO6455cKEcyizmIRgQYEQIABgUCP3tcwgAKCRB5HVP18FDS3b1HAJ9ZjWomBkE4
 1vaMSXyIopmSQNVxSQCg3J+fBmk0yhD2A8CIfxhpSRJDwus=
 =wV5Z
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.359. Bjoern A. Zeeb <bz@FreeBSD.org>

 pub   1024D/3CCF1842 2007-02-20
       Key fingerprint = 1400 3F19 8FEF A3E7 7207  EE8D 2B58 B8F8 3CCF 1842
 uid                  Bjoern A. Zeeb <bz@zabbadoz.net>
 uid                  Bjoern A. Zeeb <bzeeb@zabbadoz.net>
 uid                  Bjoern A. Zeeb <bz@FreeBSD.org>
 uid                  Bjoern A. Zeeb <bzeeb-lists@lists.zabbadoz.net>
 sub   4096g/F36BDC5D 2007-02-20

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 B8U1cYUAoI3ftziD88BkkQf1aD7jpiQwlW7/
 =N1dt
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.360. Alexey Zelkin <phantom@FreeBSD.org>

 pub  1024D/9196B7D9 2002-01-28 Alexey Zelkin <phantom@FreeBSD.org>
      Key fingerprint = 4465 F2A4 28C1 C2E4 BB95  1EA0 C70D 4964 9196 B7D9
 sub  1024g/E590ABA4 2002-01-28

 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.0.6 (FreeBSD)
 Comment: For info see http://www.gnupg.org

 mQGiBDxVhBMRBAD20EH9hS3S3gy73E1s//vYS1yo4GmmvzUzMTJo4HH6OMFT/MVn
 B51RXK5YlQ1cau4MWt2sifpWsG2hmmmPtOIaC6Mn4X8cEXmzy6qW5m+3RUdXB8rM
 pFSEVVEGhE9Sq+pTI1wB4VUJ5mhQtvWVJKsmuyf1YRa/zrr2zbZTIXg5EwCggloA
 GdcoFNm7p+cW56HJI1jZTpcD/jUyc4KLeimo+6Fn3z6NZh64GS+JmmCDe7mlcK2S
 XNPVq3tXXP3ZUKdv3faoMAgI1hSi82/32GINDkhiLPc0Q2tQZRDYKvyY/swgJSnV
 1LV8jlpk2VsmsYOp9hW4SJLAQUaejpZe4CwHpOfJWbPkXE83nVygA0lnN89dfhIH
 JaB8A/9VottMl88+CLzqF3AzN72R5tFWnSFMWumaODis+UvLW0XAMP4AHhvux/FS
 Pl+m2YtilHhib6lfMYuGalN84H7VxOBxjc9L4qORV9jP4cWEYXpxx0DTmmtFfLae
 xGGTyYNM1RiqmScXMF28Am1I+WhnLTql8DVFWr8XoZUbususg7QjQWxleGV5IFpl
 bGtpbiA8cGhhbnRvbUBGcmVlQlNELm9yZz6IVwQTEQIAFwUCPFWEEwULBwoDBAMV
 AwIDFgIBAheAAAoJEMcNSWSRlrfZ9yQAn0bnLWBjo47dKrS82X1VvbuokkNXAJsH
 oANWk5PoOZzySJ7st8/IyaLBErkBDQQ8VYQXEAQA2cEOpYzl8L5y8TErdj1lfpHt
 gxm1QFETl8HvZGb/hTRWVhIcUhtOLA2uftk1oDHbnp+FPsJuFTxanCaCSQVdtMEE
 I1zK/Qy384FjS1B6L3yq84yTKn+Gp8SbMX3ZWT+dVmy88yJpmo/yFiiN9d2hYy1q
 fCUWhbAoWeD7sqSeGL8ABA0D/Au95rpaYunrMhu5nVdvZpTbNEIEDLOTS337GWy7
 n1E9RG72ujCLFg8tbEmjEUFYfCZ/cW+6+2/Nj7zoGH9xXH6bRTfSKXojdKgNkUvL
 SLynpmFpUlFKc4fzSxx5EkCxH/zog9X2CQjMvxHmSD1/x+LeD0v/5WMsLvIdj6Op
 0KmziEYEGBECAAYFAjxVhBcACgkQxw1JZJGWt9nbrQCcCvSJho7n1r4+1PGTlcep
 ABxplbsAn05jPrtZLjln7aKcavCp8FICJ2TY
 =GYHE
 -----END PGP PUBLIC KEY BLOCK-----

     --------------------------------------------------------------

  D.3.361. Sepherosa Ziehau <sephe@FreeBSD.org>

 pub   2048R/3E51FB42 2005-10-21
       Key fingerprint = 5F47 3861 7ABA 8773 9E32  0474 5C33 841C 3E51 FB42
 uid                  Sepherosa Ziehau (freebsd) <sephe@freebsd.org>
 uid                  Sepherosa Ziehau (sephe) <sepherosa@gmail.com>
 sub   2048R/7AA31321 2005-10-21

 -----BEGIN PGP PUBLIC KEY BLOCK-----

 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
 AshLLfnD1BoaFl+lzNnL2Q==
 =F5Wg
 -----END PGP PUBLIC KEY BLOCK-----

                            FreeBSD Glossar

   Dieser Abschnitt entha:lt Begriffe und Abku:rzungen, die innerhalb
   des FreeBSD-Projekts sowie der zugeho:rigen Dokumentation
   verwendet werden.

                                   A

   ACL

           Siehe: Access Control List

   ACPI

           Siehe: Advanced Configuration and Power Interface

   AMD

           Siehe: Automatic Mount Daemon

   AML

           Siehe: ACPI Machine Language

   API

           Siehe: Application Programming Interface

   APIC

           Siehe: Advanced Programmable Interrupt Controller

   APM

           Siehe: Advanced Power Management

   APOP

           Siehe: Authenticated Post Office Protocol

   ASL

           Siehe: ACPI Source Language

   ATA

           Siehe: Advanced Technology Attachment

   ATM

           Siehe: Asynchronous Transfer Mode

   ACPI Machine Language (AML)

           Pseudocode, der von einer virtuellen Maschine innerhalb
           eines ACPI-konformen Betriebssystems ausgefu:hrt wird.
           Bietet eine Verbindungsschicht (Layer) zwischen der
           verwendeten Hardware und der dokumentierten Schnittstelle,
           auf die das Betriebssystem zugreift.

   ACPI Source Language (ASL)

           Die Programmiersprache, in der die AML geschrieben ist.

   Access Control List (ACL)

           Eine Liste von Zugriffsrechten, die einem Objekt,
           normalerweise eine Datei oder ein Gera:t im Netzwerk,
           angeha:ngt ist.

   Advanced Configuration and Power Interface (ACPI)

           Eine Spezifikation, die eine Abstrahierung der
           Schnittstelle darstellt, die Hardware und Betriebssystem
           verbindet. Dadurch beno:tigt das Betriebssystem keine
           Informationen u:ber die vorhandene Hardware, um diese
           einsetzen zu ko:nnen. ACPI ist eine Weiterentwicklung von
           APM, PNPBIOS und anderen Technologien und bietet
           Funktionen zur Kontrolle des Energieverbrauchs, zur
           Versetzung von Rechnern in den Ruhezustand, zur
           Aktivierung und Deaktivierung von Gera:ten und andere
           mehr.

   Application Programming Interface (API)

           Eine Sammlung von Prozeduren, Protokollen und Werkzeugen,
           die das Zusammenspiel von verschiedenen Programmteilen
           festlegt. Wie, wann und warum arbeiten sie zusammen,
           welche Daten werden zwischen ihnen ausgetauscht und
           anderes mehr.

   Advanced Power Management (APM)

           Eine API, die es dem Betriebssystem ermo:glicht, zusammen
           mit dem BIOS die Stromversorgung zu verwalten. APM wurde
           fu:r die meisten Anwendungen durch die allgemeinere und
           leistungsfa:higere ACPI Spezifikation abgelo:st.

   Advanced Programmable Interrupt Controller (APIC)

   Advanced Technology Attachment (ATA)

   Asynchronous Transfer Mode (ATM)

   Authenticated Post Office Protocol (APOP)

   Automatic Mount Daemon (AMD)

           Ein Daemon, der ein Dateisystem automatisch einha:ngt,
           wenn auf eine Datei oder ein Verzeichnis dieses
           Dateisystems zugegriffen wird.

                                   B

   BAR

           Siehe: Base Address Register

   BIND

           Siehe: Berkeley Internet Name Domain

   BIOS

           Siehe: Basic Input/Output System

   BSD

           Siehe: Berkeley Software Distribution

   Base Address Register (BAR)

           Register, die den zu einem PCI-Gera:t geho:renden
           Adressbereich festlegen.

   Basic Input/Output System (BIOS)

           Die Bedeutung des Begriffs BIOS ha:ngt vom Kontext ab, in
           dem es verwendet wird. Einmal wird damit der ROM-Chip
           bezeichnet, der u:ber einen Basisbefehlssatz eine
           Schnittstelle zwischen Hard- und Software schafft. Aber
           auch die Routinen, die in diesen Chip implementiert
           wurden, und die dabei helfen, Ihr System zu starten,
           werden als BIOS bezeichnet. Und nicht zuletzt wird
           manchmal die Bildschirmmaske, u:ber die der Bootprozess
           konfiguriert werden kann, ebenfalls als BIOS bezeichnet.
           Der Begriff BIOS ist zwar PC-spezifisch, andere Systeme
           verfu:gen aber u:ber a:hnliche Systeme.

   Berkeley Internet Name Domain (BIND)

           Eine Implementierung des DNS-Protokolls.

   Berkeley Software Distribution (BSD)

           Diesen Namen gab die Computer Systems Research Group
           (CSRG) der The University of California at Berkeley den
           Verbesserungen und A:nderungen an AT&Ts 32V UNIX. FreeBSD
           beruht auf der Arbeit der CSRG.

   Bikeshed Building

           Die Beobachtung, dass viele Leute Meinungen zu
           unkomplizierten Themen a:ussern, wa:hrend gleichzeitig
           u:ber ein kompliziertes Thema gar nicht oder nur wenig
           diskutiert wird. Die Herkunft des Ausdrucks wird in den
           FAQ erla:utert.

                                   C

   CD

           Siehe: Carrier Detect

   CHAP

           Siehe: Challenge Handshake Authentication Protocol

   CLIP

           Siehe: Classical IP over ATM

   COFF

           Siehe: Common Object File Format

   CPU

           Siehe: Central Processing Unit

   CTS

           Siehe: Clear To Send

   CVS

           Siehe: Concurrent Versions System

   Carrier Detect (CD)

           Ein RS232C-Signal. Notwendig, um eine serielle Verbindung
           aufbauen zu ko:nnen.

   Central Processing Unit (CPU)

           Auch als Prozessor bekannt. Dieser stellt das Gehirn eines
           Computers dar, in dem alle Berechnungen erfolgen. Es gibt
           verschiedene Prozessor-Architekturen, die u:ber
           verschiedene Befehlssa:tze verfu:gen, beispielsweise
           Intel-x86-, Sun SPARC-, PowerPC- und Alpha-Systeme.

   Challenge Handshake Authentication Protocol (CHAP)

           Eine Vorgehensweise, einen Benutzer anhand eines
           Geheimnisses zu authentisieren, dass zwischen Client und
           Server ausgetauscht wird.

   Classical IP over ATM (CLIP)

   Clear To Send (CTS)

           Ein RS232C-Signal. Das entfernte System erha:lt durch
           dieses Signal die Erlaubnis, Daten zu senden.

           Siehe auch: Request To Send.

   Common Object File Format (COFF)

   Concurrent Versions System (CVS)

           Ein Versionskontrollsystem, das es erlaubt, mit vielen
           verschiedenen Versionen einer Datei zu arbeiten und die an
           diesen Dateien durchgefu:hrten A:nderungen zu verfolgen.
           CVS ermo:glicht es, individuelle A:nderungen
           durchzufu:hren, in ein Repository einzubringen und auch
           wieder ru:ckga:ngig zu machen. Ausserdem ist es mo:glich,
           nachzuvollziehen, welche A:nderungen wann, von wem und
           warum erfolgten.

                                   D

   DAC

           Siehe: Discretionary Access Control

   DDB

           Siehe: Debugger

   DES

           Siehe: Data Encryption Standard

   DHCP

           Siehe: Dynamic Host Configuration Protocol

   DNS

           Siehe: Domain Name System

   DSDT

           Siehe: Differentiated System Description Table

   DSR

           Siehe: Data Set Ready

   DTR

           Siehe: Data Terminal Ready

   DVMRP

           Siehe: Distance-Vector Multicast Routing Protocol

   Discretionary Access Control (DAC)

   Data Encryption Standard (DES)

           Eine Methode zur Verschlu:sselung von Informationen. Wird
           traditionellerweise zur Verschlu:sselung von
           UNIX-Passwo:rtern und von crypt(3) verwendet.

   Data Set Ready (DSR)

           Ein RS232C-Signal, das von einem Modem an einen Computer
           oder ein Terminal geschickt wird und die Sende- und
           Empfangsbereitschaft des Modems meldet.

           Siehe auch: Data Terminal Ready.

   Data Terminal Ready (DTR)

           Ein RS232C-Signal, das von einem Computer oder einem
           Terminal an das Modem geschickt wird und die Sende- und
           Empfangsbereitschaft des Computers oder des Terminals
           meldet.

   Debugger (DDB)

           Eine interaktive, in den Kernel eingebaute Funktion, um
           den Status eines Systems zu untersuchen. Wird in der Regel
           nach einem Systemabsturz eingesetzt, um die Ursache fu:r
           den Absturz zu finden.

   Differentiated System Description Table (DSDT)

           Eine ACPI-Tabelle, die Informationen u:ber die
           Konfiguration des Basissystems entha:lt.

   Distance-Vector Multicast Routing Protocol (DVMRP)

   Domain Name System (DNS)

           Das System, dass Klartext-Rechnernamen (wie
           mail.example.net) in Internet-IP-Adressen (oder umgekehrt)
           konvertiert.

   Dynamic Host Configuration Protocol (DHCP)

           Ein Protokoll, das auf Anforderung dynamisch eine
           IP-Adresse an einen Rechner vergibt. Diese Adresszuweisung
           wird als "Lease" bezeichnet.

                                   E

   ECOFF

           Siehe: Extended COFF

   ELF

           Siehe: Executable and Linking Format

   ESP

           Siehe: Encapsulated Security Payload

   Encapsulated Security Payload (ESP)

   Executable and Linking Format (ELF)

   Extended COFF (ECOFF)

                                   F

   FADT

           Siehe: Fixed ACPI Description Table

   FAT

           Siehe: File Allocation Table

   FAT16

           Siehe: File Allocation Table (16-bit)

   FTP

           Siehe: File Transfer Protocol

   File Allocation Table (FAT)

   File Allocation Table (16-bit) (FAT16)

   File Transfer Protocol (FTP)

           Ein auf TCP aufsetzendes Protokoll, das zum Transfer von
           Daten u:ber ein TCP/IP-Netzwerk verwendet wird.

   Fixed ACPI Description Table (FADT)

                                   G

   GUI

           Siehe: Graphical User Interface

   Giant

           Der Name fu:r einen wechselseitigen Ausschluss (mutual
           exclusion), der einen grossen Teil der Kernel-Ressourcen
           schu:tzt. Zu Zeiten, als auf einer Maschine nur ein paar
           Prozesse liefen und die Maschine nur eine Netzwerkkarte
           und insbesondere nur einen Prozessor besass, war dieser
           einfache Mechanismus zum Verriegeln (lock) einer Ressource
           vo:llig ausreichend. Heutzutage entstehen durch den
           wechselseitigen Ausschluss Geschwindigkeitsengpa:sse. Die
           FreeBSD-Entwickler arbeiten daran, Giant durch Locks zu
           ersetzten, die einzelne Ressourcen schu:tzen. Auf
           Einprozessor- und Mehrprozessor-Maschinen ko:nnen dadurch
           mehr Prozesse parallel ausgefu:hrt werden.

   Graphical User Interface (GUI)

           Eine grafische Oberfla:che, u:ber die der Anwender mit dem
           System interagiert.

                                   H

   HTML

           Siehe: HyperText Markup Language

   HUP

           Siehe: HangUp

   HangUp (HUP)

   HyperText Markup Language (HTML)

           Die Auszeichnungssprache, mit der Internetseite erstellt
           werden ko:nnen.

                                   I

   I/O

           Siehe: Input/Output

   IASL

           Siehe: Intel's ASL-Compiler

   IMAP

           Siehe: Internet Message Access Protocol

   IP

           Siehe: Internet Protocol

   IPFW

           Siehe: IP Firewall

   IPP

           Siehe: Internet Printing Protocol

   IPv4

           Siehe: IP Version 4

   IPv6

           Siehe: IP Version 6

   ISP

           Siehe: Internet Service Provider

   IP Firewall (IPFW)

   IP Version 4 (IPv4)

           Die IP-Protokollversion 4, die 32-Bit-Adressen einsetzt.
           Diese Version stellt derzeit noch den in der Praxis am
           meisten verwendeten Standard dar, sollt aber sukzessive
           durch IPv6 ersetzt werden.

           Siehe auch: IP Version 6.

   IP Version 6 (IPv6)

           Das neue IP-Protokoll. Es wurde entwickelt, weil der
           Adressraum von IPv4 nicht mehr ausreichend ist. IPv6
           verwendet 128-Bit-Adressen.

   Input/Output (I/O)

   Intel's ASL-Compiler (IASL)

           Intel's Compiler zur Konvertierung von ASL nach AML.

   Internet Message Access Protocol (IMAP)

           Ein Protokoll fu:r den Zugriff auf einen E-Mail-Server.
           Charakteristisch fu:r dieses Protokoll ist, dass die
           Nachrichten in der Regel auf dem Server verbleiben und
           nicht vom E-Mail-Client heruntergeladen werden.

           Siehe auch: Post Office Protocol Version 3.

   Internet Printing Protocol (IPP)

   Internet Protocol (IP)

           Das Standardprotokoll zur Paketu:bertragung im Internet.
           Wurde urspru:nglich vom U.S. Department of Defense
           entwickelt, und ist ein zentraler Bestandteile des
           TCP/IP-Stacks. Ohne das Internet Protocol wa:re das
           Internet in der heutigen Form nicht mo:glich. Das Internet
           Protocol ist im RFC 791 definiert.

   Internet Service Provider (ISP)

           Ein Unternehmen, das anderen den Zugang zum Internet
           ermo:glicht.

                                   K

   KAME

           Japanisch fu:r "Schildkro:te". Der Begriff KAME wird in
           Computerkreisen fu:r das KAME Project verwendet, das an
           einer IPv6-Implementierung arbeitet.

   KDC

           Siehe: Key Distribution Center

   KLD

           Siehe: Kernel ld(1)

   KSE

           Siehe: Kernel Scheduler Entities

   KVA

           Siehe: Kernel Virtual Address

   Kbps

           Siehe: Kilo Bits Per Second

   Kernel ld(1) (KLD)

           Eine Methode, um den Kernel dynamisch um zusa:tzliche
           Funktionen zu erweitern, ohne das System neu zu starten.

   Kernel Scheduler Entities (KSE)

           Threads, die im Kernel laufen. Na:heres entnehmen Sie der
           Home-Page des Projekts.

   Kernel Virtual Address (KVA)

   Key Distribution Center (KDC)

   Kilo Bits Per Second (Kbps)

           Masseinheit, in der die Bandbreite (also die Menge der
           Daten, die in einer bestimmten Zeit u:bertragen werden
           kann) angegeben wird. Statt Kilo ko:nnen auch Mega, Giga,
           Tera und weitere Pra:fixe verwendet werden.

                                   L

   LAN

           Siehe: Local Area Network

   LOR

           Siehe: Lock Order Reversal

   LPD

           Siehe: Line Printer Daemon

   Line Printer Daemon (LPD)

   Local Area Network (LAN)

           Ein Netzwerk, das nur in einem lokalen Bereich, wie einem
           Bu:ro, einen Unternehmen oder einem Haus, eingesetzt wird.

   Lock Order Reversal (LOR)

           Der FreeBSD-Kernel benutzt eine Reihe von Ressource-Locks,
           um den Zugriff auf Ressourcen zu regeln. In
           FreeBSD-CURRENT-Kerneln (nicht in Release-Kerneln)
           befindet sich das Diagnose-System witness(4), das
           Verklemmungen (deadlock) zur Laufzeit erkennt. witness(4)
           ist vorsichtig: daher gibt es schon mal Falschmeldungen
           aus. Eine richtig erkannte Verklemmung bedeutet soviel wie
           "Wenn Sie Pech gehabt ha:tten, wa:re es jetzt zu einer
           Verklemmung gekommen".

           Richtig erkannte Verklemmungen (LOR) werden schnell
           behoben. Pru:fen Sie daher
           http://lists.FreeBSD.org/mailman/listinfo/freebsd-current
           und die Seite LORs Seen bevor Sie die Mailinglisten
           kontaktieren.

                                   M

   MAC

           Siehe: Mandatory Access Control

   MADT

           Siehe: Multiple APIC Description Table

   MFC

           Siehe: Merge From Current

   MFP4

           Siehe: Merge From Perforce

   MFS

           Siehe: Merge From Stable

   MIT

           Siehe: Massachusetts Institute of Technology

   MLS

           Siehe: Multi-Level Security

   MOTD

           Siehe: Message Of The Day

   MTA

           Siehe: Mail Transfer Agent

   MUA

           Siehe: Mail User Agent

   Mail Transfer Agent (MTA)

           Eine Anwendung zum Transfer von E-Mails. Ein MTA war von
           jeher im BSD-Basissystem enthalten. Aktuell handelt es
           sich dabei um Sendmail. Es exisitieren aber auch
           zahlreiche andere MTAs, darunter postfix, qmail und Exim.

   Mail User Agent (MUA)

           Ein Programm zur Anzeige und zum Verfassen von E-Mails.

   Mandatory Access Control (MAC)

   Massachusetts Institute of Technology (MIT)

   Merge From Current (MFC)

           Das Einbringen von Funktionen oder Fehlerbehebungen aus
           dem -CURRENT-Zweig in einen anderen Zweig, meist -STABLE.

   Merge From Perforce (MFP4)

           Das Einbringen von Funktionen oder Fehlerbehebungen aus
           dem Perforce-Repository des -CURRENT-Zweigs.

           Siehe auch: Perforce.

   Merge From Stable (MFS)

           Normalerweise werden A:nderungen an FreeBSD zuerst im
           -CURRENT-Zweig getestet und dann in den -STABLE-Zweig
           u:bernommen. Selten kommt es vor, dass eine A:nderung
           zuerst im -STABLE-Zweig vorgenommen wird und anschliessend
           im -CURRENT-Zweig u:bernommen wird.

           Dieser Ausdruck wird auch benutzt, wenn eine
           Fehlerbehebung von -STABLE in einem der Sicherheitszweige
           u:bernommen wird.

           Siehe auch: Merge From Current.

   Message Of The Day (MOTD)

           Eine Nachricht, die in der Regel beim Anmelden an einem
           System angezeigt wird. Entha:lt ha:ufig Informationen fu:r
           die Benutzer des Systems.

   Multi-Level Security (MLS)

   Multiple APIC Description Table (MADT)

                                   N

   NAT

           Siehe: Network Address Translation

   NDISulator

           Siehe: Project Evil

   NFS

           Siehe: Network File System

   NTFS

           Siehe: New Technology File System

   NTP

           Siehe: Network Time Protocol

   Network Address Translation (NAT)

           Eine Technik, bei der IP-Pakete auf dem Weg durch ein
           Gateway umgeschrieben werden. Dadurch wird es mo:glich,
           dass sich mehrere Rechner hinter dem Gateway eine einzige
           IP-Addresse teilen.

   Network File System (NFS)

   New Technology File System (NTFS)

           Ein von Microsoft entwickeltes Dateisystem, das in dessen
           "New Technology"-Betriebssystemen, wie Windows 2000,
           Windows NT und Windows XP, eingesetzt wird.

   Network Time Protocol (NTP)

           Ein Protokoll, um die Systemzeit u:ber ein Netzwerk zu
           synchronisieren.

                                   O

   OBE

           Siehe: Overtaken By Events

   ODMR

           Siehe: On-Demand Mail Relay

   OS

           Siehe: Operating System

   On-Demand Mail Relay (ODMR)

   Operating System (OS)

           Eine Sammlung von Programmen, Bibliotheken und Werkzeugen,
           die den Zugriff auf die Hardware eines Computers erlauben.
           Die Bandbreite aktueller Betriebssysteme reicht von
           einfachen Designs, die lediglich die Ausfu:hrung eines
           einzigen Programms und die Nutzung eines einzigen Gera:ts
           zur gleichen Zeit erlauben bis hin zu Multitasking- und
           Multiprozess-Systemen, die gleichzeitig Tausende Benutzer
           bedienen ko:nnen, von denen jeder wiederum Dutzende
           Programme laufen lassen kann.

   Overtaken By Events (OBE)

           Zeigt an, dass eine gewu:nschte A:nderung (aus einem
           Fehlerbericht oder einer Anforderung) u:berholt ist. Die
           Ursache ko:nnen beispielsweise spa:tere A:nderungen in
           FreeBSD, gea:nderte Netzwerk-Standards oder jetzt
           veraltete Hardware sein.

                                   P

   p4

           Siehe: Perforce

   PAE

           Siehe: Physical Address Extensions

   PAM

           Siehe: Pluggable Authentication Modules

   PAP

           Siehe: Password Authentication Protocol

   PC

           Siehe: Personal Computer

   PCNSFD

           Siehe: Personal Computer Network File System Daemon

   PDF

           Siehe: Portable Document Format

   PID

           Siehe: Process ID

   POLA

           Siehe: Principle Of Least Astonishment

   POP

           Siehe: Post Office Protocol

   POP3

           Siehe: Post Office Protocol Version 3

   PPD

           Siehe: PostScript Printer Description

   PPP

           Siehe: Point-to-Point Protocol

   PPPoA

           Siehe: PPP over ATM

   PPPoE

           Siehe: PPP over Ethernet

   PPP over ATM (PPPoA)

   PPP over Ethernet (PPPoE)

   PR

           Siehe: Problem Report

   PXE

           Siehe: Preboot eXecution Environment

   Password Authentication Protocol (PAP)

   Perforce

           Ein von Perforce Software entwickeltes
           Versionskontrollsystem, das mehr Funktionen als CVS
           aufweist. Obwohl es sich dabei nicht um Open-Source
           handelt, du:rfen Open-Source-Projekte wie FreeBSD die
           Software kostenlos einsetzen.

           Einige FreeBSD-Entwickler verwenden ein
           Perforce-Repository, um Quellcode zu verwalten, der selbst
           fu:r den -CURRENT-Zweig zu experimentell ist.

   Personal Computer (PC)

   Personal Computer Network File System Daemon (PCNFSD)

   Physical Address Extensions (PAE)

           Eine Mo:glichkeit, um auf Systemen, die physikalisch nur
           u:ber einen 32-Bit-Adressraum verfu:gen, bis zu 64 GB RAM
           ansprechen zu ko:nnen. Ohne PAE wa:ren diese Systeme auf
           maximal 4 GB Hauptspeicher beschra:nkt.

   Pluggable Authentication Modules (PAM)

   Point-to-Point Protocol (PPP)

   Pointy Hat

           Ein Kopfschmuck, a:hnlich den Eselsohren, der
           FreeBSD-Committern gereicht wird, wenn sie den Bau
           kaputtmachen, Revisionsnummern verkleinern oder sonstigen
           Schaden im Quellbaum anrichten. Jeder Committer, der etwas
           taugt, besitzt schnell eine stattliche Sammlung. Der
           Begriff wird (meist?) scherzhaft verwendet.

   Portable Document Format (PDF)

   Post Office Protocol (POP)

           Siehe auch: Post Office Protocol Version 3.

   Post Office Protocol Version 3 (POP3)

           Ein Protokoll fu:r den Zugriff auf einen E-Mail-Server.
           Dadurch gekennzeichnet, dass neue Nachrichten vom
           E-Mail-Client heruntergeladen und nicht auf dem Server
           verbleiben.

           Siehe auch: Internet Message Access Protocol.

   PostScript Printer Description (PPD)

   Preboot eXecution Environment (PXE)

   Principle Of Least Astonishment (POLA)

           Prinzip der kleinsten U:berraschung

           A:nderungen an FreeBSD sollten nach Mo:glichkeit fu:r den
           Benutzer nachvollziehbar sein. Das willku:rliche Umordnen
           der Variablen in /etc/defaults/rc.conf verletzt zum
           Beispiel dieses Prinzip. Entwickler beachten das Prinzip,
           wenn Sie u:ber fu:r Benutzer sichtbare A:nderungen
           nachdenken.

   Problem Report (PR)

           Die Beschreibung eines Problems, das im FreeBSD-Quellcode
           oder in der Dokumentation gefunden wurde. Lesen Sie dazu
           auch den Artikel Writing FreeBSD Problem Reports.

   Process ID (PID)

           Eine eindeutige Zahl, die einem Prozess zugewiesen ist.
           Identifiziert den Prozess und erlaubt es, diesen Prozess
           zu bearbeiten.

   Project Evil

           Der Arbeitstitel des von Bill Paul geschriebenen
           NDISulator. Der Name bezieht sich darauf, dass es
           (philosophisch gesehen) schlimm ist, einen solchen Treiber
           u:berhaupt schreiben zu mu:ssen. Der NDISulator ist ein
           Kompatibilita:tsmodul, das es erlaubt, Microsoft
           Windows(TM) NDIS-Miniport-Netzwerktreiber mit FreeBSD/i386
           zu benutzen. Fu:r gewo:hnlich ist dies die einzige
           Mo:glichkeit, Karten mit einem Treiber, dessen Quellen
           verschlossen sind, zu benutzen. Siehe
           src/sys/compat/ndis/subr_ndis.c.

                                   R

   RA

           Siehe: Router Advertisement

   RAID

           Siehe: Redundant Array of Inexpensive Disks

   RAM

           Siehe: Random Access Memory

   RD

           Siehe: Received Data

   RFC

           Siehe: Request For Comments

   RISC

           Siehe: Reduced Instruction Set Computer

   RPC

           Siehe: Remote Procedure Call

   RS232C

           Siehe: Recommended Standard 232C

   RTS

           Siehe: Request To Send

   Random Access Memory (RAM)

   Revision Control System (RCS)

           Das Revision Control System (RCS) ist eines der a:ltesten
           "Versionsverwaltungssysteme" fu:r reine Textdateien. Es
           erlaubt das Speichern, Laden, Archivieren, Protokollieren,
           Identifizieren sowie das Zusammenfu:hren von verschiedenen
           Revisionen einer Datei. Bei RCS handelt es sich um eine
           Sammlung von vielen kleinen zusammenarbeitenden
           Werkzeugen. Zwar fehlen im Vergleich zu CVS oder
           Subversion einige Funktionen, allerdings ist RCS sehr
           einfach zu installieren, zu konfigurieren und zu benutzen,
           solange die Anzahl der zu verwaltenden Dateien
           u:berschaubar bleibt. RCS ist dabei fu:r praktisch alle
           wichtigen UNIX-artigen Betriebssysteme verfu:gbar.

           Siehe auch: Concurrent Versions System, Subversion.

   Received Data (RD)

           Ein RS232C-Pin oder -Draht, u:ber den neue Daten ankommen.

           Siehe auch: Transmitted Data.

   Recommended Standard 232C (RS232C)

           Ein Standard fu:r die Kommunikation zwischen seriellen
           Gera:ten.

   Reduced Instruction Set Computer (RISC)

           Ein Ansatz im Prozessordesign, bei dem die von der
           Hardware durchzufu:hrenden Operationen so weit als
           mo:glichst vereinfacht und verallgemeinert werden.
           Vorteile dieses Design sind ein geringerer
           Energieverbrauch, eine geringere Transistoranzahl und
           u:bersichtlicherer Code. Zu den RISC-Plattformen geho:ren
           Alpha, SPARC, ARM sowie PowerPC.

   Redundant Array of Inexpensive Disks (RAID)

   Remote Procedure Call (RPC)

   repocopy

           Siehe: Repository Copy

   Repository Copy

           Eine direkte Kopie von Dateien innerhalb eines
           Repositories.

           Ohne eine Repocopy mu:sste ein Committer eine Datei mit
           cvs add an der neuen Position einfu:gen und mit cvs rm an
           der alten Position lo:schen.

           Der Nachteil dieser Methode wa:re allerdings, dass dabei
           die Datei-Historie (also die CVS-Logs) nicht an die neue
           Position kopiert werden wu:rde. Da das FreeBSD-Project
           diese Informationen als a:sserst nu:tzlich ansieht, wird
           stattdessen ha:fig eine Repocopy durchgefu:hrt. Bei diesem
           Prozess kopiert ein Repositoy Meister die Datei direkt
           innerhalb des Repository an die neue Position, statt
           cvs(1) einzusetzen.

   Request For Comments (RFC)

           Eine Sammlung von Dokumenten, die wichtige
           Internetstandards, Protokolle und so weiter definieren und
           die unter www.rfc-editor.org zu finden sind.

           Kann aber auch allgemein verwendet werden, wenn jemand
           eine A:nderung vorschla:gt und dazu Feedback mo:chte.

   Request To Send (RTS)

           Ein RS232C-Signal, das der Gegenstelle signalisiert, dass
           sie mit dem Senden der Daten beginnen kann.

           Siehe auch: Clear To Send.

   Router Advertisement (RA)

                                   S

   SCI

           Siehe: System Control Interrupt

   SCSI

           Siehe: Small Computer System Interface

   SG

           Siehe: Signal Ground

   SMB

           Siehe: Server Message Block

   SMP

           Siehe: Symmetric MultiProcessor

   SMTP

           Siehe: Simple Mail Transfer Protocol

   SMTP AUTH

           Siehe: SMTP Authentication

   SSH

           Siehe: Secure Shell

   STR

           Siehe: Suspend To RAM

   SVN

           Siehe: Subversion

   SMTP Authentication (SMTP AUTH)

   Server Message Block (SMB)

   Signal Ground (SG)

           Ein RS232-Pin oder -Draht, der als Untergrundreferenz fu:r
           das Signal verwendet wird.

   Simple Mail Transfer Protocol (SMTP)

   Secure Shell (SSH)

   Small Computer System Interface (SCSI)

   Subversion (SVN)

           Subversion ist ein Versionskontrollsystem, a:hnlich wie
           CVS, aber mit einer gro:sseren Liste von Eigenschaften.

           Siehe auch: Concurrent Versions System.

   Suspend To RAM (STR)

   Symmetric MultiProcessor (SMP)

   System Control Interrupt (SCI)

                                   T

   TCP

           Siehe: Transmission Control Protocol

   TCP/IP

           Siehe: Transmission Control Protocol/Internet Protocol

   TD

           Siehe: Transmitted Data

   TFTP

           Siehe: Trivial FTP

   TGT

           Siehe: Ticket-Granting Ticket

   TSC

           Siehe: Time Stamp Counter

   Ticket-Granting Ticket (TGT)

   Time Stamp Counter (TSC)

           Ein interner Za:hler bei modernen Pentium-Prozessoren, der
           die Ticks der core frequency clock bestimmt.

   Transmission Control Protocol (TCP)

           Ein Protokoll, das auf dem IP-Protokoll aufsetzt. Es
           garantiert, dass Datenpakete zuverla:ssig und geordnet
           transportiert werden.

   Transmission Control Protocol/Internet Protocol (TCP/IP)

           Die Kombination aus TCP- und IP-Protokoll. Ein Grossteil
           des Internets basiert auf TCP/IP.

   Transmitted Data (TD)

           Ein RS232C-Pin oder -Draht, u:ber den Daten verschickt
           werden.

           Siehe auch: Received Data.

   Trivial FTP (TFTP)

                                   U

   UDP

           Siehe: User Datagram Protocol

   UFS1

           Siehe: Unix File System Version 1

   UFS2

           Siehe: Unix File System Version 2

   UID

           Siehe: User ID

   URL

           Siehe: Uniform Resource Locator

   USB

           Siehe: Universal Serial Bus

   Uniform Resource Locator (URL)

           Eine Methode um eine Ressource, z.B. ein Dokument im
           Internet, zu lokalisieren und eine Art, diese Ressource zu
           identifizieren.

   Unix File System Version 1 (UFS1)

           Das Original UNIX Dateisystem, manchmal auch das Berkeley
           Fast File System genannt.

   Unix File System Version 2 (UFS2)

           Eine Erweiterung fu:r UFS1, eingefu:hrt in
           FreeBSD5-CURRENT. UFS2 entha:lt 64-bit Blockzeiger
           (durchbricht dadurch die 1T Grenze), Unterstu:tzung fu:r
           extended file storage und andere Merkmale.

   Universal Serial Bus (USB)

           Ein Hardware-Standard, der verwendet wird um eine grosse
           Vielfalt von Computerperipherie an eine einheitliche
           Schnittstelle anzuschliessen.

   User ID (UID)

           Eine eindeutige Nummer, die einem Benutzer eines Computers
           zugewiesen wird. Kann zur Identifizierung von zugewiesenen
           Ressourcen und Berechtigungen verwendet werden.

   User Datagram Protocol (UDP)

           Ein einfaches, nicht-zuverla:ssiges Protokoll fu:r
           Datagramme, das beim Datenaustausch in einem TCP/IP
           Netzwerk benutzt wird. UDP entha:lt keine
           Fehleru:berpru:fung und -korrektur wie TCP.

                                   V

   VPN

           Siehe: Virtual Private Network

   Virtual Private Network (VPN)

           Eine Methode ein o:ffentliches Netzwerk wie das Internet
           zu nutzen, um einen entfernten Zugriff auf ein lokales
           Netz, wie etwa ein Unternehmens-LAN, zu ermo:glichen.

     --------------------------------------------------------------

                                Kolophon

   Dieses Buch ist aus den Beitra:gen vieler Freiwilliger zum
   "FreeBSD Documentation Project" entstanden. Der Text ist in SGML
   entsprechend der Docbook DTD verfasst. Mit Hilfe von Jade, einem
   Open Source DSSSL-Prozessor, wird er in verschiedene Formate
   umgewandelt. Die Umwandlung wird von Norm Walsh's DSSSL
   Stylesheets und eigens entwickelten Stylesheets gesteuert. Die
   gedruckte Ausgabe des Buchs wa:re ohne die
   Satzbeschreibungssprache TeX von Donald Knuth, LaTeX von Leslie
   Lamport oder den JadeTeX-Makros von Sebastian Rahtz nicht
   mo:glich.

  Fussnoten

   [1]  Genau das ist mit i386 gemeint. Auch wenn Ihr System keine    
        Intel 386 CPU besitzt, wird i386 ausgegeben. Es wird immer    
        die Architektur und nicht der Typ des Prozessors ausgegeben.  
   [2]  Startskripten sind Programme, die FreeBSD automatisch bei     
        jedem Startvorgang ausfu:hrt. Der Zweck der Skripte besteht   
        darin, das System zu konfigurieren und nu:tzliche Dienste im  
        Hintergrund zu starten.                                       
   [3]  Eine recht technische und genaue Beschreibung der             
        FreeBSD-Konsole und der Tastatur-Treiber finden Sie in den    
        Hilfeseiten syscons(4), atkbd(4), vidcontrol(1) und           
        kbdcontrol(1). Lesen Sie diese Seiten, wenn Sie an den        
        Einzelheiten interessiert sind.                               
   [4]  Das stimmt nicht ganz: Es gibt Fa:lle, in denen ein Prozess   
        nicht unterbrochen werden kann. Wenn der Prozesss zum         
        Beispiel eine Datei von einem anderen Rechner auf dem         
        Netzwerk liest und dieser Rechner aus irgendwelchen Gru:nden  
        nicht erreichbar ist (ausgeschaltet, oder ein                 
        Netzwerkfehler), dann ist der Prozess nicht zu unterbrechen.  
        Wenn der Prozess den Lesezugriff nach einem Timeout von       
        typischerweise zwei Minuten aufgibt, dann wir er beendet.     
   [5]  Der verwendete Algorithmus setzt maxusers auf die             
        Speichergro:sse des Systems. Der minimale Wert betra:gt dabei 
        32, das Maximum ist 384.                                      
   [6]  Ausser Sie verwenden, wie in Kapitel 27 besprochen,           
        zusa:tzliche Terminals                                        
   [7]  Fu:r UIDs und GIDs ko:nnen Zahlen bis einschliesslich         
        4294967295 verwendet werden. Allerdings ko:nnen solche IDs    
        erhebliche Probleme mit Anwendungen verursachen, die Annahmen 
        u:ber den Wertebereich der IDs treffen.                       
   [8]  Pipeline = Leitung. Mit Pipes sind Verbindungen zwischen zwei 
        Sockets in meistens zwei verschiedenen Prozessen gemeint.     
   [9]  IPC steht fu:r Interprocess Communication.                    
   [10] Unter FreeBSD darf das System-Passwort maximal 128 Zeichen    
        lang sein.                                                    
   [11] Andere Vorbedingungen fu:hren natu:rlich zu anderen Fehlern.  
        Zum Beispiel wenn das Objekt nicht dem Nutzer geho:rt, der    
        das Label a:ndern mo:chte, das Objekt vielleicht gar nicht    
        existiert oder es sich um ein nur lesbares Objekt handelt.    
        Oder eine verbindliche Richtlinie erlaubt dem Prozess die     
        Vera:nderung des Labels nicht, weil die Eigenschaften der     
        Datei, die Eigenschaften des Prozesses oder der Inhalt des    
        neuen Labels nicht akzeptiert werden. Beispiel: Ein Anwender  
        mit geringer Vertraulichkeit versucht, das Label einer Datei  
        mit hoher Vertraulichkeit zu a:ndern. Oder er versucht, eine  
        Datei mit geringer Vertraulichkeit zu einer Datei mit hoher   
        Vertraulichkeit zu machen.                                    
   [12] Die Auswahl einer sicheren und leicht zu merkenden Passphrase 
        wird auf der Webseite Diceware Passphrase beschrieben.        
   [13] RAID steht fu:r Redundant Array of Inexpensive Disks und      
        bietet verschiedene Formen der Fehlertorleranz, obwohl der    
        letzte Begriff etwas irrefu:hrend ist, da RAID keine          
        Redundanz bietet.                                             
   [14] Mit C-char Zeichensa:tzen werden Zeichensa:tze bezeichnet,    
        die zur Codierung den C-Datentyp char verwenden.              
   [15] Das stimmt nicht ganz. Obwohl wir alte FreeBSD Releases fu:r  
        einige Jahre unterstu:tzen, ko:nnen wir sie nicht ewig        
        unterstu:tzen. Eine vollsta:ndige Beschreibung der            
        Sicherheitspolitik fu:r alte FreeBSD Releases entnehmen Sie   
        bitte http://www.FreeBSD.org/security/.                       
   [16] Von engl. to pull = ziehen. Der Client holt sich bei dieser   
        Methode die Dateien ab.                                       
   [17] Von engl. to push = schieben. Der Server schickt dem Client   
        die Dateien.                                                  
   [18] Mailbox = Post- beziehungsweise Briefkasten                   
   [19] Tags sind symbolische Namen, die im Repository vergeben       
        werden.                                                       
   [20] Abku:rzung fu:r "CVS Through eMail"                           
   [21] http://www.freebsd.org/news/status/                           

     --------------------------------------------------------------

     Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
                   <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail
                an <de-bsd-translators@de.FreeBSD.org>.
