Chapitre 6. Applications réseau

Table des matières

6.1. Navigateurs Web
6.1.1. Configuration du navigateur
6.2. Le système de courrier électronique
6.2.1. Bases du courrier électronique
6.2.2. Bases du service de courrier électronique moderne
6.2.3. Stratégie de configuration du courrier électronique pour une station de travail
6.3. Agent de transport de courrier électronique (« MTA »)
6.3.1. Configuration d’exim4
6.3.2. Configuration de postfix avec SASL
6.3.3. Configuration de l’adresse de courriel
6.3.4. Opération de base du MTA
6.4. Agent de courrier électronique de l’utilisateur (« MUA »)
6.4.1. Le MUA de base — Mutt
6.5. Utilitaire de récupération et de rediffusion du courriel distant
6.5.1. configuration de getmail
6.5.2. configuration de fetchmail
6.6. Agent de distribution du courriel (MDA) avec filtre
6.6.1. configuration de maildrop
6.6.2. configuration de procmail
6.6.3. Redistribuer le contenu d’une « mbox »
6.7. serveur POP3/IMAP4
6.8. Le serveur et les utilitaires d’impression
6.9. Le serveur et les utilitaires d’accès à distance (SSH)
6.9.1. Bases de SSH
6.9.2. Redirection de port pour un tunnel SMTP/POP3
6.9.3. Se connecter sans mot de passe distant
6.9.4. Clients SSH exotiques
6.9.5. Configurer ssh-agent
6.9.6. Comment arrêter le système distant par SSH
6.9.7. Résoudre les problèmes avec SSH
6.10. Autres serveurs d’applications réseau
6.11. Autres clients d’applications réseau
6.12. Le diagnostic des démons du système

Après avoir établi une connexion réseau (consultez Chapitre 5, Configuration du réseau), vous pouvez faire tourner diverses applications réseau.

Il y a de nombreux paquets de navigateurs web permettant d’accéder à des contenus distants avec le protocole de transfert hypertexte (« Hypertext Transfer Protocol (HTTP) »).


Vous pouvez utiliser les chaînes d’URL spéciales suivantes pour confirmer le paramétrage de certains navigateurs :

  • « about: »

  • « about:config »

  • « about:plugins »

Debian propose pour les navigateurs, dans la section main, de nombreux paquets de greffons libres qui peuvent gérer non seulement Java (plateforme logicielle) et Flash mais aussi les fichiers MPEG, MPEG2, MPEG4, DivX, Windows Media Video (.wmv), QuickTime (.mov), MP3 (.mp3), Ogg/Vorbis, les DVD, VCD, etc. Debian propose aussi, dans les sections contrib ou non-free, des paquets de programmes facilitant l’installation de greffons non libres pour les navigateurs.


[Astuce] Astuce

Bien que l’utilisation des paquets Debian ci-dessus soit plus facile, il est toujours possible d’installer vous-même des greffons de navigateur en installant les fichiers « *.so » dans les répertoires de greffons, (par exemple, « /usr/lib/iceweasel/plugins/ ») et en redémarrant le navigateur.

Certains sites web refusent les connexions en se basant sur la chaîne « user-agent » de votre navigateur. Vous pouvez contourner cette situation en usurpant la chaîne user-agent. Vous pouvez le faire, par exemple, en ajoutant la ligne suivante dans les fichiers de configuration de l’utilisateur tels que « ~/.gnome2/epiphany/mozilla/epiphany/user.js » ou « ~/.mozilla/firefox/*.default/user.js » :

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

Vous pouvez aussi ajouter et réinitialiser cette variable en entrant l’URL « about:config » et en faisant un clic-droit pour afficher son contenu.

[Attention] Attention

Usurper la chaîne user-agent peut provoquer de mauvais effets de bord avec Java.

[Attention] Attention

Si vous êtes sur le point de configurer le serveur de courrier pour échanger directement du courrier avec Internet, vous feriez mieux de lire ce document élémentaire.

[Note] Note

Les exemples de configuration suivants ne sont valables que pour une station de travail mobile typique avec des connexions internet de type grand public.

Un courrier électronique est composé de trois parties : l’enveloppe, l’en-tête et le corps du message.

Les renseignements « To » et « From » de l’enveloppe sont utilisés par le SMTP pour délivrer le courrier électronique (« From » dans l’enveloppe indique l’adresse de rebond).

Les renseignements « To » et « From » de l’en-tête sont affichés par le client de messagerie (même s’ils sont généralement identiques à ceux de l’enveloppe, ce n’est pas toujours le cas).

Le client de messagerie a besoin d’interpréter l’en-tête du message et les données du corps en utilisant les Multipurpose Internet Mail Extensions (MIME) pour gérer le type de données et l’encodage du contenu.

De manière à limiter les problèmes de spam (courriels non désirés et non sollicités), de nombreux fournisseurs d’accès à Internet qui fournissent une connexion Internet pour le grand public mettent en place des contre-mesures.

Lors de la configuration de votre système de courrier électronique, ou lors de la résolution de problèmes de diffusion de courrier, vous devez tenir compte de ces nouvelles limitations.

À la lumière de cette situation hostile d’Internet, certains fournisseurs de service de courrier électronique comme Yahoo.com et Gmail.com offrent un service de courrier électronique sécurisé que l’on peut utiliser depuis n’importe où sur Internet en utilisant Transport Layer Security (TLS) et son prédécesseur, Secure Sockets Layer (SSL).

  • Le service de smarthost sur le port 465 avec l’obsolète SMTP sur SSL (SMTPS).

  • Le service de smarthost sur le port 587 avec STARTTLS.

  • Le courrier électronique entrant est accessible par le port TLS/POP3 (995) par POP3.

[Attention] Attention

Il n’est pas réaliste de mettre en œuvre un serveur SMTP sur un réseau grand public pour envoyer de manière fiable le courrier électronique directement vers une machine distante. Il sera probablement rejeté. Vous devez utiliser les services de smarthost offerts par votre fournisseur d’accès ou par un fournisseur de courrier électronique indépendant.

Pour simplifier, supposons que le smarthost situé à « smtp.hostname.dom » exige l’authentification SMTP et utilise le port de soumission de messages (587) avec STARTTLS dans le texte qui suit.

La configuration de courrier électronique la plus simple est que le courrier électronique soit émis vers le smarthost du fournisseur d’accès et reçu du serveur POP3 de ce fournisseur d’accès par le MUA (consultez Section 6.4, « Agent de courrier électronique de l’utilisateur (« MUA ») ») lui-même. Ce type de configuration est courant avec les MUA entièrement basés sur une interface graphique tels que icedove(1), evolution(1), etc. Si vous devez filtrer le courriel selon son type, vous utiliserez les fonctions de filtrage du MUA. Dans ce cas, l’agent de transport du courrier (MTA) local (consultez Section 6.3, « Agent de transport de courrier électronique (« MTA ») ») n’aura que la distribution locale à effectuer.

La configuration de courriel de remplacement est que le courriel soit envoyé via un MTA local vers le smarthost du FAI et reçu du serveur POP3 du FAI par le logiciel de récupération du courriel (consultez Section 6.5, « Utilitaire de récupération et de rediffusion du courriel distant ») vers une boîte à lettres locale. Si vous avez besoin de filtrer le courriel en fonction de son type, vous pouvez utiliser un MDA (agent de distribution du courriel) avec filtres (consultez Section 6.6, « Agent de distribution du courriel (MDA) avec filtre ») pour filtrer les courriels vers des boîtes à lettres séparées. Ce type de configuration est populaire avec un simple MUA en mode console tel que mutt(1), mew(1), etc., bien que ce soit possible avec n’importe quel MUA (consultez Section 6.4, « Agent de courrier électronique de l’utilisateur (« MUA ») »). Dans ce cas, le MTA local (consultez Section 6.3, « Agent de transport de courrier électronique (« MTA ») ») doit faire à la fois la diffusion vers le smarthost et la diffusion locale). Comme les stations de travail mobiles n’ont pas de nom de domaine pleinement qualifié (FDQN) valable, vous devez configurer le MTA local pour masquer et simuler le nom de courrier local réel pour le courriel sortant afin d’éviter des erreurs de distribution (consultez Section 6.3.3, « Configuration de l’adresse de courriel »).

[Astuce] Astuce

Vous pourrez avoir envie de configurer MUA/MDA afin d’utiliser Maildir pour stocker les messages de courrier électronique quelque part dans l’arborescence de votre répertoire personnel.

Pour une station de travail normale le choix habituel pour l’agent de transport du courrier électronique (MTA) est soit le paquet exim4-*, soit postfix. C’est vraiment laissé à votre choix.


Bien que suivant le nombre de votes popcon exim4-* semble de beaucoup plus populaire que postfix, cela ne signifie pas que postfix n’est pas populaire chez les développeurs de Debian. Le système de serveur de Debian utilise à la fois exim4 et postfix. L’analyse des en-têtes de courriels vers les listes de diffusion par les développeurs principaux de Debian montre aussi que ces deux MTA ont la même popularité.

Les paquets exim4-* sont connus pour consommer très peu de mémoire et avoir une configuration très souple. Le paquet postfix est connu pour être compact, rapide, simple et sûr. Les deux sont livrés avec une riche documentation, sont d’aussi bonne qualité et ont une aussi bonne licence.

Il existe dans l’archive Debian un grand choix de paquets d’agents de transport du courrier électronique (MTA) avec des possibilités et des objectifs différents.


Pour le courrier d’Internet par l’intermédiaire d’un smarthost, vous (re)configurerez les paquets exim4-* comme suit :

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

Choisir « envoi via relais (« smarthost ») - réception SMTP ou fetchmail » : pour « Configuration du serveur de courriel ».

Définir « Nom de courriel du système » à sa valeur par défaut qui est le nom pleinement qualifié (FQDN, consultez Section 5.1.1, « Résolution du nom d’hôte »).

Définir « Liste d’adresses IP où Exim sera en attente de connexions SMTP entrantes » à sa valeur par défaut qui est « 127.0.0.1 ; ::1 ».

Supprimer le contenu de « Autres destinations dont le courriel doit être accepté ».

Supprimer le contenu de « Machines à relayer ».

Définir « Nom réseau ou adresse IP du système « smarthost » » à « smtp.hostname.dom:587 ».

Sélectionner « <Non> » pour « Faut-il cacher le nom local de courriel dans les courriels sortants ? ». (Utiliser plutôt « /etc/email-addresses » comme dans Section 6.3.3, « Configuration de l’adresse de courriel »).

Donner à « Faut-il optimiser les requêtes DNS (connexion à la demande)) ? » l’une des réponses suivantes :

  • « Non » si le système est connecté à Internet au démarrage.

  • « Oui » si le système n’est pas connecté à Internet au démarrage.

Définir « Méthode de distribution du courrier local : » à « Format « mbox » dans /var/mail ».

Sélectionner « Oui » pour « Faut-il séparer la configuration dans plusieurs fichiers ? ».

Créer les entrées de mots de passe pour le smarthost en éditant «  /etc/exim4/passwd.client ».

$ sudo vim /etc/exim4/passwd.client
 ...
$ cat /etc/exim4/passwd.client
^smtp.*\.nommachine\.dom:nomutilisateur@nommachine.dom:motdepasse

Lancer exim4 par la commande suivante :

$ sudo /etc/init.d/exim4 start

Le nom de machine dans « /etc/exim4/passwd.client » ne doit pas être un alias. Vérifiez le nom de machine réel comme suit :

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

J’utilise une expression rationnelle dans « /etc/exim4/passwd.client » pour contourner le problème d’alias. SMTP AUTH fonctionne probablement même dans le cas où le FAI déplace la machine pointée par l’alias.

Vous pouvez mettre à jour vous-même la configuration d’exim4 de la façon suivante.

  • Mettre à jour les fichiers de configuration d’exim4 dans « /etc/exim4/ ».

    • Créer « /etc/exim4/exim4.conf.localmacros » pour configurer les macros et éditer « /etc/exim4/exim4.conf.template » (configuration en un seul fichier).

    • Créer de nouveaux fichiers ou éditer des fichiers existants dans les sous-répertoires de « /etc/exim4/exim4.conf.d » (configuration séparée en plusieurs fichiers).

  • Lancer « invoke-rc.d exim4 reload ».

Veuillez lire le guide officiel se trouvant à « /usr/share/doc/exim4-base/README.Debian.gz » et update-exim4.conf(8).

[Attention] Attention

Le lancement d’exim4 est long si on a choisi « Non » (valeur par défaut) à la demande « Faut-il optimiser les requêtes DNS (connexion à la demande) ? » lors de la configuration debconf et que le système n’est pas connecté à Internet lors du démarrage.

[Avertissement] Avertissement

L’utilisation de mot de passe en texte non chiffré n’est pas sécurisée, même si votre FAI le permet.

[Astuce] Astuce

Même si l’utilisation de SMTP avec STARTTLS sur le port 587 est préférable, certains FAI utilisent encore l’obsolète SMTPS (SSL sur le port 465). Exim4, depuis la version 4.77, permet d’utiliser ce protocole SMTPS obsolète autant en tant que client que serveur.

[Astuce] Astuce

Si vous recherchez un MTA léger qui respecte « /etc/aliases » pour votre PC de bureau, vous devriez envisager de configurer exim4(8) avec « QUEUERUNNER='queueonly' », « QUEUERUNNER='nodaemon' », etc. dans « /etc/default/exim4 ».

Pour utiliser le courrier électronique d’Internet par l’intermédiaire d’un smarthost, vous devrez d’abord lire la documentation postfix et les pages de manuel importantes.


Vous (re)configurez les paquets postfix et sasl2-bin comme suit :

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

Choisir « Internet avec smarthost ».

Définissez « machine de relais SMTP (blanc pour aucun): » à « [smtp.hostname.dom]:587 » et configurez-le de la manière suivante :

$ 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

Créez les entrées de mots de passe pour le smarthost

$ cat /etc/postfix/sasl_passwd
[smtp.hostname.dom]:587     nomutilisateur:motdepasse
$ sudo postmap hush:/etc/postfix/sasl_passwd

Lancez postfix comme suit :

$ sudo /etc/init.d/postfix start

Ici, l’utilisation de « [ » et « ] » dans le dialogue de dpkg-reconfigure et « /etc/postfix/sasl_passwd » permet de s’assurer de ne pas vérifier l’enregistrement MX mais d’utiliser directement le nom exact de la machine indiquée. Consultez « Enabling SASL authentication in the Postfix SMTP client » dans « /usr/share/doc/postfix/html/SASL_README.html ».

Il existe plusieurs fichiers de configuration de l’adresse de courriel pour l’acheminement du courriel, sa diffusion et les agents d’utilisateur.


Le nom de courriel ( mailname » dans le fichier « /etc/mailname » est habituellement un nom de domaine entièrement qualifié (FQDN) qui est résolu vers l’une des adresses IP de la machine. Pour les stations de travail mobiles qui n’ont pas de nom de machine pouvant être résolu par une adresse IP, définissez ce mailname à la valeur donnée par « hostname -f ». (C’est un choix sûr et qui fonctionne à la fois avec exim4-* et postfix.)

[Astuce] Astuce

Le contenu de « /etc/mailname » est utilisé par de nombreux programmes autres que les MTA pour définir leur comportement par défaut. Pour mutt, définissez les variables « hostname » et « from » dans le fichier ~/muttrc pour passer outre la valeur de mailname. Pour les programmes du paquet devscripts, comme bts(1) et dch(1), exportez les variables d’environnement « $DEBFULLNAME » et « $DEBEMAIL » afin de passer outre cette définition.

[Astuce] Astuce

Le paquet popularity-contest envoie normalement un courriel depuis le compte de l’administrateur avec un nom de domaine pleinement qualifié (FDQN). Vous devez définir MAILFROM dans /etc/popularity-contest.conf comme c’est décrit dans le fichier /usr/share/popularity-contest/default.conf. Sinon, votre courriel sera rejeté par le serveur SMTP sur « smarthost ». Bien que ce soit fastidieux, cette approche est plus sûre que la réécriture par le MTA de l’adresse source pour tous les courriels en provenance de l’administrateur (« root ») et devrait être utilisé pour les autres démons et les scripts des tâches planifiées (« cron ».

Lors de la définition de mailname avec la valeur donnée par « hostname -f », l’usurpation de l’adresse source du courrier par le MTA peut être réalisée par l’intermédiaire :

  • du fichier « /etc/email-addresses » pour exim4(8) comme expliqué dans exim4-config_files(5)

  • du fichier « /etc/postfix/generic » pour postfix(1) comme expliqué dans generic(5)

Pour postfix, les étapes suivantes sont nécessaires :

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

Vous pouvez tester la configuration de l’adresse de courriel de la manière suivante :

  • exim(8) avec les options -brw, -bf, -bF, -bV, …

  • postmap(1) avec l’option -q

[Astuce] Astuce

Il existe, avec Exim, un certain nombre de programmes utilitaires tels qu’exiqgrep(8) et exipick(8). Consultez « dpkg -L exim4-base|grep man8/ » pour les commandes disponibles.

Si vous vous abonnez à une liste de diffusion relative à Debian, ce peut être une bonne idée d’utiliser un MUA tel que mutt ou mew qui sont le standard de fait pour le participant et sont connus pour se comporter comme on le souhaite.


Configurez « ~/.muttrc » comme suit afin d’utiliser mutt comme agent utilisateur de courrier électronique (MUA) en conjonction avec vim.

#
# Fichier de configuration de l’utilisateur pour prendre le pas sur /etc/Muttrc
#
# modifier l'adresse électronique d'origine
set use_from
set hostname=example.dom
set from="Prénom Nom <prenom-nom@example.dom>"
set signature="~/.signature"

# vim : « gq » pour reformater les citations
set editor="vim -c 'set tw=72 et ft=mail’"

# « mutt » utilise Inbox, alors que « mutt -y » donne la liste des boîtes de messagerie
set mbox_type=Maildir     # utiliser le format Maildir de qmail pour créer les mbox
set mbox=~/Mail           # conserver toutes les boîtes de messagerie dans $HOME/Mail/
set spoolfile=+Inbox      # message délivré vers $HOME/Mail/Inbox
set record=+Outbox        # sauvegarder les messages envoyés vers $HOME/Mail/Outbox
set postponed=+Postponed  # garder les messages ajournés dans $HOME/Mail/postponed
set move=no               # ne pas déplacer les messages lus de Inbox vers mbox
set quit=ask-yes          # ne pas quitter avec seulement « q »
set delete=yes            # toujours effacer sans confirmation à la fin
set fcc_clear             # garder les messages envoyés non chiffrés

# boîtes de messagerie dans Maildir (mise à jour automatique)
mailboxes `cd ~/Mail; /bin/ls -1|sed -e 's/^/+/' | tr "\n" " "`
unmailboxes Maillog *.ev-summary

## par défaut
#set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %s"
## index des enfilades avec expéditeurs (quand elles sont cachées)
set index_format="%4C %Z %{%b %d} %-15.15n %?M?(#%03M)&(%4l)? %s"

## par défaut
#set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
## simplement les noms de dossier
set folder_format="%2C %t %N %f"

Ajoutez ce qui suit dans « /etc/mailcap » ou « ~/.mailcap » afin d’afficher le courriel en HTML et les attachements en ligne de documents MS Word.

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

Mutt peut être utilisé comme client IMAP et comme convertisseur de format de boîtes à lettres. Vous pouvez marquer les messages avec « t", "T », etc. Ces messages marqués peuvent être copiés avec « ;C » entre différentes boîtes à lettres et supprimés à l’aide de « ;d » en une seule action.

Bien que fetchmail(1) ait été le standard de fait pour la récupération du courriel sur GNU/Linux, l’auteur préfère maintenant getmail(1). Si vous désirez rejeter du courriel avant de le télécharger pour économiser de la bande passante, mailfilter ou mpop peuvent être utiles. Quels que soient les utilitaires de récupération du courrier électronique utilisés, c’est une bonne idée de configurer le système afin de diffuser les courriels récupérés à un MDA, tel que maildrop, par l’intermédiaire d’un tube.


La configuration de getmail(1) est décrite dans la documentation de getmail. voici ma configuration permettant l’accès à plusieurs comptes POP3 en tant qu’utilisateur.

Créez « /usr/local/bin/getmails » comme suit :

#!/bin/sh
set -e
if [ -f $HOME/.getmail/running ]; then
  echo "getmail est déjà en fonctionnement... (dans le cas contraire, supprimer $HOME/.getmail/running)" >&2
  pgrep -l "getmai[l]"
  exit 1
else
  echo "getmail n'a pas tourné... " >&2
fi
if [ -f $HOME/.getmail/stop ]; then
  echo "ne pas lancer getmail ... (dans le cas contraire, supprimer $HOME/.getmail/stop)" >&2
  exit
fi
if [ "x$1" = "x-l" ]; then
  exit
fi
rcfiles="/usr/bin/getmail"
for fichier in $HOME/.getmail/config/* ; do
  rcfiles="$rcfiles --rcfile $fichier"
done
date -u > $HOME/.getmail/running
eval "$rcfiles $@"
rm $HOME/.getmail/running

Configurez-le comme suit :

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

Créez les fichiers de configuration « $HOME/.getmail/config/pop3_name » pour chacun des comptes POP3 comme suit :

[retriever]
type = SimplePOP3SSLRetriever
server = pop.example.com
username =  nom_pop3@example.com
password = secret

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

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

Configurez-le comme suit :

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

Programmez « /usr/local/bin/getmails » pour qu’il soit lancé toutes les 15 minutes avec cron(8) en exécutant « sudo crontab -e -u <nom_utilisateur> » et en ajoutant l’entrée cron de l’utilisateur suivante :

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

Les problèmes d’accès POP3 peuvent ne pas venir de getmail. Certains services POP3 gratuits courants violent le protocole POP3 et leur filtre de SPAM peut ne pas être parfait. Par exemple, ils peuvent effacer les messages juste après la commande RETR et avant de recevoir la commande DELE et peuvent mettre en quarantaines des messages dans la boîte à lettres des Spam. Vous pourrez minimiser les dommages en les configurant de manière à archiver les messages auxquels ils ont accédé et non les supprimer. Consultez aussi « Certains courriels n’ont pas été téléchargés ».

La plupart des programmes de MTA tels que postfix et exim4 fonctionnent comme des MDA (agent de distribution du courriel, « mail delivery agent »). Il existe des MDA spécialisés ayant des possibilités de filtrage.

Bien que procmail(1) ait été le standard de fait comme MDA sous GNU/Linux, l’auteur préfère maintenant maildrop(1). Quel que soit l’utilitaire de filtrage utilisé, c’est une bonne idée que de configurer le système pour distribuer le courriel filtré vers une Maildir de style qmail.


La configuration de maildrop(1) est décrite dans la documentation de maildropfilter. Voici un exemple de configuration pour « $HOME/.mailfilter » :

# Configuration locale
MAILROOT="$HOME/Mail"
# configurer conformément au contenu de /etc/mailname
MAILHOST="example.dom"
logfile $HOME/.maildroplog

# les règles sont faites pour que la dernière valeur prenne le pas sur la précédente.

# messages de liste de diffusion ?
if (     /^Precedence:.*list/:h || /^Precedence:.*bulk/:h )
{
    # règles pour les messages de liste de diffusion
    # boîte à lettres par défaut pour les messages de liste de diffusion
    MAILBOX="Inbox-list"
    # boîte à lettres par défaut pour les messages de debian.org
    if ( /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h )
    {
        MAILBOX="service.debian.org"
    }
    # boîte à lettres par défaut pour les messages de bugs.debian.org (BTS)
    if ( /^(Sender|Resent-From|Resent-sender): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # boîte à lettres pour chaque liste de diffusion proprement configurée avec « List-Id: truc » ou « List-Id: ...<truc.bidule> »
    if ( /^List-Id: ([^<]*<)?([^<>]*)>?/:h )
    {
        MAILBOX="$MATCH2"
    }
}
else
{
    # règles pour les messages ne provenant pas de liste de diffusion
    # boîte à lettres de courrier entrant par défaut
    MAILBOX="Inbox-unusual"
    # local mails
    if ( /Envelope-to: .*@$MAILHOST/:h )
    {
        MAILBOX="Inbox-local"
    }
    # Messages en HTML (99% d'indésirables)
    if ( /DOCTYPE html/:b ||\
         /^Content-Type: text\/html/ )
    {
        MAILBOX="Inbox-html"
    }
    # règle de liste noire pour les indésirables
    if ( /^X-Advertisement/:h ||\
         /^Subject:.*BUSINESS PROPOSAL/:h ||\
         /^Subject:.*URGENT.*ASISSTANCE/:h ||\
         /^Subject: *I NEED YOUR ASSISTANCE/:h )
    {
        MAILBOX="Inbox-trash"
    }
    # règle de liste blanche pour les messages normaux
    if ( /^From: .*@debian.org/:h ||\
         /^(Sender|Resent-From|Resent-Sender): .*debian.org/:h ||\
         /^Subject: .*(debian|bug|PATCH)/:h )
    {
        MAILBOX="Inbox"
    }
    # règle de liste blanche pour les messages relatifs au BTS
    if ( /^Subject: .*Bug#.*/:h ||\
         /^(To|Cc): .*@bugs.debian.org/:h )
    {
        MAILBOX="bugs.debian.org"
    }
    # règle de liste blanche pour les messages « getmails » de cron
    if ( /^Subject: Cron .*getmails/:h )
    {
        MAILBOX="Inbox-getmails"
    }
}

# vérifier l'existence de $MAILBOX
`test -d $MAILROOT/$MAILBOX`
if ( $RETURNCODE == 1 )
{
    # créer la boîte à lettres au format maildir pour $MAILBOX
    `maildirmake $MAILROOT/$MAILBOX`
}
# délivrer vers le répertoire maildir $MAILBOX
to "$MAILROOT/$MAILBOX/"
exit
[Avertissement] Avertissement

À l’inverse de procmail, maildrop ne crée pas automatiquement les répertoires maildir manquants. Vous devez les créer vous-même à l’avance en utilisant maildirmake(1) comme cela a été fait pour « $HOME/.mailfilter » dans l’exemple.

Si vous voulez faire tourner un serveur privé sur votre réseau local, vous pouvez envisager de faire tourner un serveur POP3 / IMAP4 pour la distribution du courrier électronique aux clients du réseau local.


Sur l’ancien système « UNIX-like » ; le standard était le démon d’impression BSD. Comme le format d’impression standard du logiciel libre est PostScript sur les systèmes semblables à UNIX, certains systèmes de filtres ont été utilisés conjointement à Ghostscript afin de permettre l’impression sur des imprimantes qui ne sont pas PostScript.

Récemment, le système commun d’impression sous UNIX (« Common UNIX Printing System (CUPS) ») est devenu le nouveau standard de fait. CUPS utilise le Protocole d’impression Internet (« Internet Printing Protocol (IPP) »). IPP est maintenant pris en charge par d’autres systèmes d’exploitation comme Windows XP et Mac OS X, il est devenu le nouveau standard cross-plateforme de fait pour l’impression à distance avec des possibilités de communications bi-directionnelles.

Le format de données imprimables standard pour une application sur le système Debian est PostScript (PS) qui est un langage de description de page. Les données au format PS sont passées à l’interpréteur Ghostscript PostScript afin de produire les données imprimables spécifiques à l’imprimante. Consultez Section 11.4.1, « Ghostscript ».

Grâce à la fonctionnalité d’autoconversion dépendante du format du fichier du système CUPS, passer simplement les données à la commande lpr devrait créer la sortie imprimable souhaitée. (Dans CUPS, lpr peut être activé en installant la paquet cups-bsd).

Le système Debian possède certains paquets notables de serveurs et d’utilitaires d’impression :


[Astuce] Astuce

Vous pouvez configurer le système CUPS en pointant votre navigateur web sur « http://localhost:631/ ».

SSH, le « Secure SHell », est la manière sûre de se connecter au travers d’Internet. Une version libre de SSH, appelée OpenSSH, est disponible sous Debian sous forme des paquets openssh-client et openssh-server.


[Attention] Attention

Consultez Section 4.7.3, « Mesures de sécurité supplémentaires pour Internet » si votre serveur SSH est accessible depuis Internet.

[Astuce] Astuce

Utilisez le programme screen(1) pour qu’un processus de l’interpréteur de commandes distant survive à une interruption de la connexion (consultez Section 9.1, « Le programme screen »).

[Avertissement] Avertissement

Il ne faut pas que « /etc/ssh/sshd_not_to_be_run » soit présent si l’on souhaite faire tourner le serveur OpenSSH.

SSH possède deux protocoles d’identification :


[Attention] Attention

Faites attention à ces différences si vous utilisez un système autre que Debian.

Consultez « /usr/share/doc/ssh/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), et ssh-keygen(1) pour davantage d’informations.

Les fichiers suivants sont les fichiers de configuration importants :


[Astuce] Astuce

Consultez ssh-keygen(1), ssh-add(1) et ssh-agent(1) pour la manière d’utiliser les clés publiques et secrètes de SSH.

[Astuce] Astuce

Assurez-vous de la validité de la configuration en testant la connexion. En cas de problème, utilisez « ssh -v ».

[Astuce] Astuce

Vous pouvez changer la phrase de passe pour chiffrer les clés secrètes SSH plus tard avec « ssh-keygen -p ».

[Astuce] Astuce

Vous pouvez ajouter des options aux entrées de « ~/.ssh/authorized_keys » afin de limiter les accès à certaines machines et les commandes autorisées. Consultez sshd(8) pour obtenir plus de renseignements.

Ce qui suit permettra de démarrer un connexion ssh(1) depuis un client :


Si vous utilisez le même nom d’utilisateur sur la machine locale et la machine distante, il n’est pas nécessaire d’entrer « nomutilisateur@ ». Même si vous utilisez un nom d’utilisateur différent sur la machine locale et la machine distante, vous pouvez l’éliminer en utilisant « ~/.ssh/config ». Pour le service Debian Alioth avec le nom de compte « toto-guest », vous devrez configurer « ~/.ssh/config » afin qu’il contienne ce qui suit :

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

Pour l’utilisateur, ssh(1) fonctionne comme un telnet(1) intelligent et plus sûr. À l’opposé de la commande telnet, la commande ssh ne se lance pas sur le caractère d’échappement de telnet (valeur initiale par défaut Ctrl-]).

On peut éviter de devoir se souvenir des mots de passe des systèmes distants en utilisant « RSAAuthentication » (protocole SSH-1) ou « PubkeyAuthentication » (protocole SSH-2).

Sur le système distant, définissez les entrées respectives suivantes : « RSAAuthentication yes » ou« PubkeyAuthentication yes » dans « /etc/ssh/sshd_config ».

Générez ensuite localement les clés d’identification et installez la clé publique sur le système distant en faisant ce qui suit :

  • « RSAAuthentication » : clé RSA pour SSH-1 (obsolète parce qu’il a été remplacé).

$ ssh-keygen
$ cat .ssh/identity.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
  • « PubkeyAuthentication » : clé RSA pour SSH-2

$ ssh-keygen -t rsa
$ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
  • « PubkeyAuthentication » : clé DSA pour SSH-2 (obsolète parce qu’elle est lente).

$ ssh-keygen -t dsa
$ cat .ssh/id_dsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
[Astuce] Astuce

L’utilisation de clés DSA pour SSH-2 est obsolète parce que la clé est plus courte et lente. Il n’y a plus de raison de contourner le brevet de RSA en utilisant DSA parce qu’il est arrivé en fin de validité. DSA signifie Digital Signature Algorithm (Algorithme de signature numérique) et il est lent. Consultez aussi DSA-1571-1.

[Note] Note

Pour que « HostbasedAuthentication » fonctionne avec SSH-2, vous devez définir les paramètres de « HostbasedAuthentication » à « yes » à la fois dans le fichier « /etc/ssh/sshd_config » sur la machine serveur et dans le fichier « /etc/ssh/ssh_config » ou « ~/.ssh/config » sur la machine client.

Vous devez protéger le processus qui effectue « shutdown -h now » (consultez Section 1.1.8, « Comment arrêter le système ») de l’arrêt de SSH en utilisant la commande at(1) (consultez Section 9.3.13, « Planifier des tâches qui s’exécutent une fois ») comme suit :

# echo "shutdown -h now" | at now

Lancer « shutdown -h now » dans une sessionscreen(1) (consultez Section 9.1, « Le programme screen ») est une autre manière d’effectuer la même chose.

Voici d’autres serveurs d’applications réseau :


Le protocole « Common Internet File System Protocol » (CIFS) est le même protocole que Server Message Block (SMB), il est largement utilisé par Microsoft Windows.

[Astuce] Astuce

Consultez Section 4.5.2, « Le système de gestion centralisée moderne » pour l’intégration de systèmes de type serveur.

[Astuce] Astuce

La résolution de nom d’hôte est normalement fournie par le serveur DNS. Pour l’affectation dynamique d’adresse IP hôte par DHCP, le DNS dynamique peut être configuré pour la résolution de nom d’hôte en utilisant bind9 et isc-dhcp-server comme décrit sur la page DDNS du wiki Debian.

[Astuce] Astuce

L’utilisation d’un serveur mandataire tel que squid est bien plus efficace pour économiser de la bande passante que l’utilisation d’un serveur miroir local comportant tout le contenu de l’archive Debian.

Voici d’autres clients d’applications réseau :


Le programme telnet permet la connexion manuelle aux démons du système et leur diagnostic.

Pour tester le service POP3 brut, essayez ce qui suit :

$ telnet mail.nom_isp.net pop3

Pour tester le service POP3 ayant TLS/SSL activé de certains fournisseurs d’accès Internet, vous devrez avoir un client telnet ayant TLS/SSL activé en utilisant l’un des paquets telnet-ssl ou openssl.

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

Les RFC suivantes proposent les connaissances nécessaires pour chaque démon :


L’utilisation des ports est décrite dans « /etc/services ».