Подскажите, пожалуйста, в какую сторону двигаться или что мне нужно сделать, чтобы заработало.
Имеется сервер CentOS 6.6 с Postfix 2.6.6-6.
Мне нужно, чтобы для определенного домена (например для example.com) почта шла через определенный SMTP-сервер (mail.example.com, Microsoft Exchange).
На MS Exchange настроена аутентификация:
250-AUTH GSSAPI NTLM
Мне дали login и password, заведенные на Exchange.
С ними надо аутентифицироваться на mail.example.com:587
Использую Cyrus SASL.
Конфигурация Postfix (mail.test.ru):
cat main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.test.ru
mydomain = sberinsur.ru
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
mynetworks = 10.0.54.0/24, 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_sender_login_maps = hash:/etc/postfix/controlled_envelope_senders
smtpd_recipient_restrictions =
permit_mynetworks,
check_relay_domains,
reject
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
broken_sasl_auth_clients = yes
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
transport_maps = hash:/etc/postfix/transport
Логин и пароль записал:
vi /etc/postfix/sasl_passwd
mail.example.ru info:P@ssword
postmap /etc/postfix/sasl_passwd
Настраиваю перенаправление почты, предназначенной для example.ru, на SMTP сервер с MS Exchange:
vi transport
example.ru smtp:mail.example.ru:587
postmap transport
Теперь настраиваем gssapi:
Убедимся, что он установлен:
rpm -qa | grep cyrus
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-ntlm-2.1.23-15.el6_6.2.x86_64
ll /usr/lib64/sasl2/libgssapiv2.so*
lrwxrwxrwx 1 root root 21 Aug 15 16:57 /usr/lib64/sasl2/libgssapiv2.so -> libgssapiv2.so.2.0.23
lrwxrwxrwx 1 root root 21 Aug 15 16:57 /usr/lib64/sasl2/libgssapiv2.so.2 -> libgssapiv2.so.2.0.23
-rwxr-xr-x 1 root root 31256 Mar 25 2015 /usr/lib64/sasl2/libgssapiv2.so.2.0.23
cat /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: gssapi ntlm plain login
cat /etc/sysconfig/saslauthd
SOCKETDIR=/var/run/saslauthd
MECH=pam
FLAGS=
Пытаюсь отправить письмо с сервера Postfix на существующий email в домене example.ru:
echo "TEST EMAIL" | mailx -v -r "test1@example.ru" -s "Test email" -S smtp="127.0.0.1:25" support@example.ru
Connecting to 127.0.0.1 . . . connected.
220 mail.test.ru ESMTP Postfix
>>> HELO mail.test.ru
250 mail.test.ru
>>> MAIL FROM:<test1@example.ru
250 2.1.0 Ok
>>> RCPT TO:<support@example.ru
250 2.1.5 Ok
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 2.0.0 Ok: queued as 2006A280594
>>> QUIT
221 2.0.0 Bye
Письмо встало в очередь:
postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
F2B51280594 574 Mon Aug 15 18:39:42 test1@test.ru
(SASL authentication failed; cannot authenticate to server mail.example.ru[123.123.123.123]: generic failure)
support@example.ru
В логах maillog:
Aug 15 18:49:18 mail.test.ru postfix/smtp[63493]: warning: SASL authentication failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Credentials cache file '/tmp/krb5cc_89' not found)
Aug 15 18:49:18 mail.test.ru postfix/smtp[63493]: F2B51280594: to=<support@example.ru>, relay=mail.example.ru[123.123.123.123]:587, delay=576, delays=575/0.02/0.08/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server mail.example.ru[123.123.123.123]: generic failure)
Как мне правильно настроить аутентификацию Postfix по Kerberos на Exchange?
Смущает стркоа:
Credentials cache file '/tmp/krb5cc_89' not found
Не совсем ясно как настраивать. И готовых примеров с GSSAPI мало в интернете.