(Modifié le 06/03/2019)

Prérequis

Les paquets Debian qui doivent être installés

sudo apt install mailutils dnsutils

Propagation DNS

Suivre ou vérifier la propagation DNS https://www.whatsmydns.net/
Exemples avec le domaine xoyize.xyz

DNS

Carte des serveurs DNS

DNS

Reverse DNS

Le Reverse DNS, aussi appelé PTR Record (ou pointer record) sert à associer une adresse IP à un enregistrement de nom de domaine.

Il faut modifier le reverse via l’interface de votre hébergeur.
Différentes méthodes de vérification

host 93.115.96.97
  97.96.115.93.in-addr.arpa domain name pointer xoyize.xyz.
dig +noall +answer -x 93.115.96.97
  97.96.115.93.in-addr.arpa. 3471	IN	PTR	xoyize.xyz.

Ports de messagerie

Vérifier que les ports de messagerie 25 (SMTP), 587 (SMTPS) et 993 (IMAPS) sont bien en écoute sur 0.0.0.0 (installer paquet net-tools)
Ne pas oublier de les ouvrir au niveau du parefeu (Firewall)

netstat -ptna
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name    
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1022/master         
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      730/dovecot         
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1022/master         

Vérifier validité Dkim,spf et spamassassin

DKIMValidator.com
Il existe de nombreux outils en ligne que vous pouvez utiliser pour tester si la signature DKIM fonctionne ou non pour votre domaine comme DKIMValidator.com. Le site vous fournit une adresse e-mail aléatoire. Il vous suffit d’envoyer un courriel de test à partir de votre serveur de messagerie à l’adresse courriel fournie, d’attendre quelques secondes et de cliquer sur “Afficher les résultats”. Un rapport vous sera présenté décrivant si la validation DKIM et SPF a réussi ou non pour votre domaine.Exemple en ligne de commande:

echo "test dkim spf spamassassin" |mail -s test aENGUMt9poOdA8@dkimvalidator.com
DKIM Information:
...
Validating Signature
result = pass

SPF Information:
...
Result code: pass

SpamAssassin Score: 0.109
Message is NOT marked as spam

Le message 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid signifie que la signature n'a pas pu être vérifiée par SpamAssassin , le score n’est pas affecté 0.0 (voir le message pour plus d’information)

Autre outil
Comment tester la signature DKIM (en-fr)

Test SPAM

Se rendre sur le site http://www.mail-tester.com/ et envoyer un email à l’adresse indiquée en page d’accueil
Testez l’indésirabilité (spam) de vos emails

www.mail-tester.com

echo “Test mail-tester” mail -s test web-oe0iz@mail-tester.com

puis vérifier le score.

Note 8.1/10 (SpamAssassin utilisé)

-1.985		PYZOR_CHECK		Similar message reported on Pyzor (http://pyzor.org)
Assurez-vous de tester avec un contenu réel, les Newsletters tests seront toujours détectées par Pyzor
Ajustez votre message ou demandez à être whitelisté (http://public.pyzor.org/whitelist/)

Tout est en rapport avec pyzor qu’il est impossible d’installer correctement

En utilisant Rspamd, on obtient la note parfaite

www.mail-tester.com

Postfix ,modifier les entêtes de message

Cacher les informations sensibles qui sont contenues dans les headers des mails que vous envoyez, comme votre adresse ip LAN/WAN, le User-Agent…etc.
On va utiliser les regex. Créer le fichier /etc/postfix/header_checks et y ajouter :

/^Received:.*with ESMTPSA/  IGNORE
/^X-Originating-IP:/        IGNORE
/^X-Mailer:/                IGNORE
/^User-Agent:/              IGNORE

Ensuite modifier la configuration de postfix en rajoutant les deux lignes suivantes dans /etc/postfix/main.cf :

mime_header_checks = regexp:/etc/postfix/header_checks
header_checks = regexp:/etc/postfix/header_checks

Et pour finir, il faut reconstruire la hash table et redémarrer postfix :

postmap /etc/postfix/header_checks
systemctl reload postfix

nginx ipv4 ipv6 actifs ?

Utiliser la commande netstat pour vérifier la liaison IP

netstat -tulpna | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      714/nginx: master p
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      714/nginx: master p
tcp6       0      0 :::443                  :::*                    LISTEN      714/nginx: master p
tcp6       0      0 :::80                   :::*                    LISTEN      714/nginx: master p

La ligne tcp6 indique que mon nginx est listé sur IPv6. Vous pouvez également utiliser la commande wget ou un navigateur Web pour vérifier

$ wget http://[2607:f0d0:1002:59::2]/

Veuillez noter que vous devez mettre à jour votre DNS et définir le type d’enregistrement AAAA d’IPv6.

Validité d’une adresse de messagerie

Site mail-tester.com

mail-tester

Site mxtoolbox.com

mail-tester

Tester le fonctionnement de l’antivirus et de l’antispam

Spamassassin ou Rspamd

Dans l’objet du mail, mettre le texte suivant.
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Clamav ou Rspamd

Créer un fichier texte avec le contenu du fichier EICAR suivant et l’envoyer en tant que pièce jointe.
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Envoi avec fichier joint

$ echo "Message Body Here" | mailx -s "Subject Here" -a backup.zip user@example.com

https://easyengine.io/tutorials/mail/server/testing/antivirus/

Send a test mail with virus attached

We use EICAR test file.

Download EICAR file locally.

wget https://secure.eicar.org/eicar.com.txt

For command-line sending, you will need mutt package (mail doesn’t support sending attachment)

apt-get install mutt -y

Send a test test mail with EICAR file (virus) attached

echo "Test virus fichier joint" | mailx -s "This is virus" -a eicar.com.txt admin@example.com

Log Monitor

When your server receives a spam mail, you can see in postfix’s mail.loga lines like:

Oct 12 11:00:25 test amavis[1576510]: (1576510-03) Blocked INFECTED (Eicar-Test-Signature), [192.241.254.103] [192.241.254.103] <root@test.rtcamp.com> -> <admin@example.com>, quarantine: S/virus-SA93AIGegqCY, Message-ID: <20131012145923.GA29765@example.com>, mail_id: SA93AIGegqCY, Hits: -, size: 976, 57 ms

Vérification des logs (SpamAssassin ,Clamav)

Vérification des logs de Postfix dans /var/log/mail.log

Exemple d’un email clean

Dec  4 16:50:00 debian-mx1 postfix/smtpd[2617]: connect from epsi-VirtualBox[192.168.24.102]
Dec  4 16:50:00 debian-mx1 postfix/smtpd[2617]: 46D715F949: client=epsi-VirtualBox[192.168.24.102]
Dec  4 16:50:00 debian-mx1 postfix/cleanup[2621]: 46D715F949: message-id=<5661BAE3.9070004@debian-messagerie.fr>
Dec  4 16:50:00 debian-mx1 postfix/qmgr[2593]: 46D715F949: from=<valentin@debian-messagerie.fr>, size=2714, nrcpt=1 (queue active)
Dec  4 16:50:00 debian-mx1 postfix/smtpd[2617]: disconnect from epsi-VirtualBox[192.168.24.102]
Dec  4 16:50:15 debian-mx1 postfix/smtpd[2625]: connect from localhost[127.0.0.1]
Dec  4 16:50:15 debian-mx1 postfix/smtpd[2625]: 64F41606CC: client=localhost[127.0.0.1]
Dec  4 16:50:15 debian-mx1 postfix/cleanup[2621]: 64F41606CC: message-id=<5661BAE3.9070004@debian-messagerie.fr>
Dec  4 16:50:15 debian-mx1 postfix/qmgr[2593]: 64F41606CC: from=<valentin@debian-messagerie.fr>, size=3149, nrcpt=1 (queue active)
Dec  4 16:50:15 debian-mx1 amavis[1154]: (01154-06) Passed CLEAN {RelayedInternal}, LOCAL [192.168.24.102]:53116 <valentin@debian-messagerie.fr> -> <valentin@debian-messagerie.fr>, Queue-ID: 46D715F949, Message-ID: <5661BAE3.9070004@debian-messagerie.fr>, mail_id: 1q3m3ELchbKb, Hits: -0.999, size: 2712, queued_as: 64F41606CC, 15111 ms
Dec  4 16:50:15 debian-mx1 postfix/smtpd[2625]: disconnect from localhost[127.0.0.1]
Dec  4 16:50:15 debian-mx1 postfix/smtp[2622]: 46D715F949: to=<valentin@debian-messagerie.fr>, relay=127.0.0.1[127.0.0.1]:10024, delay=15, delays=0.02/0/0/15, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 64F41606CC)
Dec  4 16:50:15 debian-mx1 postfix/qmgr[2593]: 46D715F949: removed
Dec  4 16:50:15 debian-mx1 postfix/smtp[2626]: 64F41606CC: to=<valentin@debian-messagerie.fr>, relay=192.168.24.103[192.168.24.103]:25, delay=0.03, delays=0/0.01/0.01/0.01, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 1B4DC16C0)
Dec  4 16:50:15 debian-mx1 postfix/qmgr[2593]: 64F41606CC: removed

Exemple d’un email avec un virus (ClamAV)

Dec  4 16:26:57 debian-mx1 postfix/smtpd[1671]: connect from epsi-VirtualBox[192.168.24.102]
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1671]: 45BF95F949: client=epsi-VirtualBox[192.168.24.102]
Dec  4 16:26:57 debian-mx1 postfix/cleanup[1660]: 45BF95F949: message-id=<5661B57D.6000505@debian-messagerie.fr>
Dec  4 16:26:57 debian-mx1 postfix/qmgr[1473]: 45BF95F949: from=<valentin@debian-messagerie.fr>, size=1268, nrcpt=1 (queue active)
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1671]: disconnect from epsi-VirtualBox[192.168.24.102]
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1665]: connect from localhost[127.0.0.1]
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1665]: warning: Illegal address syntax from localhost[127.0.0.1] in RCPT command: <postmaster@>
Dec  4 16:26:57 debian-mx1 amavis[1155]: (01155-06) Negative SMTP resp. to DATA: 554 5.5.1 Error: no valid recipients
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1665]: disconnect from localhost[127.0.0.1]
Dec  4 16:26:57 debian-mx1 amavis[1155]: (01155-06) (!)8tx3vZ763cyF(rrBtyhd0s3fD) SEND from <postmaster@debian-mx1.fr> -> <postmaster@>, ENVID=AM.8tx3vZ763cyF.20151204T152657Z@debian-mx1.fr 501 5.1.3 from MTA(smtp:[127.0.0.1]:10025): 501 5.1.3 Bad recipient address syntax
Dec  4 16:26:57 debian-mx1 amavis[1155]: (01155-06) (!)FAILED to notify admin: 501 5.1.3 from MTA(smtp:[127.0.0.1]:10025): 501 5.1.3 Bad recipient address syntax
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1665]: connect from localhost[127.0.0.1]
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1665]: 5B27D60ABE: client=localhost[127.0.0.1]
Dec  4 16:26:57 debian-mx1 postfix/cleanup[1660]: 5B27D60ABE: message-id=<VSrrBtyhd0s3fD@debian-mx1.fr>
Dec  4 16:26:57 debian-mx1 postfix/qmgr[1473]: 5B27D60ABE: from=<>, size=4745, nrcpt=1 (queue active)
Dec  4 16:26:57 debian-mx1 postfix/smtpd[1665]: disconnect from localhost[127.0.0.1]
Dec  4 16:26:57 debian-mx1 amavis[1155]: (01155-06) Blocked BANNED (application/x-ms-dos-executable,.asc," X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* ".exe) {BouncedInternal,Quarantined}, LOCAL [192.168.24.102]:53115 <valentin@debian-messagerie.fr> -> <valentin@debian-messagerie.fr>, quarantine: r/banned-rrBtyhd0s3fD, Queue-ID: 45BF95F949, Message-ID: <5661B57D.6000505@debian-messagerie.fr>, mail_id: rrBtyhd0s3fD, Hits: -, size: 1268, 91 ms
Dec  4 16:26:57 debian-mx1 postfix/smtp[1666]: 5B27D60ABE: to=<valentin@debian-messagerie.fr>, relay=192.168.24.103[192.168.24.103]:25, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 0D37B16C0)
Dec  4 16:26:57 debian-mx1 postfix/qmgr[1473]: 5B27D60ABE: removed
Dec  4 16:26:57 debian-mx1 postfix/smtp[1661]: 45BF95F949: to=<valentin@debian-messagerie.fr>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.13, delays=0.03/0/0/0.09, dsn=2.5.0, status=sent (250 2.5.0 Ok, id=01155-06, BOUNCE)
Dec  4 16:26:57 debian-mx1 postfix/qmgr[1473]: 45BF95F949: removed

Exemple d’un email avec un spam (SpamAssassin)

Dec  4 18:02:19 debian-mx1 postfix/smtpd[19882]: connect from epsi-VirtualBox[192.168.24.102]
Dec  4 18:02:19 debian-mx1 postfix/smtpd[19882]: E19A55F945: client=epsi-VirtualBox[192.168.24.102]
Dec  4 18:02:19 debian-mx1 postfix/cleanup[19886]: E19A55F945: message-id=<5661CBD7.5040104@debian-messagerie.fr>
Dec  4 18:02:19 debian-mx1 postfix/qmgr[2828]: E19A55F945: from=<valentin@debian-messagerie.fr>, size=2871, nrcpt=1 (queue active)
Dec  4 18:02:20 debian-mx1 postfix/smtpd[19882]: disconnect from epsi-VirtualBox[192.168.24.102]
Dec  4 18:02:20 debian-mx1 postfix/smtpd[19890]: connect from localhost[127.0.0.1]
Dec  4 18:02:20 debian-mx1 postfix/smtpd[19890]: 6BB1561873: client=localhost[127.0.0.1]
Dec  4 18:02:20 debian-mx1 postfix/cleanup[19886]: 6BB1561873: message-id=<SSm0g59DzT_hzp@debian-mx1.fr>
Dec  4 18:02:20 debian-mx1 postfix/qmgr[2828]: 6BB1561873: from=<>, size=3689, nrcpt=1 (queue active)
Dec  4 18:02:20 debian-mx1 postfix/smtpd[19890]: disconnect from localhost[127.0.0.1]
Dec  4 18:02:20 debian-mx1 amavis[1155]: (01155-07) Blocked SPAM {BouncedInternal,Quarantined}, LOCAL [192.168.24.102]:53123 <valentin@debian-messagerie.fr> -> <valentin@debian-messagerie.fr>, quarantine: m/spam-m0g59DzT_hzp.gz, Queue-ID: E19A55F945, Message-ID: <5661CBD7.5040104@debian-messagerie.fr>, mail_id: m0g59DzT_hzp, Hits: 1001.807, size: 2869, 494 ms
Dec  4 18:02:20 debian-mx1 postfix/smtp[19887]: E19A55F945: to=<valentin@debian-messagerie.fr>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.54, delays=0.03/0.01/0.01/0.49, dsn=2.5.0, status=sent (250 2.5.0 Ok, id=01155-07, BOUNCE)
Dec  4 18:02:20 debian-mx1 postfix/qmgr[2828]: E19A55F945: removed
Dec  4 18:02:20 debian-mx1 postfix/smtp[19891]: 6BB1561873: to=<valentin@debian-messagerie.fr>, relay=192.168.24.103[192.168.24.103]:25, delay=0.04, delays=0.01/0.01/0.01/0.01, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 241C216C0)
Dec  4 18:02:20 debian-mx1 postfix/qmgr[2828]: 6BB1561873: removed

Vérification des logs (Rspamd)

Vérification des logs de Postfix dans /var/log/mail.log

Exemple d’un email avec un virus (Rspamd)

ar 15 17:45:27 cinay postfix/smtpd[7829]: connect from yanspm.com[78.230.171.39]
Mar 15 17:45:27 cinay postfix/smtpd[7829]: Anonymous TLS connection established from yanspm.com[78.230.171.39]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Mar 15 17:45:28 cinay postfix/smtpd[7829]: DD359240FF0: client=yanspm.com[78.230.171.39]
Mar 15 17:45:28 cinay postfix/cleanup[7834]: DD359240FF0: message-id=<20180315164527.6878A64976@yanspm.com>
Mar 15 17:45:30 cinay postfix/qmgr[7768]: DD359240FF0: from=<yann@yanspm.com>, size=524, nrcpt=1 (queue active)
Mar 15 17:45:30 cinay dovecot: lmtp(7837): Connect from local
Mar 15 17:45:30 cinay postfix/smtpd[7829]: disconnect from yanspm.com[78.230.171.39] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Mar 15 17:45:30 cinay dovecot: lmtp(yan@cinay.pw): vwQ8DCqjqlqdHgAAwl8aWQ: sieve: msgid=<20180315164527.6878A64976@yanspm.com>: stored mail into mailbox 'INBOX'
Mar 15 17:45:30 cinay postfix/lmtp[7836]: DD359240FF0: to=<yan@cinay.pw>, relay=cinay.pw[private/dovecot-lmtp], delay=2.4, delays=2.3/0.01/0.01/0.02, dsn=2.0.0, status=sent (250 2.0.0 <yan@cinay.pw> vwQ8DCqjqlqdHgAAwl8aWQ Saved)
Mar 15 17:45:30 cinay dovecot: lmtp(7837): Disconnect from local: Successful quit
Mar 15 17:45:30 cinay postfix/qmgr[7768]: DD359240FF0: removed

Exemple d’un email avec un spam (Rspamd)

Mar 15 17:35:07 cinay postfix/smtpd[7773]: connect from yanspm.com[78.230.171.39]
Mar 15 17:35:07 cinay postfix/smtpd[7773]: Anonymous TLS connection established from yanspm.com[78.230.171.39]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Mar 15 17:35:07 cinay postfix/smtpd[7773]: 7B69D240FF0: client=yanspm.com[78.230.171.39]
Mar 15 17:35:07 cinay postfix/cleanup[7779]: 7B69D240FF0: message-id=<2618c351-9151-8ee5-47fe-06902d36c6a0@yanspm.com>
Mar 15 17:35:07 cinay postfix/cleanup[7779]: 7B69D240FF0: milter-reject: END-OF-MESSAGE from yanspm.com[78.230.171.39]: 5.7.1 Gtube pattern; from=<yanspm@yanspm.com> to=<yan@cinay.pw> proto=ESMTP helo=<yanspm.com>
Mar 15 17:35:07 cinay postfix/smtpd[7773]: disconnect from yanspm.com[78.230.171.39] ehlo=2 starttls=1 mail=1 rcpt=1 data=0/1 quit=1 commands=6/7

Dans les 2 cas ,le message est rejeté avec retour Undelivered Mail Returned to Sender car l’enregistrement dmarc contient p=reject
Dans le cas où l’enregistrement dmarc contient p=none , le message n’est pas délivré au destinataire

Tests de vulnérabilité

SSL Labs

SSL Labs est l’un des outils les plus utilisés pour scanner les serveurs web SSL. Le rapport vous fournit une analyse complète des vos URL https avec leurs dates d’expiration, leur classement global, Cipher, la version du certificat SSL/TLS, et bien plus encore.

Vérification ssl https://www.ssllabs.com/ssltest/analyze.html?d=cinay.pw

ssllabs

Web Inspector

Web Inspector scanne votre site et vous fournit un rapport complet à propos des menaces telles que le blacklistage, le phishing, les malware, les vers, les backdoors, les trojans, les iframes douteuses, les connections douteuses, etc…

Web Inspector

Observatory (mozilla)

Vérification complète https://observatory.mozilla.org/analyze.html?host=cinay.pw

mozilla labs

mozilla labs

HSTS

C’est le champ qui définit la politique Strict-Transport-Security. La règle force les connexions HTTPS avec chiffrement, sans tenir compte des appels de scripts pour charger des ressources en HTTP dans ce domaine. Le HSTS n’est qu’une des composantes des paramètres de sécurité de votre serveur ou service d’hébergement Web.

https://hstspreload.org/?domain=cinay.pw

Eligibility: cinay.pw is eligible for the HSTS preload list.

CryptCheck

CryptCheck

CryptCheck