Configuration du serveur postifx.

Vous allez successivement configurer un serveur SMTP Postifx, tester la configuration, installer les serveur pop et imap, tester le fonctionnemnt de l'ensemble.

Installation du serveur SMTP

Configurer votre machine pour un service minimum (pas de liste, pas de réécriture d'adresse...).

Utilisez l'exemple de configuration de main.cf et la liste des variables à configurer donnés dans la fiche de cours, afin de mettre en place un service minimum.

Activez le service avec la commande /etc/init.d/postfix start. Vérifiez le bon démarrage du serveur dans le fichier de log et dans la table des processus (ps axf). Vous devriez obtenir quelque chose comme :

 2745 ?        S      0:00 /usr/lib/postfix/master
 2748 ?        S      0:00  \_ pickup -l -t fifo -c
 2749 ?        S      0:00  \_ qmgr -l -t fifo -u -c
 2750 ?        S      0:00  \_ tlsmgr -l -t fifo -u -c

Vérifiez également les traces dans le fichier de journalisation.

Test de la configuration du serveur SMTP

Créez sur la machine locale deux comptes systèmes pour les tests. cpt1 et cpt2 par exemple.

Ouvrez une session sous le compte cpt1 afin de réaliser un envoi de mail pour cpt2.

Lancez une transaction telnet VotreServeur 25, et réalisez un dialogue similaire à celui décrit en TD. Le message doit être délivré dans la boîte de cpt2. Utilisez la commande ps axf pour voir le chargement des différents démons.

Rélisez l'opération à l'aide du programme mail. Vérifiez que le message est bien délivré.

Avant de terminer la transaction, identifiez la session avec la commande netstat :

netstat -atup | grep ESTABLISHED

Installation du serveur PostOFFICE Pop3

La configuration du service pop est des plus simple. Il est même possible qu'il soit déjà actif. Décommentez la ligne dans le fichier /etc/inetd.conf ou utilisez dpkg-reconfigure.

Vérifier le fichier /etc/inetd.conf, relancez au besoin le service inetd.

# Pop and imap mail services

Avec xinet, la configuration est dans /etc/xinetd.d. Editez les fichiers correspondant aux différents services. Par exemple le fichier /etc/xinetd.d/pop3s.

# default: off
# The POP3S service allows remote users to access their mail \
# using an POP3 client with SSL support such as fetchmail.

service pop3s
{
	socket_type		= stream
	wait			= no
	user			= root
	server			= /usr/sbin/ipop3d
	log_on_success		+= USERID
	log_on_failure		+= USERID
	disable			= no
}

Dans inetd.conf, décommentez la ligne. Dans xinetd, mettez la variable disable à no.

Relancer le service inetd ou xinetd, vérifiez l'ouverture des ports avec la commande netstat.

Identifiez les numéros de ports des services dans le fichier /etc/services.

Test du serveur Pop3

Vous allez réaliser l'opération à partir de la machine locale et d'une machine distante. La résolution de nom doit fonctionner, sinon utilisez les adresses IP. Vous utiliserez kmail ou le client de messagerie de Mozilla.

  1. Sur la machine locale qui est votre serveur SMTP et serveur POP3, configurez le client de messagerie avec les paramètres suivants :

    Serveur smtp : Nom de votre serveur 
    Serveur POP	: 	Nom de votre serveur POP 
    Votre compte d'utilisateur
    Votre mot de passe
    

    Testez l'envoi et la réception de message.

    Renseignez bien le numéro de port. Dans kmail, l'onglet extras vous donne accès à un bouton tester ce que le serveur peut gérer, et va vous renseigner sur le support de ssl ou tls du serveur.

    Avec un client pop, les messages sont, par défaut, téléchargés depuis le serveur sur le client. La procédure supprime les fichiers téléchargés sur le serveur. Cette option est configurable sur la majorité des clients.

    Vérifiez que les fichiers sont bien supprimés sur le serveur.

    Réitérez l'envoi de message en mettant un fichier attaché (par exemple un fichier xls). Vérifier et relevez la description MIME du message.

  2. Sur un client configurez Nestcape Messenger avec les paramètres suivants :

    Serveur smtp : Nom de votre serveur (Machine distante)
    Serveur POP	: 	Nom de votre serveur POP3 (Machine distante)
    Votre compte d'utilisateur
    Votre mot de passe
    

    Testez l'envoi et la réception de message.

Identifiez les transactions dans le fichier de log.

Utilisation des alias

Créez un compte utilisateur pn,

Créez un alias prenom.nom pour ce compte système dans le fichier /etc/aliases.

Mettez à jour le fichier /etc/aliases/db.

Vérifiez que les messages envoyés à :

pn@votredomaine ou prenom.nom@votredomaine doivent tous être correctement délivrés.

Utilisation des listes

Ouvrez à l'aide d'un éditeur le fichier /etc/aliases

Créez une liste de la façon suivante :

maliste: cpt1, cpt2

Enregistrez et régénérez le fichier aliases.db

Envoyez un message à maliste@foo.org, vérifiez que tous les membres de la liste ont bien reçu le message.

La gestion des erreurs

Certaines erreurs “ systèmes ” sont gérés par un compte particulier “ MAILER_DAEMON ”. Ce compte est en général un alias vers postmaster, qui, lui même redirige sur le compte de l'administrateur en fonction. Il agit commem un “ robot ” notamment quand un message ne peut être délivré.

Procédure de test

Envoyez un message à QuiNexistePas@foo.org

Relevez vos nouveau messages. Normalement, vous êtes averti que votre message n'a pas pu être délivré.

Mise en place du service IMAP sur le serveur

La mise en oeuvre est identique à celle du service Pop3. Configurer le fichier inetd.conf ou le fichier /etc/xinetd.d/imap. Relancer le service serveur (inetd ou xinetd).

Vous allez tester le bon fonctionnement de votre serveur : la commande ps aux | grep imap ne donne rien car le serveur imap est lancé “ à la demande ” par le serveur inetd ou xinetd.

Par contre la commande netstat -a | grep LISTEN | grep imap montre bien qu'un port est bien ouvert en “ écoute ”.

tcp        0      0 *:imap                  *:*               LISTEN

Saisissez la commande telnet DeVotreServeurImap 143 pour activer le service imap. Le serveur doit répondre :

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4 IMAP4REV1 STARTTLS LOGIN-REFERRALS AUTH=LOGIN]\
   uranus.foo.org IMAP4rev1 2000.287rh at Sat, 17 Nov 2001 14:14:42 +0100 (CET)

Dans une autre session xterm, la commande ps aux | grep imap montre mainetant que le service est maintenant bien dans la liste des processus :

 root     11551  0.0  1.1  3664 1448 ?        S    14:14   0:00 imapd

et la commande ps axf

  231 ?        S      0:00 /usr/sbin/inetd
  315 ?        S      0:00  \_ imapd

montre bien que le processus imapd dépend (est fils de) inetd.

Plus loin dans le décryptage

La commande netstat a | grep imap donne l'état d'une connexion établie entre un client et le serveur.Socket client TCP sur le port 1024

tcp        0      0 *:imaps           *:*                LISTEN
tcp        0      0 *:imap2           *:*                LISTEN
tcp        0      0 knoppix:imap2     knoppix:1025       ESTABLISHED
tcp        0      0 knoppix:1025      knoppix:imap2      ESTABLISHED

La commande fuser 1025/tcp utilise le pseudo-système de fichiers d'informations sur les processus /proc pour identifier “ QUI ” utilise la connexion tcp sur le port 1025.

root@knoppix:/home/knoppix# fuser 1025/tcp
1025/tcp:              364

La commande ls -l /proc/364 donne les indications sur le programme qui utilise cette connexion et montre que c'est une commande telnet qui a déclenché le processus.

root@knoppix:/home/knoppix# ls -al /proc/364
total 0
dr-xr-xr-x 3  knoppix  knoppix  0 2003-04-16 15:06 .
dr-xr-xr-x 49 root     root     0 2003-04-16 16:52 ..
-r--r--r-- 1  knoppix  knoppix  0 2003-04-16 15:06 cmdline
-r--r--r-- 1  knoppix  knoppix  0 2003-04-16 15:06 cpu
lrwxrwxrwx 1 knoppix  knoppix 0 2003-04-16 15:06 cwd -> /home/knoppix
-r-------- 1 knoppix  knoppix 0 2003-04-16 15:06 environ
lrwxrwxrwx 1 knoppix  knoppix 0 2003-04-16 15:06 \
                                           exe -> /usr/bin/telnet-ssl
dr-x------ 2 knoppix  knoppix 0 2003-04-16 15:06 fd
-r--r--r-- 1 knoppix  knoppix 0 2003-04-16 15:06 maps
-rw------- 1 knoppix  knoppix 0 2003-04-16 15:06 mem
-r--r--r-- 1 knoppix  knoppix 0 2003-04-16 15:06 mounts
lrwxrwxrwx 1 knoppix  knoppix 0 2003-04-16 15:06 root -> /
-r--r--r-- 1 knoppix  knoppix 0 2003-04-16 15:06 stat
-r--r--r-- 1 knoppix  knoppix 0 2003-04-16 15:06 statm
-r--r--r-- 1 knoppix  knoppix 0 2003-04-16 15:06 status

et voir la commande qui a activé cette connexion more /proc/364/cmdline qui retourne telnet localhost 143.

Mise en place du client IMAP

Utilisez Mail & NewsGroup de Mozilla ou kmail par exemple. Dans Mail & News Group, allez dans le menu de configuration (Edit) et ajoutez un compte. Prenez un compte imap.

Complétez la configuration de votre client de messagerie

Ouvrez l'application Messenger, testez l'utilisation du client IMAP.

Le relayage

Utiliser le “ relayage ” consiste pour un client A à utiliser le service serveur SMTP d'un domaine B pour inonder de messages (spammer) des boîtes aux lettres. Les serveurs sont généralement configurés pour empêcher le relayage. Dans Postifx, cette option est configurée par défaut.

Le relayage pose plusieurs problèmes. Remplissage des boîtes aux lettres sans l'accord des destinataires, utilisation des ressources disques et CPU à l'insu des sociétés qui relaient les courriers...

Afin de combattre un peu le phénomène, une société qui relai les messages peut se voir “ black listée ”, c'est-à-dire inscrite dans une liste noire référencée. Il existe plusieurs sites référençant ces listes noires. Certains de ces messages ne seront plus distribués. Voir pour cela, http://mail-abuse.org/rbl/, page principale de MAPS (Mail Abuse Prevention System LLC) RBLSM (Realtime Blackhole List).

Il est possible d'utiliser ces bases de données pour empêcher le relayage, ou refuser de délivrer les messages d'un site “ black listé ”.

maps_rbl_domains = rbl.maps.vix.com
maps_rbl_reject_code = 554
reject_maps_rbl

Vous allez activer la fonction de relayage sur votre serveur et tester son comportement. Modifiez la ligne :

relay_domains = $mydestination

par

relay_domains = $mydestination, domaine1.dom, domaine2.dom...

où domaine1.dom, domaine2.dom... représentent les différents domaines de votre salle de TP. Relancer les services serveurs.

Vous pouvez maintenant à partir d'un client, utiliser le serveur smtp d'un autre domaine pour vous en servir comme “ agent de relai ” et envoyer des messages aux utilisateurs des autres domaines.

Autres techniques de filtrage et autres services de postfix

Le fichier de configuration main.cf, permet de filtrer sur les entêtes de messages (grep) sous sur le contenu (body). Ces outils permettent dans certains cas de limiter le spam.

Le serveur postfix.org tient à jour des produits complémentaires qui permettent de mettre en place des antivirus, des outils de filtrage de spam ou des outils de type web-mail.