Quelqu'un pour m'aider à configurer SMTP sur seveur perso ?

Avec toutes les modifications que tu as dûe faire, que retourne postconf -n et dovecot -n ?

Il était temps, j’allais “remover” :confused:
Le premier :

serveur:~# postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix home_mailbox = Maildir/ inet_interfaces = all inet_protocols = ipv4 mailbox_size_limit = 0 mydestination = rictux.fr, localhost.rictux.fr, localhost mydomain = rictux.fr myhostname = rictux.fr myorigin = $mydomain readme_directory = no recipient_delimiter = + relayhost = smtp_tls_note_starttls_offer = yes smtp_tls_security_level = may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, sleep 1, reject_unauth_pipelining smtpd_helo_restrictions = reject_invalid_helo_hostname smtpd_recipient_restrictions = reject_unlisted_recipient, reject_unknown_recipient_domain, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_sender_restrictions = reject_unlisted_sender, reject_unknown_sender_domain, permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_security_level = may smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

Le second :

[code]serveur:~# dovecot -n

2.1.7: /etc/dovecot/dovecot.conf

OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.2

auth_mechanisms = plain login
mail_location = maildir:~/Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox “Sent Messages” {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
plugin {
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
protocols = imap
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = ricardo
}
}
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
driver = passwd
}
verbose_ssl = yes
[/code]

Dans dovecot -n :

à la place de user = ricardo, met comme c’était avant, càd user = postfix (comme marqué dans la doc)

service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }

Ensuite, que donne la commande

openssl x509 -noout -text -in /etc/ssl/certs/ssl-cert-snakeoil.pem ?

Ben :confused: après modif dans /etc/dovecot/dovecot.conf :

serveur:~# service dovecot restart [....] Restarting IMAP/POP3 mail server: dovecotFatal: service(auth) User doesn't exist: postifx (See service auth { unix_listener /var/spool/postfix/private/auth { user } } setting) failed!

Ta commande :

serveur:~# openssl x509 -noout -text -in /etc/ssl/certs/ssl-cert-snakeoil.pem Error opening Certificate /etc/ssl/certs/ssl-cert-snakeoil.pem 139703679186600:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/ssl/certs/ssl-cert-snakeoil.pem','r') 139703679186600:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400: unable to load certificate

Que donne :

ls -l /var/spool/postfix/private/auth

?

, que donne :

ls -l /etc/ssl/certs/ssl-cert-snakeoil.pem

?

, que donne :

ls -l /etc/ssl/private/ssl-cert-snakeoil.key 

?

et que donne la commande :

id postfix

?

le premier et les autres suivront en EDIT :

serveur:~# ls -l /var/spool/postfix/private/auth srw-rw---- 1 ricardo postfix 0 nov. 27 18:27 /var/spool/postfix/private/auth
EDIT :

serveur:~# ls -l /etc/ssl/certs/ssl-cert-snakeoil.pem ls: impossible d'accéder à /etc/ssl/certs/ssl-cert-snakeoil.pem: Aucun fichier ou dossier de ce type
EDIT 2 :

serveur:~# ls -l /etc/ssl/private/ssl-cert-snakeoil.key -rw-r----- 1 root ssl-cert 887 déc. 3 2010 /etc/ssl/private/ssl-cert-snakeoil.key
EDIT3 :

serveur:~# id postfix uid=105(postfix) gid=108(postfix) groupes=108(postfix)

En tous cas, chapeau pour ta patience et mille mercis.

Au fait, avec ‘postfix’ en place ‘ricardo’, je n’accède plus à mon serveur, ce n’est pas bien grave si je dois rester ainsi pour les tests mais est-ce que dois replacer ‘ricardo’ ou pas ?

:smiley:

Par défaut, chez moi j’ai ça :

root@localhost:/etc/postfix/tls# ls -l /var/spool/postfix/private/auth
srw-rw---- 1 postfix postfix 0 nov.  26 10:27 /var/spool/postfix/private/auth

=> Mais chez toi, c’est l’utilisateur ricarco qui lit /var/spool/postfix/private/auth, d’où l’erreur user ricardo doesn’t exist.
Tu as dûs enfeindre les lois de la nature en modifiant manuellement les droits de certains fichiers de ton serveur mail.
Donc ici, t’es obligé de faire une chown postfix:posfix /var/spool/postfix/private/auth

[quote=“ricardo”]Code:
serveur:~# ls -l /etc/ssl/certs/ssl-cert-snakeoil.pem
ls: impossible d’accéder à /etc/ssl/certs/ssl-cert-snakeoil.pem: Aucun fichier ou dossier de ce type
[/quote]
=> Ton certificat ssl n’existe pas alors que dans main.cf tu avais le paramètre smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem

Mais ne t’inquiètes pas tu peux regénérer le certificat et la clé privé qui va avec le tuto de la doc : postfix.traduc.org/index.php/TLS … uick-start

Attention, dans debian Wheezy, CA.pl se trouve dans /usr/lib/ssl/misc/CA.pl

Un exemple de procédure :

#Création du dossier tls dans /etc/postfix :
mkdir /etc/postfix/tls

#Tu te place dans ce dossier :
cd /etc/postfix/tls

#Tu crées le certificat d'autorité de certification : 
/usr/lib/ssl/misc/CA.pl -newca
CA certificate filename (or enter to create) => tu tapes directement Entrée

Making CA certificate ...
Generating a 2048 bit RSA private key
......................+++
........................+++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:
=> tu tapes un mot de passe que tu dois retenir, puis Entrée

Verifying - Enter PEM pass phrase:
-----
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]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
=> Attention, pour Comme Name, met localhost, mais ne met surtout pas le domaine pleinement qualifié de ton serveur mail (car une autorité de certification ne peut pas avoir le même domaine que celui pour lequel elle a crée le certificat).

Email Address []:


Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:    
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
=> tu remet le mot de passe que tu avais saisi précédemment

Après tu as le contenu du certificat d'autorité qui s'affiche en block.

Ensuite on va créer la clé privé et le certificat ssl à proprement parler à l’aide de cette autorité de certification :

#On crée la clé privé valable 100 ans (365 jours) :
openssl req -new -nodes -keyout key.pem -out req.pem -days 36500

Generating a 2048 bit RSA private key
.........+++
....................+++
writing new private key to 'key.pem'
-----
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]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
=>Là tu met le domaine fqdn de ton serveur mail


Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

...

Au final, la clé privé est crée


#Ensuite on crée le certificat ssl : 
root@localhost:/etc/postfix/tls# openssl ca -days 36500 -out cert.pem -infiles req.pem
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
=> tu retapes le même mot de passe, puis entrée.

Au final le certificat ssl /etc/postfix/tls/cert.pem est crée.

Ensuite comme dans la doc :

chmod 644 ./demoCA/cacert.pem
chmod 644 cert.pem 
chmod 400 key.pem

Puis dans main.cf, mettre les bons chemins :

smtpd_tls_cert_file = /etc/postfix/tls/cert.pem
smtpd_tls_key_file = /etc/postfix/tls/key.pem

Restarter postfix et tester.

=> ok, laisse ricardo alors.

Avant de commencer :
pass-phrase classique, càd plusieurs mots séparés ou simple mot de passe, par exemple celui qui me sert pour me connecter ???

OK, je laisse replace ‘ricardo’ mais ça ne jouera pas pour toutes les commandes que tu demandes de faire ?
[mono]Donc ici, t’es obligé de faire une chown postfix:posfix /var/spool/postfix/private/auth[/mono] entre autres

un simple mot de passe, n’importe lequel pas forcement celui que tu te sert pour te connecter. Met un mot de passe simple sans espace.

OK pour le pass.
J’ai rajouté qq chose dans mon message précédent.

=> je ne pense pas, l’avenir nous le dira. Mais tant que ça marche avec ricardo, laissons comme ça.

OK, ça marche, tu peux aller boire l’apéro car je risque d’en avoir pour un bout de temps, les vieux ne sont pas rapides :005

Je suis allé trop vite et je n’ai pas bien fait.
J’ai recopié aussi “localhost” la deuxème fois, quand tu précise que je devais mettre[quote]Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
=>Là tu met le domaine fqdn de ton serveur mail[/quote]
Est-ce que je dois refaire cette dernière partie ou pourra-t-on la modifier ensuite ?

Ben y’a un os juste à la fin, est-ce dû au fait que j’ai mis localhost comme dit sur le msg plus haut ?

Certificate is to be certified until Nov 4 17:34:49 2113 GMT (36500 days) Sign the certificate? [y/n]:y failed to update database TXT_DB error number 2

Malgré ça, j’ai fait le reste :
deux étaient déjà en 644 donc pas touché et placé key.pem en 400
"restarté" le tout, essais ==> idem la même chose : réception bonne sans problèmes mais expédition avec STARTTLS négative.
On va aller à la soupe et on verra ça de nouveau vers minuit.

Out: 220 rictux.fr ESMTP Postfix (Debian/GNU) In: EHLO [192.168.0.5] Out: 250-rictux.fr Out: 250-PIPELINING Out: 250-SIZE 10240000 Out: 250-VRFY Out: 250-ETRN Out: 250-STARTTLS Out: 250-AUTH PLAIN LOGIN Out: 250-ENHANCEDSTATUSCODES Out: 250-8BITMIME Out: 250 DSN In: STARTTLS Out: 454 4.7.0 TLS not available due to local problem In: QUIT Out: 221 2.0.0 Bye

Un conseil si je peux me permettre : quand vous montez votre serveur, prenez des notes (toutes les commandes tapées et validées).

J’ai l’impression que votre méthode pour générer un certificat SSL autosigné n’est pas la bonne. Voir le script de Thuban par exemple pour la bonne ligne de commandes.

[quote=“ricardo”]Ben y’a un os juste à la fin, est-ce dû au fait que j’ai mis localhost comme dit sur le msg plus haut ?

Certificate is to be certified until Nov 4 17:34:49 2113 GMT (36500 days) Sign the certificate? [y/n]:y failed to update database TXT_DB error number 2 [/quote]
=> erreur typique. C’est parce que tu avais mis le même Common Name pour le certificat d’autorité de certification et la clé privée du certificat ssl.

Pour le certificat d’autorité de certification, tu met n’importe quoi sauf le domaine fqdn du serveur mail. Par exemple tu met localhost, mais pas rictus.fr.

Et pour la clé privé du certificat SSL, tu mets rictus.fr à Common Name.

PS : pour recommencer, tu dois supprimer le dossier ./demoCA/ avant de lancer /usr/lib/ssl/misc/CA.pl -newca

rm -rf ./demoCA/
/usr/lib/ssl/misc/CA.pl -newca