Jump to content

Archived

This topic is now archived and is closed to further replies.

uranus49

[tuto][initié]Postfix : Créer son serveur de Mail

Recommended Posts

Bonjour bonjour, voici un nouveau tuto créé sur Uranus, la planète pirate, qui va vous permettre de ne pas payer pour un serveur de mail digne de Exchange (tousse).

Voici donc le tuto sur :

POSTFIX
:chinois:

Le serveur mail sous Linux

Postfix est un serveur de messagerie crée par Wieste Venema cher IBM. C’est un logiciel gratuit en Open Source et une alternative à Sendmail. Postfix se veut très simple dans sa configuration de base mais il est aussi très complet. Des dizaines de paramètres peuvent être modifiés et je ne pense pas être en mesure de tous les expliquer. Mais comme Postfix est bien fait, tous ses paramètres ont des valeurs par défaut et Postfix est presque opérationnel en l’état. Nous allons créer un serveur de mail sécurisé, qui demandera des authentifications avec des certificats SSL et tout le bazar… Commençons par le commencement.

Sommaire :

1. Quelques définitions

----- 1.1 Les composants d’un système de messagerie

----- 1.2 Les protocoles de l’email

2. De quoi on a besoin ?

---- 2.1 Pourquoi tant de logiciels ?

---- 2.2 Le fonctionnement de Postfix

3. Configuration de Postfix

----- 3.1 Création des utilisateurs et vérification des aliases

----- 3.2 # vi main.cf

----- 3.3 Premiers essais

4. SMTP pour gmail

----- 4.1 Fonctionnement de ssl

----- 4.2 L’autorité de certification CA

----- 4.3 Créer le certificat et la clé de l’autorité fille

----- 4.4 Les réglages sur Postfix

----- 4.5 Authentification SASL

----- 4.6 Tests

5. POP3

----- 5.1 Fetchmail et procmail

----- 5.2 Tests POP3 et fichiers supplémentaires

----- 5.3 .fetchmailrc

----- 5.4 Qu’en pensent les logs ?

6. Esquiver les saloperies (attention cette partie n'est la qu'a titre d'exemple)

----- 6.1 les RBLs et le filtrage des pièces jointes

----- 6.2 Spamassassin :

----- 6.2.1 Installation de spamassassin

----- 6.2.2 Avant de configurer Spamassassin : Pysor

----- 6.2.3 Configuration de base de spamassassin

----- 6.2.4 Procmail

----- 6.2.5 Configuration avancée de spamassassin

----- 6.2.6 Plus loin dans le filtrage

----- 6.3 L’antivirus, CLAMAV

----- 6.4 Amavis

1. Quelques définitions :

(J’en vois qui râlent déjà au fond…) :

1.1 Les composants d’un système de messagerie :

- MUA : il poste le courrier et le lit, ce logiciel est l’interface utilisateur, Thunderbird, Outlook (désolé) sont des MUA.

- MTA : ou MX, comme Mail eXchanger, transfert le courrier d’une machine à l’autre,

Postfix et Exchange (désolé) sont des MTA. Lorsqu’un utilisateur envoie un mail, ce dernier passe au travers de plusieurs MTA afin d’arriver chez le destinataire.

- MDA : Son rôle est de stocker les mails venant d’un MTA.

1.2 Les protocoles de l’email :

- SMTP : Simple Mail Transfert Protocol se charge du transfert du courrier entre MTA, ou d’un MUA vers un MTA. (Aspirine). A savoir qu’il existe le protocole ESMTP.

- POP3 : Post Office Protocol sert à une station pour récupérer le courrier stocké dans une boite aux lettres, vous utilisez ça souvent avec Outl… heeeeuu avec Foxmail. (pop.free.fr, pop.neuf.fr).

- IMAP4 : Internet Message Access Protocol est comme POP3, il sert à ramasser le courrier. La grande différence est que POP3, c’est pour les newbies et IMAP4 pour les pros car IMAP4 peux gérer plusieurs boîtes de réception ou d’émission, il maintient au niveau des serveurs les états non-lus, lus, détruits …etc, il peut envoyer du courrier alors que POP ne peux que recevoir, et il a été conçu pour du traitement offline.

Pour une utilisation personnelle, je conseille POP3, paskeu c pu simpl et paskeu toute fasson ca marche tré bi1 komm ca. Sans compter que je ne connais pas de serveur IMAP4 public. Bref, nous aborderons quand même les deux.

- MIME : Rien à voir avec le mimétisme, Multipurpose Internet Mail Extension « a été développé pour supporter la transmission de documents multimédias en conservant l’infrastructure de l’email classique ». En clair, il permet le transport de pièces jointes de façon transparente pour les MTA et il permet de décomposer le courrier en plusieurs parties.

Share this post


Link to post
Share on other sites

2. Bon alors… C’est quand qu’on commence ?

On va pas encore trifouiller les fichiers de conf tout de suite, car il faut d’abord savoir ce que l’on va faire, installer les composants du serveur mail et savoir comment il marche. Pas de panique, je ne vais rien détailler. Nous aurons besoin en premier lieu de :

- Postfix (logique)

- Cyrus SASL

- OpenSSL

- SpamAssassin

- Imapd

- Fetchmail et procmail

- Amavis (merci _plouf_)

On a aussi besoin d’un serveur DNS. Dans l’exemple, le domaine sera uranus49.yo et le nom FQDN du serveur mail sera linuxmail.uranus49.yo.

2.1 Pourquoi tant de logiciels ?

Car nous vivons une période plutôt trouble ou le spam n’est plus une légende. Il y’a deux principales solutions pour envoyer un mail. Soit vous êtes riches, et vous achetez une adresse fixe reconnue par les serveurs de nom et de mail, soit vous êtes pauv… heeeuu… limité en moyens et vous passez par votre FAI.

Dans les deux cas, vous devrez vous authentifier auprès du relai smtp, que se soit celui d’Oléane (pour les pros) ou celui de Free (pour les nazes :-D). Votre FAI est obligé de transmettre vos mails. Mais dans l’exemple que je vais développer, où je passe par le relai de Google Mail, sasl et tls sont indispensables (je détaillerai par la suite).

Il va nous falloir aussi et bien entendu un antispam pour ne pas recevoir 80 mails de cul par jour. On installera aussi un antivirus pour les clients sous Windows.

Voici le schéma du réseau exemple pour lequel nous allons configurer postfix.

56e49152469742281332bae0c9346235.jpg

2.2 Le fonctionnement de Postfix :

Alors voilà, Postfix, c’est ça :

06f1c0b007f124efb6bb29d9e95409fd.gif

Ca, c’est pour la réception…

0d59d54829304fa5b076cc4db4877827.gif

Et ça c’est la livraison.

465be285ba7e3a79948d80c37dab4193.gif

Si vous êtes motivé, il y a une super explication de ces schémas sur http://christian.caleca.free.fr/smtp/const_smtp.htm , ou alors man postfix. Préférez le site de Christian Caleca, il explique toute la théorie de l’email bien mieux que moi.

Bon, si vous avez pas trop mal au crâne, alors on va pouvoir envoyer un email.

Share this post


Link to post
Share on other sites

3. Configuration de Postfix :

Lorsque Postfix est installé, le dossier /etc/postfix apparaît, un petit ls nous permet de nous rendre compte du répertoire. Gardez bien à l’œil les fichiers main.cf et master.cf, ce sont les deux principaux. On verra les autres plus tard et on en rajoutera.

3.1 Création des utilisateurs et vérification des aliases :

- A l’installation, le groupe postfix est crée avec le GID 73, il faut créer les utilisateurs qui posteront.

useradd paul

Ici Paul aura aussi un répertoire personnel dans le dossier home ainsi qu’un bash etc...

man useradd vous aidera à définir plus en détail les utilisateurs crées.

- Veillez à ce que les lignes suivantes apparaissent quelque par dans le fichier /etc/postfix/aliases (ça doit être d’origine).

postmaster : [tabulation] root

root: [tabulation] postfix

3.2 # vi main.cf :

Ho, il est déjà rempli… oui, mais il n’est pas complet. Ne changez surtout pas les paramètres déjà renseignés. Copiez le fichier original dans le même dossier sous le nom main.cf.d par exemple. Sous Ubuntu, il faut créer le fichier dès le début.

Commençons la configuration à partir du bas du fichier.

# Main.cf

# Nom FQDN de la machine et nom du domaine

myhostname = linuxmail.uranus49.yo

mydomain = uranus49.yo

# Jusqu’ici, pas de difficultés, on renseigne des variables utiles pour la suite

# Domaine à afficher dans le courrier sortant (user@uranus49.yo par exemple)

myorigin = $mydomain

# Domaines où le courrier sera livré (ici le domaine entier)

mydesination = $myhostname, localhost.$mydomain, localhost, $mydomain

# Relayer le courrier des clients suivants (ici les réseaux de classe C). Notons que cette ligne configure aussi l’anti-relaying.

mynetworks_style = class

# Par défaut, Postfix relaie le courrier étranger seulement vers les réseaux autorisés ($mydestination). Il n’est donc pas nécessaire de renseigner le paramètre relay_domain.

# A quel relai smtp allons-nous transmettre le courrier ? Ici, il faut renseigner le smtp de votre FAI (smtp.neuf.fr, smtp.free.fr ….). Dans l’exemple, on utilise Google. Attention il faut avoir un compte quelque soit le smtp. Si vous désirez une invitation pour gmail, envoyer moi un MP.

relayhost = [smtp.gmail.com]

# Si vous faites du NAT ou que vous avez un proxy, il faut indiquer son adresse

proxy_interfaces = adresse_du_proxy_ou_du_NAT

# Adresses sur lesquelles Postfix doit écouter (all par défaut)

inet_interfaces = $myhostname, localhost

# Le domaine uranus49.yo n’est pas reconnu par les serveurs de noms, vous aurez des problèmes à envoyer un mail dehors. Il faut remplacer l’adresse root@uranus49.yo par une vraie.

sender_canonical_maps = hash:/etc/postfix/sender_canonical

transport_map = hash:/etc/postfix/transport

# Si vous avez pas de fichiers aliases

Alias_maps = hash:/etc/postfix/aliases

Alias_database =/etc/postfix/aliases

Sortons du fichier main.cf avec la commande [ESC] :wq. Il faut créer le fichier sender_canonical et le remplir de la sorte…

root [tabulation] uranus49@wanadoo.fr

postfix [tabulation] uranus49@wanadoo.fr

… et faire de même pour tous les utilisateurs. On va ensuite compiler ce fichier avec postmap sender_canonical. Le fichier transport doit aussi être rensigné :

uranus49.yo [tabulation] smtp:[linuxmail.uranus49.yo]

* [tabulation] smtp:[smtp.gmail.com]

Postmap transport. Maintenant on va recharger le fichier de configuration avec postfix reload et faire des essais. Ne pas oublier de faire un postalias aliases pour les aliases.

3.3 Premiers essais :

Nous allons tester l’envoie de mails localement, puis sur une boite hotmail. Pour mieux se rendre compte du bon fonctionnement, tapons la commande tail –f /var/log/mail/info. La commande mail sous Linux permet d’envoyer du courrier en format texte. Nota : root ne dispose pas de boîte email. Pour root, on utilise l’utilisateur postfix.

mail paul [enter]

Subject : test local [enter]

Bla bla bla [Ctrl + D]

Cc : [enter]

Que nous dit le log ?
Apr 5 14:38:51 linuxmail postfix/pickup[2094]: EF3F26CE77: uid=0 from=<root>

Apr 5 14:38:51 linuxmail postfix/cleanup[2954]: EF3F26CE77:

message-id=<20060405123851.EF3F26CE77@linuxmail.uranus49.yo>

Apr 5 14:38:52 linuxmail postfix/qmgr[2095]: EF3F26CE77: from=<root@uranus49.yo>,

size=288, nrcpt=1 (queue active)

Apr 5 14:38:52 linuxmail postfix/local[2956]: EF3F26CE77: to=<paul@uranus49.yo>,

orig_to=<paul>, relay=local, delay=1, status=sent (delivered to mailbox)

Apr 5 14:38:52 linuxmail postfix/qmgr[2095]: EF3F26CE77: removed

Le mail a bien été envoyé, on peut le lire dans la boîte de réception en tapant vi /var/spool/mail/paul. Le message est facilement compréhensible. Ici, vous remarquerez que je n’avais pas encore édité et compilé le fichier sender_canonical.

Testons maintenant sur une boîte hotmail. mail truc@hotmail.com. Si le smtp est celui de votre FAI, ca devrait marcher (avec wanadoo ça marche pas sauf pour mailler les adresses wanadoo…), sur gmail, les logs vont nous donner un message d’erreur :

Apr 5 14:51:03 linuxmail postfix/pickup[3001]: 158A96CE77: uid=0 from=<root>

Apr 5 14:51:03 linuxmail postfix/cleanup[3007]: 158A96CE77:

message-id=<20060405125102.158A96CE77@linuxmail.alex.yo>

Apr 5 14:51:03 linuxmail postfix/qmgr[3002]: 158A96CE77: from=<root@uranus49.yo>,

size=317, nrcpt=1 (queue active)

Apr 5 14:51:33 linuxmail postfix/smtp[3009]: connect to

gmail-smtp.l.google.com[64.233.183.114]: Connection timed out (port 25)

Apr 5 14:51:34 linuxmail postfix/smtp[3009]: 158A96CE77:

to=<truc@hotmail.com>, relay=gmail-smtp.l.google.com[64.233.183.109],

delay=32, status=bounced (host gmail-smtp.l.google.com[64.233.183.109] said: 530

5.7.0 Must issue a STARTTLS command first x1sm556219nfb (in reply to MAIL FROM

command))

Apr 5 14:51:34 linuxmail postfix/cleanup[3007]: B18FC6CE7C:

message-id=<20060405125134.B18FC6CE7C@linuxmail.uranus49.yo>

Apr 5 14:51:34 linuxmail postfix/qmgr[3002]: 158A96CE77: removed

Apr 5 14:51:34 linuxmail postfix/qmgr[3002]: B18FC6CE7C: from=<>, size=2191,

nrcpt=1 (queue active)

Apr 5 14:51:34 linuxmail postfix/local[3012]: B18FC6CE7C: to=<postfix@uranus49.yo>,

orig_to=<root@uranus49.yo>, relay=local, delay=0, status=sent (delivered to mailbox)

Apr 5 14:51:34 linuxmail postfix/qmgr[3002]: B18FC6CE7C: removed

Ici, le message est beaucoup plus long et demande quelques explications. On peut déjà observer que la connection au port smtp (25) n’a pas eu lieu (timed out).

Must issue a STARTTLS, qu’est ce que ça veux dire ? Et bien ça veut dire que google mail demande un certificat TLS. Dans le cas contraire, point de connection. On va revenir sur TLS. La question qui se pose pour le moment c’est pourquoi gmail demande un TLS et pas mon FAI ? Je pense que lorsque vous vous connectez sur Internet, vous devez vous authentifier, quand vous envoyez un mail vers le relai smtp du FAI, celui-ci vas contrôler vos paramètres de connection Internet. Vu que seuls les clients du FAI peuvent utiliser le smtp, le tri est vite fait. Mais dans le cas de Google, c’est différent, car il ne vous connaît pas.

Dans les dernières lignes, vous remarquerez qu’un mail dans la boîte postfix à été envoyé. Vous pouvez aller le lire, il va résumer le message d’erreur que l’on vient d’expliquer.

Le destinateur est ici encore root@uranus49.yo, je ne sais pas pourquoi, mais avec gmail, nous n’avons pas besoin du sender_canonical. Je pense que cela est du à l’authentification tls et sasl que nous allons bientôt voir. Patience 

NOTA : Ne pas zapper le sender_canonical avec un smtp FAI.

Testons maintenant avec outlook express. La configuration de ce dernier est simple. Pour les premiers essais, nous utiliserons le POP de notre FAI (enfin pour moi là c’est gmail). Dans le champ SMTP, indiquons notre smtp perso, ici linuxmail.uranus49.yo. Pour utiliser le POP de gmail, il faut renseigner son nom : pop.gmail.com et dans les propriétés du compte, sous l’onglet avancé, cochons la case ce serveur nécessite une connexion sécurisée (SSL). Le port 110 va se changer en port 995.

Pour Neuf par exemple, je ne crois pas que la connexion sécurisée soit nécessaire, les renseignements pour chaque FAI se situent dans leurs Faqs respectives.

L’envoie et la réception de mails ne doit pas poser de problèmes. Si le message ne passe pas, c’est en général dû à une erreur DNS. Notons qu’ici tous les clients utilisant une machine du domaine DNS uranus49.yo sont autorisés à poster et à réceptionner sans pour autant être ajoutés dans les utilisateurs du groupe postfix (du moins pour l’instant).

Share this post


Link to post
Share on other sites

4. SMTP pour gmail :

Avec Google Mail, pour envoyer des mails, on utilise le protocole SMTP avec TLS. Le Secure Socket Layer (SSL) est un protocole de sécurisation des échanges sur Internet, développé à l'origine par Netscape, et renommé Transport Layer Security (TLS) dans ses dernières versions. SSL étant implémenté au dessus de la couche transport dans le modèle OSI, il est complètement indépendant du protocole et de l'application utilisé. Il peut ainsi sécuriser des connexions établies par des protocoles aussi différents que HTTP, FTP, POP, SMTP...

Pour ceux qui ont suivi jusqu’ici sans pouvoir réellement tester l’envoi, ça va devenir intéressant.

4.1 Fonctionnement de ssl :

Pour le chiffrement des données proprement dit, SSL utilise un chiffrement asymétrique (système de clé publique/clé privée) et laisse le choix à l'utilisateur de l'algorithme utilisé (RSA, DES, ...).

Le système de chiffrement asymétrique appelé "chiffrement à clé publique" utilise une paire de clé pour chiffrer et déchiffrer les données. Les deux clés de cette paire sont appelées clé publique et clé privée. Dans ce type de système, la clé publique est utilisée pour chiffrer le message et la clé privée pour le déchiffrer. Attention, toutes les données chiffrées avec la clé publique ne peuvent être déchiffrées que par la clé privée associée. On peut donc maintenant diffuser librement la clé publique, puisque sans la clé privée aucune donnée n'est déchiffrable. (C'est un gros avantage par rapport au système de chiffrement symétrique qui utilise la même clé pour chiffrer et déchiffrer les données).

Si une entité A désire envoyer un message chiffré à une entité B, il devra suivre la procédure suivante :

A récupère la clé publique de B

A chiffre sont message avec la clé publique de B

A envoi le message chiffré à B

B déchiffre le message en utilisant sa clé privée

La machine qui a fournit cette clé ne pourra déchiffrer que les messages chiffrés avec cette clé. Il faut donc s'assurer que la clé publique que l'on récupère est bien celle de la personne à qui l'on souhaite faire parvenir l'information chiffrée !

Une solution à ce problème consiste à utiliser les certificats. Les certificats sont des fichiers numériques qui permettent, entre autre, d'associer une clé publique à une entité.

- Identification d'un des entités

- Signature par une autorité reconnue

4.2 L’autorité de certification CA :

En principe, lorsqu’on utilise ce type de sécurisation, il faut créer des certificats et les faire signer par un organisme reconnu. Le seul inconvénient est que cette signature est payante ( edit : Pas toutes en fait, mais pour verisign, si ) . Pour contourner ce problème, on peut créer sa propre autorité de certification pour signer les différents certificats. Dans ce cas les logs nous indiquerons que le certificat n'a pas été validé par une autorité reconnue.

J’ai trouvé deux solutions pour créer un CA sur la toile. Avec la commande find / -name CA.pl, vous pouvez voir si vous disposez du script de création de CA. Si oui :

Allez dans le répertoire en question,

[root@linuxmail misc]# ./CA.pl -newca

CA certificate filename (or enter to create)

Making CA certificate ...

Generating a 1024 bit RSA private key

............................................................++++++

....................................++++++

writing new private key to './demoCA/private/cakey.pem'

Enter PEM pass phrase:

Verifying - Enter PEM pass phrase: Retenez bien cette passphrase !!

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:FR

State or Province Name (full name) [some-State]:Pays de Loire

Locality Name (eg, city) []:Nantes

Organization Name (eg, company) [internet Widgits Pty Ltd]:uranus-corp

Organizational Unit Name (eg, section) []:SA

Common Name (eg, YOUR name) []:linuxmail.uranus49.yo (nom FQDN du serveur mail)

Email Address []:postfix@uranus49.yo

Un dossier demoCA a dû être crée dans le répertoire courant. Vous pouvez le mettre où vous voulez, perso je l’ai mis dans /etc/ssl.

Si vous n’avez pas ce script dans votre distribution, pas de panique :

Avant de créer l'autorité de certification, il faut préparer l'arborescence en ajoutant quelques répertoires :

mkdir -p /etc/ssl/demoCA/certs

mkdir -p /etc/ssl/demoCA/requests

mkdir -p /etc/ssl/demoCA/private

Les quelques commandes ci-dessous permettent ensuite de créer la clé et le certificat de notre autorité.

openssl genrsa -des3 -out /etc/ssl/demoCA/private/ca_key.pem 1024

openssl req -new -x509 -days 3650 -key /etc/ssl/demoCA/private/ca_key.pem -out /etc/ssl/demoCA/ca_crt.pem

chmod -R 600 /etc/ssl/demoCA/private

Il ya ensuite le questionnaire comme au dessus. Lorsque tout est terminé, les 2 fichiers suivants doivent être présents : /etc/ssl/mon_ca/private/cakey.pem et /etc/ssl/mon_ca/cacert.pem. Ce sont ces deux fichiers qui permettront de signer les certificats des différents services.

Ce CA est l’autorité de certification mère et son rôle sera de signer des autorités filles.

[root@linuxmail demoCA]# openssl verify cacert.pem

cacert.pem: /C=FR/ST=Pays de Loire/L=Nantes/O=uranus-corp/OU=SA/CN=linuxmail.uranus49.yo/emailAddress=postfix@uranus49.yo

error 18 at 0 depth lookup:self signed certificate

OK

Cette commande va nous servir pour créer l’autorité fille. L’erreur est facilement compréhensible ici car on fait avec les moyens du bord.

4.3 Créer le certificat et la clé de l’autorité fille :

[root@linuxmail misc]# openssl req -new -nodes -subj '/C=FR/ST=Pays de

Loire/L=Nantes/O=uranus-corp/OU=SA/CN=linuxmail.uranus49.yo/emailAddress=postfix@uranus49.yo'

-keyout uranus-key.pem -out uranus-req.pem -days 3650

Generating a 1024 bit RSA private key

....++++++

...................++++++

writing new private key to 'uranus-key.pem'

-----

[root@linuxmail misc]# ls

CA.pl* c_hash* c_issuer* demoCA/ uranus-key.pem

CA.sh* c_info* c_name* der_chop* uranus-req.pem

Ici aussi on peut utiliser une autre méthode, mais celle-ci marche quelque soit la méthode utilisée pour créer le CA principal. Il faut maintenant signer le certificat de l’autorité fille par l’autorité mère. Placez vous dans le dossier /etc/ssl, si votre demoCA y est.

[root@linuxmail misc]# openssl ca -out uranus-cert.pem -infiles uranus-req.pemUsing configuration from /usr/lib/ssl/openssl.cnf

Enter pass phrase for ./demoCA/private/cakey.pem:

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number: 1 (0x1)

Validity

Not Before: Apr 14 07:03:19 2006 GMT

Not After : Apr 14 07:03:19 2007 GMT

Subject:

countryName = FR

stateOrProvinceName = Pays de Loire

organizationName = uranus-corp

organizationalUnitName = SA

commonName = linuxmail.uranus49.yo

emailAddress = postfix@uranus49.yo

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

6F:F2:EF:A7:16:E6:6F:1E:77:42:2D:56:0F:47:5F:CB:24:BE:3D:65

X509v3 Authority Key Identifier:

keyid:D4:95:C2:70:9F:66:0D:03:B5:39:B3:06:F2:92:CC:B7:7F:CD:9B:FE

DirName:/C=FR/ST=Pays de

Loire/L=Nantes/O=uranus-corp/OU=SA/CN=linuxmail.uranus49.yo/emailAddress=postfix@uranus49.yo

serial:00

Certificate is to be certified until Apr 14 07:03:19 2007 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

Voilà, tout c’est bien passé. Copions maintenant les fichiers uranus-key.pem et uranus-cert.pem dans /etc/postfix. Un petit chmod 400 uranus-key.pem et chmod 644 uranus-cert.pem, pour ne pas donner de droits inutiles. Le fichier /etc/ssl/demoCA/cacert.pem doit lui aussi avoir la permission 644.

4.4 Les réglages sur Postfix :

Maintenant que nos certificats et nos clés sont bien rangés et tout… il faut ajouter des lignes dans le fichier main.cf.

# Suite de main.cf

#

# Le TLS

# Niveau de log. Au niveau 3, on a un détail assez impressionnant

smtp_tls_loglevel = 1

smtpd_tls_loglevel = 1

# smtp_enforce_tls = yes , quand je le met ça plante, pour certain ça ne marche pas sans, décommentez cette ligne pour l’activer.

# On va voir ça juste après.

smtp_tls_per_site = hash:/etc/postfix/tls_per_site

smtp_use_tls = yes

smtp_tls_CAfile = /etc/ssl/demoCA/cacert.pem

smtp_tls_cert_file = /etc/postfix/uranus-cert.pem

smtp_tls_key_file = /etc/postfix/uranus-key.pem

smtpd_use_tls = yes

smtpd_tls_CAfile = /etc/ssl/demoCA/cacert.pem

smtpd_tls_cert_file = /etc/postfix/uranus-cert.pem

smtpd_tls_key_file = /etc/postfix/uranus-key.pem

smtp_tls_received_header = yes

smtpd_tls_ask_ccert = yes

tls_random_source = dev:/dev/urandom

Nous voulons être sur que nous discutons bien avec le smtp de gmail et nous protéger d’une attaque du style man-in-the-middle. Pour cela, nous allons demander le certificat avant de donner le mot de passe. Créons un fichier tls_per_site, que nous compilerons avec la commande postmap.

smtp.gmail.com [tabulation] MUST

linuxmail.uranus49.yo [tabulation] MAY

Le fichier master.cf doit appartenir à root. Il faut le modifier un petit peu lui aussi et redémarrer Postfix pour qu’il soit pris en compte (/etc/ini.d/postfix restart).

smtp unix - - n - - smtp

relay unix - - n - - smtp

4.5 Authentification SASL :

TLS tout seul, ça ne nous permettra pas d’envoyer des emails avec le smtp de gmail. Comme on l’a vu tout à l’heure, une fois que le certificat de google nous est parvenu, nous allons nous authentifier. Pour cela on utilise le support SASL. S’il est déjà installer, alors on va retourner sur le fichier main.cf.

# Authentification SASL

smtpd_sasl_auth_enable = no

smtp_sasl_auth_enable = yes

broken_sasl_auth_clients = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtpd_sasl_local_domain = $myhostname

smtp_sasl_security_options = noanonymous

smtpd_sasl_application_name = smtpd

Un coup de postfix reload pour rafraichir tout ça et on passe aux essais. Pas oublier de créer le fichier sasl_passwd et le compléter de la sorte :

[smtp.mon_fai.fr] [tabulation] username:password

4.6 Tests :

On va d’abord vérifier que le service TLS fonctionne sur linuxmail.

[root@linuxmail postfix]# telnet linuxmail.uranus49.yo 25

Trying 192.168.0.80…

Connected to linuxmail.uranus49.yo (192.168.0.80)

Escape character in ‘^]’.

220 linuxmail.uranus49.yo ESMTP Postfix (2.1.0-pre-20040209)(Mandrake Linux)

EHLO linuxmail

250-linuxmail.uranus49.yo

250-PIPELINING

250-size 10240000

250-VRFY

250-ETRN

250-STARTTLS

250-8BITMIME

quit

221 Bye

Ca marche !!!

Pour un affichage des logs en temps réel, tail –f /var/log/mail/info. Dans une autre fenêtre, on tape la commande mail uranus49@hotmail.com (pouvez toujours essayer, cette adresse n’existe pas 8) ). Et voici les logs de niveau 1, après c’est prise de tête.

Apr 14 10:08:19 linuxmail postfix/pickup[3468]: A6D6AC139: uid=0 from=<root>

Apr 14 10:08:19 linuxmail postfix/cleanup[3475]: A6D6AC139:

message-id=<20060414080819.A6D6AC139@linuxmail.uranus49.yo>

Apr 14 10:08:19 linuxmail postfix/qmgr[3469]: A6D6AC139:

from=<waaalex@gmail.com>, size=314, nrcpt=1 (queue active)

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: setting up TLS connection to

gmail-smtp.l.google.com

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: verify error:num=20:unable to get

local issuer certificate

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: verify error:num=27:certificate

not trusted

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: verify error:num=21:unable to

verify the first certificate

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: Unverified:

subject_CN=smtp.gmail.com, issuer=Thawte Premium Server CA

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: TLS connection established to

gmail-smtp.l.google.com: TLSv1 with cipher DES-CBC3-SHA (168/168 bits)

Apr 14 10:08:20 linuxmail postfix/smtp[3477]: Peer certficate could not be

verified

Apr 14 10:08:21 linuxmail postfix/smtp[3477]: A6D6AC139:

to=<waaalex@hotmail.com>, relay=gmail-smtp.l.google.com[64.233.183.109],

delay=2, status=sent (250 2.0.0 OK 1145002051 n22sm1767518nfc)

Apr 14 10:08:21 linuxmail postfix/qmgr[3469]: A6D6AC139: removed

L’email a bien été envoyé. Les erreurs de certificat sont dues au fait que notre CA est auto-signé, et donc pas réellement validé. Pour un log sans erreurs, voyez du côté de Verisign, ou sur le site du gouernement.

Log d’un envoie de mail depuis le client :

Apr 14 10:10:31 linuxmail postfix/smtpd[3509]: connect from

Client.uranus49.yo[192.168.0.60]

Apr 14 10:10:31 linuxmail postfix/smtpd[3509]: 65943C138:

client=Client.uranus49.yo[192.168.0.60]

Apr 14 10:10:35 linuxmail postfix/smtpd[3509]: EA178C138:

client=Client.uranus49.yo[192.168.0.60]

Apr 14 10:10:36 linuxmail postfix/cleanup[3512]: EA178C138:

message-id=<000601c65f9a$c81d6610$3c00a8c0@Client>

Apr 14 10:10:36 linuxmail postfix/qmgr[3506]: EA178C138:

from=<waaalex@gmail.com>, size=1405, nrcpt=1 (queue active)

Apr 14 10:10:36 linuxmail postfix/smtpd[3509]: disconnect from

Client.uranus49.yo[192.168.0.60]

Apr 14 10:10:36 linuxmail postfix/smtp[3513]: setting up TLS connection to

gmail-smtp.l.google.com

Apr 14 10:10:36 linuxmail postfix/smtp[3513]: verify error:num=20:unable to get

local issuer certificate

Apr 14 10:10:36 linuxmail postfix/smtp[3513]: verify error:num=27:certificate

not trusted

Apr 14 10:10:36 linuxmail postfix/smtp[3513]: verify error:num=21:unable to

verify the first certificate

Apr 14 10:10:37 linuxmail postfix/smtp[3513]: Unverified:

subject_CN=smtp.gmail.com, issuer=Thawte Premium Server CA

Apr 14 10:10:37 linuxmail postfix/smtp[3513]: TLS connection established to

gmail-smtp.l.google.com: TLSv1 with cipher DES-CBC3-SHA (168/168 bits)

Apr 14 10:10:37 linuxmail postfix/smtp[3513]: Peer certficate could not be

verified

Apr 14 10:10:39 linuxmail postfix/smtp[3513]: EA178C138:

to=<waaalex@hotmail.com>, relay=gmail-smtp.l.google.com[64.233.183.109],

delay=4, status=sent (250 2.0.0 OK 1145002189 o53sm176855nfa)

Apr 14 10:10:39 linuxmail postfix/qmgr[3506]: EA178C138: removed

Voici les différentes commandes de Postfix. Il y’en a surement d’autres.

/etc/init.d/postfix restart # Redémarrer Postfix

postfix reload # Recharger main.cf

postfix check # Vérifier la syntaxe des fichiers de conf

postconf -n # Montre les parameters actifs

postmap <filename> # Compile un fichier en .db

postqueue -p # Affiche la liste d’attente

postsuper -d ALL # Supprime tous les messages de la queue

postsuper -d AC8231EDA2D # Supprime le message AC8231EDA2D

postconf mail_version # Version de Postfix

postalias fichier # "Compile" les fichiers aliases

Bien, on arrive maintenant à envoyer du courrier électronique de partout. Mais on ne va pas s’arrêter là.

Share this post


Link to post
Share on other sites

5. POP3 :

Pop3, c’est simple et ça marche pour tous les FAI. Vous l’utilisez pour rapatrier vos emails sur foxmail ou autre. Connencez par installer un daemon pop3.

5.1 Fetchmail et procmail

Fetchmail va aller contrôler la ou les boites email que l’on va lui spécifier. Procmail lui, triera les emails que fetchmail a importés. Il faut bien comprendre le fonctionnement :

- Fetchmail va chercher les mails ;

- Il les délivre à Postfix ;

- Postfix les traite et les délivre à procmail ;

- Procmail les met dans la boite aux lettres (par défaut /var/mail/$LOGNAME).

- Outlook va les chercher dans la boite et les redistribue dans les sous-dossiers en fonction de ses filtres.

La configuration est simple, voyons d’abord si le service pop fonctionne bien. Il nous faudra aussi deux autres certificats.

5.2 Tests POP3 et fichiers supplémentaires

[root@linuxmail alex]# openssl s_client -connect pop.gmail.com:995 -showcerts

CONNECTED(00000003)

depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com

verify error:num=20:unable to get local issuer certificate

verify return:1

depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com

verify error:num=27:certificate not trusted

verify return:1

depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com

verify error:num=21:unable to verify the first certificate

verify return:1

---

Certificate chain

0 s:/C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com

i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

-----BEGIN CERTIFICATE-----

MIIC3TCCAkagAwIBAgIDBZIAMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT

MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0

aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDUxMTE1MjEyMjQ0WhcNMDcxMTE2MjEyMjQ0

WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN

TW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xFjAUBgNVBAMTDXBv

cC5nbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMP8LCYiLGJ/

RihwcOi1V/zHVTw0Gfu+mI141Vjuuj2DtQoav8emwlXbu8gZoKP9GeMWpX1Vo9qN

4gkslIToHmDnIwGjcaEAfpdhSR9g54Kf5Y7BEXVyco6mTIlpe9vsbV0dmB1FvLP2

1N09dkUJfi7V0fjb8mcn3QYu6+6QNoxPAgMBAAGjga4wgaswDgYDVR0PAQH/BAQD

AgTwMB0GA1UdDgQWBBTdASsopgao1m8hcEg0cDZhucltljA6BgNVHR8EMzAxMC+g

LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDAf

BgNVHSMEGDAWgBRI5mj5K9KylddH2CMgEE8zmJCf1DAdBgNVHSUEFjAUBggrBgEF

BQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAln3/pVqYnUXA1TVGzOqX

LFhohGxpuNkr1UJnQmYxmZeB07uPBYRX8c0JXEKs29TmAHRsLhmp8kF36F11Dxgi

Xm/Y8I9zgWHoMj7SL3Ve/u8K8K7XcUyUuaWmldLQAREafpFy+f+KYHGuAVh8hjy6

XyPlMCqj+PNp8QXjgOcgO68=

-----END CERTIFICATE-----

---

Server certificate

subject=/C=US/ST=California/L=Mountain View/O=Google Inc./CN=pop.gmail.com

issuer=/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

---

No client certificate CA names sent

---

SSL handshake has read 891 bytes and written 338 bytes

---

New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA

Server public key is 1024 bit

SSL-Session:

Protocol : TLSv1

Cipher : DES-CBC3-SHA

Session-ID: 394EE8AB73F07446BE2EC68BDA8AF27FC12A0145556BD30EBA417BBF63C75306

Session-ID-ctx:

Master-Key:

58D81842380048EA7657C9B7355858D15C260415495FB335F4472C9E6C04A42AAB36ED23F23F3B3C5F78ACB64A600DC4

Key-Arg : None

Start Time: 1145006481

Timeout : 300 (sec)

Verify return code: 21 (unable to verify the first certificate)

---

+OK Gpop ready r33pf7636319nfc

read:errno=0

On a bien discuté avec pop.gmail.com, et en TLS s’il vous plait 8) On remarque d’ailleurs les mêmes erreurs que lors de l’envoie d’un mail. Mais ce qui nous intéresse, c’est la partie située entre -----BEGIN CERTIFICATE----- et -----END CERTIFICATE----- . C’est le certificat de google. Copions-le et collons-le dans un fichier googlepop.pem. Personnellement, je l’ai mis dans un dossier $HOMEDIR/certs. Ce n’est pas tout, dans ce dossier, il nous faudra aussi copier un fichier Equifax.pem qui est un certificat reconnu sur internet. Il se situe ici : http://ftp1.sourceforge.net/souptonuts/equifax.pem. On va créer liens symboliques de ces certificats.

[root@linuxmail postfix]# c_rehash /root/certs

Doing .certs

googlepop.pem => 34ceaf75.0

Equifax.pem => ddc328ff.0

On peut maintenant tester la connection pop avec ces fichiers.

openssl s_client -connect pop.gmail.com:995 -CApath /root/certs

5.3 .fetchmailrc

C’est LE fichier de conf de fetchmail. Il se situe dans votre $HOMEDIR. S’il n’existe pas, vi .fetchmailrc. On peut faire plus simple, au lieu d’écrire dans le fichier à la mano, la commande fetchmailconf permet de faire des réglages sur fetchmail plus simplement. Les modifications seront écrites dans .fetchmailrc.

Allons dans Configure Fetchmail, puis expert configuration. Le poll intervalle sera de 60, c’est-à-dire que toutes les minutes, fetchmail ira vérifier les mails. Postmaster, pour nous c’est l’utilisateur postfix. Le fichier de log sera /var/log/fetchmail.log. Dans new server, on indique pop.gmail.com puis on édite. Le protocole est le POP3, puis on entre les noms d’utilisateur.

On peut importer les mails d’autant d’adresses gmail que l’on souhaite. Editons les utilisateurs, cochons la case use SSL. Sauvegardons et quittons sans démarrer fetchmail. Un vi .fetchmailrc doit nous donner un fichier à peu près similaire.

# Configuration created Thu Apr 13 08:58:15 2006 by fetchmailconf

set logfile "/var/log/fetchmail.log"

set postmaster "postfix"

set bouncemail

set no spambounce

set properties ""

set daemon 60

poll pop.gmail.com with proto POP3

user 'adress1@gmail.com’ there with password 'abyss66' is 'adress1@gmail.com' here

ssl mda "/usr/bin/procmail -Y -d %T"

user 'adress2@gmail.com' there with password 'adress2@gmail.com' is 'uranus49'

here ssl mda "/usr/bin/procmail -Y -d %T"

Pour que la transmission de mail se passe bien, il faut à chaque ligne de compte « mda "/usr/bin/procmail -Y -d %T" ». Observez bien, on voit notre compte et notre pass en clair. Ce n’est pas un problème car seul root ici peut accéder et lire ce fichier. Par contre après is, adress1 ne fait pas parti de nos utilisateurs. Il faut donc corriger cela par un de nos utilisateurs du groupe postfix, sans le @gnagnagna.truc.

La commande fetchmail permet de démarrer fetchmail. Avec un cron ou dans rc3.d, on peut demander à fetchmail de se démarrer automatiquement.

5.4 Qu’en pensent les logs ?

Par défaut, les mails récupérés seront stockés dans le dossier /var/spool/mail/***. On pourra ensuite les exporter vers Outlook ou autre à la demande des clients.

fetchmail: 6.2.5 interroge pop.gmail.com (protocole POP3) à ven 14 avr 2006

12:02:09 CEST : récupération en cours

fetchmail: Organisation de l'expéditeur: Equifax

fetchmail: Unknown Issuer CommonName

fetchmail: Nom commun du serveur: pop.gmail.com

fetchmail: signature de la clé pop.gmail.com:

59:51:61:89:CD:DD:B2:35:94:BB:44:97:A0:39:D5:B4

fetchmail: Avertissement: vérification du certificat du serveur: unable to get

local issuer certificate

fetchmail: Organisation de l'expéditeur: Equifax

fetchmail: Unknown Issuer CommonName

fetchmail: Nom commun du serveur: pop.gmail.com

fetchmail: Avertissement: vérification du certificat du serveur: certificate not

trusted

fetchmail: Organisation de l'expéditeur: Equifax

fetchmail: Unknown Issuer CommonName

fetchmail: Nom commun du serveur: pop.gmail.com

fetchmail: Avertissement: vérification du certificat du serveur: unable to

verify the first certificate

fetchmail: POP3< +OK Gpop ready q28pf7245114nfc

fetchmail: POP3> CAPA

fetchmail: POP3< +OK Capability list follows

fetchmail: POP3< USER

fetchmail: POP3< RESP-CODES

fetchmail: POP3< EXPIRE 0

fetchmail: POP3< LOGIN-DELAY 300

fetchmail: POP3< X-GOOGLE-VERHOEVEN

fetchmail: POP3< .

fetchmail: POP3> USER waaalex@gmail.com

fetchmail: POP3< +OK send PASS

fetchmail: POP3> PASS *

fetchmail: POP3< +OK Welcome.

fetchmail: POP3> STAT

fetchmail: POP3< +OK 1 1465

fetchmail: POP3> LAST

fetchmail: POP3< -ERR Not supported

fetchmail: Not supported

fetchmail: POP3> UIDL

fetchmail: POP3< +OK

fetchmail: POP3< 1 GmailId10a97d8f25323142

fetchmail: POP3< .

fetchmail: 1 message pour waaalex@gmail.com dans pop.gmail.com (1465 octets).

fetchmail: POP3> LIST 1

fetchmail: POP3< +OK 1 1465

fetchmail: POP3> TOP 1 99999999

fetchmail: POP3< +OK message follows

fetchmail: lecture du message waaalex@gmail.com@gmail-pop.l.google.com:1 parmi 1

(1465 octets)

fetchmail: éliminé

fetchmail: POP3> DELE 1

fetchmail: POP3< +OK marked for deletion

fetchmail: POP3> QUIT

fetchmail: POP3< +OK Farewell.

fetchmail: 6.2.5 interroge pop.gmail.com (protocole POP3) à ven 14 avr 2006

12:02:15 CEST : interrogation finie

fetchmail: terminaison normale, état 0

Fetchmail fonctionne bien, dans /var/spool/mail, on peut vérifier la présence des mails. Pour outlook, il faut configurer maintenant POP3, serveur linuxmail.uranus49.yo et spécifier un utilisateur du groupe Postfix. La commande fetchmail permet de le démarrer en tâche de fond, toutes les minutes fetchmail fera sa vérification.

fetchmail: démarrage de fetchmail 6.2.5 en tâche de fond

fetchmail: réveillé à ven 14 avr 2006 11:48:54 CEST

fetchmail: réveillé à ven 14 avr 2006 11:50:04 CEST

fetchmail: 1 message pour waaalex@gmail.com dans pop.gmail.com (1451 octets).

fetchmail: lecture du message waaalex@gmail.com@gmail-pop.l.google.com:1 parmi 1

(1451 octets) fetchmail: éliminé

fetchmail: 1 message pour saint.gauche@gmail.com dans pop.gmail.com (1455

octets).

fetchmail: lecture du message saint.gauche@gmail.com@gmail-pop.l.google.com:1

parmi 1 (1455 octets) fetchmail: éliminé

fetchmail: réveillé à ven 14 avr 2006 11:51:16 CEST

fetchmail: réveillé à ven 14 avr 2006 11:52:26 CEST

Notez que pour POP3 je n’ai pas trouvé l’utilité de configurer procmail en profondeur.

Share this post


Link to post
Share on other sites

6. Esquiver les saloperies :

Le spam, c’est la plaie, si vous utilisez hotmail, vous savez de quoi je parle…

Nous allons configurer Postfix pour se prémunir de ces saloperies. Attention, je n’ai pas pu tester les logiciels dans un environnement de production. Voici donc une synthèse

de ce que j’ai appris (c’est-à-dire pas grand-chose en fait) sur la configuration de l’AV et du spamkiller. C’est assez dur de comprendre, sachant que chacun peut faire sa propre config’.

Je reste pour le moment sur du POP3, on verra un peu IMPA ensuite.

6.1 les RBLs et le filtrage des pièces jointes :

Les RBL, Realtime Black List, sont des listes noires d'adresses IP ou de domaines bannis car connus comme étant à l'origine de spams ou permettant l'envoi de spams comme

les open-relays. Ajoutons les lignes suivantes au main.cf pour rejeter les mails venants de ces serveurs.

smtpd_client_restrictions =

reject_rbl_client rbl-plus.mail-abuse.org

reject_rbl_client bl.spamcop.net

reject_rbl_client will-spam-for-food.eu.org

reject_rbl_client relays.mail-abuse.org

reject_rbl_client blackholes.mail-abuse.org

reject_rbl_client relays.visi.com

reject_rbl_client wingate.opm.blitzed.org

reject_rbl_client korea.rominet.net

reject_rbl_client china.rominet.net

reject_rbl_client taiwan.rominet.net

reject_rbl_client hong-kong.rominet.net

reject_rbl_client opm.blitzed.org

reject_rbl_client sbl-xbl.spamhaus.org

reject_rbl_client relays.ordb.org

smtpd_sender_restrictions =

reject_rbl_client rbl-plus.mail-abuse.org

reject_rbl_client bl.spamcop.net

reject_rbl_client will-spam-for-food.eu.org

reject_rbl_client relays.mail-abuse.org

reject_rbl_client blackholes.mail-abuse.org

reject_rbl_client relays.visi.com

reject_rbl_client wingate.opm.blitzed.org

reject_rbl_client korea.rominet.net

reject_rbl_client china.rominet.net

reject_rbl_client taiwan.rominet.net

reject_rbl_client hong-kong.rominet.net

reject_rbl_client opm.blitzed.org

reject_rbl_client sbl-xbl.spamhaus.org

reject_rbl_client relays.ordb.org

Il est également possible de sécuriser ce qui va atterrir dans la boite aux lettres des utilisateurs en faisant le tri dans les pièces jointes.

Des fichiers .exe .com .reg .src… n'ont rien à faire en pièce jointe. Il faut installer le package pcre (pour les regexs) sinon on ne pourra carrément plus envoyer d’emails !

Toujours dans le fichier main.cf :

mime_header_checks = regexp:/etc/postfix/mime_header_checks.regexp

le fichier mime_header_checks.regexp, ici on n’accepte pas grand chose :

/filename="?.*\.(bat|com|pif|vb|exe|lnk|scr|reg|chm|wsh|js|inf|shs|job|ini| shb|scp|scf|wsc|sct|dll|msc|msi|ppt|pps|mdb|rar|bmp|wav|mpg|mpeg|wma|wmv)/ REJECT

/^Content-(Disposition|Type):.*(file)?name="?.*\.(bat|com|pif|vb|exe|lnk|scr|reg|chm|wsh|js|inf| shs|job|ini|shb|scp|scf|wsc|sct|dll|msc|msi|ppt|pps|mdb|rar|bmp|wav|wma|wmv) / REJECT

Un chtit postmap mime…, un postfix reload puis un test et ça doit marcher :|. Jusqu’ici tout va bien. Vous pouvez regarder si vous êtes blacké ici :

http://www.robtex.com/rbls.html

6.2 Spamassassin :

SpamAssassin est un programme (en perl) qui fait passer un certain nombre de tests aux messages. En fonction du résultat de ces tests, il attribue un score au message,

chaque test rajoutant des points au score. Si le score dépasse un certain seuil, le mail est alors considéré comme du Spam. SpamAssassin modifie alors le titre du message

(il l’encadre par [sPAM]). De plus, SpamAssassin positionne deux nouveaux en-têtes au message : X-Spam-Status et X-Spam-Level.

Ces deux en-têtes permettent alors de créer des filtres dans votre client mail pour orienter le message (la corbeille est une bonne destination :).

Tous les messages doivent donc passer par SpamAssassin pour être traités, avant d’arriver dans leur dossier définitif.

Faux positifs :

On appelle "Faux Positifs", les courriers qui auront été considérés comme SPAM alors qu'ils n'en étaient pas.

Faux négatifs :

On appelle "Faux Négatifs", les courriers qui n'auront pas été considérés comme SPAM alors qu'ils en étaient.

6.2.1 Installation de spamassassin :

La, si comme moi vous avez une vieille distribution, vous allez en chier, car sous Mandrake 10, par exemple, la version de spamassassin est périmée.

Il faut télécharger la version 3.x à cette adresse :

http://spamassassin.apache.org/downloads.c...te=200603111700.

Une fois le tarball téléchargé :

tar xvfz Mail-Spamassassin-3.1.1.tar.gz

cd Mail-Spamassassin-3.1.1

perl Makefile.PL

make

make test

make install

La commande perl Makefile.PL ne fonctionnera que si les dépendances sont exaucées. Ce n’est pas vraiment la peine de continuer car après vous aurez des messages

signalant qu’il manque des modules optionnels en Perl. Certains se trouvent dans les packages sur les dépôts de la distrib ou dans les CDs. Y’en a certain par contre

qu’il faut télécharger. Voici une liste des modules que j’ai du chercher sur le site www.cpan.org. Veillez à ce que le fichier config.h soit bien présent

dans le dossier /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE.

IO-Zlib-1.04.tar.gz

Mail-SPF-Query-1.999.1.tar.gz

Net-CIDR-Lite-0.15.tar.gz

Net-DNS-0.46.tar.gz

Net-Ident-1.20.tar.gz

Razor-agents-2.81.tar.bz2

Sys-Hostname-Long-1.4.tar.gz

Pour décompresser le tar.bz2, on utilise tar xvfj *****.tar.bz2. Sinon la manipulation pour installer les packages est la même que pour spamassassin.

Une fois les packages installés, on peut reprendre l’installation de spamassassin. Le module INET6 ne sert que si vous avez un serveur DNS sur IPV6. :-D

Je veux pas raconter ma vie, mais à un moment donné, ça m’a tellement cassé les ronds que je suis passé sur Ubuntu. Et la c’est bien plus simple.

Surtout que pour ClamAV et amavis, les version Mandrake étaient (sont) totalement obsolète lol.

6.2.2 Avant de configurer Spamassassin : Pysor :

Pysor est une implémentation du « rasoir de Vipul ». C'est une solution de détection distribuée basée sur un travail collaboration. À chaque réception d'un nouveau mail,

Pyzor va calculer un checksum sur ce mail et le comparer à la base de données. Si ce checksum correspond à une signature connue alors le mail est traité comme du spam.

Le package Pysor se trouve d’origine dans la plupart des distribs. On peut utiliser le logiciel razor ou dcc pour faire la même chose, ou les trois en même temps

si on veut.

[alex@linuxmail misc]# pyzor discover

downloading servers from http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x

Ensuite, un simple Cron suffira à mettre à jour la base de données de Pyzor. Les mises à jour se font ici tous les jours à 3H. Pour ceci, on tape : crontab -e

Et on ajoute :

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin

0 3 * * * /usr/bin/pyzor discover >/dev/null 2>&1

6.2.3 Configuration de base de spamassassin

Spamassassin se configure relativement simplement. Je dis relativement car la plupart des tutos de configurations de spamassassin proposent une solution aisée.

Le fichier de configuration /etc/default/spamassassin peut-être très simple et très compliqué. Sachant en plus que les pratiques de spamming changent très vite,

il faut savoir s’adapter et écrire des règles « en live », un peu comme Iptables, directement par la ligne de commande. Pourquoi ? Tout simplement parce que

le spamkiller de Nunux peu apprendre. Commençons par ouvrir le fichier /etc/default/spamassassin . Changez la variable ENABLED à 1.

Allez ensuite dans le fichier /etc/spamassassin/local.cf et complétez :

SpamAssassin attribue donc des points à chaque message qu'il traite. Nous considérerons qu'un mail est un spam à partir d'un score supérieur ou égal à 5 :

required_score 5.0

La marque [sPAM] est ajoutée au sujet de chaque message considéré comme du spam.

rewrite_subject 1

subject_tag [sPAM]

Langues pour lesquelles ont s'attend à recevoir du courrier. Les autres langues seront pénalisées :

ok_languages fr en es it de

On active les filtres bayésiens et l'autoapprentissage :

use_bayes 1

auto_learn 1

On active l'utilisation de Pyzor et on désactive les autres :

use_razor2 0

use_dcc 0

use_pyzor 1

Pour éviter de pénaliser les Mailing Lists, on définit que certaines sources ne sont pas émetrices de spam :

whitelist_from @vger.kernel.org

whitelist_from @freedesktop.org

whitelist_from @kde.org

whitelist_from @lists.debian.org

Et enfin les blacklists :

blacklist_from @pcinpact.com 8)

blacklist from @bush.com

Pour déblacker ou pour déwhiter une adresse : unwhitelist_from et unblacklist_from :craint:

Il existe un site pour éditer un fichier de configuration pour spamassassin : http://www.yrex.com/spam/spamconfig.php.

6.2.4 Procmail

On va maintenant configurer procmail, pour qu’il envoie les emails au contrôle technique. S’il n’existe pas, vi /home/votre_user/.procmailrc :

PATH=/bin:/usr/bin # chemin du programme

MAILDIR=/var/spool/mail # répertoire de mails

SPAMBOX=/var/spool/mail/spam # Répertoire spam dans $MAILDIR

:0fw

| spamc

:0:

* ^X-Spam-Status: Yes

$SPAMBOX

A partir de là, tous les mails vont passer au spamtest et vont être noté. Voici de la doc un peu plus détaillée sur procmail :

http://www.tuteurs.ens.fr/internet/courrier/procmail.html#flag ://http://www.tuteurs.ens.fr/internet/...mail.html#flag ://http://www.tuteurs.ens.fr/internet/...mail.html#flag et sur Spamassassin

: http://clx.anet.fr/spip/article.php3?id_article=116 et

http://www.tuteurs.ens.fr/internet/courrie...ispam.html#s3_2.

Etant donné que je ne suis qu’en environnement de test, je n’ai pas réussi à exploser mon score pour envoyer un mail dans la SPAMBOX

(en plus je n’ai pas d’exemples de Spam, le maximum que j’ai fait, c’est 2.3). Cependant, spamassassin est bien sollicité. Voici le log.

Jul 13 09:22:23 localhost fetchmail[8118]: réveillé par User defined signal 1

Jul 13 09:24:27 localhost fetchmail[8118]: 1 message pour uranus49@gmail.com dans

pop.gmail.com (47078 octets).

Jul 13 09:24:27 localhost fetchmail[8118]: lecture du message

uranus49@gmail.com@gmail-pop.l.google.com:1 parmi 1 (47078 octets)

Jul 13 09:24:28 localhost spamd[4571]: spamd: connection from

localhost.localdomain [127.0.0.1] at port 2859

Jul 13 09:24:28 localhost spamd[4571]: spamd: setuid to alex succeeded

Jul 13 09:24:30 localhost spamd[4571]: spamd: processing message

<fcc6edf8216d.44b5f438@neuf.fr> for alex:1000

Jul 13 09:24:35 localhost spamd[4571]: spamd: clean message (2.4/5.0) for

alex:1000 in 7.2 seconds, 47359 bytes.

Jul 13 09:24:35 localhost spamd[4571]: spamd: result: . 2 -

AWL,HTML_00_10,HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY,NO_REAL_NAME,UNIQUE_WORDS,UPPERCASE_25_50

scantime=7.2,size=47359,user=alex,uid=1000,required_score=5.0,rhost=localhost.localdomain,raddr=127.0.0.1,rport=2859,mid=<fcc6edf8216d.44b5f438@neuf.fr>,autolearn=no

Jul 13 09:24:35 localhost spamd[4445]: prefork: child states: II

Jul 13 09:24:35 localhost fetchmail[8118]: éliminé

Il est possible que des messages d’erreur se glissent si vous n’installez pas la librairie libsys-hostname-long-perl et mail-SPF-Query + libXML-Parser-perl + Expat + LMAP-CID2SPF (http://www.bashny.de/spf/LMAP-CID2SPF-0.9.tar.gz). N’oubliez pas gcc.

6.2.5 Configuration avancée de spamassassin

Bon, vous l’aurez compris, je ne vous ai donné ici que des pistes pour configurer l’antispam. A vous maintenant de l’affiner en fonction de votre besoin. Trois nouveaux points de vue :

- Affinage par score : On peut changer le score des paramètres qui contrôlent le mail dans le fichier ~/.spamassassin/user_prefs. Et la les possibilités sont faramineuses.

Voici une liste de paramètre de score ici http://www.tuffmail.com/scores.php et là

http://spamassassin.apache.org/tests_3_1_x.html.

Bizarrement, même en changeant le score de Hotmail, j’arrive toujours à en avoir. Enfin bref…

- Autolearn

Sérieusement, quand vous recevez un email, dans votre MAILDIR, les mails comportent un en-tête comme ceci :

X-Spam-Level: *

X-Spam-Status: No, hits=1.8 required=5.0 tests=AWL,PRIORITY_NO_NAME

autolearn=yes version=2.63

Ici, le spamfucker a appris un spam (OUAI!). Au bout d’un moment, seuls les High scores seront enregistrés, pour les autres, autolearn sera sur no.

L’astuce, c’est que si vous disposez d’exemples de Spams et de bons mails, vous pouvez faire apprendre spamassassin sans avoir besoin de repartir de zéro.

Remarque : les tests correspondent aux tableaux de scores, sisi vous pouvez vérifier :sm:.

Alors, comment on fait apprendre les spams et les hams (bons mails) à spamassassin?

# Apprentissage de tous les messages de la boite aux lettres locale "spam" :

[alex@linuxmail /]# sa-learn --spam --mbox /var/spool/mail/spam

# Apprentissage du message "mailmessage" comme "ham" sans reconstruction de la base :

[alex@linuxmail /]# cat mailmessage | sa-learn --ham --no-rebuild

Il y’a d’autres commandes pour spamassassin et pour sa-learn, la meilleur doc vous l’aurez ici :

http://www.espace-groupware.com/anti-spam/....html#commandes.

C’est vraiment la doc complète et indispensable de spamassassin quand vous avez compris le fonctionnement et quand vous voudrez vraiment le personnaliser.

- Il existe aussi des règles avancées pour spamassassin, j’ai pas testé mais je vous conseil d’y jeter un œil ;) :

http://wiki.apache.org/spamassassin/CustomRulesets et

http://www.emtinc.net/spamhammers.htm.

6.2.6 Plus loin dans le filtrage :

On peut définir des blacklists autrement, des tests d’expéditions, de connexion avec des modules et des scripts perl. Pour le spf, je vous conseil de bien vous renseigner car il y’a

des risques de blacklisting. Je n’ai personnellement pas eu à tester ces procédés mais voici l’adresse au cas ou :

http://cri.univ-tlse1.fr/documentations/spam/

Si la chasse aux spams vous intéresse vraiment, vous pouvez compléter votre main.cf (section RBLs) avec ceci :

# Rejeter tout mail mal formaté

smtpd_helo_required = yes

smtpd_helo_restrictions = reject_non_fqdn_hostname

# Tri sur le format du mail

smtpd_recipient_restrictions =

reject_non_fqdn_sender,

reject_non_fqdn_recipient,

reject_unknown_sender_domain,

reject_unknown_recipient_domain,

permit_mynetworks,

reject_unauth_destination,

reject_unauth_pipelining,

reject_invalid_hostname,

permit

Ca marche bien, mais je conseil là encore de tester :yes :

Share this post


Link to post
Share on other sites

6.3 L’antivirus, CLAMAV

Dirigeons nous dans le fichier /etc/clamav/clamav.conf :

LocalSocket /var/run/clamav/clamd.ctl

FixStaleSocket

User amavis

AllowSupplementaryGroups

ScanMail

ScanArchive

ArchiveMaxRecursion 5

ArchiveMaxFiles 1000

ArchiveMaxFileSize 10M

ReadTimeout 180

MaxThreads 12

MaxConnectionQueueLength 15

StreamSaveToDisk

LogFile /var/log/clamav/clamav.log

LogTime

LogFileMaxSize 0

PidFile /var/run/clamav/clamd.pid

DatabaseDirectory /var/lib/clamav/

SelfCheck 3600

/etc/clamav/freshclam.conf :

DatabaseOwner clamav

UpdateLogFile /var/log/clamav/freshclam.log

LogFileMaxSize 0

MaxAttempts 5

# Vérification de la présence d'une mise à jour 24 fois par jour :

Checks 24

DatabaseMirror db.fr.clamav.net

DatabaseDirectory /var/lib/clamav/

NotifyClamd

Voilà, la commande clamscan /* permet de scanner toute l’arborescence, freshclam pour la mise à jour. On peut configurer automatiquement le fichier par écrans bleus avec une commande mais j’arrive plus à la retrouver, si vous l’avez, merci de la communiquer.

6.4 Amavis

Amavis permets d'interfacer un MTA, ici Postfix avec un antivirus (ClamAV) et éventuellement avec SpamAssassin. Bien entendu nous verrons l'interfaçage avec ces deux éléments.

De plus, Amavis gère le comportement du système lorsqu'il détecte un virus ou un spam. C’est partiiiit, pour les tests.

alex@linuxmail:/etc/clamav$ telnet localhost 10024

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

220 [127.0.0.1] ESMTP amavisd-new service ready

quit

221 2.0.0 [127.0.0.1] (amavisd) closing transmission channel

Connection closed by foreign host.

Ensuite, il faut dire à Postfix comment communiquer avec Amavis. Dans le fichier /etc/postfix/master.cf, on rajoute ceci, chacun des deux « block » ne sont qu’une ligne, vous pouvez rajouter des tabs pour avoir une présentation comme celle ci :

smtp-amavis unix - - n - 2 smtp

-o smtp_data_done_timeout=1200

-o smtp_send_xforward_command=yes

-o disable_dns_lookups=yes

127.0.0.1:10025 inet n - n - - smtpd

-o content_filter=

-o local_recipient_maps=

-o relay_recipient_maps=

-o smtpd_restriction_classes=

-o smtpd_client_restrictions=

-o smtpd_helo_restrictions=

-o smtpd_sender_restrictions=

-o smtpd_recipient_restrictions=permit_mynetworks,reject

-o mynetworks=127.0.0.0/8

-o strict_rfc821_envelopes=yes

-o smtpd_error_sleep_time=0

-o smtpd_soft_error_limit=1001

-o smtpd_hard_error_limit=1000

Dans /etc/postfix/main.cf, on ajoute aussi une ligne :

# filter les mails

Content_filter = smtp :[127.0.0.1] :10024

Maintenant que ceci est en place, on reload Postfix et nous allons pouvoir vérifier si la communication entre les différents démons s'effectue normalement :

alex@linuxmail:/etc/clamav$ telnet localhost 10025

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

220 linuxmail.uranus49.yo ESMTP Postfix

quit

221 Bye

Connection closed by foreign host.

Simulons l'envoi d'un message au travers d'Amavis :

alex@linuxmail:/etc/clamav$ telnet localhost 10024

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

220 [127.0.0.1] ESMTP amavisd-new service ready

MAIL FROM: alex@uranus49.yo

250 2.1.0 Sender alex@uranus49.yo OK

RCPT TO: paul@uranus49.yo

250 2.1.5 paul@uranus49.yo OK

DATA

354 End data with <CR><LF>.<CR><LF>

Subject: Test

Ceci est un test.

.

250 2.6.0 Ok, id=28397-02, from MTA: 250 Ok: queued as 7402CFA5

Et maintenant, le même test sauf que que le corps du message sera une empreinte de virus afin d'observer le comportement d'Amavis. Vous devriez obtenir quelque chose de similaire :

alex@linuxmail:/etc/clamav$ telnet localhost 10024

Trying 127.0.0.1...

Connected to localhost.localdomain.

Escape character is '^]'.

220 [127.0.0.1] ESMTP amavisd-new service ready

MAIL FROM: alex

250 2.1.0 Sender alex OK

RCPT TO: paul

250 2.1.5 Recipient paul OK

DATA

354 End data with <CR><LF>.<CR><LF>

Subject: Test virus

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

.

250 2.7.1 Ok, discarded, id=16984-01 - VIRUS: EICAR-AV-Test

L’interfaçage semble donc bien se passer. Passons à la configuration d’Amavis. Avant cela, il va falloir installer quelques logiciels pour décompresser toute sorte d’archive. Voici une liste : lzop, rpm, arj, zoo, rar, unrar, lha, tnef, bzip2, unzip …etc…

Allons dans le dossier /etc/amavis/conf.d. Il faut décommenter des lignes dans le fichier 15-content_filter_mode. Toute façcon, il n’y en a que deux :craint:, @bypass_virus_checks_maps ………… et @bypass_spam_check_maps…………

Profitons-en pour intégrer l’utilisateur amavis dans le groupe de l’utilisateur alex (ici alex). On aura besoin de permission pour écrire dans les répertoires.

Usermod –G alex,amavis amavis

Passons au fichier /etc/amavis/cond.d/50-user. On le rempli de la sorte.

## GENERAL

$myhostname = 'uranus49.yo';

$mydomain = 'uranus49.yo';

$daemon_user = 'amavis';

$daemon_group = 'alex';

$MYHOME = '/home/alex';

#Pour renvoyer les mails scannés sur le serveur

$forward_method = 'smtp:127.0.0.1:10025'; # where to forward checked mail

$notify_method = $forward_method; # where to submit notifications

#Pour que le serveur supporte la charge

$max_servers = 5; # number of pre-forked children (default 2)

$max_requests = 15; # retire a child after that many accepts (default 10)

$child_timeout=10*60; # abort child if it does not complete each task in n sec

# (default: 8*60 seconds)

#Ne pas permettre le relais

$relayhost_is_client = 0; # (defaults to false)

#Bloquer les connections à l'interface locale

$inet_socket_bind = '127.0.0.1'; # limit socket bind to loopback interface

# (default is '127.0.0.1')

@inet_acl = qw( 127.0.0.1 ); # allow SMTP access only from localhost IP

# (default is qw( 127.0.0.1 ) )

$relayhost_is_client = 0; # (defaults to false)

$final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE)

$final_banned_destiny = D_BOUNCE; # (defaults to D_BOUNCE)

$final_spam_destiny = D_PASS; # (defaults to D_REJECT)

$final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested

#On veut que la personne qui a envoyé le mail soit avertie :

$warnvirussender = 1; # (defaults to false (undef))

#On veut que celui qui a envoyé un mail et qui est banni soit aussi averti :

$warnbannedsender = 1; # (defaults to false (undef))

#On veut que ceux a qui étaient destinés les mails reçoivent des mails d'avertissement :

$warnvirusrecip = 1; # (defaults to false (undef))

$warnbannedrecip = 1; # (defaults to false (undef))

#On indique un admin qui recevra un avertissement pour tous les mails reçus sur le #serveur :

$virus_admin = "postmaster\@$mydomain"; # due to D_DISCARD default

#On indique les tags a rajouter dans les mails scannés par l'antivirus :

# Add X-Virus-Scanned header field to mail?

$X_HEADER_TAG = 'X-Virus-Scanned'; # (default: undef)

# Leave empty to add no header # (default: undef)

$X_HEADER_LINE = "by $myversion (Debian) at $mydomain";

#On n'enlève pas les entêtes comme quoi le mail a déjà été scanné si c'est le cas :

$remove_existing_x_scanned_headers = 0; # leave existing X-Virus-Scanned alone

$remove_existing_spam_headers = 0; # remove existing spam headers if

#On indique qu'il n'y a pas de fichiers bannis, comme cela cela permet l'envoi de fichiers .exe, .com, .bat, mais ils restent quand même scannés :

$banned_filename_re = new_RE(

# qr'^UNDECIPHERABLE$', # is or contains any undecipherable components

# qr'\.[^.]*\.(exe|vbs|pif|scr|bat|cmd|com|dll)$'i, # some double extensions

# qr'[{}]', # curly braces in names (serve as Class ID extensions - CLSID)

# qr'.\.(vbs|pif|scr|bat|cmd|com)$'i, # banned extension - basic

# qr'.\.(ade|adp|bas|bat|chm|cmd|com|cpl|crt|exe|hlp|hta|inf|ins|isp|js|

# jse|lnk|mdb|mde|msc|msi|msp|mst|pcd|pif|reg|scr|sct|shs|shb|vb|

# vbe|vbs|wsc|wsf|wsh)$'ix, # banned extension - long

# qr'.\.(mim|b64|bhx|hqx|xxe|uu|uue)$'i, # banned extension - WinZip? vulnerab.

# qr'^\.(zip|lha|tnef|cab)$'i, # banned file(1) types

# qr'^\.exe$'i, # banned file(1) types

# qr'^application/x-msdownload$'i, # banned MIME types

# qr'^application/x-msdos-program$'i,

# qr'^message/partial$'i, qr'^message/external-body$'i, # block rfc2046

);

#On indique les quotas pour SpamAssassin :

$sa_tag_level_deflt = 0; # add spam info headers if at, or above that level

$sa_tag2_level_deflt = 5.0; # add 'spam detected' headers at that level

$sa_kill_level_deflt = 99; # triggers spam evasive actions

#SpamAssassin doit changer le sujet du message si il dépasse $sa_tag2_level_deflt, et ajouter *SPAM* :

$sa_spam_subject_tag = '*SPAM* '; # (defaults to undef, disabled)

#Maintenant on indique les scanners antivirus :

@av_scanners = (

['Clam Antivirus-clamd',

\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],

qr/\bOK$/, qr/\bFOUND$/,

qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

);

@av_scanners_backup = (

# http://www.clamav.net/

['Clam Antivirus - clamscan', 'clamscan',

"--stdout --no-summary -r {}", [0], [1],

qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

);

Il va falloir maintenant tester le tout. La commande amavis debug permet de démarrer amavis avec le maximum de renseignements. Je signale que la plupart des erreurs sont dues à des problèmes de droits. /var/log/mail.info vous permettra de suivre le bon fonctionnement des dispositifs. Toute information supplémentaire sur amavis et clamav seront les bienvenues.

Share this post


Link to post
Share on other sites

Voilà, maintenant vous pouvez poster vos questions, remarques et autres suggestions. Si un admin pouvait décaller les deux post après celui-ci, je lui en serai éternellement reconnaissant.

Ce tuto sera assez long à écrire, plus long que celui de IPCop en tout cas. Si, pendant la rédaction, il vous arrive de trouver des erreurs, n'hésitez pas à me prévenir, les précision seront aussi éditées :transpi:

Share this post


Link to post
Share on other sites

Yahou super debut de tutorial.

je crois que je vais me faire un chti serveur mail :transpi:

Merci encore pour ce tuto :transpi:

Share this post


Link to post
Share on other sites

Yahou super debut de tutorial.

je crois que je vais me faire un chti serveur mail :up:

Merci encore pour ce tuto :up:

Moi j'ai fini mon serveur de mail y'a 2 semaines ... Sauf que j'ai du chopper des bouts de tutos a droite et a gauche. Et surtout, le plus gros probleme, c'est que je ne suis jamais tombé sur les explications de Christian Caleca. Ca m'aurait bien aidé, parce que j'ai mis du temps a comprendre les différences de fonctions entre courier-imap, postfix, procmail, smtp, pop, mailbox, maildir ... C'est surtout ca qui m'a posé des batons dans les roues lors de la configuration :p

Mais maintenant c'est reglé (a part amavis et spamassassin que je n'ai pas encore configuré)

Share this post


Link to post
Share on other sites

Je suis sur Amavis et spamassassin, et c'est bien tendu. Il va falloir attendre un peu avant que j'edite les posts sur ces applis.

@_plouf_ : merci pour ton fichier amavisd.conf, jcrois que ca va servire :up:

Share this post


Link to post
Share on other sites

Merci Tuxx :)

Attention a ceux qui tentent de faire le Postfix, il y'a quelques erreurs que je vais corriger quand j'aurais tout réinstallé. Ma mandrake a planté et je repasse sous ubuntu :transpi:

EDIT : erreurs corrigées.

Share this post


Link to post
Share on other sites

Bien, toutes les erreurs visibles ont été corrigé et la premiere partie sur les malwares et spam est éditée. Si vous avez des infos complémentaires, n'hésitez pas :cartonrouge:

Share this post


Link to post
Share on other sites

Ptite question, si on a plusieurs domaines qui pointe sur le serveur ? On fait comment avec la variable $mydomain ?

Une autre question dans relayhost jai mis [smtp.free.fr] (c'est une dedibox) et ca marche merci bien, mais comment emecher les scripts/robots sur internet de trouver mon serveur smtp et de s'en servir pour envoyer du spam a fond les mirettes ?

A la limite si le serveur smtp devrait marcher que pour ce serveur ( pas de demande d'envoi de mail autre que le serveur pour des scripts php par exemple) que devrais-je faire ? J'aimerais eviter de faire un relay a spam quoi :(

Share this post


Link to post
Share on other sites

Pour ta première question, il est vrai que je n'y avais pas pensé au début. Il y a deux manières de faire, les explication sont ici :

multidomaine postfix

Je completerai le tuto pour ce point d'ailleurs.

Pour ta deuxième question, c'est la variable my_network_style qui indique à Postfix depuis quoi relayer le courier.

mynetwork_style = class //// pour relayer le courier de la même classe que ton adresse IP serveur (A B ou C selon ton adressage). A ne pas utiliser pour une connection modem !

mynetwork_style = subnet /// c'est le paramètre d'origine, qui relai le courier du sous réseau de postfix (ratisse moins large que class)

mynetwork_style = host /// ca relai uniquement le courier local

sinon tu peux désigner des réseau comlme tu le sent avec le parametre mynetworks

mynetworks = 192.168.0.0/24, 172.16.0.0/16, 193.142.12.14/32 par exemple.

Le parametre mynetworks annule mynetwork_style lorsqu'il est renseigné. Cela te permet de ralayer du courier venant de certains serveurs sur Internet.

T'as pas à t'inquiéter, le seul danger est de renseigner l'un ou l'autre parametre par all. Attention ! le parametre inet_interface (quelles adresses ecouter) ne doit pas non plus etre renseigné par all, je me suis deja fait bannir un domaine local sur gmail a cause de ca, car postfix ecoutait partout. et la ca devait être la fete... :chinois:

J'espere que ca va t'aider.

Share this post


Link to post
Share on other sites

Il y'a encore des erreurs sur ce tuto, je m'occupe de les corriger au plus vite :)

EDIT : errers corrigées.

Share this post


Link to post
Share on other sites

RBLs + Spamassasin + clamav + amavis ajoutés. N'hésitez pas à persévérer, ca ne marche pas toujours du premier coup. Je vais passer à imap 4 et au multidomaine ensuite. :francais: bonne journée

Share this post


Link to post
Share on other sites

×
×
  • Create New...