Avec toutes les modifications que tu as dûe faire, que retourne postconf -n et dovecot -n ?
Il était temps, j’allais “remover”
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 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 ?
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
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