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.

6.1. Navigateurs Web

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

Tableau 6.1. Liste de navigateurs web

paquet popcon taille type description du navigateur web
chromium V:4, I:6 72177 X Chromium (navigateur libre de Google)
iceweasel V:27, I:48 6387 , , Mozilla Firefox démarqué
iceape-browser V:0.7, I:1.4 95 , , Mozilla, supprimé en raisons de problèmes de sécurité bogue nº 505565
epiphany-browser V:13, I:37 2025 , , GNOME, Epiphany respectant HIG
konqueror V:4, I:12 3396 , , KDE, Konqueror
dillo V:0.10, I:0.4 1135 , , Dillo (navigateur léger, basé sur FLTK)
w3m V:30, I:86 1924 texte w3m
lynx I:18 242 , , Lynx
elinks V:2, I:5 1364 , , ELinks
links V:2, I:7 1225 , , Links (texte uniquement)
links2 V:0.6, I:3 3036 graphiques Links (graphique en mode console sans X)

6.1.1. Configuration du navigateur

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

  • « about: »

  • « about:config »

  • « about:plugins »

Debian propose de nombreux paquets de greffons libres pour les navigateurs dans la zone main 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 zones contrib ou non-free, des paquets de programmes facilitant l’installation de greffons non libres pour les navigateurs.

Tableau 6.2. Liste des paquets de greffons pour les navigateurs

paquet popcon taille zone description
icedtea6-plugin V:1.0, I:2 21 main Greffon Java basé sur OpenJDK et IcedTea
mozilla-plugin-gnash I:2 53 main greffon Flash basé sur Gnash
flashplugin-nonfree V:1.3, I:22 136 contrib assistant à l’installation du greffon Flash pour installer le lecteur Flash d'Adobe (i386 et amd64 uniquement)
mozilla-plugin-vlc V:1.7, I:2 27 main greffon multimédia basé sur VLC media player
totem-mozilla V:17, I:32 591 main greffon multimédia basé sur Totem media player de GNOME
gecko-mediaplayer V:0.9, I:1.1 710 main greffon multimédia basé sur (GNOME) MPlayer
nspluginwrapper V:0.8, I:2 472 contrib un « enrobeur » permettant de faire tourner les greffons i386 de Netscape sur une architecture amd64

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

6.2. Le système de courrier électronique

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

6.2.1. Bases du courrier électronique

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ées 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 Multipurpose Internet Mail Extensions (MIME) pour gérer le type de données et l'encodage du contenu.

6.2.2. Bases du service de courrier électronique moderne

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.

  • Le service smarthost pour l’envoi des messages de leurs clients utilise le port (587) défini dans la rfc4409 avec le service de mot de passe (SMTP AUTH) défini dans la rfc4954.

  • La connexion sur le port SMTP (25) depuis les machines de leur réseau interne (à l’exception de la sortie propre aux serveurs du FAI lui-même) vers Internet est bloquée.

  • La connexion au serveur de courrier entrant du FAI sur le port SMTP (25) depuis certaines machines d'une source externe douteuse est bloquée. (La connexion des machines dans la plage d'adresses IP dynamiques utilisée par les client du réseau commuté ou d'autres connexions Internet grand public sont les premières à être bloquées).

  • La lutte anti-spam en utilisant DomainKeys Identified Mail (DKIM) et Sender Policy Framework (SPF) est couramment utilisée pour le filtrage du courrier.

  • Le service de DomainKeys Identified Mail peut être fourni pour vos messages envoyés par l'intermédiaire du smarthost.

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 connecter depuis n'importe où sur Internet en utilisant Transport Layer Security (TLS) et sont 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.

6.2.3. Stratégie de configuration du courrier électronique pour une station de travail

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), gnus(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 station 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.

6.3. Agent de transport de courrier électronique (« MTA »)

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.

Tableau 6.3. Liste des paquets liés à l’agent de transport du courrier pour une station de travail

paquet popcon taille description
exim4-daemon-light V:62, I:68 1190 Agent de transport de courrier électronique Exim4 (MTA : par défaut de Debian)
exim4-base V:63, I:70 1486 Documentation d'Exim4 (texte) et fichiers communs
exim4-doc-html I:0.4 2970 Documentation d'Exim4 (html)
exim4-doc-info I:0.2 545 Documentation d'Exim4 (info)
postfix V:16, I:18 3397 Agent de transport de courrier électronique Postfix (MTA : remplacement)
postfix-doc I:1.6 3478 Documentation de Postfix (html+texte)
sasl2-bin V:1.6, I:4 431 Implémentation de l’API Cyrus SASL (complément à postfix pour SMTP AUTH)
cyrus-sasl2-doc I:1.1 247 Cyrus SASL - documentation

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

Les paquets exim4-* sont connus pour consommer très peut de mémoire et d'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 large documentation, sont d'aussi bonne qualité et ont une aussi bonne licence.

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

Tableau 6.4. Liste des choix de paquets Debian d'agent de transport du courrier électronique (MTA)

paquet popcon taille possibilités et objectif
exim4-daemon-light V:62, I:68 1190 complète
postfix V:16, I:18 3397 complète (sécurité)
exim4-daemon-heavy V:1.3, I:1.5 1324 complète (souple)
sendmail-bin V:1.6, I:1.7 1940 complète (uniquement lorsque vous serez déjà familiarisé)
nullmailer V:0.6, I:0.8 444 limitée, pas de courrier local
ssmtp V:1.2, I:1.6 1 limitée, pas de courrier local
courier-mta V:0.09, I:0.10 1773 très complète (interface web, etc.)
xmail V:0.05, I:0.06 688 légère
masqmail V:0.03, I:0.04 736 légère
esmtp V:0.07, I:0.16 143 légère
esmtp-run V:0.05, I:0.07 56 légère (extension de compatibilité avec sendmail vers esmtp)
msmtp V:0.3, I:0.8 229 légère
msmtp-mta V:0.11, I:0.13 30 légère (extension de compatibilité avec sendmail vers msmtp)

6.3.1. Configuration d'exim4

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 su système » à sa valeur par défaut qui est le nom pleinement qualifié (FQDN, consultez Section 5.1.2, « 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 » so 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 ».

6.3.2. Configuration de postfix avec SASL

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.

Tableau 6.5. Liste des pages de manuel importantes de postfix

commande fonction
postfix(1) Programme de contrôle de postfix
postconf(1) Utilitaire de configuration de postfix
postconf(5) Paramètres de configuration de postfix
postmap(1) Maintenance des table de consultation de postfix
postalias(1) Maintenance de la base de données des alias de postfix

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

6.3.3. Configuration de l’adresse de courriel

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

Tableau 6.6. Liste des fichiers de configuration liés aux adresses de courriel

fichier fonction application
/etc/mailname nom de machine par défaut pour le courrier (sortant) Spécifique à Debian, mailname(5)
/etc/email-addresses usurpation du nom de machine pour le courriel sortant Spécifique à exim(8), exim4-config_files(5)
/etc/postfix/generic usurpation du nom de machine pour le courriel sortant Spécifique à postfix(1) specific, activé après l’exécution de la commande postmap(1).
/etc/aliases alias du nom de compte pour le courrier entrant général, activé après l’exécution de la commande newaliases(1).

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éfinissezles variables « hostname » et « from » dans le fichier ~/muttrc pour passer outre la valeur de mailname. Pour les programmes du paquets 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 et 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 » pourexim4(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.

6.3.4. Opération de base du MTA

Il y a quelques opérations de base du MTA. Certaines peuvent être effectuées à l’aide de l’interface de compatibilité avec sendmail(1).

Tableau 6.7. Liste des opérations de base du MTA

commande exim commande postfix description
sendmail sendmail lire les courriels depuis l’entrée standard et les classer pour la diffusion (-bm)
mailq mailq afficher la file d'attente des courriels avec leur état et leur identifiant de file d'attente (« queue ID ») (-bp)
newaliases newaliases initialiser la base de données des alias (-I)
exim4 -q postqueue -f supprimer les courriels en attente (-q)
exim4 -qf postsuper -r ALL deferred; postqueue -f supprimer tous les courriels
exim4 -qff postsuper -r ALL; postqueue -f supprimer tous les courriels gelés
exim4 -Mg queue_id postsuper -h queue_id geler un message d'après son identifiant de file d'attente
exim4 -Mrm queue_id postsuper -d queue_id supprimer un message d'après son identifiant de file d'attente
N/A postsuper -d ALL supprimer tous les messages.

[Astuce] Astuce

Ce peut être une bonne idée de supprimer tous les messages à l’aide d'un script placé dans « /etc/ppp/ip-up.d/* ».

6.4. Agent de courrier électronique de l’utilisateur (« MUA »)

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 gnus qui sont le standard de fait pour le participant et sont connus pour se comporter comme on le souhaite.

Tableau 6.8. Liste d'agents de courrier électronique de l’utilisateur (MUA)

paquet popcon taille type
evolution V:16, I:37 5046 programme X avec une interface graphique (GNOME 3, suite « groupware »)
icedove V:7, I:12 40292 programme X avec une interface graphique (GNOME 2, version démarquée de Mozilla Thunderbird)
kmail V:2, I:9 29238 programme X avec une interface graphique (KDE)
mutt V:27, I:85 5446 programme de terminal en mode caractère, probablement utilisé avec vim
gnus V:0.02, I:0.19 6453 programme de terminal en mode caractères sous (x)emacs

6.4.1. Le MUA de base — Mutt

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.

6.5. Utilitaire de récupération et de rediffusion du courriel distant

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

Tableau 6.9. Listes des utilitaires de récupération et de rediffusion du courriel

paquet popcon taille description
fetchmail V:1.8, I:4 2356 récupération du courriel (POP3, APOP, IMAP) (ancien)
getmail4 V:0.2, I:0.9 597 récupération du courriel (POP3, IMAP4 et SDPS) (simple, sûr et fiable)
mailfilter V:0.00, I:0.05 340 récupération du courriel (POP3) avec une possibilité de filtrage par expressions rationnelles
mpop V:0.01, I:0.07 207 récupération du courriel (POP3) et MDA avec possibilité de filtrage

6.5.1. configuration de getmail

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 ayant été accédés et non de les supprimer. Consultez aussi « Certains courriels n'ont pas été téléchargés ».

6.5.2. configuration de fetchmail

La configuration de fetchmail(1) est effectuée par l’intermédiaire de « /etc/default/fetchmail », « /etc/fetchmailrc » et « $HOME/.fetchmailrc ». Consultez les exemples dans « /usr/share/doc/fetchmail/examples/fetchmailrc.example ».

6.6. Agent de distribution du courriel (MDA) avec filtre

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). Quelque soit l’utilitaire de filtrage utilisé, c'est une bonne idée que de configurer le système pour distribuer le courriel filtrée vers une Maildir de style qmail.

Tableau 6.10. Liste de MDA avec filtrage

paquet popcon taille description
procmail V:20, I:86 368 MDA avec filtrage (ancien)
mailagent V:0.3, I:4 1201 MDA avec filtre en Perl
maildrop V:0.2, I:0.6 1221 MDA avec langage de filtrage structuré

6.6.1. configuration de maildrop

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.

6.6.2. configuration de procmail

Voici une configuration équivalente avec « $HOME/.procmailrc » pour procmail(1) :

MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/Inbox/
LOGFILE=$MAILDIR/Maillog
# courriel qui apparaissent clairement mauvais : les mettre dans X-trash et quitter
:0
* 1^0 ^X-Advertisement
* 1^0 ^Subject:.*BUSINESS PROPOSAL
* 1^0 ^Subject:.*URGENT.*ASISSTANCE
* 1^0 ^Subject: *I NEED YOUR ASSISTANCE
X-trash/

# Diffusion des messages des listes de diffusion
:0
* 1^0 ^Precedence:.*list
* 1^0 ^Precedence:.*bulk
* 1^0 ^List-
* 1^0 ^X-Distribution:.*bulk
{
:0
* 1^0 ^Return-path:.*debian-devel-admin@debian.or.jp
jp-debian-devel/

:0
* ^Resent-Sender.*debian-user-request@lists.debian.org
debian-user/

:0
* ^Resent-Sender.*debian-devel-request@lists.debian.org
debian-devel/

:0
* ^Resent-Sender.*debian-announce-request@lists.debian.org
debian-announce

:0
mailing-list/
}

:0
Inbox/

6.6.3. Redistribuer le contenu d'une « mbox »

Vous devrez distribuer vous-même les courriels se trouvant des les boîtes à lettres de votre répertoire personnel depuis « /var/mail/<nom_utilisateur> » si votre répertoire personnel est plein et que procmail(1) échoue. Après avoir fait de la place sur le disque dans votre répertoire personnel, lancez ce qui suit :

# /etc/init.d/${MAILDAEMON} stop
# formail -s procmail </var/mail/<nom_utilisateur>
# /etc/init.d/${MAILDAEMON} start

6.7. serveur POP3/IMAP4

Si vous voulez faire tourner un serveur privés 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.

Tableau 6.11. Liste de serveurs POP3/IMAP4

paquet popcon taille type description
qpopper V:0.8, I:3 684(*) POP3 serveur BSD POP3 amélioré Qualcomm
courier-pop V:1.3, I:1.8 107 POP3 serveur de courriel Courier - serveur POP3 (format maildir uniquement)
ipopd V:0.07, I:0.12 169 POP3 serveur PO2 et PO3 de l’Université de Washington
cyrus-pop3d V:0.00, I:0.00 21 POP3 système de courrier Cyrus (prise en charge de POP3)
xmail V:0.05, I:0.06 688 POP3 serveur de courrier ESMTP/POP3
courier-imap V:2, I:2 538 IMAP serveur de courriel Courier - serveur IMAP (format maildir uniquement)
uw-imapd V:0.6, I:4 221 IMAP serveur IMAP de l’Université de Washington
cyrus-imapd V:0.00, I:0.01 21 IMAP système de courrier Cyrus (prise en charge d'IMAP)

6.8. Le serveur et les utilitaires d'impression

Sur l’ancien système « UNIX-like » ; le standard était 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 imprimante qui ne soient 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.3.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 :

Tableau 6.12. Liste des serveurs et utilitaires d'impression.

paquet popcon taille port description
lpr V:1.6, I:1.9 460 imprimante (515) BSD lpr/lpd (démon d'impression)
lprng V:0.3, I:0.5 2764 , , , , (Amélioré)
cups V:36, I:49 4279 IPP (631) Serveur Internet d'impression CUPS
cups-client V:14, I:51 542 , , commandes d'impression System V pour CUPS : lp(1), lpstat(1), lpoptions(1), cancel(1), lpmove(8), lpinfo(8), lpadmin(8), …
cups-bsd V:7, I:46 151 , , commandes d'impression BSD pour CUPS : lpr(1), lpq(1), lprm(1), lpc(8)
cups-driver-gutenprint V:6, I:41 21 Non applicable pilotes d'impression pour CUPS

[Astuce] Astuce

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

6.9. Le serveur et les utilitaires d'accès à distance (SSH)

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.

Tableau 6.13. Liste des serveurs et des utilitaires d'accès à distance

paquet popcon taille outil description
openssh-client V:56, I:99 2246 ssh(1) client de l’interpréteur de commandes sécurisé
openssh-server V:67, I:82 701 sshd(8) serveur de l’interpréteur de commandes sécurisé
ssh-askpass-fullscreen V:0.07, I:0.2 24 ssh-askpass-fullscreen(1) demande à l’utilisateur une phrase de passe pour ssh-add (GNOME2)
ssh-askpass V:0.7, I:4 156 ssh-askpass(1) demande à l’utilisateur une phrase de passe pour ssh-add (X natif)

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

6.9.1. Bases de SSH

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

Tableau 6.14. Liste des protocoles et méthodes d'authentification SSH

Protocole SSH Méthode SSH description
SSH-1 « RSAAuthentication » authentification de l’utilisateur basée sur une clé d'identité RSA
, , « RhostsAuthentication » authentification de l’hôte basée sur « .rhosts » (non sûre, désactivée)
, , « RhostsRSAAuthentication » authentification de l’hôte basée sur « .rhosts » combinée avec clé d'hôte RSA (désactivée)
, , « ChallengeResponseAuthentication » authentification par « challenge-response » RSA
, , « PasswordAuthentication » authentification basée sur un mot de passe
SSH-2 « PubkeyAuthentication » authentification de l’utilisateur basée sur une clé publique
, , « HostbasedAuthentication » authentification de la machine basée sur « ~/.rhosts » ou « /etc/hosts.equiv » combiné une authentification par la clé publique de la machine (désactivée)
, , « ChallengeResponseAuthentication » authentification par « challenge-response »
, , « PasswordAuthentication » authentification basée sur un mot de passe

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

Tableau 6.15. Liste des fichiers de configuration de SSH

fichier de configuration description du fichier de configuration
/etc/ssh/ssh_config valeurs par défauts des paramètres du client SSH, consultez ssh_config(5).
/etc/ssh/sshd_config valeurs par défauts des paramètres du serveur SSH, consultez sshd_config(5).
~/.ssh/authorized_keys clés publiques SSH par défaut utilisées pour se connecter à ce compte sur ce serveur SSH
~/.ssh/identity clé secrète SSH-1 RSA de l’utilisateur
~/.ssh/id_rsa clé secrète SSH-2 RSA de l’utilisateur
~/.ssh/id_dsa clé secrète SSH-2 DSA de l’utilisateur

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

Tableau 6.16. Liste d'exemples de démarrage du client SSH

commande description
ssh nomutilisateur@nommachine..domaine.ext connexion avec le mode par défaut
ssh -v nomutilisateur@nommachine..domaine.ext connexion avec le mode par défaut et les messages de débogage
ssh -1 nomutilisateur@nommachine..domaine.ext forcer la connexion avec SSH version 1
ssh -1 -o RSAAuthentication=no -l nomutilisateur@nommachine..domaine.ext forcer l’utilisation d'un mot de passe avec SSH version 1
ssh -o PreferredAuthentications=password -l nomutilisateur@nommachine.domaine.ext forcer l’utilisation d'un mot de passe avec SSH version 2

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

6.9.2. Redirection de port pour un tunnel SMTP/POP3

Pour mettre en place un tube pour se connecter au port 25 du serveur-distant depuis le port 4025 de localhost, et au port 110 du serveur-distant depuis le port 4110 de localhost au travers de ssh, exécutez ce qui suit sur la machine locale :

# ssh -q -L 4025:serveur-distant:25 4110:serveur-distant:110 nomutilisateur@serveur-distant

C'est une manière sécurisée d'effectuer une connexion à des serveurs SMTP / POP3 par Internet. Définissez l’entrée « AllowTcpForwarding » à « yes » dans « /etc/ssh/sshd_config » sur la machine distante.

6.9.3. Se connecter sans mot de passe distant

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.

6.9.4. Clients SSH exotiques

Il existe quelques clients SSH libres disponibles pour d'autres plateformes.

Tableau 6.17. Liste des clients SSH libres pour d'autres plateformes

environnement programme SSH libre
Windows puTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/) (GPL)
Windows (cygwin) SSH sous cygwin (http://www.cygwin.com/) (GPL)
Macintosh Classic macSSH (http://www.macssh.com/) (GPL)
Mac OS X OpenSSH ; utilise ssh dans l’application Terminal (GPL)

6.9.5. Configurer ssh-agent

Il est plus sûr de protéger les clés secrètes de votre authentification SSH avec une phrase de passe. Si la phrase de passe n'a pas été définie, utilisez « ssh-keygen -p » pour le faire.

Placez votre clé publique SSH (par exemple « ~/.ssh/id_rsa.pub ») dans « ~/.ssh/authorized_keys » sur la machine distante en utilisant une connexion basée sur un mot de passe comme décrit ci-dessus.

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/<nom_utilisateur>/.ssh/id_rsa:
Identity added: /home/<nom_utilisateur>/.ssh/id_rsa (/home/<nom_utilisateur>/.ssh/id_rsa)

Il n'y a plus besoin de mot de passe distant, à partir de maintenant, pour la commande suivante :

$ scp toto <utilisateur>@remote.host:toto

Pressez ^D pour quitter la session de l’agent ssh.

Pour le serveur X, le script de démarrage normal de Debian exécute ssh-agent comme processus-père. Vous n'aurez donc à exécuter ssh-add qu'une seule fois. Pour davantage d'informations, veuillez lire ssh-agent(1) et ssh-add(1).

6.9.6. Comment arrêter le système distant par SSH

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

6.9.7. Résoudre les problèmes avec SSH

Si vous rencontrez des problèmes, vérifiez les permissions des fichiers de configuration et lancez ssh avec l’option « -v ».

Utilisez l’option « -P » si vous êtes administrateur et que vous rencontrez des problèmes avec un pare-feu. Cela évite l’utilisation des ports 1 — 1023 du serveur.

Si les connexions ssh vers un site distant s'arrêtent subitement de fonctionner, cela peut être suite à des bidouilles de l’administrateur, le plus probablement un changement de « host_key » pendant une maintenance du système. Après s'être assuré que c'est bien le cas et que personne n'essaie de se faire passer pour la machine distante par une habile bidouille, on peut se reconnecter en supprimant sur la machine locale l’entrée « host_key » de « ~/.ssh/known_hosts ».

6.10. Autres serveurs d'applications réseau

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

Tableau 6.18. Liste d'autres serveurs d'applications réseau

paquet popcon taille protocole description
telnetd V:0.2, I:0.8 156 TELNET Serveur TELNET
telnetd-ssl V:0.07, I:0.2 220 , , , , (prise en charge de SSL)
nfs-kernel-server V:10, I:19 500 NFS Partage de fichiers UNIX
samba V:16, I:28 23234 SMB Partage de fichiers et d'imprimantes Windows
netatalk V:1.8, I:4 3763 ATP Partage de fichiers et d'imprimantes Apple/Mac (AppleTalk)
proftpd-basic V:5, I:6 3900 FTP Téléchargement généraliste de fichiers
wu-ftpd V:0.3, I:0.3 551 , , , ,
apache2-mpm-prefork V:35, I:39 55 HTTP Serveur Web généraliste
apache2-mpm-worker V:6, I:7 55 , , , ,
squid V:4, I:5 1869 , , Serveur mandataire (proxy) web généraliste
squid3 V:1.6, I:1.9 3675 , , , ,
slpd V:0.08, I:0.19 183 SLP Serveur OpenSLP en tant que serveur LDAP
bind9 V:8, I:15 939 DNS adresses IP des autres machines
isc-dhcp-server V:3, I:5 2041 DHCP adresse IP du client lui-même

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.

6.11. Autres clients d'applications réseau

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

Tableau 6.19. Liste de clients d'applications réseau

paquet popcon taille protocole description
netcat I:14 40 TCP/IP couteau de l’armée Suisse pour TCP/IP
openssl V:71, I:95 1077 SSL binaire Secure Socket Layer (SSL) et outils de chiffrement associés
stunnel4 V:0.5, I:2 445 , , enrobeur SSL universel
telnet V:13, I:90 200 TELNET Client TELNET
telnet-ssl V:0.2, I:1.2 260 , , , , (prise en charge de SSL)
nfs-common V:47, I:81 700 NFS Partage de fichiers UNIX
smbclient V:6, I:39 42013 SMB Client de partage de fichiers et imprimantes MS Windows
smbfs V:4, I:20 47 , , commande de montage et de démontage de fichiers MS Windows distants
ftp V:9, I:86 132 FTP Client FTP
lftp V:1.2, I:5 1717 , , , ,
ncftp V:1.1, I:5 1308 , , client FTP plein écran
wget V:37, I:99 2162 HTTP et FTP téléchargement web
curl V:8, I:27 331 , , , ,
axel V:0.16, I:0.6 212 , , accélérateur de téléchargement
aria2 V:0.15, I:0.8 4929 , , accélérateur de téléchargement avec prise en charge de BitTorrent et Metalink
bind9-host V:44, I:93 175 DNS host(1) de bind9, « Priority: standard »
dnsutils V:13, I:91 374 , , dig(1) de bind, « Priority: standard »
isc-dhcp-client V:41, I:71 1775 DHCP obtenir une adresse IP
ldap-utils V:1.4, I:6 685 LDAP obtenir des données d'un serveur LDAP

6.12. Le diagnostic des démons du système

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 :

Tableau 6.20. Liste des RFC courantes

RFC description
rfc1939 et rfc2449 service POP3
rfc3501 service IMAP4
rfc2821 (rfc821) service SMTP
rfc2822 (rfc822) Format de fichier de courrier électronique
rfc2045 Extensions multifonctions du courrier Internet « Multipurpose Internet Mail Extensions (MIME) »
rfc819 service DNS
rfc2616 service HTTP
rfc2396 définition d'une URI

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