Vous allez successivement configurer un serveur SMTP Postifx, tester la configuration, installer les serveur pop et imap, tester le fonctionnemnt de l'ensemble.
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 . Vérifiez le bon démarrage du serveur dans le fichier de log et dans la table des processus (ps startaxf). 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.
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 , et réalisez un dialogue similaire à celui décrit en TD. Le message doit être délivré dans la boîte de VotreServeur 25cpt2. Utilisez la commande ps pour voir le chargement des différents démons.axf
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
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.
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.
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 , 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.
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.
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.
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.
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é.
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 ne donne rien car le serveur imap est lancé “ à la demande ” par le serveur inetd ou xinetd.aux | grep imap
Par contre la commande netstat montre bien qu'un port est bien ouvert en “ écoute ”.
-a | grep LISTEN | grep imap
tcp 0 0 *:imap *:* LISTEN
Saisissez la commande telnet pour activer le service imap. Le serveur doit répondre :
DeVotreServeurImap 143
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 montre mainetant que le service est maintenant bien dans la liste des processus :
aux | grep imap
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.
La commande netstat donne l'état d'une connexion établie entre un client et le serveur.Socket client TCP sur le port 1024
a | grep imap
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 utilise le pseudo-système de fichiers d'informations sur les processus 1025/tcp/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.
Utilisez Mail & NewsGroup de Mozilla ou kmail par exemple. Dans Mail & News Group, allez dans le menu de configuration () 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.
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.
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.