Postfix et Authentification SASL [RESOLU]

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

Postfix et Authentification SASL [RESOLU]

Messagepar everest » 12 Nov 2004 10:31

Bonjour,

Je suis en train d'essayer de mettre en place l'authentification SASL sur mon serveur de messagerie Postfix. Comme je procede par etape je n'ai encore rien fait du coté SSL/TLS.

Je voudrais que Postfix fasse l'authentification a partir de mon fichier /etc/shadow mais cela ne fonctionne pas..., j'obtiens le message suivant dans mon log :


Code: Tout sélectionner
postfix/smtpd[10563]: connect from unknown[ip du poste client]
postfix/smtpd[10563]: warning: unknown[ip du poste client]: SASL PLAIN authentication failed
postfix/smtpd[10563]: warning: unknown[ip du poste client]: SASL LOGIN authentication failed


Les packages suivants sont installées (rpm) sur ma distribution (Mandrake 9.1) :

- postfix-2.0.6-1mdk (supporte SASL et TLS d'après la doc)
- cyrus-sasl-2.1.12-1mdk

- libsasl2-2.1.12-1.mdk
- libsasl2-plug-crammd5-2.1.12-1mdk
- libsasl2-plug-digestmd5-2.1.12-1mdk
- libsasl2-plug-login-2.1.12-1mdk
- libsasl2-plug-plain-2.1.12-1mdk
- libsasl2-plug-sasldb-2.1.12-1mdk

- libsasl-1.5.28-5mdk
- libsasl7-plug-crammd5-1.5.28-5mdk
- libsasl7-plug-digestmd5-1.5.28-5mdk
- libsasl7-plug-login-1.5.28-5mdk
- libsasl7-plug-plain-1.5.28-5mdk


Pour info :
- la messagerie est opérationnelle sans SASL, je peux envoyer et recevoir des mails via le smtp de free.
- postfix n'est pas chrooté
- le fichier smtpd.conf se trouve dans /usr/local/lib/sasl2 et /usr/local/lib/sasl et il y a un lien de /usr/lib/sasl2 vers /usr/local/lib/sasl2 et de /usr/lib/sasl vers /usr/local/lib/sasl

Le fichier smtpd.conf contient :


Code: Tout sélectionner
pwcheck_method: saslauthd
mech_list: login plain digest-md5 cram-md5



Le fichier sysconfig/saslauthd contient


Code: Tout sélectionner
# $Id: saslauthd.sysconfig,v 1.1 2001/05/02 10:55:48 wiget Exp $
# Authentications mechanism (for list see saslauthd -v)
SASL_AUTHMECH=shadow

# Hostname for remote IMAP server (if rimap auth mech is used)
SASL_RIMAP_HOSTNAME=

# Honour time-of-day login restrictions (if shadow auth mech is used)
SASL_TIME_OF_DAY_LOGIN_RESTRICTIONS=yes


Le fichier postfix/main.cf contient :


Code: Tout sélectionner
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
myhostname = hernon.xeg.home
mydomain = xeg.home
myorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$mydomain, $mydomain
unknown_local_recipient_reject_code = 450
mynetworks  = 192.168.1.0/16, 127.0.0.1/8
relay_domains = $mydestination
relayhost = smtp.free.fr
alias_maps = hash:/etc/postfix/aliases
mail_spool_directory = /var/spool/mail
mailbox_command = /usr/bin/procmail -Y -a $DOMAIN
mail_name = Messagerie
mail_version = x.x
smtpd_banner = ESMTP $mail_name ($mail_version)
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5
delay_warning_time = 4
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.0.6/samples
readme_directory = /usr/share/doc/postfix-2.0.6/README_FILES
alias_database = hash:/etc/postfix/aliases

virtual_maps = hash:/etc/postfix/virtual
sender_canonical_maps = hash:/etc/postfix/sender_canonical
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains
smtpd_client_restrictions = reject_unknown_client, permit_mynetworks, check_client_access hash:/etc/postfix/access
content_filter = vscan:

## SASL
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $mydestination
smtpd_sasl_application_name = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = permit_sasl_authenticated, reject_unknown_sender_domain, reject_non_fqdn_sender, check_sender_access hash:/etc/postfix/access 


Merci pour votre aide :)
E.
Dernière édition par everest le 16 Nov 2004 16:53, édité 1 fois au total.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Messagepar everest » 12 Nov 2004 12:14

Il n'y a donc personne qui utilise SASL (via /etc/shadow) avec son Postfix ? [-o<
Sniiiiffff

E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Messagepar Methos_Hi » 12 Nov 2004 18:49

Non, pas moi.

Mais ne faut-il pas mettre le chemin complet du fichier shadow dans "saslauthd", que dit "saslauthd -v"?
Avatar de l’utilisateur
Methos_Hi
Amiral
Amiral
 
Messages: 1520
Inscrit le: 07 Fév 2004 01:00
Localisation: Ile de France

Messagepar everest » 15 Nov 2004 15:20

Methos_Hi a écrit:Non, pas moi.

Mais ne faut-il pas mettre le chemin complet du fichier shadow dans "saslauthd", que dit "saslauthd -v"?


Il semblerait que ce ne soit pas necessaire mais je vais qd meme essayer.

Sinon la commande saslauthd -v donne :

Code: Tout sélectionner
saslauthd 2.1.15
authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Messagepar everest » 16 Nov 2004 11:52

Comme j'ai supposé que la Mandrake 9.1 etait peut etre la cause du probleme, j'ai migré en 10.0. De ce fait je suis en :
- postfix-2.1.1
- cyrus-sasl-2.1.15
- saslauthd-2.1.15

- libsasl2-2.1.15
- libsasl2-plug-crammd5-2.1.15
- libsasl2-plug-digestmd5-2.1.15
- libsasl2-plug-login-2.1.15
- libsasl2-plug-plain-2.1.15
- libsasl2-plug-sasldb-2.1.15

Maintenant j'ai du mieux....j'ai un autre message d'erreur :

Code: Tout sélectionner
postfix/smtpd[6022]: warning: SASL authentication problem: unable to open Berkeley db /var/lib/sasl2/sasl.db: No such file or directory
postfix/smtpd[6022]: warning: SASL authentication problem: unable to open Berkeley db /var/lib/sasl2/sasl.db: No such file or directory
postfix/smtpd[6022]: warning: SASL authentication failure: Password verification failed
postfix/smtpd[6022]: warning: client.xeg.home[192.168.0.4]: SASL PLAIN authentication failed


Le problème c'est que je ne veux pas faire d'auth a partir de sasldb. Je veux que cela se fasse a partir de mon fichier /etc/shadow. Ce qui est bizarre c'est que mon fichier smtpd.conf contient pourtant
Code: Tout sélectionner
pwcheck_method: saslauthd
mech_list: plain login digest-md5 cram-md5

...et qu'avec la ligne "pwcheck_method: saslauthd", l'auth ne devrait pas chercher sasldb.

Qq1 a-t-il une idée ?
E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Messagepar everest » 16 Nov 2004 14:49

En regardant dasn le fichier auth.log j'ai :

saslauthd[16002]: do_auth : auth failure: [user=mon_login@hernon.xeg.home, localhost.xeg.home, xeg.home] [service=smtp] [realm=hernon.xeg.home, localhost.xeg.home, xeg.home] [mech=shadow] [reason=Unknown]


Je ne comprend pas pourquoi user=mon_login@hernon.xeg.home....ca devrait plutot etre mon_login ou encore mon_login@xeg.home, sachant que xeg.home est le nom de domaine local et hernon le nom du serveur.

J'ai egalement fait qq testes vaec testsaslauthd :

testsaslauthd -u mon_login -p mon_passwd ---> OK
testsaslauthd -u mon_login@xeg.home -p mon_passwd ---> NO
testsaslauthd -u mon_login@hernon.xeg.home -p mon_passwd ---> NO

Voila,

Si jamais qq1 a une idée je suis preneur, mais il semblerait qu'il n'y as pas beaucoup de personnes qui utilisent SASL via shadow #-o

E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Messagepar everest » 16 Nov 2004 16:53

J'ai resolu mon problème de la facon suivante :

Dans postfix/main.cf :

smtpd_sasl_local_domain = "vide" car il semblerait que si l'on met qq chose cela pose un pb a SASL2

J'ai bien galèré mais j'y suis arrivé....dommage que trop peu de personnes m'aient aidé.

E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

installer sasl

Messagepar Mat Pat » 16 Nov 2004 19:52

Bonjour à tous,

J'ai moi aussi installé postfix 2.1.1 sur une mandrake 10.0.
Celà fonctionne bien mais j'aimerais pouvoir l'utiliser avec un MUA.
Celà ne fonctionne en effet qu'en partie : je peux reçevoir mes e-mails avec ce MUA mais pas en envoyer (à un domaine qui n'est pas le mien car pour mon domaine celà fonctionne).
J'ai cru comprendre que celà était du à un problème d'authentification au niveau smtp et que l'une des solutions était de mettre en place sasl (à défaut d'autauriser le relai de courrier et de faire de mon serveur un open relay).

Voilà donc les questions que je me pose :
1) je veux bien installer les packages sasl, mais lesquels ?
cyrus-sasl seulement ? Une partie de la liste obtenue avec urpmi ? Toute la liste ?

Voici la liste des packages obtenue avec urpmi sasl :
cyrus-sasl
libsasl2
libsasl2-devel
libsasl2-plug-anonymous
libsasl2-plug-crammd5
libsasl2-plug-digestmd5
libsasl2-plug-gssapi
libsasl2-plug-login
libsasl2-plug-ntlm
libsasl2-plug-otp
libsasl2-plug-plain
libsasl2-plug-sasldb
libsasl2-plug-srp

2) Que dois-je faire ensuite ?
Je sais que plusieurs choix concernent le mécanisme d'authentification : j'hésite entre 'plain + tls' et 'Digest-MD5'
Je sais que plusieurs choix concernent le modèle d'authentification : ayant plusieurs utilisateurs virtuels, je préfère utiliser un fichier de mots de passes séparés de celui des users linux... je crois que celà impliquera l'entrée 'pwcheck_method: auxprop' dans le fichier smtpd.conf.

3) Une fois ces choix faits, comment les mettre en place ?

Merci de votre aide.
Mat Pat
Quartier Maître
Quartier Maître
 
Messages: 19
Inscrit le: 14 Mai 2004 00:53

Re: installer sasl

Messagepar everest » 17 Nov 2004 09:53

Mat Pat a écrit:Bonjour à tous,

J'ai moi aussi installé postfix 2.1.1 sur une mandrake 10.0.
Celà fonctionne bien mais j'aimerais pouvoir l'utiliser avec un MUA.
Celà ne fonctionne en effet qu'en partie : je peux reçevoir mes e-mails avec ce MUA mais pas en envoyer (à un domaine qui n'est pas le mien car pour mon domaine celà fonctionne).
J'ai cru comprendre que celà était du à un problème d'authentification au niveau smtp et que l'une des solutions était de mettre en place sasl (à défaut d'autauriser le relai de courrier et de faire de mon serveur un open relay).

Voilà donc les questions que je me pose :
1) je veux bien installer les packages sasl, mais lesquels ?
cyrus-sasl seulement ? Une partie de la liste obtenue avec urpmi ? Toute la liste ?

Voici la liste des packages obtenue avec urpmi sasl :
cyrus-sasl
libsasl2
libsasl2-devel
libsasl2-plug-anonymous
libsasl2-plug-crammd5
libsasl2-plug-digestmd5
libsasl2-plug-gssapi
libsasl2-plug-login
libsasl2-plug-ntlm
libsasl2-plug-otp
libsasl2-plug-plain
libsasl2-plug-sasldb
libsasl2-plug-srp

2) Que dois-je faire ensuite ?
Je sais que plusieurs choix concernent le mécanisme d'authentification : j'hésite entre 'plain + tls' et 'Digest-MD5'
Je sais que plusieurs choix concernent le modèle d'authentification : ayant plusieurs utilisateurs virtuels, je préfère utiliser un fichier de mots de passes séparés de celui des users linux... je crois que celà impliquera l'entrée 'pwcheck_method: auxprop' dans le fichier smtpd.conf.

3) Une fois ces choix faits, comment les mettre en place ?

Merci de votre aide.


1 - C'est comme tu veux, tu peux tout installer !!! Le principal est d'installer cyrus-sasl, libsasl2 et les plugins que tu veux. Dans un premier temps installe les plugins suivants : crammd5, digest-md5, plain, login et sasldb....c'est deja bien suffissant pour un debut.

2 - Commence deja par mettre en place plain + tls et qd ca fonctionnera, tu pourras changer. Pour ce qui est de auxprop, je n'en sais rien car ce n'est pas ce que j'ai choisi. (regarde ce que dit la doc)...cela dit pour commence tu peux deja essayé sasldb....c'est un fichier de mot de passe different de celui de linux (/etc/shadow)

3- Pour les mettre en place, je t'invite a aller lire un peu de doc sur le net. Je peux deja te dire qu'il te faudra modifier le fichier main.cf, master.cf, saslauthd, et smtpd.conf.

4- Bon courage!
E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Re: installer sasl

Messagepar Mat Pat » 17 Nov 2004 10:36

Merci,
je m'y met dès que je peux, je te tiens au courant si ça ne te dérange pas.
Mat Pat
Quartier Maître
Quartier Maître
 
Messages: 19
Inscrit le: 14 Mai 2004 00:53

Re: installer sasl

Messagepar everest » 17 Nov 2004 10:39

Mat Pat a écrit:Merci,
je m'y met dès que je peux, je te tiens au courant si ça ne te dérange pas.


Ok pas de problème !
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Re: installer sasl

Messagepar everest » 17 Nov 2004 13:36

Mat Pat, voici une doc en français pas mal du tout qui devrait pouvoir t'aider:-)

http://ben.reynerie.org/services/mail/serveur_mail.htm

Bon courage
E:
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Résumé du spectacle

Messagepar Mat Pat » 17 Nov 2004 16:50

Voilà le résumé du spectacle,

1 - J'ai installé les packages sasl avec urpmi -> OK.

2 - J'ai créé un lien symbolique de /usr/lib/sasl2 vers /usr/local/lib/sasl2 -> OK.

3 - J'ai créé le fichier /usr/local/lib/sasl2/smtpd.conf dans lequel j'ai mis : pwcheck_method: auxprop et mech_list: plain login -> OK. ( apparemment, auxprop remplace sasldb qui était valable dans la version 1.5)

4 - j'ai utilisé la commande saslpasswd2 -c -u mondomaine.com user -> cette commande crée le fichier /var/lib/sasl2/sasl.db.

5 - j'ai modifié main.cf :
smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2
smtpd_sasl_auth_enable = yes
smtpd_recipients_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes

6 - J'ai exécuté la commande printf 'user\0user\0password' | mmencode pour obtenir la chaine encodée -> OK.

7 - et j'ai testé avec telnet localhost 25 :
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 mondomaine.com ESMTP Postfix (2.1.1) (Mandrake Linux)
ehlo localhost
250-mondomaine.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN LOGIN PLAIN
250-AUTH=LOGIN PLAIN LOGIN PLAIN
250 8BITMIME
AUTH PLAIN bWF0aGlldQBtYXRoaWV1AGJ1cnBhbWF0
535 Error: authentication failed

8 - Voici le log de /var/log/mail/warnings :
Nov 17 15:44:50 localhost postfix/smtpd[15156]: warning: SASL authentication problem: unable to open Berkeley db /var/lib/sasl2/sasl.db: No such file or directory
Nov 17 15:44:50 localhost last message repeated 3 times
Nov 17 15:44:50 localhost postfix/smtpd[15156]: warning: SASL authentication failure: Password verification failed
Nov 17 15:44:50 localhost postfix/smtpd[15156]: warning: localhost[127.0.0.1]: SASL PLAIN authentication failed

9 - J'ai donc créé un lien symbolique de /var/lib/sasl2/sasl.db vers /var/lib/sasl2/sasl.db, mais rien n'y fait.

Qu'en penses-tu ?
Mat Pat
Quartier Maître
Quartier Maître
 
Messages: 19
Inscrit le: 14 Mai 2004 00:53

Re: Résumé du spectacle

Messagepar everest » 17 Nov 2004 16:59

Mat Pat a écrit:Voilà le résumé du spectacle,

[...]

AUTH PLAIN bWF0aGlldQBtYXRoaWV1AGJ1cnBhbWF0
535 Error: authentication failed

8 - Voici le log de /var/log/mail/warnings :
Nov 17 15:44:50 localhost postfix/smtpd[15156]: warning: SASL authentication problem: unable to open Berkeley db /var/lib/sasl2/sasl.db: No such file or directory
Nov 17 15:44:50 localhost last message repeated 3 times
Nov 17 15:44:50 localhost postfix/smtpd[15156]: warning: SASL authentication failure: Password verification failed
Nov 17 15:44:50 localhost postfix/smtpd[15156]: warning: localhost[127.0.0.1]: SASL PLAIN authentication failed

9 - J'ai donc créé un lien symbolique de /var/lib/sasl2/sasl.db vers /var/lib/sasl2/sasl.db, mais rien n'y fait.

Qu'en penses-tu ?


Eh ben c'est assez simple....tu es dans la meme m.... que moi il y a 5 jours. :lol:
Et tu pourrais y rester longtemps car comme tu as pu peut etre le voir....quasiment personne sur ce forum ne m'a aidé....

Bon aller, je suis bon prince..... \:D/ la soluce que j'ai trouvé est la suivante :

Dans le fichier main.cf remplace "smtpd_sasl_local_domain = $mydomain" par "smtpd_sasl_local_domain ="
Apparement SASL2 n'aime pas cette ligne : smtpd_sasl_local_domain = $mydomain

A+
E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Re: Résumé du spectacle

Messagepar everest » 17 Nov 2004 17:02

Autre chose...

Dans un premier temps je te conseil de de-chrooter postfix. Il faut faire la modif dans master.cf

Sinon je ne vois pas pourquoi sasl.db n'est pas trouvé la :-)

E.
C'est en forgeant...qu'on devient forgeron !
Avatar de l’utilisateur
everest
Second Maître
Second Maître
 
Messages: 41
Inscrit le: 29 Août 2003 00:00
Localisation: Paris/Ile-de-France

Suivant

Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invité(s)

cron