[Решено] Exim4+SMTP auth PAM

Автор F@rward, 07 января 2012, 18:23:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

F@rward

Есть сервер, смотрит в инет на нем exim + qpoper . Все просто, без всяких mysql обычный mailbox -/var/spool/mail/
Да оно и не надо на 5-10 пользователей
Вообщем очень хотелось бы прикрутить простейшую PAM аутентификацию из СИСТЕМНЫХ учеток т.е. /etc/shadow
Конфиг экзима разделен на маленькие файлы.
Пытался делать согласно: http://wiki.exim.org/AuthenticatedSmtpUsingPam#Configuring_exim:

auth/00_exim4-config_header

######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################

begin authenticators
plain:
   driver = plaintext
   public_name = PLAIN
   server_prompts = :
   server_condition = "${if pam{$2:$3}{1}{0}}"
   server_set_id = $2

login:
   driver = plaintext
   public_name = LOGIN
   server_prompts = "Username:: : Password::"
   server_condition = "${if pam{$1:$2}{1}{0}}"
   server_set_id = $1

Стандартно сделал:
/etc/pam.d/exim
#%PAM-1.0
@include common-auth
@include common-account
@include common-password
@include common-session

Однако дело до авторизации похоже не доходит
вот этот 30_exim4-config_check_rcpt -стандартный выел мозг
Что то мне подсказывает что строки в середине:

accept
    hosts = +relay_from_hosts
    control = submission/sender_retain
    control = dkim_disable_verify
  # Accept if the message arrived over an authenticated connection, from
  # any host. Again, these messages are usually from MUAs, so recipient
  # verification is omitted, and submission mode is set. And again, we do this
  # check before any black list tests.
  accept
    authenticated = *
    control = submission/sender_retain
    control = dkim_disable_verify

просто не дает делать авторизацию, предлагается просто релей или типа relay not permitted
Кто поскажет может как настроить SMTP авторизацию, чтоб уйти от просто релей

F@rward

Все разобрался, тему можно закрыть, некогда написать было.

По умолчанию просто не ставится никакая авторизация кроме как
Authenticators: cram_md5 plaintext  --- из файла /etc/exim4/passwd.client
при выводе exim -bV внимательно надо было смотреть
и глянуть что стоит:
aptitude search exim
по умолчанию ставится exim4-daemon-light, чтобы добавить виды авторизации надо поставить
aptitude install exim4-daemon-heavy
привести к такому виду:
aptitude search exim
i   exim4                                                  - metapackage to ease Exim MTA (v4) installation
i A exim4-base                                             - support files for all Exim MTA (v4) packages
i A exim4-config                                           - configuration for the Exim MTA (v4)
v   exim4-config-2                                         -
i   exim4-daemon-heavy                                     - Exim MTA (v4) daemon with extended features, including exiscan-ac
p   exim4-daemon-heavy-dbg                                 - debugging symbols for the Exim MTA (v4) packages
c   exim4-daemon-light                                     - lightweight Exim MTA (v4) daemon
соответственно включатся доп. виды авторизации:
exim -bV
Exim version 4.72 #1 built 12-May-2011 18:51:33
Copyright (c) University of Cambridge, 1995 - 2007
Berkeley DB: Berkeley DB 4.8.30: (April  9, 2010)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
GnuTLS compile-time version: 2.8.6
GnuTLS runtime version: 2.8.6
Configuration file is /var/lib/exim4/config.autogenerated

Далее все очевидно сносим qpopper -- ставим dovecot, в нем правим сл. строки
dovecot.conf

auth default {
  mechanisms = plain login
  # .. passdb and userdb configuration ..
  socket listen {
    client {
      path = /var/run/dovecot/auth-client
      mode = 0666
    }
    # deliver and some other programs need also auth-master:
    #master {
    #  path = /var/run/dovecot/auth-master
    #  mode = 0600
    #}
  }
}
а в экзиме правим /etc/exim4/conf.d/auth/00_exim4-config_header
begin authenticators
dovecot_plain:
  driver = dovecot
  public_name = PLAIN
  server_socket = /var/run/dovecot/auth-client
  server_set_id = $auth1

dovecot_login:
  driver = dovecot
  public_name = LOGIN
  server_socket = /var/run/dovecot/auth-client
# setting server_set_id might break several headers in mails sent by authenticated smtp. So be careful.
  server_set_id = $auth1

Генерим сертификат : /usr/share/doc/exim4-base/examples/exim-gencert (их можно подставить и в конфиг dovecot для Pop3s 995 )

Вставляем в сл файл: /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
MAIN_TLS_ENABLE = true
tls_on_connect_ports = 465

Правим /etc/default/exim4:
SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'

Создаем файл : /etc/exim4/conf.d/main/20_local_auth_advertise_hosts
auth_advertise_hosts = !1.2.3.4/16:!5.6.7.8/24 # Позволит адресам вашей внутренней сети - 1.2.3.4/16 и 5.6.7.8/24  не авторизоваться
hostlist host_auth_accept_relay = *

Вообщем то все
# update-exim4.conf
# /etc/init.d/exim4 restart

потом проверяем
telnet ваш сервер 25
ehlo user
250-ваш сервер Hello user [*****]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN -- появилось (изнутри сети не будет, только если auth_advertise_hosts = *)
250-STARTTLS
250 HELP

Все, вообщем я доволен из дома и the bat! и Громовая птица нормально авторизуются и работают, как по обычным, так и с сертификатами по портам TLS
И плз. так как никто не ответил, то и не спрашивайте больше!)
Да и был не прав: стандартные acl: 30_exim4-config_check_rcpt  и пр. из /etc/exim4/conf.d/acl  -- работают!