среда, 4 мая 2016 г.

Админка для почты Sendmail+Cyrus-imap (webmin)

В общем проблемы как у всех на 7-й осе, стандартные:
# cat /var/webmin/miniserv.error
[04/May/2016:16:13:55 +0300] miniserv.pl started
[04/May/2016:16:13:55 +0300] Perl module Authen::PAM needed for PAM is not installed : Can't locate Authen/PAM.pm in @INC (@INC contains: /usr/libexec/webmin /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 12) line 1.
BEGIN failed--compilation aborted at (eval 12) line 1.
Лечил так:
yum install cpan pam-devel
 yum group install "Development Tools"
далее пытался установить модуль через консоль:
# perl -MCPAN -e shell
> install Authen::PAM
НО - не помогло, ошибка не пропала, поразмыслив - решил сделать так:
yum install perl-Authen-PAM

[04/May/2016:16:32:45 +0300] miniserv.pl started
[04/May/2016:16:32:45 +0300] PAM authentication enabled

Всем Удачи :)

Sendmail + Cyrus + saslauthd + Active Directory

Не так давно стала задачка перевести почтовик на авторизацию через AD, прочитано куча форумов и вариантов как это сделать, в итоге всё получилось довольно-таки изящно.
начнём, пожалуй с нашей "прослойки" - с сасла (saslauthd):

# cat /etc/sysconfig/saslauthd
SOCKETDIR=/run/saslauthd
MECH=ldap
FLAGS="-O /etc/saslauthd.conf"
В сам  /etc/saslauthd.conf
# cat /etc/saslauthd.conf
ldap_servers:ldap://dc.constoto.com/ ldap://dc1.constoto.com/ ldap://dc2.constoto.com/
ldap_bind_dn:CN=mail,CN=Users,DC=CONSTOTO,DC=COM
ldap_password:$tr0ngP@$$w0rd
ldap_search_base:DC=CONSTOTO,DC=COM
ldap_filter:(sAMAccountName=%u)
ldap_auth_method:bind
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: yes
ldap_mech: DIGEST-MD5
ldap_start_tls: no
ldap_version: 3
ldap_timeout: 10
ldap_cache_ttl: 30
ldap_cache_mem: 32768
Далее в /etc/sasl2/Sendmail.conf
# cat /etc/sasl2/Sendmail.conf
pwcheck_method:saslauthd
Теперь Cyrus-imapd, он же цайрус, он же в узких кругах цероз (есть за что):
# cat /etc/imapd
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
partition-1: /var/spool/imap
defaultpartition: 1
admins:cyrus
sievedir: /var/spool/imap/sieve
sendmail:/usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthdsasl_mech_list: PLAIN LOGIN DIGEST-MD5
altnamespace: yes
lmtp_downcase_rcpt: 1
lmtp_over_quota_perm_failure: 1
lmtp_strict_quota: 1
poptimeout: 10
expunge_mode: delayed
delete_mode: delayed
allowusermoves: 1
tls_cert_file: /etc/pki/cyrus-imapd/mail.crt
tls_key_file: /etc/pki/cyrus-imapd/mail.key
tls_ca_file: /etc/pki/cyrus-imapd/mail.ca-bundle
Далее часть сендмыла (для авторизации) будет выглядеть следующим образом:

define(`confLDAP_CLUSTER', `gates')
define(`confLDAP_DEFAULT_SPEC', `-h constoto.com -b dc=constoto,dc=com -d uid=mail,dc=constoto,dc=com -M simple -P /etc/mail/ldap.conf')
FEATURE(`ldap_routing',`null',`ldap -1 -T -v mail -k (&(|(objectclass=user)(objectclass=group))(mail=%0))',`bounce')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL DIGEST-MD5 LOGIN PLAIN')dnl

Проверяя авторизацию и аутентификацию был немного разочарован, т.к. CRAM-MD5 не получится уже использовать.

Файл /etc/mail/ldap.conf принимает вид:
dn: uid=mail,dc=constoto,dc=com
uid: mail
homeDirectory: /etc/mail
userPassword:$tr0ngP@$$w0rd
Вроде ничего не упустил... осталось настроить антиспам, кламав, раундкуб и выбрать админку но об этом позже.