Outils pour utilisateurs

Outils du site


serveur_de_mails

Ceci est une ancienne révision du document !



Accepter le SMTP sortant chez le F.A.I

Ex: Freebox- moncompte.free.fr/Ma freebox/Fonctionnalités avancées/Blocage du protocole SMTP sortant/“NON”

Reverse DNS personnalisé

78.216.49.144 ⇒ www.chepi.fr (Actif)


Linux

On utilise:

-Dovcot (serveur Imap, port 993, TLS/SSL, mot de passe normal de l'utilisateur Unix)

-Postfix (serveur SMTP, port 587, STARTTLS, authentification par id-mot de passe de l'utilisateur Unix)

POSTFIX

La surveillance de Postfix est faite par mailmonitor.sh (/opt/bin de l'Archsyno) lancé par la crontab (root du Syno). Si besoin, il tente de relancer le serveur.


Ajout d'un utilisateur ( =nouvelle boîte ). Ca crée aussi son ~/Maildir (fichiers copiés depuis /etc/skel):

#useradd -m -s nologin toto (ou useradd -m toto ; usermod -s nologin toto)
#passwd toto

Le réactiver

usermod -s /sbin/ksh user

Vérifier dans /etc/passwd

Suprression d'un utilisateur:

userdel -r toto (le -r supprime aussi le /home/toto, a utiliser avec precaution)

Les alias sont ajoutés dans /etc/postfix/aliases puis “présentés” au serveur en jouant

postalias /etc/postfix/aliases

De la même manière, la blacklist est dans /etc/postfix/client_checks. Chaque modification du fichier doit être suivie d'un

postmap /etc/postfix/client_checks

Puis d'un reload de Postfix.


Pour supprimer les mails en attente d'envoi:

état des lieux :

postqueue -p

purge :

for message in $(postqueue -p | grep "^[0-9A-F]"|awk '{print $1}') ; do postsuper -d $message ; done

CERTIFICATS SSL (TLS)

[root@www /]# ls -l /etc/postfix/ssl/
total 20
-rw-r--r-- 1 root root    1448 Jun 20 02:33 cacert.pem certificat Certificate Authority
-rw------- 1 root root    1854 Jun 20 02:31 cakey.pem  clef Certificate Authority
-rw-r--r-- 1 root root     956 Jun 20 02:07 smtpd.crt  certificat Postfix
-rw-r--r-- 1 root root     737 Jun 20 02:05 smtpd.csr  osef
-rw-r----- 1 root postfix  887 Jun 20 03:40 smtpd.key  clef Postfix

cakey.pem : dote d'une passphrase

smtpd.key : pas de passphrase (le serveur doit pouvoir s'en servir seul)

controle certificat

[root@www ssl]# openssl x509 -noout -text -in /etc/postfix/ssl/smtpd.crt
Certificate:
  Data:
      Version: 1 (0x0)
      Serial Number:
          b9:c4:2b:1d:59:be:df:2c
  Signature Algorithm: sha256WithRSAEncryption
      Issuer: C = FR, ST = France, L = Albi, O = chepi.fr, OU = Mail server, CN = www.chepi.fr, emailAddress = contact@chepi.fr
      Validity
          Not Before: Jun 20 00:07:19 2017 GMT
          Not After : Jun 20 00:07:19 2018 GMT
      Subject: C = FR, ST = France, L = Albi, O = chepi.fr, OU = Mail server, CN = www.chepi.fr, emailAddress = contact@chepi.fr
      Subject Public Key Info:
          Public Key Algorithm: rsaEncryption
              Public-Key: (1024 bit)
              Modulus:
                  00:d1:a2:6b:97:a1:e3:61:3f:f6:c9:10:c2:33:07:
                  96:0a:3e:7d:18:bc:68:dc:6f:2c:ea:4f:b3:50:52:
                  ad:15:54:73:5f:26:f5:c5:aa:c1:93:a6:f5:95:53:
                  36:66:75:82:c5:f4:aa:10:5f:c7:03:b9:bd:3f:d4:
                  7f:f6:0e:db:18:46:bf:8e:0a:4e:c8:b0:31:72:a9:
                  83:28:86:1e:bd:cd:39:7c:5a:12:c6:42:80:c3:26:
                  8e:ba:f6:9c:b9:7d:28:62:82:b4:40:cb:1d:12:82:
                  fe:af:eb:6d:93:33:0e:f0:82:4a:b2:af:85:d2:a1:
                  fd:8f:9b:ef:b5:3f:ce:05:05
              Exponent: 65537 (0x10001)
  Signature Algorithm: sha256WithRSAEncryption
       40:04:2f:1f:26:e8:d0:7a:e3:db:1f:00:39:fd:29:a8:33:eb:
       21:e5:3d:ba:d1:c8:29:ef:3b:12:88:ad:83:6a:1d:0f:51:eb:
       18:80:a5:df:0f:74:fa:d9:f5:3b:0f:0d:c1:ca:83:2c:c0:4d:
       d0:6b:a4:b2:8a:2f:eb:94:24:9d:3a:d1:39:69:2f:34:61:6f:
       c6:18:ae:15:a4:19:9f:52:e4:86:b1:d1:b8:3e:2c:0c:59:dd:
       26:41:6d:b9:37:26:84:cf:66:61:6b:d6:d1:27:15:05:64:e7:
       a5:ac:cf:61:47:23:a8:b5:e9:86:bd:5f:d8:69:12:dd:d7:26:

OBSD:

Dovecot: /etc/dovecot/dovecot.conf (man dovecot)

Avant de lancer le daemon , modifier /etc/login.conf en y ajoutant:

dovecot:\
                :openfiles-cur=512:\
                :openfiles-max=2048:\
                :tc=daemon:

Opensmtpd: /etc/mail/smtpd.conf (man smtpd.conf)

Clear the mail queue on new CVS builds

rm -rf /var/spool/smtpd/*

Alias:

Editer /etc/mail/aliases et jouer

cd /etc/mail
makemap aliases
newaliases

Vérif conf smtpd:

root@machine# smtpd -n
configuration OK

Surveillance du démon avec mailmonitor.sh lancé par la crontab de root

Ne pas se faire déclarer comme spam:

SPF

Seule la forme de champ TXT est “autorisée”

Sous forme de champ TXT :

chezmoi.tld.   TXT  "v=spf1 a mx ~all"

(Champ DNS de type SPF chez Gandi tel que celui-ci :

chezmoi.tld.   SPF "v=spf1 a mx ~all"

)

Signature DKIM

Cette technique consiste à signer les messages émis par le serveur à l'aide d'une clé privée. On ajoute ensuite dans un champ DNS la clé publique correspondante qui permettra au destinataire de vérifier que le mail reçu provient bien de votre serveur.

On installe dkimproxy avec “pkg_add dkimproxy”

Les commandes suivantes permettent de fabriquer la paire de clés qui servira à signer les mails émis :

Création du dossier pour les clefs

# mkdir -p /etc/dkimproxy/private                    

On protège le dossier

# chown _dkimproxy:wheel /etc/dkimproxy/private 

On modifie les permissions

# chmod 700 /etc/dkimproxy/private                   

On va dans le dossier

# cd /etc/dkimproxy/private                          

On génère les clefs

# openssl genrsa -out private.key 1024               
# openssl rsa -in private.key -pubout -out public.key

On protège les clefs

# chown _dkimproxy:wheel private.key public.key      
# chmod 400 private.key

Configuration de Dkimproxy:

Afin de configurer la signature des messages envoyés, il faut éditer le ficher /etc/dkimproxy_out.conf:

listen    127.0.0.1:10027
relay     127.0.0.1:10028
domain    chezmoi.tld
signature dkim(c=relaxed)
signature domainkeys(c=nofws)
keyfile   /etc/dkimproxy/private/private.key
selector  pubkey

Il faut ensuite indiquer à opensmtpd de signer les mails. On ajoute dans le fichier /etc/mail/smtpd.conf une ligne pour écouter sur le port 10028 en local, afin d'envoyer les mails que dkimproxy aura signé. On leur colle l'étiquette “DKIM” pour les repérer ensuite.

listen on lo0 port 10028 tag DKIM   

Les messages qui auront l'étiquette “DKIM” peuvent être envoyés. On n'envoie plus les mails s'ils ne sont pas passés par dkimproxy.

match tag DKIM for any action "envoi"
match auth tag DKIM from any for any action "envoi"

Enfin, les messages pas encore signés doivent être envoyés à dkimproxy. On définit l'action correspondante :

action dkimproxy relay host smtp://127.0.0.1:10027 

S'ensuit les règles de correspondance qui vont bien, à placer à la fin du fichier smtpd.conf:

match auth from any for any action dkimproxy
match for any action dkimproxy

Enregistrements DNS

On va indiquer le nécessaire pour pouvoir vérifier la signature des messages qui auront un drapeau “pubkey”.

Il s'agira d'un champ DKIM ou TXT selon ce qui est disponible.

Nom de domaine : pubkey._domainkey.
Contenu : v=DKIM1; k=rsa; p=… le contenu du fichier public.key, qu'on peut afficher avec cat :
# cat /etc/dkimproxy/private/public.key

Ce qui nous donnera dans la zone DNS le domaine :

pubkey._domainkey    IN TXT    ( "v=DKIM1; k=rsa; t=s;p=v+Fb…vhP/oB")

Gestion du service DKIM

Activez dkimproxy puis rechargez opensmtpd avant de tester.

# rcctl enable dkimproxy_out
# rcctl start dkimproxy_out
# rcctl restart smtpd

Test avec https://www.mail-tester.com/ (au moins 8/10)→déjà mieux que gmail^^


Mise en place du WebMail Roundcube:

La taille des pièces jointes est limitée

-à 1 Mo par /etc/httpd.conf ⇒ Ajout de:

connection max request body 1048576000 dans le bloc "www.chepi.fr"

-à 2 Mo par /etc/php-7.0.ini ⇒ modification des valeurs: On complète l'install de php: (/etc/php-7.0.ini)

file_upload = On
upload_max_filesize = 700M (au lieu de 2M)
post_max_size
memory_limit = 200M (au lieu de 128M)
allow_url_fopen = On (ou 1)

Le fuseau horaire:

date.timezone = Europe/Paris

Configuration du cache:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.enable_file_override=1

On ajoute les bibliothèques “pear php-pspell php-ldap php-curl php-gd php-mcrypt php-intl php-zip” (également utiles pour Bozon).

Afin de les activer il faut les relier dans le dossier /etc/php-7.0.sample:

cd /etc/php-7.0.sample
for i in *; do ln -sf ../php-7.0.sample/$i ../php-7.0/; done
rcctl restart php70_fpm

Pour fonctionner dans le chroot, php aura besoin de qq fichiers qui se trouvent dans /etc afin de résoudre les noms de domaines, d'être à l'heure, vérifier les certificats, utiliser sh:

cd /var/www      #on va dans le chroot
mkdir etc
cp /etc/resolv.conf etc/resolv.conf
cp /etc/localtime etc/localtime
mkdir etc/ssl
cp /etc/ssl/cert.pem etc/ssl/cert.pem
cp /bin/sh /var/www/bin

/etc/httpd.conf : Ajout du serveur “mx.chepi.fr”

/var/www/roundcubemail/config/config.inc.php : Pour utiliser l'imap et Smtp sécurisés (993 et 587), on zape la vérification du certificat:

$config['smtp_server'] = 'tls://%n';
$config['smtp_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
 ),
);
serveur_de_mails.1664900789.txt.gz · Dernière modification: 2022/10/04 18:26 de pit