Echec de l’authentification SASL LOGIN: mécanisme d’authentification non valide sur Rails utilisant Postfix et Dovecot sur Ubuntu 12.10

J’ai configuré un serveur Ubuntu 12.10 avec Postfix et Dovecot. Néanmoins, j’ai un problème d’authentification de connexion SASL lorsque j’essaye d’envoyer des emails en utilisant une application Web de rails.

En utilisant RoundCube Webmail, je reçois ce journal lorsque j’envoie un email:

Feb 21 21:09:01 ks400054 postfix/qmgr[17883]: 61D4E113: removed Feb 21 21:16:34 ks400054 postfix/smtpd[19157]: connect from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:16:34 ks400054 postfix/smtpd[19157]: 9FA8419: client=ks400054.kimsufi.com[37.59.38.218], sasl_method=CRAM-MD5, [email protected] Feb 21 21:16:34 ks400054 postfix/cleanup[19161]: 9FA8419: message-id= Feb 21 21:16:34 ks400054 postfix/qmgr[17883]: 9FA8419: from=, size=723, nrcpt=1 (queue active) Feb 21 21:16:34 ks400054 postfix/smtpd[19157]: disconnect from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:16:35 ks400054 postfix/smtp[19162]: 9FA8419: to=, relay=gmail-smtp-in.l.google.com[2a00:1450:4013:c01::1b]:25, delay=0.91, delays=0.26/0.02/0.1/0.53, dsn=2.0.0, status=sent (250 2.0.0 OK 1361477795 w41si55958842eel.117 - gsmtp) Feb 21 21:16:35 ks400054 postfix/qmgr[17883]: 9FA8419: removed 

Cependant, lorsque j’essaie d’envoyer l’e-mail à l’aide de l’application Web Rails, je reçois ce journal:

 Feb 21 21:17:32 ks400054 postfix/smtpd[19157]: connect from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:17:32 ks400054 postfix/smtpd[19157]: warning: ks400054.kimsufi.com[37.59.38.218]: SASL LOGIN authentication failed: Invalid authentication mechanism Feb 21 21:17:32 ks400054 postfix/smtpd[19157]: lost connection after AUTH from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:17:32 ks400054 postfix/smtpd[19157]: disconnect from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:17:33 ks400054 postfix/smtpd[19157]: connect from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:17:33 ks400054 postfix/smtpd[19157]: warning: ks400054.kimsufi.com[37.59.38.218]: SASL LOGIN authentication failed: Invalid authentication mechanism Feb 21 21:17:33 ks400054 postfix/smtpd[19157]: lost connection after AUTH from ks400054.kimsufi.com[37.59.38.218] Feb 21 21:17:33 ks400054 postfix/smtpd[19157]: disconnect from ks400054.kimsufi.com[37.59.38.218] 

Mon fichier post.cf est le suivant:

 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h myhostname = localhost alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname mynetworks = 127.0.0.0/8, 10.0.0.0/24 mailbox_size_limit = 0 home_mailbox = Maildir/ virtual_alias_maps = hash:/etc/postfix/virtual virtual_mailbox_domains = /etc/postfix/vhosts virtual_mailbox_base = /var/vmail virtual_mailbox_maps = hash:/etc/postfix/vmaps virtual_minimum_uid = 1000 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 recipient_bcc_maps = hash:/etc/postfix/recipient_bcc recipient_delimiter = + inet_interfaces = all smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noplaintext,noanonymous smtpd_recipient_ressortingctions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth-client virtual_transport=dovecot dovecot_destination_recipient_limit=1 

Mon fichier Postfix master.cf est le suivant:

 # # # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # # Do not forget to execute "postfix reload" after editing this file. # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - - - - smtpd smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes submission inet n - - - - smtpd pickup fifo n - - 60 1 pickup -o content_filter= -o receive_override_options=no_header_body_checks cleanup unix n - - - 0 cleanup qmgr fifo n - n 300 1 qmgr tlsmgr unix - - - 1000? 1 tlsmgr rewrite unix - - - - - sortingvial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - - - - smtp # When relaying mail as backup MX, disable fallback_relay to avoid MX loops relay unix - - - - - smtp -o smtp_fallback_relay= showq unix n - - - - showq error unix - - - - - error retry unix - - - - - error discard unix - - - - - discard local unix - nn - - local virtual unix - nn - - virtual lmtp unix - - - - - lmtp anvil unix - - - - 1 anvil scache unix - - - - 1 scache # # ==================================================================== # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # Many of the following services use the Postfix pipe(8) delivery # agent. See the pipe(8) man page for information about ${recipient} # and other message envelope options. # ==================================================================== # # maildrop. See the Postfix MAILDROP_README file for details. # Also specify in main.cf: maildrop_destination_recipient_limit=1 # maildrop unix - nn - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} # # See the Postfix UUCP_README file for configuration details. # uucp unix - nn - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) # # Other external delivery methods. # ifmail unix - nn - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - nn - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - nn - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - nn - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_ressortingction_classes= -o smtpd_delay_reject=no -o smtpd_client_ressortingctions=permit_mynetworks,reject -o smtpd_helo_ressortingctions= -o smtpd_sender_ressortingctions= -o smtpd_recipient_ressortingctions=permit_mynetworks,reject -o smtpd_data_ressortingctions=reject_unauth_pipelining -o smtpd_end_of_data_ressortingctions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks # AV scan filter (used by content_filter) scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes # For injecting mail back into postfix from the filter 127.0.0.1:10025 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_ressortingctions= -o smtpd_client_ressortingctions= -o smtpd_sender_ressortingctions= -o smtpd_recipient_ressortingctions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8 dovecot unix - nn - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} 

Et mon fichier de configuration Dovecot, mon dovecot.conf est comme suit:

 auth_mechanisms = plain cram-md5 auth_verbose = yes base_dir = /var/run/dovecot/ info_log_path = /var/log/dovecot.info log_path = /var/log/dovecot log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = maildir:/var/vmail/%d/%n passdb { args = /etc/dovecot/passwd driver = passwd-file } protocols = imap pop3 service auth { executable = /usr/lib/dovecot/auth user = root } service imap-login { chroot = login executable = /usr/lib/dovecot/imap-login user = dovecot } service imap { executable = /usr/lib/dovecot/imap } service pop3-login { chroot = login executable = /usr/lib/dovecot/pop3-login user = dovecot } service pop3 { executable = /usr/lib/dovecot/pop3 } ssl = no userdb { args = /etc/dovecot/users driver = passwd-file } valid_chroot_dirs = /var/spool/vmail protocol pop3 { pop3_uidl_format = %08Xu%08Xv } auth default { mechanisms = plain cram-md5 passdb passwd-file { args = /etc/dovecot/passwd } userdb passwd-file { args = /etc/dovecot/users } user = root socket listen { client { # The client socket is generally safe to export to everyone. Typical use # is to export it to your SMTP server so it can do SMTP AUTH lookups # using it. path = /var/spool/postfix/private/auth-client mode = 0660 user = postfix group = postfix } } } 

Ensuite, la configuration du courrier sur l’application Rails est la suivante:

 config.action_mailer.smtp_settings = { :address => "ks400054.kimsufi.com" , :port => 25, :domain => "ks400054.kimsufi.com" , :user_name => "[email protected]" , :password => "THE_CORRECT_PASSWORD", :authentication => :cram_md5, :enable_starttls_auto => true, :tls => true } 

Je ne sais pas pourquoi je ne peux pas me connecter en utilisant l’application Web Rails.

Qu’est-ce que je rate? Est-ce quelque chose sur la configuration?

Je migre de dovecot à la configuration classique.

Quand je veux dire classique, je veux dire que j’ai suivi ce 2010 comment

http://www.pixelinx.com/2010/10/creating-a-mail-server-on-ubuntu-using-postfix-courier-ssltls-spamassassin-clamav-and-amavis/

Sur Ubuntu 12.10, vous devez remplacer /etc/postfix/main.cf par celui-ci:

 myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name biff = no append_dot_mydomain = no readme_directory = no mydestination = relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks_style = host mailbox_size_limit = 0 virtual_mailbox_limit = 0 recipient_delimiter = + inet_interfaces = all message_size_limit = 0 # SMTP Authentication (SASL) smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = # Encrypted transfer (SSL/TLS) smtp_use_tls = yes smtpd_use_tls = yes smtpd_tls_cert_file=/etc/apache2/ssl/mail.crt smtpd_tls_key_file=/etc/apache2/ssl/mail.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # Basic SPAM prevention smtpd_helo_required = yes smtpd_delay_reject = yes disable_vrfy_command = yes smtpd_sender_ressortingctions = permit_sasl_authenticated, permit_mynetworks,permit smtpd_recipient_ressortingctions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination # Force incoming mail to go through Amavis content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings # Virtual user mappings alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases virtual_mailbox_base = /var/spool/mail/virtual virtual_mailbox_maps = mysql:/etc/postfix/maps/user.cf virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_alias_maps = mysql:/etc/postfix/maps/alias.cf virtual_mailbox_domains = mysql:/etc/postfix/maps/domain.cf 

Et il fonctionne.