INSTALARE SERVER DE MAIL CU DOVECOT SI POSTFIX

Se instaleaza pachetele “dnsutils” si “telnet”

apt-get install dnsutils telnet -y

Se verifica daca portul 25 este deblocat:

dig mx +short yahoo.com |awk -F ' '  '{print $2}'

mta6.am0.yahoodns.net.
mta5.am0.yahoodns.net.
mta7.am0.yahoodns.net.

telnet mta6.am0.yahoodns.net 25

Trying 98.138.112.34…
Connected to mta6.am0.yahoodns.net.
Escape character is ‘^]’.
220 mta1278.mail.ne1.yahoo.com ESMTP ready

Daca output-ul este “Conection timed out” atunci portul este blocat
Se concateneaza certificatele digitale:

cat domeniu.com.crt intermediate.crt > domeniu.com.chain.crt

Se instaleaza Dovecot si Postfix

apt-get install dovecot-imapd dovecot-lmtpd 
apt-get install postfix postgrey postfix-policyd-spf-python

Se elimina pachetul Exim instalat odata cu sistemul de operare:

apt-get purge exim4 exim4-*

Postfix asculta porturile SMTP(25) si Submission(587) iar Dovecot asculta portul IMAP(993).
Configurari initiale

POSTFIX
Pentru configurarea porturilor se editeaza master.cf

nano /etc/postfix/master.cf

Se activeaza serviciul Submission eliminand comentariul (#) de la linia 17

……
smtp       inet  n       –       –       –       –       smtpd
#smtp      inet  n       –       –       –       1       postscreen
……
submission inet n       –       –       –       –       smtpd
#  -o syslog_name=postfix/submission
……

Serviciul SMTP este activat implicit.
Se editeaza fisierul de configurare main.cf:

nano /etc/postfix/main.cf

Se specifica certificatele de siguranta
Se inlocuieste  smtpd_use_tls = yes cu smtpd_tls_security_level = may
Se introduce smtp_tls_security_level = may

smtpd_tls_cert_file=/var/SSL/marinelvis.biz.chain.crt
smtpd_tls_key_file=/var/SSL/marinelvis.biz.key
smtpd_tls_security_level = may
smtp_tls_security_level = may

DOVECOT
Se creeaza un singur fisier de configurare dovecot.conf:

doveconf -n > /etc/dovecot/dovecot.conf.new
mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
mv /etc/dovecot/dovecot.conf.new /etc/dovecot/dovecot.conf
nano /etc/dovecot/dovecot.conf

Linia ssl = no se sterge si se inlocuieste cu urmatorul bloc:

service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
}
}
ssl = required
ssl_ca = </etc/ssl/certs/ca-certificates.crt
ssl_cert = /var/SSL/domeniu.com.chain.crt
ssl_key = </var/SSL/domeniu.com.key

Se elimina monitorizarea de catre systemd a portului IMAP(143) pentru a preveni aparitia de erori:

cp /lib/systemd/system/dovecot.socket /etc/systemd/system/
systemctl reenable dovecot.socket
sed -i '/:143$/s/^/#/' /etc/systemd/system/dovecot.socket

PROBA
Pe serverul unde se instaleaza:

systemctl restart postfix
systemctl restart dovecot
netstat -lnpt

In output trebuie sa fie listate porturile 25, 587 si 993 in coloana „Local Address”
Se verifica daca sunt semnalate erori in log-uri:

less | /var/log/mail.log
less | /var/log/syslog

Din calculatorul local:

openssl s_client -starttls smtp -crlf -connect domeniu.com:587
openssl s_client -connect domeniu.com:993

In ambele cazuri antepenultimul rand din output trebuie sa fie:

……
Verify return code: 0 (ok)
……

Se revine la root cu Ctrl + c
Autentificare si mailbox-uri

POSTFIX

nano /etc/postfix/main.cf

Se modifica modul de autentificare in Dovecot.
Se introduce urmatorul bloc:

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
# The path is relative to $queue_directory:
#   postconf |grep queue_directory
#   queue_directory = /var/spool/postfix
smtpd_sasl_path = private/auth
# Do not accept SASL authentication over unencrypted connections
smtpd_tls_auth_only = yes

DOVECOT

nano /etc/dovecot/dovecot.conf

Se introduce urmatorul bloc:

# Allows plaintext authentication only when SSL/TLS is used first.
# http://wiki2.dovecot.org/Authentication
auth_mechanisms = plain login
disable_plaintext_auth = yes
service auth-worker {
# Forbid to access /etc/shadow
user = $default_internal_user
}
service auth {
# IMPORTANT: Match the path to smtpd_sasl_path of Postfix
unix_listener /var/spool/postfix/private/auth {
group = postfix
user = postfix
mode = 0666
}
}

Se inlocuiesc mail_location, passdb si userdb:

mail_location = maildir:/var/vmail/%d/%n

 

passdb {
driver = passwd-file
# The entire email address will be used as the username for email client.
# Don’t bother about the scheme here, will be overwritten by a strong scheme from file.
#    (http://wiki2.dovecot.org/AuthDatabase/PasswdFile)
args = scheme=CRYPT username_format=%u /etc/dovecot/users
}

 

userdb {
# For static type, LDA verify the user’s existence by lookup passdb
#   ( http://wiki2.dovecot.org/UserDatabase/Static )
driver = static
args = uid=vmail gid=vmail home=/var/vmail/%d/%n
}

Toate directoarele speciale ale casutei postale vor fi create automat de Dovecot pentru fiecare cont in parte. Trebuie specificat formatul casutei postale in mail_location si un utilizator de sistem care sa execute operatiile corespunzatoare in mailbox-uri
Se creeaza utilizatorul de sistem vmail:

adduser --system --home /var/vmail --uid 550 --group --disabled-login vmail

A fost creat folderul /var/vmail  detinut de utilizatorul de sistem vmail.
Se creaza primul cont de e-mail si se introduce parola utilizand algoritmul de criptare SHA512 dupa urmatorul model:

doveadm pw -s SHA512-CRYPT

Exemplu de rezultat:

{SHA512-CRYPT}$6$jBJaXdjpgiAZVRUh$ysJbSwCDAZvxrJNUHr8urqKWOUmyQ7mNxl7ptWDf7htMB9s9lZZuNYTXuDPST2W226nOQG5IrHHmo0PCnhF/d0

Se creeaza un fisier nou in /etc/dovecot si se introduce parola criptata:

nano /etc/dovecot/users

dupa modelul:

user@domeniu.com:{SHA512-CRYPT}$6$jBJaXdjpgiAZVRUh$ysJbSwCDAZvxrJNUHr8urqKWOUmyQ7mNxl7ptWDf7htMB9s9lZZuNYTXuDPST2W226nOQG5IrHHmo0PCnhF/d0

Se schimba propietarul si permisiunile:

chmod 640 /etc/dovecot/users
chown root:dovecot /etc/dovecot/users

Dovecot nu depinde de domenii, deci pot fi folosite mai multe sau nici un domeniu. Utilizatorii pot fi administrați utilizand acest fisier.

PROBA
Din calculatorul local:

openssl s_client -connect domeniu.com:993

Se realizeaza conexiunea la serverul de mail:
……

* OK
……

In terminal se scriu comenzile pentru conectarea la contul de utilizator creat anterior:

a login user@domeniu.com  parola

a OK [……] Logged in

Pentru iesire si revenire la cursorul de root:

b logout

Se poate reveni la root si cu Ctrl + c
LMTP (Local Mail Transfer Protocol)

POSTFIX

nano /etc/postfix/main.cf

Se introduce linia mydomain = domeniu.com inainte de $myhostname. Se schimba variabilele urmatoare:

mydomain = domeniu.com
myhostname = $mydomain
myorigin = $mydomain
mydestination = localhost

Valorile variabilelor $mydomain si $myhostname trebuie sa fie aceleasi din certificatele SSL.
Modul de utilizare al variabilelor:
$myhostname: numele transmis prin comenzile SMTP HELO sau EHLO si banerul de intampinare SMTP.
$myorigin, $mydestination: In /etc/postfix/virtual_aliases mai jos.
$myorigin, $virtual_mailbox_domains, $virtual_alias_maps: reject_unauth_destination
Se introduc urmatoarele linii:

# Handing off local delivery to Dovecot’s LMTP
# http://wiki2.dovecot.org/HowTo/PostfixDovecotLMTP
#
# The path relative to $queue_directory, that is:
#    /var/spool/postfix/private/dovecot-lmtp
virtual_transport = lmtp:unix:private/dovecot-lmtp
# Check domains only, query users and aliases in Dovecot
#
# IMPORTANT: Don’t overlap with $mydestination
#virtual_mailbox_domains = example1.com, example2.com
virtual_mailbox_domains = $mydomain
#virtual_alias_domains = $virtual_alias_maps
virtual_alias_maps = hash:/etc/postfix/virtual_aliases

Alias-uri
Se creeaza fisierul virtual_aliases

nano /etc/postfix/virtual_aliases

si se introduc urmatoarele linii:

# The input(left column) without domain, will match user@$myorigin
# and user@$mydestination (e.g. root@example.com, root@localhost)
#
# The result(right column) without domain, Postfix will append
#   $myorigin as $append_at_myorigin=yes
# So the user user@domeniu.com must exists in /etc/dovecot/users
# See: The section TABLE FORMAT in manual virtual(5)
postmaster           root
webmaster           root
abuse                    root
# Person who should get root’s mail
root                user
info@domeniu.com    user
# A catch-all address is at the risk of spam
#@domeniu.com    user

Apoi se creeaza baza de date alocata alias-urilor:

postmap /etc/postfix/virtual_aliases
postfix reload

DOVECOT

nano /etc/dovecot/dovecot.conf

Se introduce urmatorul bloc:

service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0666
user = postfix
group = postfix
}
}

Calea absoluta catre  dovecot-lmtp trebuie sa fie aceeasi ca valoarea variabilei $virtual_transport in Postfix.

PROBA
Pe serverul unde se instaleaza:

systemctl restart postfix
systemctl restart dovecot

Se verifica daca s-a creat fisierul „dovecot-lmtp”

ls -l /var/spool/postfix/private/dovecot-lmtp

Se trimite un e-mail. Datorita alias-urilor create anterior contul user@domeniu.com va primi un mesaj in directorul new:

sendmail -bv webmaster

sudo ls -l /var/vmail/domeniu.com/user/new

Inregistrarile DNS

Hostname -> A -> IPv4
domeniu.com  -> MX -> mail.domeniu.com
domeniu.com  -> TXT -> v=spf1 a mx ip4:IPv4 ip6:IPv6 –all

Pentru ca serverul de mail este acelasi cu serverul domeniului domeniu.com = mail.domeniu.com
Raspunsul inregistrarii MX trebuie sa fie aceeasi cu variabila $myhostname din /etc/postfix/main.cf

domeniu.com -> A -> 5.189.138.195 (IP-ul domeniului)
domeniu.com -> MX -> domeniu.com
domeniu.com -> TXT -> v=spf1 a mx ip4:5.189.138.195 ip6:2a02:c207:2013:6973:0000:0000:0000:0001 -all

Pentru reverseDNS se introduce IP-ul inversat in inregistrarea PTR:

195.138.189.5.in-addr.arpa

PROBA
Se testeaza cu comanda dig:

dig +short mx domeniu.com |awk '{print $2}'

Output-ul trebuie sa fie numele domeniului unde a fost directionata inregistrarea MX

domeniu.com

dig +short a domeniu.com

Output-ul trebuie sa fie IP-ul mailserver-ului

5.189.138.195

dig +short -x 5.189.138.195

Output-ul trebuie sa fie numele domeniului

domeniu.com

Mail User Agent

Date de configurare pentru clientii de mail (Microsoft Outlook, Thunderbird, etc.):
IMAP

Server Name: domeniu.com
Port: 993
Connection security: SSL/TLS
Authentication method: Normal password
User Name: user@ domeniu.com

SMTP

Server Name: domeniu.com
Port: 587
Connection security: STARTTLS
Authentication method: Normal password
User Name: user@ domeniu.com

Antispam

POSTFIX

nano /etc/postfix/main.cf

Se sterge linia cu variabila smtpd_relay_restrictions. In locul ei se introduce blocul urmator:

# Restrictions in order: client, helo, sender, relay/recipient
smtpd_client_restrictions = permit_mynetworks,
reject_unauth_pipelining,
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
smtpd_sender_restrictions = permit_mynetworks,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
check_sender_access hash:/etc/postfix/sender_access,
# Reject destination we’re not responsible for, limit abuse or
# prevent postfix become an open relay. (version >= 2.10 required)
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination,
smtpd_recipient_restrictions =
# General rules
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
# Our users
permit_mynetworks,
permit_sasl_authenticated,
# Spam filters
reject_rbl_client zen.spamhaus.org,
reject_rbl_client dnsbl.sorbs.net,
reject_rhsbl_reverse_client dbl.spamhaus.org,
reject_rhsbl_helo dbl.spamhaus.org,
reject_rhsbl_sender dbl.spamhaus.org,
# This should be next-to-last
check_policy_service unix:private/postgrey,
permit

Regula  reject_unauth_destination impiedica mailserver-ul sa devina open relay.

POSTGREY
Se modifica optiunile Postgrey:

nano /etc/default/postgrey

POSTGREY_OPTS=”–unix=/var/spool/postfix/private/postgrey –delay=66″

Restart Postgrey:

systemctl restart postgrey

BLACKLIST OF SENDER
Unii spam-eri pot trece de filtrele impuse de Postfix. In acest caz se foloseste Blacklist.

nano /etc/postfix/sender_access

Calea /etc/postfix/sender_access trebuie sa fie aceeasi ca setarea variabilei  check_sender_access din main.cf:
Se creeaza baza de date sender_access.db:

postmap hash:sender_access

Apoi se introduc manual domeniile spam-erilor in baza de date:
Exemplu:

cd /etc/postfix/
echo spam@yandex.ru REJECT >> sender_access
echo ya.ru REJECT >> sender_access
postmap hash:sender_access

FAIL2BAN

Se instaleaza fail2ban:

apt-get install fail2ban -y

Se face o copie locala a fisierului de configurare si se editeaza:

cd /etc/fail2ban/filter.d/
cp postfix.conf postfix.local
nano postfix.local

Se adauga linia:

^%(__prefix_line)slost connection after (?:AUTH|UNKNOWN) from \S+\[<HOST>\]$

la failregex, care ar trebui sa arate asa:

failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$
^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$
^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$
^%(__prefix_line)simproper command pipelining after \S+ from [^[]*\[<HOST>\]:?$
^%(__prefix_line)slost connection after (?:AUTH|UNKNOWN) from \S+\[<HOST>\]$

Se editeaza jail.local:

nano /etc/fail2ban/jail.local

Se activeaza Postfix:

[postfix]
Enabled  =  true

Se reporneste Fail2ban

fail2ban-client reload postfixfail2ban-client status

SPF

nano /etc/postfix/main.cf

Inainte de linia check_policy_service unix:private/postgrey se intorduce linia aferenta SPF:

……
check_policy_service unix:private/policyd-spf,
check_policy_service unix:private/postgrey,
permit

Linia  check_policy_service trebuie introdusa dupa reject_unauth_destination pentru a evita ca mailserver-ul sa devina open relay.
La sfarsitul fisierului main.cf se introduce linia:

policy-spf_time_limit = 3600s

Se editeaza fisierul master.cf si se introduc cele 2 linii la sfarsitul fisierului:

nano /etc/postfix/master.cf

policyd-spf  unix  –       n       n       –       0       spawn
user=policyd-spf argv=/usr/bin/policyd-spf

Se reporneste Postfix:

systemctl restart postfix

DKIM (DomainKeys Identified Mail)
DKIM implica configurarea pachetului OpenDKIM, conectarea lui cu Postfix si alocarea inregistrarilor DNS specifice.
Se instaleaza OpenDKIM:

apt-get install opendkim opendkim-tools -y

Fisierul de configurare /etc/opendkim.conf trebuie sa arate astfel:

nano /etc/opendkim.conf

# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.
# Log to syslog
Syslog          yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask           002
# OpenDKIM user
# Remember to add user postfix to group opendkim
UserID          opendkim
# Map domains in From addresses to keys used to sign messages
KeyTable        /etc/opendkim/key.table
SigningTable        refile:/etc/opendkim/signing.table
# Hosts to ignore when verifying signatures
ExternalIgnoreList  /etc/opendkim/trusted.hosts
InternalHosts       /etc/opendkim/trusted.hosts
# Commonly-used options; the commented-out versions show the defaults.
Canonicalization    relaxed/simple
Mode            sv
SubDomains      no
#ADSPAction     continue
AutoRestart     yes
AutoRestartRate     10/1M
Background      yes
DNSTimeout      5
SignatureAlgorithm  rsa-sha256
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier.  From is oversigned by default in the Debian package
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders     From

Se aloca permisiunile fisierului:

chmod u=rw,go=r /etc/opendkim.conf

Se creeaza folderele pentru datele OpenDKIM, se desemneaza user-ul opendkim ca propietar al folderelor si se configureaza permisiunile fisierelor:

mkdir /etc/opendkim
mkdir /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod go-rw /etc/opendkim/keys

Se creeaza tabelul de semnaturi  /etc/opendkim/signing.table in care se introduce cate o linie pentru fiecare domeniu care are alocat un server de mail dupa modelul de mai jos:

nano /etc/opendkim/signing.table

*@domeniu.com  domeniu

Se creeaza tabelul cheilor private /etc/opendkim/key.table cu cate o linie pentru fiecare domeniu inscris in signing.table dupa modelul de mai jos:

nano /etc/opendkim/key.table

domeniu.com     domeniu.com:YYYYMM:/etc/opendkim/keys/domeniu.private

Primul camp conecteaza tabelul de semnaturi cu tabelul cheilor private.
Al doilea camp e impartit in 3 sectiuni separate de „:”
prima sectiune e numele de domeniu pentru care este alocata cheia.
a doua sectiune este selectorul (YYYYMM) folosit cand este cautata cheia inscrisa in inregistrarile DNS
a treia sectiune desemneaza fisierul care contine cheia de criptare alocata domeniului.
Fluxul pentru cautarea DKIM incepe cu adresa expeditorului. Tabelul de semnaturi este scanat pana la o intrare al carei model (primul element) se potriveste cu adresa. Apoi, valoarea celui de-al doilea element este utilizata pentru a localiza intrarea in tabelul cheilor a carei informatie cheie va fi utilizata. Pentru mesajele primite, domeniul si selectorul sunt apoi folosite pentru a gasi înregistrarea TXT a cheii publice in DNS si cheia publica este utilizată pentru a valida semnatura. Pentru e-mailul de iesire, cheia privata este citită din fisierul numit s utilizata pentru a genera semnatura pe mesaj.
Se creeaza fisierul  /etc/opendkim/trusted.hosts cu urmatorul continut:

nano /etc/opendkim/trusted.hosts

127.0.0.1
::1
localhost
mail.domeniu.com
domeniu.com

Se aloca permisiunile si propietarul fisierelor:

chown -R opendkim:opendkim /etc/opendkim
chmod -R go-rwx /etc/opendkim/keys

Se genereaza cheile de criptare:

opendkim-genkey -b 2048 -h rsa-sha256 -r -s 201710 -d domeniu.com -v

Se genereaza doua fisiere: YYYYMM.private care contine cheia de criptare si YYYYMM.txt care contine inregistrareaTXT pentru setarile DNS. Se redenumesc fisierele ca sa se potriveasca cu a treia sectiune a celui de-al doilea camp din key.table:
mv 201710.private domeniu.private
mv 201710.txt domeniu.txt
Se configureaza permisiunile si propietarul folderului /etc/opendkim:

chown -R opendkim:opendkim /etc/opendkim
chmod -R go-rw /etc/opendkim/keys

Se reporneste OpenDKIM:

systemctl restart opendkim

Daca sunt semnalate erori

systemctl status -l opendkim

DKIM foloseste inregistrarile TXT ca sa pastreze informatiile despre semnatura fiecarui domeniu.
Continutul fisierului /etc/opendkim/keys/domeniu.txt  arata asa:

YYYYMM._domainkey  IN  TXT ( “**v=DKIM1; h=rsa-sha256; k=rsa; s=email; “    “p=MIIBIjANBgkqX94YbLJ8NHcFPbaZTW8R2HthYxRaCyqodxlLHiABRuAM0WG0JEDSyakMFqIO40ghj/h7DUc/+PdtqIwXR”    “ZksfuXh7m30kuyavp3UasoMgMjO+YjG8JsdcwIDAQAB**” )  ; —– DKIM key YYYYMM for domeniu.com

Valoarea dintre paranteze se copie intr-un fisier-text separat fara ghilimele si spatii goale. De asemenea se inlocuieste h=rsa-sha256  cu h=sha256:

v=DKIM1; h=sha256; k=rsa; s=email;
p= MIIBIjANBgkqX94YbLJ8NHcFPbaZTW8R2HthYxRaCyqodxlLHiABRuAM0WG0JEDSyakMFqIO40ghj/h7DUc/+PdtqIwXR ZksfuXh7m30kuyavp3UasoMgMjO+YjG8JsdcwIDAQAB

Continutul de mai sus se introduce intr-o intr-o inregistrare TXT in managerul DNS

PROBA
Pentru verificare se foloseste comanda opendkim-testkey:

opendkim-testkey -d domeniu.com -s YYYYMM

Daca nu exista output atunci totul este configurat corect. Daca apar erori, pentru mai multe informatii se adauga optiunea –vvv la sfarsitul comenzii. Output-ul trebuie sa fie „key OK”. Va aparea si mesajul “key not secure” care va fi corectat prin configurarile urmatoare.

mkdir /var/spool/postfix/opendkim
chown opendkim:postfix /var/spool/postfix/opendkim

Se configureaza socket-ul pentru Postfix in fisierul de configurare implicit al OpenDKIM:

nano /etc/default/opendkim

# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.
#DAEMON_OPTS=””
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
SOCKET=”local:/var/spool/postfix/opendkim/opendkim.sock”
#SOCKET=”inet:54321″ # listen on all interfaces on port 54321
#SOCKET=”inet:12345@localhost” # listen on loopback on port 12345
#SOCKET=”inet:12345@192.0.2.1″ # listen on 192.0.2.1 on port 12345

Calea catre socket este diferita de cea implicita pentru ca, incepand cu Debian 8 procesele Postfix ruleaza in chroot jail si nu pot accesa locatia implicita
Se editeaza /etc/postfix/main.cf si se completeaza cu blocul urmator dupa smtpd_recipient_restrictions:

nano /etc/postfix/main.cf

# Milter configuration
# OpenDKIM
milter_default_action = accept
# Postfix ≥ 2.6 milter_protocol = 6, Postfix ≤ 2.5 milter_protocol = 2
milter_protocol = 6
smtpd_milters = local:/opendkim/opendkim.sock
non_smtpd_milters = local:/opendkim/opendkim.sock

Se repornesc OpenDKIM si Postfix

systemctl restart opendkim
systemctl restart postfix

PROBA
Se trimite un e-mail  de test  la check-auth@verifier.port25.com folosind un client de e-mail