Kapitel 6. Netzwerkapplikationen

Inhaltsverzeichnis

6.1. Webbrowser
6.1.1. Browser-Konfiguration
6.2. Das Mail-System
6.2.1. Grundlagen des E-Mail-Systems
6.2.2. Grundlagen für moderne Mail-Dienste
6.2.3. Die Mail-Konfigurationsstrategie für Arbeitsplatzrechner
6.3. Mail Transfer Agent (MTA)
6.3.1. Die Konfiguration von exim4
6.3.2. Die Konfiguration von Postfix mit SASL
6.3.3. Die Mail-Adress-Konfiguration
6.3.4. Grundlegende MTA-Operationen
6.4. Mail User Agent (MUA)
6.4.1. Grundlegender MUA - Mutt
6.5. Das Werkzeug zum Abrufen und Weiterleiten von entfernt gespeicherten Mails (remote-mail retrieval and forward utility)
6.5.1. getmail-Konfiguration
6.5.2. fetchmail-Konfiguration
6.6. Mail Delivery Agents (MDA) mit Filterfunktion
6.6.1. maildrop-Konfiguration
6.6.2. procmail-Konfiguration
6.6.3. mbox-Inhalte erneut zustellen
6.7. POP3-/IMAP4-Server
6.8. Der Print-Server und Hilfsprogramme
6.9. Der Server für Fernzugriff und Hilfsprogramme (SSH)
6.9.1. Grundlagen von SSH
6.9.2. Portweiterleitung für SMTP-/POP3-Tunnelung
6.9.3. Verbindungen ohne Passwörter für die ferne Seite
6.9.4. Der Umgang mit fremden SSH-Clients
6.9.5. Einrichten von ssh-agent
6.9.6. Wie Sie das ferne System über SSH herunterfahren
6.9.7. Fehlersuche bei SSH
6.10. Weitere Netzwerkanwendungs-Server
6.11. Weitere Netzwerkanwendungs-Clients
6.12. Diagnose von System-Daemons

Nach dem Aufbau der Netzwerkverbindung (laut Kapitel 5, Netzwerkkonfiguration) können Sie verschiedenste Netzwerkapplikationen nutzen.

Es gibt viele Webbrowser-Pakete, um über das Hypertext Transfer Protocol (HTTP-Protokoll) auf ferne Inhalte zuzugreifen:


Sie können möglicherweise bei einigen Browsern die folgenden speziellen URLs verwenden, um die Einstellungen zu kontrollieren:

  • "about:"

  • "about:config"

  • "about:plugins"

Debian bietet viele Pakete mit freien Browser-Plugins im main-Bereich des Archivs, die nicht nur die Nutzung von Java (Software-Plattform) und Flash ermöglichen, sondern auch von MPEG, MPEG2, MPEG4, DivX, Windows Media Video (.wmv), QuickTime (.mov), MP3 (.mp3) und Ogg/Vorbis sowie von DVDs, VCDs usw. Debian stellt im contrib- oder non-free-Bereich des Archivs auch Hilfsprogramme zur Installation von nicht-freien Browser-Paketen bereit.


[Tipp] Tipp

Obwohl die Verwendung der oben genannten Debian-Pakete viel einfacher ist, können Browser-Plugins auch noch manuell aktiviert werden, indem die entsprechende "*.so"-Datei in ein Plugin-Verzeichnis (z.B. "/usr/lib/iceweasel/plugins/") installiert wird; anschließend muss der Browser neu gestartet werden.

Einige Webseiten lehnen Verbindungen aufgrund der user-agent-Angabe des Browsers ab. Sie können diese Situation umgehen, indem Sie die user-agent-Angabe fälschen, zum Beispiel über das Hinzufügen der folgenden Zeile in Benutzer-Konfigurationsdateien wie "~/.gnome2/epiphany/mozilla/epiphany/user.js" oder "~/.mozilla/firefox/*.default/user.js":

user_pref{"general.useragent.override","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"};

Alternativ können Sie diese Variable hinzufügen und zurücksetzen, indem Sie "about:config" in die Adresszeile eingeben und einen Rechtsklick auf den angezeigten Inhalt ausführen.

[Achtung] Achtung

Eine gefälschte user-agent-Angabe kann möglicherweise nachteilige Nebenwirkungen bei der Verwendung von Java haben.

[Achtung] Achtung

Falls Sie vorhaben, den Mail-Server so einzurichten, dass Mails direkt über das Internet ausgetauscht werden, gibt es wahrscheinlich bessere Beschreibungen als dieses grundlegende Dokument.

Zum Mail-System behören viele Server-Programme und Client-Programme, die auf verschiedenen Rechnern laufen. Von der Funktionalität her gibt es drei Arten von Mail-Agent-Programmen:

[Anmerkung] Anmerkung

Die folgenden Konfigurationsbeispiele passen nur für typische mobile Arbeitsplatzrechner an Internetverbindungen, wie sie für Otto-Normalverbraucher üblich sind.

Eine E-Mail besteht aus drei Komponenten: den Absender- und Empfänger-Informationen, wie sie bei einem normalen Brief auf dem Umschlag stehen würden, den Nachrichten-Kopfzeilen (Header) und der eigentlichen Nachricht (dem "Nachrichtenkörper").

Die "An"- und "Von"-Informationen ("To" und "From") auf dem "Umschlag" werden von SMTP genutzt, um die Nachricht zuzustellen. (Die "From"-Information auf dem Umschlag wird auch mit Bounce address/Envelope sender, From_ usw. bezeichnet).

Die "An"- und "Von"-Informationen ("To" und "From") in den Nachrichten-Kopfzeilen werden vom E-Mail-Client (E-Mail-Programm) angezeigt. (Obwohl es sehr gängig ist, dass diese mit den Informationen vom "Umschlag" übereinstimmen, muss dies nicht immer der Fall sein.)

Das E-Mail-Programm (MUA) muss die Nachrichten-Kopfzeilen und den Nachrichtenkörper mittels der Multipurpose Internet Mail Extensions (MIME) auswerten, um den Datentyp und die Kodierung des Nachrichteninhalts korrekt zu bestimmen.

Um Probleme mit Spam (unerwünschte und nicht angeforderte Nachrichten) zu minimieren, implementieren viele Internet-Diensteanbieter für Endbenutzer entsprechende Gegenmaßnahmen:

Wenn Sie Ihr Mail-System konfigurieren oder Probleme bei der Auslieferung von E-Mails beheben möchten, sollten Sie diese neuen Einschränkungen mit in Betracht ziehen.

Im Licht dieser feindseligen Internet-Situation und dieser Einschränkungen bieten einige unabhängige Internet-Mail-Provider wie Yahoo.com und Gmail.com einen sicheren Mail-Dienst an, der von überall aus dem Internet über Transport Layer Security (TLS) und seinen Vorgänger Secure Sockets Layer (SSL) genutzt werden kann:

  • Der Smarthost-Dienst über Port 465 mit dem veralteten SMTP-over-SSL (SMTPS-Protokoll).

  • Der Smarthost-Dienst über Port 587 mit STARTTLS.

  • Ankommende Nachrichten sind erreichbar über den TLS/POP3-Port (995) via POP3.

[Achtung] Achtung

Es ist nicht realistisch, einen SMTP-Server im Netzwerk eines Endverbrauchers laufen zu lassen, um Nachrichten zuverlässig direkt zum entfernten Rechner zu senden. Die Mails werden mit hoher Wahrscheinlichkeit abgelehnt. Sie müssen einen Smarthost-Dienst verwenden, der Ihnen vom Internet-Diensteanbieter oder von einem unabhängigen Mail-Provider bereitgestellt wird.

Der Einfachheit halber gehe ich hier davon aus, dass sich der Smarthost auf "smtp.rechnername.dom" befindet, SMTP-Authentifizierung benötigt und den Message-Submission-Port (587) via STARTTLS verwendet.

Die einfachste Mail-Konfiguration ist, dass Mails zum Smarthost des Providers geschickt bzw. direkt durch den MUA (das Programm, mit dem Sie Ihre Mails lesen und schreiben, Näheres finden Sie in Abschnitt 6.4, „Mail User Agent (MUA)“) vom POP3-Server des Providers abgeholt werden. Diese Art der Konfiguration ist beliebt für vollständig ausgestattete grafische Mail-Programme wie icedove(1), evolution(1) usw. Wenn Sie Nachrichten basierend auf ihrem Typ filtern möchten, nutzen Sie die Filterfunktionen des Mail-Programms. In diesem Fall muss der lokale MTA (ein Dienst rein für den Transport von E-Mails, weitere Informationen finden Sie in Abschnitt 6.3, „Mail Transfer Agent (MTA)“) lediglich den Transport von Nachrichten lokal innerhalb des Rechners (wenn Absender und Empfänger sich auf dem gleichen Rechner befinden) durchführen.

Bitte beachten Sie, dass Debian ein Mehrbenutzersystem ist. Sogar wenn Sie der einzige Nutzer des Rechners sind, gibt es viele Programme die als root laufen und die Ihnen Mails schicken könnten.

Ein alternativer Ansatz für die Konfiguration des Mail-Systems ist, dass die Nachrichten durch den lokalen MTA zum Smarthost des Providers geschickt bzw. durch den MDA (ein Dienst zum Zustellen von Mails, Details dazu in Abschnitt 6.5, „Das Werkzeug zum Abrufen und Weiterleiten von entfernt gespeicherten Mails (remote-mail retrieval and forward utility)“) vom POP3-Server des Providers abgeholt werden. Wenn Sie die Nachrichten basierend auf ihrem Typ filtern möchten, nutzen Sie einen MDA mit Filterfunktion (lesen Sie dazu Abschnitt 6.6, „Mail Delivery Agents (MDA) mit Filterfunktion“), um Mails in separate Mailboxen einzusortieren. Diese Art der Mail-Konfiguration ist üblich für einfache konsolenbasierte MUA wie mutt(1), mew(1) usw., obwohl sie auch mit jedem anderen MUA (Abschnitt 6.4, „Mail User Agent (MUA)“) möglich ist. Der lokale MTA (Abschnitt 6.3, „Mail Transfer Agent (MTA)“) muss hier sowohl den Transfer zum Smarthost des Providers wie auch den lokalen Transfer für Mails innerhalb des Rechners durchführen. Da mobile Arbeitsplatzrechner wie Laptops keinen gültigen FQDN (vollständigen Namen einer Domain) haben, muss der lokale MTA so konfiguriert werden, dass der lokale Mail-Name in ausgehenden Nachrichten versteckt bzw. verändert wird, um Fehler bei der Auslieferung der Nachrichten zu vermeiden (lesen Sie dazu Abschnitt 6.3.3, „Die Mail-Adress-Konfiguration“).

[Tipp] Tipp

Sie möchten vielleicht den MUA/MDA so konfigurieren, dass Maildir genutzt wird, um die E-Mails irgendwo in Ihrem Heimatverzeichnis zu speichern.

Auf normalen Arbeitsplatzrechnern sind die exim4-*- oder postfix-Pakete eine populäre Wahl für den Mail Transfer Agent (MTA). Es liegt an Ihnen.


Obwohl aufgrund des Popcon-Werts exim4-* populärer zu sein scheint als postfix, heißt das nicht, dass postfix unter Debian-Entwicklern nicht beliebt ist. Das Debian-Server-System nutzt sowohl exim4 wie auch postfix. Eine Analyse der Mail-Header von Mailinglisten-Nachrichten prominenter Debian-Entwickler zeigt, dass beide MTAs gleich beliebt sind.

Die exim4-*-Pakete sind bekannt für einen sehr kleinen Speicherbedarf und eine hohe Flexibilität bei der Konfiguration. Das postfix-Paket ist als kompakt, schnell, einfach und sicher bekannt. Beide enthalten großzügige Dokumentation und sind bezüglich Qualität und Lizenz gleich gut.

Es gibt eine große Auswahl von Paketen für Mail Transfer Agents (MTA) mit unterschiedlichen Funktionalitäten und Fokus im Debian-Archiv.


Für das Verschicken von Mails über das Internet via Smarthost (re-)konfigurieren Sie die exim4-*-Pakete wie folgt:

$ sudo /etc/init.d/exim4 stop
$ sudo dpkg-reconfigure exim4-config

Wählen Sie bei "Generelle E-Mail-Einstellungen" den Eintrag "Versand über Sendezentrale (Smarthost); Empfang mit SMTP oder Fetchmail".

Setzen Sie den "E-Mail-Name des Systems:" auf seinen Standardwert, den FQDN (Näheres dazu in Abschnitt 5.1.1, „Die Auflösung des Rechnernamens“).

Bei "IP-Adressen, an denen eingehende SMTP-Verbindungen erwartet werden:" wählen Sie den Standardwert "127.0.0.1 ; ::1".

Löschen Sie alle eingetragenen Werte bei der Abfrage von "Weitere Ziele, für die E-Mails angenommen werden sollen:".

Löschen Sie alle eingetragenen Werte bei der Abfrage von "Rechner, für die E-Mails weitergeleitet werden (Relay):".

Setzen Sie "IP-Adresse oder Rechnername der Sendezentrale für ausgehende E-Mails:" auf "smtp.hostname.dom:587".

Wählen Sie "<Nein>" bei der Frage "Lokalen E-Mail-Namen in ausgehenden E-Mails verbergen?". (Nutzen Sie stattdessen "/etc/email-addresses" wie in Abschnitt 6.3.3, „Die Mail-Adress-Konfiguration“ beschrieben.)

Bei der Abfrage "DNS-Anfragen minimieren (Automatische Einwahl, Dial-on-Demand)?" gehen Sie wie folgt vor:

  • Wählen Sie "Nein", wenn Ihr System während des Rechnerstarts mit dem Internet verbunden ist.

  • Wählen Sie "Ja", wenn Ihr System während des Rechnerstarts nicht mit dem Internet verbunden ist.

Setzen Sie den Wert für "Versandart bei lokaler E-Mail-Zustellung:" auf "Mbox-Format in /var/mail/".

Bei der Frage "Einstellungen auf kleine Dateien aufteilen?" wählen Sie "<Ja>".

Erzeugen Sie Passworteinträge für den Smarthost, indem Sie "/etc/exim4/passwd.client" editieren:

$ sudo vim /etc/exim4/passwd.client
 ...
$ cat /etc/exim4/passwd.client
^smtp.*\.rechnername\.dom:benutzername@rechnername.dom:passwort

Starten Sie exim4 mit folgendem Befehl:

$ sudo /etc/init.d/exim4 start

Der Rechnername in "/etc/exim4/passwd.client" sollte nicht der Alias-Name sein. Sie können den echten Rechnernamen wie folgt herausfinden:

$ host smtp.rechnername.dom
smtp.rechnername.dom is an alias for smtp99.rechnername.dom.
smtp99.rechnername.dom has address 123.234.123.89

Ich verwende reguläre Ausdrücke in "/etc/exim4/passwd.client", um das Alias-Problem zu umgehen. SMTP AUTH funktioniert unter Umständen sogar, wenn der Internet-Diensteanbieter den Host (Rechner), auf den der Alias zeigt, verändert.

Sie können die exim4-Konfiguration händisch aktualisieren, indem Sie wie folgt vorgehen:

  • Aktualisieren der exim4-Konfigurationsdateien in "/etc/exim4/".

    • Erzeugen von "/etc/exim4/exim4.conf.localmacros", um MACROs zu aktivieren und Editieren von "/etc/exim4/exim4.conf.template" (bei Installation ohne gesplittete Konfigurationsdateien)

    • Erzeugen neuer oder Editieren vorhandener Dateien in den Unterverzeichnissen von "/etc/exim4/exim4.conf.d" (bei Installation mit gesplitteten Konfigurationsdateien)

  • Ausführen von "invoke-rc.d exim4 reload".

Lesen Sie bitte die offizielle Anleitung unter "/usr/share/doc/exim4-base/README.Debian.gz" und update-exim4.conf(8).

[Achtung] Achtung

Das Starten von exim4 dauert ziemlich lange, wenn die Frage "DNS-Anfragen minimieren (Automatische Einwahl, Dial-on-Demand)?" mit "Nein" (dem Standardwert) beantwortet wurde und das System während dem Rechnerstart nicht mit dem Internet verbunden ist.

[Warnung] Warnung

Es ist nicht sicher, Klartext-Passwörter ohne Verschlüsselung zu verwenden, auch wenn Ihr Internet-Diensteanbieter dies erlaubt.

[Tipp] Tipp

Obwohl die Verwendung von SMTP mit STARTTLS auf Port 587 empfohlen wird, nutzen einige Provider immer noch das veraltete SMTPS (SSL auf Port 465). Exim4 ab Version 4.77 unterstützt dieses veraltete SMTPS-Protokoll sowohl als Client wie auch als Server.

[Tipp] Tipp

Falls Sie nach einem ressourcen-schonenden MTA für Ihren Laptop suchen, der die Einträge von "/etc/aliases" berücksichtigt, sollten Sie in Betracht ziehen, exim4(8) mit "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'" usw. in "/etc/default/exim4" zu konfigurieren.

Für das Verschicken von Mails über das Internet via Smarthost sollten Sie zunächst die Postfix-Dokumentation und einschlägige dazugehörige Handbuchseiten lesen.


Sie (re-)konfigurieren die postfix- und sasl2-bin-Pakete wie folgt:

$ sudo /etc/init.d/postfix stop
$ sudo dpkg-reconfigure postfix

Wählen Sie "Internet mit Smarthost".

Setzen Sie "SMTP-Relay-Server (leere Eingabe: keiner):" auf "[smtp.rechnername.dom]:587" und konfigurieren Sie ihn mit folgenden Befehlen:

$ sudo postconf -e 'smtp_sender_dependent_authentication = yes'
$ sudo postconf -e 'smtp_sasl_auth_enable = yes'
$ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
$ sudo postconf -e 'smtp_sasl_type = cyrus'
$ sudo vim /etc/postfix/sasl_passwd

Erzeugen Sie Passworteinträge für den Smarthost:

$ cat /etc/postfix/sasl_passwd
[smtp.rechnername.dom]:587     benutzername:passwort
$ sudo postmap hush:/etc/postfix/sasl_passwd

Starten Sie postfix wie folgt:

$ sudo /etc/init.d/postfix start

Hierbei stellt die Verwendung von "[" und "]" im dpkg-reconfigure-Dialog und in "/etc/postfix/sasl_passwd" sicher, dass keine MX-Einträge abgefragt werden, sondern direkt der angegebene Rechnername genutzt wird. Lesen Sie dazu "Enabling SASL authentication in the Postfix SMTP client" in "/usr/share/doc/postfix/html/SASL_README.html".

Es gibt mehrere Dateien zur Konfiguration der Mail-Adresse für Mail Transfer Agents, Mail Delivery Agents und Mail User Agents.


Der mailname in der Datei "/etc/mailname" ist normalerweise ein voll-qualifizierter Domain-Name (FQDN), der sich auf eine der IP-Adressen des Rechners auflösen lässt. Bei mobilen Arbeitsplatzrechnern, die keinen Rechnernamen mit einer aufzulösenden IP-Adresse haben, setzen Sie diesen mailname auf den Wert von "hostname -f". (Dies ist eine sichere Wahl und funktioniert sowohl für exim4-* wie auch für postfix.)

[Tipp] Tipp

Der Inhalt von "/etc/mailname" wird von vielen nicht-MTA-Programmen für deren Standardverhalten genutzt. Für mutt setzen Sie die "hostname"- und "from"-Variablen in der Datei ~/muttrc, um den mailname-Wert zu überschreiben. Für Programme im devscripts-Paket, wie bts(1) und dch(1), exportieren Sie die Umgebungsvariablen "$DEBFULLNAME" und "$DEBEMAIL", um ihn zu überschreiben.

[Tipp] Tipp

Das Paket popularity-contest sendet normalerweise Mails vom root-Konto mit dem FQDN. Sie müssen MAILFROM in /etc/popularity-contest.conf setzen, wie in der Datei /usr/share/popularity-contest/default.conf beschrieben. Andernfalls wird Ihre Mail vom Smarthost-SMTP-Server abgelehnt werden. Obwohl lästig, ist dieser Ansatz sicherer als das Neuschreiben der Ursprungsadresse für alle Mails von root über den MTA und sollte für andere Daemons und cron-Skripte ebenfalls genutzt werden.

Wenn Sie den mailname auf den Wert von "hostname -f" setzen, kann die Änderung der Mail-Ursprungsadresse via MTA wie folgt realisiert werden:

  • für exim4(8) über die Datei "/etc/email-addresses", wie in exim4-config_files(5) beschrieben;

  • für postfix(1) über die Datei "/etc/postfix/generic", wie in generic(5) beschrieben.

Für postfix sind die folgenden zusätzlichen Schritte nötig:

# postmap hash:/etc/postfix/generic
# postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
# postfix reload

Sie können die Mailadressen-Konfiguration wie folgt testen:

  • exim(8) mit den Optionen -brw, -bf, -bF, -bV, …;

  • postmap(1) mit der Option -q.

[Tipp] Tipp

Exim wird zusammen mit mehreren Hilfsprogrammen wie exiqgrep(8) und exipick(8) ausgeliefert. Informationen über verfügbare Befehle finden Sie über "dpkg -L exim4-base|grep man8/".

Wenn Sie Debian-bezogene Mailinglisten abonnieren, könnte es sinnvoll sein, einen MUA wie mutt oder mew zu verwenden, welche der De-Facto-Standard für Teilnehmer sind und sich wie dort erwartet verhalten.


Passen Sie "~/.muttrc" wie folgt an, um mutt als Mail User Agent (MUA) in Kombination mit vim zu nutzen.

#
# Benutzer-spezifische Konfigurationsdatei, um /etc/Muttrc zu überschreiben
#
# Quell-Mail-Adresse verändern
set use_from
set hostname=example.dom
set from="Vorname Nachname <benutzername@example.dom>"
set signature="~/.signature"

# vim: "gq" zum Umformatieren von Zitaten
set editor="vim -c 'set tw=72 et ft=mail'"

# "mutt" zeigt den Posteingang, während "mutt -y" die Mailboxen auflistet
set mbox_type=Maildir           # qmail-Maildir-Format zur Erzeugung der mbox verwenden
set mbox=~/Mail                 # alle Mailboxen in $HOME/Mail/ ablegen
set spoolfile=+Inbox            # Neue Mails in $HOME/Mail/Inbox einliefern
set record=+Outbox              # Kopien ausgehender Mails in $HOME/Mail/Outbox ablegen
set postponed=+Postponed        # Zurückgestellte Mails in $HOME/Mail/postponed ablegen
set move=no                     # Inbox-Elemente nicht in mbox verschieben
set quit=ask-yes                # Nicht mit einem einfachen "q" beenden, sondern vorher nachfragen
set delete=yes                  # Elemente beim Beenden ohne Nachfrage löschen
set fcc_clear                   # Kopien ausgehender Mails unverschlüsselt speichern

# Mailboxen in Maildir (automatische Aktualisierung)
mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "`
unmailboxes Maillog *.ev-summary

## Standardeinstellung:
#set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s"
## Index von Antwortketten mit Sender (ausgeklappt)
set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s"

## Standardeinstellung:
#set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
## Nur Ordnernamen
set folder_format="%2C %t %N %f"

Fügen Sie folgendes zu "/etc/mailcap" oder "~/.mailcap" hinzu, um HTML-Mails und MS-Word-Anhänge im Mailprogramm integriert anzuzeigen:

text/html; lynx -force_html %s; needsterminal;
application/msword; /usr/bin/antiword '%s'; copiousoutput; description="Microsoft Word Text"; nametemplate=%s.doc
[Tipp] Tipp

Mutt kann als IMAP-Client und Mailbox-Formatkonvertierer verwendet werden. Sie können Nachrichten mit "t", "T" usw. markieren. Diese markierten Nachrichten können mit ";C" zwischen verschiedenen Mailboxen kopiert und mit ";d" in einem Rutsch gelöscht werden.

Statt einen MUA laufen zu lassen, der auf Mails auf einem fernen Server zugreift, und diese manuell zu verarbeiten, möchten Sie diesen Prozess vielleicht automatisieren, um alle Mails auf Ihren lokalen Rechner vor Ort geliefert zu bekommen. Das Werkzeug zum Abrufen und Weiterleiten von fern gespeicherten Mails ist das richtige für diesen Fall.

Obwohl fetchmail(1) der De-Facto-Standard für das Abrufen von entfernt gespeicherten Mails unter GNU/Linux war, mag der Autor getmail(1) jetzt lieber. Wenn Sie Mails bereits vor dem Herunterladen verwerfen möchten, um Bandbreite zu sparen, könnte auch mailfilter oder mpop für Sie nützlich sein. Welches Mail-Abrufwerkzeug Sie auch immer verwenden, es ist eine gute Idee, das System so zu konfigurieren, dass abgerufene Mails über eine Weiterleitung einem MDA wie maildrop übergeben werden.


Die Konfiguration von getmail(1) ist beschrieben in der getmail-Dokumentation (englisch). Hier ist mein Setup, um mehrere POP3-Konten als Benutzer abrufen zu können.

Erzeugen Sie "/usr/local/bin/getmails" wie hier:

#!/bin/sh
set -e
if [ -f $HOME/.getmail/running ]; then
  echo "getmail is already running ... (if not, remove $HOME/.getmail/running)" >&2
  pgrep -l "getmai[l]"
  exit 1
else
  echo "getmail has not been running ... " >&2
fi
if [ -f $HOME/.getmail/stop ]; then
  echo "do not run getmail ... (if not, remove $HOME/.getmail/stop)" >&2
  exit
fi
if [ "x$1" = "x-l" ]; then
  exit
fi
rcfiles="/usr/bin/getmail"
for file in $HOME/.getmail/config/* ; do
  rcfiles="$rcfiles --rcfile $file"
done
date -u > $HOME/.getmail/running
eval "$rcfiles $@"
rm $HOME/.getmail/running

Führen Sie folgende Konfiguration aus:

$ sudo chmod 755 /usr/local/bin/getmails
$ mkdir -m 0700 $HOME/.getmail
$ mkdir -m 0700 $HOME/.getmail/config
$ mkdir -m 0700 $HOME/.getmail/log

Erzeugen Sie für jedes POP3-Konto eine Konfigurationsdatei "$HOME/.getmail/config/pop3_name" wie hier:

[retriever]
type = SimplePOP3SSLRetriever
server = pop.example.com
username =  pop3_name@example.com
password = <ihr_Passwort>

[destination]
type = MDA_external
path = /usr/bin/maildrop
unixfrom = True

[options]
verbose = 0
delete = True
delivered_to = False
message_log = ~/.getmail/log/pop3_name.log

Führen Sie folgende Konfiguration aus:

$ chmod 0600 $HOME/.getmail/config/*

Legen Sie fest, dass "/usr/local/bin/getmails" mittels cron(8) alle 15 Minuten ausgeführt wird; Sie erreichen dies, indem Sie "sudo crontab -e -u <benutzername>" ausführen und folgendes zum cron-Eintrag des Benutzers hinzufügen:

5,20,35,50 * * * * /usr/local/bin/getmails --quiet
[Tipp] Tipp

Probleme mit dem POP3-Zugriff müssen nicht zwingend von getmail kommen. Einige populäre freie POP3-Anbieter könnten das POP3-Protokoll missbrauchen und ihre Spam-Filter könnten nicht ideal eingestellt sein. Zum Beispiel könnten Sie Nachrichten direkt nach dem Empfangen des RETR-Kommandos löschen, statt zu warten, bis sie das DELE-Kommando bekommen haben oder Sie könnten Nachrichten in den Spam-Ordner in Quarantäne schicken. Um Schäden zu minimieren, sollten Sie die Konfiguration so wählen, dass Nachrichten, auf die zugegriffen wurde, archiviert und nicht gelöscht werden. Lesen Sie dazu auch "Einige E-Mails wurden nicht heruntergeladen.".

Die meisten MTA-Programme wie postfix und exim4 fungieren als MDA (Mail Delivery Agent). Es gibt auch spezialisierte MDAs mit Filterfunktion.

Obwohl procmail(1) der De-Facto-Standard für MDAs mit Filterfunktion unter GNU/Linux war, mag der Autor maildrop(1) jetzt lieber. Welches Filterwerkzeug Sie auch immer verwenden, es ist eine gute Idee, das System so zu konfigurieren, dass abgerufene, gefilterte Mails an eine qmail-artige Maildir-Struktur übergeben werden.


Die Konfiguration von maildrop(1) ist beschrieben in der maildropfilter-Dokumentation (englisch). Hier ein Konfigurationsbeispiel für "$HOME/.mailfilter":

# Lokale Konfiguration
MAILROOT="$HOME/Mail"
# Setzen Sie dies auf den Inhalt von /etc/mailname
MAILHOST="example.dom"
logfile $HOME/.maildroplog

# Mit den Regeln wird der frühere Wert durch den späteren ersetzt.

# Mailinglisten-Nachrichten?
if (     /^Precedence:.*list/:h || /^Precedence:.*bulk/:h )
{
    # Regeln für Mailinglisten-Nachrichten
    # Standard-Mailbox für Nachrichten von Mailinglisten
    MAILBOX="Inbox-list"
    # Standard-Mailbox für Nachrichten von debian.org
    if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h )
    {
        MAILBOX="service.debian.org"
    }
    # Standard-Mailbox für Nachrichten von bugs.debian.org (BTS)
    if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # Mailbox für jede korrekt betreute Mailingliste mit "List-Id: foo"    # oder "List-Id: ...<foo.bar>"
    if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h )
    {
        MAILBOX="$MATCH2"
    }
}
else
{
    # Regeln für Nachrichten, die nicht von Mailinglisten kommen
    # Standard-Posteingangs-Mailbox
    MAILBOX="Inbox-unusual"
    # lokale Nachrichten
    if ( /Envelope-to: .*@$MAILHOST/:h )
    {
        MAILBOX="Inbox-local"
    }
    # html-Nachrichten (zu 99% Spam)
    if ( /DOCTYPE html/:b ||\
         /^Content-Type: text\/html/ )
    {
        MAILBOX="Inbox-html"
    }
    # Blacklist-Regel für Spam-Nachrichten
    if ( /^X-Advertisement/:h ||\
         /^Subject:.*BUSINESS PROPOSAL/:h ||\
         /^Subject:.*URGENT.*ASISSTANCE/:h ||\
         /^Subject: *I NEED YOUR ASSISTANCE/:h )
    {
        MAILBOX="Inbox-trash"
    }
    # Whitelist-Regel für normale Nachrichten
    if ( /^From: .*@debian.org/:h ||\
         /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\
         /^Subject: .*(debian|bug|PATCH)/:h )
    {
        MAILBOX="Inbox"
    }
    # Whitelist-Regel für Nachrichten vom BTS
    if ( /^Subject: .*Bug#.*/:h ||\
         /^(To|Cc): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # Whitelist-Regel für getmails cron-Nachrichten
    if ( /^Subject: Cron .*getmails/:h )
    {
        MAILBOX="Inbox-getmails"
    }
}

# Auf Existenz von $MAILBOX prüfen
`test -d $MAILROOT/$MAILBOX`
if ( $RETURNCODE == 1 )
{
    # maildir-Mailbox für $MAILBOX erzeugen
    `maildirmake $MAILROOT/$MAILBOX`
}
# An maildir-$MAILBOX zustellen
to "$MAILROOT/$MAILBOX/"
exit
[Warnung] Warnung

Anders als procmail, erzeugt maildrop fehlende maildir-Verzeichnisse nicht automatisch. Sie müssen sie im Vornherein händisch mit maildirmake(1) erstellen, wie im obigen Beispiel von "$HOME/.mailfilter".

Wenn Sie einen privaten Server im Netzwerk betreiben, sollten Sie in Erwägung ziehen, einen POP3-/IMAP4-Server laufen zu lassen, um Mails an Clients im Netzwerk zuzustellen.


Im alten Unix-ähnlichen System war der BSD Line Printer Daemon Standard. Da das Standard-Druckausgabe-Format von freier Software auf Unix-artigen Systemen PostScript ist, wurde ein Filtersystem zusammen mit Ghostscript verwendet, um das Drucken auf nicht-PostScript-Druckern zu ermöglichen.

Mittlerweile ist Common UNIX Printing System (CUPS) der neue De-Facto-Standard. CUPS nutzt das Internet Printing Protocol (IPP). IPP wird jetzt auch von anderen Betriebssystemen wie Windows XP und Mac OS X unterstützt und ist der plattform-übergreifende De-Facto-Standard für das Drucken von fern mit bi-direktionalen Kommunikationsfähigkeiten.

Das Standard-Format für druckbare Daten in Anwendungen auf dem Debian-System ist PostScript (PS), was eine Seitenbeschreibungssprache (Page Description Language) ist. Die Daten im PS-Format werden in den Ghostscript-PostScript-Interpreter eingespeist, um druckbare Daten spezifisch für den jeweiligen Drucker zu erzeugen. Lesen Sie dazu Abschnitt 11.4.1, „Ghostscript“.

Dank der Dateiformat-abhängigen automatischen Konvertierungsfunktion des CUPS-Systems sollte das einfache Übergeben jeglicher Daten an den lpr-Befehl zur gewünschten Druckausgabe führen. (In CUPS kann lpr aktiviert werden, indem das cups-bsd-Paket installiert wird.)

Das Debian-System enthält einige erwähnenswerte Pakete für Print-Server und deren Hilfsprogramme:


[Tipp] Tipp

Sie können das CUPS-System konfigurieren, indem Sie in Ihrem Browser "http://localhost:631/" eingeben.

Die Secure SHell (SSH) ist der sichere Weg für Verbindungen über das Internet. Eine freie Version von SSH namens OpenSSH ist in Debian über die openssh-client- und openssh-server-Pakete verfügbar.


[Achtung] Achtung

Lesen Sie Abschnitt 4.7.3, „Zusätzliche Sicherheitsmaßnahmen für das Internet“, falls Ihr SSH über das Internet erreichbar ist.

[Tipp] Tipp

Bitte nutzen Sie das Programm screen(1), um dem Remote-Shell-Prozess die Chance zu geben, eine Verbindungsunterbrechung zu überstehen (Weiteres dazu finden Sie in Abschnitt 9.1, „Das screen-Programm“).

[Warnung] Warnung

Wenn Sie den OpenSSH-Server laufen lassen möchten, darf "/etc/ssh/sshd_not_to_be_run" nicht vorhanden sein.

SSH hat zwei Authentifizierungsprotokolle:


[Achtung] Achtung

Seien Sie vorsichtig bezüglich dieser Unterschiede, wenn Sie kein Debian-System verwenden.

Lesen Sie "/usr/share/doc/ssh/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1) und ssh-keygen(1) für weitere Details.

Hier einige wichtige Konfigurationsdateien:


[Tipp] Tipp

Informationen, wie Sie öffentliche und geheime SSH-Schlüssel verwenden, finden Sie in ssh-keygen(1), ssh-add(1) und ssh-agent(1).

[Tipp] Tipp

Stellen Sie sicher, dass Sie die Einstellungen verifizieren, indem Sie die Verbindung testen. Bei jeglichen Problemen verwenden Sie "ssh -v".

[Tipp] Tipp

Sie können die Passphrase später mit "ssh-keygen -p" ändern, um lokale geheime SSH-Schlüssel zu verschlüsseln.

[Tipp] Tipp

Sie können weitere Optionen zu den Einträgen in "~/.ssh/authorized_keys" hinzufügen, um die erlaubten Rechner einzuschränken und spezifische Befehle ausführen. Lesen Sie dazu sshd(8) bezüglich weiterer Details.

Mit folgenden Befehlen starten Sie eine ssh(1)-Verbindung von einem Client:


Wenn Sie den gleichen Benutzernamen auf dem lokalen und dem fernen Rechner nutzen, können Sie die Angabe von "benutzername@" weglassen. Sogar wenn Sie unterschiedliche Benutzernamen nutzen, können Sie sie weglassen, sofern Sie "~/.ssh/config" verwenden. Für den Debian Alioth-Service mit dem Kontoname "foo-guest" muss "~/.ssh/config" folgendes enthalten:

Host alioth.debian.org svn.debian.org git.debian.org
    User foo-guest

Für den Benutzer fungiert ssh(1) als clevere und sichere Alternative zu telnet(1). Anders als der telnet-Befehl scheitert ssh nicht am telnet-Maskierungszeichen (escape character; Standardeinstellung STRG-]).

Man kann es vermeiden, sich Passwörter für ferne Systeme merken zu müssen, indem man "RSAAuthentication" (SSH-1-Protokoll) oder "PubkeyAuthentication" (SSH-2-Protokoll) nutzt.

Setzen Sie dazu auf dem fernen System die entsprechenden Einträge "RSAAuthentication yes" bzw. "PubkeyAuthentication yes" in "/etc/ssh/sshd_config".

Erzeugen Sie die Authentifizierungs-Schlüssel lokal und installieren Sie sie wie folgt auf dem fernen System:

  • "RSAAuthentication": RSA-Schlüssel für SSH-1 (nicht mehr empfohlen, da veraltet)

$ ssh-keygen
$ cat .ssh/identity.pub | ssh benutzer1@ferner-server "cat - >>.ssh/authorized_keys"
  • "PubkeyAuthentication": RSA-Schlüssel für SSH-2

$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub | ssh benutzer1@ferner-server "cat - >>.ssh/authorized_keys"
  • "PubkeyAuthentication": DSA-Schlüssel für SSH-2 (nicht mehr empfohlen, da zu langsam)

$ ssh-keygen -t dsa
$ cat .ssh/id_dsa.pub | ssh benutzer1@ferner-server "cat - >>.ssh/authorized_keys"
[Tipp] Tipp

Die Verwendung von DSA-Schlüsseln für SSH-2 wird nicht mehr empfohlen, da der Schlüssel kürzer ist und langsam. Es gibt keine Gründe mehr, DSA zu verwenden zwecks Umgehung des RSA-Patents, da dieses abgelaufen ist. DSA steht für Digital Signature Algorithm und ist langsam. Lesen Sie auch DSA-1571-1.

[Anmerkung] Anmerkung

Damit "HostbasedAuthentication" in SSH-2 funktioniert, müssen Sie den Wert von "HostbasedAuthentication" in "yes" ändern, um zwar sowohl in "/etc/ssh/sshd_config" auf dem Server wie auch in "/etc/ssh/ssh_config" oder "~/.ssh/config" auf dem Client.

Sie müssen den Prozess, der das "shutdown -h now" ausführt (lesen Sie Abschnitt 1.1.8, „Wie Sie das System herunterfahren“), davor schützen, durch SSH beendet zu werden. Verwenden Sie dazu wie folgt den at(1)-Befehl (weiteres zu at in Abschnitt 9.3.13, „Einmalige Aufgaben planen“):

# echo "shutdown -h now" | at now

"shutdown -h now" in einer screen(1)-Sitzung auszuführen (weitere Infos in Abschnitt 9.1, „Das screen-Programm“) ist ein anderer Weg dafür.

Hier einige weitere Netzwerkanwendungs-Server:


Das Common Internet File System - Protokoll (CIFS) ist das gleiche Protokoll wie Server Message Block (SMB) und wird von Microsoft Windows ausgedehnt genutzt.

[Tipp] Tipp

In Abschnitt 4.5.2, „Modernes zentralisiertes Systemmanagement“ finden Sie Informationen zur Integration von Server-Systemen.

[Tipp] Tipp

Die Rechnernamenauflösung wird normalerweise über den DNS-Server realisiert. Für IP-Adressen, die dynamisch über einen DHCP-Server zugewiesen werden, kann Dynamic DNS eingerichtet werden; dazu können bind9 und isc-dhcp-server genutzt werden, wie auf der DDNS-Seite im Debian-Wiki beschrieben.

[Tipp] Tipp

Die Verwendung eines Proxy-Servers wie squid ist viel effizienter, um Bandbreite zu sparen, als ein lokaler Archiv-Spiegel mit dem vollständigen Inhalt des Debian-Archivs.

Hier einige weitere Netzwerkanwendungs-Clients:


Das telnet-Programm ermöglicht die manuelle Verbindung zu den System-Daemons und ihren Diagnosefunktionen.

Um einen reinen POP3-Dienst zu testen, probieren Sie folgendes:

$ telnet mail.ispname.net pop3

Um einen POP3-Dienst mit aktiviertem TLS/SSL zu testen, wie sie bei manchen Providern vorkommen, benötigen Sie einen telnet-Client mit aktiviertem TLS/SSL, z.B. aus dem telnet-ssl- oder openssl-Paket.

$ telnet -z ssl pop.gmail.com 995
$ openssl s_client -connect pop.gmail.com:995

Die folgenden RFCs enthalten das zur Diagnose erforderliche Wissen für jeden System-Daemon.


Die Verwendung der Ports ist in "/etc/services" beschrieben.