Kapitel 6. Netzwerkapplikationen

Inhaltsverzeichnis

6.1. Webbrowser
6.1.1. Spoofing the User-Agent string
6.1.2. Browser extension
6.2. Das Mail-System
6.2.1. Grundlagen des E-Mail-Systems
6.2.2. Modern mail service limitation
6.2.3. Historic mail service expectation
6.2.4. Mail Transfer Agent (MTA)
6.2.4.1. Die Konfiguration von exim4
6.2.4.2. Die Konfiguration von Postfix mit SASL
6.2.4.3. Die Mail-Adress-Konfiguration
6.2.4.4. Grundlegende MTA-Operationen
6.3. Der Server für Fernzugriff (SSH) und Hilfsprogramme
6.3.1. Grundlagen von SSH
6.3.2. User name on the remote host
6.3.3. Verbindungen ohne Passwörter für die ferne Seite
6.3.4. Der Umgang mit fremden SSH-Clients
6.3.5. Einrichten von ssh-agent
6.3.6. Sending a mail from a remote host
6.3.7. Portweiterleitung für SMTP-/POP3-Tunnelung
6.3.8. Wie Sie das ferne System über SSH herunterfahren
6.3.9. Fehlersuche bei SSH
6.4. Der Print-Server und Hilfsprogramme
6.5. Weitere Netzwerkanwendungs-Server
6.6. Weitere Netzwerkanwendungs-Clients
6.7. Diagnose von System-Daemons

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

[Tipp] Tipp

Bezüglich einer aktuellen Anleitung für Debian zum Thema Netzwerk-Infrastruktur lesen Sie das Debian Administratorhandbuch — Netzwerk-Infrastruktur.

[Tipp] Tipp

Falls Sie "2-Schritt-Verifizierung" aktiviert haben, müssen Sie bei manchen Internet-Providern ein Anwendungspasswort beziehen, um aus Ihrem Anwendungsprogramm Zugriff auf POP- und SMTP-Dienste zu erhalten. Auch kann es erforderlich sein, dass Sie im voraus Ihre Host-IP-Adresse bestätigen müssen.

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


This section focuses on typical mobile workstations on consumer grade Internet connections.

[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.

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.)

  • The email message format covering header and body data is extended by Multipurpose Internet Mail Extensions (MIME) from the plain ASCII text to other character encodings, as well as attachments of audio, video, images, and application programs.

Full featured GUI based email clients offer all the following functions using the GUI based intuitive configuration.

  • It creates and interprets the message header and body data using Multipurpose Internet Mail Extensions (MIME) to deal the content data type and encoding.

  • It authenticates itself to the ISP's SMTP and IMAP servers using the legacy basic access authentication or modern OAuth 2.0. (For OAuth 2.0, set it via Desktop environment settings. E.g., "Settings" -> "Online Accounts".)

  • It sends the message to the ISP's smarthost SMTP server listening to the message submission port (587).

  • It receives the stored message on the ISP's server from the TLS/IMAP4 port (993).

  • It can filter mails by their attributes.

  • It may offer additional functionalities: Contacts, Calendar, Tasks, Memos.


In principle, mobile workstations should function without the /usr/sbin/sendmail command provided by the mail transfer agent (MTA) program.

The Debian system usually installs MTA to cope with Abschnitt 6.2.2, „Modern mail service limitation“ and Abschnitt 6.2.3, „Historic mail service expectation“ even if mobile workstations installed full featured GUI based email clients.

For mobile workstations, the typical choice of MTA is either exim4-daemon-light or postfix with its installation option such as "Mail sent by smarthost; received via SMTP or fetchmail" selected. These are light weight MTAs that respect "/etc/aliases".

[Tipp] Tipp

Configuring exim4 to send the Internet mail via multiple corresponding smarthosts for multiple source email addresses is non-trivial. If you need such capability for some programs, set them up to use msmtp which is easy to set up for multiple source email addresses. Then leave main MTA only for a single email address.


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

$ sudo systemctl stop exim4
$ 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".

Select "No" for "Hide local mail name in outgoing mail?". (Use "/etc/email-addresses" as in Abschnitt 6.2.4.3, „Die Mail-Adress-Konfiguration“, instead.)

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 (oder nicht immer) mit dem Internet verbunden ist.

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

Select "Yes" for "Split configuration into small files?:".

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.*\.hostname\.dom:username@hostname.dom:password

Configure exim4(8) with "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. in "/etc/default/exim4" to minimize system resource usages. (optional)

Starten Sie exim4 mit folgendem Befehl:

$ sudo systemctl start exim4

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

$ host smtp.hostname.dom
smtp.hostname.dom is an alias for smtp99.hostname.dom.
smtp99.hostname.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)

  • Run "systemctl reload exim4".

[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.

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

[Warnung] Warnung

For all practical consideration, use SMTP with STARTTLS on port 587 or SMTPS SSL (SMTPS) on port 465, instead of plain SMTP on port 25.

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 systemctl stop postfix
$ 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.hostname.dom]:587     username:password
$ sudo postmap hush:/etc/postfix/sasl_passwd

Starten Sie postfix wie folgt:

$ sudo systemctl start postfix

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 Privatkundenrechnern, die keinen solchen FQDN-Namen 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 über den 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 mittels "dpkg -L exim4-base|grep man8/".

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.

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-]).


Although shellinabox is not a SSH program, it is listed here as an interesting alternative for the remote terminal access.

See also Abschnitt 7.8, „X server connection“ for connecting to remote X client programs.

[Achtung] Achtung

Lesen Sie Abschnitt 4.6.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, Verbindungsunterbrechungen zu überstehen (Weiteres dazu finden Sie in Abschnitt 9.1.2, „Das Programm screen“).

The OpenSSH SSH daemon supports SSH protocol 2 only.

Please read "/usr/share/doc/openssh-client/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), and ssh-keygen(1), ssh-add(1) and ssh-agent(1).

[Warnung] Warnung

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

Don't enable rhost based authentication (HostbasedAuthentication in /etc/ssh/sshd_config).


Mit folgenden Befehlen starten Sie eine ssh(1)-Verbindung von einem 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.4.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.2, „Das Programm screen“) ist ein anderer möglicher Weg.

In the old Unix-like system, the BSD Line printer daemon (lpd) was the standard and the standard print out format of the classic free software was PostScript (PS). Some filter system was used along with Ghostscript to enable printing to the non-PostScript printer. See Abschnitt 11.4.1, „Ghostscript“.

In the modern Debian system, the Common UNIX Printing System (CUPS) is the de facto standard and the standard print out format of the modern free software is Portable Document Format (PDF).

The CUPS uses Internet Printing Protocol (IPP). The IPP is now supported by other OSs such as Windows XP and Mac OS X and has became new cross-platform de facto standard for remote printing with bi-directional communication capability.

Dank der Dateiformat-abhängigen automatischen Konvertierungsfunktion des CUPS-Systems sollte die einfache Übergabe 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.

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 ausgiebig 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 (wie sie bei manchen Providern vorkommen) zu testen, 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.