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

en: Securing services running on your system
de: Absichern von Diensten, die auf Ihrem System laufen

en: Services can be secured in a running system in two ways:
de: Dienste knnen auf zwei Arten in einem laufenden System abgesichert werden:

en: Making them only accessible at the access points (interfaces) they need to be in.
de: Sie so einstellen, dass auf sie nur von Zugangspunkten (Interfaces) zugegriffen werden kann, von denen es ntig ist.

en: Configuring them properly so that they can only be used by legitimate users in an authorized manner.
de: Sie so konfigurieren, dass sie nur von legitimierten Benutzern auf autorisierte Art und Weise benutzt werden knnen.

en: Restricting services so that they can only be accessed from a given place can be done by restricting access to them at the kernel (i.e. firewall) level, configure them to listen only on a given interface (some services might not provide this feature) or using some other methods, for example the Linux vserver patch (for 2.4.16) can be used to force processes to use only one interface.
de: Dienste knnen durch Zugriffsbeschrnkungen auf Kernel-Ebene (durch eine Firewall) eingeschrnkt werden, so dass auf sie nur von bestimmten Orten aus zugegriffen werden kann. Konfigurieren Sie sie, so dass sie nur auf einer bestimmten Schnittstelle horchen (einige Dienste bieten diese Fhigkeiten nicht). Oder verwenden Sie eine andere Methode, zum Beispiel den Linux-vserver-Patch (fr 2.4.16), mit dem Prozesse an eine bestimmte Schnittstelle gebunden werden knnen.

en: Regarding the services running from <command>inetd</command> (<command>telnet</command>, <command>ftp</command>, <command>finger</command>, <command>pop3</command>...) it is worth noting that <command>inetd</command> can be configured so that services only listen on a given interface (using <literal>service@ip</literal> syntax) but that's an undocumented feature. One of its substitutes, the <command>xinetd</command> meta-daemon includes a <literal>bind</literal> option just for this matter. See <citerefentry><refentrytitle>ixnetd.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page.
de: Was die Dienste angeht, die von <command>inetd</command> aufgerufen werden (<command>telnet</command>, <command>ftp</command>, <command>finger</command>, <command>pop3</command>, ...), so ist es wert zu erwhnen, dass <command>inetd</command> so konfiguriert werden kann, dass er nur auf eine bestimmte Schnittstelle reagiert (unter Verwendung der <literal>service@ip</literal>-Syntax). Dies ist jedoch eine nicht dokumentierte Eigenschaft. Ein Ersatz, der Meta-Daemon <command>xinetd</command>, kennt eine <literal>bind</literal>-Option nur fr diesen Zweck. Lesen Sie dazu bitte <citerefentry><refentrytitle>ixnetd.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry>.

en: The following sections detail how specific individual services can be configured properly depending on their intended use.
de: Die folgenden Abschnitte gehen detaillierter darauf ein, wie bestimmte Dienste abhngig von der beabsichtigten Benutzung passend konfiguriert werden.

en: Securing ssh
de: Absichern von ssh

en: If you are still running telnet instead of ssh, you should take a break from this manual and change this. Ssh should be used for all remote logins instead of telnet. In an age where it is easy to sniff Internet traffic and get clear-text passwords, you should use only protocols which use cryptography. So, perform an <literal>apt-get install ssh</literal> on your system now.
de: Wenn Sie immer noch telnet statt ssh benutzen, sollten Sie dieses Handbuch kurz beiseitelegen und dies ndern. Ssh sollte anstelle von telnet fr alle Anmeldungen aus der Ferne benutzt werden. In einer Zeit, in der es leicht ist, Internet-Verkehr mitzuschnffeln und an Klartext-Passwrter heranzukommen, sollten Sie lediglich Protokolle verwenden, die Verschlsselung benutzen. Also fhren Sie sofort ein <literal>apt-get install ssh</literal> auf Ihrem System aus.

en: Encourage all the users on your system to use ssh instead of telnet, or even better, uninstall telnet/telnetd. In addition you should avoid logging into the system using ssh as root and use alternative methods to become root instead, like <command>su</command> or <command>sudo</command>. Finally, the <filename>sshd_config</filename> file, in <filename>/etc/ssh</filename>, should be modified to increase security as well:
de: Ermuntern Sie alle Benutzer Ihres Systems, ssh anstelle von telnet zu benutzen, oder noch besser: deinstallieren Sie telnet/telnetd. Zustzlich sollten Sie es vermeiden, sich mit ssh als Root einzuloggen, und lieber andere Methoden benutzen, um Root zu werden. Wie zum Beispiel <command>su</command> oder <command>sudo</command>. Schlielich sollten Sie noch die Datei <filename>/etc/ssh/sshd_config</filename> fr mehr Sicherheit modifizieren:

en: <literal>ListenAddress 192.168.0.1</literal> Have ssh listen only on a given interface, just in case you have more than one (and do not want ssh available on it) or in the future add a new network card (and don't want ssh connections from it).
de: Lassen Sie ssh nur auf einer bestimmten Schnittstelle lauschen, falls Sie mehrere haben (und ssh nicht auf allen verfgbar sein soll) oder Sie in Zukunft eine neue Netzwerkkarte einbauen werden (und keine ssh-Verbindungen auf ihr erlauben wollen).

en: <literal>PermitRootLogin no</literal> Try not to permit Root Login wherever possible. If anyone wants to become root via ssh, now two logins are needed and the root password cannot be brute forced via SSH.
de: Versuchen Sie so wenige Anmeldungen als Root wie mglich zu erlauben. Wenn nun jemand Root werden will, bentigt er zwei Anmeldungen. So kann das Root-Passwort nicht so leicht ausgetestet werden.

en: <literal>Port 666</literal> or <literal>ListenAddress 192.168.0.1:666</literal> Change the listen port, so the intruder cannot be completely sure whether a sshd daemon runs (be forewarned, this is security by obscurity).
de: <command>Port 666</command> oder <command>ListenAddress 192.168.0.1:666</command> verändern Sie den Port, auf dem ssh lauscht, so dass ein Eindringling nicht wirklich sicher sein kann, ob ein sshd-Daemon läuft (aber beachten Sie, dass dies lediglich »Sicherheit durch Verschleierung« ist).

en: <literal>PermitEmptyPasswords no</literal> Empty passwords make a mockery of system security.
de: <literal>PermitEmptyPasswords no</literal> Nicht gesetzte Passwörter spotten jeglicher Systemsicherheit.

en: <literal>AllowUsers alex ref me@somewhere</literal> Allow only certain users to have access via ssh to this machine. <literal>user@host</literal> can also be used to restrict a given user from accessing only at a given host.
de: Erlauben Sie nur bestimmten Benutzern sich via ssh auf der Maschine anzumelden. <literal>benutzer@host</literal> kann auch verwendet werden, um einen bestimmten Benutzer dazu zu zwingen, nur von einem bestimmten Host aus zuzugreifen.

en: <literal>AllowGroups wheel admin</literal> Allow only certain group members to have access via ssh to this machine. AllowGroups and AllowUsers have equivalent directives for denying access to a machine. Not surprisingly they are called "DenyUsers" and "DenyGroups".
de: Erlauben Sie nur bestimmten Gruppenmitgliedern sich via ssh auf der Maschine einzuloggen. AllowGroups und AllowUsers haben quivalente Verfahrensweisen, um den Zugang zu der Maschine zu verwehren. Es wird nicht berraschen, dass es sich hierbei um DenyUsers und DenyGroups handelt.

en: <literal>PasswordAuthentication yes</literal> It is completely your choice what you want to do. It is more secure to only allow access to the machine from users with ssh-keys placed in the <filename>~/.ssh/authorized_keys</filename> file. If you want so, set this one to "no".
de: Es ist allein Ihre Wahl, was Sie hier eintragen. Es ist sicherer, Zugriff nur Benutzern zu erlauben, die ssh-Schlssel in der Datei <filename>~/.ssh/authorized_keys</filename> haben. Wenn Sie dies wollen, setzen Sie es auf no.

en: Disable any form of authentication you do not really need, if you do not use, for example <literal>RhostsRSAAuthentication</literal>, <literal>HostbasedAuthentication</literal>, <literal>KerberosAuthentication</literal> or <literal>RhostsAuthentication</literal> you should disable them, even if they are already by default (see the manpage <citerefentry><refentrytitle>sshd_config</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page).
de: Schalten Sie jede Art der Authentifizierung ab, die Sie nicht wirklich bentigen, zum Beispiel <literal>RhostsRSAAuthentication</literal>, <literal>HostbasedAuthentication</literal>, <literal>KerberosAuthentication</literal> oder <literal>RhostsAuthentication</literal>. Sie sollten sie abschalten, auch wenn sie es standardmig bereits sind (siehe dazu die Handbuch-Seite <citerefentry><refentrytitle>sshd_config</refentrytitle> <manvolnum>5</manvolnum></citerefentry>).

en: <literal>Protocol 2</literal> Disable the protocol version 1, since it has some design flaws that make it easier to crack passwords. For more information read <ulink name="a paper regarding ssh protocol problems" url="http://earthops.net/ssh-timing.pdf" /> or the <ulink name="Xforce advisory" url="http://xforce.iss.net/static/6449.php" />.
de: Deaktivieren Sie die Protokollversion 1, da diese einige Designschwächen hat, die es einfacher zu machen, Passwörter zu knacken. Für weitere Informationen lesen Sie <ulink url="http://earthops.net/ssh-timing.pdf" name="a paper regarding ssh protocol problems" /> oder das  <ulink url="http://xforce.iss.net/static/6449.php" name="Xforce advisory" />.

en: <literal>Banner <filename>/etc/<replaceable>some_file</replaceable></filename></literal> Add a banner (it will be retrieved from the file) to users connecting to the ssh server. In some countries sending a warning before access to a given system about unauthorized access or user monitoring should be added to have legal protection.
de: Fgen Sie einen Bannertext (er wird aus der Datei bezogen) fr Benutzer, die sich mit dem ssh-Server verbinden, hinzu. In einigen Lndern sollte das Senden einer Warnung ber unautorisierten Zugriff oder Benutzerberwachung vor dem Zugriff zu einem bestimmten System erfolgen, um sich rechtlich abzusichern.

en: You can also restrict access to the ssh server using <literal>pam_listfile</literal> or <literal>pam_wheel</literal> in the PAM control file. For example, you could keep anyone not listed in <filename>/etc/loginusers</filename> away by adding this line to <filename>/etc/pam.d/ssh</filename>:
de: Sie knnen den Zugriff auf den ssh-Server auch mittels <literal>pam_listfile</literal> oder <literal>pam_wheel</literal> in der PAM-Kontrolldatei beschrnken. Zum Beispiel knnen Sie jeden abhalten, der nicht in der Datei <filename>/etc/loginusers</filename> aufgelistet ist, durch Hinzufgen folgender Zeile zu <filename>/etc/pam.d/ssh</filename>:

en: As a final note, be aware that these directives are from a OpenSSH configuration file. Right now, there are three commonly used SSH daemons, ssh1, ssh2, and OpenSSH by the OpenBSD people. Ssh1 was the first ssh daemon available and it is still the most commonly used (there are rumors that there is even a Windows port). Ssh2 has many advantages over ssh1 except it is released under a closed-source license. OpenSSH is completely free ssh daemon, which supports both ssh1 and ssh2. OpenSSH is the version installed on Debian when the package <application>ssh</application> is chosen.
de: Abschlieend beachten Sie bitte, dass diese Direktiven von einer OpenSSH-Konfigurationsdatei stammen. Derzeit gibt es drei weit verbreitete ssh-Daemonen: ssh1, ssh2 und OpenSSH von den OpenBSD-Leuten. Ssh1 war der erste verfgbare ssh-Daemon und er ist noch der weit verbreitetste (Gerchten zufolge gibt es sogar eine Windows-Version). Ssh2 hat gegenber ssh1 viele Vorteile, abgesehen davon, dass es unter einer unfreien Lizenz verffentlicht wurde. OpenSSH ist ein vllig freier ssh-Daemon, der sowohl ssh1 als auch ssh2 untersttzt. OpenSSH ist die Version, die installiert wird, wenn Sie auf Debian das Paket <application>ssh</application> auswhlen.

en: Chrooting ssh
de: SSH in ein Chroot-Gefngnis einsperren

en: Currently OpenSSH does not provide a way to chroot automatically users upon connection (the commercial version does provide this functionality). However there is a project to provide this functionality for OpenSSH too, see <ulink url="http://chrootssh.sourceforge.net" />, it is not currently packaged for Debian, though. You could use, however, the <filename>pam_chroot</filename> module as described in <xref linkend="user-restrict" />.
de: Zurzeit bietet OpenSSH keine Mglichkeit, automatisch Benutzer bei der Verbindung in ein Chroot-Gefngnis einzusperren (die kommerzielle Version bietet diese Funktionalitt). Wie dem auch sei, es gibt auch ein Projekt, das diese Funktionalitt fr OpenSSH anbietet, vergleiche <ulink url="http://chrootssh.sourceforge.net"/>. Es ist aber aktuell noch nicht als Debianpaket verfgbar. Sie sollten stattdessen das <filename>pam_chroot</filename>-Modul, wie in <xref linkend="user-restrict"/> beschrieben, verwenden.

en: In <xref linkend="chroot-ssh-env" /> you can find several options to make a chroot environment for SSH.
de: In <xref linkend="chroot-ssh-env"/> knnen Sie verschiedene Optionen finden, um Chroot-Umgebungen fr SSH zu erstellen.

en: Ssh clients
de: Ssh-Clients

en: If you are using an SSH client against the SSH server you must make sure that it supports the same protocols that are enforced on the server. For example, if you use the <application>mindterm</application> package, it only supports protocol version 1. However, the sshd server is, by default, configured to only accept version 2 (for security reasons).
de: Wenn Sie einen SSH-Client mit einem SSH-Server verwenden, mssen Sie sicherstellen, dass er die selben Protokolle, die vom Server erzwungen werden, untersttzt. Wenn Sie beispielsweise das Paket <application>mindterm</application> verwenden, untersttzt dies nur Protokollversion 1. Jedoch ist der sshd-Server standardmig so konfiguriert, nur Version 2 (aus Sicherheitsgrnden) zu akzeptieren.

en: Disallowing file transfers
de: Verbieten der bertragung von Dateien

en: If you do <emphasis>not</emphasis> want users to transfer files to and from the ssh server you need to restrict access to the <command>sftp-server</command> <emphasis>and</emphasis> the <command>scp</command> access. You can restrict <command>sftp-server</command> by configuring the proper <literal>Subsystem</literal> in the <filename>/etc/ssh/sshd_config</filename>.
de: Wenn Sie <emphasis>nicht</emphasis> mchten, das Benutzer Dateien zum und vom ssh-Server bertragen, mssen Sie den Zugang zu <command>sftp-server</command> <emphasis>und</emphasis> zu <command>scp</command> einschrnken. Sie knnen dies fr <command>sftp-server</command> tun, indem Sie den korrekten <literal>Subsystem</literal>-Wert in <filename>/etc/ssh/sshd_config</filename> eintragen.

en: You can also chroot users (using <application>libpam-chroot</application> so that, even if file transfer is allowed, they are limited to an environment which does not include any system files.
de: Sie knnen auch Benutzer mittels <application>libpam-chroot</application> in eine Chroot-Umgebung einsperren, so dass sie, selbst wenn Dateitransfers erlaubt sind, auf eine bestimmte Umgebung festgelegt sind, die keine Systemdateien enthlt.

en: Restricing access to file transfer only
de: Beschrnkung des Zugangs auf Dateientransfers

en: You might want to restrict access to users so that they can only do file transfers and cannot have interactive shells. In order to do this you can either:
de: Sie knnen den Zugang von Benutzern der Gestalt beschrnken, dass sie nur Dateien bertragen knnen, aber keine interaktive Shell erhalten. Dies knnen Sie mit den folgenden Methoden erreichen:

en: disallow users from login to the ssh server (as described above either through the configuration file or PAM configuration).
de: den Benutzern verbieten, sich auf dem ssh-Server einzuloggen (wie oben beschrieben entweder durch die Konfigurationsdatei oder die PAM-Konfiguration), oder

en: give users a restricted shell such as <application>scponly</application> or <application>rssh</application>. These shells restrict the commands available to the users so that they are not provided any remote execution priviledges.
de: den Benutzern nur eine eingeschrnkte Shell wie <application>scponly</application> oder <application>rssh</application> zuweisen. Diese Shells schrnken die Befehle ein, die den Benutzern zur Verfgung stehen, so dass sie auf dem entfernten Rechner keine Befehle ausfhren knnen.

en: Securing Squid
de: Absichern von Squid

en: The recommended minimum configuration (provided with the package) is shown below:
de: Die empfohlene minimale Konfiguration (mit dem Paket vertrieben) sieht wie folgt aus:

en: 
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 80          # http
    acl Safe_ports port 21          # ftp
    acl Safe_ports port 443 563     # https, snews
    acl Safe_ports port 70          # gopher
    acl Safe_ports port 210         # wais
    acl Safe_ports port 1025-65535  # unregistered ports
    acl Safe_ports port 280         # http-mgmt
    acl Safe_ports port 488         # gss-http
    acl Safe_ports port 591         # filemaker
    acl Safe_ports port 777         # multiling http
    acl Safe_ports port 901         # SWAT
    acl purge method PURGE
    acl CONNECT method CONNECT
    (...)
    # Only allow cachemgr access from localhost
    http_access allow manager localhost
    http_access deny manager
    # Only allow purge requests from localhost
    http_access allow purge localhost
    http_access deny purge
    # Deny requests to unknown ports
    http_access deny !Safe_ports
    # Deny CONNECT to other than SSL ports
    http_access deny CONNECT !SSL_ports
    #
    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
    #
    http_access allow localhost
    # And finally deny all other access to this proxy
    http_access deny all
    #Default:
    # icp_access deny all
    #
    #Allow ICP queries from everyone
    icp_access allow all
de: 
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443 563
    acl Safe_ports port 80          # http
    acl Safe_ports port 21          # ftp
    acl Safe_ports port 443 563     # https, snews
    acl Safe_ports port 70          # gopher
    acl Safe_ports port 210         # wais
    acl Safe_ports port 1025-65535  # unregistered ports
    acl Safe_ports port 280         # http-mgmt
    acl Safe_ports port 488         # gss-http
    acl Safe_ports port 591         # filemaker
    acl Safe_ports port 777         # multiling http
    acl Safe_ports port 901         # SWAT
    acl purge method PURGE
    acl CONNECT method CONNECT
    (...)
    # Erlaube nur cachemgr Zugriff von localhost
    http_access allow manager localhost
    http_access deny manager
    # Erlaube nur purge Anfragen von localhost
    http_access allow purge localhost
    http_access deny purge
    # Verbiete Anfragen zu unbekannten Ports
    http_access deny !Safe_ports
    # Verbiete CONNECT zu anderen als SSL-Ports
    http_access deny CONNECT !SSL_ports
    #
    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
    #
    http_access allow localhost
    # And finally deny all other access to this proxy
    http_access deny all
    #Default:
    # icp_access deny all
    #
    #Allow ICP queries from everyone
    icp_access allow all

en: You should also configure Squid based on your system resources, including cache memory (option <literal>cache_mem</literal>), location of the cached files and the amount of space they will take up on disk (option <literal>cache_dir</literal>).
de: Sie sollten Squid auch entsprechend Ihren System-Ressourcen konfigurieren einschlielich des Cache-Speichers (Option <literal>cache_mem</literal>), der Lage der zwischengespeicherten Dateien und der verwendeten Speichermenge auf der Platte (Option <literal>cache_dir</literal>).

en: Notice that, if not properly configured, someone may relay a mail message through Squid, since the HTTP and SMTP protocols are designed similarly. Squid's default configuration file denies access to port 25. If you wish to allow connections to port 25 just add it to Safe_ports lists. However, this is <emphasis>NOT</emphasis> recommended.
de: Beachten Sie, dass es bei ungeeigneter Konfiguration vorkommen kann, dass jemand eine Mail ber Squid weiterleitet, da die Protokolle HTTP und SMTP ein hnliches Design haben. Squids Standardkonfiguration verweigert Zugriffe auf Port 25. Wenn Sie Verbindungen an Port 25 erlauben wollen, fgen Sie ihn einfach zu der Safe_ports-Liste hinzu. Dies ist aber <emphasis>NICHT</emphasis> empfohlen.

en: Setting and configuring the proxy/cache server properly is only part of keeping your site secure. Another necessary task is to analyze Squid's logs to assure that all things are working as they should be working. There are some packages in Debian GNU/Linux that can help an administrator to do this. The following packages are available in Debian 3.0 and Debian 3.1 (sarge):
de: Passendes Aufsetzen und Konfigurieren des Proxy/Cache-Servers ist nur ein Teil der Absicherung Ihrer Site. Eine andere notwendige Aufgabe ist es, Squids Log-Dateien zu analysieren, um sicher zu gehen, dass alles so arbeitet, wie es soll. Es gibt ein paar Pakete in Debian GNU/Linux, die einem Administrator hierbei helfen knnen. Die folgenden Pakete sind in Debian 3.0 (Woody) und Debian 3.1 (Sarge) verfgbar:

en: <application>calamaris</application> - Log analyzer for Squid or Oops proxy log files.
de: <application>calamaris</application> &ndash; Log-Datei-Analysator fr Squid- oder Oops-Proxy-Log-Dateien

en: <application>modlogan</application> - A modular logfile analyzer.
de: <application>modlogan</application> &ndash; ein modularer Log-Datei-Analysator

en: <application>sarg</application> - Squid Analysis Report Generator.
de: <application>sarg</application> &ndash; Squid Analysis Report Generator

en: <application>squidtaild</application> - Squid log monitoring program.
de: <application>squidtaild</application> &ndash; Squid-Log-Beobachtungsprogramm

en: Securing FTP
de: Absichern von FTP

en: If you really have to use FTP (without wrapping it with sslwrap or inside a SSL or SSH tunnel), you should chroot ftp into the ftp users' home directory, so that the user is unable to see anything else than their own directory. Otherwise they could traverse your root file system just like if they had a shell in it. You can add the following line in your <filename>proftpd.conf</filename> in your global section to enable this chroot feature:
de: Wenn Sie wirklich FTP benutzen mssen (ohne ihn mit sslwrap zu umhllen oder innerhalb eines SSL- oder SSH-Tunnels), sollten Sie ftp in das Home-Verzeichnis der FTP-Benutzer mit chroot einsperren, so dass diese nichts anderes sehen knnen als ihr eigenes Verzeichnis. Andernfalls knnen sie die Wurzel Ihres Dateisystems durchforsten, als htten sie Shell-Zugriff darauf. Sie knnen die folgende Zeile in Ihre <filename>proftpd.conf</filename>-Datei im globalen Abschnitt hinzufgen, um die chroot-Fhigkeiten zu nutzen:

en: Restart ProFTPd by <literal>/etc/init.d/proftpd restart</literal> and check whether you can escape from your homedir now.
de: Starten Sie ProFTPd neu, indem Sie <literal>/etc/init.d/proftpd restart</literal> eingeben, und prfen Sie, ob Sie noch aus Ihrem Home-Verzeichnis heraus kommen knnen.

en: To prevent ProFTPd DoS attacks using ../../.., add the following line in <filename>/etc/proftpd.conf</filename>: <literal>DenyFilter \*.*/</literal>
de: Um ProFTPd-DoS-Angriffe durch ../../../ zu verhindern, fgen Sie die folgende Zeile Ihrer <filename>/etc/proftpd.conf</filename> hinzu: <literal>DenyFilter \*.*/</literal>

en: Always remember that FTP sends login and authentication passwords in clear text (this is not an issue if you are providing an anonymous public service) and there are better alternatives in Debian for this. For example, <command>sftp</command> (provided by <application>ssh</application>). There are also free implementations of SSH for other operating systems: <ulink name="putty" url="http://www.chiark.greenend.org.uk/~sgtatham/putty/" /> and <ulink name="cygwin" url="http://www.cygwin.com" /> for example.
de: Vergessen Sie nicht, dass FTP Login- und Authentifizierungs-Passwort als Klartext sendet (dies ist kein Problem, wenn Sie einen anonymen, ffentlichen Dienst anbieten) und es gibt bessere Alternativen in Debian hierzu. Zum Beispiel <command>sftp</command> (aus dem Paket <application>ssh</application>). Es gibt auch freie Implementierungen von SSH fr andere Betriebssysteme, zum Beispiel <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/putty/" name="putty"/> oder <ulink url="http://www.cygwin.com" name="cygwin"/>.

en: However, if you still maintain the FTP server while making users access through SSH you might encounter a typical problem. Users accessing anonymous FTP servers inside SSH-secured systems might try to log in the <emphasis>FTP server</emphasis>. While the access will be refused, the password will nevertheless be sent through the net in clear form. To avoid that, ProFTPd developer TJ Saunders has created a patch that prevents users feeding the anonymous FTP server with valid SSH accounts. More information and patch available at: <ulink name="ProFTPD Patches" url="http://www.castaglia.org/proftpd/#Patches" />. This patch has been reported to Debian too, see <ulink name="Bug #145669" url="http://bugs.debian.org/145669" />.
de: Wenn Sie dennoch einen FTP-Server verwalten, whrend Sie den Benutzern Zugriff via SSH gewhren, knnten Sie auf ein typisches Problem stoen. Benutzer, die innerhalb eines mit SSH abgesicherten Systems auf einen anonymen FTP-Server zugreifen wollen, knnen versuchen, sich auf dem <emphasis>FTP-Server</emphasis> einzuloggen. Whrend der Zugriff verweigert werden wird, wird das Passwort trotzdem als Klartext ber das Netz gesendet. Um dies zu verhindern, hat der ProFTPd-Entwickler TJ Saunders einen Patch erstellt, der verhindert, dass Benutzer den anonymen FTP-Server mit gltigen SSH-Zugangsdaten fttern. Mehr Informationen und den Patch finden Sie unter: <ulink url="http://www.castaglia.org/proftpd/#Patches" name="ProFTPD Patches"/>. Dieser Patch wurde auch an Debian gesandt, vergleiche <ulink url="http://bugs.debian.org/145669" name="Fehler #145669"/>.

en: Securing access to the X Window System
de: Zugriff auf das X-Window-System absichern

en: Today, X terminals are used by more and more companies where one server is needed for a lot of workstations. This can be dangerous, because you need to allow the file server to connect to the clients (X server from the X point of view. X switches the definition of client and server). If you follow the (very bad) suggestion of many docs, you type <literal>xhost +</literal> on your machine. This allows any X client to connect to your system. For slightly better security, you can use the command <literal>xhost +hostname</literal> instead to only allow access from specific hosts.
de: Heutzutage werden X-Terminals in immer mehr Unternehmen benutzt, wo ein Server fr viele Arbeitspltze bentigt wird. Dies kann gefhrlich sein, weil Sie dem Datei-Server erlauben mssen, sich mit den X-Clients zu verbinden (X-Server aus Sicht von X. X vertauscht die Definition von Client und Server). Wenn Sie dem (sehr schlechten) Vorschlag von vielen Dokumentationen folgen, geben Sie auf Ihrer Maschine <literal>xhost +</literal> ein. Dies erlaubt jedem X-Client, sich mit Ihrem System zu verbinden. Fr etwas bessere Sicherheit knnen Sie stattdessen das Kommando <literal>xhost +Rechnername</literal> verwenden, um den Zugriff auf bestimmte Rechner zu begrenzen.

en: A much more secure solution, though, is to use ssh to tunnel X and encrypt the whole session. This is done automatically when you ssh to another machine. For this to work, you have to configure both the ssh client and the ssh server. On the ssh client, <literal>ForwardX11</literal> should be set to <literal>yes</literal> in <filename>/etc/ssh/ssh_config</filename>. On the ssh server, <literal>X11Forwarding</literal> should be set to <literal>yes</literal> in <filename>/etc/ssh/sshd_config</filename> and the package <application>xbase-clients</application> should be installed because the ssh server uses <filename>/usr/X11R6/bin/xauth</filename> (<filename>/usr/bin/xauth</filename> on Debian unstable) when setting up the pseudo X display. In times of SSH, you should drop the xhost based access control completely.
de: Allerdings ist es eine viel sicherere Lsung, SSH zu benutzen, um X zu tunneln und die gesamte Sitzung zu verschlsseln. Dies geschieht automatisch, wenn Sie sich an einer anderen Maschine via ssh anmelden. Damit dies funktioniert, mssen Sie den ssh-Client und den ssh-Server konfigurieren. Auf dem ssh-Client muss <literal>ForwardX11</literal> in <filename>/etc/ssh/ssh_config</filename> auf <literal>yes</literal> gesetzt sein. Auf dem ssh-Server muss <literal>X11Forwarding</literal> in <filename>/etc/ssh/sshd_config</filename> auf <literal>yes</literal> gesetzt sein und das Paket <application>xbase-clients</application> muss installiert sein. Dies liegt daran, dass der SSH-Server <filename>/usr/X11R6/bin/xauth</filename> (bei Debian-Unstable (<filename>/usr/bin/xauth</filename>) verwendet, wenn er das Pseudo-X-Display aufsetzt. In den Zeiten von SSH sollten Sie die xhost-basierte Zugriffskontrolle komplett ber Bord werfen.

en: For best security, if you do not need X access from other machines, switch off the binding on TCP port 6000 simply by typing:
de: Wenn Sie keinen X-Zugriff von anderen Maschinen bentigen, ist es fr die Sicherheit am besten, die Bindung auf dem TCP-Port 6000 abzuschalten, indem Sie einfach Folgendes eingeben:

en: This is the default behavior in Xfree 4.1.0 (the Xserver provided in Debian 3.0 and 3.1). If you are running Xfree 3.3.6 (i.e. you have Debian 2.2 installed) you can edit <filename>/etc/X11/xinit/xserverrc</filename> to have it something along the lines of:
de: Dies ist das Standard-Verhalten unter XFree 4.1.0 (dem Xserver aus Debian 3.0 und 3.1). Wenn Sie XFree 3.3.6 laufen lassen (d.h. wenn Sie Debian 2.2 benutzen), knnen Sie <filename>/etc/X11/xinit/xserverrc</filename> editieren, damit Sie etwas erhalten wie:

en: If you are using XDM set <filename>/etc/X11/xdm/Xservers</filename> to: <literal>:0 local /usr/bin/X11/X vt7 -dpi 100 -nolisten tcp</literal>. If you are using Gdm make sure that the <literal>DisallowTCP=true</literal> option is set in the <filename>/etc/gdm/gdm.conf</filename> (which is the default in Debian). This will basically append <literal>-nolisten tcp</literal> to every X command line <footnote><para> Gdm will <emphasis>not</emphasis> append <literal>-nolisten tcp</literal> if it finds a <literal>-query</literal> or <literal>-indirect</literal> on the command line since the query wouldn't work.</para></footnote>.
de: Wenn Sie XDM benutzen, setzen Sie <filename>/etc/X11/xdm/Xservers</filename> auf <literal>:0 local /usr/bin/X11/X vt7 -dpi 100 -nolisten tcp</literal>. Wenn Sie GDM benutzen, stellen Sie sicher, dass die Option <literal>DisallowTCP=true</literal> in <filename>/etc/gdm/gdm.conf</filename> eingetragen ist (was standardmig unter Debian der Fall ist). Dies wird grundstzlich an jede X-Befehlszeile <literal>-nolisten tcp</literal> anhngen <footnote><para> GDM wird <literal>-nolisten tcp</literal> <emphasis>nicht</emphasis> anhngen, wenn es <literal>-query</literal> oder <literal>-indirect</literal> in der Befehlszeile findet, da sonst die Anfrage nicht funktionieren wrde.</para></footnote>.

en: You can also set the default's system timeout for <command>xscreensaver</command> locks. Even if the user can override it, you should edit the <filename>/etc/X11/app-defaults/XScreenSaver</filename> configuration file and change the lock line:
de: Sie knnen auerdem eine standardmige Zeitgrenze fr die <command>xscreensaver</command>-Bildschirmsperre setzen. Auch wenn der Benutzer sie aufheben kann, sollten Sie die Konfigurationsdatei <filename>/etc/X11/app-defaults/XScreenSaver</filename> editieren und die lock-Zeile von

en: (which is the default in Debian) to:
de: (das ist der Standardwert unter Debian) auf Folgendes ndern:

en: Read more on X Window security in <ulink name="XWindow-User-HOWTO" url="http://www.tldp.org/HOWTO/XWindow-User-HOWTO.html" /> (<filename>/usr/share/doc/HOWTO/en-txt/XWindow-User-HOWTO.txt.gz</filename>).
de: Lesen Sie mehr zur Sicherheit von X Window in <ulink name="XWindow-User-HOWTO" url="http://www.tldp.org/HOWTO/XWindow-User-HOWTO.html"/> (<filename>/usr/share/doc/HOWTO/en-txt/XWindow-User-HOWTO.txt.gz</filename>).

en: Check your display manager
de: berprfen Ihres Display-Managers

en: If you only want to have a display manager installed for local usage (having a nice graphical login, that is), make sure the XDMCP (X Display Manager Control Protocol) stuff is disabled. In XDM you can do this with this line in <literal>/etc/X11/xdm/xdm-config</literal>:
de: Wenn Sie einen Display-Manager lediglich zur lokalen Nutzung (fr ein schnes graphisches Anmeldefenster) haben wollen, gehen Sie sicher, dass der XDMCP (X Display Manager Control Protocol) Krempel abgeschaltet ist. Unter XDM knnen Sie dies mit der folgenden Zeile in <literal>/etc/X11/xdm/xdm-config</literal> erreichen:

en: For GDM there should be in your gdm.conf:
de: Fr GDM mssen Sie in Ihre gdm.conf Folgendes eintragen:

en: Normally, all display managers are configured not to start XDMCP services per default in Debian.
de: Normalerweise sind unter Debian alle Display-Manager so konfiguriert, dass sie standardmig keine XDMCP-Dienste starten.

en: Securing printing access (the lpd and lprng issue)
de: Absichern des Druckerzugriffs (die lpd- und lprng-Problematik)

en: Imagine, you arrive at work, and the printer is spitting out endless amounts of paper because someone is DoSing your line printer daemon. Nasty, isn't it?
de: Stellen Sie sich vor, Sie kommen zur Arbeit und der Drucker spuckt endlose Mengen von Papier aus, weil jemand eine DoS-Attacke gegen Ihren Drucker-Daemon durchfhrt. Unangenehm, oder?

en: In any UNIX printing architecture, there has to be a way to get the client's data to the host's print server. In traditional <command>lpr</command> and <command>lp</command>, the client command copies or symlinks the data into the spool directory (which is why these programs are usually SUID or SGID).
de: In jeder UNIX-Druck-Architektur muss es einen Weg geben, um die Daten des Clients zu dem Druck-Server zu schicken. Traditionell machen dies <command>lpr</command> und <command>lp</command> so, dass das Client-Kommando die Daten in das Spool-Verzeichnis kopiert oder symbolisch verlinkt (weshalb diese Programme normalerweise SUID oder SGID sind).

en: In order to avoid any issues you should keep your printer servers especially secure. This means you need to configure your printer service so it will only allow connections from a set of trusted servers. In order to do this, add the servers you want to allow printing to your <filename>/etc/hosts.lpd</filename>.
de: Um jede Gefahr zu vermeiden, sollen Sie Ihren Druck-Server besonders sicher halten. Dies heit, dass Sie Ihren Druckdienst so konfigurieren mssen, dass er nur Auftrge von vertrauenswrdigen Rechnern annimmt. Hierzu mssen Sie die Rechner, von denen Sie Druckauftrge entgegennehmen mchten, in die Datei <filename>/etc/hosts.lpd</filename> eintragen.

en: However, even if you do this, the <command>lpr</command> daemon accepts incoming connections on port 515 of any interface. You should consider firewalling connections from networks/hosts which are not allowed printing (the <command>lpr</command> daemon cannot be limited to listen only on a given IP address).
de: Allerdings akzeptiert der <command>lpr</command>-Daemon auch, wenn Sie dies getan haben, Verbindungen auf Port 515 auf jeder Schnittstelle. Sie sollten sich berlegen, ob Sie Verbindungen von Netzwerken/Rechnern, die nicht drucken drfen, mittels Firewall blocken wollen (der <command>lpr</command>-Daemon kann nicht so konfiguriert werden, dass er nur auf eine bestimmte IP-Adresse lauscht).

en: <command>Lprng</command> should be preferred over <command>lpr</command> since it can be configured to do IP access control. And you can specify which interface to bind to (although somewhat weirdly).
de: Sie sollten <command>Lprng</command> gegenber <command>lpr</command> vorziehen, da er so konfiguriert werden kann, dass er Zugangskontrolle ber IP beherrscht. Und Sie knnen spezifizieren, auf welche Schnittstelle er sich binden soll (wenn auch etwas sonderbar).

en: If you are using a printer in your system, but only locally, you will not want to share this service over a network. You can consider using other printing systems, like the one provided by <application>cups</application> or <ulink name="PDQ" url="http://pdq.sourceforge.net/" /> which is based on user permissions of the <filename>/dev/lp0</filename> device.
de: Wenn Sie Ihren Drucker nur lokal auf Ihrem System benutzen, werden Sie diesen Dienst nicht ber ein Netzwerk anbieten wollen. Sie sollten dann berlegen, ein anderes Druck-System, wie zum Beispiel das aus dem Paket <application>cups</application> oder <ulink name="PDQ" url="http://pdq.sourceforge.net/"/>, das auf den Zugriffsrechten des Gertes <filename>/dev/lp0</filename> beruht, einzusetzen.

en: In <application>cups</application>, the print data is transferred to the server via the HTTP protocol. This means the client program doesn't need any special privileges, but does require that the server is listening on a port somewhere.
de: Bei <application>cups</application> werden die Druckauftrge mit dem HTTP-Protokoll zum Server bertragen. Dadurch muss der Client nicht ber spezielle Privilegien verfgen, aber dies erfordert, dass der Server auf irgendeinem Port lauscht.

en: However, if you want to use <command>cups</command>, but only locally, you can configure it to bind to the loopback interface by changing <filename>/etc/cups/cupsd.conf</filename>:
de: Wenn Sie <command>cups</command> jedoch nur lokal benutzen mchten, knnen Sie ihn so konfigurieren, dass er nur auf der Loopback-Schnittstelle lauscht, indem Sie Folgendes in Ihrer <filename>/etc/cups/cupsd.conf</filename> ndern:

en: There are many other security options like allowing or denying networks and hosts in this config file. However, if you do not need them you might be better off just limiting the listening port. <command>Cups</command> also serves documentation through the HTTP port, if you do not want to disclose potential useful information to outside attackers (and the port is open) add also:
de: Es gibt noch andere Sicherheitsoptionen in dieser Konfigurationsdatei, wie zum Beispiel das Erlauben oder Verweigern von Netzwerken oder Rechnern. Wenn Sie sie allerdings nicht bentigen, belassen Sie es am besten dabei, einfach nur den Port, auf dem gelauscht wird, einzuschrnken. <command>Cups</command> liefert auch Dokumentation ber den HTTP-Port. Wenn Sie diese potenziell ntzlichen Informationen einem Angreifer von auerhalb nicht enthllen wollen (und der Port offen ist), fgen Sie auerdem Folgendes hinzu:

en: This configuration file can be modified to add some more features including SSL/TLS certificates and crypto. The manuals are available at http://localhost:631/ or at <ulink url="http://cups.org" />.
de: Die Konfigurationsdatei kann so angepasst werden, dass zustzliche Fhigkeiten einschlielich SSL- und TLS-Zertifikate oder Verschlsselung mglich werden. Die Handbcher finden Sie unter http://localhost:631/ oder <ulink url="http://cups.org"/>.

en: Securing the mail service
de: Absichern des Mail-Dienstes

en: If your server is not a mailing system, you do not really need to have a mail daemon listening for incoming connections, but you might want local mail delivered in order, for example, to receive mail for the root user from any alert systems you have in place.
de: Wenn Ihr Server kein Mail-System ist, mssen Sie nicht wirklich einen Mail-Daemon haben, der auf eingehende Verbindungen reagiert. Aber Sie wollen lokale Mails ausliefern, um beispielsweise Mails an den Root-User von irgendwelchen Alarmsystemen zu erhalten.

en: If you have <command>exim</command> you do not need the daemon to be working in order to do this since the standard <command>cron</command> job flushes the mail queue. See <xref linkend="disableserv" /> on how to do this.
de: Wenn Sie <command>exim</command> haben, mssen Sie den Daemon nicht laufen lassen, um dies zu erreichen, da der Standard-<command>cron</command>-Job die Mails abarbeitet. Sehen Sie in <xref linkend="disableserv"/>, wie man dies erledigt.

en: Configuring a Nullmailer
de: Konfiguration eines Nullmailers

en: You might want to have a local mailer daemon so that it can relay the mails sent locally to another system. This is common when you have to administer a number of systems and do not want to connect to each of them to read the mail sent locally. Just as all logging of each individual system can be centralized by using a central syslog server, mail can be sent to a central mailserver.
de: Sie brauchen vielleicht einen lokalen Mail-Daemon, damit er die Mails, die vom lokalen Rechner zu einem anderen System geschickt wurden, versenden kann. Dies ist blich, wenn Sie eine Anzahl von Systemen zu administrieren haben und nicht zu jedem von diesen eine Verbindung aufbauen wollen, um die dort lokal verschickten Mails zu lesen. Genau wie all das Protokollieren eines jeden individuellen Systems durch einen zentralen syslog-Server zentralisiert werden kann, so kann auch Mail zu einem zentralen Mail-Server gesandt werden.

en: Such a <emphasis>relay-only</emphasis> system should be configured properly for this. The daemon could, as well, be configured to only listen on the loopback address.
de: Solch ein <emphasis>nur sendendes</emphasis> System sollte sorgfltig dafr eingerichtet werden. Der Daemon kann ebenso konfiguriert werden, nur an der Loopback-Adresse zu lauschen.

en: The following configuration steps only need to be taken to configure the <application>exim</application> package in the Debian 3.0 release. If you are using a later release (such as 3.1 which uses <application>exim4</application>) the installation system has been improved so that if the mail transport agent is configured to only deliver local mail it will automatically only allow connections from the local host and will not permit remote connections.
de: Die folgenden Konfigurationsschritte mssen nur zur Konfiguration des <application>exim</application>-Pakets in der Debian 3.0 Version vorgenommen werden. Wenn Sie eine neuere Version verwenden (wie z.B. 3.1, das <application>exim4</application> verwendet), so wurde das Installationssystem verbessert, so dass, wenn der Mail-Transport-Agent konfiguriert wurde, nur lokale Mails zu versenden, es automatisch nur Verbindungen vom lokalen Rechner und keine Verbindungen aus der Ferne zulsst.

en: In a Debian 3.0 system using <application>exim</application>, you will have to remove the SMTP daemon from <command>inetd</command>:
de: In einem Debian 3.0 System mit <application>exim</application> muss man den SMTP-Daemon aus <command>inetd</command> wie folgt entfernen:

en: and configure the mailer daemon to only listen on the loopback interface. In <command>exim</command> (the default MTA) you can do this by editing the file <filename>/etc/exim.conf</filename> and adding the following line:
de: und den Mail-Daemon so konfigurieren, dass er nur auf der loopback-Schnittstelle lauscht. In <command>exim</command> (dem Standard-Mail-Transport-Agent (MTA) unter Debian) tun Sie dies, indem Sie in der Datei <filename>/etc/exim.conf</filename> folgende Zeile hinzufgen:

en: Restart both daemons (inetd and exim) and you will have exim listening on the 127.0.0.1:25 socket only. Be careful, and first disable inetd, otherwise, exim will not start since the inetd daemon is already handling incoming connections.
de: Starten Sie beide Daemonen neu (inetd und exim) und exim wird lediglich auf den Socket 127.0.0.1:25 lauschen. Seien Sie vorsichtig und deaktivieren Sie erst inetd, oder exim wird nicht neu starten, da der inetd-Daemon bereits eingehende Verbindungen behandelt.

en: For <command>postfix</command> edit <filename>/etc/postfix/main.conf</filename>:
de: Bei <command>postfix</command> editieren Sie <filename>/etc/postfix/main.conf</filename>:

en: If you only want local mail, this approach is better than tcp-wrapping the mailer daemon or adding firewalling rules to limit anybody accessing it. However, if you do need it to listen on other interfaces, you might consider launching it from inetd and adding a tcp wrapper so incoming connections are checked against <filename>/etc/hosts.allow</filename> and <filename>/etc/hosts.deny</filename>. Also, you will be aware of when an unauthorized access is attempted against your mailer daemon, if you set up proper logging for any of the methods above.
de: Wenn Sie lediglich lokale Mails wollen, ist dieses Herangehen besser als den Mailer-Daemon in einen tcp-Wrapper zu hllen oder Firewall-Regeln einzufgen, die den Zugang fr alle limitieren. Wenn Sie jedoch auch auf andere Schnittstellen reagieren mssen, sollten Sie berlegen, ihn vom inetd aufrufen zu lassen und einen tcp-Wrapper einzusetzen, so dass eingehende Verbindungen gegen <filename>/etc/hosts.allow</filename> und <filename>/etc/hosts.deny</filename> geprft werden. Auerdem werden Sie vor unautorisierten Zugriffsversuchen gegen Ihren Mail-Daemon durch angemessenes Protokollieren gewarnt werden wollen.

en: In any case, to reject mail relay attempts at the SMTP level, you can change <filename>/etc/exim/exim.conf</filename> to include:
de: In jedem Fall knnen Sie Mail-Zustellversuche auf dem SMTP-Level ablehnen, indem Sie die <filename>/etc/exim/exim.conf</filename> abndern, damit Sie Folgendes enthlt:

en: Even if your mail server will not relay the message, this kind of configuration is needed for the relay tester at <ulink url="http://www.abuse.net/relay.html" /> to determine that your server is <emphasis>not</emphasis> relay capable.
de: Auch wenn Ihr Mail-Server keine Mails zustellen wird, ist diese Konfiguration fr den Relay-Tester auf <ulink url="http://www.abuse.net/relay.html"/> ntig, um festzustellen, dass Ihr Server <emphasis>nicht</emphasis> relaisfhig ist.

en: If you want a relay-only setup, however, you can consider changing the mailer daemon to programs that can <emphasis>only</emphasis> be configured to forward the mail to a remote mail server. Debian provides currently both <application>ssmtp</application> and <application>nullmailer</application> for this purpose. In any case, you can evaluate for yourself any of the mail transport agents <footnote><para> To retrieve the list of mailer daemons available in Debian try: <screen> $ apt-cache search mail-transport-agent </screen> The list will not include <command>qmail</command>, which is distributed only as source code in the <application>qmail-src</application> package. </para></footnote> provided by Debian and see which one suits best to the system's purposes.
de: Wenn Sie Mails nur weiterleiten mchten, knnen Sie in Erwgung ziehen, den Mail-Daemon durch Programme zu ersetzen, die <emphasis>nur</emphasis> zum Weiterleiten der Mail zu einem entfernten Mail-Server konfiguriert werden knnen. Debian stellt zurzeit <application>ssmtp</application> und <application>nullmailer</application> fr diese Zwecke zur Verfgung. Auf jeden Fall knnen Sie fr sich selbst alle von Debian angebotenen Mail-Transport-Agents testen <footnote><para> Die Liste der in Debian verfgbaren Mail-Daemons erhalten Sie wie folgt: <screen> $ apt-cache search mail-transport-agent </screen> </para><para>Die Liste wird <command>qmail</command> nicht enthalten, da dies nur im Quellcode im Paket <application>qmail-src</application> vertrieben wird. </para></footnote> und sehen, welcher davon am besten auf Ihr System zugeschnitten ist.

en: Providing secure access to mailboxes
de: Anbieten eines sicheren Zugangs zu Mailboxen

en: If you want to give remote access to mailboxes there are a number of POP3 and IMAP daemons available.<footnote><para> A list of servers/daemons which support these protocols in Debian can be retrieved with: <screen> $ apt-cache search pop3-server $ apt-cache search imap-server </screen></para></footnote> However, if you provide IMAP access note that it is a general file access protocol, it can become the equivalent of a shell access because users might be able to retrieve any file that they can through it.
de: Wenn Sie entfernten Zugriff auf Mailboxen erlauben wollen, gibt es eine Anzahl von mglichen POP3- und IMAP-Daemonen.<footnote><para> Eine Liste von Servern/Daemonen die diese Protokolle in Debian anbieten, kann wie folgt erhalten werden: <screen> $ apt-cache search pop3-server $ apt-cache search imap-server </screen> </para></footnote> Wenn Sie IMAP-Zugriff anbieten, beachten Sie jedoch, dass es ein allgemeines Dateizugriffsprotokoll ist. Es kann das quivalent zu einem Shell-Zugang werden, da Benutzer in der Lage sein knnten, Zugang zu beliebigen Dateien zu erhalten, auf die sie durch ihn zugreifen knnen.

en: Try, for example, to configure as your inbox path <literal>{server.com}/etc/passwd</literal> if it succeeds your IMAP daemon is not properly configured to prevent this kind of access.
de: Versuchen Sie beispielsweise, <literal>{server.com}/etc/passwd</literal> als Ihren Eingabepfad zu konfigurieren. Wenn dies gelingt, ist Ihr IMAP-Daemon nicht richtig konfiguriert, um diese Art von Zugriff zu verhindern.

en: Of the IMAP servers in Debian the <command>cyrus</command> server (in the <application>cyrus-imapd</application> package) gets around this by having all access to a database in a restricted part of the file system. Also, <command>uw-imapd</command> (either install the <application>uw-imapd</application> or better, if your IMAP clients support it, <application>uw-imapd-ssl</application>) can be configured to chroot the users mail directory but this is not enabled by default. The documentation provided gives more information on how to configure it.
de: Unter den IMAP-Servern in Debian vermeidet der <command>cyrus</command>-Server (im Paket <application>cyrus-imapd</application>) dies, indem er den gesamten Zugriff zu einer Datenbasis in einem beschrnkten Teil des Dateisystems limitiert. Auch <command>uw-imapd</command> (installieren Sie entweder das <application>uw-imapd</application>- oder besser, wenn Ihre IMAP-Clients es untersttzen, das <application>uw-imapd-ssl</application>-Paket) kann konfiguriert werden, das Mailverzeichnis der Benutzer in ein Chroot-Gefngnis einzusperren, dies ist jedoch nicht standardmig aktiviert. Die angebotene Dokumentation enthlt mehr Informationen, wie man dies konfiguriert.

en: Also, you might want to run an IMAP server that does not need valid users to be created on the local system (which would grant shell access too), <application>courier-imap</application> (for IMAP) and <application>courier-pop</application>, <application>teapop</application> (for POP3) and <application>cyrus-imapd</application> (for both POP3 and IMAP) provide servers with authentication methods beside the local user accounts. <command>cyrus</command> can use any authentication method that can be configured through PAM while <command>teapop</command> might use databases (such as <application>postgresql</application> and <application>mysql</application>) for user authentication.
de: Es ist ebenso empfehlenswert, einen IMAP-Server laufen zu haben, der keine neuen Benutzer im lokalen System erfordert (dies wrde auch einen Shell-Zugang ermglichen). Sowohl <application>courier-imap</application> (fr IMAP) und <application>courier-pop</application>, <application>teapop</application> (fr POP3) und <application>cyrus-imapd</application> (fr POP3 und IMAP) bieten Server mit Authentifizierungsmethoden neben den lokalen Benutzerkonten. <command>cyrus</command> kann alle Authentifizierungsmethoden, die mittels PAM konfiguriert werden knnen, verwenden, whrenddessen <command>teapop</command>-Datenbanken (wie <application>postgresql</application> und <application>mysql</application>) fr die Benutzerauthentifizierung nutzen kann.

en: Receiving mail securely
de: Sicherer Empfang von Mails

en: Reading/receiving mail is the most common clear-text protocol. If you use either POP3 or IMAP to get your mail, you send your clear-text password across the net, so almost anyone can read your mail from now on. Instead, use SSL (Secure Sockets Layer) to receive your mail. The other alternative is SSH, if you have a shell account on the box which acts as your POP or IMAP server. Here is a basic <filename>fetchmailrc</filename> to demonstrate this:
de: Das Lesen und Empfangen von Mails ist das gebruchlichste Klartext-Protokoll. Wenn Sie POP3 oder IMAP benutzen, um Ihre Mails zu erhalten, senden Sie ein Klartext-Passwort ber das gesamte Netz, so dass ziemlich jeder Ihre Mails von nun an lesen kann. Benutzen Sie stattdessen SSL (Secure Sockets Layer), um Ihre Mails zu empfangen. Wenn Sie einen Shell-Account auf dem Rechner, der als POP oder IMAP-Server agiert, haben, ist die andere Alternative SSH. Hier ist eine beispielhafte <filename>fetchmailrc</filename>, um dies zu zeigen:

en: 
    poll my-imap-mailserver.org via "localhost"
      with proto IMAP port 1236
          user "ref" there with password "hackme" is alex here warnings 3600
        folders
          .Mail/debian
        preconnect 'ssh -f -P -C -L 1236:my-imap-mailserver.org:143 -l ref
         my-imap-mailserver.org sleep 15 &lt;/dev/null &gt; /dev/null'
de: 
    poll my-imap-mailserver.org via "localhost"
      with proto IMAP port 1236
          user "ref" there with password "hackmich" is alex here warnings 3600
        folders
          .Mail/debian
        preconnect 'ssh -f -P -C -L 1236:my-imap-mailserver.org:143 -l ref
         my-imap-mailserver.org sleep 15 &lt;/dev/null &gt; /dev/null'

en: The preconnect is the important line. It fires up an ssh session and creates the necessary tunnel, which automatically forwards connections to localhost port 1236 to the IMAP mail server, but encrypted. Another possibility would be to use <command>fetchmail</command> with the SSL feature.
de: Die wichtige Zeile ist die preconnect-Zeile. Sie startet eine SSH-Verbindung und erstellt den notwendigen Tunnel, durch den automatisch alle Verbindungen zum lokalen Port 1236 verschlsselt an den IMAP-Mail-Server weitergeleitet werden. Eine andere Mglichkeit wre es, <command>fetchmail</command> mit SSL-Untersttzung zu benutzen.

en: If you want to provide encrypted mail services like POP and IMAP, <literal>apt-get install stunnel</literal> and start your daemons this way:
de: Wenn Sie verschlsselte Mail-Dienste wie POP oder IMAP anbieten mchten, <literal>apt-get install stunnel</literal> und starten Sie Ihren Daemon auf diese Weise:

en: This command wraps the provided daemon (-l) to the port (-d) and uses the specified SSL certificate (-p).
de: Dieses Kommando bindet den angegebenen Daemon (-l) an den Port (-d) und benutzt ein bestimmtes SSL-Zertifikat (-p).

en: Securing BIND
de: Absichern von BIND

en: There are different issues that can be tackled in order to secure the Domain server daemon, which are similar to the ones considered when securing any given service:
de: Es gibt verschiedene Dinge, mit denen Sie sich auseinander setzen sollten, um einen Domain-Server-Daemon abzusichern, die hnlich zu den berlegungen sind, wie man einen anderen Dienst absichert:

en: configuring the daemon itself properly so it cannot be misused from the outside (see <xref linkend="configure-bind" />). This includes limiting possible queries from clients: zone transfers and recursive queries.
de: Konfigurieren Sie den Daemon selbst, so dass er von auen nicht missbraucht werden kann (siehe auch <xref linkend="configure-bind"/>). Dies schliet das Einschrnken von Abfragen durch Clients ein: Zonen-Transfers und rekursive Abfragen.

en: limit the access of the daemon to the server itself so if it is used to break in, the damage to the system is limited. This includes running the daemon as a non-privileged user (see <xref linkend="user-bind" />) and chrooting it (see <xref linkend="chroot-bind" />).
de: Einschrnken des Zugriffs des Daemon auf den Server selbst, so dass dem Schaden fr das System im Falle eines Einbruchs Grenzen gesetzt sind. Hierzu gehrt auch, den Daemon als nicht-privilegierten Benutzer laufen zu lassen (siehe <xref linkend="user-bind"/>) und ihn in ein Chroot-Gefngnis einzusperren (siehe <xref linkend="chroot-bind"/>).

en: Bind configuration to avoid misuse
de: Bind-Konfiguration um Missbrauch zu verhindern

en: You should restrict some of the information that is served from the DNS server to outside clients so that it cannot be used to retrieve valuable information from your organization that you do not want to give away. This includes adding the following options: <emphasis>allow-transfer</emphasis>, <emphasis>allow-query</emphasis>, <emphasis>allow-recursion</emphasis> and <emphasis>version</emphasis>. You can either limit this on the global section (so it applies to all the zones served) or on a per-zone basis. This information is documented in the <application>bind-doc</application> package, read more on this on <filename>/usr/share/doc/bind/html/index.html</filename> once the package is installed.
de: Sie sollten einige Informationen, die von auen ber den DNS-Server abgefragt werden knnen, zurckhalten, so dass man nicht wertvolle Informationen ber Ihre Organisation, die Sie nicht herausgeben wollen, abfragen kann. Dies schliet die folgenden Optionen mit ein: <emphasis>allow-transfer</emphasis>, <emphasis>allow-query</emphasis>, <emphasis>allow-recursion</emphasis> und <emphasis>version</emphasis>. Sie knnen dies in dem globalen Abschnitt tun (so wird es auf alle Zonen angewandt) oder jeweils pro Zone. Dies ist im Paket <application>bind-doc</application> dokumentiert. Sobald das Paket installiert ist, knnen Sie hierzu mehr in <filename>/usr/share/doc/bind/html/index.html</filename> lesen.

en: Imagine that your server is connected to the Internet and to your internal (your internal IP is 192.168.1.2) network (a basic multi-homed server), you do not want to give any service to the Internet and you just want to enable DNS lookups from your internal hosts. You could restrict it by including in <filename>/etc/bind/named.conf</filename>:
de: Stellen Sie sich vor, Ihr Server ist mit dem Internet und Ihrem internen Netzwerk (Ihre interne IP ist 192.168.1.2) verbunden &ndash; ein einfacher Server im heimischen Netzwerk. Sie mchten keinen Dienst im Internet anbieten und lediglich DNS-Abfragen von Ihren internen Rechnern erlauben. Sie knnen dies einschrnken, indem Sie Folgendes in Ihre <filename>/etc/bind/named.conf</filename> aufnehmen:

en: The <emphasis>listen-on</emphasis> option makes the DNS bind to only the interface that has the internal address, but, even if this interface is the same as the interface that connects to the Internet (if you are using NAT, for example), queries will only be accepted if coming from your internal hosts. If the system has multiple interfaces and the <emphasis>listen-on</emphasis> is not present, only internal users could query, but, since the port would be accessible to outside attackers, they could try to crash (or exploit buffer overflow attacks) on the DNS server. You could even make it listen only on 127.0.0.1 if you are not giving DNS service for any other systems than yourself.
de: Die Option <emphasis>listen-on</emphasis> bewirkt, dass sich DNS nur auf die Schnittstelle bindet, die die interne Adresse hat. Aber sogar wenn diese Schnittstelle Verbindung zum Internet hat (zum Beispiel weil Sie NAT benutzen), werden Abfragen nur akzeptiert, wenn sie von internen Hosts kommen. Wenn das System mehrere Schnittstellen hat und Sie kein <emphasis>listen-on</emphasis> gesetzt haben, knnten zwar nur interne Benutzer Abfragen starten, aber, da der Port fr Angreifer von auen ansprechbar ist, knnten sie versuchen, den DNS zum Absturz zu bringen (oder durch Speicher-berlauf-Attacken auszunutzen). Sie knnten ihn sogar dazu bringen, lediglich auf 127.0.0.1 zu hren, wenn Sie den DNS-Service nicht fr ein anderes System anbieten wollen.

en: The version.bind record in the chaos class contains the version of the currently running bind process. This information is often used by automated scanners and malicious individuals who wish to determine if one's <command>bind</command> is vulnerable to a specific attack. By providing false or no information in the version.bind record, one limits the probability that one's server will be attacked based on its published version. To provide your own version, use the <emphasis>version</emphasis> directive in the following manner:
de: Der version.bind-Eintrag in der chaos class enthlt die Version des derzeit laufenden Bind-Prozesses. Diese Information wird oft von automatischen Scannern und bsartigen Individuen dazu verwendet herauszufinden, ob ein <command>bind</command> fr eine bestimmte Attacke verwundbar ist. Indem Sie falsche oder gar keine Informationen im version.bind-Eintrag zur Verfgung stellen, minimieren Sie die Wahrscheinlichkeit, dass jemand Ihren Server aufgrund der publizierten Version attackieren wird. Um Ihre eigene Version anzugeben, benutzen Sie die <emphasis>Version</emphasis>-Direktive auf folgende Art:

en:  options { ... various options here ...
    version "Not available."; };
de:  options { ... various options here ...
    version "Nicht verfgbar."; };

en: Changing the version.bind record does not provide actual protection against attacks, but it might be considered a useful safeguard.
de: Das ndern des version.bind-Eintrags schtzt eigentlich nicht gegen Attacken, aber Sie knnen es als sinnvolle Schutzvorrichtung ansehen.

en: A sample <filename>named.conf</filename> configuration file might be the following:
de: Eine beispielhafte <filename>named.conf</filename>-Konfigurationsdatei knnte so aussehen:

en: 
    acl internal {
            127.0.0.1/32;           // localhost
            10.0.0.0/8;             // internal
            aa.bb.cc.dd;            // eth0 IP
    };
    
    acl friendly {
            ee.ff.gg.hh;            // slave DNS
            aa.bb.cc.dd;            // eth0 IP
            127.0.0.1/32;           // localhost
            10.0.0.0/8;             // internal
    };
    
    options {
            directory "/var/cache/bind";
            allow-query { internal; };
            allow-recursion { internal; };
            allow-transfer { none; };
    };
    // From here to the mysite.bogus zone 
    // is basically unmodified from the debian default
    logging {
            category lame-servers { null; };
            category cname { null; };   
    };
    
    zone "." {
            type hint;
            file "/etc/bind/db.root";
    };
    
    zone "localhost" {
            type master;
            file "/etc/bind/db.local";
    };
    
    zone "127.in-addr.arpa" {
            type master;
            file "/etc/bind/db.127";
    };
    
    zone "0.in-addr.arpa" {
            type master;
            file "/etc/bind/db.0";
    };
    
    zone "255.in-addr.arpa" {
            type master;
            file "/etc/bind/db.255";
    };
    
    // zones I added myself
    zone "mysite.bogus" {
            type master;
            file "/etc/bind/named.mysite";
            allow-query { any; };
            allow-transfer { friendly; };
    };
de: 
    acl internal {
            127.0.0.1/32;           // localhost
            10.0.0.0/8;             // intern
            aa.bb.cc.dd;            // eth0 IP
    };
    
    acl friendly {
            ee.ff.gg.hh;            // slave DNS
            aa.bb.cc.dd;            // eth0 IP
            127.0.0.1/32;           // localhost
            10.0.0.0/8;             // intern
    };
    
    options {
            directory "/var/cache/bind";
            allow-query { internal; };
            allow-recursion { internal; };
            allow-transfer { none; };
    };
    // Ab hier bis zur meineseite.bogus Zone
    // ist alles im Grunde die unvernderte Debian-Standardeinstellung.
    logging {
            category lame-servers { null; };
            category cname { null; };   
    };
    
    zone "." {
            type hint;
            file "/etc/bind/db.root";
    };
    
    zone "localhost" {
            type master;
            file "/etc/bind/db.local";
    };
    
    zone "127.in-addr.arpa" {
            type master;
            file "/etc/bind/db.127";
    };
    
    zone "0.in-addr.arpa" {
            type master;
            file "/etc/bind/db.0";
    };
    
    zone "255.in-addr.arpa" {
            type master;
            file "/etc/bind/db.255";
    };
    
    // Zone, die ich selbst hinzugefgt habe
    zone "mysite.bogus" {
            type master;
            file "/etc/bind/named.meineseite";
            allow-query { any; };
            allow-transfer { friendly; };
    };

en: Please (again) check the Bug Tracking System regarding Bind, specifically <ulink name="Bug #94760 (regarding ACLs on zone transfers)" url="http://bugs.debian.org/94760" />. Feel free to contribute to the bug report if you think you can add useful information.
de: Bitte prfen Sie (erneut) die Debian-Fehler-Datenbank (BTS) bezglich Bind, insbesondere <ulink name="Bug #94760 (regarding ACLs on zone transfers)" url="http://bugs.debian.org/94760"/>. Fhlen Sie sich ruhig dazu ermutigt, zu diesem Bugreport beizutragen, wenn Sie glauben, ntzliche Informationen hinzufgen zu knnen.

en: Changing BIND's user
de: ndern des BIND-Benutzers

en: Regarding limiting BIND's privileges you must be aware that if a non-root user runs BIND, then BIND cannot detect new interfaces automatically, for example when you put a PCMCIA card into your laptop. Check the <filename>README.Debian</filename> file in your named documentation (<filename>/usr/share/doc/bind/README.Debian</filename>) directory for more information about this issue. There have been many recent security problems concerning BIND, so switching the user is useful when possible. We will detail here the steps needed in order to do this, however, if you want to do this in an automatic way you might try the script provided in <xref linkend="bind-chuser" />.
de: Bezglich der Beschrnkung von BINDs Privilegien mssen Sie beachten, dass, wenn Sie BIND als nicht-root Benutzer laufen lassen, BIND neue Netzwerk-Schnittstellen nicht automatisch entdecken kann, zum Beispiel wenn Sie eine PCMCIA-Karte in Ihr Notebook stecken. Lesen Sie die Datei <filename>README.Debian</filename> in Ihrer named-Dokumentation (<filename>/usr/share/doc/bind/README.Debian</filename>) fr mehr Informationen hierzu. Es gab in letzter Zeit viele Sicherheitsprobleme mit BIND, so dass es ntzlich ist, den Benutzer zu wechseln, wenn es mglich ist. Wir werden die Schritte, die dazu ntig sind, detailliert auffhren. Wenn Sie dies automatisch machen lassen wollen, knnen Sie das Skript in <xref linkend="bind-chuser"/> ausprobieren.

en: Notice, in any case, that this only applies to BIND version 8. In the Debian packages for BIND version 9 (since the 9.2.1-5 version, available since <emphasis>sarge</emphasis>) the <emphasis>bind</emphasis> user is created and used by setting the OPTIONS variable in <filename>/etc/default/bind9</filename>. If you are using BIND version 9 and your name server daemon is not running as the <emphasis>bind</emphasis> user verify the settings on that file.
de: Beachten Sie, dass dies nur auf die BIND-Version 8 zutrifft. In den Debian-Paketen fr die BIND-Version 9 wird der Benutzer <emphasis>bind</emphasis> erstellt (seit Version 9.2.1-5, ist in <emphasis>Sarge</emphasis> enthalten) und mit der Variable OPTIONS in <filename>/etc/default/bind9</filename> verwendet. Wenn Sie BIND 9 einsetzen und Ihr Nameserver nicht als Benutzer <emphasis>bind</emphasis> luft, sollten Sie die Einstellungen in dieser Datei berprfen.

en: To run BIND under a different user, first create a separate user and group for it (it is <emphasis>not</emphasis> a good idea to use nobody or nogroup for every service not running as root). In this example, the user and group <literal>named</literal> will be used. You can do this by entering:
de: Um BIND unter einem anderen Benutzer laufen zu lassen, mssen Sie zunchst einen zustzlichen Benutzer und eine zustzlich Gruppe dafr erstellen (es ist <emphasis>keine</emphasis> gute Idee, fr alle Dienste, die Sie nicht als Root laufen lassen, den Benutzer nobody und die Gruppe nogroup zu benutzen). In diesem Beispiel wird der Benutzer und die Gruppe <literal>named</literal> verwendet. Sie knnen diese anlegen, indem Sie die folgenden Kommandos eingeben:

en: Notice that the user <literal>named</literal> will be quite restricted. If you want, for whatever reason, to have a less restrictive setup use:
de: Beachten Sie, dass der Benutzer <literal>named</literal> sehr eingeschrnkt ist. Wenn Sie &ndash; aus welchen Grnden auch immer &ndash; ein weniger eingeschrnktes Setup haben mchten, benutzen Sie:

en: Now you can either edit <filename>/etc/init.d/bind</filename> with your favorite editor and change the line beginning with
de: Editieren Sie nun <filename>/etc/init.d/bind</filename> mit Ihrem Lieblingseditor und ndern Sie die Zeile, die mit

en: to<footnote><para>Note that depending on your bind version you might not have the <literal>-g</literal> option, most notably if you are using bind9 in sarge (9.2.4 version).</para></footnote>
de: anfngt zu<footnote><para>Beachten Sie, dass Sie abhngig von Ihrer Bind-Version die Option <literal>-g</literal> nicht haben, hchstwahrscheinlich wenn Sie bind9 von Sarge (9.2.4) installiert haben.</para></footnote>:

en: Or you can change (create it if it does not exit) the default configuration file (<filename>/etc/default/bind</filename> for BIND version 8) and introduce the following:
de: Alternativ dazu knnen Sie auch die Standardkonfigurationsdatei (bei BIND 8 <filename>/etc/default/bind</filename>) bearbeiten (und erstellen, falls sie nicht vorhanden ist) und Folgendes einfgen:

en: Change the permissions of files that are used by Bind, including <filename>/etc/bind/rndc.key</filename>:
de: ndern Sie die Rechte der Dateien, die von Bind verwendet werden, inklusive <filename>/etc/bind/rndc.key</filename>:

en: and where bind creates its pidfile, using, for example, <filename>/var/run/named</filename> instead of <filename>/var/run</filename>:
de: und den Ort, an dem bind seine PID-Datei erzeugt, z.B. indem Sie <filename>/var/run/named</filename> anstatt von <filename>/var/run</filename> verwenden:

en: 
    $ mkdir /var/run/named
    $ chown named.named /var/run/named
    $ vi /etc/named.conf
    [ ... update the configuration file to use this new location ...]
    options { ...
            pid-file "/var/run/named/named.pid";
    };
    [ ... ]
de: 
    $ mkdir /var/run/named
    $ chown named.named /var/run/named
    $ vi /etc/named.conf
    [ ... ndern Sie die Konfigurationsdatei, um diesen neuen Pfad zu verwenden ...]
    options { ...
            pid-file "/var/run/named/named.pid";
    };
    [ ... ]

en: Also, in order to avoid running anything as root, change the <literal>reload</literal> line in the init.d script by substituting:
de: Auerdem mssen Sie, um zu verhindern, dass irgendetwas als Root luft, im init.d-Skript die <literal>reload</literal>-Zeile von:

en: to:
de: in Folgendes ndern:

en: Note: Depending on your Debian version you might have to change the <literal>restart</literal> line too. This was fixed in Debian's bind version <literal>1:8.3.1-2</literal>.
de: Hinweis: Abhngig von Ihrer Debian-Version mssen Sie auch die <literal>restart</literal>-Zeile ndern. Dies wurde in der Version <literal>1:8.3.1-2</literal> von Debians BIND-Paket repariert.

en: All you need to do now is to restart bind via <literal>/etc/init.d/bind restart</literal>, and then check your syslog for two entries like this:
de: Alles, was Sie jetzt noch tun mssen, ist, bind mittels <literal>/etc/init.d/bind restart</literal> neu zu starten und dann Ihr Syslog auf zwei Eintrge wie die folgenden zu prfen:

en: Voilà! Your named now <emphasis>does not</emphasis> run as root. If you want to read more information on why BIND does not run as non-root user on Debian systems, please check the Bug Tracking System regarding Bind, specifically <ulink name="Bug #50013: bind should not run as root" url="http://bugs.debian.org/50013" /> and <ulink name="Bug #132582: Default install is potentially insecure" url="http://bugs.debian.org/132582" />, <ulink name="Bug #53550" url="http://bugs.debian.org/53550" />, <ulink name="Bug #52745" url="http://bugs.debian.org/52745" />, and <ulink name="Bug #128129" url="http://bugs.debian.org/128129" />. Feel free to contribute to the bug reports if you think you can add useful information.
de: Voil! Ihr named luft <emphasis>nicht mehr</emphasis> als Root. Wenn Sie mehr Informationen darber lesen wollen, warum BIND nicht als nicht-root Benutzer auf Debian-Systemen luft, sehen Sie bitte in der Fehlerdatenbank zu Bind nach, insbesondere <ulink name="Bug #50013: bind should not run as root" url="http://bugs.debian.org/50013"/> und <ulink name="Bug #132582: Default install is potentially insecure" url="http://bugs.debian.org/132582"/>, <ulink name="Bug #53550" url="http://bugs.debian.org/53550"/>, <ulink name="Bug #52745" url="http://bugs.debian.org/52745"/> und <ulink name="Bug #128129" url="http://bugs.debian.org/128129"/>. Fhlen Sie sich ruhig dazu ermuntert, etwas zu den Fehlerbeschreibungen beizutragen, wenn Sie denken, ntzliche Informationen hinzufgen zu knnen.

en: Chrooting the name server
de: Chroot-Gefngnis fr den Name-Server

en: To achieve maximum BIND security, now build a chroot jail (see <xref linkend="chroot" />) around your daemon. There is an easy way to do this: the <literal>-t</literal> option (see the <citerefentry><refentrytitle>named</refentrytitle> <manvolnum>8</manvolnum></citerefentry> manual page or page 100 of <ulink name="Bind's 9 documentation (PDF)" url="http://www.nominum.com/content/documents/bind9arm.pdf" />). This will make Bind chroot itself into the given directory without you needing to set up a chroot jail and worry about dynamic libraries. The only files that need to be in the chroot jail are:
de: Um die grtmgliche BIND-Sicherheit zu erreichen, mssen Sie nun ein Chroot-Gefngnis (siehe <xref linkend="chroot"/>) um Ihren Daemon herum bauen. Es gibt einen einfachen Weg, dies zu erreichen: Die Option <literal>-t</literal> (siehe die Handbuchseite <citerefentry><refentrytitle>named</refentrytitle> <manvolnum>8</manvolnum></citerefentry> oder Seite 100 von <ulink url="http://www.nominum.com/content/documents/bind9arm.pdf" name="Bind's 9 Dokumentation (PDF)"/>). Dies wird Bind selbst in ein bestimmtes Verzeichnis chrooten lassen, ohne dass Sie ein eigenes Chroot-Gefngnis aufsetzen und sich Sorgen um dynamische Bibliotheken machen mssen. Die einzigen Dateien, die in diesem Chroot-Gefngnis bentigt werden, sind:

en: 
    dev/null
    etc/bind/       - should hold named.conf and all the server zones
    sbin/named-xfer - if you do name transfers
    var/run/named/  - should hold the PID and the name server cache (if
                      any) this directory needs to be writable by named user
    var/log/named   - if you set up logging to a file, needs to be writable
                      for the named user
    dev/log         - syslogd should be listening here if named is configured to
                      log through it
de: 
    dev/null
    etc/bind/       &ndash; sollte die named.conf und alle Server-Zonen enthalten
    sbin/named-xfer &ndash; wenn Sie Namen transferieren
    var/run/named/  &ndash; sollte die PID und den Cache des
                   Name-Servers (falls es ihn gibt) enthalten.
                               Dieses Verzeichnis muss fr
                               den named-User schreibbar sein.
    var/log/named   &ndash; Wenn Sie in eine Datei protokollieren, muss
                               dies fr den named-User schreibbar sein.
    dev/log       &ndash; syslogd sollte hierauf hren, wenn
                      named so konfiguriert ist, dass er
                      darber protokolliert.

en: In order for your Bind daemon to work properly it needs permission in the named files. This is an easy task since the configuration files are always at <literal>/etc/named/</literal>. Take into account that it only needs read-only access to the zone files, unless it is a secondary or cache name server. If this is your case you will have to give read-write permissions to the necessary zones (so that zone transfers from the primary server work).
de: Damit Ihr Bind-Daemon vernnftig luft, braucht er bestimmte Zugriffsrechte auf die named-Dateien. Dies ist eine einfache Angelegenheit, da die Konfigurationsdateien immer in <literal>/etc/named/</literal> liegen. Beachten Sie, dass er lediglich Lesezugriff bentigt, es sei denn, es handelt sich um einen sekundren oder zwischenspeichernden (Cache) Name-Server. Wenn dies der Fall ist, mssen Sie ihm Lese- und Schreibzugriff auf die notwendigen Zonen gewhren (damit Zonen-Transfers vom primren Server funktionieren).

en: Also, you can find more information regarding Bind chrooting in the <ulink name="Chroot-BIND-HOWTO" url="http://www.tldp.org/HOWTO/Chroot-BIND-HOWTO.html" /> (regarding Bind 9) and <ulink name="Chroot-BIND8-HOWTO" url="http://www.tldp.org/HOWTO/Chroot-BIND8-HOWTO.html" /> (regarding Bind 8). This same documents should be available through the installation of the <application>doc-linux-text</application> (text version) or <application>doc-linux-html</application> (HTML version). Another useful document is <ulink url="http://web.archive.org/web/20011024064030/http://www.psionic.com/papers/dns/dns-linux" />.
de: Mehr Informationen ber das Chrooten von Bind finden Sie unter <ulink name="Chroot-BIND-HOWTO" url="http://www.tldp.org/HOWTO/Chroot-BIND-HOWTO.html"/> (betrifft Bind 9) und <ulink name="Chroot-BIND8-HOWTO" url="http://www.tldp.org/HOWTO/Chroot-BIND8-HOWTO.html"/> (betrifft Bind 8). Diese Dokumente sollten auch nach der Installation des Paketes <application>doc-linux-text</application> (Text-Version) oder <application>doc-linux-html</application> (HTML-Version) verfgbar sein. Ein anderes ntzliches Dokument ist <ulink url="http://web.archive.org/web/20011024064030/http://www.psionic.com/papers/dns/dns-linux"/>.

en: If you are setting up a full chroot jail (i.e. not just <literal>-t</literal>) for Bind in Debian, make sure you have the following files in it<footnote><para>This setup has not been tested for new release of Bind yet.</para></footnote>:
de: Wenn Sie fr Bind ein komplettes Chroot-Gefngnis aufsetzen (d.h. Sie benutzen nicht nur <literal>-t</literal>), stellen Sie sicher, dass Sie die folgenden Dateien darin haben:<footnote><para> Diese Einstellungen wurden fr die neueren Verffentlichung von Bind noch nicht getestet.</para></footnote>

en: 
    dev/log - syslogd should be listening here
    dev/null
    etc/bind/named.conf 
    etc/localtime
    etc/group - with only a single line: "named:x:GID:"
    etc/ld.so.cache - generated with ldconfig 
    lib/ld-2.3.6.so
    lib/libc-2.3.6.so
    lib/ld-linux.so.2 - symlinked to ld-2.3.6.so
    lib/libc.so.6 - symlinked to libc-2.3.6.so
    sbin/ldconfig - may be deleted after setting up the chroot
    sbin/named-xfer - if you do name transfers
    var/run/
de: 
    dev/log &ndash; syslogd sollte hierauf hren
    dev/null
    etc/bind/named.conf 
    etc/localtime
    etc/group &ndash; mit einer einzigen Zeile: "named:x:GID:"
    etc/ld.so.cache &ndash; mit ldconfig erstellt
    lib/ld-2.3.6.so
    lib/libc-2.3.6.so
    lib/ld-linux.so.2 &ndash; symbolischer Link auf ld-2.3.6.so
    lib/libc.so.6 &ndash; symbolischer Link auf libc-2.3.6.so
    sbin/ldconfig &ndash; kann gelscht werden, nachdem Chroot aufgesetzt wurde
    sbin/named-xfer &ndash; wenn Sie Namen transferieren
    var/run/

en: And modify also <command>syslogd</command> listen on <literal>$CHROOT/dev/log</literal> so the named server can write syslog entries into the local system log.
de: Sorgen Sie auch dafr, dass <command>syslogd</command> auf <literal>$CHROOT/dev/log</literal> achtet, so dass der Name-Server seine syslog-Eintrge in das lokale System-Protokoll schreiben lassen kann.

en: If you want to avoid problems with dynamic libraries, you can compile bind statically. You can use <command>apt-get</command> for this, with the <literal>source</literal> option. It can even download the packages you need to properly compile it. You would need to do something similar to:
de: Wenn Sie Probleme mit dynamischen Bibliotheken vermeiden wollen, knnen Sie Bind statisch kompilieren. Sie knnen hierzu <command>apt-get</command> mit der <literal>source</literal> Option benutzen. Es kann sogar die Pakete herunterladen, die Sie zum Kompilieren bentigen. Sie mssten etwas hnliches wie das Folgende tun:

en: 
    $ apt-get source bind
    # apt-get build-dep bind
    $ cd bind-8.2.5-2
      (edit src/port/linux/Makefile so CFLAGS includes the '-static'
       option)
    $ dpkg-buildpackage -rfakeroot -uc -us
    $ cd ..
    # dpkg -i bind-8.2.5-2*deb
de: 
    $ apt-get source bind
    # apt-get build-dep bind
    $ cd bind-8.2.5-2
      (editieren Sie src/port/linux/Makefile, so dass CFLAGS
      die Option -static beinhaltet
    $ dpkg-buildpackage -rfakeroot -uc -us
    $ cd ..
    # dpkg -i bind-8.2.5-2*deb

en: After installation, you will need to move around the files to the chroot jail<footnote><para>Unless you use the <literal>instdir</literal> option when calling <command>dpkg</command> but then the chroot jail might be a little more complex.</para></footnote> you can keep the <literal>init.d</literal> scripts in <filename>/etc/init.d</filename> so that the system will automatically start the name server, but edit them to add <literal>--chroot /location_of_chroot</literal> in the calls to <command>start-stop-daemon</command> in those scripts or use the <emphasis>-t</emphasis> option for BIND by setting it in the OPTIONS argument at the <filename>/etc/default/bind</filename> (for version 8) or <filename>/etc/default/bind9</filename> (for version 9) configuration file.
de: Nach der Installation werden Sie die Dateien in das Chroot-Gefngnis verschieben mssen.<footnote><para>Es sei denn, Sie benutzen die <literal>instdir</literal>-Option, wenn Sie <command>dpkg</command> aufrufen, aber dann knnte das chroot-Gefngnis etwas komplizierter werden.</para></footnote> Sie knnen die <literal>init.d</literal>-Skripte in <filename>/etc/init.d</filename> lassen, so dass das System automatisch den Name-Server starten wird, aber editieren Sie sie, indem Sie bei den <command>start-stop-daemon</command>-Aufrufen in diesen Skripten <literal>--chroot /location_of_chroot</literal> hinzufgen. Oder verwenden Sie fr BIND die Option <emphasis>-t</emphasis>, indem Sie sie in das OPTION-Argument in der Konfigurationsdatei <filename>/etc/default/bind</filename> (fr Version 8) oder <filename>/etc/default/bind9</filename> (fr Version 9) eintragen.

en: For more information on how to set up chroots see <xref linkend="chroot" />.
de: Fr weitere Informationen wie man Chroot-Gefngnisse aufsetzt, siehe <xref linkend="chroot"/>.

en: FIXME: Merge info from <ulink url="http://people.debian.org/~pzn/howto/chroot-bind.sh.txt" />, <ulink url="http://www.cryptio.net/~ferlatte/config/" /> (Debian-specific), <ulink url="http://web.archive.org/web/20021216104548/http://www.psionic.com/papers/whitep01.html" /> and <ulink url="http://csrc.nist.gov/fasp/FASPDocs/NISTSecuringDNS.htm" />.
de: FIXME: Fge Informationen aus folgenden Quellen ein: <ulink url="http://people.debian.org/~pzn/howto/chroot-bind.sh.txt"/>, <ulink url="http://www.cryptio.net/~ferlatte/config/"/> (Debian-specific), <ulink url="http://web.archive.org/web/20021216104548/http://www.psionic.com/papers/whitep01.html"/> and <ulink url="http://csrc.nist.gov/fasp/FASPDocs/NISTSecuringDNS.htm"/>.

en: Securing Apache
de: Absichern von Apache

en: You can limit access to the Apache server if you only want to use it internally (for testing purposes, to access the <application>doc-central</application> archive, etc.) and do not want outsiders to access it. To do this use the <literal>Listen</literal> or <literal>BindAddress</literal> directives in <filename>/etc/apache/http.conf</filename>.
de: Sie knnen den Zugriff auf Ihren Apache-Server einschrnken, wenn Sie ihn nur intern benutzen wollen (zum Beispiel zu Testzwecken, oder um auf die <application>doc-central</application>-Archive zuzugreifen, etc.) und nicht wollen, dass von auen auf ihn zugegriffen werden kann. Um dies zu tun, benutzen Sie die <literal>Listen</literal> oder <literal>BindAddress</literal> Direktiven in der Datei <filename>/etc/apache/http.conf</filename>.

en: Using Listen:
de: Benutzen von Listen:

en: Using BindAddress:
de: Benutzen von BindAddress:

en: Then restart apache with <literal>/etc/init.d/apache restart</literal> and you will see that it is only listening on the loopback interface.
de: Starten Sie anschlieend Apache mit <literal>/etc/init.d/apache restart</literal> neu, und Sie werden sehen, dass er nur auf die lokale Schleife achtet.

en: In any case, if you are not using all the functionality provided by Apache, you might want to take a look at other web servers provided in Debian like <application>dhttpd</application>.
de: In jedem Fall sollten Sie, wenn Sie nicht die ganze Funktionalitt, die Apache zur Verfgung stellt, benutzen wollen, mal einen Blick auf die anderen Web-Server aus Debian werfen, zum Beispiel <application>dhttpd</application>.

en: The <ulink name="Apache Documentation" url="http://httpd.apache.org/docs/misc/security_tips.html" /> provides information regarding security measures to be taken on Apache web server (this same information is provided in Debian by the <application>apache-doc</application> package).
de: Die <ulink name="Apache Documentation" url="http://httpd.apache.org/docs/misc/security_tips.html"/> stellt viele Informationen zu Sicherheitsmanahmen, die Sie auf einem Apache Web-Server anwenden knnen, bereit (die gleichen Informationen erhalten Sie unter Debian auch durch das Paket <application>apache-doc</application>).

en: More information on further restricting Apache by setting up a chroot jail is provided in <xref linkend="chroot-apache-env" />.
de: Mehr Informationen zu weiteren Restriktionen von Apache durch Einrichten chroot-Gefngnisses wird in <xref linkend="chroot-apache-env"/> bereitgestellt.

en: Disabling users from publishing web contents
de: Verhindern, dass Benutzer Web-Inhalte verffentlichen

en: The default Apache installation in Debian permits users to publish content under the <filename>$HOME/public_html</filename>. This content can be retrieved remotely using an URL such as: http://your_apache_server/~user.
de: Die Standard-Apache-Installation in Debian erlaubt Benutzern, Inhalt unter <filename>$HOME/public_html</filename> bereitzustellen. Dieser Inhalt kann aus der Ferne mit einer URL wie http://Ihr_Apache_Server/~benutzer abgegriffen werden.

en: If you do not want to permit this you must change the <filename>/etc/apache/http.conf</filename> configuration file commenting out (in Apache 1.3) the following module:
de: Wenn Sie dies nicht erlauben wollen, mssen Sie in der Konfigurationsdatei <filename>/etc/apache/http.conf</filename> (von Apache 1.3) folgendes Module auskommentieren:

en: If you are using Apache 2.0 you must remove the file <filename>/etc/apache2/mods-enabled/userdir.load</filename> or restrict the default configuration by modifying <filename>/etc/apache2/mods-enabled/userdir.conf</filename>.
de: Wenn Sie Apache 2.0 verwenden, mssen Sie die Datei <filename>/etc/apache2/mods-enabled/userdir.load</filename> entfernen oder die Standardkonfiguration einschrnken, indem Sie <filename>/etc/apache2/mods-enabled/userdir.conf</filename> bearbeiten.

en: However, if the module was linked statically (you can list the modules that are compiled in running <literal>apache -l</literal>) you must add the following to the Apache configuration file:
de: Falls allerdings das Modul statisch verlinkt wurde (Sie knnen die Module, die einkompiliert wurden, mittels <literal>apache -l</literal> berprfen), mssen Sie das Folgende der Konfigurationsdatei von Apache hinzufgen:

en: An attacker might still do user enumeration, since the answer of the web server will be a <emphasis>403 Permission Denied</emphasis> and not a <emphasis>404 Not available</emphasis>. You can avoid this if you use the Rewrite module.
de: Ein Angreifer kann immer noch die Benutzer herausfinden, da die Antwort des Web-Servers <emphasis>403 Permission Denied</emphasis> und nicht <emphasis>404 Not available</emphasis> lautet. Mit dem Rewrite-Modul knnen Sie das verhindern.

en: Logfiles permissions
de: Rechte der Protokolldateien

en: Apache logfiles, since 1.3.22-1, are owned by user 'root' and group 'adm' with permissions 640. These permissions are changed after rotation. An intruder that accessed the system through the web server would not be able (without privilege escalation) to remove old log file entries.
de: Apaches Protokolldateien gehren seit 1.3.22-1 dem Benutzer root und der Gruppe adm mit den Rechten 640. Diese Rechte ndern sich nach einer Rotation. Ein Eindringling, der das System ber den Web-Server erreicht hat, kann so Eintrge in alten Protokolldatei nicht (ohne Rechteerweiterung) entfernen.

en: Published web files
de: Verffentlichte Web-Dateien

en: Apache files are located under <filename>/var/www</filename>. Just after installation the default file provides some information on the system (mainly that it's a Debian system running Apache). The default webpages are owned by user root and group root by default, while the Apache process runs as user www-data and group www-data. This should make attackers that compromise the system through the web server harder to deface the site. You should, of course, substitute the default web pages (which might provide information you do not want to show to outsiders) with your own.
de: Apache-Dateien befinden sich unterhalb von <filename>/var/www</filename>. Direkt nach der Installation bietet die Standardseite einige Informationen zu dem System (hauptschlich dass es ein Debian-System ist, auf welchem Apache luft). Die Standard-Webseiten gehren standardmig dem Benutzer root und der Gruppe root, whrenddessen der Apache-Prozess als Benutzer www-data und Gruppe www-data luft. Dies sollte es Angreifern, die in das System durch den Web-Server eindringen, schwerer machen, die Site zu verunstalten. Sie sollten natrlich die Standard-Webseiten (die Informationen, die Sie der Auenwelt vorenthalten wollen, enthalten knnen) durch Ihre eigenen ersetzen.

en: Securing finger
de: Absichern von Finger

en: If you want to run the finger service first ask yourself if you need to do so. If you do, you will find out that Debian provides many finger daemons (output from <command>apt-cache search fingerd</command>):
de: Wenn Sie den Finger-Dienst laufen lassen wollen, fragen Sie sich bitte zuerst, ob Sie das auch wirklich tun mssen. Wenn es notwendig sein sollte, werden Sie feststellen, dass Debian viele Finger-Daemonen zur Verfgung stellt (hier die Ausgabe von <command>apt-cache search fingerd</command>):

en: cfingerd - Configurable finger daemon
de: cfingerd &ndash; konfigurierbarer finger-Daemon

en: efingerd - Another finger daemon for unix, capable of fine-tuning your output.
de: efingerd &ndash; ein weiterer Unix-finger-Daemon mit anpassbarer Ausgabe

en: ffingerd - a secure finger daemon
de: ffingerd &ndash; ein sicherer finger-Daemon

en: fingerd - Remote user information server.
de: fingerd &ndash; Remote-User-Informationsserver

en: xfingerd - BSD-like finger daemon with qmail support.
de: xfingerd &ndash; BSD-hnlicher finger-Daemon mit qmail-Untersttzung

en: <application>ffingerd</application> is the recommended finger daemon if you are going to use it for a public service. In any case, you are encouraged to, when setting it up through inetd, xinetd or tcpserver to: limit the number of processes that will be running at the same time, limit access to the finger daemon from a given number of hosts (using tcp wrappers) and having it only listening to the interface you need it to be in.
de: <application>ffingerd</application> ist der empfohlene finger-Daemon, wenn Sie vorhaben, einen ffentlichen Dienst anzubieten. In jedem Fall sind Sie zu Folgendem ermutigt, wenn Sie ihn ber inetd, xinetd oder tcpserver aufzusetzen: Schrnken Sie die Anzahl der Prozesse ein, die gleichzeitig laufen drfen, schrnken Sie den Zugriff auf den Finger-Daemon von bestimmten Hosts ein (indem Sie tcp-wrapper benutzen) und lassen Sie ihn nur auf der notwendigen Schnittstelle lauschen.

en: General chroot and suid paranoia
de: Allgemeine chroot- und suid-Paranoia

en: <command>chroot</command> is one of the most powerful possibilities to restrict a daemon or a user or another service. Just imagine a jail around your target, which the target cannot escape from (normally, but there are still a lot of conditions that allow one to escape out of such a jail). You can eventually create a modified root environment for the user or service you do not trust. This can use quite a bit of disk space as you need to copy all needed executables, as well as libraries, into the jail. But then, even if the user does something malicious, the scope of the damage is limited to the jail.
de: <command>chroot</command> ist eine der mchtigsten Mglichkeiten, einen Daemon oder einen Benutzer oder einen anderen Dienst zu beschrnken. Denken Sie einfach an ein Gefngnis um Ihr Ziel, welches das Ziel nicht verlassen kann (normalerweise, es gibt aber einige Bedingungen, die einem einen Ausbruch aus solch einem Gefngnis ermglichen). Wenn Sie einem Benutzer oder einem Dienst nicht trauen, knnen Sie eine modifizierte root-Umgebung fr ihn erzeugen. Dies kann einiges an Plattenplatz bentigen, da Sie alle bentigten Programme ebenso wie Bibliotheken in das Gefngnis kopieren mssen. Aber danach ist die Wirkung des Schadens, selbst wenn der Benutzer etwas bsartiges macht, auf das Gefngnis beschrnkt.

en: Many services running as daemons could benefit from this sort of arrangement. The daemons that you install with your Debian distribution will not come, however, chrooted<footnote><para>It does try to run them under <emphasis>minimum priviledge</emphasis> which includes running daemons with their own users instead of having them run as root. </para></footnote> per default.
de: Viele Dienste, die als Daemonen laufen, knnen von dieser Vorgehensweise profitieren. Die Daemonen, die Sie mit Ihrer Debian-Distribution installieren, laufen jedoch nicht standardmig in einem chroot-Gefngnis.<footnote><para>Es wird versucht, diese mit <emphasis>minimalen Rechten</emphasis> laufen zu lassen, was beinhaltet, Daemonen unter ihren eigenen Benutzern, anstatt unter Root, laufen zu lassen.</para></footnote>

en: This includes: name servers (such as <command>bind</command>), web servers (such as <command>apache</command>), mail servers (such as <command>sendmail</command>) and ftp servers (such as <command>wu-ftpd</command>). It is probably fair to say that the complexity of BIND is the reason why it has been exposed to a lot of attacks in recent years (see <xref linkend="sec-bind" />).
de: Dies beinhaltet: Name-Server (wie <command>bind</command>), Web-Server (wie <command>apache</command>), Mail-Server (wie <command>sendmail</command>) und FTP-Server (wie <command>wu-ftpd</command>). Wahrscheinlich ist es nur fair zu sagen, dass die Komplexitt von BIND der Grund dafr ist, warum er in den letzten Jahren so oft fr Attacken verwundbar war (vergleiche <xref linkend="sec-bind"/>).

en: However, Debian does provide some software that can help set up <command>chroot</command> environments. See <xref linkend="auto-chroot" />.
de: Jedoch bietet Debian einige Software an, die helfen kann, <command>chroot</command>-Umgebungen aufzubauen. Sehen Sie <xref linkend="auto-chroot"/>.

en: Anyway, if you run any service on your system, you should consider running them as secure as possible. This includes: revoking root privileges, running in a restricted environment (such as a chroot jail) or replacing them with a more secure equivalent.
de: Wenn Sie irgendwelche Dienste in Ihrem System laufen lassen, sollten Sie dies so sicher wie nur mglich tun. Dies beinhaltet: Entziehung von root-Privilegien, Starten in beschrnkten Umgebungen (wie ein chroot-Gefngnis) oder Ersetzen durch ein sichereres quivalent.

en: However, be forewarned that a <command>chroot</command> jail can be broken if the user running in it is the superuser. So, you need to make the service run as a non-privileged user. By limiting its environment you are limiting the world readable/executable files the service can access, thus, you limit the possibilities of a privilege escalation by use of local system security vulnerabilities. Even in this situation you cannot be completely sure that there is no way for a clever attacker to somehow break out of the jail. Using only server programs which have a reputation for being secure is a good additional safety measure. Even minuscule holes like open file handles can be used by a skilled attacker for breaking into the system. After all, <command>chroot</command> was not designed as a security tool but as a testing tool.
de: Seien Sie jedoch gewarnt, dass aus einem <command>chroot</command>-Gefngnis ausgebrochen werden kann, wenn der Benutzer, der im Inneren luft, der Superuser ist. Sie mssen also sicherstellen, dass der Dienst als nicht privilegierter Benutzer luft. Durch Einschrnken seiner Umgebung schrnken Sie die welt-lesbaren/ausfhrbaren Dateien, auf die der Dienst zugreifen kann, ein. Auf diese Weise begrenzen Sie die Mglichkeiten einer Rechteerweiterung durch lokale Sicherheitsverwundbarkeiten des Systems. Selbst in dieser Situation knnen Sie nicht vllig sicher sein, dass es fr einen cleveren Angreifer keinen Weg gibt, irgendwie aus dem Gefngnis auszubrechen. Der ausschlieliche Einsatz sicherer Server-Programme, die einen guten Ruf bezglich Sicherheit haben, ist eine zustzliche gute Sicherheitsmanahme. Selbst kleinste Lcher wie offene Datei-Handle knnen von einem versierten Angreifer zum Einbruch in das System verwendet werden. Schlielich war <command>chroot</command> nicht als Sicherheits-, sondern als ein Testwerkzeug gedacht.

en: Making chrooted environments automatically
de: Automatisches Erstellen von Chroot-Umgebungen

en: There are several programs to chroot automatically servers and services. Debian currently (accepted in May 2002) provides Wietse Venema's <command>chrootuid</command> in the <application>chrootuid</application> package, as well as <application>compartment</application> and <application>makejail</application>. These programs can be used to set up a restricted environment for executing any program (<command>chrootuid</command> enables you to even run it as a restricted user).
de: Es gibt verschiedene Programme, um Server und Dienste automatisch in ein Chroot-Gefngnis einzusperren. Debian bietet zurzeit (akzeptiert im Mai 2002) Wietse Venemas <command>chrootuid</command> im Paket <application>chrootuid</application>, ebenso wie <application>compartment</application> und <application>makejail</application> an. Diese Programme knnen verwendet werden, um eine eingeschrnkte Umgebung zum Ausfhren beliebiger Programme aufzusetzen (<command>chrootuid</command> erlaubt es Ihnen sogar, es unter einem eingeschrnkten Benutzer laufen zu lassen).

en: Some of these tools can be used to set up the chroot environment easily. The <command>makejail</command> program for example, can create and update a chroot jail with short configuration files (it provides sample configuration files for <command>bind</command>, <command>apache</command>, <command>postgresql</command> and <command>mysql</command>). It attempts to guess and install into the jail all files required by the daemon using <command>strace</command>, <command>stat</command> and Debian's package dependencies. More information at <ulink url="http://www.floc.net/makejail/" />. <command>Jailer</command> is a similar tool which can be retrieved from <ulink url="http://www.balabit.hu/downloads/jailer/" /> and is also available as a Debian package.
de: Einige dieser Werkzeuge knnen verwendet werden, um das Chroot-Gefngnis leicht aufzusetzen. Zum Beispiel kann das <command>makejail</command>-Programm ein chroot-Gefngnis mit kurzen Konfigurationsdateien erzeugen und aktualisieren. (Es bietet Beispielskonfigurationsdateien fr <command>bind</command>, <command>apache</command>, <command>postgresql</command> und <command>mysql</command>.) Es versucht alle Dateien, die vom Daemon bentigt werden, mittels <command>strace</command>, <command>stat</command> und Debians Paketabhngigkeiten zu bestimmen und in das Gefngnis zu installieren. Weitere Information gibt es unter <ulink url="http://www.floc.net/makejail/"/>. <command>Jailer</command> ist ein hnliches Werkzeug und kann von <ulink url="http://www.balabit.hu/downloads/jailer/"/> heruntergeladen werden und ist auch als Debian-Paket verfgbar.

en: General cleartext password paranoia
de: Allgemeine Klartextpasswort-Paranoia

en: You should try to avoid any network service which sends and receives passwords in cleartext over a net like FTP/Telnet/NIS/RPC. The author recommends the use of ssh instead of telnet and ftp to everybody.
de: Sie sollten versuchen, jeden Netzwerk-Dienst, der seine Passwrter als Klartext ber das Netz sendet oder empfngt, wie zum Beispiel FTP/Telnet/NIS/RPC, zu vermeiden. Der Autor empfiehlt jedem, ssh anstelle von telnet und ftp zu verwenden.

en: Keep in mind that migrating from telnet to ssh, but using other cleartext protocols does not increase your security in ANY way! Best would be to remove ftp, telnet, pop, imap, http and to supersede them with their respective encrypted services. You should consider moving from these services to their SSL versions, ftp-ssl, telnet-ssl, pop-ssl, https ...
de: Vergessen Sie jedoch nicht, dass die Migration von telnet zu ssh die Sicherheit in keiner Weise erhht, wenn Sie weiterhin Klartext-Protokolle verwenden. Am besten wre es ftp, telnet, pop, imap und http zu entfernen und durch ihre entsprechenden verschlsselten Dienste zu ersetzen. Sie sollten in Erwgung ziehen von diesen Diensten zu deren SSL-Versionen zu wechseln: ftp-ssl, telnet-ssl, pop-ssl, https, ...

en: Most of these above listed hints apply to every Unix system (you will find them if reading any other hardening-related document related to Linux and other Unices).
de: Die meisten der oben aufgelisteten Tipps gelten fr jedes Unix-System (Sie werden sie in jedem anderen sicherheitsrelevanten Dokument, das Sie jemals lesen, wiederfinden, wenn es sich auf Linux und andere Unices bezieht).

en: Disabling NIS
de: NIS deaktivieren

en: You should not use NIS, the Network Information Service, if possible, because it allows password sharing. This can be highly insecure if your setup is broken.
de: Sie sollten, wenn mglich, nicht NIS, den Network Information Service, benutzen, da er das gemeinsame Nutzen von Passwrtern erlaubt. Dies kann sehr unsicher sein, wenn Ihr Setup fehlerhaft ist.

en: If you need password sharing between machines, you might want to consider using other alternatives. For example, you can setup an LDAP server and configure PAM on your system in order to contact the LDAP server for user authentication. You can find a detailed setup in the <ulink name="LDAP-HOWTO" url="http://www.tldp.org/HOWTO/LDAP-HOWTO.html" /> (<filename>/usr/share/doc/HOWTO/en-txt/LDAP-HOWTO.txt.gz</filename>).
de: Wenn Sie Passwrter zwischen verschiedenen Maschinen teilen mssen, sollten Sie andere Alternativen in Erwgung ziehen. Zum Beispiel knnen Sie einen LDAP-Server aufsetzen und PAM auf Ihrem System so konfigurieren, dass es den LDAP-Server zur Benutzer-Authentifizierung kontaktiert. Sie finden ein detailliertes Setup in dem <ulink name="LDAP-HOWTO" url="http://www.tldp.org/HOWTO/LDAP-HOWTO.html"/> (<filename>/usr/share/doc/HOWTO/en-txt/LDAP-HOWTO.txt.gz</filename>).

en: You can read more about NIS security in the <ulink name="NIS-HOWTO" url="http://www.tldp.org/HOWTO/NIS-HOWTO.html" /> (<filename>/usr/share/doc/HOWTO/en-txt/NIS-HOWTO.txt.gz</filename>).
de: Sie knnen mehr ber NIS-Sicherheit in dem <ulink name="NIS-HOWTO" url="http://www.tldp.org/HOWTO/NIS-HOWTO.html"/> (<filename>/usr/share/doc/HOWTO/en-txt/NIS-HOWTO.txt.gz</filename>) lesen.

en: Securing RPC services
de: Absichern von RPC-Diensten

en: You should disable RPC if you do not need it.
de: Sie sollten RPC abschalten, wenn Sie es nicht bentigen.

en: Remote Procedure Call (RPC) is a protocol that programs can use to request services from other programs located on different computers. The <command>portmap</command> service controls RPC services by mapping RPC program numbers into DARPA protocol port numbers; it must be running in order to make RPC calls.
de: Remote Procedure Call (RPC, etwa entfernter Funktionsaufruf) ist ein Protokoll, das von Programmen verwendet werden kann, um Dienste von anderen Programmen, die auf anderen Computern laufen, anzufordern. Der <command>portmap</command>-Dienst kontrolliert RPC-Dienste durch Abbilden von RPC-Programmnummern auf DARPA-Protokoll-Portnummern. Er muss laufen, um RPC-Aufrufe ausfhren zu knnen.

en: RPC-based services have had a bad record of security holes, although the portmapper itself hasn't (but still provides information to a remote attacker). Notice that some of the DDoS (distributed denial of service) attacks use RPC exploits to get into the system and act as a so called agent/handler.
de: RPC-basierte Dienste hatten eine unrhmliche Geschichte, was Sicherheitslcken betrifft, obwohl dies fr den Portmapper an sich nicht gilt (dieser bietet aber nach wie vor entfernten Angreifern Informationen). Es ist zu beachten, dass einige DDoS-(distributed denial of service, verteilte Dienstverweigerungen)-Angriffe RPC-Lcher benutzen, um in das System einzudringen und als so genannter Agent/Handler zu fungieren.

en: You only need RPC if you are using an RPC-based service. The most common RPC-based services are NFS (Network File System) and NIS (Network Information System). See the previous section for more information about NIS. The File Alteration Monitor (FAM) provided by the package <application>fam</application> is also an RPC service, and thus depends on <application>portmap</application>.
de: Sie bentigen RPC nur dann, wenn Sie einen RPC-basierten Dienst verwenden. Die bekanntesten RPC-basierten Dienste sind NFS (Network File System) und NIS (Network Information System). Vergleichen Sie mit dem vorherigen Abschnitt fr weitere Information ber NIS. Der File Alteration Monitor (FAM), der vom Paket <application>fam</application> bereitgestellt wird, ist ebenso ein RPC-Dienst und hngt deshalb von <application>portmap</application> ab.

en: NFS services are quite important in some networks. If that is the case for you, then you will need to find a balance of security and usability for your network (you can read more about NFS security in the <ulink name="NFS-HOWTO" url="http://www.tldp.org/HOWTO/NFS-HOWTO.html" /> (<filename>/usr/share/doc/HOWTO/en-txt/NFS-HOWTO.txt.gz</filename>)).
de: NFS-Dienste sind in einigen Netzwerken ziemlich wichtig. Wenn dies fr Sie der Fall ist, mssen Sie einen Ausgleich finden, zwischen Sicherheit und Nutzbarkeit fr Ihr Netzwerk. Sie knnen mehr ber NFS-Sicherheit im <ulink name="NFS-HOWTO" url="http://www.tldp.org/HOWTO/NFS-HOWTO.html"/> (<filename>/usr/share/doc/HOWTO/en-txt/NFS-HOWTO.txt.gz</filename>) finden.

en: Disabling RPC services completely
de: Vollstndiges Deaktivieren von RPC-Diensten

en: Disabling portmap is quite simple. There are several different methods. The simplest one in a Debian 3.0 system and later releases is to uninstall the <application>portmap</application> package. If you are running an older Debian version you will have to disable the service as seen in <xref linkend="disableserv" />, because the program is part of the <application>netbase</application> package (which cannot be de-installed without breaking the system).
de: Das Abschalten von portmap ist relativ einfach. Es gibt verschiedene Methoden. Die einfachste in einem Debian 3.0 oder neueren System ist das Paket <application>portmap</application> zu deinstallieren. Wenn Sie eine ltere Version von Debian laufen haben, werden Sie den Dienst, wie in <xref linkend="disableserv"/> beschrieben, abschalten mssen, weil das Programm Teil des Pakets <application>netbase</application> (das nicht deinstalliert werden kann, ohne das System kaputt zu machen) ist.

en: Notice that some desktop environments (notably, GNOME) use RPC services and need the portmapper for some of the file management features. If this is your case, you can limit the access to RPC services as described below.
de: Beachten Sie, dass einige Desktop-Umgebungen (hauptschlich GNOME) RPC-Dienste verwenden und den Portmapper fr einige der Dateimanager-Eigenschaften bentigen. Wenn dies bei Ihnen der Fall ist, knnen Sie den Zugang zu RPC-Diensten, wie weiter unter beschrieben, beschrnken.

en: Limiting access to RPC services
de: Einschrnken des Zugriffs auf RPC-Dienste

en: Unfortunately, in some cases removing RPC services from the system is not an option. Some local desktop services (notably SGI's <application>fam</application>) are RPC based and thus need a local portmapper. This means that under some situations, users installing a desktop environment (like GNOME) will install the portmapper too.
de: Unglcklicherweise ist es in manchen Fllen nicht mglich, RPC-Dienste vom System zu entfernen. Einige lokale Desktop-Dienste (hauptschlich SGIs <application>fam</application>) sind RPC-basiert und bentigen deshalb einen lokalen Portmapper. Dies bedeutet, dass unter bestimmten Umstnden Benutzer, die eine Desktop-Umgebung (wie GNOME) installieren, den Portmapper auch installieren werden.

en: There are several ways to limit access to the portmapper and to RPC services:
de: Es gibt einige Wege den Zugriff auf den Portmapper und RPC-Dienste zu beschrnken:

en: Block access to the ports used by these services with a local firewall (see <xref linkend="firewall-setup" />).
de: Blockieren des Zugangs zu den Ports, die von diesen Diensten verwendet werden, mit einer lokalen Firewall (vergleiche <xref linkend="firewall-setup"/>)

en: Block access to these services using tcp wrappers, since the portmapper (and some RPC services) are compiled with <filename>libwrap</filename> (see <xref linkend="tcpwrappers" />). This means that you can block access to them through the <filename>hosts.allow</filename> and <filename>hosts.deny</filename> tcp wrappers configuration.
de: Blockieren des Zugangs zu diesen Diensten mittels TCP-Wrappers, da der Portmapper und einige RPC-Dienste mit <filename>libwrap</filename> (siehe <xref linkend="tcpwrappers"/>) kompiliert wurden. Dies bedeutet, dass Sie Zugang zu diesen durch die <filename>hosts.allow</filename> und <filename>hosts.deny</filename> TCP-Wrapper-Konfiguration blockieren knnen.

en: Since version 5-5, the <application>portmap</application> package can be configured to listen only on the loopback interface. To do this, modify <filename>/etc/default/portmap</filename>, uncomment the following line: <literal>#OPTIONS="-i 127.0.0.1"</literal> and restart the portmapper. This is sufficient to allow local RPC services to work while at the same time prevents remote systems from accessing them (see, however, <xref linkend="limit-bindaddr" />).
de: Seit Version 5-5 kann das Paket <application>portmap</application> so konfiguriert werden, dass es nur noch auf der Loopback-Schnittstelle lauscht. Um dies zu erreichen, kommentieren Sie die folgende Zeile in der Datei <filename>/etc/default/portmap</filename> aus: <literal>#OPTIONS="-i 127.0.0.1"</literal> und starten Sie den Portmapper neu. Dies ist ausreichend, um lokale RPC-Dienste laufen zu lassen, whrend zur selben Zeit entfernte Systeme am Zugang gehindert werden (lesen Sie dazu auch <xref linkend="limit-bindaddr"/>).

en: Adding firewall capabilities
de: Hinzufgen von Firewall-Fhigkeiten

en: The Debian GNU/Linux operating system has the built-in capabilities provided by the Linux kernel. If you install a recent Debian release (default kernel installed is 2.6) you will have <command>iptables</command> (netfilter) firewalling available<footnote><para> Available since the kernel version 2.4 (which was the default kernel in Debian 3.0). Previous kernel versions (2.2, available in even older Debian releases) used <command>ipchains</command>. The main difference between <command>ipchains</command> and <command>iptables</command> is that the latter is based on <emphasis>stateful packet inspection</emphasis> which provides for more secure (and easier to build) filtering configurations. Older (and now unsupported) Debian distributions using the 2.0 kernel series needed the appropriate kernel patch.</para></footnote>.
de: Das Debian-GNU/Linux-Betriebssystem hat die eingebauten Fhigkeiten des Linux-Kernels. Wenn Sie eine aktuelle Verffentlichung von Debian (mit dem Standardkernel 2.6) installiert haben, steht Ihnen als Firewall <command>iptables</command> (netfilter) zur Verfgung<footnote><para>Ist seit Kernel 2.4 verfgbar (was der Standardkernel fr Debian 3.0 war). ltere Kernelversionen (wie 2.2, der in lteren Debian-Verffentlichungen enthalten war) verwendeten <command>ipchains</command>. Der Hauptunterschied zwischen <command>ipchains</command> und <command>iptables</command> ist, dass letzteres auf <emphasis>stateful packet inspection</emphasis> (zustandsbehaftete Paketuntersuchung) beruht, so dass Ihnen sicherere (und einfacher zu erstellende) Filterkonfigurationen zur Verfgung stehen. ltere (und nun nicht lnger untersttzte) Debian-Verffentlichungen, die den Kernel 2.0 einsetzen, bentigten einen geeigneten Kernel-Patch. </para></footnote>.

en: Firewalling the local system
de: Firewallen des lokalen Systems

en: You can use firewall rules as a way to secure the access to your local system and, even, to limit the outbound communications made by it. Firewall rules can also be used to protect processes that cannot be properly configured <emphasis>not</emphasis> to provide services to some networks, IP addresses, etc.
de: Sie knnen eine Firewall dazu benutzen, den Zugriff auf Ihr lokales System abzusichern und sogar um die Kommunikation von ihm nach Auen zu beschrnken. Firewall-Regeln knnen auch dazu benutzt werden, Prozesse zu sichern, die nicht vernnftig konfiguriert werden knnen, um Dienste <emphasis>nicht</emphasis> einigen Netzwerken, IP-Adressen, etc. zur Verfgung zu stellen.

en: However, this step is presented last in this manual basically because it is <emphasis>much</emphasis> better not to depend solely on firewalling capabilities in order to protect a given system. Security in a system is made up of layers, firewalling should be the last to include, once all services have been hardened. You can easily imagine a setup in which the system is solely protected by a built-in firewall and an administrator blissfully removes the firewall rules for whatever reason (problems with the setup, annoyance, human error...), this system would be wide open to an attack if there were no other hardening in the system to protect from it.
de: Dieser Schritt ist aber hauptschlich deshalb als letzter in dieser Anleitung, weil es <emphasis>viel</emphasis> besser ist, sich nicht alleine auf die Fhigkeiten der Firewall zu verlassen, um ein System zu schtzen. Die Sicherheit eines Systems setzt sich aus mehreren Ebenen zusammen; eine Firewall sollte die letzte sein, wenn bereits alle Dienste abgehrtet worden sind. Sie knnen sich sicherlich leicht eine Konfiguration vorstellen, bei der ein System lediglich von einer eingebauten Firewall geschtzt wird, und der Administrator glckselig die Firewall-Regeln aus irgendwelchen Grnden (Probleme mit dem Setup, Verdruss, Denkfehler, ...) entfernt. Dieses System wre weit geffnet fr Angriffe, wenn es keine anderen Schutzmanahmen auf dem System gibt.

en: On the other hand, having firewall rules on the local system also prevents some bad things from happening. Even if the services provided are configured securely, a firewall can protect from misconfigurations or from fresh installed services that have not yet been properly configured. Also, a tight configuration will prevent trojans <emphasis>calling home</emphasis> from working unless the firewalling code is removed. Note that an intruder does <emphasis>not</emphasis> need superuser access to install a trojan locally that could be remotely controlled (since binding on ports is allowed if they are not priviledged ports and capabilities have not been removed).
de: Andererseits knnen Firewall-Regeln auf dem lokalen System dafr sorgen, dass bse Dinge nicht passieren. Sogar wenn die bereitgestellten Dienste sicher konfiguriert sind, kann eine Firewall vor Misskonfigurationen oder frisch installierten Diensten, die noch nicht passend konfiguriert sind, schtzen. Auerdem wird eine strenge Konfiguration <emphasis>nach Hause telefonierende</emphasis> Trojaner am Funktionieren hindern, es sei denn, der Firewall-Code wird entfernt. Beachten Sie, dass ein Eindringling <emphasis>keinen</emphasis> Superuser-Zugriff bentigt, um ferngesteuerte Trojaner zu installieren (da es erlaubt ist, sich an Ports zu binden, wenn es sich nicht um einen privilegierten Port handelt und die Fhigkeiten (Capabilities) noch vorhanden sind).

en: Thus, a proper firewall setup would be one with a default deny policy, that is:
de: Demzufolge wre ein passendes Firewall-Setup, eines mit einer standardmigen Richtlinie, die alles ablehnt, was nicht ausdrcklich erlaubt ist, also:

en: incoming connections are allowed only to local services by allowed machines.
de: Eingehende Verbindungen werden nur zu lokalen Diensten von erlaubten Maschinen gestattet.

en: outgoing connections are only allowed to services used by your system (DNS, web browsing, POP, email...).<footnote><para> Unlike personal firewalls in other operating systems, Debian GNU/Linux does not (yet) provide firewall generation interfaces that can make rules limiting them per process or user. However, the iptables code can be configured to do this (see the owner module in the <citerefentry><refentrytitle>iptables</refentrytitle> <manvolnum>8</manvolnum></citerefentry> manual page).</para></footnote>
de: Ausgehende Verbindungen werden nur von Diensten erlaubt, die auf Ihrem System benutzt werden (DNS, Web-Surfen, POP, E-Mail, ...).<footnote><para>Im Gegensatz zu persnlichen Firewalls fr andere Betriebssysteme, stellt Debian GNU/Linux (noch) keine Firewall-Erstellungs-Schnittstelle zur Verfgung, die Regeln erstellen kann, die einzelne Prozesse oder Benutzer einschrnken. Jedoch kann der Iptables-Code so konfiguriert werden, dass er dies kann (siehe dazu das owner-Modul in der Handbuchseite <citerefentry><refentrytitle>iptables</refentrytitle> <manvolnum>8</manvolnum></citerefentry>).</para></footnote>

en: the forward rule denies everything (unless you are protecting other systems, see below).
de: Die Forward-Regel verbietet alles; es sei denn, andere Systeme werden geschtzt (siehe dazu unten).

en: all other incoming or outgoing connections are denied.
de: Alle anderen eingehenden und ausgehenden Verbindungen werden abgelehnt.

en: Using a firewall to protect other systems
de: Schtzen anderer Systeme durch eine Firewall

en: A Debian firewall can also be installed in order to protect, with filtering rules, access to systems <emphasis>behind</emphasis> it, limiting their exposure to the Internet. A firewall can be configured to prevent access from systems outside of the local network to internal services (ports) that are not public. For example, on a mail server, only port 25 (where the mail service is being given) needs to be accessible from the outside. A firewall can be configured to, even if there are other network services besides the public ones running in the mail server, throw away packets (this is known as <emphasis>filtering</emphasis>) directed towards them.
de: Eine Debian-Firewall kann auch so installiert werden, dass sie mit Firewall-Regeln Systeme <emphasis>hinter</emphasis> ihr beschtzt, indem sie die Angriffsflche zum Internet hin einschrnkt. Eine Firewall kann so konfiguriert werden, dass ein Zugriff von Systemen auerhalb des lokalen Netzwerks auf interne Dienste (Ports) unterbunden wird. Zum Beispiel muss auf einem Mail-Server lediglich Port 25 (auf dem der Mail-Dienst aufsetzt) von auen zugnglich sein. Eine Firewall kann so konfiguriert werden, dass sogar, wenn es neben den ffentlich zugnglichen noch andere Netzwerkdienste gibt, direkt an diese gesendete Pakete verworfen werden (dies nennt man <emphasis>filtern</emphasis>).

en: You can even set up a Debian GNU/Linux box as a bridge firewall, i.e. a filtering firewall completely transparent to the network that lacks an IP address and thus cannot be attacked directly. Depending on the kernel you have installed, you might need to install the bridge firewall patch and then go to <emphasis>802.1d Ethernet Bridging</emphasis> when configuring the kernel and a new option <emphasis>netfilter ( firewalling ) support</emphasis>. See the <xref linkend="bridge-fw" /> for more information on how to set this up in a Debian GNU/Linux system.
de: Sie knnen eine Debian GNU/Linux Maschine sogar so konfigurieren, dass sie als Bridge-Firewall (berbrckender Schutzwall) fungiert, d.h. als eine filternde Firewall, die komplett transparent zum gesamten Netzwerk erscheint, ohne IP-Adresse auskommt und daher nicht direkt attackiert werden kann. Abhngig von dem installierten Kernel mssen Sie vielleicht den Bridge-Firewall-Patch installieren und dann <emphasis>802.1d Ethernet Bridging</emphasis> in der Kernel-Konfiguration und die neue Option <emphasis>netfilter ( firewalling ) Support</emphasis> auswhlen. Sehen Sie dazu <xref linkend="bridge-fw"/>, um zu erfahren, wie man dies auf einem Debian GNU/Linux System aufsetzt.

en: Setting up a firewall
de: Aufsetzen einer Firewall

en: The default Debian installation, unlike other Linux distributions, does not yet provide a way for the administrator to setup a firewall configuration throughout the default installation but you can install a number of firewall configuration packages (see <xref linkend="firewall-pack" />).
de: Die Debian-Standardinstallation bietet im Gegensatz zu vielen anderen Linux-Distributionen noch keine Methode fr den Administrator, eine Firewall-Konfiguration mit der Standardinstallation einzurichten, aber Sie knnen eine Anzahl von Firewall-Konfigurationspaketen (siehe <xref linkend="firewall-pack"/>) installieren.

en: Of course, the configuration of the firewall is always system and network dependant. An administrator must know beforehand what is the network layout and the systems to protect, the services that need to be accessed, and whether or not other network considerations (like NAT or routing) need to be taken into account. Be careful when configuring your firewall, as Laurence J. Lane says in the <application>iptables</application> package:
de: Natrlich ist die Konfiguration einer Firewall immer vom System und dem Netzwerk abhngig. Ein Administrator muss vorher das Netzwerklayout und die Systeme, die er beschtzen will, kennen, die Dienste, auf die zugegriffen werden knnen muss, und ob andere netzwerkspezifischen Erwgungen (wie NAT oder Routing) bercksichtigt werden mssen. Seien Sie vorsichtig, wenn Sie Ihre Firewall konfigurieren. Wie Laurence J. Lane im <application>iptables</application>-Paket sagt:

en: <emphasis>The tools can easily be misused, causing enormous amounts of grief by completely crippling network access to a system. It is not terribly uncommon for a remote system administrator to accidentally get locked out of a system hundreds or thousands of miles away. You can even manage to get locked out of a computer who's keyboard is under your own fingers. Please, use due caution.</emphasis>
de: <emphasis>Die Werkzeuge knnen leicht falsch verwendet werden und eine Menge rger verursachen, indem sie den gesamten Zugang zu einem Computernetzwerk stilllegen. Es ist nicht vllig ungewhnlich, dass sich ein Systemadministrator, der ein System verwaltet, das hunderte oder tausende von Kilometern entfernt ist, irrtmlicherweise selbst davon ausgeschlossen hat. Man kann es sogar schaffen, sich von dem Computer auszusperren, dessen Tastatur unter seinen Fingern liegt. Lassen Sie daher die gebotene Vorsicht walten.</emphasis>

en: Remember this: just installing the <application>iptables</application> (or the older firewalling code) does not give you any protection, just provides the software. In order to have a firewall you need to <emphasis>configure</emphasis> it!
de: Vergessen Sie nicht: Das bloe Installieren von <application>iptables</application> (oder dem lteren Firewallcode) gibt Ihnen keine Sicherheit, es stellt lediglich die Software zur Verfgung. Um eine Firewall zu haben, mssen Sie sie konfigurieren!

en: If you do not have a clue on how to set up your firewall rules manually consult the <emphasis>Packet Filtering HOWTO</emphasis> and <emphasis>NAT HOWTO</emphasis> provided by <application>iptables</application> for offline reading at <filename>/usr/share/doc/iptables/html/</filename>.
de: Wenn Sie keine Ahnung haben, wie Sie Ihre Firewall-Regeln manuell aufsetzen sollen, sehen Sie in dem <emphasis>Packet Filtering HOWTO</emphasis> und <emphasis>NAT HOWTO</emphasis> aus dem Paket <application>iptables</application>, zu finden unter <filename>/usr/share/doc/iptables/html/</filename> nach.

en: If you do not know much about firewalling you should start by reading the <ulink name="Firewalling and Proxy Server HOWTO" url="http://www.tldp.org/HOWTO/Firewall-HOWTO.html" />, install the <application>doc-linux-text</application> package if you want to read it offline. If you want to ask questions or need help setting up a firewall you can use the debian-firewall mailing list, see <ulink url="http://lists.debian.org/debian-firewall" />. Also see <xref linkend="references" /> for more (general) pointers on firewalls. Another good iptables tutorial is <ulink url="http://iptables-tutorial.frozentux.net/iptables-tutorial.html" />.
de: Wenn Sie nicht viel ber Firewalls wissen, sollten Sie beginnen, indem Sie das <ulink url="http://www.tldp.org/HOWTO/Firewall-HOWTO.html" name="Firewalling and Proxy Server HOWTO"/> lesen. Installieren Sie das Paket <application>doc-linux-text</application>, wenn Sie es offline lesen wollen. Wenn Sie Fragen stellen wollen oder Hilfe beim Einrichten einer Firewall bentigen, knnen Sie sich an die debian-firewall-Mailingliste wenden, siehe <ulink url="http://lists.debian.org/debian-firewall"/>. Sehen Sie auch <xref linkend="references"/> fr weitere (allgemeinere) Verweise zu Firewalls. Ein weiterer guter Leitfaden fr Iptables ist <ulink url="http://iptables-tutorial.frozentux.net/iptables-tutorial.html"/>.

en: Using firewall packages
de: Nutzen von Firewall-Paketen

en: Setting up manually a firewall can be complicated for novice (and sometimes even expert) administrators. However, the free software community has created a number of tools that can be used to easily configure a local firewall. Be forewarned that some of these tools are oriented more towards local-only protection (also known as <emphasis>personal firewall</emphasis>) and some are more versatile and can be used to configure complex rules to protect whole networks.
de: Das manuelle Aufsetzen einer Firewall kann fr neue (und manchmal auch fr erfahrene) Administratoren kompliziert sein. Hierfr hat die Freie-Software-Gemeinschaft eine groe Zahl von Werkzeugen erstellt, die zur einfachen Konfiguration einer lokalen Firewall benutzt werden knnen. Seien Sie gewarnt, dass einige dieser Werkzeuge sich mehr auf lokalen Schutz konzentrieren (auch <emphasis>personal firewall</emphasis> genannt), whrend andere vielseitiger sind und dazu benutzt werden knnen, komplexere Regelwerke zum Schutz ganzer Netzwerke zu erstellen.

en: Some software that can be used to set up firewall rules in a Debian system is:
de: Einige Programme, die unter Debian zum Aufsetzen von Firewall-Regeln benutzt werden knnen, sind:

en: For desktop systems:
de: Fr Desktop-Systeme:

en: <application>firestarter</application>, a GNOME application oriented towards end-users that includes a wizard useful to quickly setup firewall rules. The application includes a GUI to be able to monitor when a firewall rule blocks traffic.
de: <application>firestarter</application>, eine GNOME-Anwendung, die sich an Endanwender richtet, die einen Wizard enthlt, der ntzlich ist, um schnell Firewall-Regeln aufzustellen. Die Anwendung enthlt eine graphische Oberflche zum Beobachten, ob eine Firewall-Regel Daten blockiert.

en: <application>guarddog</application>, a KDE based firewall configuration package oriented both to novice and advanced users.
de: <application>guarddog</application> ist ein auf KDE beruhendes Paket zur Erstellung von Firewall-Regeln. Es richtet sich sowohl an Neulinge wie auch an Fortgeschrittene.

en: <application>knetfilter</application>, a KDE GUI to manage firewall and NAT rules for iptables (alternative/competitor to the guarddog tool although slightly oriented towards advanced users).
de: <application>knetfilter</application> ist ein KDE-Programm mit  grafischer Oberflche, um Firewall- und NAT-Regeln fr iptables zu verwalten. Es ist eine Alternative zu guarddog, es ist jedoch etwas mehr auf fortgeschrittenere Benutzer ausgelegt.

en: fireflier, an interactive tool to create iptables rules based on traffic seen on the system and applications. It has a server-client model so you have to install both the server (<application>fireflier-server</application>) and one of the available clients, with one client available for different desktop environments: <application>fireflier-client-gtk</application> (Gtk+ client), <application>fireflier-client-kde</application> (KDE client) and <application>fireflier-client-qt</application> (QT client).
de: fireflier ist ein interaktives Werkzeug, um Firewall-Regeln zu erstellen. Dazu analysiert es den Netzwerkverkehr und Anwendungen. Es basiert auf einem Client-Server-Modell, daher mssen Sie sowohl den Server (<application>fireflier-server</application>) als auch einen der zahlreichen Clients (<application>fireflier-client-gtk</application> (Gtk+-Client), <application>fireflier-client-kde</application> (KDE-Client) oder <application>fireflier-client-qt</application> (QT-Client)) installieren.

en: For servers (headless) systems:
de: Fr Server-Systeme (textbasiert):

en: <application>fwbuilder</application>, an object oriented GUI which includes policy compilers for various firewall platforms including Linux' netfilter, BSD's pf (used in OpenBSD, NetBSD, FreeBSD and MacOS X) as well as router's access-lists. It is similar to enterprise firewall management software. Complete fwbuilder's functionality is also available from the command line.
de: <application>fwbuilder</application>, eine objektorientierte graphische Oberflche, die Richtlinien-Compiler fr verschiedene Firewall-Plattformen inklusive Linux' netfilter, BSDs pf (verwendet in OpenBSD, NetBSD, FreeBSD und MacOS X) ebenso wie Zugriffslisten von Routern enthlt. Es ist hnlich zu Enterprise-Firewall-Management-Software. Die vollstndige Funktionalitt von fwbuilder ist auch von der Kommandozeile verfgbar.

en: <application>shorewall</application>, a firewall configuration tool which provides support for IPsec as well as limited support for traffic shaping as well as the definition of the firewall rules. Configuration is done through a simple set of files that are used to generate the iptables rules.
de: <application>shorewall</application>, ein Firewall-Konfigurationswerkzeug, das Untersttzung fr IPsec sowie beschrnkte Untersttzung fr Traffic Shaping und die Definition der Firewall-Regeln bietet. Die Konfiguration geschieht durch eine einfache Menge von Dateien, die verwendet werden, um die iptables-Regeln aufzustellen.

en: <application>bastille</application>, this hardening application is described in <xref linkend="automatic-harden" />. One of the hardening steps that the administrator can configure is a definition of the allowed and disallowed network traffic that is used to generate a set of firewall rules that the system will execute on startup.
de: <application>bastille</application>, diese Hrtungsanwendung ist in <xref linkend="automatic-harden"/> beschrieben. Einer der Hrtungsschritte, die der Administrator konfigurieren kann, ist eine Definition des erlaubten und verbotenen Netzwerkverkehrs, der verwendet wird, eine Anzahl von Firewall-Regeln, die das System am Start ausfhrt, zu generieren.

en: Lots of other iptables frontends come with Debian; an extensive list comparing the different packages in Debian is maintained at the <ulink name="Firewalls page on the Debian wiki" url="http://wiki.debian.org/Firewalls" />.
de: Es gibt in Debian auch noch eine Menge anderer Frontends fr Iptables. Eine vollstndige Liste kann auf der <ulink url="http://wiki.debian.org/Firewalls" name="Firewall-Seite des Debian-Wikis"/>, die auch einen Vergleich der verschiedenen Pakete enthlt, abgerufen werden.

en: Notice that some of the packages outlined previously will introduce firewalling scripts to be run when the system boots. Test them extensively before rebooting or you might find yourself locked from the box. If you mix different firewalling packages you can have undesired effects, usually, the firewalling script that runs last will be the one that configures the system (which might not be what you intend). Consult the package documentation and use either one of these setups.
de: Seien Sie gewarnt, dass manche der zuvor skizzierten Pakete Firewall-Skripte einfhren, die beim Systemstart ausgefhrt werden. Testen Sie diese ausfhrlich, bevor Sie neustarten, oder Sie finden sich selbst ausgesperrt vor Ihrem Rechner wieder. Wenn Sie verschiedene Firewall-Pakete mischen, kann dies zu unerwnschten Nebeneffekten fhren. Gewhnlich wird das Firewall-Skript, das zuletzt ausgefhrt wird, das System konfigurieren (was Sie so vielleicht nicht vorhatten). Sehen Sie hierzu in der Paketdokumentation nach und benutzen Sie nur eines dieser Setups.

en: As mentioned before, some programs, like <application>firestarter</application>, <application>guarddog</application> and <application>knetfilter</application>, are administration GUIs using either GNOME or KDE (last two). These applications are much more user-oriented (i.e. for home users) than some of the other packages in the list which might be more administrator-oriented. Some of the programs mentioned before (like <command>bastille</command>) are focused at setting up firewall rules to protect the host they run in but are not necessarily designed to setup firewall rules for firewall hosts that protect a network (like <command>shorewall</command> or <command>fwbuilder</command>).
de: Wie bereits zuvor erlutert, sind einige Programme wie <application>firestarter</application>, <application>guarddog</application> und <application>knetfilter</application> graphische Administrations-Schnittstellen, die entweder GNOME oder KDE (die letzte beiden) benutzen. Diese sind viel benutzerorientierter (z.B. fr Heimanwender) als einige der anderen Pakete in der Liste, die sich eher an Administratoren richten. Einige der Programme, die zuvor aufgefhrt wurden (wie <command>bastille</command>), fokussieren auf das Erstellen von Firewall-Regeln zum Schutz des Rechners, auf dem sie laufen, sind aber nicht notwendigerweise dafr geschaffen, Firewall-Regeln fr Rechner zu erstellen, die ein Netzwerk schtzen (wie <command>shorewall</command> oder <command>fwbuilder</command>).

en: There is yet another type of firewall application: application proxies. If you are looking into setting up an enterprise-level firewall that does packet filtering and provides a number of transparent proxies that can do fine-grain traffic analysis you should consider using <application>zorp</application>, which provides this in a single program. You can also manually setup this type of firewall host using the proxies available in Debian for different services like for DNS using <application>bind</application> (properly configured), <application>dnsmasq</application>, <application>pdnsd</application> or <application>totd</application> for FTP using <application>frox</application> or <application>ftp-proxy</application>, for X11 using <application>xfwp</application>, for IMAP using <application>imapproxy</application>, for mail using <application>smtpd</application>, or for POP3 using <application>p3scan</application>. For other protocols you can either use a generic TCP proxy like <application>simpleproxy</application> or a generic SOCKS proxy like <application>dante-server</application>, <application>tsocks</application> or <application>socks4-server</application>. Typically, you will also use a web caching system (like <application>squid</application>) and a web filtering system (like <application>squidguard</application> or <application>dansguardian</application>).
de: Es gibt einen weiteren Typ von Firewall-Anwendungen: Anwendungs-Proxys. Wenn Sie eine Mglichkeit suchen, eine Unternehmenslsung aufzusetzen, die Pakete filtert und eine Anzahl von transparenten Proxys bietet, die feinabgestimmte Verkehrsanalysen bieten, so sollten Sie <application>zorp</application> genauer betrachten. Dies bietet alles in einem einzelnen Programm. Sie knnen diese Art von Firewall-Rechner auch manuell aufsetzen, indem Sie die Proxys, die in Debian vorhanden sind, fr verschiedene Dienste verwenden. Zum Beispiel fr DNS <application>bind</application> (richtig konfiguriert), <application>dnsmasq</application>, <application>pdnsd</application> oder <application>totd</application> fr FTP <application>frox</application> oder <application>ftp-proxy</application>, fr X11 <application>xfwp</application>, fr IMAP <application>imapproxy</application>, fr Mail <application>smtpd</application> oder fr POP3 <application>p3scan</application>. Fr andere Protokolle knnen Sie entweder einen allgemeinen TCP-Proxy wie <application>simpleproxy</application> oder einen allgemeinen SOCKS-Proxy wie <application>dante-server</application>, <application>tsocks</application> oder <application>socks4-server</application> verwenden. Typischerweise werden Sie auch ein Web-Cache-System (wie <application>squid</application>) und ein Web-Filtersystem (wie <application>squidguard</application> oder <application>dansguardian</application>) nutzen.

en: Manual init.d configuration
de: Manuelle init.d-Konfiguration

en: Another possibility is to manually configure your firewall rules through an init.d script that will run all the <command>iptables</command> commands. Take the following steps:
de: Eine andere Mglichkeit ist die manuelle Konfiguration Ihrer Firewall-Regeln durch ein init.d-Skript, das die <command>iptables</command>-Befehle ausfhrt. Befolgen Sie diese Schritte:

en: Review the script below and adapt it to your needs.
de: Sehen Sie das unten aufgefhrte Skript durch und passen Sie es Ihren Anforderungen an.

en: Test the script and review the syslog messages to see which traffic is being dropped. If you are testing from the network you will want to either run the sample shell snippet to remove the firewall (if you don't type anything in 20 seconds) or you might want to comment out the <emphasis>default deny</emphasis> policy definitions (<emphasis>-P INPUT DROP</emphasis> and <emphasis>-P OUTPUT DROP</emphasis>) and check that the system will not drop any legitimate traffic.
de: Testen Sie das Skript und berprfen Sie die Syslog-Meldungen nach unterdrckten Netzverkehr. Wenn Sie vom Netzwerk aus testen, werden Sie entweder den Beispielshellcode starten wollen, um die Firewall zu entfernen (wenn Sie nichts innerhalb von 20 Sekunden eingeben) oder Sie sollten die <emphasis>default deny</emphasis>-Richtliniendefinition auskommentieren (<emphasis>-P INPUT DROP</emphasis> und <emphasis>-P OUTPUT DROP</emphasis>) und berprfen, dass das System keine gltigen Daten verworfen hat.

en: Move the script to <filename>/etc/init.d/myfirewall</filename>
de: Verschieben Sie das Skript nach <filename>/etc/init.d/meineFirewall</filename>

en: This is the sample firewall script:
de: Dies ist das Beispiel-Firewallskript:

en: 
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          myfirewall
    # Required-Start:    $local_fs
    # Required-Stop:     $local_fs
    # Default-Start:     S
    # Default-Stop:      0 6
    # X-Start-Before:    $network
    # X-Stop-After:      $network
    # Short-Description: My custom firewall.
    ### END INIT INFO
    #
    # Simple example firewall configuration.
    #
    # Caveats:
    # - This configuration applies to all network interfaces
    #   if you want to restrict this to only a given interface use
    #   '-i INTERFACE' in the iptables calls.
    # - Remote access for TCP/UDP services is granted to any host, 
    #   you probably will want to restrict this using '--source'.
    #
    # chkconfig: 2345 9 91
    # description: Activates/Deactivates the firewall at boot time
    #
    # You can test this script before applying with the following shell
    # snippet, if you do not type anything in 10 seconds the firewall
    # rules will be cleared.
    #---------------------------------------------------------------
    #  while true; do test=""; read  -t 20 -p "OK? " test ; \
    #  [ -z "$test" ] &amp;&amp; /etc/init.d/myfirewall clear ; done
    #---------------------------------------------------------------
    
    PATH=/bin:/sbin:/usr/bin:/usr/sbin
    
    # Services that the system will offer to the network
    TCP_SERVICES="22" # SSH only
    UDP_SERVICES=""
    # Services the system will use from the network
    REMOTE_TCP_SERVICES="80" # web browsing
    REMOTE_UDP_SERVICES="53" # DNS
    # Network that will be used for remote mgmt
    # (if undefined, no rules will be setup)
    # NETWORK_MGMT=192.168.0.0/24
    # If you want to setup a management network (i.e. you've uncommented
    # the above line) you will need to define the SSH port as well (i.e.
    # uncomment the below line.) Remember to remove the SSH port from the
    # TCP_SERVICES string.
    # SSH_PORT="22"
    
    if ! [ -x /sbin/iptables ]; then  
        exit 0
    fi
    
    fw_start () {
    
      # Input traffic:
      /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      # Services
      if [ -n "$TCP_SERVICES" ] ; then
      for PORT in $TCP_SERVICES; do
        /sbin/iptables -A INPUT -p tcp --dport ${PORT} -j ACCEPT
      done
      fi
      if [ -n "$UDP_SERVICES" ] ; then
      for PORT in $UDP_SERVICES; do
        /sbin/iptables -A INPUT -p udp --dport ${PORT} -j ACCEPT
      done
      fi
      # Remote management
      if [ -n "$NETWORK_MGMT" ] ; then
        /sbin/iptables -A INPUT -p tcp --src ${NETWORK_MGMT} --dport ${SSH_PORT} -j ACCEPT
      fi
      # Remote testing
      /sbin/iptables -A INPUT -p icmp -j ACCEPT
      /sbin/iptables -A INPUT -i lo -j ACCEPT
      /sbin/iptables -P INPUT DROP
      /sbin/iptables -A INPUT -j LOG
    
      # Output:
      /sbin/iptables -A OUTPUT -j ACCEPT -o lo 
      /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      # ICMP is permitted:
      /sbin/iptables -A OUTPUT -p icmp -j ACCEPT
      # So are security package updates:
      # Note: You can hardcode the IP address here to prevent DNS spoofing
      # and to setup the rules even if DNS does not work but then you 
      # will not "see" IP changes for this service:
      /sbin/iptables -A OUTPUT -p tcp -d security.debian.org --dport 80 -j ACCEPT 
      # As well as the services we have defined:
      if [ -n "$REMOTE_TCP_SERVICES" ] ; then
      for PORT in $REMOTE_TCP_SERVICES; do
        /sbin/iptables -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
      done
      fi
      if [ -n "$REMOTE_UDP_SERVICES" ] ; then
      for PORT in $REMOTE_UDP_SERVICES; do
        /sbin/iptables -A OUTPUT -p udp --dport ${PORT} -j ACCEPT
      done
      fi
      # All other connections are registered in syslog
      /sbin/iptables -A OUTPUT -j LOG
      /sbin/iptables -A OUTPUT -j REJECT 
      /sbin/iptables -P OUTPUT DROP
      # Other network protections
      # (some will only work with some kernel versions)
      echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies
      echo 0 &gt; /proc/sys/net/ipv4/ip_forward 
      echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 
      echo 1 &gt; /proc/sys/net/ipv4/conf/all/log_martians 
      echo 1 &gt; /proc/sys/net/ipv4/ip_always_defrag
      echo 1 &gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
      echo 1 &gt; /proc/sys/net/ipv4/conf/all/rp_filter
      echo 0 &gt; /proc/sys/net/ipv4/conf/all/send_redirects
      echo 0 &gt; /proc/sys/net/ipv4/conf/all/accept_source_route
    
    }
    
    fw_stop () {
      /sbin/iptables -F
      /sbin/iptables -t nat -F
      /sbin/iptables -t mangle -F
      /sbin/iptables -P INPUT DROP
      /sbin/iptables -P FORWARD DROP
      /sbin/iptables -P OUTPUT ACCEPT
    }
    
    fw_clear () {
      /sbin/iptables -F
      /sbin/iptables -t nat -F
      /sbin/iptables -t mangle -F
      /sbin/iptables -P INPUT ACCEPT
      /sbin/iptables -P FORWARD ACCEPT
      /sbin/iptables -P OUTPUT ACCEPT
    }
    
    
    case "$1" in
      start|restart)
        echo -n "Starting firewall.."
        fw_stop 
        fw_start
        echo "done."
        ;;
      stop)
        echo -n "Stopping firewall.."
        fw_stop
        echo "done."
        ;;
      clear)
        echo -n "Clearing firewall rules.."
        fw_clear
        echo "done."
        ;;
      *)
        echo "Usage: $0 {start|stop|restart|clear}"
        exit 1
        ;;
      esac
    exit 0
de: 
    #!/bin/sh
    # Simple example firewall configuration.
    #
    # Caveats:
    # - This configuration applies to all network interfaces
    #   if you want to restrict this to only a given interface use
    #   '-i INTERFACE' in the iptables calls.
    # - Remote access for TCP/UDP services is granted to any host, 
    #   you probably will want to restrict this using '--source'.
    #
    # chkconfig: 2345 9 91
    # description: Activates/Deactivates the firewall at boot time
    #
    # You can test this script before applying with the following shell
    # snippet, if you do not type anything in 10 seconds the firewall
    # rules will be cleared.
    #---------------------------------------------------------------
    #  while true; do test=""; read  -t 20 -p "OK? " test ; \
    #  [ -z "$test" ] &#38;&#38; /etc/init.d/myfirewall clear ; done
    #---------------------------------------------------------------
    
    PATH=/bin:/sbin:/usr/bin:/usr/sbin
    
    # Services that the system will offer to the network
    TCP_SERVICES="22" # SSH only
    UDP_SERVICES=""
    # Services the system will use from the network
    REMOTE_TCP_SERVICES="80" # web browsing
    REMOTE_UDP_SERVICES="53" # DNS
    # Network that will be used for remote mgmt
    # (if undefined, no rules will be setup)
    # NETWORK_MGMT=192.168.0.0/24
    # Port used for the SSH service, define this is you have setup a
    # management network but remove it from TCP_SERVICES
    # SSH_PORT="22"
    
    if ! [ -x /sbin/iptables ]; then  
        exit 0
    fi
    
    fw_start () {
    
      # Input traffic:
      /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      # Services
      if [ -n "$TCP_SERVICES" ] ; then
      for PORT in $TCP_SERVICES; do
        /sbin/iptables -A INPUT -p tcp --dport ${PORT} -j ACCEPT
      done
      fi
      if [ -n "$UDP_SERVICES" ] ; then
      for PORT in $UDP_SERVICES; do
        /sbin/iptables -A INPUT -p udp --dport ${PORT} -j ACCEPT
      done
      fi
      # Remote management
      if [ -n "$NETWORK_MGMT" ] ; then
        /sbin/iptables -A INPUT -p tcp --src ${NETWORK_MGMT} --dport ${SSH_PORT} -j ACCEPT
      else 
        /sbin/iptables -A INPUT -p tcp --dport ${SSH_PORT}  -j ACCEPT
      fi
      # Remote testing
      /sbin/iptables -A INPUT -p icmp -j ACCEPT
      /sbin/iptables -A INPUT -i lo -j ACCEPT
      /sbin/iptables -P INPUT DROP
      /sbin/iptables -A INPUT -j LOG
    
      # Output:
      /sbin/iptables -A OUTPUT -j ACCEPT -o lo 
      /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      # ICMP is permitted:
      /sbin/iptables -A OUTPUT -p icmp -j ACCEPT
      # So are security package updates:
      # Note: You can hardcode the IP address here to prevent DNS spoofing
      # and to setup the rules even if DNS does not work but then you 
      # will not "see" IP changes for this service:
      /sbin/iptables -A OUTPUT -p tcp -d security.debian.org --dport 80 -j ACCEPT 
      # As well as the services we have defined:
      if [ -n "$REMOTE_TCP_SERVICES" ] ; then
      for PORT in $REMOTE_TCP_SERVICES; do
        /sbin/iptables -A OUTPUT -p tcp --dport ${PORT} -j ACCEPT
      done
      fi
      if [ -n "$REMOTE_UDP_SERVICES" ] ; then
      for PORT in $REMOTE_UDP_SERVICES; do
        /sbin/iptables -A OUTPUT -p udp --dport ${PORT} -j ACCEPT
      done
      fi
      # All other connections are registered in syslog
      /sbin/iptables -A OUTPUT -j LOG
      /sbin/iptables -A OUTPUT -j REJECT 
      /sbin/iptables -P OUTPUT DROP
      # Other network protections
      # (some will only work with some kernel versions)
      echo 1 > /proc/sys/net/ipv4/tcp_syncookies
      echo 0 > /proc/sys/net/ipv4/ip_forward 
      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 
      echo 1 > /proc/sys/net/ipv4/conf/all/log_martians 
      echo 1 > /proc/sys/net/ipv4/ip_always_defrag
      echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
      echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
      echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
      echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
    
    }
    
    fw_stop () {
      /sbin/iptables -F
      /sbin/iptables -t nat -F
      /sbin/iptables -t mangle -F
      /sbin/iptables -P INPUT DROP
      /sbin/iptables -P FORWARD DROP
      /sbin/iptables -P OUTPUT ACCEPT
    }
    
    fw_clear () {
      /sbin/iptables -F
      /sbin/iptables -t nat -F
      /sbin/iptables -t mangle -F
      /sbin/iptables -P INPUT ACCEPT
      /sbin/iptables -P FORWARD ACCEPT
      /sbin/iptables -P OUTPUT ACCEPT
    }
    
    
    case "$1" in
      start|restart)
        echo -n "Starting firewall.."
        fw_stop 
        fw_start
        echo "done."
        ;;
      stop)
        echo -n "Stopping firewall.."
        fw_stop
        echo "done."
        ;;
      clear)
        echo -n "Clearing firewall rules.."
        fw_clear
        echo "done."
        ;;
      *)
        echo "Usage: $0 {start|stop|restart|clear}"
        exit 1
        ;;
      esac
    exit 0

en: Instead of including all of the iptables rules in the init.d script you can use the <command>iptables-restore</command> program to restore the rules saved using <command>iptables-save</command>. In order to do this you need to setup your rules, save the ruleset under a static location (such as <filename>/etc/default/firewall</filename>)
de: Um nicht alle Iptables-Regeln in das Init.d-Skript einfgen zu mssen, knnen Sie auch das Programm <command>iptables-restore</command> verwenden, um die Regeln zu laden, die zuvor mit <command>iptables-save</command> gespeichert wurden. Um dies zu tun, mssen Sie Ihre Regeln erstellen und das Regelwerk statisch speichern (z.B. in <filename>/etc/default/firewall</filename>).

en: Configuring firewall rules through <command>ifup</command>
de: Konfiguration von Firewall-Regeln mittels <command>ifup</command>

en: You can use also the network configuration in <filename>/etc/network/interfaces</filename> to setup your firewall rules. For this you will need to:
de: Sie knnen auch die Netzwerkkonfiguration in <filename>/etc/network/interfaces</filename> verwenden, um Ihre Firewall-Regeln einzurichten. Dafr mssen Sie Folgendes tun:

en: Create your firewalling ruleset for when the interface is active.
de: Erstellen Sie Ihre Firewall-Regeln fr die aktivierte Schnittstelle.

en: Save your ruleset with <command>iptables-save</command> to a file in <filename>/etc</filename>, for example <filename>/etc/iptables.up.rules</filename>
de: Sichern Sie Ihre Regeln mit <command>iptables-save</command> in eine Datei in <filename>/etc</filename>, zum Beispiel <filename>/etc/iptables.up.rules</filename>.

en: Configure <filename>/etc/network/interfaces</filename> to use the configured ruleset:
de: Konfigurieren Sie <filename>/etc/network/interfaces</filename>, diese Regeln zu verwenden:

en: You can optionally also setup a set of rules to be applied when the network interface is <emphasis>down</emphasis> creating a set of rules, saving it in <filename>/etc/iptables.down.rules</filename> and adding this directive to the interface configuration:
de: Wahlweise knnen Sie auch Regeln erstellen, die beim Herunterfahren der Netzwerkschnittstelle ausgefhrt werden. Dazu erzeugen Sie diese, speichern sie in <filename>/etc/iptables.down.rules</filename> und fgen diese Anweisung zur Schnittstellenkonfiguration hinzu:

en: 
        post-down iptables-restore &lt; /etc/iptables.down.rules
de: 
        post-down iptables-restore &#60; /etc/iptables.down.rules

en: For more advanced firewall configuration scripts through <application>ifupdown</application> you can use the hooks available to each interface as in the <filename>*.d/</filename> directories called with <command>run-parts</command> (see <citerefentry><refentrytitle>run-parts</refentrytitle> <manvolnum>8</manvolnum></citerefentry> manual page).
de: Fr weitergehende Firewall-Konfigurationsskripte durch <application>ifupdown</application> knnen Sie die zu jeder Schnittstelle verfgbaren Hooks (Einspringpunkte) wie in den <filename>*.d/</filename>-Verzeichnissen verwenden, die mit <command>run-parts</command> aufgerufen werden (vergleiche <citerefentry><refentrytitle>run-parts</refentrytitle> <manvolnum>8</manvolnum></citerefentry>).

en: Testing your firewall configuration
de: Testen Ihrer Firewall-Konfiguration

en: Testing your firewall configuration is as easy, and as dangerous, as just running your firewall script (or enabling the configuration you defined in your firewall configuration application). However, if you are not careful enough and you are configuring your firewall remotely (like through an SSH connection) you could lock yourself out.
de: Testen Ihrer Firewall-Konfiguration ist so einfach und so schwierig, wie das Starten Ihres Firewall-Skripts (oder die Aktivierung der Konfiguration, die Sie in Ihrer Firewall-Konfigurationsanwendung definierten). Wenn Sie jedoch nicht sorgfltig genug sind und Sie Ihre Firewall aus der Ferne konfigurieren (z.B. durch eine SSH-Verbindung), knnten Sie sich selbst aussperren.

en: There are several ways to prevent this. One is running a script in a separate terminal that will remove the firewall configuration if you don't feed it input. An example of this is:
de: Es gibt mehrere Mglichkeiten, dies zu verhindern. Eine ist das Starten eines Skriptes in einem separaten Terminal, das Ihre Firewall-Konfiguration entfernt, wenn es keine Eingabe von Ihnen erhlt. Ein Beispiel dafr ist:

en: 
    $  while true; do test=""; read  -t 20 -p "OK? " test ; \
      [ -z "$test" ] &amp;&amp; /etc/init.d/firewall clear ; done
de: 
    $  while true; do test=""; read  -t 20 -p "OK? " test ; \
      [ -z "$test" ] &#38;&#38; /etc/init.d/firewall clear ; done

en: Another one is to introduce a backdoor in your system through an alternate mechanism that allows you to either clear the firewall system or punch a hole in it if something goes awry. For this you can use <application>knockd</application> and configure it so that a certain port connection attempt sequence will clear the firewall (or add a temporary rule). Even though the packets will be dropped by the firewall, since <command>knockd</command> binds to the interface and <emphasis>sees</emphasis> you will be able to work around the problem.
de: Eine andere Mglichkeit ist das Einfhren einer Hintertr in Ihr System durch einen alternativen Mechanismus, der es Ihnen erlaubt, das Firewall-System entweder zurckzusetzen oder ein Loch in es schlgt, wenn irgendetwas krumm luft. Dafr knnen Sie <application>knockd</application> verwenden und es so konfigurieren, dass eine spezielle Portverbindungsversuchssequenz die Firewall zurcksetzt (oder eine temporre Regel hinzufgt). Selbst wenn die Pakete von der Firewall zurckgewiesen werden, werden Sie Ihr Problem lsen knnen, da <command>knockd</command> auf der Schnittstelle lauscht und Sie <emphasis>sieht</emphasis>.

en: Testing a firewall that is protecting an internal network is a different issue, you will want to look at some of the tools used for remote vulnerability assessment (see <xref linkend="vuln-asses" />) to probe the network from the outside in (or from any other direction) to test the effectiveness of the firewall configuation.
de: Das Testen einer Firewall, die ein internes Netz schützt, ist eine andere Aufgabe. Schauen Sie sich dafür einige Werkzeuge an, die es für entfernte Ausnutzbarkeitsbewertungen gibt (siehe <xref linkend="vuln-asses" />), um das Netzwerk von außerhalb nach innen (oder aus einer beliebig anderen Richtung) bezüglich der Effektivität der Firewall-Konfiguration zu testen.
