Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> почтовые системы —> Postfix + Dovecot + Clamav + SpamAssasin + LDAP vs MYSQL

Postfix + Dovecot + SpamAssasin + Clamav с аворизацией в LDAP или MySQL

Автор: atrium.


Здравствуйте уважаемые читатели, сегодня мы будем реализовывать почтовый сервер на базе Postfix с авторизацие пользователей в OpenLdap или MySQL на Ваш выбор. Рассмотрим оба вида авторизации и соответствующие им настройки. Также я представлю скрипты для облегчения администрирования юзеров, доменов, алиасов и действующих на них ограничений в OpenLdap. Есть веб-морда для управления виртуальными пользователями Postfix, которые хранятся в OpenLDAP OLPostfix
Тестовый сервер настраивался на FreeBSD 7.0. Для работы на понадобятся следующие пакеты. Значение версий не имеют значения, но возможны некоторые изменения:


Port:   dovecot-1.0.10
Path:   /usr/ports/mail/dovecot
Info:   Secure and compact IMAP and POP3 servers

Port:   clamav-0.92.1_1
Path:   /usr/ports/security/clamav
Info:   Command line virus scanner written entirely in C

Port:   clamsmtp-1.9
Path:   /usr/ports/security/clamsmtp
Info:   An ClamAV anti-virus SMTP Filter

Port:   openldap-server-2.3.41
Path:   /usr/ports/net/openldap23-server
Info:   Open source LDAP server implementation

Port:   postfix-2.3.13,1
Path:   /usr/ports/mail/postfix23
Info:   A secure alternative to widely-used Sendmail

Port:   p5-Mail-SpamAssassin-3.2.3
Path:   /usr/ports/mail/p5-Mail-SpamAssassin
Info:   A highly efficient mail filter for identifying spam

Port:   mysql-server-4.0.27
Path:   /usr/ports/databases/mysql40-server
Info:   Multithreaded SQL database (server)

Также для работы postfix и dovecot мы будем использовать TLS, поэтому пакет openssl должен быть установлен.

Хотелось бы сделать уточнение, я бы выбрал авторизацию через LDAP по причине:
- вся адресная книга просматривается через стандартный Outlook в Windows XP, всего лишь необходимо подключиться к LDAP серверу
- при используемой схеме (postfix.schema - самописная)  практически все поля адресной книги в Outlook заполнены, что позволяет использовать данную конфигурацию в большой организации
- репликация  OpenLdap в случае организации отказоустойчивой конфигурации с несколькими серверами.

Поэтому рассмотрим первую конфигурацию с авторизацией в OpenLdap. Приступим :)

Первое что необходимо установить это OpenLdap, вся установка и настройка этого пакета выходит за рамки статьи, думаю, что в интернете Вы сможете найти немало статей. Я всего лишь приведу список схем, которые необходимо подключить в файле slpad.conf:


include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/pureftpd.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/misc.schema
include         /usr/local/etc/openldap/schema/nis.schema
include         /usr/local/etc/openldap/schema/openldap.schema
include         /usr/local/etc/openldap/schema/postfix.schema

Последняя схема postfix.schema является самописной, в конце статьи прикреплёны архивы необходимые для работы с OpenLdap и эффективного управления записями.

После того как OpenLdap сервер настроен и прослушивается порт 389, можно производить настройку Dovecot.
Dovecot — свободный IMAP- и POP3-сервер, разрабатываемый в расчёте на безопасность. Особенности сервера Поддержка форматов почтовых ящиков mbox и Maildir, высокое быстродействие благодаря индексации содержимого ящиков. Честно говоря я очень доволен этой прогой!
Документация по Dovecot после его установки распологается в /usr/local/share/doc/dovecot или на сайте http://wiki.dovecot.org. Итак приступим.Собираем пакет из портов со следующими опциями:

 
 [X] KQUEUE    kqueue(2) support                 
 [X] SSL       SSL support                       
 [X] POP3      POP3 support                      
 [X] LDA       LDA support                       
 [X] LDAP      OpenLDAP support                  
 [X] MYSQL     MySQL support  

                 

После сборки и установки пакета идём в /usr/local/etc и выполняем команды:


cp ./dovecot-example.conf dovecot.conf
cp ./dovecot-ldap-example.conf  dovecot-ldap.conf

И приступаем к редактированию конфига dovecot-ldap.conf:


hosts= ip_server_openldap
auth_bind= no
base= o=Reiffaisen
scope=subtree
user_attrs=homeDirectory=home,uidNumber=uid,gidNumber=gid
user_filter=(&(objectClass=posixAccount)(mail=%u))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=posixAccount)(mail=%u))
default_pass_scheme = LDAP-MD5
ldap_version=3

Далее редактируем конфигурацию dovecot.conf. Советую проверить все пути и наличие сертификатов, так как в данной конфигурации поддерживается TLS. В рабочей конфигурации отключите всю отладку, т.е всё что касается опций debug:


#--------Базовая дирректория
base_dir = /var/run/dovecot/

#--------Поддерживаемые протоколы
protocols = imap pop3 pop3s imaps

#--------Описание протокола
protocol imap  {
    listen=IP:143
    ssl_listen=IP:993
    ssl_cert_file=/usr/local/etc/postfix/cert/imap_cert.pem
    ssl_key_file=/usr/local/etc/postfix/cert/imap_key.pem
}

protocol pop3  {
    listen=IP:110
    ssl_listen=IP:995
    ssl_cert_file=/usr/local/etc/postfix/cert/pop3d.pem
    ssl_key_file=/usr/local/etc/postfix/cert/pop3d.pem
}


#--------Ведение логов
log_path=/var/log/dovecot.log
info_log_path=/var/log/dovecot-info.log
syslog_facility=mail
mail_debug=yes
mail_log_prefix="%Us(%u):"
#mail_log_max_lines_per_sec=10
verbose_proctitle=yes
auth_debug=yes
auth_debug_passwords=yes
auth_verbose=yes
verbose_ssl=yes

#--------SSL
disable_plaintext_auth = no
shutdown_clients = yes
ssl_disable=no
ssl_cert_file=/usr/local/etc/postfix/cert/postfix_public_cert.pem
ssl_key_file=/usr/local/etc/postfix/cert/postfix_private_key.pem
#ssl_ca_file = /usr/local/etc/postfix/cert/cakey.pem
ssl_verify_client_cert = yes
ssl_parameters_regenerate = 0


#---------Управление процессами авторизации
login_dir = /var/run/dovecot/login
login_user = dovecot
login_process_size = 10
#Обрабатывать каждое соединение своим процессом
login_process_per_connection = yes
#Один процесс занимает около 4 метров, поэтому ориентируйтесь на ОЗУ
login_processes_count = 5
login_max_processes_count = 90
login_max_connections = 180
#Приветствие
login_greeting = Hello users
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s


#Пространство default, не трогать!
namespace private {
    separator=/
    prefix=
    inbox=yes
}

#Сама папка не работает, необходимо создать подпапку
#Формат: .ИМЯ_ПАПКИ (не забудте назначить правильного владельца)
namespace public {
    separator= /
    prefix="pub_"
    location= maildir:/var/mail/vhost/%d/public/
    hidden=no
    inbox=no
}

#----------Chroot
#Прцессы авторизации
login_chroot=yes
#Mail процессы
valid_chroot_dirs=/var/mail/vhost

mail_location=maildir:/var/mail/vhost/%h:INBOX=/var/mail/vhost/%h:CONTROL=/var/mail/vhost/%h
mail_extra_groups = mail
mail_full_filesystem_access = no
mmap_disable = yes
mmap_no_write = yes
fsync_disable = yes
lock_method = fcntl
#mail_drop_priv_before_exec = no
first_valid_uid = 1005
last_valid_uid = 1010
first_valid_gid = 1005
last_valid_gid = 1010
max_mail_processes = 200
mail_process_size = 25
#mail_max_keyword_length = 50
#mail_cache_fields =
#mail_never_cache_fields =
#mail_cache_min_mail_count = 0
#mailbox_idle_check_interval = 30
#mail_save_crlf = no
maildir_stat_dirs = no
#YES если параметр maildir_copy_with_hradlinks=yes
dotlock_use_excl=yes
maildir_copy_with_hardlinks = yes
maildir_copy_preserve_filename = yes


#----------Настройка протоколов
protocol imap {
  login_executable = /usr/local/libexec/dovecot/imap-login
  mail_executable = /usr/local/libexec/dovecot/imap
  imap_max_line_length = 65536
  mail_plugin_dir = /usr/local/lib/dovecot/imap
  imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
  mail_plugins=acl
}

protocol pop3 {
  login_executable = /usr/local/libexec/dovecot/pop3-login
  mail_executable = /usr/local/libexec/dovecot/pop3
  pop3_no_flag_updates = no
  pop3_enable_last = no
  pop3_reuse_xuidl = no
  pop3_lock_session = no
  pop3_uidl_format = %08Xu%08Xv
  pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
  mail_plugin_dir = /usr/local/lib/dovecot/pop3
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

protocol lda {
  postmaster_address = postmaster@oskol.impexbank.ru
  mail_plugin_dir = /usr/local/lib/dovecot/lda
  sendmail_path = /usr/local/sbin/sendmail
  auth_socket_path = /var/run/dovecot/auth-master
  mail_plugins=acl
}

#---------Процессы авторизации
auth_executable = /usr/local/libexec/dovecot/dovecot-auth
auth_process_size = 6
auth_cache_size = 0
auth_cache_ttl = 3600
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
#auth_username_translation =
#auth_username_format =%Lud
#auth_master_user_separator =
#auth_anonymous_username = anonymous
auth_worker_max_count = 30


#---------Авторизация для pop, imap и smtp
auth default {
    #Пользователь который имеет доступ к базе с паролями
    user=postfix

    #SSL
    ssl_require_client_cert=no
    ssl_username_from_cert=no

    #Механизмы
    mechanisms = plain login

    #Извлечение пароля
    passdb ldap {
        args = /usr/local/etc/dovecot-ldap.conf
    }

    #Извлечение пользовательских данных
    userdb ldap {
        args = /usr/local/etc/dovecot-ldap.conf
    }

    #Сокет для авторизации в postfix
    socket listen {
        client {
            path=/var/spool/postfix/private/auth
            mode=0660
            user=postfix
            group=postfix
        }
    }
}


plugin {
#    acl=vfile:/etc/dovecot-acls
}

С настройкой Dovecot закончили :), далее необходимо поставить и настроить антивирус. У нас будет использоваться Clamav, поэтому приступим. Собираем пакет clamav со следующими опциями:


[X] ARC           Enable arch archives support            
[X] ARJ           Enable arj archives support               
[X] LHA           Enable lha archives support               
[X] UNRAR         Enable rar archives support              
[X] MILTER        Compile the milter interface              
[X] LDAP          libmilter was built with LDAP             
[X] ICONV         Enable ICONV support                      
[X] STDERR        Print logs to stderr instead of stdout 

 

Далее устанавливаем пакет clamsmtp и собираем его со следующими опциями:


[X] LOCAL_CLAMAV        RUN_DEPEND on security/clamav  



После установки переходим в каталог /usr/local/etc и выполняем команды:


cp ./clamd.conf.default clamd.conf
cp ./clamsmtpd.conf-sample clamdsmtpd.conf

И редактируем файл clamsmtpd.conf, обязательно проверьте все пути:


OutAddress: 10025
MaxConnections: 200
TimeOut: 180
KeepAlives: 0
Listen: 127.0.0.1:10023
ClamAddress: /var/run/clamav/clamd
Header: X-Virus-Scanned: ClamAV using ClamSMTP
TempDirectory: /tmp
Action: drop
Quarantine: on
User: clamav
VirusAction: /var/script/virus_action.sh

VirusAction: /var/script/virus_action.sh - данный скрипт можно взят отсюда /usr/local/share/examples/clamsmtp.

Приступаем к редактированию файла clamd.conf, обязательно проверьте все пути:


LogFile /var/log/clamav/clamd.log
LogFileUnlock no
LogFileMaxSize 2M
LogTime yes
LogClean yes
LogSyslog yes
LogFacility LOG_MAIL
LogVerbose yes
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /var/tmp
DatabaseDirectory /var/db/clamav
LocalSocket /var/run/clamav/clamd
FixStaleSocket yes
#TCPSocket 3310
#TCPAddr 127.0.0.1
#MaxConnectionQueueLength 30
StreamMaxLength 1000M
#StreamMinPort 30000
#StreamMaxPort 32000
MaxThreads 20
ReadTimeout 120
IdleTimeout 60
MaxDirectoryRecursion 30
FollowDirectorySymlinks yes
FollowFileSymlinks yes
SelfCheck 1800
VirusEvent /bin/echo "Virus found: %v" >> /var/log/clamav/virus.log
User clamav
AllowSupplementaryGroups yes
#ExitOnOOM yes
#Foreground yes
Debug no
LeaveTemporaryFiles yes
DetectPUA yes
AlgorithmicDetection yes
ScanPE yes
ScanELF yes
DetectBrokenExecutables yes
ScanOLE2 yes
ScanPDF yes
ScanMail yes
MailFollowURLs no
MailMaxRecursion 128
PhishingSignatures yes
PhishingScanURLs yes
PhishingRestrictedScan yes
PhishingAlwaysBlockSSLMismatch no
PhishingAlwaysBlockCloak no
ScanHTML yes
ScanArchive yes
ArchiveMaxFileSize 0
ArchiveMaxRecursion 50
ArchiveMaxFiles 2000
ArchiveMaxCompressionRatio 0
ArchiveLimitMemoryUsage yes
ArchiveBlockEncrypted no
ArchiveBlockMax no

Далее мы настроим спам-фильтер, все оценки спама я приводить не буду, потому что это довольно таки тонкие настройки и каждый сам их для себя сделает, мы только установим и свяжем спам-фильтер с Postfix'ом.
Отредактируем файл /usr/local/etc/mail/local.cf:


# lock_method flock
required_score 5.0
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
lock_method flock
bayes_path /var/sa_bayes/bayes
bayes_min_spam_num 50
bayes_min_ham_num 50
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
ok_locales en ru
ok_languages en ru

Устанавливаем Postfix со следующими опциями:


[X] PCRE      Perl Compatible Regular Expressions              
[X] SASL2     Cyrus SASLv2 (Simple Auth. and Sec. Layer)        
[X] DOVECOT   Dovecot SASL authentication method                
[X] TLS       Enable SSL and TLS support                        
[X] MYSQL     MySQL maps (choose version with WITH_MYSQL_VER)   
[X] OPENLDAP  OpenLDAP maps (choose ver. with WITH_OPENLDAP_VER)
[X] VDA       VDA (Virtual Delivery Agent)                      
[X] TEST      SMTP/LMTP test server and generator   

Опцию [X] SASL2     Cyrus SASLv2 (Simple Auth. and Sec. Layer) можно и не использовать, так как у нас аутентификация будет производится через Dovecot. Это для тех кто захочет поэкспериментировать с SASL2 :)

Далее необходимо создать в каталоге с Postfix'ом  дирректории ldap, mysql, conf, права на дирректории определяете сами, в соответствии со своей политикой безопасности.

Приступаем к редактированию файла /usr/local/etc/postfix/main.cf. Обязательно проверьте все пути и наличие сертификатов, так как приведённая конфигурация с поддержкой TLS:


#-------Временные интервалы (задержки). Все задержки в соответствии с RFC 2821
smtpd_timeout=5m
smtpd_starttls_timeout=5m
smtp_mail_timeout=5m
smtp_rcpt_timeout=5m
smtp_data_init_timeout=2m
smtp_data_xfer_timeout=3m
smtp_data_done_timeout=10m
maximal_queue_lifetime=4d
bounce_queue_lifetime=4d
queue_run_delay=30m
minimal_backoff_time=3h
maximal_backoff_time=5h


#-------Диспетчер очередей QMGR
allow_min_user=no
hash_queue_depth=1
hash_queue_names=deferred, defer


#------Сетевые настройки
inet_interfaces=$myhostname, localhost
inet_protocols=ipv4
mail_name=Sendmail
mail_release_date=20081113
mail_version=1.8.6
mydestination=$myhostname, localhost, localhost.$myhostname, localhost.$mydomain, $mydomain
mydomain=mydomain.ru
myorigin=$mydomain
myhostname=unix.mydomain.ru
mynetworks=127.0.0.0/24
smtp_helo_name=$myhostname
smtpd_banner=$mydomain ESMTP $mail_name ($mail_version)



#-----SMTPD Ограничения

#Классы ограничений
smtpd_restriction_classes=
 MyUserSender
 
#Отправка только от доменных юзеров
MyUserSender=
 permit_mynetworks
 reject_unauthenticated_sender_login_mismatch
 reject_non_fqdn_sender
 reject_unlisted_sender
 reject_unverified_sender 
 permit_sasl_authenticated
 reject

#Не проверять существование отправителей для следующих 


#Ограничения на команду HELO/EHLO
smtpd_helo_restrictions=
 permit_mynetworks
 check_helo_access pcre:$config_directory/conf/pcre_check_helo_access
 reject_invalid_helo_hostname
 #Раскоментить, с включённым параметром неправильно работает Outlook
 #reject_non_fqdn_helo_hostname
 #reject_unknown_helo_hostname


#Клиентское соединение
smtpd_client_restrictions=
 permit_mynetworks
 # IP or network. Если здесь вбит адрес, то все ограничения ниже не действуют
 check_client_access ldap:$config_directory/ldap/virtual_sender_access.cf
 permit_sasl_authenticated
 permit_tls_all_clientcerts

 
#Ограничения на команду 'MAIL FROM'
smtpd_sender_restrictions=
 permit_mynetworks
 # Mail or domain. Если здесь вбит адрес, то все ограничения ниже не действуют
 check_sender_access ldap:$config_directory/ldap/virtual_sender_access.cf
 reject_non_fqdn_sender
 reject_unknown_sender_domain
 reject_unlisted_sender
 reject_unverified_sender
 check_sender_access ldap:$config_directory/ldap/virtual_myuser_sender.cf
 

#Ограничения на команду 'RCPT TO'
smtpd_recipient_restrictions=
 permit_mynetworks
 reject_non_fqdn_recipient
 reject_unknown_recipient_domain
 reject_unlisted_recipient
 reject_unverified_recipient
 permit_sasl_authenticated
 reject_unauth_destination


#Ограеничения на команду 'DATA'
smtpd_data_restrictions=
 permit_mynetworks
 reject_multi_recipient_bounce
 reject_unauth_pipelining


#Ограничения на команду ETRN
smtpd_etrn_restrictions=
 permit_mynetworks
 reject

strict_rfc821_envelopes=yes
smtpd_helo_required=yes
smtpd_reject_unlisted_sender=yes
smtpd_reject_unlisted_recipient=yes
disable_vrfy_command=yes
smtpd_delay_reject=yes
allow_percent_hack=no
address_verify_sender= <>
address_verify_map=btree:$config_directory/conf/verify
address_verify_negative_cache=yes
address_verify_poll_count=1
address_verify_positive_expire_time=31d
address_verify_positive_refresh_time=7d
address_verife_negative_expire_time=3d
address_verify_negative_refresh_time=2h
allow_untrusted_routing=no
resolve_null_domain=no
resolve_numeric_domain=no
smtpd_recipient_limit=1000
smtpd_recipient_overshoot_limit=$smtpd_recipient_limit
smtp_always_send_ehlo=yes
smtp_never_send_ehlo=no
smtp_quote_rfc821_envelope=yes


#-------Проверки
header_checks=pcre:$config_directory/conf/header_check
body_checks=pcre:$config_directory/conf/body_check
mime_header_checks=pcre:$config_directory/conf/mime_check
nested_header_checks=pcre:$config_directory/conf/nested_check
body_checks_size_limit=102400
message_size_limit=4194304
header_size_limit=102400


#------Фильтры
content_filter=clamsmtpd:[127.0.0.1]:10023
receive_override_options=no_address_mappings


#------Системные
default_process_limit=500
max_idle=100s
max_use=200
default_privs=nobody
mail_owner=postfix
#Время перезапуска демонов
daemon_timeout=60m
allow_mail_to_commands=alias,forward,include
allow_mail_to_files=alias,forward,include
debug_peer_level=2
#Список IP или файлы type:table
debug_peer_list=
#Файл ответа MAILER-DAEMOND
bounce_template_file=$config_directory/bounce.cf.default
hopcount_limit=50
notify_classes=resource, software


#--------Аутентификация
smtpd_sasl_auth_enable=yes
smtpd_sasl_security_options=noanonymous, mutual_auth, noactive, nodictionary
broken_sasl_auth_clients=yes
smtpd_sasl_path=private/auth
smtpd_sasl_type=dovecot
smtpd_sasl_authenticated_header=yes
smtpd_sasl_exceptions_networks=$mynetworks


#--------Защита TLS
#Не анонсировать возможность авторизации, если не используется TLS
smtpd_tls_auth_only=no
smtpd_use_tls=yes
smtpd_tls_key_file=$config_directory/cert/postfix_private_key.pem
smtpd_tls_cert_file=$config_directory/cert/postfix_public_cert.pem
smtpd_tls_CApath=$config_directory/cert/
#Поменять на 0
smtpd_tls_loglevel=2
tls_random_source=dev:/dev/urandom
smtpd_tls_received_header=yes
smtpd_tls_session_cache_database=btree:/var/tmp/smtpd_scache
smtpd_tls_session_cache_timeout=12h
smtpd_sasl_tls_security_options=$smtpd_sasl_security_options
#В yes, если вы хотите чтобы все использовали tls
smtpd_enforce_tls=no
smtpd_starttls_timeout=300s



#-------Пути
queue_directory=/var/spool/postfix
command_directory=/usr/local/sbin
daemon_directory=/usr/local/libexec/postfix
newaliases_path=/usr/local/bin/newaliases
sendmail_path=/usr/local/sbin/sendmail
config_directory=/usr/local/etc/postfix
mail_spool_directory=/var/mail
mailq_path=/usr/local/bin/mailq
html_directory=no
manpage_directory=/usr/local/man
sample_directory=/usr/local/etc/postfix
readme_directory=no
alias_database=hash:$config_directory/conf/aliases
alias_maps=hash:$config_directory/conf/aliases



#-------Управление соединениями
qmgr_message_active_limit=20000
qmgr_message_recipient_limit=20000
qmgr_message_recipient_minimum=10
smtpd_client_connection_rate_limit=20
smtpd_client_new_tls_session_rate_limit=20
smtpd_client_connection_count_limit=5
smtpd_client_message_rate_limit=6
#smtpd_client_recipient_rate_limit=
connection_cache_protocol_timeout=5s
connection_cache_status_update_time=600s
anvil_rate_time_unit=1m
anvil_status_update_time=60s
#Исключения, на кого не действуют ограничения
smtpd_client_event_limit_exceptions=$mynetworks



#-------Обработка ошибок и логи
smtpd_error_leep_time=0
smtpd_soft_error_limit=5
smtpd_hard_error_limit=10
syslog_name=postfix
syslog_facility=mail
backwards_bounce_logfile_compatibility=yes
helpful_warnings=yes
invalid_hostname_reject_code=501
non_fqdn_reject_code=504
plaintext_reject_code=450
reject_code=554
relay_domains_reject_code=554
unknown_address_reject_code=450
unknown_hostname_reject_code=450
unknown_client_reject_code=450
unknown_local_recipient_reject_code=550
unknown_relay_recipient_reject_code=550
unknown_virtual_alias_reject_code=550
unknown_virtual_mailbox_reject_code=550
unverified_recipient_reject_code=450
unverified_sender_reject_code=450



#----------Разное
#Добавлять заголовок X-Original-To
enable_original_recipient=yes
soft_bounce = no
setgid_group = maildrop



#-----Виртуальные домены и юзеры в MySQL
#-----Для работы с локальными пользователями использовать алиасы
virtual_transport=virtual
virtual_mailbox_base=/var/mail/vhost
virtual_mailbox_domains=ldap:$config_directory/ldap/virtual_domain.cf
virtual_minimum_uid=100
virtual_uid_maps=ldap:$config_directory/ldap/virtual_uid.cf
virtual_gid_maps=$virtual_uid_maps
virtual_mailbox_maps=ldap:$config_directory/ldap/virtual_mailbox_recipient.cf
virtual_alias_maps=ldap:$config_directory/ldap/virtual_aliases.cf
virtual_mailbox_limit=100000000
mailbox_transport=virtual
virtual_mailbox_limit_maps=ldap:$config_directory/ldap/virtual_quota.cf
virtual_mailbox_limit_inbox=no
virtual_mailbox_limit_override=yes
virtual_maildir_extended=yes
virtual_overquota_bounce=yes
virtual_maildir_limit_message="Sorry, maximum quota reached!"
virtual_create_maildirsize=yes
smtpd_sender_login_maps=ldap:$config_directory/ldap/virtual_sender_login.cf
transport_maps=ldap:$config_directory/ldap/transport.cf

И далее редактируем файл /usr/local/etc/postfix/master.cf:


# ==============================================================================================
# service    type      private | unpriv |  chroot  wakeup |  maxproc | command + args
#                 (yes)      (yes)     (yes)     (never)            (100)
# ==============================================================================================
#antivirus
clamsmtpd   unix       -       -    n - 16     smtp
    -o smtp_data_done_timeout=1200s
    -o disable_dns_lookups=yes
    -o smtp_send_xforward_command=yes
    -o max_use=50
127.0.0.1:10025   inet       n       -    n - -    smtpd
    -o mynetworks=127.0.0.0/8
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_class=
    -o smtpd_client_restrictions=permit_mynetworks,reject
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_data_restrictions=reject_unauth_pipelining
    -o smtpd_end_of_data_restrictions=
    -o strict_rfc821_envelopes=yes
    -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,no_milters
    -o local_header_rewrite_clients=
    -o smtpd_use_tls=no


#SMTP
smtp          inet          n         -          n       -       -          smtpd
    -o content_filter=spam:dummy
spam      unix        -       n    n   -   -      pipe
 flags=Rq user=spamd argv=/usr/local/bin/spamc -u spamd -e /usr/local/sbin/sendmail -f $sender $recipient


#submission inet n       -       n       -       -       smtpd
#  -o smtpd_enforce_tls=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject


#TLS
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#628      inet  n       -       n       -       -       qmqpd

etrn-only unix  - - n - - smtp
pickup    fifo  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay     unix  -       -       n       -       -       smtp
  -o fallback_relay=
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  - - n - 1 scache

Для нормальной работы создаём два файла в соответствии с конфигурацией main.cf:


mime_header_checks=pcre:$config_directory/conf/mime_check
check_helo_access pcre:$config_directory/conf/pcre_check_helo_access

Файл mime_check:


/name=\"(.*)\.+?(exe|dll|vbs|pif|scr|bat|cmd|com|cpl|bas|vbe
    |vb|reg|prg|pcd|ops|hlp|grp|fxp|emf|inf|ins|js
    |jse|lnk|mda|mdb|mde|mdw|mdt|mdz|msc|msi|msp|mst
    wmf|wsc|wsf|wsh|mim|b64|bhx|hqx|lha|cab|ole|bin)+?(.*)*?\"$/x   REJECT Prohibit type file $1.$2.$3

Файл pcre_check_helo_access:


/^\[11\.176\.3\.56\]$/    550 Don't use my IP address
/^unix\.oskol\.impexbank\.ru$/  550 Don't use my IP address
/^11\.176\.3\.56$/    550 Don't use my IP address

После всех произведённых настроек создаём в каталоге /usr/local/etc/postfix/ldap файлы с настройками для поиска в OpenLDAP необходимых данных. Имена файлов не имеют никакого значения, при смене имени, измените имя файла в main.cf:

1) Файлы transport.cf:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vto=vTransport,o=Reiffaisen
query_filter= (&(vtAddress=%s)(vtStatus=1))
result_attribute= vtTransport
result_format= %s

2) Файл virtual_aliases.cf - поиск алиасов:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vao=vAlias,o=Reiffaisen
query_filter= (&(vaName=%s)(vaStatus=1))
result_attribute= vaMail
result_format= %s

3) Фйал virtual_domain.cf - поиск доменов для которых наш почтовый сервер является конечным. Список доменов должен быть уникальным и все домены не должны присутствовать в параметре mydestination:


bind=no
server_host=ip_ldap_server
server_port=389
search_base=vdo=vDomain,o=Reiffaisen
query_filter=(&(vdName=%s)(vdStatus=1))
result_attribute=vdName
result_format=%s
version=2
scope=sub

4) Файл virtual_mailbox_recipient.cf - выбор пути к почтовому ящику пользователя:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vuo=vUsers,o=Reiffaisen
query_filter= (&(mail=%s)(vuActive=1)(vuAuth=1))
result_attribute= homeDirectory
result_format= %s

5) Файл virtual_myuser_sender.cf[/b] - поиск пользователей для параметра smtpd_sender_login_mapsх:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vdo=vDomain,o=Reiffaisen
query_filter=(&(vdName=%s)(vdStatus=1))
result_attribute=vdClasses
result_format=%s

6) Файл virtual_quota.cf - определение квоты на почтовый ящик для каждого пользователя:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vuo=vUsers,o=Reiffaisen
query_filter= (&(mail=%s)(vuActive=1)(vuAuth=1))
result_attribute= vuQuota
result_format= %s

7) Файл virtual_sender_access.cf - поиск ограничений:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vruo=vRRU,o=Reiffaisen
query_filter= (&(rrKey=%s)(rrStatus=1))
result_attribute= rrValue
result_format= %s

8) Фйал virtual_sender_login.cf - получение логина пользователя, который может отправлять почту. Так как у нас будет n-количество доменов, то в качестве имени выбираем e-mail пользователя:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vuo=vUsers,o=Reiffaisen
query_filter= (&(mail=%s)(vuActive=1)(vuAuth=1))
result_attribute= mail
result_format= %s

9) Файл virtual_uid.cf - получение списка uid виртуальных юзеров:


bind= no
server_host= ip_ldap_server
server_port= 389
search_base= vuo=vUsers,o=Reiffaisen
query_filter= (&(mail=%s)(vuActive=1)(vuAuth=1))
result_attribute= uidNumber
resulet_format= %s

Все основные файлы настроили, это самое главное :). Далее с помощью прилагаемого архива 'Скрипты для работы с OpenLDAP', которые можно скачать в конце статьи, Вы добавляете всю необходимую информацию в OpenLDAP и проверяете файлы, которые мы создали выше с помощью следующей команды (man postmap):


postmap -q 'key - то что необходимо найти' ldap:путь к каждому описанному файлу

Хотелось бы сделать уточнения, прежде чем пользоваться скриптами, обязательно скачайте архив со схемой и внесите два файла top.ldif и organization.ldif в LDAP с помощью следующих команд (порядок следования файлов имеет значение!!!):


ldapadd -x -W -D "rootdn(берётся из конфига slapd.conf)" -f /путь к файлу/organization.ldif

ldapadd -x -W -D "rootdn(берётся из конфига slapd.conf)" -f /путь к файлу/top.ldif

Если Вы не хотите использовать скрипты, то Вам необходимо изучить файлы, которые находятся в архиве 'Схема Postfix для OpenLDAP' и использовать команду ldapadd, обязательно почитайте следующие маны (ldapadd, ldapsearch, ldapdelete, ldapmodify).



Всё с настройкой Postfix в связке с OpenLDAP закончили, далее приступим к настройке Postfix в связке с MySQL, для этого создадим в каталоге с Postfix дирректорию mysql(права на каталог определяйте в соответствии со своей политикой безопасности):


mkdir /usr/local/etc/postfix/mysql

После создания каталога приступаем к созданию файлов с помощью которых будем извлекать информацию из MySQL.
Имена файлов не имеют никакого значения, при смене имени, измените имя файла в main.cf:

1) Файлы transport.cf:


user=postfix
password=test
dbname=mail
table=virtual_transport
select_field=transport
where_field=value
additional_conditions=AND active='1'
hosts=localhost

2) Файл virtual_aliases.cf - поиск алиасов:


user=postfix
password=test
dbname=mail
table=virtual_aliases
select_field=virtual_user_email
where_field=alias
hosts=localhost

3) Фйал virtual_domain.cf - поиск доменов для которых наш почтовый сервер является конечным. Список доменов должен быть уникальным и все домены не должны присутствовать в параметре mydestination:


user=postfix
password=test
dbname=mail
table=virtual_domain
select_field=n_domain
where_field=n_domain
additional_conditions=AND d_active='1'
hosts=localhost

4) Файл virtual_mailbox_recipient.cf - выбор пути к почтовому ящику пользователя:


user=postfix
password=test
dbname=mail
table=virtual_users
select_field=virtual_mailbox
where_field=email
additional_conditions=and active='1'
hosts=localhost

5) Файл virtual_myuser_sender.cf[/b] - поиск пользователей для параметра smtpd_sender_login_mapsх:


user=postfix
password=test
dbname=mail
table=virtual_domain
select_field=classes
where_field=n_domain
additional_conditions=and d_active='1'
hosts=localhost

6) Файл virtual_quota.cf - определение квоты на почтовый ящик для каждого пользователя:


user=postfix
password=test
dbname=mail
table=virtual_users
select_field=quota
where_field=email
additional_conditions=and active='1'
hosts=localhost

7) Файл virtual_sender_access.cf - поиск ограничений:


user=postfix
password=test
dbname=mail
table=virtual_sender_access
select_field=s_value
where_field=s_key
additional_conditions=and s_active='1'
hosts=localhost

8) Фйал virtual_sender_login.cf - получение логина пользователя, который может отправлять почту. Так как у нас будет n-количество доменов, то в качестве имени выбираем e-mail пользователя:


user=postfix
password=test
dbname=mail
table=virtual_users
select_field=email
where_field=email
additional_conditions=and active='1'
hosts=localhost

9) Файл virtual_uid.cf - получение списка uid виртуальных юзеров:


user=postfix
password=test
dbname=mail
table=virtual_users
select_field=virtual_uid
where_field=email
hosts=localhost

:


Настройка MySQL сервера выходит за рамки данной статьи, я думаю Вы найдёте достаточное количество статей по настройке сервера MySQL.

Далее нам необходимо произвести небольшие изменения в конфигурационном файле main.cf Postfix'a :)
Всего лишь необходимо заменить:


ldap:

на


mysql:

Т.е мы практически ничего не изменили в конфигурации, поменялось только место из которого извлекаются все данные :)


Изменим в файле dovecot.conf следующие параметры:



    #Извлечение пароля
    passdb ldap {
        args = /usr/local/etc/dovecot-ldap.conf
    }

    #Извлечение пользовательских данных
    userdb ldap {
        args = /usr/local/etc/dovecot-ldap.conf
    }

на


    #Извлечение пароля
    passdb sql {
  args = /usr/local/etc/dovecot-sql.conf
    }
    
    #Извлечение пользовательских данных
    userdb sql {
  args = /usr/local/etc/dovecot-sql.conf
    }

После изменения файла dovecot.conf выполняем следующую команду:


cp /usr/local/etc/dovecot-sql-example.conf /usr/local/etc/dovecot-sql.conf

И отредактируем файл dovecot-sql.conf:


driver = mysql
connect = host=localhost dbname=mail user=postfix password=test
default_pass_scheme = PLAIN-MD5
password_query = SELECT userpassword AS password FROM virtual_users 
WHERE email='%u' AND active='1' AND auth='1'
user_query = SELECT virtual_mailbox AS home, virtual_uid AS uid, virtual_gid AS gid 
FROM virtual_users WHERE email = '%u' AND active='1' AND auth='1'

С Dovecot закончили :)

Всё у нас получилась полностью рабочая конфигурация :)




Хотелось бы сделать несколько уточнений:

1) При данной конфигурации Postfix не возможности отправлять почту локальным пользователя, поэтому как выход могу посоветовать сделать alias на локальных пользователей!

2) Обязательно посмотрите документацию к Postfix она находится в пакете с Postfix - папка html.

3) Таблицы для работы с MySQL прикреплены в конце статьи, измените их в соответствии со своими нуждами.
  В данной конфигурации таблицы были отредактированы, поэтому советую проверять все файлы, которые    работают с MySQL.


4) В конфигурации Postfix отсутствую чёрные списки для спам доменов, поэтому добавте их в соответствии с вашими желаниями

5) Приведённые выше настройки являются тестовыми, поэтому возможно в реальной работе Вам необходимо будет что-то изменить.

6) Управление очередью Postfix осуществляется с помощью команд 'mailq' и 'postsuper'. Почитайте man по этим командам. Пример:
Удаление определённой очереди:


postsuper -d норер_очереди определённый с помощью команды mailq

Удаление всех писем из очереди:


postsuper -d ALL

7) Есть такая ещё полезная команда как 'qshape'. Почитайте обязательно man. Показывает письма по очередям и их время нахождения в очереди.
Пример:


unix# qshape
                                        T  5 10 20 40 80 160 320 640 1280 1280+
                                  TOTAL  0  0  0  0  0  0   0   0   0    0     0

Удачи!!




Список прилагаемых файлов:

Схема данных и примеры ldif файлов.
файл скачан размер размещён примечание
schema_file_openldap.7z
2057 3kb 2009-01-22 Схема и файлы для создания базы в OpenLDAP

-------------------

Скрипты для работы с OpenLDAP.
файл скачан размер размещён примечание
script_ldap.7z
1529 4.8kb 2009-01-22 Скрипты для управления данными в OpenLDAP для Postfix

-------------------

Таблицы для связки Postfix с Mysql.
файл скачан размер размещён примечание
virtual_mailbox_domains.tar
1656 10kb 2009-01-31 Таблицы для MySQL



размещено: 2009-01-16,
последнее обновление: 2009-03-20,
автор: atrium


ADvise, 2009-02-13 в 11:09:48

Статья безусловно полезная, не учитывая конечно такие моменты, что опытным пользователям она может не пригодится, а начинающим нужны пояснения по LDAP. И просто в целом, все сжато.
Другой вопрос, можно ли прикрутить postfixadmin?

atrium, 2009-02-14 в 15:12:26

А какие именно пояснения по LDAP? Конфиг slapd?
Я postfixadmin не прикручивал, хочю написать типа postfixadmin только для работы с OpenLDAP сервером?

atrium, 2009-02-14 в 15:18:23

А чего по LDAP нужно,  slapd.conf выложить? Схема написана, скрипты есть изучить только формат ldif и пользуйся на здоровье!
Postfixadmin не прикручивал! Хочу написать аналог postfixadmin только для работы с OpenLDAP!

Почему статья сжатая, конфиги практически все представлены, осталось изучить и самостоятельно освоить!

Advise, 2009-02-15 в 20:12:00

1. нужна была ссылка на статью для создание сертификатов.
 пришлось потратить время.
2. не понятно что с smtpd. где его конф? и что там написано, и если мы его не используем, чего тогда postfix ругается что postfix/smtpd: ldap не известен.
3. в целом конечно прикольно, так, взять статью как идею, установить софт, скопировать конфы, а потом голову ломать, почему не работает. Тогда делай проще, "статья - скручиваем dovecot + postfix + LDAP". Тупо. и все. в тексте пишим. "вот тут лежат дистрибутивы. Конфы с каментами. Желаю удачи."
я на LDAP три дня убил, пока понял, что l1523 это лицей 1523, а не одинадцать тысяч пятьсот двадцать три. Конечно, спасибо, ибо если бы не ваше описание головы, я бы не вкурил LDAP.
25. с каким кругом пользователей вы делитесь своей статьей? с пропитыми админами? дан наф им надо, они сидят на своих прокуреных МТА, которые крутятся годами, и лишь фиксят недоделки. Или может для чайников? Вот никак рука не поднимается поставить оценкку +10. +3.. с натяжкой.
100. чисто от себя. уже больше года на твоем сайте (lissyara) читаю статьи и делаю по ним. и знаешь что заметил, чем новее статья, тем больше ошибок и недоговорок.
раньше ты писал лучше, более подробно и понятливее. Для тебя может это и просто и понятно, но к примеру, сможешь ли ты установить за два часа расходомер на насос с агресивной средой и подцепить к КПК с прошивкой для этого дела (самому и прошить придется). Уверен, убьешь много времени на поиск инфы. Вот такой же и смысл твоей статьи.
из всего что установил по статье, только mysql не требовал вмешательство, с БД дружим, а в остальном.. ну матов не хватает. просто элементарное listing: IP:110. кто знает, IP это какой то внутренний параметр или это опция или что это... я сначал ов шоке был.. пока понял, что там просто адрес написать надо... звездачку не судьба написать было...
без обид.. накипело..

atrium, 2009-02-15 в 23:07:02

Я конечно не спорю может ты и прав, но всё разжовывать... Если я всё напишу куда ткнуть и что сделать ты тупо всё сделаешь и сам не поймёшь что делал, я на прикрутку openldap к postfix с нормальной схемой потратил 2 недели и не плачу, сидел разбирался, а если тебе влом разобраться то извини....

atrium, 2009-02-15 в 23:09:38

IP:110 - :) думать надо, а не тупо конфиги копировать :) извини, если грубо!

ADvise, 2009-02-16 в 6:02:36

По рабочим примерам легче учится.
А то создается такое впечатление, что ты тупо что-то у кого-то скопировал, добавил, изменил и выложил сам не разобравшись. А тупо копировать приходится, ибо быстро нужна почта, а ты уперся в хз что, и постоянно разгребаешь ошибки. Да и в 2 часа ночи, когда мозги уже на исходе, такие детали могут проскальзывать, ибо ищещь адрес, а не слово IP.
Ладно, закроем пустую тему, не имеющую отношения к статье...

atrium, 2009-02-16 в 9:12:21

Правильно, что приператься попусту!
Я конечно понимаю что тяжело чужие каракули разбирать...
Все конфиги рабочие, хотел скриншоты приложить но слишком объёмная статья была бы!
И ни у кого я ничего не копировал, я лучше разберусь сам... :)
Извини, если чем обидел, не хотел, ничего личного :)

Advise, 2009-02-17 в 6:00:43

Не знаю почему, но постфиксу помогло для подключения к LDAP

/usr/local/etc/openldap/slapd.conf
allow bind_v2

и что характерно, первой строкой.

ADvise, 2009-02-17 в 6:58:53

Не могу понять, какие нужны сертификаты для Postfix и dovecot. Пробовал по разному их генерировать, по разным статьям. Постоянно ругается:
postfix/smtpd[27384]: warning: TLS library problem: 27384:error:0906406D:PEM routines:PEM_def_callback:problems getting password:pem_lib.c:105:

скажите, или укажите, где истина? какие нужны сертификаты демонам и какие клиентам. Честно, устал уже копать...

atrium, 2009-02-17 в 9:14:29

/usr/src/crypto/openssl/apps - Посмотрите там генерируется первый сертификат, которым вы будите подписывать все остальные!

1) CA.sh или CA.pl -newca
2) openssl x509 -in cacert.pem -out cacert.der -outform DER - для установки в Windows
3)openssl req -new -nodes -keyout postfix_private_key.pem -out postfix_private_key.pem -days 365
4)openssl ca -policy policy_anything -out postfix_public_cert.pem -infiles postfix_private_key.pem

Далее всё по статьям...если не получится

ProFTP, 2009-02-23 в 8:16:24

LDAP можно сюда прикрутить
http://forum.lissyara.su/viewtopic.php?f=20&t=12348

Advise, 2009-02-23 в 21:16:11

с LDAP разобрались.
с сертификатами то же.
но почта как не работала, так и не работает.
почему гвоорит
loops back to myself
помогите настроить пошагово, где-то ведь что-то пропустил.
устал читать документации, от них только хуже, особенно если на енглиш - трудно понять, если на русском, то каждый в своем переводе либо коротко и не понятно, либо по словарю перевел. трудно.
отпишите мне на почту, помогите настроить postfix.
даже элементарное, не создаются папки пользователей.. почему.. теряюсь в догадках и логе..

atrium, 2009-02-24 в 9:20:01

Напишите мне на почту всю проблему, я пошагово расскажу как необходимо делать!

atrium, 2009-02-24 в 9:23:18

ivchenko_maksim[собака]mail.ru - Жду письма с проблемой. Расскажите как вы делайте!

skliz, 2009-03-30 в 11:56:54

Здрасте всем подскажите плиз, сейчас постфикс принимает почту и передает ее ексченджу и заодно идет проверка пользователей по ldap, планируеться еще одну почту передовать через этот постфикс тока теперь на другой ексчендж который абсолютно в другом домене AD находиться, работает ли постфикс с двумя проверками по LDAP, пробовал настроить без результатно, гуглил тоже покачто ненашел, за любую инфу заранее спасибо!!!

atrium, 2009-04-01 в 16:17:09

У вас я так понимаю postfix работает в качестве шлюза. В чём собственно загвостка?

В main.cf в параметре transport_maps необходимо прописать domain.ru smtp:[ip_ексченджа]:25 если конечно есть маршрутизаци между доменами?

И что за проверки по LDAP?

atrium, 2009-04-01 в 16:19:03

В параметре relay_recipient_maps необходимо указать список пользователей для которых разрешено получать почту. Почитайте в доке к postfix про relay_recipient_maps!

dacent, 2009-06-06 в 20:59:46

схема postfix.schema вообще живая?
При include получаю:

==
config_build_entry: "cn={5}openldap"
config_build_entry: "cn={6}postfix"
config_build_attrs: error 21 on olcAttributeTypes value #0
config_build_entry: build "cn={6}postfix" failed: ""
backend_startup_one: bi_db_open failed! (-1)
slapd shutdown: initiated
====> bdb_cache_release_all
slapd destroy: freeing system resources.
slapd stopped.
==

atrium, 2009-06-09 в 9:02:55

Порядок подключения схемы имеет значение, могу посоветовать глянуть вот сюда, более новое и web-интерфейс к тому же:

http://olpostfix.googlecode.com/svn/trunk/

dacent, 2009-06-09 в 22:24:18

Как то не было времени разбираться со схемой - поднял все на sendmail.

На досуге все таки осуществлю эту "схему" - только из-за "админки"

densan, 2009-07-04 в 15:41:02

Если в postfix.schema в DESC '' присутствует кириллица slapd валиться с ошибкой:
config_build_attrs: error 21 on olcAttributeTypes value #0
config_build_entry: build "cn={7}postfix" failed: ""
backend_startup_one: bi_db_open failed! (-1)

openldap-server-2.4.16_1

andry, 2009-08-14 в 10:11:38

В архиве с таблицами MySQL нашел только три таблицы
# virtual_aliases
# virtual_mailbox_domains
# virtual_users
Хотя в описании их больше.

Denis Kharkov, 2010-02-04 в 13:36:54

Не понятно зачем в конфиге Dovecot у автора используется
login_max_connections = 180,так как данная опция используется если login_process_per_connection установлено в no

Saamuel, 2010-02-11 в 13:38:40

Скажите пожалуйста у меня вот такая ошибка при запуске dovecot. Что делать?
Feb 11 13:39:55 auth(default): Error: dovecot-auth: error while loading shared libraries: libldap-2.4.so.2: failed to map segment from shared object: Cannot allocate memory
Feb 11 13:39:55 dovecot: Error: child 12138 (auth) returned error 127
Feb 11 13:39:55 dovecot: Fatal: Auth process died too early - shutting down

alex, 2010-05-05 в 7:09:06

for Saamuel
В конфиге dovecot измени параметр вот так login_process_size = 64

mas, 2011-04-19 в 18:33:03

auth(default): Error: /libexec/ld-elf.so.1: /usr/lib/libssl.so.6: mmap of entire address space failed: Cann
ot allocate memory

А с этим добром чего делать?

Кирилл, 2011-05-10 в 17:03:13

2mas: только что решили подобную проблему, но только библиотека была от мускуля 5.5.х, решилось откатом мускуля до 5.1.х

но вообще похоже на некорректную работу с mmap у Dovecot-a 1.2.16

Роман, 2014-03-12 в 10:42:59

вот что делать в phpmyadmin никто не пишет, у всех это выходит за рамки темы или postfixadmin используют((



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0783 секунд
Из них PHP: 62%; SQL: 38%; Число SQL-запросов: 80 шт.
Исходный размер: 121141; Сжатая: 25057