OpenSSL VPN Serveurs de messagerie |
Postfix/PostfixPostFix est un excellent relais SMTP utilisé entre autres chez Free (le site Web: http://www.postfix.org/) Pourquoi installer un relais de messagerie local ?Dans mon cas, le problème venait de chez OVH qui, fin 2006, a rencontré de graves problèmes avec ses relais de messagerie ce qui a entraîné des délais de livraison des emails allant de quelques secondes à plusieurs jours (j'ai un record à quatre jours) et ceci pendant plusieurs semaines. L'utilisation des mails étant devenue critique pour mon client, l'hébergement local de sa messagerie était justifié bien que l'externalisation chez un autre prestataire aurait été une aussi bonne solution, mais le défit de maîtriser Postfix méritait bien d'y passer quelques longues soirées ! De plus, l'externalisation n'évitait pas l'aller/retour du mail entre le client et son hébergeur ce qui induit un délai dans la distribution des emails échangés entre collaborateurs. La problématiqueL'ancien serveur de messagerie mutualisé d'OVH fait un forward vers des boîtes emails hébergées sur un serveur SMTP local sous Windows dont le domaine est du type DynDns (l'IP est statique depuis qu'il est client Free, mais le nom de ce domaine est resté pour des raisons historiques). La compilation de Postfix
Ajout au fichier /etc/rc.local
Mémento des commandes utilesrechargement de la configuration lecture du contenu d'une table de hashage contenu de la queue d'envoi suppression d'un élément de la queue de sortie depuis quelques temps smtp.free.fr bloque l'envoi de mails en nombre voici un exemple de ce message # mailq↵ 5B54DCC 451 Fri Nov 9 23:10:55 root@bacp.graille.net (host smtp.free.fr[212.27.48.4] refused to talk to me: 421 smtp4-g19.free.fr Error: too many connections from 99.99.99.99) coat@grdvle.net miclalave@saodaas.com pour relancer manuellement l'envoi faire un scénario d'envoi de mail en telnet A noter que l'utilisation du To: dans la section data vous évitera de chercher pourquoi le destinataire du message s'appelle "To: undisclosed-recipients" .... La configuration de postfixConfigurer le nouveau relais des mails entrant du domaine pour qu'il relaye vers l'ancien relais devenu interne. et modifions le /etc/resolve.conf pour que le fichier host soit consulté avant une résolution DNS: configuration de Postfix, (fichier /etc/postfix/main.cf) et voilà les mails entrant pour le domaine @mail.xxx.dyndns.com sont redirigés vers le serveur Windows 192.168.2.253. Deuxiéme phase, écriture des règles de redirection. créer un fichier /etc/postfix/virtual contenant : La première ligne correspond à une liste de diffusion, Traitement anti-spamsSi vous recevez plusieurs centaines de spams par jour, ajoutez ceci au fichier /etc/postfix/main.cf :
l'hémoragie devrait se calmer. Création d'une whitelistCette liste vous permettra de passer outre les réponses des RBL's sur la base d'une liste d'adresses précisées. En attendant que vos correspondant change d'ISP, vous pouvez forcer la réception de leurs emails en ajoutant la ligne en rouge à votre /etc/postfix/main.cf
Reste à créer et alimenter le fichier, voici un exemple de fichier whitelist,
Il faudra regénérer le fichier whitelist.db après chaque modification par l'appel indiqué en entête du fichier. Vous remarquerez, au passage, que la même liste peut aussi servir de blacklist en utilisant le mot clef REJECT à la place de OK. La liste exhaustive des mots clefs est à l'adresse http://www.postfix.org/access.5.html. Un script listant les expéditeurs de spamsRéguliérement il vous faudra mettre à jour votre whitelist suite aux différentes plaintes de vos correspondants n'arrivant pas à vous contacter. Voici un script PERL permettant de traiter le journal d'activité du serveur Postfix et d'en extraire les expéditeurs ayant été bloqués. #!/usr/bin/perl -s $iCount = 0; if($#ARGV == -1) { $sMAIL = "[^>]+"; } else{ $sMAIL = $ARGV[0]; print "spams refusés pour l'adresse ",$sMAIL,"\n"; } while ($ligne = <STDIN>) { if ($ligne =~ /(.{15}).*NOQUEUE.*from=<([^@]+@[^>]+)> to=<($sMAIL)/) { $iCount++; if($sMAIL eq "[^>]+") { printf("%4i %s %s->%s\n",$iCount,$1,$2,$3); } else { printf("%4i %s %s\n",$iCount,$1,$2); } } } Pour obtenir l'ensemble des spammeurs de la journée,
more /var/log/maillog* pour explorer toutes les journées de logs disponibles. Pour obtenir les expéditeurs d'une adresse précise,
Un autre analyseur de log postfix est dans la rubrique exemple de Boost. |