I apologize in advance for the long post.  I started working for a small ISP
with around 3000 mailboxes and inherited a Postfix server that I've been
auditing. It's based on Ubuntu 8.04 LTS, Postfix 2.51, and runs Courier for
pop and imap authentication. It has encrypted passwords in a MySQL database.

Because the passwords are encrypted in MySQL it uses saslauthd and pam for
authentication.  But since passwords are sent plaintext it really should
have an SSL connection for all client connections. 

In the SASL_README a couple of Important notices makes me think it's not
been implemented correctly.

"   Important

    saslauthd sends IMAP login information unencrypted. Any IMAP session
leaving the local host should be protected by an additional security layer
such as an SSL tunnel.

................

     Important

    Do not specify any other mechanisms in mech_list than PLAIN or LOGIN
when using saslauthd! It can only handle these two mechanisms, and
authentication will fail if clients are allowed to choose other mechanisms.
"

I believe I need to setup SSL connections for securely passing
authentication information to authorize the smtp connection for local or
remote clients with virtual accounts wanting to send e-mail.

So I'm a bit stumped and confused. The TLS_README indicates I can use
STARTTLS for all clients. Those clients will be everything from Outlook
Express to Windows Live Mail, Thunderbird, Incredimail, etc...  But without
the ability to use CRAM-MD5, DIGEST-MD5, NTLM, how can I use TLS to make the
connection and authorize the clients? 

The clients are using SASL for IMAP and POP and appear to be authenticating
correctly. It's the smtp I'm having an issue with.

I tried implementing TLS but postfix fails SASL when started without
CRAM-MD5 included in the mech list:

I downloaded saslfinger and see the errors. I've removed a number of helo,
client, and sender restrictions that were previously in place and will add
them back in as I resolve the authorization issues.

BELOW ARE POSTCONF -n and SASLFINGER outputs

Thank you in advance. Dave

saslfinger -cs

saslfinger - postfix Cyrus sasl configuration Fri Aug 23 14:52:27 EDT 2013
version: 1.0.4
mode: client-side SMTP AUTH

-- basics --
Postfix: 2.5.1
System: Ubuntu 8.04.4 LTS \n \l

-- smtp is linked to --
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb74e3000)

-- active SMTP AUTH and TLS parameters for smtp --
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


-- listing of /usr/lib/sasl2 --
total 800
drwxr-xr-x  2 root root  4096 2009-09-05 21:04 .
drwxr-xr-x 58 root root 20480 2013-05-04 10:35 ..
-rw-r--r--  1 root root 13568 2009-06-23 15:14 libanonymous.a
-rw-r--r--  1 root root   862 2009-06-23 15:14 libanonymous.la
-rw-r--r--  1 root root 12984 2009-06-23 15:14 libanonymous.so
-rw-r--r--  1 root root 12984 2009-06-23 15:14 libanonymous.so.2
-rw-r--r--  1 root root 12984 2009-06-23 15:14 libanonymous.so.2.0.22
-rw-r--r--  1 root root 15834 2009-06-23 15:14 libcrammd5.a
-rw-r--r--  1 root root   848 2009-06-23 15:14 libcrammd5.la
-rw-r--r--  1 root root 15320 2009-06-23 15:14 libcrammd5.so
-rw-r--r--  1 root root 15320 2009-06-23 15:14 libcrammd5.so.2
-rw-r--r--  1 root root 15320 2009-06-23 15:14 libcrammd5.so.2.0.22
-rw-r--r--  1 root root 46332 2009-06-23 15:14 libdigestmd5.a
-rw-r--r--  1 root root   871 2009-06-23 15:14 libdigestmd5.la
-rw-r--r--  1 root root 43020 2009-06-23 15:14 libdigestmd5.so
-rw-r--r--  1 root root 43020 2009-06-23 15:14 libdigestmd5.so.2
-rw-r--r--  1 root root 43020 2009-06-23 15:14 libdigestmd5.so.2.0.22
-rw-r--r--  1 root root 13574 2009-06-23 15:14 liblogin.a
-rw-r--r--  1 root root   842 2009-06-23 15:14 liblogin.la
-rw-r--r--  1 root root 13268 2009-06-23 15:14 liblogin.so
-rw-r--r--  1 root root 13268 2009-06-23 15:14 liblogin.so.2
-rw-r--r--  1 root root 13268 2009-06-23 15:14 liblogin.so.2.0.22
-rw-r--r--  1 root root 30016 2009-06-23 15:14 libntlm.a
-rw-r--r--  1 root root   836 2009-06-23 15:14 libntlm.la
-rw-r--r--  1 root root 29236 2009-06-23 15:14 libntlm.so
-rw-r--r--  1 root root 29236 2009-06-23 15:14 libntlm.so.2
-rw-r--r--  1 root root 29236 2009-06-23 15:14 libntlm.so.2.0.22
-rw-r--r--  1 root root 13798 2009-06-23 15:14 libplain.a
-rw-r--r--  1 root root   842 2009-06-23 15:14 libplain.la
-rw-r--r--  1 root root 13396 2009-06-23 15:14 libplain.so
-rw-r--r--  1 root root 13396 2009-06-23 15:14 libplain.so.2
-rw-r--r--  1 root root 13396 2009-06-23 15:14 libplain.so.2.0.22
-rw-r--r--  1 root root 22126 2009-06-23 15:14 libsasldb.a
-rw-r--r--  1 root root   873 2009-06-23 15:14 libsasldb.la
-rw-r--r--  1 root root 18080 2009-06-23 15:14 libsasldb.so
-rw-r--r--  1 root root 18080 2009-06-23 15:14 libsasldb.so.2
-rw-r--r--  1 root root 18080 2009-06-23 15:14 libsasldb.so.2.0.22
-rw-r--r--  1 root root 23696 2009-06-23 15:14 libsql.a
-rw-r--r--  1 root root   971 2009-06-23 15:14 libsql.la
-rw-r--r--  1 root root 23140 2009-06-23 15:14 libsql.so
-rw-r--r--  1 root root 23140 2009-06-23 15:14 libsql.so.2
-rw-r--r--  1 root root 23140 2009-06-23 15:14 libsql.so.2.0.22

-- listing of /etc/postfix/sasl --
total 20
drwxr-xr-x 2 root root 4096 2013-08-22 16:49 .
drwxr-xr-x 3 root root 4096 2013-08-22 09:27 ..
-rw-r--r-- 1 root root  253 2013-08-22 16:51 smtpd.conf
-rw-r--r-- 1 root root  253 2013-08-22 16:49 smtpd.conf.md5
-rw-r--r-- 1 root root  243 2013-08-22 16:48 smtpd.conf.nomd5

Cannot find the smtp_sasl_password_maps parameter in main.cf.
Client-side SMTP AUTH cannot work without this parameter!


postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
anvil_rate_time_unit = 3600
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = amavis:[127.0.0.1]:10024
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_size_limit = 0
message_size_limit = 50000000
mydestination = mail.example.com, localhost, localhost.localdomain
myhostname = mail.example.com
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps
$virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains
$relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps
$recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
$virtual_mailbox_limit_maps
readme_directory = /usr/share/doc/postfix
receive_override_options = no_address_mappings
recipient_delimiter = +
relay_domains = remoteclientserver.com
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_connection_count_limit = 300
smtpd_client_connection_rate_limit = 300
smtpd_client_message_rate_limit = 300
smtpd_client_recipient_rate_limit = 300
smtpd_helo_required = yes
smtpd_recipient_restrictions = reject_unauth_pipelining,
permit_sasl_authenticated, reject_non_fqdn_recipient,
reject_non_fqdn_sender, reject_unknown_sender_domain,
reject_unknown_recipient_domain, permit_mynetworks,
reject_unauth_destination, reject_multi_recipient_bounce,
reject_non_fqdn_hostname, reject_invalid_hostname, check_recipient_access
hash:/etc/postfix/roleaccount_exceptions, check_policy_service
inet:127.0.0.1:60000
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf,
mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_uid_maps = static:5000

Thank you, Dave

Reply via email to