harden-doc 3.19 - en to de translation catalogue (422 entries)

en: After installation
de: Nach der Installation

en: Once the system is installed you can still do more to secure the system; some of the steps described in this chapter can be taken. Of course this really depends on your setup but for physical access prevention you should read <xref linkend="bios-boot" />,<xref linkend="lilo-passwd" />, <xref linkend="kernel-root-prompt" />, <xref linkend="restrict-console-login" />, and <xref linkend="restrict-reboots" />.
de: Wenn das System installiert ist, können Sie es noch weiter absichern, indem Sie einige der in diesem Kapitel beschriebenen Schritte ausführen. Natürlich hängt dies vor allem von Ihrer Einrichtung ab, aber um physischen Zugriff zu verhindern, sollten Sie <xref linkend="bios-boot"/>, <xref linkend="lilo-passwd"/>, <xref linkend="kernel-root-prompt"/>, <xref linkend="restrict-console-login"/> und <xref linkend="restrict-reboots"/> lesen.

en: Before connecting to any network, especially if it's a public one you should, at the very least, execute a security update (see <xref linkend="security-update" />). Optionally, you could take a snapshot of your system (see <xref linkend="snapshot" />).
de: Bevor Sie sich mit einem Netzwerk verbinden, insbesondere wenn es sich um ein öffentliches Netzwerk handelt, sollten Sie wenigstens eine Sicherheitsaktualisierung (siehe <xref linkend="security-update"/>) durchführen. Daneben können Sie auch einen Schnappschuss Ihres Systems machen (siehe <xref linkend="snapshot"/>).

en: Subscribe to the Debian Security Announce mailing list
de: Abonnement der Security-Announce-Mailingliste von Debian

en: In order to receive information on available security updates you should subscribe yourself to the debian-security-announce mailing list in order to receive the Debian Security Advisories (DSAs). See <xref linkend="debian-sec-team" /> for more information on how the Debian security team works. For information on how to subscribe to the Debian mailing lists read <ulink url="http://lists.debian.org" />.
de: Um Informationen zu verfügbaren Sicherheitsaktualisierungen und die Debian-Sicherheits-Ankündigungen (DSA) zu erhalten, sollten Sie Debians Security-Announce-Mailingliste abonnieren. Lesen Sie <xref linkend="debian-sec-team"/> für weitere Informationen, wie das Sicherheitsteam von Debian arbeitet. Hinweise, wie Sie die Mailinglisten von Debian abonnieren, finden Sie unter <ulink url="http://lists.debian.org"/>.

en: DSAs are signed with the Debian Security Team's signature which can be retrieved from <ulink url="http://security.debian.org" />.
de: DSAs werden mit der Signatur des Sicherheitsteams von Debian unterschrieben, die unter <ulink url="http://security.debian.org"/> erhältlich ist.

en: You should consider, also, subscribing to the <ulink url="http://lists.debian.org/debian-security" /> for general discussion on security issues in the Debian operating system. You will be able to contact other fellow system administrators in the list as well as Debian developers and upstream developers of security tools who can answer your questions and offer advice.
de: Sie sollten in Betracht ziehen, auch die <ulink url="http://lists.debian.org/debian-security" name="Mailingliste debian-security"/> zu abonnieren. Dort finden allgemeine Diskussionen zu Sicherheitsthemen im Betriebssystem Debian statt. Sie können auf der Liste sowohl mit gleichgesinnten Systemadministratoren als auch mit Entwicklern von Debian und Programmautoren in Kontakt treten. Diese werden Ihre Fragen beantworten und Ihnen Ratschläge geben.

en: Execute a security update
de: Ausführen von Sicherheitsaktualisierungen

en: As soon as new security bugs are detected in packages, Debian maintainers and upstream authors generally patch them within days or even hours. After the bug is fixed, a new package is provided on <ulink url="http://security.debian.org" />.
de: Sobald neue Sicherheitslöcher in einem Paket entdeckt wurden, reparieren sie Debians Paketbetreuer und Originalautoren im Allgemeinen innerhalb von Tagen oder sogar Stunden. Nachdem das Loch gestopft wurde, werden neue Pakete unter <ulink name="http://security.debian.org" url="http://security.debian.org"/> bereit gestellt.

en: If you are installing a Debian release you must take into account that since the release was made there might have been security updates after it has been determined that a given package is vulnerable. Also, there might have been minor releases (there have been four for the Debian 3.0 <emphasis>sarge</emphasis> release) which include these package updates.
de: Wenn Sie eine Debian-Veröffentlichung installieren, müssen Sie berücksichtigen, dass es seit der Veröffentlichung Sicherheitsaktualisierungen gegeben haben könnte, nachdem entdeckt wurde, dass ein bestimmtes Paket verwundbar ist. Ebenso könnte es Zwischenveröffentlichungen gegeben haben, die diese Paketaktualisierungen enthalten. Für Debian 3.1 <emphasis>Sarge</emphasis> gab es vier Zwischenveröffentlichungen.

en: During installation security updates are configured for your system and pending updates downloaded and applied, unless you specifically opt out of this or the system was not connected to the Internet. The updates are applied even before the first boot, so the new system starts its life as up to date as possible.
de: Während der Installation werden Sicherheitsaktualisierungen für Ihr System eingerichtet, offene Sicherheitsaktualisierungen heruntergeladen und Ihrem System hinzugefügt, sofern Sie sich nicht explizit dagegen entscheiden oder keine Internetverbindung besteht. Die Aktualisierungen werden noch vor dem ersten Systemstart eingespielt, damit das neue System sein Leben so aktuell wie möglich beginnt.

en: To manually update the system, put the following line in your <filename>sources.list</filename> and you will get security updates automatically, whenever you update your system. Replace <replaceable>[CODENAME]</replaceable> with the release codename, e.g. <emphasis>squeeze</emphasis>.
de: Um Ihr System manuell zu aktualisieren, fügen Sie die folgende Zeile in Ihre <filename>/etc/apt/sources.list</filename> ein. So werden Sie Sicherheitsaktualisierungen automatisch erhalten, wann immer Sie Ihr System aktualisieren. Ersetzen Sie <replaceable>[CODENAME]</replaceable> mit dem Namen der Veröffentlichung, z.B. mit <emphasis>squeeze</emphasis>.

en: <emphasis>Note</emphasis>: If you are using the <emphasis>testing</emphasis> branch use the security testing mirror sources as described in <xref linkend="security-support-testing" />.
de: <emphasis>Hinweis:</emphasis> Falls Sie den <emphasis>Testing</emphasis>-Zweig einsetzen, sollten Sie die Sicherheitsspiegel für Testing verwenden. Das wird unter <xref linkend="security-support-testing"/> beschrieben.

en: Once you've done this you can use multiple tools to upgrade your system. If you are running a desktop system you will have<footnote><para>In <emphasis>Etch</emphasis> and later releases</para></footnote> an application called <command>update-notifier</command> that will make it easy to check if new updates are available, by selecting it you can make a system upgrade from the desktop (using <command>update-manager</command>). For more information see <xref linkend="update-desktop" />. In desktop environments you can also use <application>synaptic</application> (GNOME), <application>kpackage</application> or <application>adept</application> (KDE) for more advanced interfaces. If you are running a text-only terminal you can use <application>aptitude</application>, <application>apt</application> or <application>dselect</application> (deprecated) to upgrade:
de: Wenn Sie dies erledigt haben, stehen Ihnen zahlreiche Werkzeuge zur Verfügung, mit denen Sie Ihr System aktualisieren können. Wenn Sie ein Desktop-System einsetzen, können Sie eine Anwendung mit dem Namen <command>Update-notifier</command> verwenden<footnote><para>Ab <emphasis>Etch</emphasis> und den folgenden Veröffentlichungen.</para></footnote>, mit der Sie leicht prüfen können, ob neue Aktualisierungen verfügbar sind. Damit können Sie Ihr System auch über den Desktop auf den neusten Stand bringen (mit <command>update-manager</command>). Weitere Informationen finden Sie unter <xref linkend="update-desktop"/>. Für den Desktop können Sie auch <application>Synaptic</application> (GNOME), <application>Kpackage</application> oder <application>Adept</application> (KDE) einsetzen, die einen größeren Funktionsumfang aufweisen. Wenn Sie auf einem textbasierten Terminal arbeiten, stehen Ihnen <application>Aptitude</application>, <application>Apt</application> und <application>Dselect</application>, wobei letzteres veraltet ist, zur Verfügung:

en: If you want to use <application>aptitude</application>'s text interface you just have to press <emphasis>u</emphasis> (update) followed by <emphasis>g</emphasis> (to upgrade). Or just do the following from the command line (as root):
de: Falls Sie die textbasierte Oberfläche von <application>Aptitude</application> verwenden wollen, müssen Sie zunächst <emphasis>u</emphasis> (für Update) und dann <emphasis>g</emphasis> (für Upgrade) eingeben. Oder Sie führen auf der Befehlszeile Folgendes als Root aus:

en: If you want to use <application>apt</application> do just like with aptitude but substitute the <command>aptitude</command> lines above with <command>apt-get</command>.
de: Falls Sie <application>Apt</application> einsetzen möchten, müssen Sie obige Zeilen von <command>Aptitude</command> nur mit <command>apt-get</command> ersetzen.

en: If you want to use <application>dselect</application> then first [U]pdate, then [I]nstall and finally, [C]onfigure the installed/upgraded packages.
de: Falls Sie <application>dselect</application> verwenden wollen, müssen Sie zuerst aktualisieren ([U] für Update), dann installieren ([I] für Install) und schließlich die installieren/aktualisierten Pakete konfigurieren ([C] für Configure).

en: If you like, you can add the deb-src lines to <filename>/etc/apt/sources.list</filename> as well. See <citerefentry><refentrytitle>apt</refentrytitle><manvolnum>8</manvolnum></citerefentry> for further details.
de: Wenn Sie möchten, können Sie der Datei <filename>/etc/apt/sources.list</filename> die Zeilen mit deb-src hinzufügen. Weitere Details finden Sie unter <citerefentry><refentrytitle>apt</refentrytitle><manvolnum>8</manvolnum></citerefentry>.

en: Security update of libraries
de: Sicherheitsaktualisierungen für Bibliotheken

en: Once you have executed a security update you might need to restart some of the system services. If you do not do this, some services might still be vulnerable after a security upgrade. The reason for this is that daemons that are running before an upgrade might still be using the old libraries before the upgrade <footnote><para>Even though the libraries have been removed from the filesystem the inodes will not be cleared up until no program has an open file descriptor pointing to them.</para></footnote>.
de: Wenn Sie eine Sicherheitsaktualisierung durchgeführt haben, müssen Sie gegebenenfalls einige Dienste des Systems neu starten. Wenn Sie das nicht tun, könnten Dienste auch nach der Sicherheitsaktualisierung immer noch verwundbar sein. Das liegt daran, dass Daemonen, die schon vor einem Upgrade liefen, immer noch die alten Bibliotheken vor dem Upgrade verwenden könnten.<footnote><para>Selbst wenn die Bibliotheken aus dem Dateisystem entfernt wurden, werden die Inodes nicht beseitigt, bis kein Programm mehr einen offenen Dateideskriptor mit Verweis auf sie hat.</para></footnote> Um herauszufinden, welche Daemonen neu gestartet werden müssen, können Sie das Programm <command>Checkrestart</command> (ist im Paket <application>debian-goodies</application> enthalten) oder diesen Einzeiler (als Root) verwenden:<footnote><para>Je nach der Version von Lsof müssen Sie $8 statt $9 verwenden.</para></footnote>

en: Bringing the system to run level 1 (single user) and then back to run level 3 (multi user) should take care of the restart of most (if not all) system services. But this is not an option if you are executing the security upgrade from a remote connection (like ssh) since it will be severed.
de: Indem das System auf Runlevel 1 (Single User) und dann zurück auf Runlevel 3 (Multi User) gebracht wird, sollten die meisten (wenn nicht alle) Systemdienste neu gestartet werden. Dies ist aber keine Option, wenn Sie die Sicherheitsaktualisierung über eine Verbindung aus der Ferne (z.B. mit Ssh) vornehmen, da diese getrennt werden würde.

en: Excercise caution when dealing with security upgrades if you are doing them over a remote connection like ssh. A suggested procedure for a security upgrade that involves a service restart is to restart the SSH daemon and then, immediately, attempt a new ssh connection without breaking the previous one. If the connection fails, revert the upgrade and investigate the issue.
de: Lassen Sie Vorsicht walten, wenn Sie es mit Sicherheitsaktualisierungen über eine Verbindung aus der Ferne wie mit SSH zu tun haben. Die empfohlene Vorgehensweise für Sicherheits-Upgrades, die Dienste betreffen, ist, den SSH-Daemon neu zu starten und sofort zu versuchen, eine neue SSH-Verbindung herzustellen, ohne die alte zu beenden. Falls der Verbindungsversuch scheitern sollte, machen Sie das Upgrade rückgängig und untersuchen Sie das Problem.

en: Security update of the kernel
de: Sicherheitsaktualisierung des Kernels

en: First, make sure your kernel is being managed through the packaging system. If you have installed using the installation system from Debian 3.0 or previous releases, your kernel is <emphasis>not</emphasis> integrated into the packaging system and might be out of date. You can easily confirm this by running:
de: Stellen Sie zunächst sicher, dass Ihr Kernel durch das Paketsystem verwaltet wird. Wenn Sie die Installation mit dem Installationssystem von Debian 3.0 oder früher durchgeführt haben, ist Ihr Kernel <emphasis>nicht</emphasis> in das Paketsystem integriert und könnte veraltet sein. Sie können das leicht überprüfen, indem Sie Folgendes ausführen:

en: If your kernel is not being managed you will see a message saying that the package manager did not find the file associated to any package instead of the message above, which says that the file associated to the current running kernel is being provided by the <application>linux-image-2.6.18-4-686</application>. So first, you will need to manually install a kernel image package. The exact kernel image you need to install depends on your architecture and your prefered kernel version. Once this is done, you will be able to manage the security updates of the kernel just like those of any other package. In any case, notice that the kernel updates will <emphasis>only</emphasis> be done for kernel updates of the same kernel version you are using, that is, <command>apt</command> will not automatically upgrade your kernel from the 2.4 release to the 2.6 release (or from the 2.4.26 release to the 2.4.27 release<footnote><para>Unless you have installed a kernel metapackage like <application>linux-image-2.6-686</application> which will always pull in the latest kernel minor revision for a kernel release and a given architecture.</para></footnote>).
de: Wenn Ihr Kernel nicht vom Paketsystem verwaltet wird, werden Sie anstatt der obigen Nachricht die Rückmeldung bekommen, dass das Paketverwaltungsprogramm kein Paket finden konnte, das mit der Datei verbunden ist. Die obige Meldung besagt, dass die Datei, die mit dem laufenden Kernel verbunden ist, vom Paket <application>linux-image-2.6.18-4-686</application> zur Verfügung gestellt wird. Sie müssen also zuerst ein Paket mit einem Kernel-Image von Hand installieren. Das genaue Kernel-Image, das Sie installieren sollten, hängt von Ihrer Architektur und Ihrer bevorzugten Kernelversion ab. Wenn Sie das einmal erledigt haben, können Sie die Sicherheitsaktualisierungen des Kernels wie die jedes anderen Pakets durchführen. Beachten Sie allerdings, dass Kernelaktualisierungen <emphasis>nur</emphasis> für Aktualisierungen der gleichen Kernelversion wie der Ihrigen durchgeführt werden. D.h. <command>apt</command> wird nicht automatisch Ihren Kernel von 2.4 auf 2.6 aktualisieren (oder von 2.4.26 auf 2.4.27 <footnote><para>Es sei denn, Sie haben ein Kernel-Metapaket wie <application>linux-image-2.6-686</application> installiert, welches immer die neueste Minor-Version des Kernels einer Architektur installieren wird. </para></footnote>).

en: The installation system of recent Debian releases will handle the selected kernel as part of the package system. You can review which kernels you have installed by running:
de: Das Installationssystem von aktuellen Debian-Veröffentlichungen wird den gewählten Kernel als Teil des Paketsystems behandeln. So können Sie überprüfen, welche Kernel Sie installiert haben:

en: To see if your kernel needs to be updated run:
de: Um festzustellen, ob Ihr Kernel aktualisiert werden muss, führen Sie Folgendes aus:

en: 
    $ kernfile=`readlink -f /vmlinuz`
    $ kernel=`dpkg -S $kernfile | awk -F : '{print $1}'`
    $ apt-cache policy $kernel
    linux-image-2.6.18-4-686:
      Installed: 2.6.18.dfsg.1-12
      Candidate: 2.6.18.dfsg.1-12
      Version table:
     *** 2.6.18.dfsg.1-12 0
            100 /var/lib/dpkg/status
de: 
    $ kernfile=`readlink -f /vmlinuz`
    $ kernel=`dpkg -S $kernfile | awk -F : '{print $1}'`
    $ apt-cache policy $kernel
    linux-image-2.6.18-4-686:
      Installiert: 2.6.18.dfsg.1-12
      Installationskandidat: 2.6.18.dfsg.1-12
      Versionstabelle:
     *** 2.6.18.dfsg.1-12 0
            100 /var/lib/dpkg/status

en: If you are doing a security update which includes the kernel image you <emphasis>need</emphasis> to reboot the system in order for the security update to be useful. Otherwise, you will still be running the old (and vulnerable) kernel image.
de: Wenn Sie eine Sicherheitsaktualisierung durchführen, die auch das Kernel-Image umfasst, <emphasis>müssen</emphasis> Sie das System neu starten, damit die Sicherheitsaktualisierung Wirkung zeigen kann. Anderenfalls lassen Sie immer noch das alte (und verwundbare) Kernel-Image laufen.

en: If you need to do a system reboot (because of a kernel upgrade) you should make sure that the kernel will boot up correctly and network connectivity will be restored, specially if the security upgrade is done over a remote connection like ssh. For the former you can configure your boot loader to reboot to the original kernel in the event of a failure (for more detailed information read <ulink url="http://www.debian-administration.org/?article=70">Remotely rebooting Debian GNU/Linux machines</ulink>). For the latter you have to introduce a network connectivity test script that will check if the kernel has started up the network subsystem properly and reboot the system if it did not<footnote><para>A sample script called <ulink url="http://www.debian-administration.org/articles/70/testnet">testnet</ulink> is available in the <ulink url="http://www.debian-administration.org/?article=70"> Remotely rebooting Debian GNU/Linux machines</ulink> article. A more elaborate network connectivity testing script is available in this <ulink url="http://www.debian-administration.org/?article=128"> Testing network connectivity article.</ulink></para></footnote>. This should prevent nasty surprises like updating the kernel and then realizing, after a reboot, that it did not detect or configure the network hardware properly and you need to travel a long distance to bring the system up again. Of course, having the system serial console <footnote><para>Setting up a serial console is beyond the scope of this document, for more information read the <ulink url="http://www.tldp.org/HOWTO/Serial-HOWTO.html">Serial HOWTO</ulink> and the <ulink url="http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html"> Remote Serial Console HOWTO</ulink>.</para></footnote> in the system connected to a console or terminal server should also help debug reboot issues remotely.
de: Wenn Sie das System neu starten müssen (wegen eines Kernel-Upgrades), sollten Sie sicherstellen, dass der Kernel fehlerfrei booten wird und die Netzwerkverbindungen hergestellt werden, besonders wenn die Sicherheitsaktuali
    sierung über eine Verbindung aus der Ferne wie mit SSH durchgeführt wird. Für den ersten Fall können Sie Ihren Boot-Loader so konfigurieren, dass er den Originalkernel lädt, wenn ein Fehler auftritt (für weiterführende Informationen sollten Sie <ulink url="http://www.debian-administration.org/?article=70" name="Remotely rebooting Debian GNU/Linux machines"/> lesen). Im zweiten Fall müssen Sie ein Skript verwenden, das die Netzwerkverbindungen testen kann und überprüft, ob der Kernel das Netzwerksystem korrekt gestartet hat, und, wenn das nicht geschehen ist, das System neu startet <footnote><para> Ein Beispielskript mit dem Namen <ulink url="http://www.debian-administration.org/articles/70/testnet" name="testnet"/> ist im Artikel <ulink url="http://www.debian-administration.org/?article=70" name="Remotely rebooting Debian GNU/Linux machines"/> enthalten. Ein ausgereifteres Testskript befindet sich im Artikel <ulink url="http://www.debian-administration.org/?article=128" name="Testing network connectivity"/>.</para></footnote>. Dies sollte böse Überraschungen verhindern, wie wenn Sie den Kernel aktualisieren und dann nach einem Reboot merken, dass die Netzwerkhardware nicht richtig erkannt oder konfiguriert wurde, und Sie daher eine weite Strecke reisen müssen, um das System wieder zum Laufen zu bringen. Natürlich hilft es beim Debuggen von Reboot-Problemen aus der Ferne, wenn die serielle Konsole des Systems <footnote><para>Das Einrichten einer seriellen Konsole würde den Rahmen dieses Dokuments sprengen. Informationen dazu finden Sie im <ulink url="http://www.tldp.org/HOWTO/Serial-HOWTO.html" name="Serial HOWTO"/> und im <ulink url="http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html" name="Remote Serial Console HOWTO"/>. </para></footnote> mit einem Konsolen- oder Terminalserver verbunden ist.

en: Change the BIOS (again)
de: Änderen Sie das BIOS (noch einmal)

en: Remember <xref linkend="bios-passwd" />? Well, then you should now, once you do not need to boot from removable media, to change the default BIOS setup so that it <emphasis>only</emphasis> boots from the hard drive. Make sure you will not lose the BIOS password, otherwise, in the event of a hard disk failure you will not be able to return to the BIOS and change the setup so you can recover it using, for example, a CD-ROM.
de: Erinnern Sie sich an <xref linkend="bios-passwd"/>? Nun, jetzt sollten Sie, nachdem Sie nicht mehr von Wechseldatenträgern booten müssen, die Standard-BIOS-Einstellung ändern, so dass das System <emphasis>ausschließlich</emphasis> von der Festplatte bootet. Gehen Sie sicher, dass Sie Ihr BIOS-Passwort nicht verlieren, oder Sie werden nicht mehr ins BIOS zurückkehren können, um die Einstellung wieder zu ändern, damit Sie im Falle eines Festplattenfehlers Ihr System wiederherstellen können, indem Sie zum Beispiel eine CD-ROM benutzen.

en: Another less secure but more convenient way is to change the setup to have the system boot up from the hard disk and, if it fails, try removable media. By the way, this is often done because most people don't use the BIOS password that often; it's easily forgotten.
de: Eine andere, weniger sichere, aber bequemere Möglichkeit ist es, das BIOS so einzustellen, dass es von der Festplatte bootet, und nur falls dies fehlschlägt zu versuchen, von austauschbaren Datenträgern zu booten. Übrigens wird dies oft so gemacht, weil viele Leute ihr BIOS-Passwort nur selten benutzen, so dass sie es leicht vergessen.

en: Set a LILO or GRUB password
de: Ein Passwort für LILO oder GRUB einstellen

en: Anybody can easily get a root-shell and change your passwords by entering
de: Jeder kann sehr einfach eine Root-Shell auf Ihrem System bekommen, indem er einfach

en: at the boot prompt. After changing the passwords and rebooting the system, the person has unlimited root-access and can do anything he/she wants to the system. After this procedure you will not have root access to your system, as you do not know the root password.
de: am Bootprompt eingibt. Nachdem die Passwörter geändert und das System neu gestartet wurde, hat die Person uneingeschränkten Root-Zugang und kann nach Belieben alles auf Ihrem System machen. Nach dieser Prozedur haben Sie keinen Root-Zugang mehr zu Ihrem System, weil Sie das Root-Passwort nicht kennen.

en: To make sure that this cannot happen, you should set a password for the boot loader. You can choose between a global password or a password for a certain image.
de: Um sicher zu stellen, dass dies nicht passieren kann, sollten Sie den Boot-Loader mit einem Passwort schützen. Sie können zwischen einem globalen Passwort und Passwörtern für bestimmte Images wählen.

en: For LILO you need to edit the config file <filename>/etc/lilo.conf</filename> and add a <userinput>password</userinput> and <userinput>restricted</userinput> line as in the example below.
de: Für LILO müssen Sie die Konfigurationsdatei <filename>/etc/lilo.conf</filename> bearbeiten und eine <userinput>password</userinput>- und <userinput>restricted</userinput>-Zeile, wie im folgenden Beispiel, einfügen:

en: 
      image=/boot/2.2.14-vmlinuz
         label=Linux
         read-only
         password=hackme
         restricted
de: 
      image=/boot/2.2.14-vmlinuz
         label=Linux
         read-only
         password=hackmich
         restricted

en: Then, make sure that the configuration file is not world readable to prevent local users from reading the password. When done, rerun lilo. Omitting the <literal>restricted</literal> line causes lilo to always prompt for a password, regardless of whether LILO was passed parameters. The default permissions for <filename>/etc/lilo.conf</filename> grant read and write permissions to root, and enable read-only access for <filename>lilo.conf</filename>'s group, root.
de: Stellen Sie danach sicher, dass die Konfigurationsdatei nicht für alle lesbar ist, um zu verhindern, dass lokale Benutzer das Passwort lesen können. Haben Sie dies getan, rufen Sie lilo auf. Wenn Sie die <literal>restricted</literal>-Zeile weglassen, wird LILO immer nach dem Passwort fragen, egal ob LILO Parameter übergeben wurden oder nicht. Die Standard-Zugriffsrechte auf <filename>/etc/lilo.conf</filename> erlauben Root das Lesen und Schreiben und der Gruppe von lilo.conf, ebenfalls Root, das Lesen.

en: If you use GRUB instead of LILO, edit <filename>/boot/grub/menu.lst</filename> and add the following two lines at the top (substituting, of course <userinput>hackme</userinput> with the desired password). This prevents users from editing the boot items. <userinput>timeout 3</userinput> specifies a 3 second delay before <command>grub</command> boots the default item.
de: Wenn Sie GRUB anstelle von LILO verwenden, bearbeiten Sie <filename>/boot/grub/menu.lst</filename> und fügen Sie die folgenden zwei Zeilen am Anfang ein (dabei ersetzen Sie natürlich <literal>hackmich</literal> mit dem vorgesehenen Passwort). Dies verhindert, dass Benutzer die Booteinträge verändern können. <literal>timeout 3</literal> legt eine Wartedauer von 3 Sekunden fest, bevor <command>Grub</command> den Standard-Eintrag bootet.

en: 
      timeout 3
      password hackme
de: 
      timeout 3
      password hackmich

en: To further harden the integrity of the password, you may store the password in an encrypted form. The utility <command>grub-md5-crypt</command> generates a hashed password which is compatible with GRUB's encrypted password algorithm (MD5). To specify in <command>grub</command> that an MD5 format password will be used, use the following directive:
de: Um die Integrität Ihres Passwortes zusätzlich abzusichern, können Sie Ihr Passwort verschlüsselt ablegen. Das Dienstprogramm <command>grub-md5-crypt</command> erzeugt ein gehashtes Passwort, das mit GRUBs Verschlüsselungsalgorithmus (MD5) kompatibel ist. Um <command>Grub</command> mitzuteilen, dass ein Passwort im MD5-Format verwendet wird, benutzen Sie die folgende Anweisung:

en: The --md5 parameter was added to instruct <command>grub</command> to perform the MD5 authentication process. The provided password is the MD5 encrypted version of hackme. Using the MD5 password method is preferable to choosing its clear-text counterpart. More information about <command>grub</command> passwords may be found in the <application>grub-doc</application> package.
de: Der Parameter --md5 wurde hinzugefügt, um bei <command>Grub</command> einen MD5-Authentifizierungsprozess zu erzwingen. Das angegebene Passwort ist die mit MD5 verschlüsselte Version von »hackmich«. MD5-Passwörter sind Klartext-Passwörtern vorzuziehen. Weitere Informationen über <command>Grub</command>-Passwörter können Sie im Paket <application>grub-doc</application> finden.

en: Disable root prompt on the initramfs
de: Entfernen des Root-Prompts von Initramfs

en: Note: This applies to the default kernels provided for releases after Debian 3.1
de: Hinweis: Dies betrifft alle Standard-Kernel, die nach Debian 3.1 veröffentlicht wurden.

en: Linux 2.6 kernels provide a way to access a root shell while booting which will be presented during loading the initramfs on error. This is helpful to permit the administrator to enter a rescue shell with root permissions. This shell can be used to manually load modules when autodetection fails. This behavior is the default for <command>initramfs-tools</command> generated initramfs. The following message will appear:
de: Die Linux-Kernel 2.6 enthalten die Möglichkeit, während des Bootvorgangs auf eine Root-Shell zuzugreifen. Dies geschieht, wenn beim Laden von Initramfs ein Fehler auftritt. Dadurch kann der Administrator auf eine Rettungs-Shell mit Root-Rechten zugreifen. Mit dieser Shell können von Hand Module geladen werden, falls eine automatische Erkennung scheitern sollte. Dieses Verhalten ist Standard für ein von <command>Initramfs-tools</command> erzeugtes Initramfs. Folgende Fehlermeldung wird auftreten:

en: 
      "ALERT!  /dev/sda1 does not exist.  Dropping to a shell!
de: 
      "ALERT!  /dev/sda1 does not exist.  Dropping to a shell! <!-- SB: keine deutsche Übersetzung? -->

en: In order to remove this behavior you need to set the following boot argument:<emphasis>panic=0</emphasis>. Add this to the variable <varname>GRUB_CMDLINE_LINUX</varname> in <filename>/etc/default/grub</filename> and issue <command>update-grub</command> or to the append section of <filename>/etc/lilo.conf</filename>.
de: Um dieses Verhalten abzuschalten, müssen Sie folgenden Boot-Parameter setzen: <emphasis>panic=0</emphasis>. Sie können ihn entweder in den Abschnitt »kopt« in <filename>/boot/grub/menu.lst</filename> eintragen und <command>update-grub</command> ausführen oder ihn dem Abschnitt »append« von <filename>/etc/lilo.conf</filename> hinzufügen.

en: Remove root prompt on the kernel
de: Entfernen des Root-Promptes aus dem Kernel

en: Note: This does not apply to the kernels provided for Debian 3.1 as the timeout for the kernel delay has been changed to 0.
de: Hinweis: Dies trifft nicht auf Kernel zu, die in Debian 3.1 enthalten sind, da die Wartezeit auf Null verändert wurde.

en: Linux 2.4 kernels provide a way to access a root shell while booting which will be presented just after loading the cramfs file system. A message will appear to permit the administrator to enter an executable shell with root permissions, this shell can be used to manually load modules when autodetection fails. This behavior is the default for <command>initrd</command>'s <filename>linuxrc</filename>. The following message will appear:
de: Linux 2.4-Kernel bieten kurz nach dem Laden des Cramfs einen Weg, Zugriff auf eine Root-Shell zu bekommen, also während das System bootet. Es erscheint eine Meldung, die dem Administrator erlaubt, eine ausführbare Shell mit Root-Privilegien zu öffnen. Diese Shell kann dazu benutzt werden, manuell Module zu laden, falls die automatische Erkennung fehlschlägt. Dies ist das Standard-Verhalten bei <command>initrd</command>'s <filename>linuxrc</filename>. Die folgende Meldung wird erscheinen:

en: 
      Press ENTER to obtain a shell (waits 5 seconds)
de: 
      Press ENTER to obtain a shell (waits 5 seconds) <!-- SB: keine deutsche Übersetzung? -->

en: In order to remove this behavior you need to change <filename>/etc/mkinitrd/mkinitrd.conf</filename> and set:
de: Um dieses Verhalten zu entfernen, müssen Sie <filename>/etc/mkinitrd/mkinitrd.conf</filename> bearbeiten und folgenden Eintrag setzen:

en: 
      # DELAY  The  number  of seconds the linuxrc script should wait to
      # allow the user to interrupt it before the system is brought up
      DELAY=0
de: 
      # DELAY  Anzahl Sekunden, die das linuxrc Skript warten soll, 
      # um den Benutzer Eingriffe zu erlauben, bevor das System hochgefahren
      # wird
      DELAY=0

en: Then regenerate your ramdisk image. You can do this for example with:
de: Erstellen Sie anschließend Ihr Ramdisk-Image neu. Dies können Sie zum Beispiel so tun:

en: or (preferred):
de: oder (vorzugsweise) so:

en: Restricting console login access
de: Einschränkung der Anmeldemöglichkeiten an der Konsole

en: Some security policies might force administrators to log in to the system through the console with their user/password and then become superuser (with <command>su</command> or <command>sudo</command>). This policy is implemented in Debian by editing the <filename>/etc/pam.d/login</filename> and the <filename>/etc/securetty</filename> when using PAM:
de: Manche Sicherheitsrichtlinien können Administratoren dazu zwingen, sich erst als Benutzer mit ihrem Passwort auf dem System einzuloggen und dann Superuser zu werden (mit <command>Su</command> oder <command>Sudo</command>). Eine solche Richtlinie wird in Debian durch Bearbeitung der Dateien <filename>/etc/pam.d/login</filename> und <filename>/etc/securetty</filename> (falls Sie PAM verwenden) implementiert.

en: <filename>/etc/pam.d/login</filename> In older Debian releases you would need to edit <filename>login.defs</filename>, and use the CONSOLE variable which defines a file or list of terminals on which root logins are allowed. enables the pam_securetty.so module. This module, when properly configured will not ask for a password when the root user tries to login on an insecure console, rejecting access as this user.
de: Die Datei <filename>/etc/pam.d/login</filename> In älteren Debian-Veröffentlichungen müssen Sie in der Datei <filename>login.defs</filename> die CONSOLE-Variable ändern, die eine Datei oder eine Liste von Terminals definiert, an denen sich Root anmelden darf. aktiviert das Modul pam_securetty.so. Wenn es richtig konfiguriert ist, wird Root, wenn er sich auf einer unsicheren Konsole anmelden will, nicht nach einem Passwort gefragt, sondern sein Anmeldeversuch wird abgelehnt.

en: <filename>securetty</filename> The <filename>/etc/securetty</filename> is a configuration file that belongs to the <application>login</application> package. by adding/removing the terminals to which root access will be allowed. If you wish to allow only local console access then you need <emphasis>console</emphasis>, <emphasis>ttyX</emphasis> Or <emphasis>ttyvX</emphasis> in GNU/FreeBSD, and <emphasis>ttyE0</emphasis> in GNU/KNetBSD. and <emphasis>vc/X</emphasis> (if using <emphasis>devfs</emphasis> devices), you might want to add also <emphasis>ttySX</emphasis> Or <emphasis>comX</emphasis> in GNU/Hurd, <emphasis>cuaaX</emphasis> in GNU/FreeBSD, and <emphasis>ttyXX</emphasis> in GNU/KNetBSD. if you are using a serial console for local access (where X is an integer, you might want to have multiple instances. The default configuration for <emphasis>Wheezy</emphasis> The default configuration in <emphasis>woody</emphasis> includes 12 local tty and vc consoles, as well as the <emphasis>console</emphasis> device but does not allow remote logins. In <emphasis>sarge</emphasis> the default configuration provides 64 consoles for tty and vc consoles. includes many tty devices, serial ports, vc consoles as well as the X server and the <emphasis>console</emphasis> device. You can safely adjust this if you are not using that many consoles. You can confirm the virtual consoles and the tty devices you have by reviewing <filename>/etc/inittab</filename> Look for the <emphasis>getty</emphasis> calls. . For more information on terminal devices read the <ulink url="http://tldp.org/HOWTO/Text-Terminal-HOWTO-6.html">Text-Terminal-HOWTO </ulink>
de: In <filename>securetty</filename><footnote><para> Die Datei <filename>/etc/securetty</filename> ist eine Konfigurationsdatei, die zum Paket <application>login</application> gehört.</para></footnote> entfernen Sie oder fügen Sie Terminals hinzu, auf denen sich Root anmelden darf. Falls Sie nur lokalen Zugang zur Konsole erlauben wollen, benötigen Sie <emphasis>console</emphasis>, <emphasis>ttyX</emphasis> <footnote><para>Oder <emphasis>ttyvX</emphasis> unter GNU/FreeBSD und <emphasis>ttyE0</emphasis> unter GNU/KNetBSD.</para> </footnote> und <emphasis>vc/X</emphasis> (falls Sie die <emphasis>devfs</emphasis>-Schnittstelle verwenden). Sie sollten auch <emphasis>ttySX</emphasis> <footnote><para>Oder <emphasis>comX</emphasis> unter GNU/Hurd, <emphasis>cuaaX</emphasis> unter GNU/FreeBSD und <emphasis>ttyXX</emphasis> unter GNU/KNetBSD. </para></footnote> hinzufügen, wenn Sie eine serielle Konsole für den lokalen Zugang verwenden (wobei X eine ganze Zahl ist; es kann wünschenswert sein, mehrere Instanzen zu verwenden). Die Standardeinstellung in <emphasis>Wheezy</emphasis> <footnote><para>Die Standardeinstellung in <emphasis>Woody</emphasis> beinhaltet zwölf lokale tty- und virtuelle Konsolen und die <emphasis>console</emphasis>-Schnittstelle. Anmeldungen aus der Ferne sind nicht erlaubt. In <emphasis>Sarge</emphasis> stellt die Standardeinstellung 64 Konsolen für tty- und virtuelle Konsolen zu Verfügung. </para></footnote> beinhaltet viele tty-Konsolen, serielle Schnittstellen und virtuelle Konsolen sowie den X-Server und das <emphasis>console</emphasis>-Gerät. Sie können das ohne Probleme anpassen, wenn Sie nicht derartige viele Konsolen benutzen. Sie können die Anzahl der Konsolen und Schnittstellen in <filename>/etc/inittab</filename> überprüfen <footnote><para>Achten Sie auf die <emphasis>getty</emphasis> Einträge. </para></footnote>. Weiterführende Informationen zu Terminal-Schnittstellen finden Sie im <ulink url="http://tldp.org/HOWTO/Text-Terminal-HOWTO-6.html" name="Text-Terminal-HOWTO"/>.

en: When using PAM, other changes to the login process, which might include restrictions to users and groups at given times, can be configured in <filename>/etc/pam.d/login</filename>. An interesting feature that can be disabled is the possibility to login with null (blank) passwords. This feature can be limited by removing <emphasis>nullok</emphasis> from the line:
de: Wenn Sie PAM benutzen, können Sie auch andere Änderungen am Login-Prozess, die auch Einschränkungen für einzelne Benutzer oder Gruppen zu bestimmten Zeiten enthalten können, durch Konfiguration der Datei <filename>/etc/pam.d/login</filename> vornehmen. Eine interessante Eigenschaft, die man auch abschalten kann, ist die Möglichkeit, sich mit einem leeren Passwort (Null-Passwort) anzumelden. Diese Eigenschaft kann eingeschränkt werden, indem Sie <emphasis>nullok</emphasis> aus folgender Zeile entfernen:

en: Restricting system reboots through the console
de: Einschränkung des System-Neustarts von der Konsole aus

en: If your system has a keyboard attached to it anyone (yes <emphasis>anyone</emphasis>) with physical access to the system can reboot the system through it without login in just pressing the <emphasis>Ctrl+Alt+Delete</emphasis> keyboard combination, also known as the <emphasis>three finger salute</emphasis>. This might, or might not, adhere to your security policy.
de: Wenn eine Tastatur an Ihr System angeschlossen ist, kann es jeder (ja, wirklich <emphasis>jeder</emphasis>) mit physischem Zugang zu Ihrem System neu starten, ohne sich an Ihrem System anmelden zu müssen, einfach indem er die Tastenkombination <emphasis>Strg+Alt+Entf</emphasis> drückt (auch als <emphasis>Affengriff</emphasis> bekannt). Dies könnte gegen Ihre Sicherheitsrichtlinien verstoßen (oder auch nicht).

en: This is aggravated in environments in which the operating system is running virtualised. In these environments, the possibility extends to users that have access to the virtual console (which might be accessed over the network). Also note that, in these environments, this keyboard combination is used constantly (to open a login shell in some GUI operating systems) and an administrator might <emphasis>virtually</emphasis> send it and force a system reboot.
de: Dies ist schwerwiegender, wenn das Betriebssystem in einer virtuellen Umgebung läuft. Dann erstreckt sich diese Fähigkeit auch auf Benutzer, die Zugriff auf die virtuelle Konsole haben (was auch über das Netzwerk geschehen könnte). Beachten Sie zudem, dass in einer solchen Umgebung diese Tastenkombination ständig verwendet wird (um in einigen grafischen Benutzeroberflächen eine Login-Shell zu öffnen), so dass ein Systemadministrator sie <emphasis>virtuell</emphasis> auslösen kann und das System neu startet.

en: There are two ways to restrict this:
de: Es gibt zwei Möglichkeiten, dies einzuschränken:

en: configure it so that only <emphasis>allowed</emphasis> users can reboot the system,
de: mit einer Konfiguration, mit der nur <emphasis>bestimmte</emphasis> Benutzer das System neu starten dürfen,

en: disable this feature completely.
de: diese Eigenschaft vollständig zu deaktivieren.

en: If you want to restrict this, you must check the <filename>/etc/inittab</filename> so that the line that includes <userinput>ctrlaltdel</userinput> calls <command>shutdown</command> with the <userinput>-a</userinput> switch.
de: Wenn Sie dies einschränken wollen, müssen Sie in <filename>/etc/inittab</filename> sicherstellen, dass die Zeile, die <userinput>ctrlaltdel</userinput> enthält, <command>shutdown</command> mit der Option <userinput>-a</userinput> aufruft.

en: The default in Debian includes this switch:
de: Standardmäßig enthält Debian diese Optionen:

en: The <userinput>-a</userinput> switch, as the <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage describes,makes it possible to allow <emphasis>some</emphasis> users to shutdown the system. For this the file <filename>/etc/shutdown.allow</filename> must be created and the administrator has to include there the name of users which can boot the system. When the <emphasis>three finger salute</emphasis> combination is pressed in a console the program will check if any of the users listed in the file are logged in. If none of them is, <command>shutdown</command> will <emphasis>not</emphasis> reboot the system.
de: Die Option <userinput>-a</userinput> ermöglicht es, <emphasis>einigen</emphasis> Benutzern zu erlauben, das System neu zu starten (vgl. die Handbuchseite <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>). Dazu müssen Sie die Datei <filename>/etc/shutdown.allow</filename> erstellen und die Namen der Benutzer, die das System neu booten dürfen, eintragen. Wenn der <emphasis>Affengriff</emphasis> in einer Konsole ausgeführt wird, wird geprüft, ob irgendeiner der Benutzer, die in der Datei aufgelistet sind, angemeldet ist. Wenn es keiner von ihnen ist, wird <command>Shutdown</command> das System <emphasis>nicht</emphasis> neu starten.

en: If you want to disable the Ctrl+Alt+Del combination you just need to comment the line with the <emphasis>ctrlaltdel</emphasis> definition in the <filename>/etc/inittab</filename>.
de: Wenn Sie die Tastenkombination Strg+Alt+Entf deaktivieren möchten, müssen Sie nur die Zeile mit <emphasis>ctrlaltdel</emphasis> in <filename>/etc/inittab</filename> auskommentieren.

en: Restricting the use of the Magic SysRq key
de: Einschränkung der Tastenkombination Magische S-Abf

en: The <emphasis>Magic SysRq key</emphasis> is a key combination that allows users connected to the system console of a Linux kernel to perform some low-level commands. These low-level commands are sent by pressing simultaneously <emphasis>Alt+SysRq</emphasis> and a command key. The SysRq key in many keyboards is labeled as the <emphasis>Print Screen</emphasis> key.
de: Die Tastenkombination <emphasis>Magische S-Abf</emphasis> (Magic SysRq) erlaubt es Benutzern einer Konsole eines Linux-Systems, bestimmte systemnahe Befehle auszuführen, indem gleichzeitig <emphasis>Alt+S-Abf</emphasis> und eine bestimmte Taste gedrückt wird. Die Taste S-Abf wird auf vielen Tastaturen mit <emphasis>Druck</emphasis> bezeichnet.

en: Since the Etch release, the Magic SysRq key feature is enabled in the Linux kernel to allow console users certain privileges. You can confirm this by checking if the <filename>/proc/sys/kernel/sysrq</filename> exists and reviewing its value:
de: Seit der Veröffentlichung von Etch ist die Tastenkombination Magische S-Abf im Linux-Kernel aktiviert, damit die Benutzer einer Konsole bestimmte Privilegien erhalten können. Ob dies auf Ihr System zutrifft, erkennen Sie daran, ob <filename>/proc/sys/kernel/sysrq</filename> existiert, und an dessen Wert:

en: The default value shown above allows all of the SysRq functions except for the possibility of sending signals to processes. For example, it allow users connected to the console to remount all systems read-only, reboot the system or cause a kernel panic. In all the features are enabled, or in older kernels (earlier than 2.6.12) the value will be just 1.
de: Der oben gezeigte Standardwert erlaubt alle S-Abf-Funktionen mit Ausnahme der Möglichkeit, Signale an Prozesse zu senden. Zum Beispiel können Benutzer, die an der Konsole angemeldet sind, alle Systeme nur-lesend neu einhängen, das System neu starten oder eine Kernelpanik auslösen. Wenn alle Fähigkeit aktiviert sind oder in älteren Kernel-Versionen (früher als 2.6.12), wird der Wert einfach 1 sein.

en: You should disable this functionality ifaccess to the console is not restricted to authorised users: the console is connected to a modem line, there is easy physical access to the system or it is running in a virtualised environment and other users access the console. To do this edit the <filename>/etc/sysctl.conf</filename> and add the following lines:
de: Sie sollten diese Fähigkeit deaktivieren, wenn der Zugang zur Konsole nicht auf angemeldete Benutzer beschränkt ist, nämlich wenn die Konsole an ein Modem angebunden ist, es leichten physischen Zugang zum System gibt oder es in einer virtuellen Umgebung läuft und andere Benutzer auf die Konsole zugreifen können. Dafür müssen Sie <filename>/etc/sysctl.conf</filename> bearbeiten und folgende Zeile einfügen:

en: 
    # Disables the magic SysRq key
    kernel.sysrq = 0
de: 
    # Schaltet die Magische S-Abf-Taste ab
    kernel.sysrq = 0

en: Mounting partitions the right way
de: Partitionen auf die richtige Art einhängen

en: When mounting an <literal>Ext</literal> file system (<literal>ext2</literal>, <literal>ext3</literal> or <literal>ext4</literal>), there are several additional options you can apply to the mount call or to <filename>/etc/fstab</filename>. For instance, this is my fstab entry for the <filename>/tmp</filename> partition:
de: Wenn Sie ein <literal>Ext</literal>-Dateisystem (<literal>ext2</literal>, <literal>ext3</literal> oder <literal>ext4</literal>) einhängen, können Sie verschiedene Optionen mit dem mount-Befehl oder in <filename>/etc/fstab</filename> verwenden. Dies ist zum Beispiel mein fstab-Eintrag für meine <filename>/tmp</filename>-Partition:

en: You see the difference in the options sections. The option <literal>nosuid</literal> ignores the setuid and setgid bits completely, while <literal>noexec</literal> forbids execution of any program on that mount point, and <literal>nodev</literal> ignores device files. This sounds great, but it:
de: Achten Sie auf den Abschnitt mit den Optionen. Die Option <literal>nosuid</literal> ignoriert komplett alle setuid- und setgid-Bits, während <literal>noexec</literal> das Ausführen von Programmen unterhalb des Einhängepunkts verbietet und <literal>nodev</literal> Gerätedateien ignoriert. Das hört sich toll an, aber:

en: only applies to <literal>ext2</literal> or <literal>ext3</literal> file systems
de: ist nur auf <literal>ext2</literal> oder <literal>ext3</literal>-Dateisysteme anwendbar,

en: can be circumvented easily
de: kann leicht umgangen werden.

en: The <literal>noexec</literal> option prevents binaries from being executed directly, but was easily circumvented in earlier versions of the kernel:
de: Die Option <literal>noexec</literal>, die verhindert, dass Programme ausgeführt werden können, ließ sich in früheren Kernelversionen leicht umgehen:

en: 
      alex@joker:/tmp# mount | grep tmp
      /dev/hda7 on /tmp type ext2 (rw,noexec,nosuid,nodev)
      alex@joker:/tmp# ./date
      bash: ./date: Permission denied
      alex@joker:/tmp# /lib/ld-linux.so.2 ./date
      Sun Dec  3 17:49:23 CET 2000
de: 
      alex@joker:/tmp# mount | grep tmp
      /dev/hda7 on /tmp type ext2 (rw,noexec,nosuid,nodev)
      alex@joker:/tmp# ./date
      bash: ./date: Keine Berechtigung
      alex@joker:/tmp# /lib/ld-linux.so.2 ./date
      So 3. Dec 17:49:23 CET 2000

en: Newer versions of the kernel do however handle the <literal>noexec</literal> flag properly:
de: Neuere Versionen des Kernels verarbeiten aber die Option <literal>noexec</literal> richtig:

en: 
      angrist:/tmp# mount | grep /tmp
      /dev/hda3 on /tmp type ext3 (rw,noexec,nosuid,nodev)
      angrist:/tmp# ./date
      bash: ./tmp: Permission denied 
      angrist:/tmp# /lib/ld-linux.so.2 ./date 
      ./date: error while loading shared libraries: ./date: failed to map segment 
      from shared object: Operation not permitted
de: 
      angrist:/tmp# mount | grep /tmp
      /dev/hda3 on /tmp type ext3 (rw,noexec,nosuid,nodev)
      angrist:/tmp# ./date
      bash: ./tmp: Keine Berechtigung
      angrist:/tmp# /lib/ld-linux.so.2 ./date 
      ./date: error while loading shared libraries: ./date: failed to map segment 
      from shared object: Operation not permitted

en: However, many script kiddies have exploits which try to create and execute files in <filename>/tmp</filename>. If they do not have a clue, they will fall into this pit. In other words, a user cannot be tricked into executing a trojanized binary in <filename>/tmp</filename> e.g. when <filename>/tmp</filename> is accidentally added into the local PATH.
de: Wie auch immer, viele Skript-Kiddies haben Exploits, die versuchen, eine Datei in <filename>/tmp</filename> zu erstellen und auszuführen. Falls sie keine Ahnung haben, werden sie in dieser Grube hängen bleiben. Mit anderen Worten: Ein Benutzer kann nicht hereingelegt werden, einen ausführbaren Trojaner in <filename>/tmp</filename> laufen zu lassen, zum Beispiel, indem er zufällig <filename>/tmp</filename> in seinen Suchpfad (PATH) aufnimmt.

en: Also be forewarned, some script might depend on <filename>/tmp</filename> being executable. Most notably, Debconf has (had?) some issues regarding this, for more information see <ulink name="Debian Bug nº116448" url="http://bugs.debian.org/116448" />.
de: Seien Sie sich auch bewusst, dass manche Skripte darauf aufbauen, dass <filename>/tmp</filename> ausführbare Rechte hat. Bemerkenswerterweise hatte (oder hat?) Debconf Probleme bei dieser Sache, weitere Informationen enthält Fehler <ulink url="http://bugs.debian.org/116448" name="116448"/>.

en: The following is a more thorough example. A note, though: <filename>/var</filename> could be set noexec, but some software <footnote><para>Some of this includes the package manager <application>dpkg</application> since the installation (post,pre) and removal (post,pre) scripts are at <filename>/var/lib/dpkg/</filename> and Smartlist</para></footnote> keeps its programs under in <filename>/var</filename>. The same applies to the nosuid option.
de: Nachfolgend ein gründlicheres Beispiel. Eine Anmerkung dazu: <filename>/var</filename> könnte auch noexec enthalten, aber manche Software <footnote><para>Einiges davon trifft auf den Paketverwalter <application>Dpkg</application> zu, da die Installations- oder Deinstallationsanweisungen (post, pre) unter <filename>/var/lib/dpkg/</filename> liegen, und auch auf Smartlist. </para></footnote> verwahrt ihre Programme unterhalb von <filename>/var</filename>. Dasselbe gilt für die Option nosuid.

en: Setting <filename>/tmp</filename> noexec
de: <filename>/tmp</filename> noexec setzen

en: Setting /usr read-only
de: /usr auf nur-lesend setzen

en: If you set <filename>/usr</filename> read-only you will not be able to install new packages on your Debian GNU/Linux system. You will have to first remount it read-write, install the packages and then remount it read-only. <application>apt</application> can be configured to run commands before and after installing packages, so you might want to configure it properly.
de: Wenn Sie auf <filename>/usr</filename> nur lesenden Zugriff erlauben, werden Sie nicht in der Lage sein, neue Pakete auf Ihrem Debian-GNU/Linux-System zu installieren. Sie werden es erst mit Schreibzugriff erneut einhängen müssen, die Pakete installieren und dann wieder nur mit lesendem Zugriff einhängen. <application>Apt</application> kann so konfiguriert werden, dass Befehle vor und nach dem Installieren von Paketen ausgeführt werden. Daher müssen Sie es passend konfigurieren.

en: To do this modify <filename>/etc/apt/apt.conf</filename> and add:
de: Dafür müssen Sie <filename>/etc/apt/apt.conf</filename> bearbeiten und Folgendes einfügen:

en: Note that the Post-Invoke may fail with a "/usr busy" error message. This happens mainly when you are using files during the update that got updated. You can find these programs by running
de: Beachten Sie, dass das Post-Invoke mit der Fehlermeldung »/usr ist belegt« scheitern kann. Dies passiert vorwiegend, wenn Sie eine Datei benutzen, die aktualisiert wurde. Sie können diese Programme finden, indem Sie Folgendes ausführen:

en: Stop or restart these programs and run the Post-Invoke manually. <emphasis>Beware!</emphasis> This means you'll likely need to restart your X session (if you're running one) every time you do a major upgrade of your system. You might want to reconsider whether a read-only <filename>/usr</filename> is suitable for your system. See also this <ulink url="http://lists.debian.org/debian-devel/2001/11/threads.html#00212"> discussion on debian-devel about read-only</ulink>.
de: Halten Sie diese Programme an oder starten Sie sie erneut und rufen dann Post-Invoke manuell auf. <emphasis>Achtung!</emphasis> Das bedeutet, dass Sie wahrscheinlich jedes Mal Ihre Sitzung von X (falls Sie eine laufen haben) neu starten müssen, wenn Sie ein größeres Upgrade Ihres Systems durchführen. Sie müssen entscheiden, ob ein nur lesbares <filename>/usr</filename> zu Ihrem System passt. Vergleichen Sie auch diese <ulink url="http://lists.debian.org/debian-devel/2001/11/threads.html#00212" name="discussion on debian-devel about read-only /usr"/>.

en: Providing secure user access
de: Den Benutzerzugang absichern

en: User authentication: PAM
de: Benutzerauthentifizierung: PAM

en: PAM (Pluggable Authentication Modules) allows system administrators to choose how applications authenticate users. Note that PAM can do nothing unless an application is compiled with support for PAM. Most of the applications that are shipped with Debian have this support built in (Debian did not have PAM support before 2.2). The current default configuration for any PAM-enabled service is to emulate UNIX authentication (read <filename>/usr/share/doc/libpam0g/Debian-PAM-MiniPolicy.gz</filename> for more information on how PAM services <emphasis>should</emphasis> work in Debian).
de: PAM (Pluggable Authentication Modules) erlaubt Systemadministratoren, auszuwählen, wie Anwendungen Benutzer authentifizieren. Beachten Sie, dass PAM nichts machen kann, solange die Anwendung nicht mit Unterstützung für PAM kompiliert wurde. Die meisten Anwendungen, die mit Debian geliefert werden, haben diese Unterstützung eingebaut. Vor Version 2.2 hatte Debian keine Unterstützung für PAM. Die derzeitige Standardkonfiguration für jeden Dienst, der PAM benutzt, ist es, UNIX-Authentifizierung zu emulieren (lesen Sie <filename>/usr/share/doc/libpam0g/Debian-PAM-MiniPolicy.gz</filename>, um mehr darüber zu erfahren, wie PAM-Dienste unter Debian arbeiten <emphasis>sollten</emphasis>).

en: Each application with PAM support provides a configuration file in <filename>/etc/pam.d/</filename> which can be used to modify its behavior:
de: Jede Anwendung mit PAM-Unterstützung stellt eine Konfigurationsdatei unter <filename>/etc/pam.d/</filename> zur Verfügung, in welcher Sie ihr Verhalten einstellen können:

en: what backend is used for authentication.
de: welches Verfahren zur Authentifizierung benutzt wird

en: what backend is used for sessions.
de: welches Verfahren innerhalb einer Sitzung benutzt wird

en: how do password checks behave.
de: wie Passwörter überprüft werden

en: PAM offers you the possibility to go through several authentication steps at once, without the user's knowledge. You could authenticate against a Berkeley database and against the normal <filename>passwd</filename> file, and the user only logs in if the authentication succeeds in both. You can restrict a lot with PAM, just as you can open your system doors very wide. So be careful. A typical configuration line has a control field as its second element. Generally it should be set to <literal>requisite</literal>, which returns a login failure if one module fails.
de: PAM bieten Ihnen die Möglichkeit, durch mehrere Authentifizierungsschritte auf einmal zu gehen, ohne dass der Benutzer es weiß. Sie können gegen eine Berkeley-Datenbank und gegen die normale <filename>passwd</filename>-Datei authentifizieren, und der Benutzer kann sich nur anmelden, wenn er beide Male korrekt authentifiziert wurde. Sie können mit PAM viel einschränken, genauso wie Sie Ihr System weit öffnen können. Seien Sie also vorsichtig. Eine typische Konfigurationszeile hat ein Steuerfeld als zweites Element. Generell sollte es auf <literal>requisite</literal> gesetzt werden, so wird ein Anmeldefehler erzeugt, wenn eines der Module versagt.

en: Password security in PAM
de: Passwortsicherheit in PAM

en: Review the <filename>/etc/pam.d/common-password</filename>, included by <filename>/etc/pam.d/passwd</filename> <footnote><para>In old Debian releases the configuration of the modules was defined directly in <filename>/etc/pam.d/passwd</filename>.</para></footnote> This file is included by other files in <filename>/etc/pam.d/</filename> to define the behaviour of password use in subsystems that grant access to services in the machine, like the console login (<application>login</application>), graphical login managers (such as <application>gdm</application> or <application>lightdm</application>), and remote login (such as <application>sshd</application>). This definition is
de: Sehen Sie sich <filename>/etc/pam.d/common-password</filename> an, die von <filename>/etc/pam.d/passwd</filename> eingebunden wird. <footnote><para>In früheren Debian-Veröffentlichungen befand sich die Konfiguration der Module direkt in <filename>/etc/pam.d/passwd</filename>.</para></footnote> Andere Dateien in <filename>/etc/pam.d/</filename> lesen diese Datei ein, um die Verwendung eines Passworts durch Programme, die einen Zugriff auf das System erlauben, wie etwa das Konsolen-Login (<application>Login</application>), grafische Login-Manager (z.B. <literal>Gdm</literal> oder <literal>Lightdm</literal>) und Login aus der Ferne (etwa mit <application>Sshd</application>), zu definieren.

en: You have to make sure that the pam_unix.so module uses the "sha512" option to use encrypted passwords. This is the default in Debian Squeeze.
de: Sie müssen sicherstellen, dass das Modul pam_unix.so die Option »sha512« verwendet, damit die Passwörter verschlüsselt werden. In Debian Squeeze ist dies standardmäßig eingerichtet.

en: The line with the definition of the pam_unix module will look something like:
de: Die Zeile mit der Konfiguration des Moduls pam_unix sollte etwa so aussehen:

en: This definition:
de: Dieser Ausdruck

en: Enforces password encryption when storing passwords, using the SHA-512 hash function (option <emphasis>sha512</emphasis>),
de: erzwingt die Verschlüsselung von Passwörtern mit der Hashfunktion SHA-512, wenn sie gespeichert werden (Option <emphasis>sha512</emphasis>),

en: Enables password complexity checks (option <emphasis>obscure</emphasis>) as defined in the <citerefentry><refentrytitle>pam_unix</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage,
de: aktiviert die Überprüfung der Komplexität eines Passworts, wie sie in der Handbuchseite <citerefentry><refentrytitle>pam_unix</refentrytitle><manvolnum>8</manvolnum></citerefentry> beschrieben wird (Option <emphasis>obscure</emphasis>),

en: Imposes a minimum password length (option <emphasis>min</emphasis>) of 8.
de: erfordert, dass das Passwort mindestens acht Zeichen lang ist (Option <emphasis>min</emphasis>).

en: You have to ensure that encrypted passwords are used in PAM applications, since this helps protect against dictionary cracks. Using encryption also makes it possible to use passwords longer than 8 characters.
de: Sie müssen sicherstellen, dass in PAM-Anwendungen verschlüsselte Passwörter verwendet werden, weil dies Wörterbuchangriffe erschwert. Zugleich wird es dadurch möglich, Passwörter mit mehr als acht Zeichen einzusetzen.

en: Since this module is also used to define how passwords are changed (it is included by <command>chpasswd</command>) you can strengthen the password security in the system by installing <application>libpam-cracklib</application> and introducing this definition in the <filename>/etc/pam.d/common-password</filename> configuration file:
de: Da mit diesem Modul auch definiert wird, wie Passwörter geändert werden, weil es von <command>Chpasswd</command> eingebunden wird, können Sie die Passwortsicherheit Ihres Systems erhöhen, indem sie <application>libpam-cracklib</application> installieren und folgenden Ausdruck in die Konfigurationsdatei <filename>/etc/pam.d/common-password</filename> eintragen:

en: 
      # Be sure to install libpam-cracklib first or you will not be able to log in
      password   required     pam_cracklib.so retry=3 minlen=12 difok=3
      password   [success=1 default=ignore]      pam_unix.so obscure minlen=8 sha512 use_authok
de: 
      # Gehen Sie sicher, dass Sie libpam-cracklib zuerst installiert haben,
      # sonst werden Sie sich nicht einloggen können
      password   required     pam_cracklib.so retry=3 minlen=12 difok=3
      password   [success=1 default=ignore]      pam_unix.so obscure minlen=8 sha512 use_authok

en: So, what does this incantation do? The first line loads the cracklib PAM module, which provides password strength-checking, prompts for a new password with a minimum size <footnote><para>The minlen option is not entirely straightforward and is not exactly the number of characters in the password. A tradeoff can be defined between complexity and length by adjusting the "credit" parameters of different character classes. For more information read the <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage.</para></footnote> of 12 characters, and difference of at least 3 characters from the old password, and allows 3 retries. Cracklib depends on a wordlist package (such as <application>wenglish</application>, <application>wspanish</application>, <application>wbritish</application>, ...), so make sure you install one that is appropriate for your language or cracklib might not be useful to you at all.
de: Also, was macht diese Beschwörungsformel nun genau? Die erste Zeile lädt das PAM-Modul cracklib, welches einen Passwort-Sicherheitscheck bereitstellt. Es fragt nach einem neuen Passwort mit mindestens zwölf Zeichen <footnote><para>Die Option <emphasis>minlen</emphasis> ist nicht auf Anhieb völlig verständlich, weil sie nicht die genaue Anzahl der Zeichen eines Passworts ist. Ein Kompromiss zwischen Komplexität und Länge eines Passworts kann mit dem Parameter »credit« für verschiedene Arten von Zeichen erreicht werden. Weitere Informationen finden Sie in der Handbuchseite <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para></footnote>, einer Differenz von mindestens drei Zeichen zum alten Passwort und erlaubt drei Versuche. Cracklib benötigt ein Paket mit Wörterlisten (wie <application>wngerman</application>, <application>wenglish</application>, <application>wspanish</application>, ...). Stellen Sie also sicher, dass Sie ein passendes Paket für Ihre Sprache installiert haben. Ansonsten ist Cracklib nicht verwendbar.

en: The second line (using the pam_unix.so module) is the default configuration in Debian, as described above, save for the <emphasis>use_authok</emphasis> option. The <emphasis>use_authok</emphasis> option is required if pam_unix.so is stacked after pam_cracklib.so, and is used to hand over the password from the previous module. Otherwise, the user would be prompted for the password twice.
de: Die zweite Zeile (mit dem Module pam_unix.so) ist &ndash; wie oben beschrieben &ndash; der Standard in Debian mit Ausnahme der Option <emphasis>use_authok</emphasis>. Diese Option ist notwendig, wenn pam_unix.so nach pam_cracklib.so aufgerufen wird, damit das Passwort vom zuerst aufgerufenen Modul weitergereicht wird. Anderenfalls muss der Benutzer sein Passwort zweimal eingegeben.

en: For more information about setting up Cracklib, read the <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry> manpage and the article <ulink url="http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html">Linux Password Security with pam_cracklib</ulink> by Hal Pomeranz.
de: Weitere Informationen über die Konfiguration von Cracklib finden Sie in der Handbuchseite <citerefentry><refentrytitle>pam_cracklib</refentrytitle><manvolnum>8</manvolnum></citerefentry> und dem Artikel <ulink url="http://www.deer-run.com/~hal/sysadmin/pam_cracklib.html" name="Linux Password Security with pam_cracklib"/> von Hal Pomeranz.

en: By enabling the cracklib PAM module you setup a policy that forces uses to use strong passwords.
de: Mit dem PAM-Modul Cracklib richten Sie eine Richtlinie ein, welche die Verwendung guter Passwörter erzwingt.

en: Alternatively, you can setup and configure PAM modules to use double factor authentication such as: <application>libpam-barada</application>, <application>libpam-google-authenticator</application>, <application>libpam-oath</application>, <application>libpam-otpw</application>, <application>libpam-poldi</application>, <application>libpam-usb</application> or <application>libpam-yubico</application>. The configuration of these modules would make it possible to access the system using external authentication mechanisms such as smartcards, external USB keys, or One-Time-Passwords generated by external applications running, for example, in the user's mobile phone.
de: Als Alternative können Sie auch PAM-Module einsetzen, die eine Zwei-Faktor-Authentifizierung verwenden, wie z.B. <application>libpam-barada</application>, <application>libpam-google-authenticator</application>, <application>libpam-oath</application>, <application>libpam-otpw</application>, <application>libpam-poldi</application>, <application>libpam-usb</application> oder <application>libpam-yubico</application>. Diese Module ermöglichen es, sich mit einer externen Authentifizierungsmethode am System anzumelden, etwa mit einer Chipkarte, einem USB-Stick oder Einmal-Passwörtern, die mit einer externen Anwendung, z.B. auf einem Mobiltelefon, erzeugt wurden.

en: Please note that these restrictions apply to all users but <emphasis>not</emphasis> to the password changes done by the root user. The root user will be able to set up any password (any length or complexity) for personal use or others regardless of the restrictions defined here.
de: Denken Sie daran, dass diese Einschränkungen alle Benutzer betreffen <emphasis>außer</emphasis> Änderungen von Passwörtern, die der Benutzer Root vornimmt. Dieser kann unabhängig von den eingerichteten Beschränkungen jedes Passwort (in Hinblick auf Länge oder Komplexität) für sich oder andere Benutzer vergeben.

en: User access control in PAM
de: Steuerung des Benutzerzugangs in PAM

en: To make sure that the user root can only log into the system from local terminals, the following line should be enabled in <filename>/etc/pam.d/login</filename>:
de: Um sicher zu stellen, dass sich der Benutzer Root nur an lokalen Terminals anmelden kann, sollten Sie die folgende Zeile in <filename>/etc/pam.d/login</filename> einfügen:

en: Then you should modify the list of terminals on which direct root login is allowed in <filename>/etc/securetty</filename> (as described in <xref linkend="restrict-console-login" />). Alternatively, you could enable the <application>pam_access</application> module and modify <filename>/etc/security/access.conf</filename> which allows for a more general and fine-tuned access control, but (unfortunately) lacks decent log messages (logging within PAM is not standardized and is particularly unrewarding problem to deal with). We'll return to <filename>access.conf</filename> a little later.
de: Danach sollten Sie die Liste der Terminals in <filename>/etc/securetty</filename> ändern, auf denen sich Root unmittelbar anmelden darf (wie in <xref linkend="restrict-console-login" /> beschrieben). Alternativ dazu können Sie auch das <application>pam_access</application>-Modul aktivieren und <filename>/etc/security/access.conf</filename> bearbeiten. Dieses Vorgehen erlaubt eine allgemeinere und feiner abgestimmte Zugangssteuerung, leider fehlen aber vernünftige Protokollmeldungen (diese sind in PAM nicht standardisiert und sind ein besonders unbefriedigendes Problem). Wir werden zu <filename>access.conf</filename> in Kürze zurückkehren.

en: User limits in PAM
de: Höchstgrenzen für Benutzer in PAM

en: The following line should be enabled in <filename>/etc/pam.d/login</filename> to set up user resource limits.
de: Die folgende Zeile sollte in <filename>/etc/pam.d/login</filename> aktiviert werden, um den Benutzern Grenzen ihrer Systemressourcen zu setzen. <!--SB: fix English version -->

en: This restricts the system resources that users are allowed (see below in <xref linkend="user-limits" />). For example, you could restrict the number of concurrent logins (of a given group of users, or system-wide), number of processes, memory size etc.
de: Dies schränkt die Systemressourcen ein, die ein Benutzer nutzen darf (siehe <xref linkend="user-limits"/> weiter unten). Sie können zum Beispiel die Anzahl der Logins, die man haben kann, einschränken (für eine Gruppe von Benutzern oder systemweit), die Anzahl der Prozesse, den belegten Speicher etc.

en: Control of su in PAM
de: Steuerung von su in PAM

en: If you want to protect <command>su</command>, so that only some people can use it to become root on your system, you need to add a new group "wheel" to your system (that is the cleanest way, since no file has such a group permission yet). Add root and the other users that should be able to <command>su</command> to the root user to this group. Then add the following line to <filename>/etc/pam.d/su</filename>:
de: Wenn Sie <command>Su</command> schützen möchten, so dass nur manche Leute es benutzen können, um Root auf Ihrem System zu werden, müssen Sie eine neue Gruppe »wheel« zu Ihrem System hinzufügen (das ist der sauberste Weg, da keine Datei solche Gruppenrechte bisher benutzt). Fügen Sie Root und die anderen Benutzer, die zu Root <command>su</command>en können sollen, zu dieser Gruppe hinzu. Ergänzen Sie anschließend <filename>/etc/pam.d/su/</filename> um die folgende Zeile:

en: This makes sure that only people from the group "wheel" can use <command>su</command> to become root. Other users will not be able to become root. In fact they will get a denied message if they try to become root.
de: Dies stellt sicher, dass nur Personen aus der Gruppe »wheel« <command>su</command> benutzen können, um Root zu werden. Andere Benutzer wird es nicht möglich sein, Root zu werden. Tatsächlich werden sie eine ablehnende Nachricht bekommen, wenn sie versuchen, Root zu werden.

en: If you want only certain users to authenticate at a PAM service, this is quite easy to achieve by using files where the users who are allowed to login (or not) are stored. Imagine you only want to allow users 'ref' to log in via <command>ssh</command>. So you put them into <filename>/etc/sshusers-allowed</filename> and write the following into <filename>/etc/pam.d/ssh</filename>:
de: Wenn Sie es nur bestimmten Benutzern erlauben wollen, sich bei einem PAM-Dienst zu authentifizieren, ist dies sehr leicht zu erreichen, indem Sie Dateien benutzen, in denen die Benutzer, denen es erlaubt ist, sich anzumelden (oder nicht), gespeichert sind. Stellen Sie sich vor, Sie möchten lediglich dem Benutzer »ref« erlauben, sich mittels <command>ssh</command> anzumelden. Sie schreiben ihn also in eine Datei <filename>/etc/ssh-users-allowed</filename> und schreiben das Folgende in <filename>/etc/pam.d/ssh</filename>:

en: Temporary directories in PAM
de: Temporäre Verzeichnisse in PAM

en: Since there have been a number of so called insecure tempfile vulnerabilities, thttpd is one example (see <ulink url="http://www.debian.org/security/2005/dsa-883">DSA-883-1</ulink>), the <application>libpam-tmpdir</application> is a good package to install. All you have to do is add the following to <filename>/etc/pam.d/common-session</filename>:
de: Da es eine Reihe von Sicherheitslücken mit so genannten unsicheren temporären Dateien zum Beispiel in Thttpd (vgl. <ulink url="http://www.debian.org/security/2005/dsa-883" name="DSA-883-1"/>) gab, lohnt es sich, das Paket <application>libpam-tmpdir</application> zu installieren. Sie müssen dann lediglich Folgendes zu <filename>/etc/pam.d/common-session</filename> hinzuzufügen:

en: There has also been a discussion about adding this by default in Debian configuration, but it s. See <ulink url="http://lists.debian.org/debian-devel/2005/11/msg00297.html" /> for more information.
de: Es gab auch eine Diskussion, dies standardmäßig in Debian einzufügen. Sehen Sie sich <ulink url="http://lists.debian.org/debian-devel/2005/11/msg00297.html"/> für weitere Informationen an.

en: Configuration for undefined PAM applications
de: Konfiguration für nicht definierte PAM-Anwendungen

en: Finally, but not least, create <filename>/etc/pam.d/other</filename> and enter the following lines:
de: Zuletzt, aber nicht am unwichtigsten, erstellen Sie <filename>/etc/pam.d/other</filename> mit den folgenden Zeilen:

en: These lines will provide a good default configuration for all applications that support PAM (access is denied by default).
de: Diese Zeilen stellen für alle Anwendungen, die PAM unterstützen, eine gute Standardkonfiguration dar (Zugriff wird standardmäßig verweigert).

en: Limiting resource usage: the <filename>limits.conf</filename> file
de: Ressourcen-Nutzung begrenzen: Die Datei <filename>limits.conf</filename>

en: You should really take a serious look into this file. Here you can define user resource limits. In old releases this configuration file was <filename>/etc/limits.conf</filename>, but in newer releases (with PAM) the <filename>/etc/security/limits.conf</filename> configuration file should be used instead.
de: Sie sollten sich wirklich ernsthaft mit dieser Datei beschäftigen. Hier können Sie Ihren Benutzern Ressourcengrenzen vorgeben. In alten Veröffentlichungen war die Konfigurationsdatei <filename>/etc/limits.conf</filename>. Aber in neueren Versionen (mit PAM) sollte stattdessen die Konfigurationsdatei <filename>/etc/security/limits.conf</filename> benutzt werden.

en: If you do not restrict resource usage, <emphasis>any</emphasis> user with a valid shell in your system (or even an intruder who compromised the system through a service or a daemon going awry) can use up as much CPU, memory, stack, etc. as the system can provide. This <emphasis>resource exhaustion</emphasis> problem can be fixed by the use of PAM.
de: Wenn Sie die Ressourcennutzung nicht einschränken, kann <emphasis>jeder</emphasis> Benutzer mit einer gültigen Shell auf Ihrem System (oder sogar ein Einbrecher, der das System durch einen Dienst kompromittierte, oder ein außer Kontrolle geratener Daemon) so viel CPU, Speicher, Stack etc. benutzen, wie das System zur Verfügung stellen kann. Dieses Problem der <emphasis>Überbeanspruchung von Ressourcen</emphasis> kann mit der Nutzung von PAM gelöst werden.

en: There is a way to add resource limits to some shells (for example, <command>bash</command> has <command>ulimit</command>, see <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>), but since not all of them provide the same limits and since the user can change shells (see <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum></citerefentry>) it is better to place the limits on the PAM modules as they will apply regardless of the shell used and will also apply to PAM modules that are not shell-oriented.
de: Es gibt einen Weg, Ressourcengrenzen zu manchen Shells hinzuzufügen (zum Beispiel hat <command>Bash</command> <command>ulimit</command>, siehe <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>). Aber da nicht alle die gleichen Höchstgrenzen zur Verfügung stellen und der Benutzer seine Shell ändern kann (siehe <citerefentry><refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum></citerefentry>), ist es besser, die Höchstgrenzen in den PAM-Modulen zu platzieren, da diese unabhängig von der verwendeten Shell Anwendung finden und auch PAM-Module betreffen, die nicht shellorientiert sind.

en: Resource limits are imposed by the kernel, but they need to be configured through the <filename>limits.conf</filename> and the PAM configuration of the different services need to load the appropriate PAM. You can check which services are enforcing limits by running:
de: Ressourcengrenzen werden vom Kernel verhängt, aber sie müssen durch <filename>limits.conf</filename> konfiguriert werden und die PAM-Konfiguration der verschiedenen Dienste muss das passende PAM laden. Sie können herausfinden, welche Dienste Höchstgrenzen durchsetzen, indem Sie Folgendes ausführen:

en: Commonly, <filename>login</filename>, <filename>ssh</filename> and the graphic session managers (<filename>gdm</filename>, <filename>kdm</filename> or <filename>xdm</filename>) should enforce user limits but you might want to do this in other PAM configuration files, such as <filename>cron</filename>, to prevent system daemons from taking over all system resources.
de: Für gewöhnlich setzen <filename>Login</filename>, <filename>Ssh</filename> und die grafischen Sitzungsmanager (<filename>Gdm</filename>, <filename>Kdm</filename> und <filename>Xdm</filename>) Benutzerhöchstgrenzen durch, aber Sie sollte dies auch in anderen Konfigurationsdateien für PAM wie für <filename>Cron</filename> vornehmen, um zu verhindern, dass System-Daemons alle Systemressourcen aufbrauchen.

en: The specific limits settings you might want to enforce depend on your system's resources, that's one of the main reasons why no limits are enforced in the default installation.
de: Die konkreten Begrenzungen, die Sie festlegen wollen, hängt von den Ressourcen Ihres Systems ab. Das ist einer der Hauptgründe, warum keine Höchstgrenzen in der Standardinstallation enthalten sind.

en: For example, the configuration example below enforces a 100 process limit for all users (to prevent <emphasis>fork bombs</emphasis>) as well as a limit of 10MB of memory per process and a limit of 10 simultaneous logins. Users in the <literal>adm</literal> group have higher limits and can produce core files if they want to (there is only a <emphasis>soft</emphasis> limit).
de: So setzt die Konfiguration im Beispiel unten eine Begrenzung von 100 Prozessen für alle Benutzer (um <emphasis>Fork-Bomben</emphasis> <footnote><para>Programme, die immer mehr Prozesse erzeugen, um so das System zum Absturz zu bringen, d.Ü.</para></footnote> zu vermeiden), eine Begrenzung auf 10 MB Speicher pro Prozess und ein Höchstgrenze von 10 gleichzeitigen Logins durch. Benutzer in der Gruppe <literal>adm</literal> haben höhere Begrenzungen und können Dateien mit einem Speicherabbild schreiben, wenn sie das wollen (es gibt also nur eine <emphasis>weiche</emphasis> Begrenzung).

en: These would be the limits a default user (including system daemons) would have:
de: Dies könnten die Höchstgrenzen eines Standardbenutzers (einschließlich der System-Daemons) sein:

en: And these are the limits for an administrative user:
de: Und dies die Höchstgrenzen für einen Administrator:

en: For more information read:
de: Lesen Sie für weitere Informationen:

en: <ulink url="http://seifried.org/security/os/linux/20020324-securing-linux-step-by-step.html"> Seifried's Securing Linux Step by Step</ulink> on the <emphasis>Limiting users overview</emphasis> section.
de: <ulink url="http://seifried.org/security/os/linux/20020324-securing-linux-step-by-step.html" name="Seifried's Securing Linux Step by Step"/> in dem Abschnitt <emphasis>Limiting users overview</emphasis>

en: <ulink url="http://seifried.org/lasg/users/">LASG</ulink> in the <emphasis>Limiting and monitoring users</emphasis> section.
de: <ulink url="http://seifried.org/lasg/users/" name="LASG"/> in dem Abschnitt <emphasis>Limiting and monitoring users</emphasis>

en: User login actions: edit <filename>/etc/login.defs</filename>
de: Aktionen bei der Benutzeranmeldung: Bearbeiten von <filename>/etc/login.defs</filename>

en: The next step is to edit the basic configuration and action upon user login. Note that this file is not part of the PAM configuration, it's a configuration file honored by <application>login</application> and <command>su</command> programs, so it doesn't make sense tuning it for cases where neither of the two programs are at least indirectly called (the <command>getty</command> program which sits on the consoles and offers the initial login prompt <emphasis>does</emphasis> invoke <command>login</command>).
de: Der nächste Schritt ist es, die grundlegende Konfiguration und die Aktionen bei der Benutzeranmeldung zu bearbeiten. Beachten Sie, dass diese Datei kein Bestandteil der PAM-Konfiguration ist. Sie ist eine Konfigurationsdatei, die von den Programmen <command>Login</command> und <command>Su</command> berücksichtigt wird. Es ist also wenig sinnvoll, sie auf Fälle abzustimmen, in denen keines der beiden Programme wenigstens indirekt aufgerufen wird (Das Programm <application>Getty</application>, welches auf der Konsole läuft und die anfängliche Anmeldeaufforderung zu Verfügung stellt, <emphasis>ruft</emphasis> <application>Login</application> auf).

en: If you enable this variable, failed logins will be logged. It is important to keep track of them to catch someone who tries a brute force attack.
de: Wenn Sie diese Variable einschalten, werden fehlgeschlagene Anmeldeversuche protokolliert. Es ist wichtig, hier auf dem Laufendem zu bleiben, um jemanden zu ermitteln, der einen Brute-Force-Angriff versucht.

en: If you set this variable to 'yes' it will record unknown usernames if the login failed. It is best if you use 'no' (the default) since, otherwise, user passwords might be inadvertenly logged here (if a user mistypes and they enter their password as the username). If you set it to 'yes', make sure the logs have the proper permissions (640 for example, with an appropriate group setting such as adm).
de: Wenn Sie diese Variable auf »yes« setzen, werden unbekannte Benutzernamen protokolliert, wenn eine Anmeldung scheitert. Es ist zu empfehlen, sie auf »no« (den Standard) zu belassen, da anderenfalls das Passwort eines Benutzers aufgezeichnet werden könnte (falls er nämlich versehentlich anstatt seines Benutzernames sein Passwort eingibt). Falls Sie sie dennoch auf »yes« setzen, müssen Sie sicherstellen, dass die Protokolldateien angemessene Zugriffsrechte haben (zum Beispiel 640, mit einer passenden Gruppenzugehörigkeit wie adm).

en: This one enables logging of <command>su</command> attempts to <filename>syslog</filename>. Quite important on serious machines but note that this can create privacy issues as well.
de: Dies schaltet das Mitprotokollieren von <command>su</command>-Versuchen im <filename>Syslog</filename> ein. Sehr wichtig auf ernsthaft betriebenen Maschinen, aber beachten Sie, dass dies auch die Privatsphäre verletzen kann.

en: The same as <varname>SYSLOG_SU_ENAB</varname> but applies to the <command>sg</command> program.
de: Das gleiche wie bei <varname>SYSLOG_SU_ENAB</varname>, aber für das Programm <command>Sg</command>.

en: As stated above, encrypted passwords greatly reduce the problem of dictionary attacks, since you can use longer passwords. This definition has to be consistent with the value defined in <filename>/etc/pam.d/common-password</filename>.
de: Wie bereits erklärt, reduziert eine Verschlüsselung von Passwörtern die Gefahr von Wörterbuchangriffen erheblich, da Sie längere Passwörter benutzen können. Diese Definition muss mit dem Wert in <filename>/etc/pam.d/common-password</filename> übereinstimmen.

en: User login actions: edit <filename>/etc/pam.d/login</filename>
de: Aktionen bei der Benutzeranmeldung: <filename>/etc/pam.d/login</filename> bearbeiten

en: You can adjust the login configuration file to implement an stricter policy. For example, you can change the default configuration and increase the delay time between login prompts. The default configuration sets a 3 seconds delay:
de: Sie können die Datei zur Konfiguration des Anmeldevorgangs anpassen, um eine strengere Richtlinie festzuschreiben. Zum Beispiel können Sie die Wartezeit zwischen zwei Anmeldeversuchen im Vergleich zur Standardkonfiguration erhöhen. Diese Standardvorgabe setzt eine Wartezeit von drei Sekunden:

en: Increasing the <emphasis>delay</emphasis> value to a higher value to make it harder to use the terminal to log in using brute force. If a wrong password is typed in, the possible attacker (or normal user!) has to wait longer seconds to get a new login prompt, which is quite time consuming when you test passwords. For example, if you set <emphasis>delay=10000000</emphasis>, users will have to wait 10 seconds if they type a wrong password.
de: Wenn Sie den Wert von <emphasis>delay</emphasis> erhöhen, wird es schwieriger, sich durch bloßes Ausprobieren von Passwörtern (brute force) erfolgreich am Terminal anzumelden. Wenn ein falsches Passwort eingegeben wird, muss ein möglicher Angreifer (oder ein normaler Benutzer!) viele Sekunden warten, bis er wieder eine Eingabeaufforderung erhält, wodurch das Durchprobieren von Passwörtern sehr zeitaufwendig werden kann. So müssen etwa Benutzer bei <emphasis>delay=10000000</emphasis> zehn Sekunden warten, wenn sie das falsche Passwort eingeben.

en: In this file you can also set the system to present a message to users before a user logs in. The default is disabled, as shown below:
de: In dieser Datei können Sie auch einrichten, dass das System dem Benutzer vor einer Anmeldung eine Nachricht anzeigt. Standardmäßig ist dies deaktiviert, wie Sie hier sehen können:

en: If required by your security policy, this file can be used to show a standard message indicating that access to the system is restricted and user acess is logged. This kind of disclaimer might be required in some environments and jurisdictions. To enable it, just include the relevant information in the <filename>/etc/issue</filename> <footnote><para>The default content of this file provides information about the operating system and version run by the system, which you might not want to provide to anonymous users.</para></footnote> file and uncomment the line enabling the pam_issue.so module in <filename>/etc/pam.d/login</filename>. In this file you can also enable additional features which might be relevant to apply local security policies such as:
de: Falls es Ihre Sicherheitsrichtlinie erfordert, können Sie mit dieser Datei eine Standardnachricht, dass der Zugang zum System beschränkt und der Benutzerzugang protokolliert wird, anzeigen lassen. Ein solcher Hinweis kann in bestimmten Regionen und nach der jeweiligen Rechtsprechung notwendig sein. Um dies zu aktivieren, müssen Sie nur die entsprechende Mitteilung in die Datei <filename>/etc/issue</filename> <footnote><para>Der Standardinhalt dieser Datei enthält Informationen über das Betriebssystem und dessen Version, die Sie möglicherweise unbekannten Benutzern nicht mitteilen möchten.</para></footnote> eintragen und das Kommentarzeichen in der Zeile in <filename>/etc/pam.d/login</filename> entfernen, um das Modul pam_issue.so zu aktivieren. In dieser Datei können Sie weitere Einstellungen vornehmen, die für Ihre Sicherheit relevant sein könnten, wie zum Beispiel:

en: setting rules for which users can access at which times, by enabling the <emphasis>pam_time.so</emphasis> module and configuring <filename>/etc/security/time.conf</filename> accordingly (disabled by default),
de: Regeln erstellen, welcher Benutzer zu welchen Zeiten auf das System zugreifen kann, indem Sie das Modul <emphasis>pam_time.so</emphasis> aktivieren und <filename>/etc/security/time.conf</filename> entsprechend konfigurieren (standardmäßig deaktiviert),

en: setup login sessions to use user limits as defined in <filename>/etc/security/limits.conf</filename> (enabled by default),
de: den Anmeldevorgang so einrichten, dass Benutzerbegrenzungen, die in <filename>/etc/security/limits.conf</filename> definiert sind, verwendet werden (standardmäßig aktiviert),

en: present the user with the information of previous login information (enabled by default),
de: dem Benutzer Informationen über die vorangegangene Anmeldung anzeigen (standardmäßig aktiviert),

en: print a message (<filename>/etc/motd</filename> and <filename>/run/motd.dynamic</filename>) to users after login in (enabled by default),
de: nach erfolgter Anmeldung den Benutzern eine Nachricht (<filename>/etc/motd</filename> und <filename>/run/motd.dynamic</filename>) anzeigen (standardmäßig aktiviert).

en: Restricting ftp: editing <filename>/etc/ftpusers</filename>
de: Ftp einschränken: bearbeiten von <filename>/etc/ftpusers</filename>

en: The <filename>/etc/ftpusers</filename> file contains a list of users who are not allowed to log into the host using ftp. Only use this file if you really want to allow ftp (which is not recommended in general, because it uses clear-text passwords). If your daemon supports PAM, you can also use that to allow and deny users for certain services.
de: Die Datei <filename>/etc/ftpusers</filename> enthält eine Liste von allen Benutzern, denen es <emphasis>nicht</emphasis> erlaubt ist, sich auf dem Rechner mit Ftp einzuloggen. Benutzen Sie diese Datei nur, wenn Sie wirklich Ftp erlauben wollen (wozu im Allgemeinen nicht geraten wird, da es Klartext-Passwörter benutzt). Wenn Ihr Ftp-Daemon PAM unterstützt, können Sie dies ebenfalls benutzen, um Benutzern bestimmte Dienste zu erlauben oder zu verbieten.

en: FIXME (BUG): Is it a bug that the default <filename>ftpusers</filename> in Debian does <emphasis>not</emphasis> include all the administrative users (in <application>base-passwd</application>).
de: FIXME (FEHLER): Ist es ein Fehler, dass <filename>ftpusers</filename> in Debian standardmäßig <emphasis>nicht</emphasis> die Benutzer mit Administratorenrecht (in <application>base-passwd</application>) beinhaltet?

en: A convenient way to add all system accounts to the <filename>/etc/ftpusers</filename> is to run
de: Folgender Befehl ist ein bequemer Weg, alle Systemkonten zu <filename>/etc/ftpusers</filename> hinzuzufügen:

en: 
    $ awk -F : '{if ($3&lt;1000) print $1}' /etc/passwd &gt; /etc/ftpusers
de: 
    $ awk -F : '{if ($3&#60;1000) print $1}' /etc/passwd &#62; /etc/ftpusers

en: Using su
de: Verwendung von Su

en: If you really need users to become the super user on your system, e.g. for installing packages or adding users, you can use the command <command>su</command> to change your identity. You should try to avoid any login as user root and instead use <command>su</command>. Actually, the best solution is to remove <command>su</command> and switch to the <command>sudo</command> mechanism which has a broader logic and more features than <command>su</command>. However, <command>su</command> is more common as it is used on many other Unices.
de: Wenn es wirklich benötigt wird, dass Benutzer der Super-User (also Root, d.Ü.) auf Ihrem System werden, zum Beispiel um Pakete zu installieren oder neue Benutzer anzulegen, können Sie das Programm <command>Su</command> benutzen, um Ihre Identität zu wechseln. Sie sollten jeden Login als Benutzer Root vermeiden und stattdessen das Programm <command>Su</command> benutzen. Eigentlich ist die beste Lösung, <command>Su</command> zu entfernen und zu <command>Sudo</command> zu wechseln, da es eine feinere Steuerung und mehr Möglichkeiten bietet als <command>Su</command>. Wie auch immer, <command>Su</command> ist verbreiteter und wird auf vielen Unices eingesetzt.

en: Using sudo
de: Verwendung von Sudo

en: <command>sudo</command> allows the user to execute defined commands under another user's identity, even as root. If the user is added to <filename>/etc/sudoers</filename> and authenticates correctly, the commands defined in <filename>/etc/sudoers</filename> get enabled. Violations, such as incorrect passwords or trying to run a program you don't have permission for, are logged and mailed to root.
de: <command>Sudo</command> erlaubt es dem Benutzer, bestimmte Befehle unter einer anderen Benutzeridentität auszuführen, sogar als Root. Wenn der Benutzer zu <filename>/etc/sudoers</filename> hinzugefügt ist und sich korrekt authentifiziert, ist er in der Lage, Befehle, die in <filename>/etc/sudoers</filename> definiert wurden, auszuführen. Sicherheitsverletzungen, wie ein inkorrektes Passwort oder der Versuch ein Programm auszuführen, für das die Rechte nicht ausreichen, werden protokolliert und an Root gemailt.

en: Disallow remote administrative access
de: Administrativen Fernzugriff verweigern

en: You should also modify <filename>/etc/security/access.conf</filename> to disallow remote logins to administrative accounts. This way users need to invoke <command>su</command> (or <command>sudo</command>) to use any administrative powers and the appropriate audit trace will always be generated.
de: Sie sollten <filename>/etc/security/access.conf</filename> ebenfalls so verändern, dass ein Login aus der Ferne in ein administratives Konto nicht erlaubt wird. Auf diese Weise müssen Benutzer das Programm <command>Su</command> (oder <command>Sudo</command>) aufrufen, um Administratorenrechte zu bekommen, so dass es immer eine nachprüfbare Spur gibt.

en: You need to add the following line to <filename>/etc/security/access.conf</filename>, the default Debian configuration file has a sample line commented out:
de: Sie müssen die folgende Zeile zu Ihrer <filename>/etc/security/access.conf</filename> hinzufügen, in Debians Standardkonfigurationsdatei ist ein Beispiel auskommentiert:

en: Remember to enable the <application>pam_access</application> module for every service (or default configuration) in <filename>/etc/pam.d/</filename> if you want your changes to <filename>/etc/security/access.conf</filename> honored.
de: Vergessen Sie nicht, in <filename>/etc/pam.d/</filename> das <literal>pam_access</literal>-Module für jeden Dienst (oder die Standardkonfiguration) anzuschalten, wenn Sie wollen, dass Ihre Änderungen an <filename>/etc/security/access.conf</filename> berücksichtigt werden.

en: Restricting users's access
de: Den Benutzerzugang einschränken

en: Sometimes you might think you need to have users created in your local system in order to provide a given service (pop3 mail service or ftp). Before doing so, first remember that the PAM implementation in Debian GNU/Linux allows you to validate users with a wide variety of external directory services (radius, ldap, etc.) provided by the libpam packages.
de: Manchmal werden Sie denken, dass Sie einen Benutzer auf Ihrem System erstellen müssen, um einen bestimmten Dienst (Pop3-E-Mail-Server oder Ftp) anzubieten. Bevor Sie dies tun, denken Sie zuerst daran, dass die PAM-Implementierung in Debian GNU/Linux Ihnen erlaubt, Benutzer mit einer breiten Auswahl von externen Verzeichnisdiensten (Radius, LDAP etc.) zu überprüfen. Dies wird vom Paket libpam bewerkstelligt.

en: If users need to be created and the system can be accessed remotely take into account that users will be able to log in to the system. You can fix this by giving users a null (<filename>/dev/null</filename>) shell (it would need to be listed in <filename>/etc/shells</filename>). If you want to allow users to access the system but limit their movements, you can use the <filename>/bin/rbash</filename>, equivalent to adding the <literal>-r</literal> option in <command>bash</command> (<emphasis>RESTRICTED SHELL</emphasis> see <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry> ). Please note that even with restricted shell, a user that access an interactive program (that might allow execution of a subshell) could be able to bypass the limits of the shell.
de: Wenn Sie einen Benutzer anlegen müssen und auf Ihr System aus der Ferne zugegriffen werden kann, beachten Sie, dass es Benutzern möglich sein wird, sich anzumelden. Sie können dies beheben, indem Sie diesen Benutzern Null (<filename>/dev/null</filename>) als Shell (sie muss in <filename>/etc/shells</filename> aufgelistet sein) zuweisen. Wenn Sie den Benutzern erlauben wollen, auf das System zuzugreifen, aber ihre Bewegungen einschränken wollen, können Sie <filename>/bin/rbash</filename> benutzen. Dies hat das gleiche Ergebnis, wie wenn Sie die Option <literal>-r</literal> der <command>Bash</command> (<emphasis>RESTRICTED SHELL</emphasis>, siehe <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>) verwendet hätten. Beachten Sie bitte, dass sogar mit einer beschränkten Shell ein Benutzer, der auf ein interaktives Programm zugreifen kann (das ihm erlaubt, eine Subshell auszuführen), diese Limitierung der Shell umgehen kann.

en: Debian currently provides in the unstable release (and might be included in the next stable releases) the <filename>pam_chroot</filename> module (in the <application> libpam-chroot</application>). An alternative to it is to <command>chroot</command> the service that provides remote logging (<command>ssh</command>, <command>telnet</command>). <footnote><para><application>libpam-chroot</application> has not been yet thoroughly tested, it does work for <command>login</command> but it might not be easy to set up the environment for other programs</para></footnote>
de: Debian bietet zurzeit in seiner Unstable-Veröffentlichung (und wird es vielleicht der nächsten Stable-Veröffentlichung hinzufügen) das Modul <filename>pam_chroot</filename> (in <application>libpam-chroot</application>) an. Eine Alternative hierzu ist es, die Dienste, die eine Fernanmeldung ermöglichen (<command>Ssh</command> und <command>Telnet</command>), in einer <command>Chroot</command>-Umgebung laufen zu lassen. <footnote><para><application>libpam-chroot</application> wurden noch nicht vollständig getestet. Es funktioniert mit <command>Login</command>, aber es dürfte nicht leicht sein, diese Umgebung für andere Programme einzurichten.</para></footnote>

en: If you wish to restrict <emphasis>when</emphasis> users can access the system you will have to customize <filename>/etc/security/access.conf</filename> for your needs.
de: Wenn Sie einschränken wollen, <emphasis>wann</emphasis> ein Benutzer auf das System zugreifen kann, müssen Sie <filename>/etc/security/access.conf</filename> an Ihre Bedürfnisse anpassen.

en: Information on how to <command>chroot</command> users accessing the system through the <command>ssh</command> service is described in <xref linkend="chroot-ssh-env" />.
de: Informationen, wie man Benutzer, die auf das System mittels des Dienstes <command>Ssh</command> zugreifen, in eine <command>Chroot</command>-Umgebung einsperrt, wird in <xref linkend="chroot-ssh-env"/> beschrieben.

en: User auditing
de: Überprüfen der Benutzer

en: If you are really paranoid you might want to add a system-wide configuration to audit what the users are doing in your system. This sections presents some tips using diverse utilities you can use.
de: Wenn Sie wirklich paranoid sind, sollten Sie eine systemweite Einrichtung verwenden, um zu überwachen, was die Benutzer auf Ihrem System tun. In diesem Abschnitt werden einige Tipps vorgestellt, wie Sie verschiedene Werkzeuge verwenden.

en: Input and output audit with script
de: Überwachung von Ein- und Ausgabe mittels eines Skripts

en: You can use the <command>script</command> command to audit both what the users run and what are the results of those commands. You cannot setup <command>script</command> as a shell (even if you add it to <filename>/etc/shells</filename>). But you can have the shell initialization file run the following:
de: Um sowohl die von den Benutzern ausgeführten Programme als auch deren Ergebnisse zu überwachen, können Sie den Befehl <command>script</command> verwenden. Sie können <command>script</command> nicht als eine Shell einsetzen (auch dann nicht, wenn Sie es zu <filename>/etc/shells</filename> hinzufügen). Aber Sie können in die Datei, welche den Startvorgang der Shell steuert, folgendes eintragen:

en: Of course, if you do this system wide it means that the shell would not continue reading personal initialization files (since the shell gets overwritten by <command>script</command>). An alternative is to do this in the user's initialization files (but then the user could remove this, see the comments about this below)
de: Wenn Sie dies systemweit vornehmen, bedeutet dies natürlich, dass die Shell die weiteren persönlichen Startdateien nicht abarbeitet (weil die Shell von <command>script</command> überschrieben wird). Eine Alternative ist, dies in den Startdateien des Benutzers vorzunehmen (dann kann der Benutzer aber dies entfernen, vgl. dazu die Anmerkungen unten).

en: You also need to setup the files in the audit directory (in the example <filename>/var/log/sessions/</filename>) so that users can write to it but cannot remove the file. This could be done, for example, by creating the user session files in advance and setting them with the <emphasis>append-only</emphasis> flag using <command>chattr</command>.
de: Sie müssen auch die Dateien im Überwachungsverzeichnis (im Beispiel <filename>/var/log/sessions/</filename>) so einrichten, dass die Benutzer in sie schreiben, sie aber nicht löschen können. Dies kann zum Beispiel bewerkstelligt werden, indem die Sitzungsdateien der Benutzer vorab erstellt und mit <command>chattr</command> auf <emphasis>append-only</emphasis> (nur anfügen) gesetzt werden.

en: A useful alternative for sysadmins, which includes date information would be:
de: Eine sinnvolle Alternative für Systemadministratoren, die auch Zeitinformationen enthält, ist:

en: Using the shell history file
de: Die Chronikdatei der Shell benutzen

en: If you want to review what does the user type in the shell (but not what the result of that is) you can setup a system-wide <filename>/etc/profile</filename> that configures the environment so that all commands are saved into a history file. The system-wide configuration needs to be setup in such a way that users cannot remove audit capabilities from their shell. This is somewhat shell specific so make sure that all users are using a shell that supports this.
de: Wenn Sie auswerten wollen, was die Benutzer in die Shell eingeben (aber nicht was das Ergebnis ist), können Sie eine systemweite <filename>/etc/profile</filename> so einrichten, dass alle Befehle in einer Chronikdatei gespeichert werden. Die systemweite Einstellung muss so eingerichtet werden, dass Benutzer die Überwachungsfähigkeit nicht aus ihrer Shell entfernen können. Ob dies möglich ist, hängt von der Art der Shell ab. Sie müssen also sicherstellen, dass alle Benutzer eine Shell verwenden, die das unterstützt.

en: For example, for bash, the <filename>/etc/profile</filename> could be set as follows <footnote><para> Setting HISTSIZE to a very large number can cause issues under some shells since the history is kept in memory for every user session. You might be safer if you set this to a high-enough value and backup user's history files (if you need all of the user's history for some reason)</para></footnote> :
de: Für die Bash zum Beispiel könnte <filename>/etc/profile</filename> folgendermaßen aufgebaut werden <footnote><para> Wenn HISTSIZE eine sehr große Zahl zugewiesen wird, kann dies bei einigen Shells zu Problemen führen, da der Verlauf für jede Sitzung eines Benutzers im Speicher abgelegt wird. Sie sind auf der sichereren Seite, wenn Sie HISTSIZE auf einen ausreichend großen Wert setzen und eine Kopie der Chronikdatei des Benutzers anlegen (falls Sie aus irgendwelchen Gründen den ganzen Verlauf von einem Benutzer benötigen). </para></footnote>:

en: 
      HISTFILE=~/.bash_history
      HISTSIZE=10000
      HISTFILESIZE=999999
      # Don't let the users enter commands that are ignored
      # in the history file
      HISTIGNORE=""
      HISTCONTROL=""
      readonly HISTFILE
      readonly HISTSIZE
      readonly HISTFILESIZE
      readonly HISTIGNORE
      readonly HISTCONTROL
      export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL
de: 
      HISTFILE=~/.bash_history
      HISTSIZE=10000
      HISTFILESIZE=999999
      # Verhindert, dass Benutzer Befehle eintragen,
      # die in die Verlaufsdatei ignoriert werden
      HISTIGNORE=""
      HISTCONTROL=""
      readonly HISTFILE
      readonly HISTSIZE
      readonly HISTFILESIZE
      readonly HISTIGNORE
      readonly HISTCONTROL
      export HISTFILE HISTSIZE HISTFILESIZE HISTIGNORE HISTCONTROL

en: For this to work, the user can only append information to <filename>.bash_history</filename> file. You need <emphasis>also</emphasis> to set the <emphasis>append-only</emphasis> option using <command>chattr</command> program for <filename>.bash_history</filename> for all users. <footnote><para> Without the append-only flag users would be able to empty the contents of the history file running <filename> &gt; .bash_history</filename></para></footnote>.
de: Damit dies funktioniert, dürfen die Benutzer nur Informationen zur <filename>.bash_history</filename>-Datei hinzufügen. Sie müssen daher <emphasis>zusätzlich</emphasis> die Option <emphasis>append-only</emphasis> (nur anfügen) mittels des Programms <command>Chattr</command> für die <filename>.bash_history</filename> aller Benutzer setzen <footnote><para> Ohne das Append-Only-Flag wäre es den Benutzern möglich, den Inhalt des Verlaufs zu löschen, indem sie <filename> > .bash_history</filename> ausführen. </para></footnote>.

en: Note that you could introduce the configuration above in the user's <filename>.profile</filename>. But then you would need to setup permissions properly in such a way that prevents the user from modifying this file. This includes: having the user's home directories <emphasis>not</emphasis> belong to the user (since the user would be able to remove the file otherwise) but at the same time allow the user to read the <filename>.profile</filename> configuration file and write on the <filename>.bash_history</filename>. It would be good to set the <emphasis>immutable</emphasis> flag (also using <command>chattr</command>) for <filename>.profile</filename> too if you do it this way.
de: Beachten Sie, dass Sie obige Konfiguration auch in <filename>.profile</filename> des Benutzers eintragen können. Dann müssten Sie aber die Rechte korrekt vergeben, so dass der Benutzer daran gehindert ist, diese Datei zu verändern. Dies schließt ein, dass das Home-Verzeichnis des Benutzers diesem <emphasis>nicht</emphasis> gehört (sonst könnte er die Datei einfach löschen). Gleichzeitig müsste ihm ermöglicht werden, die Konfigurationsdatei <filename>.profile</filename> zu lesen und in <filename>.bash_history</filename> zu schreiben. Falls Sie diese Variante wählen wollen, wäre es auch gut, den Schalter <emphasis>immutable</emphasis> (unveränderbar) für <filename>.profile</filename> zu setzen (auch dazu verwenden Sie <command>Chattr</command>).

en: Complete user audit with accounting utilities
de: Vervollständigung der Benutzerüberwachung durch Accounting-Werkzeuge

en: The previous example is a simple way to configure user auditing but might be not useful for complex systems or for those in which users do not run shells at all (or exclusively). If this is your case, you need to look at <application>acct</application>, the accounting utilities. These utilities will log all the commands run by users or processes in the system, at the expense of disk space.
de: Die vorherigen Beispiele stellen eine einfache Art dar, um die Überwachung von Benutzern einzurichten. Sie eignen sich aber nicht unbedingt für komplexe Systeme oder für solche, auf denen die Benutzer überhaupt keine (oder ausschließlich) Shells am Laufen haben. Sollte dies der Fall sein, schauen Sie sich das Paket <application>acct</application> an, das Werkzeuge zur Auswertung (accounting utilities) enthält. Diese werden alle Befehle, die ein Benutzer oder ein Prozess auf dem System ausführt, &ndash; auf die Kosten von Plattenplatz &ndash; aufzeichnen.

en: When activating accounting, all the information on processes and users is kept under <filename>/var/account/</filename>, more specifically in the <filename>pacct</filename>. The accounting package includes some tools (<command>sa</command>, <command>ac</command> and <command>lastcomm</command>) to analyse this data.
de: Wenn Sie diese Auswertung aktivieren, werden alle Informationen über Prozesse und Benutzer unter <filename>/var/account/</filename> gespeichert, genauer gesagt in <filename>pacct</filename>. Das Accounting-Paket enthält einige Werkzeuge (<command>Sa</command>, <command>Ac</command> und <command>Lastcomm</command>) zur Analyse dieser Daten.

en: Other user auditing methods
de: Andere Methoden zur Benutzerüberwachung

en: Reviewing user profiles
de: Nachprüfung der Benutzerprofile

en: If you want to <emphasis>see</emphasis> what users are actually doing when they logon to the system you can use the <filename>wtmp</filename> database that includes all login information. This file can be processed with several utilities, amongst them <command>sac</command> which can output a profile on each user showing in which timeframe they usually log on to the system.
de: Wenn Sie <emphasis>sehen</emphasis> wollen, was Benutzer tatsächlich tun, wenn sie sich am System anmelden, können Sie die <filename>wtmp</filename>-Datenbank benutzen, die alle Anmeldeinformationen enthält. Diese Datei kann mit verschiedenen Werkzeugen weiterverarbeitet werden, unter ihnen <command>Sac</command>, das ein Profil für jeden Benutzer ausgeben kann und zeigt, in welchem Zeitfenster sie sich für gewöhnlich auf dem System anmelden.

en: In case you have accounting activated, you can also use the tools provided by it in order to determine when the users access the system and what do they execute.
de: Für den Fall, dass Sie Accounting aktiviert haben, können Sie auch die mitgelieferten Werkzeuge verwenden, um festzustellen, wann Benutzer auf das System zugreifen und was sie ausführen.

en: Setting users umasks
de: Umasks der Benutzer einstellen

en: Depending on your user policy you might want to change how information is shared between users, that is, what the default permissions of new files created by users are.
de: Abhängig von Ihren Benutzerrichtlinien möchten Sie ändern, wie Benutzer Informationen gemeinsam benutzen können. Dabei geht es um die Standardrechte von neu erstellten Dateien.

en: Debian's default <literal>umask</literal> setting is <emphasis>022</emphasis> this means that files (and directories) can be read and accessed by the user's group and by any other users in the system. This definition is set in the standard configuration file <filename>/etc/profile</filename> which is used by all shells.
de: Das Standardwert von <literal>Umask</literal> ist in Debian <emphasis>022</emphasis>. Das bedeutet, dass die Gruppe des Benutzers und alle anderen Benutzers auf dem System die Dateien (und Verzeichnisse) lesen und darauf zugreifen kann. Dieser Wert wird in der Standardkonfigurationsdatei <filename>/etc/profile</filename> gesetzt, die von allen Shells verwendet wird.

en: If Debian's default value is too permissive for your system you will have to change the umask setting for all the shells. More restrictive umask settings include 027 (no access is allowed to new files for the <emphasis>other</emphasis> group, i.e. to other users in the system) or 077 (no access is allowed to new files to the members the user's group). Debian (by default<footnote><para>As defined in <filename>/etc/adduser.conf</filename> (USERGROUPS=yes). You can change this behaviour if you set this value to no, although it is not recommended</para></footnote>) creates one group per user so that only the user is included in its group. Consequently 027 and 077 are equivalent as the user's group contains only the user.
de: Wenn die Standardwerte von Debian für Ihr System zu großzügig sind, müssen Sie die Umask-Einstellungen für alle Shells ändern. Strengere Umask-Einstellungen sind 027 (kein Zugriff der Gruppe <emphasis>other</emphasis> auf neue Dateien, dazu zählen andere Benutzer auf dem System) oder 077 (kein Zugriff der Mitglieder der Gruppe des Benutzers). Debian erzeugt (standardmäßig<footnote><para>Wird in <filename>/etc/adduser.conf</filename> festgelegt (USERGROUPS=yes). Sie ändern dieses Verhalten, wenn Sie den Wert auf »no« setzen. Dies wird aber nicht empfohlen.</para></footnote>) für jeden Benutzer eine eigene Gruppe, so dass das einzige Gruppenmitglied der Benutzer selbst ist. Daher ergibt sich zwischen 027 und 077 kein Unterschied, da die Benutzergruppe nur den Benutzer selbst enthält.

en: This change is set by defining a proper <literal>umask</literal> setting for all users. You can change this by introducing an <command>umask</command> call in the shell configuration files: <filename>/etc/profile</filename> (source by all Bourne-compatible shells), <filename>/etc/csh.cshrc</filename>, <filename>/etc/csh.login</filename>, <filename>/etc/zshrc</filename> and probably some others (depending on the shells you have installed on your system). You can also change the <varname>UMASK</varname> setting in <filename>/etc/login.defs</filename>, Of all of these the last one that gets loaded by the shell takes precedence. The order is: the default system configuration for the user's shell (i.e. <filename>/etc/profile</filename> and other system-wide configuration files) and then the user's shell (his <filename>~/.profile</filename>, <filename>~/.bash_profile</filename>, etc...). Some shells, however, can be executed with a <emphasis>nologin</emphasis> value which might skip sourcing some of those files. See your shell's manpage for additional information.
de: Dies ändern Sie, indem Sie eine passende <literal>Umask</literal> für alle Benutzer einstellen. Dazu müssen Sie einen <command>umask</command>-Aufruf in den Konfigurationsdateien aller Shells einfügen: <filename>/etc/profile</filename> (wird von allen Shells beachtet, die kompatibel mit Bourne sind), <filename>/etc/csh.cshrc</filename>, <filename>/etc/csh.login</filename>, <filename>/etc/zshrc</filename> und wahrscheinlich noch ein paar andere (je nachdem, welche Shells Sie auf Ihrem System installiert haben). Sie können auch die <varname>UMASK</varname>-Einstellung in <filename>/etc/login.defs</filename> verändern. Von all diesen Dateien erlangt die letzte, die von der Shell geladen wird, Vorrang. Die Reihenfolge lautet: die Standard-Systemkonfiguration für die Shell des Benutzers (d.h. <filename>/etc/profile</filename> und andere systemweite Konfigurationsdateien),  dann die Shell des Benutzers (seine <filename>~/.profile</filename>) und <filename>~/.bash_profile</filename> etc.). Allerdings können einige Shells mit dem <emphasis>nologin</emphasis>-Wert ausgeführt werden, was verhindern kann, dass einige dieser Dateien ausgewertet werden. Sehen Sie in der Handbuchseite Ihrer Shell für weitere Informationen nach.

en: For connections that make use of <command>login</command> the UMASK definition in <filename>/etc/login.defs</filename> is used before any of the others. However, that value does not apply to user executed programs that do not use <command>login</command> such as those run through <command>su</command>, <command>cron</command> or <command>ssh</command>.
de: Bei Anmeldungen, die von <command>Login</command> Gebrauch machen, erhält die UMASK-Festlegung in <filename>/etc/login.defs</filename> Vorrang vor allen anderen Einstellungen. Dieser Wert wird aber nicht von Anwendungen des Benutzers beachtet, die nicht <command>Login</command> verwenden, wie z.B. solche, die durch <command>Su</command>, <command>Cron</command> oder <command>Ssh</command> ausgeführt werden.

en: Don't forget to review and maybe modify the dotfiles under <filename>/etc/skel/</filename> since these will be new user's defaults when created with the <command>adduser</command> command. Debian default dotfiles do not include any <command>umask</command> call but if there is any in the dotfiles newly created users might a different value.
de: Vergessen Sie nicht, die Dateien unter <filename>/etc/skel/</filename> zu überprüfen und gegebenenfalls anzupassen, da dort die Standards für Benutzer festgelegt werden, die mit dem Befehl <command>adduser</command> erstellt werden. Standardmäßig enthalten die Dateien in Debian keinen Aufruf von <command>umask</command>. Wenn sich aber ein solcher in Konfigurationsdateien befindet, sind neue Benutzer eher geneigt, ihn ihren Bedürfnissen anzupassen.

en: Note, however that users can modify their own <literal>umask</literal> setting if they want to, making it more permissive or more restricted, by changing their own dotfiles.
de: Beachten Sie allerdings, dass ein Benutzer seine <command>Umask</command>-Einstellung ändern kann, wenn er es möchte, um sie großzügiger oder einschränkender zu machen, indem er seine Konfigurationsdateien verändert.

en: The <application>libpam-umask</application> package adjusts the users' default <literal>umask</literal> using PAM. Add the following, after installing the package, to <filename>/etc/pam.d/common-session</filename>:
de: Das Paket <application>libpam-umask</application> passt die Standard-<literal>Umask</literal> eines Benutzers mit Hilfe von PAM an. Nachdem Sie das Paket installiert haben, tragen Sie Folgendes in <filename>/etc/pam.d/common-session</filename> ein:

en: Finally, you should consider changing root's default 022 umask (as defined in <filename>/root/.bashrc</filename>) to a more strict umask. That will prevent the system administrator from inadvertenly dropping sensitive files when working as root to world-readable directories (such as <filename>/tmp</filename>) and having them available for your average user.
de: Zu guter Letzt sollte Sie in Betracht ziehen, die Standard-Umask von Root (022, wird in <filename>/root/.bashrc</filename> festgelegt) auf einen strengeren Wert zu verändern. Damit kann verhindert werden, dass der Systemadministrator als Root sensible Dateien in von allen lesbaren Verzeichnissen (wie z.B. <filename>/tmp</filename>) ablegt und sie so dem Durchschnittsbenutzer zugänglich macht.

en: Limiting what users can see/access
de: Beschränken, was Benutzer sehen und worauf sie zugreifen können

en: FIXME: Content needed. Describe the consequences of changing packages permissions when upgrading (an admin this paranoid should <command>chroot</command> his users BTW) if not using <command>dpkg-statoverride</command>.
de: FIXME: Inhalt benötigt. Aufzeigen der Folgen beim Upgraden, wenn die Paketrechte verändert werden, falls nicht <command>dpkg-statoverride</command> verwendet wird (übrigens sollte ein derartig paranoider Administrator seine Benutzer in eine <command>Chroot</command>-Umgebung einsperren).

en: If you need to grant users access to the system with a shell think about it very carefully. A user can, by default unless in a severely restricted environment (like a <literal>chroot</literal> jail), retrieve quite a lot of information from your system including:
de: Wenn Sie einem Benutzer Zugriff auf das System mit einer Shell gewähren müssen, sollten Sie vorsichtig sein. Ein Benutzer kann normalerweise, wenn er sich nicht in einer streng abgeschirmten Umgebung befindet (z.B. in einem <literal>Chroot</literal>-Gefängnis), ziemlich viel Informationen über Ihr System sammeln. Darunter fallen:

en: some configuration files in <filename>/etc</filename>. However, Debian's default permissions for some sensitive files (which might, for example, contain passwords), will prevent access to critical information. To see which files are only accessible by the root user for example
de: Einige Konfigurationsdateien unter <filename>/etc</filename>. Jedoch werden Debians Standardrechte für sensible Dateien (die zum Beispiel Passwörter enthalten könnten) den Zugriff auf kritische Informationen verhindern. Um zu sehen, auf welche Dateien nur der Root-Benutzer zugreifen kann, führen Sie zum Beispiel <literal>find /etc -type f -a -perm 600 -a -uid 0</literal> als Superuser aus.

en: as superuser.
de: als Superuser aus.

en: your installed packages, either by looking at the package database, at the <filename>/usr/share/doc</filename> directory or by guessing by looking at the binaries and libraries installed in your system.
de: Ihre installierten Pakete. Indem entweder die Paketdatenbank und das Verzeichnis <filename>/usr/share/doc/</filename> angesehen wird oder indem versucht wird, dies durch Anschauen der auf Ihrem System installierten Programme und Bibliotheken zu raten.

en: some log files at <filename>/var/log</filename>. Note also that some log files are only accessible to root and the <literal>adm</literal> group (try
de: Einige Protokolle unter <filename>/var/log</filename>. Beachten Sie, dass auf einige Protokolle nur Root und die <command>adm</command>-Gruppe zugreifen kann (versuchen Sie

en: ) and some are even only available to the root user (try
de: ) Manche sind sogar ausschließlich für Root verfügbar (sehen Sie sich

en: <userinput>find /var/log -type f -a -perm
        600 -a -uid 0</userinput>
de: <userinput>find /var/log -type f -a -perm
        600 -a -uid 0</userinput> an

en: What can a user see in your system? Probably quite a lot of things, try this (take a deep breath):
de: Was kann ein Benutzer von Ihrem System sehen? Wahrscheinlich ziemlich viele Sachen, versuchen Sie mal Folgendes (und jetzt tief durchatmen):

en: The output is the list of files that a user can <emphasis>see</emphasis> and the accessable directories.
de: Was Sie sehen, ist eine Liste von allen Dateien, die ein Benutzer <emphasis>einsehen</emphasis> kann, und von den Verzeichnissen, auf die er Zugriff hat.

en: Limiting access to other user's information
de: Begrenzung des Zugangs zu Informationen anderer Benutzer

en: If you still grant shell access to users you might want to limit what information they can view from other users. Users with shell access have a tendency to create quite a number of files under their $HOMEs: mailboxes, personal documents, configuration of X/GNOME/KDE applications...
de: Wenn Sie immer noch Benutzern einen Shellzugang zur Verfügung stellen wollen, sollten Sie die Informationen begrenzen, die man über anderen Benutzern einholen kann. Benutzer mit einer Shell haben die Neigung, eine ziemlich große Anzahl von Dateien in ihrem $HOME zu erstellen: Mailboxen, persönliche Daten, Konfigurationen für X/GNOME/KDE-Anwendungen ...

en: In Debian each user is created with one associated group, and no two users belong to the same group. This is the default behavior: when an user account is created, a group of the same name is created too, and the user is assigned to it. This avoids the concept of a common <emphasis>users</emphasis> group which might make it more difficult for users to hide information from other users.
de: Unter Debian wird jeder Benutzer mit einer zugehörigen Gruppe erstellt. Verschiedene Benutzer gehören dabei nie zur selben Gruppe. Folgendes ist das Standardverhalten: Wenn ein Benutzerkonto angelegt wird, wird auch eine Gruppe mit dem gleichen Namen erstellt. Dieser Gruppe wird der Benutzer zugewiesen. Damit wird die Idee einer allgemeinen <emphasis>users</emphasis>-Gruppe überflüssig, die es Benutzern erschweren könnte, Informationen vor anderen Benutzern zu verstecken.

en: However, users' <varname>$HOME</varname> directories are created with 0755 permissions (group-readable and world-readable). The group permissions is not an issue since only the user belongs to the group, however the world permissions might (or might not) be an issue depending on your local policy.
de: Allerdings wird das <varname>$HOME</varname>-Verzeichnis der Benutzer mit 0755-Rechten (lesbar von der Gruppe, lesbar von der Welt) erstellt. Die Rechte für die Gruppe sind kein Thema, da nur der Benutzer zu dieser Gruppe gehört. Allerdings könnten die Rechte für die Welt ein Problem darstellen, wobei dies von Ihren lokalen Richtlinien abhängt.

en: You can change this behavior so that user creation provides different <varname>$HOME</varname> permissions. To change the behavior for <emphasis>new</emphasis> users when they get created, change <emphasis>DIR_MODE</emphasis> in the configuration file <filename>/etc/adduser.conf</filename> to 0750 (no world-readable access).
de: Sie können dieses Verhalten so abändern, dass das Erstellen eines Benutzers andere Rechte für <varname>$HOME</varname> liefert. Um dieses Verhalten für <emphasis>neue</emphasis> Benutzer zu ändern, wenn sie erstellt werden, ändern Sie in der Konfigurationsdatei <filename>/etc/adduser.conf</filename> <emphasis>DIR_MODE</emphasis> auf 0750 (nicht lesbar für die Welt) ab.

en: Users can still share information, but not directly in their <varname>$HOME</varname> directories unless they change its permissions.
de: Benutzer können immer noch Informationen austauschen, aber nicht mehr unmittelbar in ihrem <varname>$HOME</varname>-Verzeichnis, es sei denn, dass sie dessen Recht verändert haben.

en: Note that disabling world-readable home directories will prevent users from creating their personal web pages in the <filename>~/public_html</filename> directory, since the web server will not be able to read one component in the path - namely their <varname>$HOME</varname> directory. If you want to permit users to publish HTML pages in their <filename>~/public_html</filename>, then change <emphasis>DIR_MODE</emphasis> to 0751. This will allow the web server to access the final <filename>public_html</filename> directory (which itself should have a mode of 0755) and provide the content published by users. Of course, we are only talking about a default configuration here; users can generally tune modes of their own files completely to their liking, or you could keep content intended for the web in a separate location which is not a subdirectory of user's <varname>$HOME</varname> directory.
de: Wenn Sie den Lesezugriff auf die Home-Verzeichnisse für die Welt verhindert, sollten Sie beachten, dass dann Benutzer ihre persönlichen Webseiten nicht unter <filename>~/public_html</filename> erstellen können, da der Webserver einen Teil des Pfads nicht lesen kann &ndash; und zwar das <varname>$HOME</varname>-Verzeichnis. Wenn Sie es Benutzern erlauben wollen, ihre HTML-Seiten in ihrem <filename>~/public_html</filename> zu veröffentlichen, sollten Sie <emphasis>DIR_MODE</emphasis> auf 0751 setzen. Das ermöglicht dem Webserver Zugriff auf das eigentliche <filename>public_html</filename>-Verzeichnis (welches selbst die Rechte 0755 haben sollte). So kann er den von den Benutzern veröffentlichten Inhalt anbieten. Natürlich sprechen wir hier nur über die Standardeinstellung. Benutzer können grundsätzlich die Rechte für ihre eigenen Dateien nach ihrem Gutdünken vergeben. Oder Sie können die Dinge, die für das Web bestimmt sind, in einem getrennten Ort ablegen, der kein Unterverzeichnis vom <varname>$HOME</varname>-Verzeichnis des Benutzers ist.

en: Generating user passwords
de: Erstellen von Benutzerpasswörtern

en: There are many cases when an administrator needs to create many user accounts and provide passwords for all of them. Of course, the administrator could easily just set the password to be the same as the user's account name, but that would not be very sensitive security-wise. A better approach is to use a password generating program. Debian provides <application>makepasswd</application>, <application>apg</application> and <application>pwgen</application> packages which provide programs (the name is the same as the package) that can be used for this purpose. <command>Makepasswd</command> will generate true random passwords with an emphasis on security over pronounceability while <command>pwgen</command> will try to make meaningless but pronounceable passwords (of course this might depend on your mother language). <command>Apg</command> has algorithms to provide for both (there is a client/server version for this program but it is not included in the Debian package).
de: In vielen Fällen muss ein Administrator viele Benutzerkonten erstellen und alle mit Passwörtern ausstatten. Der Administrator könnte natürlich einfach als Passwort den Namen des Benutzerkontos vergeben. Dies wäre aber unter Sicherheitsgesichtspunkten nicht sehr klug. Ein besseres Vorgehen ist es, ein Programm zur Erzeugung von Passwörtern zu verwenden. Debian stellt die Pakete <application>makepasswd</application>, <application>apg</application> und <application>pwgen</application> zur Verfügung, die Programme liefern (deren Name ist der gleiche wie der des Pakets), die zu diesem Zweck verwendet werden können. <command>Makepasswd</command> erzeugt wirklich zufällige Passwörter, gibt also der Sicherheit gegenüber der Aussprechbarkeit den Vorzug. Dagegen versucht <command>pwgen</command>, bedeutungslose, aber aussprechbare Passwörter herzustellen (dies hängt natürlich auch von Ihrer Muttersprache ab). <command>Apg</command> liefert Algorithmen für beide Möglichkeiten (Es gibt auch eine Client/Server-Version dieses Programms. Diese befindet sich aber nicht im Debian-Paket).

en: <command>Passwd</command> does not allow non-interactive assignation of passwords (since it uses direct tty access). If you want to change passwords when creating a large number of users you can create them using <command>adduser</command> with the <literal>--disabled-login</literal> option and then use <command>usermod</command> or <command>chpasswd</command> <footnote><para> <command>Chpasswd</command> cannot handle MD5 password generation so it needs to be given the password in encrypted form before using it, with the <screen><userinput>-e</userinput></screen> option. </para></footnote> (both from the <application>passwd</application> package so you already have them installed). If you want to use a file with all the information to make users as a batch process you might be better off using <command>newusers</command>.
de: <command>Passwd</command> erlaubt nur die interaktive Zuweisung von Passwörtern (da es direkt den tty-Zugang benutzt). Wenn Sie Passwörter ändern wollen, wenn Sie eine große Anzahl von Benutzern erstellen, können Sie diese unter der Verwendung von <command>adduser</command> mit der <literal>--disabled-login</literal>-Option erstellen, und danach <command>usermod</command> oder <command>chpasswd</command> <footnote><para> <command>Chpasswd</command> kann keine MD5-Passwörter erzeugen. Daher muss ihm das Passwort in verschlüsselter Form mit der Option <screen><userinput>-e</userinput></screen> übergeben werden. </para></footnote> benutzen (beide Programme stammen aus dem <application>passwd</application>-Paket. Sie haben sie also schon installiert). Wenn Sie lieber eine Datei verwenden, die alle Informationen zur Erstellung von Benutzern als Batch-Prozess enthält, sind Sie vielleicht mit <command>newusers</command> besser dran.

en: Checking user passwords
de: Überprüfung der Benutzerpasswörter

en: User passwords can sometimes become the <emphasis>weakest link</emphasis> in the security of a given system. This is due to some users choosing weak passwords for their accounts (and the more of them that have access to it the greater the chances of this happening). Even if you established checks with the cracklib PAM module and password limits as described in <xref linkend="auth-pam" /> users will still be able to use weak passwords. Since user access might include remote shell access (over <command>ssh</command>, hopefully) it's important to make password guessing as hard as possible for the remote attackers, especially if they were somehow able to collect important information such as usernames or even the <filename>passwd</filename> and <filename>shadow</filename> files themselves.
de: Die Passwörter der Benutzer sind manchmal die <emphasis>schwächste Stelle</emphasis> der Sicherheit eines Systems. Das liegt daran, dass manche Benutzer schwache Passwörter für ihr Konto wählen (und je mehr Benutzer Zugang zum System haben, umso größer die Chance, dass das passiert). Selbst wenn Sie Überprüfungen mit dem PAM-Module cracklib und Grenzen für Passwörter einsetzen, wie in <xref linkend="auth-pam"/> beschrieben wird, ist es Benutzern immer noch möglich, schwache Passwörter zu verwenden. Da der Zugang der Benutzer auch den Zugang aus der Ferne (hoffentlich über <command>Ssh</command>) umfassen kann, ist es wichtig, dass das Erraten von Passwörtern für Angreifer aus der Ferne so schwierig wie möglich ist. Dies gilt insbesondere dann, wenn es ihnen gelungen sein sollte, Zugriff auf wichtigen Informationen wie den Benutzernamen oder sogar den Dateien <filename>passwd</filename> und <filename>shadow</filename> selbst zu bekommen.

en: A system administrator must, given a big number of users, check if the passwords they have are consistent with the local security policy. How to check? Try to crack them as an attacker would if having access to the hashed passwords (the <filename>/etc/shadow</filename> file).
de: Ein Systemadministrator muss bei einer großen Anzahl von Benutzern überprüfen, ob deren Passwörter mit den lokalen Sicherheitsrichtlinien in Einklang stehen. Und wie überprüft man das? Indem man versucht, sie wie ein Angreifer zu knacken, der Zugriff auf die gehashten Passwörter hat (also auf die Datei <filename>/etc/shadow</filename>).

en: Logging off idle users
de: Abmelden von untätigen Benutzern

en: Idle users are usually a security problem, a user might be idle maybe because he's out to lunch or because a remote connection hung and was not re-established. For whatever the reason, idle users might lead to a compromise:
de: Untätige (idle) Benutzer stellen für gewöhnlich ein Sicherheitsproblem dar. Ein Benutzer kann untätig sein, da er Mittagessen ist, oder weil eine Verbindung aus der Ferne hängen blieb und nicht wieder hergestellt wurde. Unabhängig von den Gründen können untätige Benutzer zu einer Kompromittierung führen:

en: because the user's console might be unlocked and can be accessed by an intruder.
de: weil die Konsole des Benutzers vielleicht nicht verriegelt ist und damit ein Eindringling darauf zugreifen kann.

en: because an attacker might be able to re-attach to a closed network connection and send commands to the remote shell (this is fairly easy if the remote shell is not encrypted as in the case of <command>telnet</command>).
de: weil ein Angreifer an eine schon beendete Netzwerkverbindung anknüpfen und Befehle an die Shell in der Ferne schicken kann (das ist ziemlich einfach, wenn die Shell in der Ferne, wie bei <command>Telnet</command>, nicht verschlüsselt ist).

en: Some remote systems have even been compromised through an idle (and detached) <command>screen</command>.
de: In einige  Systeme in der Ferne wurde sogar schon durch ein untätiges (und abgelöstes) <command>Screen</command> eingedrungen.

en: Automatic disconnection of idle users is usually a part of the local security policy that must be enforced. There are several ways to do this:
de: Die automatische Trennung von untätigen Benutzern ist gewöhnlich ein Teil der lokalen Sicherheitsrichtlinie, die durchgesetzt werden muss. Es gibt mehrere Arten, dies zu erreichen:

en: If <application>bash</application> is the user shell, a system administrator can set a default <varname>TMOUT</varname> value (see <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>) which will make the shell automatically log off remote idle users. Note that it must be set with the <literal>-o</literal> option or users will be able to change (or unset) it.
de: Wenn die Shell des Benutzers die <application>Bash</application> ist, kann ein Systemadministrator <command>TMOUT</command> einen Standardwert zuweisen (vergleich <citerefentry><refentrytitle>bash</refentrytitle><manvolnum>1</manvolnum></citerefentry>). Das hat zur Folge, dass die Shell automatisch untätige Benutzer aus der Ferne abmeldet. Beachten Sie, dass der Wert mit der Option <command>-o</command> gesetzt werden muss. Ansonsten ist es den Benutzern möglich, ihn zu verändern (oder zu löschen).

en: Install <application>timeoutd</application> and configure <filename>/etc/timeouts</filename> according to your local security policy. The daemon will watch for idle users and time out their shells accordingly.
de: Installieren Sie <application>Timeoutd</application> und konfigurieren Sie <filename>/etc/timeouts</filename> passend zu Ihren lokalen Sicherheitsrichtlinien. Der Daemon achtet auf untätige Benutzer und beendet entsprechend ihre Shells.

en: Install <application>autolog</application> and configure it to remove idle users.
de: Installieren Sie <application>Autolog</application> und richten Sie es so ein, dass es untätige Benutzer entfernt.

en: The <command>timeoutd</command> or <command>autolog</command> daemons are the preferred method since, after all, users can change their default shell or can, after running their default shell, switch to another (uncontrolled) shell.
de: Vorzugswürdige Methoden sind die Daemonen <command>Timeoutd</command> oder <command>Autolog</command>, da letzten Endes die Benutzer ihre Standardshell ändern können oder zu einer anderen (unbeschränkten) Shell wechseln können, nachdem sie ihre Standardshell gestartet haben.

en: Using tcpwrappers
de: Die Nutzung von Tcpwrappers STOPP

en: TCP wrappers were developed when there were no real packet filters available and access control was needed. Nevertheless, they're still very interesting and useful. The TCP wrappers allow you to allow or deny a service for a host or a domain and define a default allow or deny rule (all performed on the application level). If you want more information take a look at <citerefentry><refentrytitle>hosts_access</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page.
de: TCP-Wrapper (Schutzumschläge für TCP) wurden entwickelt, als es noch keine echten Paketfilter gab, aber Zugangskontrollen notwendig waren. Trotzdem sind sie immer noch hoch interessant und nützlich. Ein TCP-Wrapper erlaubt Ihnen, einem Host oder einer Domain einen Dienst anzubieten oder zu verweigern, und standardmäßig Zugriff zu erlauben oder zu verweigern (das alles wird auf der Anwendungsebene durchgeführt). Wenn Sie mehr Informationen haben möchten, sehen Sie sich <citerefentry><refentrytitle>hosts_access</refentrytitle> <manvolnum>5</manvolnum></citerefentry> an.

en: Many services installed in Debian are either:
de: Viele der unter Debian installierten Dienste

en: launched through the tcpwrapper service (<filename>tcpd</filename>)
de: werden entweder durch den TCP-Wrapper Service (<filename>tcpd</filename>) aufgerufen,

en: compiled with libwrapper support built-in.
de: oder wurden mit Unterstützung für libwrapper (Bibliothek für TCP-Wrapper)  kompiliert.

en: On the one hand, for services configured in <filename>/etc/inetd.conf</filename> (this includes <command>telnet</command>, <command>ftp</command>, <command>netbios</command>, <command>swat</command> and <command>finger</command>) you will see that the configuration file executes <command>/usr/sbin/tcpd</command> first. On the other hand, even if a service is not launched by the <command>inetd</command> superdaemon, support for the tcp wrappers rules can be compiled into it. Services compiled with tcp wrappers in Debian include <command>ssh</command>, <command>portmap</command>, <command>in.talk</command>, <command>rpc.statd</command>, <command>rpc.mountd</command>, <command>gdm</command>, <command>oaf</command> (the GNOME activator daemon), <command>nessus</command> and many others.
de: Einerseits werden Sie bei manchen Diensten (einschließlich <command>telnet</command>, <command>ftp</command>, <command>netbios</command>, <command>swat</command> und <command>finger</command>), die in <filename>/etc/inetd.conf</filename> konfiguriert werden, sehen, dass die Konfigurationsdatei zuerst <command>/usr/sbin/tcpd</command> aufruft. Andererseits, selbst wenn ein Dienst nicht über den <command>inetd</command>-Superdaemon ausgeführt wird, kann die Unterstützung von TCP-Wrapper einkompiliert werden. Dienste, die unter Debian mit TCP-Wrappern kompiliert wurden, sind <command>ssh</command>, <command>portmap</command>, <command>in.talk</command>, <command>rpc.statd</command>, <command>rpc.mountd</command>, <command>gdm</command>, <command>oaf</command> (der GNOME-Aktivierungs-Daemon), <command>nessus</command> und viele andere.

en: To see which packages use tcpwrappers <footnote><para> On older Debian releases you might need to do this: <screen> $ apt-cache showpkg libwrap0 | egrep '^[[:space:]]' | sort -u | \ sed 's/,libwrap0$//;s/^[[:space:]]\+//' </screen> </para></footnote> try:
de: Um herauszufinden, welche Pakete TCP-Wrapper benutzen<footnote><para>Bei älteren Veröffentlichungen von Debian sollte Sie Folgendes ausführen: <screen> $ apt-cache showpkg libwrap0 | egrep '^[[:space:]]' | sort -u | \ sed 's/,libwrap0$//;s/^[[:space:]]\+//'</screen></para></footnote>, geben Sie Folgendes ein:

en: Take this into account when running <command>tcpdchk</command> (a very useful TCP wrappers config file rule and syntax checker). When you add stand-alone services (that are directly linked with the wrapper library) into the <filename>hosts.deny</filename> and <filename>hosts.allow</filename> files, <command>tcpdchk</command> will warn you that it is not able to find the mentioned services since it only looks for them in <filename>/etc/inetd.conf</filename> (the manpage is not totally accurate here).
de: Beachten Sie bitte Folgendes, wenn Sie <command>tcpchk</command> (ein sehr nützliches Programm zur Überprüfung der TCP-Wrapper-Konfiguration und -Syntax) laufen lassen. Wenn Sie Stand-Alone-Dienste (alleinstehende Dienste, also solche, die direkt mit der Wrapper-Bibliothek verbunden sind) der <filename>host.deny</filename>- oder <filename>host.allow</filename>-Datei hinzufügen, wird <command>tcpchk</command> Sie warnen, dass er sie nicht finden kann, da er sie nur in <filename>/etc/inetd.conf</filename> sucht (die Handbuchseite ist an dieser Stelle nicht sehr genau).

en: Now, here comes a small trick, and probably the smallest intrusion detection system available. In general, you should have a decent firewall policy as a first line, and tcp wrappers as the second line of defense. One little trick is to set up a <varname>SPAWN</varname> <footnote><para>be sure to use uppercase here since <emphasis>spawn</emphasis> will not work</para></footnote> command in <filename>/etc/hosts.deny</filename> that sends mail to root whenever a denied service triggers wrappers:
de: Jetzt kommt ein kleiner Trick und vielleicht die kleinste Alarmanlage zur Erkennung von Eindringlingen: Im Allgemeinen sollten Sie eine anständige Firewall als erste und TCP-Wrapper als zweite Verteidigungslinie haben. Der Trick besteht nun darin, ein <varname>SPAWN</varname>-Kommando <footnote><para>Beachten Sie hier die Schreibweise, da <emphasis>spawn</emphasis> nicht funktionieren wird.</para></footnote> in <filename>/etc/hosts.deny</filename> einzutragen, das immer dann eine Mail an Root schickt, wenn ein Dienst abgewiesen wurde:

en: 
      ALL: ALL: SPAWN ( \
        echo -e "\n\
        TCP Wrappers\: Connection refused\n\
        By\: $(uname -n)\n\
        Process\: %d (pid %p)\n\
        User\: %u\n\
        Host\: %c\n\
        Date\: $(date)\n\
      " | /usr/bin/mail -s "Connection to %d blocked" root) &amp;
de: 
      ALL: ALL: SPAWN ( \
        echo -e "\n\
        TCP Wrappers\: Verbindungsaufbau abgelehnt\n\
        Von\: $(uname -n)\n\
        Prozess\: %d (pid %p)\n\
        Benutzer\: %u\n\
        Host\: %c\n\
        Datum\: $(date)\n\
      " | /usr/bin/mail -s "Verbindung zu %d blockiert" root) &#38;

en: <emphasis>Beware</emphasis>: The above printed example is open to a DoS attack by making many connections in a short period of time. Many emails mean a lot of file I/O by sending only a few packets.
de: <emphasis>Achtung</emphasis>: Das obige Beispiel kann sehr leicht zu DoS (Denial of Service, Verbindungsaufbau abgelehnt) führen, indem man versucht, sehr viele Verbindungen in kurzer Zeit aufzubauen. Viele E-Mails bedeuten viel Dateiaktivität, die lediglich durch das Senden von ein paar Paketen erreicht wird.

en: The importance of logs and alerts
de: Die Wichtigkeit von Protokollen und Alarmen

en: It is easy to see that the treatment of logs and alerts is an important issue in a secure system. Suppose a system is perfectly configured and 99% secure. If the 1% attack occurs, and there are no security measures in place to, first, detect this and, second, raise alarms, the system is not secure at all.
de: Es ist leicht einzusehen, dass die Behandlung von Protokollen und Alarmen eine wichtige Angelegenheit in einem sicheren System ist. Stellen Sie sich vor, ein System ist perfekt konfiguriert und zu 99% sicher. Wenn ein Angriff unter dieses 1% fällt, und es keine Sicherheitsmaßnahmen gibt, dies erstens zu erkennen und zweitens einen Alarm auszulösen, so ist das System überhaupt nicht sicher.

en: Debian GNU/Linux provides some tools to perform log analysis, most notably <application>swatch</application>, <footnote><para>there's a very good article on it written by <ulink name="Lance Spitzner" url="http://www.spitzner.net/swatch.html" /> </para></footnote> <application>logcheck</application> or <application>log-analysis</application> (all will need some customisation to remove unnecessary things from the report). It might also be useful, if the system is nearby, to have the system logs printed on a virtual console. This is useful since you can (from a distance) see if the system is behaving properly. Debian's <filename>/etc/syslog.conf</filename> comes with a commented default configuration; to enable it uncomment the lines and restart <command>syslogd</command> (<userinput>/etc/init.d/syslogd restart</userinput>):
de: Debian GNU/Linux stellt Werkzeuge zur Verfügung, die die Analyse von Protokolldateien übernehmen. Am beachtenswertesten sind <application>swatch</application> <footnote><para>Es gibt darüber einen ziemlich guten Artikel von <ulink url="http://www.spitzner.net/swatch.html" name="Lance Spitzner"/>.</para></footnote>, <application>logcheck</application> oder <application>loganalysis</application> (alle Pakete werden ein wenig Anpassung benötigen, um unnötige Dinge aus den Berichten zu entfernen). Wenn sich das System in Ihrer Nähe befindet, könnte es nützlich sein, das System-Protokoll auf einer virtuellen Konsole auszugeben. Die ist nützlich, da Sie so (auch von weiter weg oder im Vorbeigehen) sehen können, ob sich das System richtig verhält. Debians <filename>/etc/syslog.conf</filename> wird mit einer auskommentierten Standardkonfiguration ausgeliefert. Um diese Ausgabe einzuschalten, entfernen Sie die Kommentarzeichen vor den entsprechenden Zeilen und starten <command>syslog</command> neu (<userinput>/etc/init.d/syslogd restart</userinput>):

en: To colorize the logs, you could take a look at <application>colorize</application>, <application>ccze</application> or <application>glark</application>. There is a lot to log analysis that cannot be fully covered here, so a good information resource would be books should as <ulink name="Security log management: identifying patterns in the chaos" url="http://books.google.com/books?id=UyktqN6GnWEC" />. In any case, even automated tools are no match for the best analysis tool: your brain.
de: Um die Protokolle farbig zu gestalten, sollten Sie einen Blick auf <application>colorize</application>, <application>ccze</application> oder <application>glark</application> werfen. Es gibt noch eine Menge über die Analyse von Protokollen zu sagen, das hier nicht behandelt werden kann. Eine gute Quelle für weitere Informationen sind Bücher wie <ulink name="Security log management: identifying patterns in the chaos" url="http://books.google.com/books?id=UyktqN6GnWEC"/>. In jedem Fall sind selbst automatische Werkzeuge dem besten Analysewerkzeug nicht gewachsen: Ihrem Gehirn.

en: Using and customizing <command>logcheck</command>
de: Nutzung und Anpassung von <command>logcheck</command>

en: The <command>logcheck</command> package in Debian is divided into the three packages <application>logcheck</application> (the main program), <application>logcheck-database</application> (a database of regular expressions for the program) and <application>logtail</application> (prints loglines that have not yet been read). The Debian default (in <filename>/etc/cron.d/logcheck</filename>) is that <command>logcheck</command> is run every hour and after reboots.
de: Das Paket <command>logcheck</command> ist in Debian auf drei  Pakete verteilt: <application>logcheck</application> (das Hauptprogramm), <application>logcheck-database</application> (eine Datenbank regulärer Ausdrücke für das Programm) und  <application>logtail</application> (gibt Protokollzeilen aus, die noch nicht gelesen wurden). Der Standard unter Debian (in <filename>/etc/cron.d/logcheck</filename>) ist, dass <command>logcheck</command> jede Stunde und nach jedem Neustart ausgeführt wird.

en: This tool can be quite useful if properly customized to alert the administrator of unusual system events. <command>Logcheck</command> can be fully customized so that it sends mails based on events found in the logs and worthy of attention. The default installation includes profiles for ignored events and policy violations for three different setups (workstation, server and paranoid). The Debian package includes a configuration file <filename>/etc/logcheck/logcheck.conf</filename>, sourced by the program, that defines which user the checks are sent to. It also provides a way for packages that provide services to implement new policies in the directories: <filename>/etc/logcheck/cracking.d/_packagename_</filename>, <filename>/etc/logcheck/violations.d/_packagename_</filename>, <filename>/etc/logcheck/violations.ignore.d/_packagename_</filename>, <filename>/etc/logcheck/ignore.d.paranoid/_packagename_</filename>, <filename>/etc/logcheck/ignore.d.server/_packagename_</filename>, and <filename>/etc/logcheck/ignore.d.workstation/_packagename_</filename>. However, not many packages currently do so. If you have a policy that can be useful for other users, please send it as a bug report for the appropriate package (as a <emphasis>wishlist</emphasis> bug). For more information read <filename>/usr/share/doc/logcheck/README.Debian</filename>.
de: Wenn dieses Werkzeug in  geeigneter Weise angepasst wurde, kann es sehr nützlich sein, um den Administrator zu alarmieren, wenn etwas ungewöhnliches auf dem System passiert. <command>Logcheck</command> kann vollständig angepasst werden, so dass es Mails über Ereignisse aus den Protokollen sendet, die Ihrer Aufmerksamkeit bedürfen. Die Standard-Installation umfasst Profile zum Ignorieren von Ereignissen und Verstößen gegen die Sicherheitsrichtlinie für drei unterschiedliche Einsatzbereiche (Workstation, Server und paranoid). Das Debian-Paket umfasst die Konfigurationsdatei <filename>/etc/logcheck/logcheck.conf</filename>, die vom Programm eingelesen wird, und die definiert, an welchen Benutzer die Testergebnisse geschickt werden sollen. Es stellt außerdem einen Weg für Pakete zur Verfügung, um neue Regeln in folgenden Verzeichnisses zu erstellen: <filename>/etc/logcheck/cracking.d/_packagename_</filename> <filename>/etc/logcheck/violations.d/_packagename_</filename>, <filename>/etc/logcheck/violations.ignore.d/_packagename_</filename>, <filename>/etc/logcheck/ignore.d.paranoid/_packagename_</filename>, <filename>/etc/logcheck/ignore.d.server/_packagename_</filename>, und <filename>/etc/logcheck/ignore.d.workstation/_packagename_</filename>. Leider benutzen das noch nicht viele Pakete. Wenn Sie ein Regelwerk entwickelt haben, dass für andere Benutzer nützlich sein könnte, schicken Sie bitte einen Fehlerbericht für das entsprechende Paket (als ein <emphasis>wishlist</emphasis>-Fehler). Mehr Informationen finden Sie unter <filename>/usr/share/doc/logcheck/README.Debian</filename>.

en: The best way to configure <command>logcheck</command> is to edit its main configuration file <filename>/etc/logcheck/logcheck.conf</filename> after installation. Change the default user (root) to whom reports should be mailed. You should set the reportlevel in there, too. <application>logcheck-database</application> has three report levels of increasing verbosity: workstation, server, paranoid. "server" being the default level, paranoid is only recommended for high-security machines running as few services as possible and workstation for relatively sheltered, non-critical machines. If you wish to add new log files just add them to <filename>/etc/logcheck/logcheck.logfiles</filename>. It is tuned for default syslog install.
de: <command>logcheck</command> konfiguriert man am besten, indem man nach der Installation die Hauptkonfigurationsdatei <filename>/etc/logcheck/logcheck.conf</filename> bearbeitet. Verändern Sie den Benutzer, an den die Berichte geschickt werden (standardmäßig ist das Root). Außerdem sollten Sie auch den Schwellenwert für Berichte festlegen. <application>logcheck-database</application> hat drei Schwellenwerte mit steigender Ausführlichkeit: Workstation (Arbeitsplatz), Server und paranoid. »server« ist der Standardwert, »paranoid« wird nur für Hochsicherheitsmaschinen empfohlen, auf denen so wenig Dienste wie möglich laufen. »workstation« eignet sich für relativ geschützte, nicht kritische Maschinen. Wenn Sie neue Protokoll-Dateien hinzufügen wollen, müssen Sie diese nur zu <filename>/etc/logcheck/logcheck.logfiles</filename> hinzufügen. Es ist für die standardmäßige Syslog-Installation eingerichtet.

en: Once this is done you might want to check the mails that are sent, for the first few days/weeks/months. If you find you are sent messages you do not wish to receive, just add the regular expressions (see <citerefentry><refentrytitle>regex</refentrytitle><manvolnum>7</manvolnum></citerefentry> and <citerefentry><refentrytitle>egrep</refentrytitle><manvolnum>1</manvolnum></citerefentry>) that correspond to these messages to the <filename>/etc/logcheck/ignore.d.<varname>reportlevel</varname>/local</filename>. Try to match the whole logline. Details on howto write rules are explained in <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename>. It's an ongoing tuning process; once the messages that are sent are always relevant you can consider the tuning finished. Note that if <command>logcheck</command> does not find anything relevant in your system it will not mail you even if it does run (so you might get a mail only once a week, if you are lucky).
de: Wenn Sie dies geschafft haben, sollten Sie die nächsten Tage/Wochen/Monate die verschickten Mails überprüfen. Falls Sie Nachrichten finden, die Sie nicht erhalten wollen, fügen Sie die regulären Ausdrücke (regular expressions, vergleiche <citerefentry><refentrytitle>regex</refentrytitle><manvolnum>7</manvolnum></citerefentry> und <citerefentry><refentrytitle>egrep</refentrytitle><manvolnum>1</manvolnum></citerefentry>), die zu diesen Nachrichten passen, in <filename>/etc/logcheck/ignore.d.<varname>reportlevel</varname>/local</filename> ein. Versuchen Sie, dass der reguläre Ausdruck mit der gesamten Protokollzeile übereinstimmt. Details, wie man Regeln schreibt, finden Sie in <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename>. Das ist ein andauernder Prozess der Abstimmung. Wenn nur noch relevante Meldungen verschickt werden, können Sie davon ausgehen, dass dieser Prozess beendet ist. Beachten Sie, dass <command>logcheck</command>, selbst wenn er läuft, Ihnen keine Mail schickt, wenn er nichts Relevantes auf Ihrem System findet (so bekommen Sie höchstens eine Mail pro Woche, wenn Sie Glück haben).

en: Configuring where alerts are sent
de: Konfiguration, wohin Alarmmeldungen geschickt werden

en: Debian comes with a standard <application>syslog</application> configuration (in <filename>/etc/syslog.conf</filename>) that logs messages to the appropriate files depending on the system facility. You should be familiar with this; have a look at the <filename>syslog.conf</filename> file and the documentation if not. If you intend to maintain a secure system you should be aware of where log messages are sent so they do not go unnoticed.
de: Debian wird mit einer Standardkonfiguration für <literal>Syslog</literal> (in <filename>/etc/syslog.conf</filename>) ausgeliefert, so dass Meldungen je nach System in die passenden Dateien geschrieben werden. Das sollte Ihnen bereits bekannt sein. Falls nicht, werfen Sie einen Blick auf die Datei <filename>syslog.conf</filename> und deren Dokumentation. Wenn Sie ein sicheres System betreuen wollen, sollte Ihnen bekannt sein, wohin Protokoll-Meldungen geschickt werden, so dass sie nicht unbeachtet bleiben.

en: For example, sending messages to the console also is an interesting setup useful for many production-level systems. But for many such systems it is also important to add a new machine that will serve as loghost (i.e. it receives logs from all other systems).
de: Zum Beispiel ist es für viele Produktiv-Systeme sinnvoll, Meldungen auch auf der Konsole auszugeben. Aber bei vielen solcher Systeme ist es wichtig, eine neue Maschine zu haben, die für die anderen als ein Loghost fungiert (d.h. sie empfängt die Protokolle aller anderen Systeme).

en: Root's mail should be considered also, many security controls (like <application>snort</application>) send alerts to root's mailbox. This mailbox usually points to the first user created in the system (check <filename>/etc/aliases</filename>). Take care to send root's mail to some place where it will be read (either locally or remotely).
de: Sie sollten auch an Mails für Root denken, da viele Programme zur Sicherheitskontrolle (wie <application>snort</application>) ihre Alarme an die Mailbox von Root senden. Diese Mailbox zeigt normalerweise auf den ersten Benutzer, der auf dem System erstellt wurde (prüfen Sie dazu <filename>/etc/aliases</filename>). Sorgen Sie dafür, dass Roots Mails irgendwo hin geschickt werden, wo sie auch gelesen werden (lokal oder in der Ferne).

en: There are other role accounts and aliases on your system. On a small system, it's probably simplest to make sure that all such aliases point to the root account, and that mail to root is forwarded to the system administrator's personal mailbox.
de: Es gibt noch andere Konten mit besonderen Funktionen und andere Aliase auf Ihrem System. Auf einem kleinen System ist es wohl am einfachsten, sicherzustellen, dass alle Aliase auf das Root-Konto verweisen, und dass Mails an Root in das persönliche Postfach des Systemadministrators weiter geleitet werden.

en: Using a loghost
de: Nutzen eines Loghosts

en: A loghost is a host which collects syslog data remotely over the network. If one of your machines is cracked, the intruder is not able to cover the tracks, unless hacking the loghost as well. So, the loghost should be especially secure. Making a machine a loghost is simple. Just start the <command>syslogd</command> with
de: Ein Loghost ist ein Server, der die syslog-Daten über ein Netzwerk sammelt. Wenn eine Ihrer Maschinen geknackt wird, kann der Eindringling seine Spuren nicht verwischen, solange er den Loghost nicht ebenfalls geknackt hat. Demzufolge muss der Loghost besonders sicher sein. Aus einer Maschine einen Loghost zu machen, ist relativ einfach: Starten Sie den <application>syslogd</application> einfach mit

en: and a new loghost is born. In order to do this permanently in Debian, edit <filename>/etc/default/syslogd</filename> and change the line
de: und ein neuer Loghost ist geboren. Um dies unter Debian dauerhaft zu machen, editieren Sie <filename>/etc/default/syslogd</filename> und ändern Sie die Zeile

en: to
de: in

en: Next, configure the other machines to send data to the loghost. Add an entry like the following to <filename>/etc/syslog.conf</filename>:
de: Als nächstes konfigurieren Sie die anderen Maschinen, so dass sie ihre Daten an den Loghost zu senden. Fügen Sie einen Eintrag, ähnlich dem Folgenden, zu der <filename>/etc/syslog.conf</filename> hinzu:

en: 
      facility.level            @your_loghost
de: 
      facility.level            @Ihr_Loghost

en: See the documentation for what to use in place of <emphasis>facility</emphasis> and <emphasis>level</emphasis> (they should not be entered verbatim like this). If you want to log everything remotely, just write:
de: Schauen Sie in die Dokumentation, um zu erfahren, wodurch Sie <emphasis>facility</emphasis> und <emphasis>level</emphasis> ersetzen können; sie sollten nicht wörtlich übernommen werden. Wenn Sie alles in der Ferne mitprotokollieren wollen, schreiben Sie einfach:

en: 
      *.*                       @your_loghost
de: 
      *.*                       @Ihr_Loghost

en: into your <filename>syslog.conf</filename>. Logging remotely as well as locally is the best solution (the attacker might presume to have covered his tracks after deleting the local log files). See the <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> manpages for additional information.
de: in Ihre <filename>syslog.conf</filename>. Sowohl lokal als auch aus der Ferne mitzuprotokollieren, ist die beste Lösung (ein Angreifer könnte davon ausgehen, dass er seine Spuren verwischt hat, nachdem er die lokale Log-Datei gelöscht hat). Für weitere Informationen sehen Sie sich die Handbuchseiten <citerefentry><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>syslogd</refentrytitle><manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>syslog.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> an.

en: Log file permissions
de: Zugriffsrechte auf Protokolldateien

en: It is not only important to decide how alerts are used, but also who has read/modify access to the log files (if not using a remote loghost). Security alerts which the attacker can change or disable are not worth much in the event of an intrusion. Also, you have to take into account that log files might reveal quite a lot of information about your system to an intruder who has access to them.
de: Es ist nicht nur wichtig zu entscheiden, wie Warnungen genutzt werden, sondern auch, wer hierauf Zugriff hat, d.h. wer Protokolldateien (falls Sie nicht einen Loghost verwenden) lesen oder verändern kann. Sicherheitsalarme, die ein Angreifer verändern oder abschalten kann, sind im Falle eines Eindringens nicht viel wert. Außerdem sollten Sie berücksichtigen, dass Protokolldateien einem Eindringling ziemlich viel Informationen über Ihr System verraten, wenn er auf sie Zugriff hat.

en: Some log file permissions are not perfect after the installation (but of course this really depends on your local security policy). First <filename>/var/log/lastlog</filename> and <filename>/var/log/faillog</filename> do not need to be readable by normal users. In the <filename>lastlog</filename> file you can see who logged in recently, and in the <filename>faillog</filename> you see a summary of failed logins. The author recommends <command>chmod 660</command> for both. Take a brief look at your log files and decide very carefully which log files to make readable/writable for a user with a UID other than 0 and a group other than 'adm' or 'root'. You can easily check this in your system with:
de: Einige Zugriffsrechte auf Protokolldateien sind nach der Installation nicht gerade perfekt (aber das hängt natürlich von Ihrer lokalen Sicherheitsrichtlinie ab). Zuerst einmal müssen <filename>/var/log/lastlog</filename> und <filename>/var/log/faillog</filename> nicht für normale Benutzer lesbar sein. In der Datei <filename>lastlog</filename> können Sie sehen, wer sich zuletzt angemeldet hat. In <filename>faillog</filename> befindet sich eine Zusammenfassung fehlgeschlagener Anmeldeversuche. Der Autor empfiehlt, die Rechte von beiden auf 660 zu setzen (mit <command>chmod 660</command>). Werfen Sie einen kurzen Blick auf Ihre Protokolldateien und entscheiden Sie sehr vorsichtig, welche Protokolldateien Sie les- oder schreibbar für einen Benutzer mit einer anderen UID als 0 und einer anderen Gruppe als »adm« oder »root« machen. Sie können dies sehr leicht auf Ihrem System überprüfen:

en: 
      #  find /var/log -type f -exec ls -l {} \; | cut -c 17-35 |sort -u
      (see to what users do files in /var/log belong)
      #  find /var/log -type f -exec ls -l {} \; | cut -c 26-34 |sort -u
      (see to what groups do files in /var/log belong)
      # find /var/log -perm +004
      (files which are readable by any user)
      #  find /var/log \! -group root \! -group adm -exec ls -ld {} \;
      (files which belong to groups not root or adm)
de: 
      #  find /var/log -type f -exec ls -l {} \; | cut -c 17-35 |sort -u
      (überprüfen, welchen Benutzern die Dateien unter /var/log gehören)
      #  find /var/log -type f -exec ls -l {} \; | cut -c 26-34 |sort -u
      (überprüfen, welchen Gruppen die Dateien unter /var/log gehören)
      # find /var/log -perm +004
      (Dateien, die von jedem Benutzer gelesen werden können)
      #  find /var/log \! -group root \! -group adm -exec ls -ld {} \;
      (Dateien, die nicht der Gruppe root oder adm gehören)

en: To customize how log files are created you will probably have to customize the program that generates them. If the log file gets rotated, however, you can customize the behavior of creation and rotation.
de: Um anzupassen, wie neue Protokolldateien erstellt werden, müssen Sie wahrscheinlich das Programm anpassen, das sie erstellt. Wenn die Protokolldateien ausgewechselt werden, können Sie das Verhalten der Erstellung und Auswechslung anpassen.

en: Adding kernel patches
de: Den Kernel patchen

en: Debian GNU/Linux provides some of the patches for the Linux kernel that enhance its security. These include:
de: Debian GNU/Linux stellt verschiedene Patches für den Linux-Kernel zur Verfügung, welche die Sicherheit erhöhen:

en: <ulink url="http://www.lids.org">Linux Intrusion Detection</ulink> provided in the <application>kernel-patch-2.4-lids</application> package. This kernel patch makes the process of hardening your Linux system easier by allowing you to restrict, hide and protect processes, even from root. It implements mandatory access control capabilities.
de: Erkennung von Eindringlingen für Linux (<ulink url="http://www.lids.org" name="Linux Intrusion Detection"/>, enthalten im Paket <application>lids-2.2.19</application>). Dieser Kernelpatch erleichtert Ihnen, Ihr Linuxsystem abzuhärten, indem er Ihnen ermöglicht, Prozesse einzuschränken, zu verstecken und zu schützten, sogar vor Root. Er führt Fähigkeiten für eine zwingende Zugangskontrolle ein.

en: <ulink url="http://trustees.sourceforge.net/">Linux Trustees</ulink>, provided in package <application>trustees</application>. This patch adds a decent advanced permissions management system to your Linux kernel. Special objects (called trustees) are bound to every file or directory, and are stored in kernel memory, which allows fast lookup of all permissions.
de: <ulink url="http://trustees.sourceforge.net/" name="Linux Trustees"/> (im Paket <application>trustees</application>). Dieser Patch fügt ein ordentliches, fortgeschrittenes Rechtemanagement Ihrem Linux-Kernel hinzu. Besondere Objekte, die »trustees« (Treuhänder) genannt werden, sind mit jeder Datei oder Verzeichnis verbunden. Sie werden im Speicher des Kernels abgelegt und erlauben so eine schnelle Abfrage aller Rechte.

en: The kernel patch <ulink url="http://people.redhat.com/mingo/exec-shield" /> provided in the <application>kernel-patch-exec-shield</application> package. This patch provides protection against some buffer overflows (stack smashing attacks).
de: Der <ulink url="http://people.redhat.com/mingo/exec-shield/" name="Exec-Shield-Patch"/> aus dem Paket <application>kernel-patch-exec-shield</application>. Dieser Patch schützt vor einigen Pufferüberläufen (stack smashing attacks).

en: The <application>kernel-patch-adamantix</application> provides the patches developed for <ulink url="http://www.adamantix.org/">Adamantix</ulink>, a Debian-based distribution. This kernel patch for the 2.4.x kernel releases introduces some security features such as a non-executable stack through the use of <ulink name="PaX" url="http://pageexec.virtualave.net/" /> and mandatory access control based on <ulink name="RSBAC" url="http://www.rsbac.org/" />. Other features include: <ulink name="the Random PID patch" url="http://www.vanheusden.com/Linux/sp/" />, AES encrypted loop device, MPPE support and an IPSEC v2.6 backport.
de: <application>kernel-patch-adamantix</application> bietet die Patches an, die für die Debian-Distribution <ulink url="http://www.adamantix.org/" name="Adamantix"/> entwickelt wurden. Dieser Patch für den Kernel 2.4.x führt einige Sicherheitsfähigkeiten wie nichtausführbaren Speicher durch den Einsatz von <ulink url="http://pageexec.virtualave.net/" name="PaX"/> und Mandatory Access Control auf Grundlage von <ulink url="http://www.rsbac.org/" name="RSBAC" /> ein. Andere Features sind <ulink name="der Random-PID-Patch" url="http://www.vanheusden.com/Linux/sp/"/>, ein mit AES verschlüsseltes Loop-Gerät, Unterstützung von MPPE und eine Zurückportierung von IPSEC v2.6.

en: <application>cryptoloop-source</application>. This patches allows you to use the functions of the kernel crypto API to create encrypted filesystems using the loopback device.
de: <application>cryptoloop-source</application>: Dieser Patch erlaubt Ihnen, die Fähigkeiten der Crypto-API des Kernels zu verwenden, um verschlüsselte Dateisysteme mit dem Loopback-Gerät zu erstellen.

en: IPSEC kernel support (in package <application>linux-patch-openswan</application>). If you want to use the IPsec protocol with Linux, you need this patch. You can create VPNs with this quite easily, even to Windows machines, as IPsec is a common standard. IPsec capabilities have been added to the 2.5 development kernel, so this feature will be present by default in the future Linux Kernel 2.6. Homepage: <ulink url="http://www.openswan.org" />. <emphasis>FIXME</emphasis>: The latest 2.4 kernels provided in Debian include a backport of the IPSEC code from 2.5. Comment on this.
de: Kernel-Unterstützung von IPSEC (im Paket <application>kernel-patch-openswan</application>). Wenn Sie das IPsec-Protokoll mit Linux verwenden wollen, benötigen Sie diesen Patch. Damit können Sie ziemlich leicht VPNs erstellen, sogar mit Windows-Rechnern, da IPsec ein verbreiteter Standard ist. IPsec-Fähigkeiten wurden in den Entwicklungskernel 2.5 eingefügt, so dass dieses Feature standardmäßig im zukünftigen Kernel 2.6 enthalten sein wird. Homepage: <ulink url="http://www.openswan.org"/>. <emphasis>FIXME</emphasis>: Der neuste Kernel 2.4 in Debian enthält eine Rückeinbindung des IPSEC-Codes aus 2.5. Kommentar dazu.

en: The following security kernel patches are only available for old kernel versions in woody and are deprecated:
de: Die folgenden Sicherheitspatches für den Kernel sind nur noch für alte Kernelversionen in Woody verfügbar und werden nicht mehr weiterentwickelt:

en: <ulink name="POSIX Access Control Lists" url="http://acl.bestbits.at/" /> (ACLs) for Linux provided in the package <application>kernel-patch-acl</application>. This kernel patch adds access control lists, an advanced method for restricting access to files. It allows you to control fine-grain access to files and directory.
de: <ulink url="http://acl.bestbits.at/" name="POSIX Access Control Lists"/> (ACLs, Listen zur Zugangskontrolle) für Linux im Paket <application>kernel-patch-acl</application>. Dieser Kernelpatch stellt Listen zur Zugangskontrolle zur Verfügung. Das ist eine fortgeschrittene Methode, um den Zugang zu Dateien einzuschränken. Es ermöglicht Ihnen, den Zugang zu Dateien und Verzeichnisses fein abzustimmen.

en: The <ulink name="Openwall" url="http://www.openwall.com/linux/" /> linux kernel patch by Solar Designer, provided in the <application>kernel-patch-2.2.18-openwall</application> package. This is a useful set of kernel restrictions, like restricted links, FIFOs in <filename>/tmp</filename>, a restricted <filename>/proc</filename> file system, special file descriptor handling, non-executable user stack area and other features. Note: This package applies to the 2.2 release, no packages are available for the 2.4 release patches provided by Solar.
de: Der Patch für den Linux-Kernel <ulink name="Openwall" url="http://www.openwall.com/linux/"/> von Solar Designer, der im Paket <application>kernel-patch-2.2.18-openwall</application> enthalten ist. Er enthält eine nützliche Anzahl von Beschränkungen des Kernels wie eingeschränkte Verweise, FIFOs in <filename>/tmp</filename>, ein begrenztes <filename>/proc</filename>-Dateisystem, besondere Handhabung von Dateideskriptoren, einen nichtausführbaren Bereich des Stapelspeichers des Benutzers und andere Fähigkeiten. Hinweis: Dieser Patch ist nur auf die Kernelversion 2.2 anwendbar, für 2.4 werden von Solar keine Pakete angeboten.

en: <application>kernel-patch-int</application>. This patch also adds cryptographic capabilities to the Linux kernel, and was useful with Debian releases up to Potato. It doesn't work with Woody, and if you are using Sarge or a newer version, you should use a more recent kernel which includes these features already.
de: <application>kernel-patch-int</application>. Auch dieser Patch fügt kryptografische Fähigkeiten zum Linux-Kernel hinzu. Er war bis zu den Debian-Releases bis Potato nützlich. Er funktioniert nicht mehr mit Woody. Falls Sie Sarge oder eine neuere Version verwenden, sollten Sie einen aktuelleren Kernel einsetzen, in dem diese Features bereits enthalten sind.

en: However, some patches have not been provided in Debian yet. If you feel that some of these should be included please ask for it at the <ulink name="Work Needing and Prospective Packages" url="http://www.debian.org/devel/wnpp/" />.
de: Wie auch immer, einige Patches werden von Debian noch nicht zur Verfügung gestellt. Wenn Sie denken, dass manche von ihnen hinzugefügt werden sollten, fragen Sie danach auf <ulink name="Arbeit-bedürfende und voraussichtliche Pakete" url="https://www.debian.org/devel/wnpp/index.de.html"/>.

en: Protecting against buffer overflows
de: Schutz vor Pufferüberläufen

en: <emphasis>Buffer overflow</emphasis> is the name of a common attack to software <footnote><para>So common, in fact, that they have been the basis of 20% of the reported security vulnerabilities every year, as determined by <ulink name="statistics from ICAT's vulnerability database" url="http://icat.nist.gov/icat.cfm?function=statistics" /></para></footnote> which makes use of insufficient boundary checking (a programming error, most commonly in the C language) in order to execute machine code through program inputs. These attacks, against server software which listen to connections remotely and against local software which grant higher privileges to users (<literal>setuid</literal> or <literal>setgid</literal>) can result in the compromise of any given system.
de: <emphasis>Pufferüberlauf</emphasis> (buffer overflow) wird eine verbreitete Art von Angriffen auf Software <footnote><para> Sie sind in der Tat so verbreitet, dass sie die Grundlage für 20% aller gemeldeten Sicherheitsmängel pro Jahr darstellen, wie von <ulink url="http://icat.nist.gov/icat.cfm?function=statistics" name="statistics from ICAT's vulnerability database"/> herausgefunden wurde. </para></footnote> genannt, welche die unzureichende Überprüfung von Eingabegrenzen ausnutzen (ein Programmierfehler, der häufig bei der Programmiersprache C auftritt), um durch Programmeingaben Befehle auf der Maschine auszuführen. Diese Attacken über Server, die auf Verbindungen warten, oder über lokal installierte Software, die einem Benutzer größere Privilegien gewährt (<literal>setuid</literal> oder <literal>setgid</literal>) kann zu einem kompromittierten System führen.

en: There are mainly four methods to protect against buffer overflows:
de: Es gibt hauptsächlich vier Methoden, um sich gegen Pufferüberläufe zu schützen:

en: patch the kernel to prevent stack execution. You can use either: Exec-shield, OpenWall or PaX (included in the Grsecurity and Adamantix patches).
de: Patchen Sie den Kernel, um das Ausführen des Stapelspeichers zu verhindern. Sie können entweder Exec-Shield, OpenWall oder PaX (ist in den Grsecurity- und Adamantixpatches enthalten) verwenden.

en: fix the source code by using tools to find fragments of it that might introduce this vulnerability.
de: Verbessern Sie den Quellcode, indem Sie Werkzeuge einsetzen, die Teile finden, die zu dieser Verwundbarkeit führen könnten.

en: recompile the source code to introduce proper checks that prevent overflows, using the <ulink name="Stack Smashing Protector (SSP)" url="http://www.research.ibm.com/trl/projects/security/ssp/" /> patch for GCC (which is used by <ulink name="Adamantix" url="http://www.adamantix.org" />)
de: Übersetzen Sie den Quellcode neu, um vernünftige Prüfungen einzuführen, um Überläufe zu verhindern. Benutzen Sie dazu den <ulink url="http://www.research.ibm.com/trl/projects/security/ssp/" name="Stack Smashing Protector (SSP)" /> Patch für GCC (der von <ulink url="http://www.adamantix.org" name="Adamantix" /> verwendet wird).

en: Debian GNU/Linux, as of the 3.0 release, provides software to introduce all of these methods except for the protection on source code compilation (but this has been requested in <ulink name="Bug #213994" url="http://bugs.debian.org/213994" />).
de: Debian GNU/Linux liefert bis einschließlich der Veröffentlichung 3.0 Software, um alle diese Methoden bis auf den Schutz bei der Übersetzung des Quellcodes (das wurde aber schon in <ulink url="http://bugs.debian.org/213994" name="Fehler #213994"/> nachgefragt) zu implementieren.

en: Notice that even if Debian provided a compiler which featured stack/buffer overflow protection all packages would need to be recompiled in order to introduce this feature. This is, in fact, what the Adamantix distribution does (among other features). The effect of this new feature on the stability of software is yet to be determined (some programs or some processor architectures might break due to it).
de: Beachten Sie, dass selbst wenn Debian einen Compiler zur Verfügung stellen würde, der Schutz vor Stapel- und Pufferüberläufen bieten würde, so doch alle Pakete neu übersetzt werden müssten, um diese Eigenschaft einzuführen. Tatsächlich ist das die Aufgabe der Distribution Adamantix (unter anderen Fähigkeiten). Die Auswirkungen dieses neuen Features auf die Stabilität der Software muss aber noch ermittelt werden (einige Programme und einige Prozessoren werden vielleicht deswegen nicht mehr funktionieren).

en: In any case, be aware that even these workarounds might not prevent buffer overflows since there are ways to circumvent these, as described in phrack's magazine <ulink name="issue 58" url="http://packetstorm.linuxsecurity.com/mag/phrack/phrack58.tar.gz" /> or in CORE's Advisory <ulink name="Multiple vulnerabilities in stack smashing protection technologies" url="http://online.securityfocus.com/archive/1/269246" />.
de: Seien Sie auf jeden Fall gewarnt, dass selbst diese Umgehungen des Problems nicht vor Pufferüberläufen schützen können, da es Möglichkeiten gibt, diese zu überlisten, wie in <ulink name="Ausgabe 58" url="http://packetstorm.linuxsecurity.com/mag/phrack/phrack58.tar.gz"/> des phrack-Magazins oder in COREs Advisory <ulink url="http://online.securityfocus.com/archive/1/269246" name="Multiple vulnerabilities in stack smashing protection technologies"/> beschrieben.

en: If you want to test out your buffer overflow protection once you have implemented it (regardless of the method) you might want to install the <application>paxtest</application> and run the tests it provides.
de: Wenn Sie Ihren Schutz gegen Pufferüberläufe (unabhängig von der gewählten Methode) testen wollen, können Sie <application>paxtest</application> installieren und die angebotenen Tests laufen lassen.

en: Kernel patch protection for buffer overflows
de: Kernelpatch zum Schutz vor Pufferüberläufen

en: Kernel patches related to buffer overflows include the Openwall patch provides protection against buffer overflows in 2.2 linux kernels. For 2.4 or newer kernels, you need to use the Exec-shield implementation, or the PaX implementation (provided in the grsecurity patch, <application>kernel-patch-2.4-grsecurity</application>, and in the Adamantix patch, <application>kernel-patch-adamantix</application>). For more information on using these patches read the the section <xref linkend="kernel-patches" />.
de: Ein Kernelpatch, der Schutz vor Pufferüberläufen bietet, ist der Openwall-Patch, der diese im Linux-Kernel 2.2 verhindern soll. Für 2.4 oder neuere Kernel müssen Sie die Umsetzung von Exec-Shield oder die von PaX (ist im Grsecurity-Patch <application>kernel-patch-2.4-grsecurity</application> und im Adamantix-Patch <application>kernel-patch-adamantix</application> enthalten) benutzen. Für weitere Informationen zum Einsatz dieser Patches lesen Sie <xref linkend="kernel-patches"/>.

en: Testing programs for overflows
de: Prüfprogramme für Pufferüberläufe

en: The use of tools to detect buffer overflows requires, in any case, of programming experience in order to fix (and recompile) the code. Debian provides, for example: <application>bfbtester</application> (a buffer overflow tester that brute-forces binaries through command line and environment overflows). Other packages of interest would also be <application>rats</application>, <application>pscan</application>, <application>flawfinder</application> and <application>splint</application>.
de: Zur Nutzung von Werkzeugen zum Aufspüren von Pufferüberläufen benötigen Sie in jedem Fall Programmiererfahrung, um den Quellcode zu reparieren (und neu zu kompilieren). Debian stellt beispielsweise <application>bfbtester</application> (einen Überlauftester, der Programme per Brute-Force (durch Testen aller Möglichkeiten) nach Überläufen der Kommandozeile und von Umgebungsvariablen durchtestet) <!-- FIXME: Where is it? und <application>njamd</application> --> bereit. Andere interessante Pakete sind auch <application>rats</application>, <application>pscan</application>, <application>flawfinder</application> und <application>splint</application>.

en: Secure file transfers
de: Sichere Übertragung von Dateien

en: During normal system administration one usually needs to transfer files in and out from the installed system. Copying files in a secure manner from a host to another can be achieved by using the <application>ssh</application> server package. Another possibility is the use of <application>ftpd-ssl</application>, a ftp server which uses the <emphasis>Secure Socket Layer</emphasis> to encrypt the transmissions.
de: Während der normalen Systemadministration müssen Sie immer mal wieder Dateien auf Ihr System spielen oder von diesem holen. Auf sichere Art und Weise Dateien von einem Host zu einem anderen zu kopieren, wird durch die Benutzung des Paketes <application>ssh</application> erreicht. Eine andere Möglichkeit ist die Nutzung von <application>ftpd-ssl</application>, einem ftp-Server der <emphasis>Secure Socket Layer</emphasis> benutzt, um Übertragungen zu verschlüsseln.

en: Any of these methods need special clients. Debian does provide client software, such as <command>scp</command> from the <application>ssh</application> package, which works like <command>rcp</command> but is encrypted completely, so the <emphasis>bad guys</emphasis> cannot even find out WHAT you copy. There is also a <application>ftp-ssl</application> package for the equivalent server. You can find clients for these software even for other operating systems (non-UNIX), <command>putty</command> and <command>winscp</command> provide secure copy implementations for any version of Microsoft's operating system.
de: Jede dieser Methoden benötigt natürlich einen speziellen Client. Debian stellt Ihnen solche zur Verfügung, zum Beispiel enthält das Paket <application>ssh</application> das Programm <command>scp</command>. Es arbeitet wie <command>rcp</command>, aber ist komplett verschlüsselt, so dass die <emphasis>bösen Jungs</emphasis> noch nicht einmal herausbekommen können, WAS Sie kopieren. Passend zu dem Server gibt es auch ein <application>ftp-ssl</application> Client-Paket. Sie können Clients für diese Software sogar für andere (nicht-UNIXoide) Betriebssysteme finden. <command>putty</command> und <command>winscp</command> stellen eine secure-copy-Implementierung für jede Version von Microsoft-Betriebssystemen zur Verfügung.

en: Note that using <command>scp</command> provides access to the users to all the file system unless <command>chroot</command>'ed as described in <xref linkend="ssh-chroot" />. FTP access can be <command>chroot</command>'ed, probably easier depending on you chosen daemon, as described in <xref linkend="ftp-secure" />. If you are worried about users browsing your local files and want to have encrypted communication you can either use an ftp daemon with SSL support or combine clear-text ftp and a VPN setup (see <xref linkend="vpn" />).
de: Beachten Sie, dass die Verwendung von <command>scp</command> den Benutzern Zugang zum gesamten Dateisystem ermöglicht, es sei denn, dass es in eine <command>chroot</command>-Umgebung eingesperrt ist, wie es in <xref linkend="ssh-chroot"/> beschrieben wird. Wahrscheinlich sogar leichter (abhängig vom verwendeten Daemon) kann auch der FTP in eine <command>chroot</command>-Umgebung eingesperrt werden. Das wird in <xref linkend="ftp-secure"/> beschrieben. Falls Sie sich sorgen, dass Benutzer Ihre lokalen Dateien durchsehen, und Sie verschlüsselte Kommunikation wünschen, können Sie einen FTP-Daemon mit Unterstützung für SSL einrichten oder FTP mit Klartext und VPN verbinden (siehe <xref linkend="vpn"/>.

en: File system limits and control
de: Einschränkung und Kontrolle des Dateisystems

en: Using quotas
de: Benutzung von Quotas

en: Having a good quota policy is important, as it keeps users from filling up the hard disk(s).
de: Es ist wichtig, eine gute Quota-Regelung zu haben, da es die Benutzer daran hindert, die Festplatten zu füllen.

en: You can use two different quota systems: user quota and group quota. As you probably figured out, user quota limits the amount of space a user can take up, group quota does the equivalent for groups. Keep this in mind when you're working out quota sizes.
de: Sie können zwei Arten von Quota-Systemen benutzen: Benutzer-Quota und Gruppen-Quota. Wie Sie sich sicher denken können, begrenzt ein User-Quota den Plattenplatz, den ein Benutzer belegen kann, und ein Gruppen-Quota macht dasselbe für Gruppen. Beachten Sie dies, wenn Sie die Größe der Quotas festlegen.

en: There are a few important points to think about in setting up a quota system:
de: Es gibt ein paar wichtige Punkte, die Sie erwägen sollten, wenn Sie ein Quota-System aufsetzen:

en: Keep the quotas small enough, so users do not eat up your disk space.
de: Halten Sie die Quotas klein genug, so dass die Benutzer Ihren Festplattenplatz nicht aufzehren können.

en: Keep the quotas big enough, so users do not complain or their mail quota keeps them from accepting mail over a longer period.
de: Halten Sie die Quotas groß genug, so dass Benutzer sich nicht beschweren oder dass Ihr Mail-Quota Sie daran hindert, nach einer Weile Mails anzunehmen.

en: Use quotas on all user-writable areas, on <filename>/home</filename> as well as on <filename>/tmp</filename>.
de: Nutzen Sie Quotas auf allen Bereichen, die Benutzer beschreiben können, auf <filename>/home</filename> ebenso wie auf <filename>/tmp</filename>.

en: Every partition or directory to which users have full write access should be quota enabled. Calculate and assign a workable quota size for those partitions and directories which combines usability and security.
de: Für jede Partition und jedes Verzeichnis, auf das Benutzer Schreibzugriff haben, sollte ein Quota eingerichtet werden. Berechnen Sie eine sinnvolle Quota-Größe, die Benutzerfreundlichkeit und Sicherheit kombiniert, und weisen Sie diese zu.

en: So, now you want to use quotas. First of all you need to check whether you enabled quota support in your kernel. If not, you will need to recompile it. After this, control whether the package <application>quota</application> is installed. If not you will need this one as well.
de: Sie wollen also Quotas benutzen. Zuerst müssen Sie prüfen, ob Ihr Kernel Quota unterstützt. Wenn nicht, müssen Sie ihn neu kompilieren. Prüfen Sie anschließend, ob das Paket <application>quota</application> installiert ist. Wenn nicht, installieren Sie es.

en: Enabling quota for the respective file systems is as easy as modifying the <literal>defaults</literal> setting to <literal>defaults,usrquota</literal> in your <filename>/etc/fstab</filename> file. If you need group quota, substitute <literal>usrquota</literal> to <literal>grpquota</literal>. You can also use them both. Then create empty quota.user and quota.group files in the roots of the file systems you want to use quotas on (e.g.
de: Um Quota für die entsprechenden Dateisysteme einzuschalten, müssen Sie nur die Einstellung <literal>defaults</literal> in Ihrer <filename>/etc/fstab</filename> zu <literal>defaults,usrquota</literal> ändern. Wenn Sie Gruppen-Quotas benötigen, ersetzen Sie <literal>usrquota</literal> durch <literal>grpquota</literal>. Sie können auch beides verwenden. Erstellen Sie dann leere <filename>quota.user</filename> und <filename>quota.group</filename> in den Hauptverzeichnissen der Dateisysteme, auf denen Sie Quotas einführen möchten (d.h.

en: for a <filename>/home</filename> file system).
de: für das Dateisystem <filename>/home</filename>).

en: Restart <command>quota</command> by doing
de: Starten Sie <application>quota</application> neu, indem Sie <command>/etc/init.d/quota stop;/etc/init.d/quota start</command> ausführen

en: . Now quota should be running, and quota sizes can be set.
de: . Nun sollte quota laufen und die Größen können festgelegt werden.

en: Editing quotas for a specific user can be done by
de: Bearbeiten der Quotas eines bestimmten Benutzer wird mit

en: <userinput>edquota -u &lt;user&gt;</userinput>
de: <userinput>edquota -u &lt;user&gt;</userinput> gemacht

en: . Group quotas can be modified with
de: . Gruppen-Quotas können mit

en: <userinput>edquota -g &lt;group&gt;</userinput>
de: <userinput>edquota -g &lt;group&gt;</userinput> geändert werden

en: . Then set the soft and hard quota and/or inode quotas as needed.
de: . Setzen Sie dann die weiche und die harte Grenze und inode-Quotas, falls Sie es benötigen.

en: For more information about quotas, read the quota man page, and the quota mini-howto (<filename>/usr/share/doc/HOWTO/en-html/mini/Quota.html</filename>). You may also want to look at <filename>pam_limits.so</filename>.
de: Mehr Informationen über Quotas finden Sie im Handbuch von quot und im Mini-Howto von quota (<filename>/usr/share/doc/HOWTO/de-html/mini/DE-Quota-HOWTO.html</filename>). Sie sollten auch einen Blick auf <filename>pam_limits.so</filename> werfen.

en: The ext2 filesystem specific attributes (<command>chattr</command>/<command>lsattr</command>)
de: Die für das ext2-Dateisystem spezifischen Attribute (<command>chattr</command>/<command>lsattr</command>)

en: In addition to the usual Unix permissions, the ext2 and ext3 filesystems offer a set of specific attributes that give you more control over the files on your system. Unlike the basic permissions, these attributes are not displayed by the usual <command>ls -l</command> command or changed using <command>chmod</command>, and you need two other utilities, <command>lsattr</command> and <command>chattr</command> (in package <application>e2fsprogs</application>) to manage them. Note that this means that these attributes will usually not be saved when you backup your system, so if you change any of them, it may be worth saving the successive <command>chattr</command> commands in a script so that you can set them again later if you have to restore a backup.
de: Zusätzlich zu den normalen Unix-Rechten bieten die ext2- und ext3-Dateisysteme eine Anzahl von besonderen Attributen, die Ihnen mehr Kontrolle über die Dateien auf Ihrem System erlauben. Im Gegensatz zu den gewöhnlichen Rechten werden diese Attribute nicht vom gebräuchlichen Befehl <command>ls -l</command> angezeigt und können auch nicht mit <command>chmod</command> geändert werden. Um sie zu verwalten, brauchen Sie zwei weitere Programme, nämlich <command>lsattr</command> und <command>chattr</command> (im Paket <application>e2fsprogs</application>). Beachten Sie, dass das bedeutet, dass diese Attribute normalerweise bei einem Backup des Systems nicht gespeichert werden. Wenn Sie also eines verändern, könnte es sich lohnen, die aufeinander folgenden <command>chattr</command>-Befehle in einem Skript zu speichern, damit Sie sie später wieder zuweisen können, falls Sie ein Backup zurückspielen müssen.

en: Among all available attributes, the two that are most important for increasing security are referenced by the letters 'i' and 'a', and they can only be set (or removed) by the superuser:
de: Unter allen Attributen werden die zwei, die für die Erhöhung der Sicherheit am bedeutendsten sind, mit den Buchstaben »i« und »a« bezeichnet. Sie können nur vom Superuser vergeben (oder entfernt) werden:

en: The 'i' attribute ('immutable'): a file with this attribute can neither be modified nor deleted or renamed and no link can be created to it, even by the superuser.
de: Das Attribut »i« (»immutable«, unveränderlich): Eine Datei mit diesem Attribut kann weder verändert noch gelöscht oder umbenannt werden, nicht einmal vom Superuser. Auch ein Link auf sie kann nicht angelegt werden.

en: The 'a' attribute ('append'): this attribute has the same effect that the immutable attribute, except that you can still open the file in append mode. This means that you can still add more content to it but it is impossible to modify previous content. This attribute is especially useful for the log files stored in <filename>/var/log/</filename>, though you should consider that they get moved sometimes due to the log rotation scripts.
de: Das Attribut »a« (»append«, anfügen): Dieses Attribut hat den gleichen Effekt wie das Attribut immutable, allerdings mit der Ausnahme, dass Sie immer noch die Datei im Anfügen-Modus öffnen können. Das bedeutet, dass Sie ihr immer noch Inhalt hinzufügen, aber den vorhanden Inhalt nicht verändern können. Dieses Attribut ist besonders für die Protokolldateien nützlich, die unter <filename>/var/log/</filename> gespeichert werden. Beachten Sie aber, dass sie durch Log-Rotations-Skripte manchmal verschoben werden.

en: These attributes can also be set for directories, in which case everyone is denied the right to modify the contents of a directory list (e.g. rename or remove a file, ...). When applied to a directory, the append attribute only allows file creation.
de: Diese Attribute können auch für Verzeichnisse vergeben werden. In diesem Fall ist es jedem unmöglich, den Inhalt des Verzeichnisses zu verändern, also beispielsweise eine Datei umzubenennen oder zu löschen. Wenn das append-Attribut einem Verzeichnis zugewiesen wird, können nur noch Dateien erstellt werden.

en: It is easy to see how the 'a' attribute improves security, by giving to programs that are not running as the superuser the ability to add data to a file without modifying its previous content. On the other hand, the 'i' attribute seems less interesting: after all, the superuser can already use the basic Unix permissions to restrict access to a file, and an intruder that would get access to the superuser account could always use the <command>chattr</command> program to remove the attribute. Such an intruder may first be confused when noticing not being able to remove a file, but you should not assume blindness - after all, the intruder got into your system! Some manuals (including a previous version of this document) suggest to simply remove the <command>chattr</command> and <command>lsattr</command> programs from the system to increase security, but this kind of strategy, also known as "security by obscurity", is to be absolutely avoided, since it provides a false sense of security.
de: Es ist leicht einzusehen, wie das Attribut »a« die Sicherheit verbessert, indem es Programmen, die nicht vom Superuser ausgeführt werden, die Fähigkeit einräumt, Daten hinzuzufügen, aber verhindert, dass älterer Inhalt verändert wird. Dem gegenüber erscheint das Attribut »i« uninteressanter. Schließlich kann der Superuser ja schon die normalen Unix-Rechte verwenden, um den Zugang zu Dateien einzuschränken. Und ein Angreifer, der Zugang zum Konto des Superusers hat, kann immer das Programm <command>chattr</command> benutzen, um die Attribute zu entfernen. Ein solcher Eindringlich ist vielleicht zunächst verwirrt, wenn er feststellt, dass er eine Datei nicht löschen kann. Aber Sie sollten nicht davon ausgehen, dass er blind ist &ndash; immerhin hat er es geschafft, in Ihr System einzudringen! Einige Handbücher (einschließlich früherer Versionen dieses Dokuments) empfehlen, einfach die Programme <command>chattr</command> und <command>lsattr</command> vom System zu entfernen, um die Sicherheit zu erhöhen. Aber diese Strategie, die auch als »security by obscurity« (Sicherheit durch Verschleierung) bekannt ist, sollte unter allen Umständen vermieden werden, da sie ein falsches Gefühl von Sicherheit vermittelt.

en: A secure way to solve this problem is to use the capabilities of the Linux kernel, as described in <xref linkend="proactive" />. The capability of interest here is called <literal>CAP_LINUX_IMMUTABLE</literal>: if you remove it from the capabilities bounding set (using for example the command <command>lcap <varname>CAP_LINUX_IMMUTABLE</varname></command>) it won't be possible to change any 'a' or 'i' attribute on your system anymore, even by the superuser ! A complete strategy could be as follows:
de: Dieses Problem lösen Sie auf sichere Art und Weise, indem Sie die Fähigkeiten des Linux-Kernel verwenden, wie es in <xref linkend="proactive"/> beschrieben wird. Die hier interessante Fähigkeit heißt <literal>CAP_LINUX_IMMUTABLE</literal>: Wenn Sie es vom Satz der Fähigkeiten entfernen (indem Sie zum Beispiel den Befehl <literal>lcap CAP_LINUX_IMMUTABLE</literal> verwenden, ist es nicht mehr möglich, irgendwelche »a« oder »i« Attribute auf Ihrem System zu verändern, auch nicht durch den Superuser! Ein umfassende Strategie könnte also folgendermaßen aussehen:

en: Set the attributes 'a' and 'i' on any file you want;
de: Vergeben Sie die Attribute »a« und »i« an von Ihnen gewünschte Dateien.

en: Add the command <command>lcap <varname>CAP_LINUX_IMMUTABLE</varname></command> (as well as <command>lcap <varname>CAP_SYS_MODULE</varname></command>, as suggested in <xref linkend="proactive" />) to one of the startup scripts;
de: Fügen Sie den Befehl <command>lcap CAP_LINUX_IMMUTABLE</command> einem der Skripten, die den Start des Systems steuern (startup scripts), hinzu.

en: Set the 'i' attribute on this script and other startup files, as well as on the <command>lcap</command> binary itself;
de: Setzen Sie das Attribut »i« für dieses Skript, andere Startdateien und auch das Programm <command>lcap</command> selbst.

en: Execute the above command manually (or reboot your system to make sure everything works as planned).
de: Führen Sie den oben genannten Befehl per Hand aus (oder starten Sie Ihr System neu, um sicherzustellen, dass alles wie gewünscht funktioniert).

en: Now that the capability has been removed from the system, an intruder cannot change any attribute on the protected files, and thus cannot change or remove the files. If the machine is forced to reboot (which is the only way to restore the capabilities bounding set), it will easily be detected, and the capability will be removed again as soon as the system restarts anyway. The only way to change a protected file would be to boot the system in single-user mode or using another bootdisk, two operations that require physical access to the machine !
de: Da nun die Fähigkeit von dem System entfernt wurde, kann ein Eindringling keine Attribute der geschützten Dateien ändern und daher diese nicht verändern oder löschen. Wenn er einen Neustart der Maschine erzwingt (was der einzige Weg ist, die Fähigkeiten wieder herzustellen), wird dies leicht zu bemerken sein. Außerdem werden die Fähigkeiten bei einem Neustart sofort wieder entfernt werden. Die einzige Möglichkeit, eine geschützte Datei zu ändern, ist, das System im Single-User-Modus zu starten oder ein anderes Bootmedium zu verwenden. Beides erfordert physischen Zugang zur Maschine!

en: Checking file system integrity
de: Prüfung der Integrität des Dateisystems

en: Are you sure <filename>/bin/login</filename> on your hard drive is still the binary you installed there some months ago? What if it is a hacked version, which stores the entered password in a hidden file or mails it in clear-text version all over the Internet?
de: Sind Sie sich sicher, dass <filename>/bin/login</filename> auf Ihrer Festplatte immer noch dasselbe Programm ist, das Sie vor ein paar Monaten installiert haben? Was wäre, wenn es sich um eine gehackte Version handelt, die eingegebene Passwörter in einer versteckten Datei ablegt oder sie als Klartext im ganzen Internet herummailt?

en: The only method to have some kind of protection is to check your files every hour/day/month (I prefer daily) by comparing the actual and the old md5sum of this file. Two files cannot have the same md5sum (the MD5 digest is 128 bits, so the chance that two different files will have the same md5sum is roughly one in 3.4e3803), so you're on the safe site here, unless someone has also hacked the algorithm that creates md5sums on that machine. This is, well, extremely difficult and very unlikely. You really should consider this auditing of your binaries as very important, since it is an easy way to recognize changes at your binaries.
de: Die einzige Methode, um einen gewissen Schutz dafür zu haben, ist es, die Dateien jede(n) Stunde/Tag/Monat (ich ziehe täglich vor) zu prüfen, indem man deren aktuelle und alte MD5-Summe vergleicht. Zwei unterschiedliche Dateien können keine gleichen MD5-Summen haben (die MD5-Summe umfasst 128 Bits, so ist die Wahrscheinlichkeit, dass zwei unterschiedliche Dateien eine gleiche MD5-Summe haben etwa 1 zu 3,4e3803). So sind Sie sicher, solange niemand den Algorithmus gehackt hat, der die MD5-Summen auf Ihrer Maschine erstellt. Dies ist, nun ja, extrem schwer und sehr unwahrscheinlich. Sie sollten diese Überprüfung Ihrer Programme als sehr wichtig ansehen.

en: Common tools used for this are <application>sxid</application>, <application>aide</application> (Advanced Intrusion Detection Environment), <application>tripwire</application>, <application>integrit</application> and <application>samhain</application>. Installing <command>debsums</command> will also help you to check the file system integrity, by comparing the md5sums of every file against the md5sums used in the Debian package archive. But beware: those files can easily be changed by an attacker and not all packages provide md5sums listings for the binaries they provided. For more information please read <xref linkend="periodic-integrity" /> and <xref linkend="snapshot" />.
de: Weit verbreitete Werkzeuge hierfür sind <application>sxid</application>, <application>aide</application> (Advanced Intrusion Detection Environment, fortgeschrittene Umgebung zur Erkennung von Eindringlingen), <application>tripwire</application>, <application>integrit</application> und <application>samhain</application>. Das Installieren von <command>debsums</command> wird Ihnen helfen, die Integrität des Dateisystems zu überprüfen, indem Sie die MD5-Summen jeder Datei gegen die MD5-Summe aus dem Debian-Archiv-Paket vergleichen. Seien Sie aber gewarnt, dass diese Dateien sehr leicht von einem Angreifer geändert werden können. Außerdem stellen nicht alle Pakete MD5-Summen für die in ihnen enthaltenen Programme zur Verfügung. Weitere Informationen finden Sie unter <xref linkend="periodic-integrity"/> und <xref linkend="snapshot"/>.

en: You might want to use <command>locate</command> to index the whole filesystem, if so, consider the implications of that. The Debian <application>findutils</application> package contains <command>locate</command> which runs as user nobody, and so it only indexes files which are visible to everybody. However, if you change it's behaviour you will make all file locations visible to all users. If you want to index all the filesystem (not the bits that the user nobody can see) you can replace <command>locate</command> with the package <application>slocate</application>. slocate is labeled as a security enhanced version of GNU locate, but it actually provides additional file-locating functionality. When using <command>slocate</command>, the user only sees the actually accessible files and you can exclude any files or directories on the system. The <application>slocate</application> package runs its update process with higher privledges than locate, and indexes every file. Users are then able to quickly search for every file which they are able to see. <command>slocate</command> doesn't let them see new files; it filters the output based on your UID.
de: Sie benutzen vielleicht <command>locate</command>, um das gesamte Dateisystem zu indizieren. Wenn das so ist, sollten Sie die Auswirkungen davon berücksichtigen. Das Debianpaket <application>findutils</application> enthält <command>locate</command>, das als Benutzer nobody läuft. Daher indiziert es nur Dateien, die von jedermann eingesehen werden können. Wenn Sie dieses Verhalten verändern, werden allerdings alle Orte von Dateien für alle Benutzer sichtbar. Wenn Sie das gesamte Dateisystem indizieren wollen (und nicht nur die Stückchen, die der Benutzer nobody sehen kann), können Sie <command>locate</command> durch das Paket <application>slocate</application> ersetzen. slocate wird als eine um Sicherheit erweiterte Version von GNU locate bezeichnet, hat aber tatsächlich weitere Funktionen zum Auffinden von Dateien. Wenn Sie <command>slocate</command> benutzen, sieht ein Benutzer nur Dateien, auf die er auch Zugriff hat, während Sie Dateien und Verzeichnisse des gesamten Systems ausschließen können. Das Paket <application>slocate</application> führt seinen Aktualisierungsprozess mit höheren Rechten aus als locate. Außerdem indiziert es jede Datei. Benutzern wird es dadurch ermöglicht, schnell nach jeder Datei zu suchen, die sie sehen können. <command>slocate</command> zeigt ihnen keine neuen Dateien an; es filtert die Ausgabe auf Grundlage der UID.

en: You might want to use <application>bsign</application> or <application>elfsign</application>. <application>elfsign</application> provides an utility to add a digital signature to an ELF binary and a second utility to verify that signature. The current implementation uses PKI to sign the checksum of the binary. The benefits of doing this are that it enables one to determine if a binary has been modified and who created it. <application>bsign</application> uses GPG, <application>elfsign</application> uses PKI (X.509) certificates (OpenSSL).
de: Sie sollten auch <application>bsign</application> oder <application>elfsign</application> einsetzen. <application>elfsign</application> bietet die Möglichkeit, digitale Signaturen an ELF-Binaries anzufügen und diese Signaturen zu überprüfen. Die aktuelle Fassung verwendet PKI, um die Checksummen der Binaries zu signieren. Dies hat den Vorteil, dass festgestellt werden kann, ob das Binary verändert wurde und wer es erstellt hat. <application>bsign</application> verwendet GPG, <application>elfsign</application> benutzt PKI-(X.509)-Zertifikate (OpenSSL).

en: Setting up setuid check
de: Aufsetzen einer Überprüfung von setuid

en: The Debian <application>checksecurity</application> package provides a <command>cron</command> job that runs daily in <filename>/etc/cron.daily/checksecurity</filename> <footnote><para>In previous releases, checksecurity was integrated into cron and the file was <filename>/etc/cron.daily/standard</filename></para></footnote>. This <command>cron</command> job will run the <command>/usr/sbin/checksecurity</command> script that will store information of this changes.
de: Das Debian-Paket <application>checksecurity</application> enthält einen <command>Cron</command>-Job, der täglich in <filename>/etc/cron.daily/checksecurity</filename> ausgeführt wird. <footnote><para> In älteren Veröffentlichungen war checksecurity in cron integriert und die Datei hieß <filename>/etc/cron.daily/standard</filename>. </para></footnote>. Dieser <command>Cron</command>-Job führt das Skript <command>/usr/sbin/checksecurity</command> aus, das Informationen über Änderungen sichert.

en: The default behavior does not send this information to the superuser but, instead keeps daily copies of the changes in <filename>/var/log/setuid.changes</filename>. You should set the MAILTO variable (in <filename>/etc/checksecurity.conf</filename>) to 'root' to have this information mailed to the superuser. See <citerefentry><refentrytitle>checksecurity</refentrytitle> <manvolnum>8</manvolnum></citerefentry> manual page for more configuration info.
de: Das Standardverhalten sendet diese Informationen nicht an den Superuser. Stattdessen erstellt es eine tägliche Kopie dieser Änderungen unter <filename>/var/log/setuid.changes</filename>. Sie sollten die Variable MAILTO (in <filename>/etc/checksecurity.conf</filename>) auf »root« setzen, damit diese Informationen an ihn gemailt werden. Sehen Sie sich auch <citerefentry><refentrytitle>checksecurity</refentrytitle> <manvolnum>8</manvolnum></citerefentry> für weitere Konfigurations-Informationen an.

en: Securing network access
de: Absicherung des Netzwerkzugangs

en: FIXME: More (Debian-specific) content needed.
de: FIXME: mehr (für Debian spezifischer) Inhalt benötigt

en: Configuring kernel network features
de: Konfiguration der Netzwerkfähigkeiten des Kernels

en: (see <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>). Only in rare cases do you need to edit something here, but you can increase security that way as well. For example:
de: (vergleiche <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>) Nur in seltenen Fällen müssen Sie hier etwas bearbeiten. Aber auch hier können Sie die Sicherheit erhöhen. Zum Beispiel:

en: This is a <emphasis>Windows emulator</emphasis> because it acts like Windows on broadcast ping if this option is set to 1. That is, ICMP echo requests sent to the broadcast address will be ignored. Otherwise, it does nothing.
de: Dies ist ein <emphasis>Windows-Emulator</emphasis>, weil es sich wie Windows bei Rundrufen (Broadcast-Ping) verhält, wenn es auf 1 gesetzt wird. Das bedeutet, dass ICMP-Echo-Anfragen, die an die Rundrufadresse geschickt werden, ignoriert werden. Anderenfalls macht es gar nichts.

en: If you want to prevent you system from answering ICMP echo requests, just enable this configuration option:
de: Falls Sie verhindern wollen, dass Ihr System auf ICMP-Echo-Anfragen antwortet, müssen Sie nur diese Konfigurationsoption anschalten:

en: To log packets with impossible addresses (due to wrong routes) on your network use:
de: Verwenden Sie Folgendes, um Pakete mit unmöglichen Adressen (erzeugt durch falsche Routen) in Ihrem Netzwerk zu protokollieren:

en: For more information on what things can be done with <filename>/proc/sys/net/ipv4/*</filename> read <filename>/usr/src/linux/Documentation/filesystems/proc.txt</filename>. All the options are described thoroughly under <filename>/usr/src/linux/Documentation/networking/ip-sysctl.txt</filename> <footnote><para>In Debian the <application>kernel-source-<varname>version</varname></application> packages copy the sources to <filename>/usr/src/kernel-source-<varname>version</varname>.tar.bz2</filename>, just substitute <varname>version</varname> to whatever kernel version sources you have installed</para></footnote>.
de: Für weiterführende Informationen, welche Sachen mit <filename>/proc/sys/net/ipv4/*</filename> angestellt werden können, sollten Sie <filename>/usr/src/linux/Documentation/filesystems/proc.txt</filename> lesen. Alle Optionen werden gründlich in <filename>/usr/src/linux/Documentation/networking/ip-sysctl.txt</filename> <footnote><para> In Debian kopiert das Paket <application>kernel-source-<varname>version</varname></application> die Kernelquellen nach <filename>/usr/src/kernel-source-<varname>version</varname>.tar.bz2</filename>. Ersetzen Sie einfach <varname>version</varname> mit der installierten Kernelversion. </para></footnote> beschrieben.

en: Configuring syncookies
de: Konfiguration von Syncookies

en: This option is a double-edged sword. On the one hand it protects your system against syn packet flooding; on the other hand it violates defined standards (RFCs).
de: Diese Option ist ein zweischneidiges Schwert. Auf der einen Seite schützt es Ihr System vor dem Überfluten mit syn-Paketen. Auf der anderen Seite verletzt es definierte Standards (RFCs).

en: If you want to change this option each time the kernel is working you need to change it in <filename>/etc/network/options</filename> by setting <literal>syncookies=yes</literal>. This will take effect when ever <filename>/etc/init.d/networking</filename> is run (which is typically done at boot time) while the following will have a one-time effect until the reboot:
de: Wenn Sie das dauerhaft für den Kernel festlegen wollen, müssen Sie in <literal>/etc/network/options</literal> <literal>syncookies=yes</literal> festlegen. Jedes Mal, wenn <literal>/etc/init.d/networking</literal> ausgeführt wird (was typischerweise beim Booten geschieht), wird diese Option wirksam. Dagegen wird folgendes nur eine einmalige Wirkung bis zum nächsten Neustart haben:

en: This option will only be available if the kernel is compiled with the <literal>CONFIG_SYNCOOKIES</literal>. All Debian kernels are compiled with this option builtin but you can verify it running:
de: Diese Option ist nur verfügbar, wenn der Kernel mit <literal>CONFIG_SYNCOOKIES</literal> übersetzt wurde. Alle Kernel von Debian wurden mit dieser Option kompiliert. Sie können das folgendermaßen überprüfen:

en: For more information on TCP syncookies read <ulink url="http://cr.yp.to/syncookies.html" />.
de: Weitere Informationen zu TCP-Syncookies finden Sie unter <ulink url="http://cr.yp.to/syncookies.html"/>.

en: Securing the network on boot-time
de: Absicherung des Netzwerks beim Hochfahren

en: When setting configuration options for the kernel networking you need configure it so that it's loaded every time the system is restarted. The following example enables many of the previous options as well as other useful options.
de: Wenn Sie die Netzwerkoptionen des Kernels konfigurieren, müssen Sie dafür sorgen, dass sie bei jedem Neustart des Systems geladen werden. Das nachfolgende Beispiel aktiviert neben vielen der oben vorgestellten Optionen auch noch ein paar andere nützliche Optionen.

en: There are actually two ways to configure your network at boot time. You can configure <filename>/etc/sysctl.conf</filename> (see: <citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>) or introduce a script that is called when the interface is enabled. The first option will be applied to all interfaces, whileas the second option allows you to configure this on a per-interface basis.
de: Tatsächlich gibt es zwei Möglichkeiten, Ihr Netzwerk beim Booten einzurichten. Sie können entweder <filename>/etc/sysctl.conf</filename> konfigurieren (siehe <citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>) oder ein Skript einsetzen, das beim Aktivieren der Netzwerkschnittstellen aufgerufen wird. Die erste Möglichkeit wird auf alle Schnittstellen angewendet, die zweite erlaubt es Ihnen, die Konfiguration für jede Schnittstelle separat zu wählen.

en: An example of a <filename>/etc/sysctl.conf</filename> configuration that will secure some network options at the kernel level is shown below. Notice the comment in it, <filename>/etc/network/options</filename> might override some values if they contradict those in this file when the <filename>/etc/init.d/networking</filename> is run (which is later than <filename>procps</filename> on the startup sequence).
de: Ein Beispiel einer Konfiguration von <filename>/etc/sysctl.conf</filename>, die einige Netzwerkoptionen auf der Kernelebene absichert, wird unten gezeigt. Beachten Sie darin den Kommentar, dass <filename>/etc/network/options</filename> beim Ausführen von <filename>/etc/init.d/networking</filename> (dies ist in der Startsequenz nach <filename>procps</filename>) einige Werte überschreiben könnte, wenn sich Werte in dieser Datei widersprechen.

en: To use the script you need to first create the script, for example, in <filename>/etc/network/interface-secure</filename> (the name is given as an example) and call it from <filename>/etc/network/interfaces</filename> like this:
de: Um dieses Skript verwenden zu können, müssen Sie es zuerst unter z.B. <filename>/etc/network/interface-secure</filename> (der Name ist nur ein Beispiel) erstellen und es wie folgt aus <filename>/etc/network/interfaces</filename> aufrufen:

en: In this example, before the interface eth0 is enabled the script will be called to secure all network interfaces as shown below.
de: In diesem Beispiel wird das Skript aufgerufen, um alle Netzwerkschnittstellen abzusichern, wie unten gezeigt wird, bevor die Schnittstelle eth0 aktiviert wird.

en: 
    #!/bin/sh -e
    # Script-name: /etc/network/interface-secure
    #
    # Modifies some default behavior in order to secure against 
    # some TCP/IP spoofing &amp; attacks for all interfaces.
    #
    # Contributed by Dariusz Puchalak.
    #
    echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 
                                               # Broadcast echo protection enabled.
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/forwarding
                                               # IP forwarding disabled.
    echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies # TCP syn cookies protection enabled.
    echo 1 &gt;/proc/sys/net/ipv4/conf/all/log_martians # Log strange packets.
    # (this includes spoofed packets, source routed packets, redirect packets)
    # but be careful with this on heavy loaded web servers.
    echo 1 &gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 
                                               # Bad error message protection enabled.
    
    # IP spoofing protection.
    echo 1 &gt; /proc/sys/net/ipv4/conf/all/rp_filter
    
    # Disable ICMP redirect acceptance.
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/send_redirects
    
    # Disable source routed packets.
    echo 0 &gt; /proc/sys/net/ipv4/conf/all/accept_source_route
    
    exit 0
de: 
    #!/bin/sh -e
    # Skriptname: /etc/network/interface-secure
    #
    # Verändert das Standardverhalten für alle Schnittstellen in einigen Bereichen,
    # um vor TCP/IP-Spoofing und Angriffen zu schützen.
    #
    # Wurde von Dariusz Puchalak beigesteuert
    #
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 
                                               # Broadcast echo protection enabled.
    echo 0 > /proc/sys/net/ipv4/conf/all/forwarding
                                               # IP forwarding disabled.
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies # TCP syn cookies protection enabled.
    echo 1 >/proc/sys/net/ipv4/conf/all/log_martians # Log strange packets.
    # (this includes spoofed packets, source routed packets, redirect packets)
    # but be careful with this on heavy loaded web servers.
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 
                                               # Bad error message protection enabled.
    
    # IP spoofing protection.
    echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
    
    # Disable ICMP redirect acceptance.
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
    
    # Disable source routed packets.
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
    
    exit 0

en: Notice that you can actually have per-interface scripts that will enable different network options for different interfaces (if you have more than one), just change the pre-up line to:
de: Beachten Sie, dass Sie auch verschiedene Netzwerkoptionen für verschiedene Schnittstellen (falls Sie mehr als eine haben) setzten können, indem Sie die pre-up-Zeile verändern:

en: And use a script which will only apply changes to a specific interface, not to all of the interfaces available. Notice that some networking options can only be enabled globally, however. A sample script is this one:
de: Zusätzlich müssen Sie ein Skript verwenden, das Änderungen nur auf eine bestimmte Schnittstelle anwendet und nicht auf alle Schnittstellen. Beachten Sie aber, dass einige Netzwerkoptionen nur global gesetzt werden können. Dies ist ein Beispielsskript:

en: 
    #!/bin/sh -e
    # Script-name: /etc/network/interface-secure
    #
    # Modifies some default behavior in order to secure against 
    # some TCP/IP spoofing &amp; attacks for a given interface.
    #
    # Contributed by Dariusz Puchalak.
    #
    
    IFACE=$1
    if [ -z "$IFACE" ] ; then
       echo "$0: Must give an interface name as argument!"
       echo "Usage: $0 &lt;interface&gt;"
       exit 1
    fi
    
    if [ ! -e /proc/sys/net/ipv4/conf/$IFACE/ ]; then
       echo "$0: Interface $IFACE does not exit (cannot find /proc/sys/net/ipv4/conf/)"
       exit 1
    fi
    
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/forwarding  # IP forwarding disabled.
    echo 1 &gt;/proc/sys/net/ipv4/conf/$IFACE/log_martians # Log strange packets.
    # (this includes spoofed packets, source routed packets, redirect packets)
    # but be careful with this on heavy loaded web servers.
    
    # IP spoofing protection.
    echo 1 &gt; /proc/sys/net/ipv4/conf/$IFACE/rp_filter
    
    # Disable ICMP redirect acceptance.
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/accept_redirects
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/send_redirects
    
    # Disable source routed packets.
    echo 0 &gt; /proc/sys/net/ipv4/conf/$IFACE/accept_source_route
    
    exit 0
de: 
    #!/bin/sh -e
    # Skriptname: /etc/network/interface-secure
    #
    # Verändert das Standardverhalten für alle Schnittstellen in einigen Bereichen,
    # um vor TCP/IP-Spoofing und Angriffen zu schützen.
    #
    # Wurde von Dariusz Puchalak beigesteuert
    #
    
    IFACE=$1
    if [ -z "$IFACE" ] ; then
       echo "$0: Must give an interface name as argument!"
       echo "Usage: $0 &lt;interface&gt;"
       exit 1
    fi
    
    if [ ! -e /proc/sys/net/ipv4/conf/$IFACE/ ]; then
       echo "$0: Interface $IFACE does not exit (cannot find /proc/sys/net/ipv4/conf/)"
       exit 1
    fi
    
    echo 0 > /proc/sys/net/ipv4/conf/$IFACE/forwarding  # IP forwarding disabled.
    echo 1 >/proc/sys/net/ipv4/conf/$IFACE/log_martians # Log strange packets.
    # (this includes spoofed packets, source routed packets, redirect packets)
    # but be careful with this on heavy loaded web servers.
    
    # IP spoofing protection.
    echo 1 > /proc/sys/net/ipv4/conf/$IFACE/rp_filter
    
    # Disable ICMP redirect acceptance.
    echo 0 > /proc/sys/net/ipv4/conf/$IFACE/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/$IFACE/send_redirects
    
    # Disable source routed packets.
    echo 0 > /proc/sys/net/ipv4/conf/$IFACE/accept_source_route
    
    exit 0

en: An alternative solution is to create an <filename>init.d</filename> script and have it run on bootup (using <command>update-rc.d</command> to create the appropriate <filename>rc.d</filename> links).
de: Eine andere Lösungsmöglichkeit ist es, ein <command>init.d</command>-Skript zu erstellen und es beim Booten auszuführen (verwenden Sie <application>update-rc.d</application>, um die passenden <command>rc.d</command>-Links herzustellen).

en: Configuring firewall features
de: Konfiguration der Firewall

en: In order to have firewall capabilities, either to protect the local system or others <emphasis>behind</emphasis> it, the kernel needs to be compiled with firewall capabilities. The standard Debian 2.2 kernel (Linux 2.2) provides the packet filter <command>ipchains</command> firewall, Debian 3.0 standard kernel (Linux 2.4) provides the <emphasis>stateful</emphasis> packet filter <command>iptables</command> (netfilter) firewall.
de: Um die Möglichkeiten einer Firewall zu haben, damit entweder das lokale System oder andere <emphasis>dahinter</emphasis> beschützt werden, muss der Kernel mit Firewall-Unterstützung kompiliert worden sein. Der Standardkernel von Debian 2.2 (Linux 2.2) stellt die Paketfilter-Firewall <command>ipchains</command> zur Verfügung. Der Standardkernel von Debian 3.0 (Linux 2.4) enthält die <emphasis>stateful</emphasis> Paketfilter-Firewall <command>iptables</command> (netfilter).

en: In any case, it is pretty easy to use a kernel different from the one provided by Debian. You can find pre-compiled kernels as packages you can easily install in the Debian system. You can also download the kernel sources using the <application>kernel-source-<varname>X</varname></application> and build custom kernel packages using <command>make-kpkg</command> from the <application>kernel-package</application> package.
de: In jedem Fall ist es recht einfach, einen anderen als den mit Debian gelieferten Kernel zu benutzen. Sie finden vorkompilierte Kernel als Pakete vor, die Sie leicht auf Ihrem Debian-System installieren können. Mit Hilfe des Pakets <application>kernel-source-<varname>X</varname></application> können Sie auch die Kernelquellen herunterladen und einen maßgeschneiderten Kernel kompilieren, indem Sie <command>make-kpkg</command> aus dem Paket <application>kernel-package</application> benutzen.

en: Setting up firewalls in Debian is discussed more thoroughly in <xref linkend="firewall-setup" />.
de: Auf das Aufsetzen einer Firewall unter Debian wird unter <xref linkend="firewall-setup"/> ausführlich eingegangen.

en: Disabling weak-end hosts issues
de: Lösung des Problems der Weak-End-Hosts <!-- SB (20050306): "Disabling weak-end hosts issues" - Gibt's dafür eine vernünftige Übersetzung? "Week-end host" wäre wohl "Kneipe" ;-) -->

en: Systems with more than one interface on different networks can have services configured so that they will bind only to a given IP address. This usually prevents access to services when requested through any other address. However, this does not mean (although it is a common misconception) that the service is bound to a given <emphasis>hardware</emphasis> address (interface card). <footnote><para> To reproduce this (example provided by Felix von Leitner on the Bugtraq mailing list): <screen> host a (eth0 connected to eth0 of host b): ifconfig eth0 10.0.0.1 ifconfig eth1 23.0.0.1 tcpserver -RHl localhost 23.0.0.1 8000 echo fnord host b: ifconfig eth0 10.0.0.2 route add 23.0.0.1 gw 10.0.0.1 telnet 23.0.0.1 8000 </screen></para></footnote>
de: Auf Systemen mit mehr als einer Schnittstelle zu verschiedenen Netzwerken können Dienste so eingerichtet werden, dass sie Verbindungen nur zu einer bestimmten IP-Adresse zulassen. Normalerweise verhindert das den Zugang zu diesen Diensten, wenn an sie Anfragen über andere Adressen gestellt werden. Allerdings bedeutet das nicht, dass der Dienst an eine bestimmte <emphasis>Hardware</emphasis>-Adresse (Netzwerkkarte) gebunden ist (ein verbreiteter Irrtum). <footnote><para> Um das nachzuvollziehen folgendes Beispiel, das von Felix von Leitner auf der Bugtraq-Mailingliste vorgestellt wurde: <screen>   host a (eth0 connected to eth0 of host b):      ifconfig eth0 10.0.0.1      ifconfig eth1 23.0.0.1      tcpserver -RHl localhost 23.0.0.1 8000 echo fnord     host b:      ifconfig eth0 10.0.0.2      route add 23.0.0.1 gw 10.0.0.1      telnet 23.0.0.1 8000 </screen> </para><para>Das scheint allerdings nicht mit Diensten zu funktionieren, die mit 127.0.0.1 verbunden sind. Sie sollten vielleicht für die Tests raw sockets verwenden. </para></footnote>

en: It seems, however, not to work with services bound to 127.0.0.1, you might need to write the tests using raw sockets.
de: Das scheint allerdings nicht mit Diensten zu funktionieren, die mit 127.0.0.1 verbunden sind. Sie sollten vielleicht für die Tests raw sockets verwenden.

en: This is not an ARP issue and it's not an RFC violation (it's called <emphasis>weak end host</emphasis> in <ulink url="ftp://ftp.isi.edu/in-notes/rfc1122.txt">RFC1122</ulink>, (in the section 3.3.4.2). Remember, IP addresses have nothing to do with physical interfaces.
de: Das ist kein Problem von ARP und auch keine Verletzung eines RFCs (es wird in <ulink url="ftp://ftp.isi.edu/in-notes/rfc1122.txt" name="RFC1122"/>, Abschnitt 3.3.4.2 als <emphasis>weak end host</emphasis> bezeichnet). Vergessen Sie nicht, dass IP-Adressen nichts mit dem physischen Schnittstellen zu tun haben.

en: On 2.2 (and previous) kernels this can be fixed with:
de: Im Kernel 2.2 (und davor) konnte dieses Problem so gelöst werden:

en: On later kernels this can be fixed either with:
de: Bei späteren Kernel kann das folgendermaßen gelöst werden:

en: iptables rules.
de: Regeln für iptables

en: properly configured routing. <footnote><para> The fact that this behavior can be changed through routing was described by Matthew G. Marsh in the Bugtraq thread: <screen> eth0 = 1.1.1.1/24 eth1 = 2.2.2.2/24 ip rule add from 1.1.1.1/32 dev lo table 1 prio 15000 ip rule add from 2.2.2.2/32 dev lo table 2 prio 16000 ip route add default dev eth0 table 1 ip route add default dev eth1 table 2 </screen> </para></footnote>
de: richtig konfiguriertes Routing <footnote><para> Die Tatsache, dass dieses Verhalten durch Routing geändert werden kann, wurde von Matthew G. Marsh in dem Bugtraq-Thread beschrieben: <screen>   eth0 = 1.1.1.1/24   eth1 = 2.2.2.2/24   ip rule add from 1.1.1.1/32 dev lo table 1 prio 15000   ip rule add from 2.2.2.2/32 dev lo table 2 prio 16000   ip route add default dev eth0 table 1   ip route add default dev eth1 table 2 </screen> </para></footnote> oder

en: kernel patching. <footnote><para> There are some patches available for this behavior as described in Bugtraq's thread at <ulink url="http://www.linuxvirtualserver.org/~julian/#hidden" /> and <ulink url="http://www.fefe.de/linux-eth-forwarding.diff" />. </para></footnote>
de: Patchen des Kernels <footnote><para> Wie im Bugtraq-Thread beschrieben, gibt es dafür einige Patches auf <ulink url="http://www.linuxvirtualserver.org/~julian/#hidden"/> und <ulink url="http://www.fefe.de/linux-eth-forwarding.diff"/>. </para></footnote>

en: Along this text there will be many occasions in which it is shown how to configure some services (sshd server, apache, printer service...) in order to have them listening on any given address, the reader should take into account that, without the fixes given here, the fix would not prevent accesses from within the same (local) network. <footnote><para> An attacker might have many problems pulling the access through after configuring the IP-address binding while not being on the same broadcast domain (same network) as the attacked host. If the attack goes through a router it might be quite difficult for the answers to return somewhere. </para></footnote>
de: In diesem Text finden sich viele Fälle, in denen gezeigt wird, wie man einige Dienste (sshd-Server, apache, Druckserver, ...) so konfiguriert, dass sie nur auf einer bestimmten Adresse lauschen. Der Leser sollte in Betracht ziehen, dass das den Zugang aus dem gleichen (lokalen) Netzwerk nicht verhindern kann, wenn nicht die in diesem Abschnitt vorgeschlagenen Schritte ergriffen werden. <footnote><para> Ein Angreifer, der nicht in der gleichen Broadcast-Domain (also dem gleichen Netzwerk) wie der angegriffene Host ist, kann auf viele Probleme bei Zugang stoßen, nachdem die Anbindung der IP-Adressen konfiguriert wurde. Wenn der Angriff über einen Router läuft, kann es sich als ziemlich schwer herausstellen, die Antworten zurückzubekommen. </para></footnote>

en: Protecting against ARP attacks
de: Schutz vor ARP-Angriffen

en: When you don't trust the other boxes on your LAN (which should always be the case, because it's the safest attitude) you should protect yourself from the various existing ARP attacks.
de: Wenn Sie den anderen Kisten in Ihrem LAN nicht trauen (das sollte immer so sein, da es die sicherste Einstellung ist), sollten Sie sich vor den verschiedenen ARP-Angriffen schützen.

en: As you know the ARP protocol is used to link IP addresses to MAC addresses (see <ulink name="RFC826" url="ftp://ftp.isi.edu/in-notes/rfc826.txt" /> for all the details). Every time you send a packet to an IP address an ARP resolution is done (first by looking into the local ARP cache then if the IP isn't present in the cache by broadcasting an ARP query) to find the target's hardware address. All the ARP attacks aim to fool your box into thinking that box B's IP address is associated to the intruder's box's MAC address; Then every packet that you want to send to the IP associated to box B will be send to the intruder's box...
de: Wie Sie wissen, wird das ARP-Protokoll dazu verwendet, IP-Adressen mit MAC-Adressen zu verknüpfen (für alle Details siehe <ulink name="RFC826" url="ftp://ftp.isi.edu/in-notes/rfc826.txt"/>). Jedes Mal, wenn Sie ein Paket an eine IP-Adresse schicken, wird eine ARP-Auflösung vorgenommen (zuerst wird in den lokalen ARP-Speicher geschaut, und falls die IP nicht im Speicher ist, wird ein Rundruf (Broadcast) mit der ARP-Anfrage verschickt), um die Hardware-Adresse des Ziels zu finden. Alle ARP-Angriffe zielen darauf ab, Ihrem Rechner vorzugaukeln, dass die IP-Adresse des Rechners B mit der MAC-Adresse des Computers des Angreifers verbunden ist. Dadurch wird jedes Paket, das Sie an den Rechner B, der mit der IP-Adresse verbunden ist, schicken wollen, an den Computer des Eindringlings umgeleitet ...

en: Those attacks (ARP cache poisoning, ARP spoofing...) allow the attacker to sniff the traffic even on switched networks, to easily hijack connections, to disconnect any host from the network... ARP attacks are powerful and simple to implement, and several tools exists, such as <command>arpspoof</command> from the <application>dsniff</application> package or <ulink name="arpoison" url="http://arpoison.sourceforge.net/" />.
de: Diese Angriffe (Verfälschung des ARP-Speichers, ARP-Spoofing, ...) ermöglichen dem Angreifer, auf Netzwerken den Verkehr abzuhören (selbst bei Netzwerken, die über einen Switch laufen). Er kann sich leicht in eine Verbindung einschleusen oder einen Host vom Netzwerk nehmen oder ... ARP-Angriffe sind leistungsfähig und einfach durchzuführen. Es gibt dafür auch einige Werkzeuge wie <command>arpspoof</command> aus dem Paket <application>dsniff</application> oder <ulink name="arpoison" url="http://arpoison.sourceforge.net/"/>.

en: However, there is always a solution:
de: Allerdings gibt es immer eine Lösung:

en: Use a static ARP cache. You can set up "static" entries in your ARP cache with:
de: Verwenden Sie einen statischen ARP-Speicher. So erstellen Sie »statische« Einträge in Ihrem ARP-Speicher:

en: By setting static entries for each important host in your network you ensure that nobody will create/modify a (fake) entry for these hosts (static entries don't expire and can't be modified) and spoofed ARP replies will be ignored.
de: Indem Sie statische Einträge für jeden wichtigen Host in Ihrem Netzwerk vergeben, stellen Sie sicher, dass niemand einen (falschen) Eintrag für diese Hosts erstellen oder verändern kann (statische Einträge verfallen nicht und können nicht verändert werden). Auch gefälschte ARP-Antworten werden ignoriert.

en: Detect suspicious ARP traffic. You can use <application>arpwatch</application>, <application>karpski</application> or more general IDS that can also detect suspicious ARP traffic (<application>snort</application>, <ulink name="prelude" url="http://www.prelude-ids.org" />...).
de: Entdecken Sie verdächtigen ARP-Verkehr. Sie können dazu <application>arpwatch</application>, <application>karpski</application> oder allgemeinere IDS, die auch verdächtigen ARP-Verkehr entdecken können wie <application>snort</application> oder <ulink name="prelude" url="http://www.prelude-ids.org"/>, einsetzen.

en: Implement IP traffic filtering validating the MAC address.
de: Verwenden Sie einen IP-Filter, der die MAC-Adressen überprüft.

en: Taking a snapshot of the system
de: Einen Schnappschuss des Systems erstellen

en: Before putting the system into production system you could take a snapshot of the whole system. This snapshot could be used in the event of a compromise (see <xref linkend="after-compromise" />). You should remake this upgrade whenever the system is upgraded, especially if you upgrade to a new Debian release.
de: Bevor Sie das System in produktiven Betrieb nehmen, können Sie einen Schnappschuss des gesamten Systems erstellen. Diesen Schnappschuss können Sie im Falle einer Kompromittierung (siehe <xref linkend="after-compromise"/>) benutzen. Sie sollten den Schnappschuss immer dann erneuern, wenn Sie das System aktualisieren, insbesondere wenn Sie auf eine neue Debian-Veröffentlichung upgraden.

en: For this you can use a writable removable-media that can be set up read-only, this could be a floppy disk (read protected after use), a CD on a CD-ROM unit (you could use a rewritable CD-ROM so you could even keep backups of md5sums in different dates), or a USB disk or MMC card (if your system can access those and they can be write protected).
de: Hierfür können Sie beschreibbare, austauschbare Datenträger benutzen, die Sie schreibschützen können. Dies kann eine Diskette (die nach der Benutzung schreibgeschützt wird), eine CD in einem CD-ROM-Laufwerk (Sie können auch wiederbeschreibbare CD-ROMs benutzen, so können Sie sogar alte Sicherheitskopien Ihrer MD5-Summen behalten), eine USB-Platte oder eine MMC-Karte (wenn Ihr System auf diese zugreifen kann und sie schreibgeschützt werden können) sein.

en: The following script creates such a snapshot:
de: Das folgende Skript erstellt einen solchen Schnappschuss:

en: 
    #!/bin/bash
    /bin/mount /dev/fd0 /mnt/floppy
    trap "/bin/umount /dev/fd0" 0 1 2 3 9 13 15
    if [ ! -f /usr/bin/md5sum ] ; then
    	echo "Cannot find md5sum. Aborting."
    	exit 1
    fi
    /bin/cp /usr/bin/md5sum /mnt/floppy
    echo "Calculating md5 database"
    &gt;/mnt/floppy/md5checksums.txt
    for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    do
       find $dir -type f | xargs /usr/bin/md5sum &gt;&gt;/mnt/floppy/md5checksums-lib.txt
    done
    echo "post installation md5 database calculated"
    if [ ! -f /usr/bin/sha1sum ] ; then
    	echo "Cannot find sha1sum"
            echo "WARNING: Only md5 database will be stored"
    else
    	/bin/cp /usr/bin/sha1sum /mnt/floppy
    	echo "Calculating SHA-1 database"
    	&gt;/mnt/floppy/sha1checksums.txt
    	for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    	do
    	   find $dir -type f | xargs /usr/bin/sha1sum &gt;&gt;/mnt/floppy/sha1checksums-lib.txt
    	done
    	echo "post installation sha1 database calculated"
    fi
    exit 0
de: 
    #!/bin/bash
    /bin/mount /dev/fd0 /mnt/floppy
    trap "/bin/umount /dev/fd0" 0 1 2 3 9 13 15
    if [ ! -f /usr/bin/md5sum ] ; then
    	echo "Kann md5sum nicht finden. Breche ab."
    	exit 1
    fi
    /bin/cp /usr/bin/md5sum /mnt/floppy
    echo "Erstelle MD5-Datenbank"
    >/mnt/floppy/md5checksums.txt
    for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    do
       find $dir -type f | xargs /usr/bin/md5sum &#62;&#62;/mnt/floppy/md5checksums-lib.txt
    done
    echo "MD5-Datenbank (nach der Installation) erstellt"
    if [ ! -f /usr/bin/sha1sum ] ; then
    	echo "Kann sha1sum nicht finden"
            echo "WARNUNG: nur die md5-Datenbank wird gespeichert"
    else
    	/bin/cp /usr/bin/sha1sum /mnt/floppy
    	echo "Erstelle SHA-1-Datenbank"
    	>/mnt/floppy/sha1checksums.txt
    	for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
    	do
    	   find $dir -type f | xargs /usr/bin/sha1sum &#62;&#62;/mnt/floppy/sha1checksums-lib.txt
    	done
    	echo "SHA-1-Datenbank (nach der Installation) erstellt"
    fi
    exit 0

en: Note that the md5sum binary (and sha1sum, if available) is placed on the floppy drive so it can be used later on to check the binaries of the system (just in case it gets trojaned). However, if you want to make sure that you are running a legitimate binary, you might want to either compile a static copy of the md5sum binary and use that one (to prevent a trojaned libc library from interfering with the binary) or to use the snapshot of md5sums only from a clean environment such as a rescue CD-ROM or a Live-CD (to prevent a trojaned kernel from interfering). I cannot stress this enough: if you are on a compromised system you cannot trust its output, see <xref linkend="after-compromise" />.
de: Beachten Sie, dass das Programm md5sum (und sha1sum, falls verfügbar) auch auf der Diskette gesichert werden muss, so dass Sie es später benutzen können, um die anderen Programme Ihres Systems zu prüfen (für den Fall, dass md5sum oder sha1sum einen Trojaner enthalten). Wenn Sie aber sicher sein wollen, dass Sie eine gültige Kopie von md5sum verwenden, sollten Sie eine statische Kopie von md5sum erstellen und diese verwenden (damit wird verhindert, dass eine manipulierte libc-Bibliothek das Programm beeinträchtigt) oder md5sum nur in einer sauberen Umgebung einsetzen, die Sie etwa mit einer Rettungs-CD-ROM oder einer Live-CD erzeugen können (damit wird verhindert, dass ein manipulierter Kernel das Programm beeinflusst). Ich kann es nicht genug betonen: Wenn Sie ein System haben, in das eingebrochen wurde, können Sie den Ausgaben nicht vertrauen. Sehen Sie sich auch <xref linkend="after-compromise"/> an.

en: The snapshot does not include the files under <filename>/var/lib/dpkg/info</filename> which includes the MD5 hashes of installed packages (in files ending with <filename>.md5sums</filename>). You could copy this information along too, however you should notice:
de: Dieser Schnappschuss enthält nicht die Dateien unterhalb von <filename>/var/lib/dpkg/info</filename>, wo MD5-Summen installierter Pakete enthalten sind (die Dateien enden mit <filename>.md5sums</filename>). Sie können diese Informationen zusätzlich kopieren, aber Sie sollten Folgendes beachten:

en: the md5sums files include the md5sum of all files provided by the Debian packages, not just system binaries. As a consequence, that database is bigger (5 Mb versus 600 Kb in a Debian GNU/Linux system with a graphical system and around 2.5 Gb of software installed) and will not fit in small removable media (like a single floppy disk, but would probably fit in a removable USB memory).
de: Die Dateien mit den MD5-Summen enthalten die MD5-Summen aller Dateien, die ein Debian-Paket enthält, nicht nur die der Systemprogramme. Das hat zur Folge, dass diese Datenbank viel größer ist (5 MB statt 600 KB auf einem Debian GNU/Linux System mit grafischen Subsystem und etwa 2,5 GB Software installiert) und nicht auf ein kleines, transportables Medium wie eine Diskette passt, aber wohl auf einen tragbaren USB-Speicher.

en: not all Debian packages provide md5sums for the files installed since it is not (currently) mandated policy. Notice, however, that you can generate the md5sums for all packages using <application>debsums</application> after you've finished the system installation:
de: Nicht alle Debian-Pakete stellen MD5-Summen der installierten Dateien zur Verfügung, da es (derzeit) nicht in der Richtlinie verlangt wird. Sie können allerdings nach der Installation die MD5-Summen aller Pakete mit <application>debsums</application> erstellen:

en: Once the snapshot is done you should make sure to set the medium read-only. You can then store it for backup or place it in the drive and use it to drive a <command>cron</command> check nightly comparing the original md5sums against those on the snapshot.
de: Sobald der Schnappschuss erstellt wurde, sollten Sie sicherstellen, dass das entsprechende Medium schreibgeschützt ist. Sie können es dann als Sicherheitskopie verwenden oder in ein Laufwerk stecken, um jede Nacht mit <command>cron</command> die MD5-Summen des Systems mit Ihrem Schnappschuss zu vergleichen.

en: If you do not want to setup a manual check you can always use any of the integrity systems available that will do this and more, for more information please read <xref linkend="periodic-integrity" />.
de: Wenn Sie keine Überprüfung von Hand einrichten wollen, können Sie immer eines der Integritätssysteme verwenden, die diese Aufgabe und noch vieles mehr für Sie erledigen werden. Weitere Informationen finden Sie unter <xref linkend="periodic-integrity"/>.

en: Other recommendations
de: Andere Empfehlungen

en: Do not use software depending on svgalib
de: Benutzen Sie keine Software, die von svgalib abhängt

en: SVGAlib is very nice for console lovers like me, but in the past it has been proven several times that it is very insecure. Exploits against <command>zgv</command> were released, and it was simple to become root. Try to prevent using SVGAlib programs wherever possible.
de: SVGAlib ist ganz nett für Konsolen-Liebhaber wie mich, aber in der Vergangenheit wurde mehrfach gezeigt, dass es ziemlich unsicher ist. Exploits durch <application>zgv</application> wurden veröffentlicht und es war einfach, Root zu werden. Versuchen Sie die Nutzung von SVGAlib-Programmen wann immer nur möglich zu vermeiden.
