конфиги такие:
exim configure:
Код: Выделить всё
#!/bin/sh
# $Cambridge: exim/exim-src/src/configure.default,v 1.13 2007/06/26 11:21:36 ph10 Exp $
primary_hostname = domen.ru
hide mysql_servers = localhost/exim/exim/exim
domainlist local_domains = ${lookup mysql{SELECT `domain` \
FROM `domain` WHERE \
`domain`='${domain}' AND \
`active`='1'}}
domainlist relay_to_domains = ${lookup mysql{SELECT `domain` \
FROM `domain` WHERE \
`domain`='${domain}' AND \
`active`='1'}}
hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/24
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
av_scanner = clamd:/var/run/clamav/clamd
qualify_domain = domen.ru
qualify_recipient = domen.ru
allow_domain_literals = false
exim_user = mailnull
exim_group = mail
never_users = root
host_lookup = *
rfc1413_query_timeout = 0s
sender_unqualified_hosts = +relay_from_hosts
recipient_unqualified_hosts = +relay_from_hosts
ignore_bounce_errors_after = 45m
timeout_frozen_after = 15d
helo_accept_junk_hosts = 192.168.0.0/24
auto_thaw = 1h
smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"
smtp_accept_max = 50
smtp_accept_max_per_connection = 25
smtp_connect_backlog = 30
smtp_accept_max_per_host = 20
split_spool_directory = true
remote_max_parallel = 15
return_size_limit = 70k
message_size_limit = 64M
helo_allow_chars = _
smtp_enforce_sync = true
log_selector = +all_parents +connection_reject +incoming_interface +lost_incoming_connection +received_sender +received_recipients +smtp_confirmation +smtp_syntax_error +smtp_protocol_error -queue_run
syslog_timestamp = no
########ACL CONFIGURATION ################################################
# ACL CONFIGURATION #
# Specifies access control lists for incoming SMTP mail #
######################################################################
begin acl
acl_check_rcpt:
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
require verify = sender
deny message = "HELO/EHLO require by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
accept authenticated = *
deny message = "Your IP in HELO - access denied!"
hosts = * : !+relay_from_hosts : !81-196.domen.ru: !127.0.0.1
condition = ${if eq{$sender_helo_name} {$sender_host_address}{true}{false}}
deny condition = ${if eq{$sender_helo_name}{$interface_address}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "main IP in your HELO! Access denied!"
deny condition = ${if match{$sender_helo_name}{\N^\d+$\N}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "can not be only number inЕН ФЕИ, ЛФП ОЕ РЙЫЕФ ПФРТБЧЙФЕМС"
deny message = "your hostname is bad (adsl, poll, ppp & etc)."
condition = ${if match{$sender_host_name} {adsl|dialup|pool|peer|dhcp} {yes}{no}}
warn hosts = 127.0.0.1:localhost
control = no_enforce_sync
warn
set acl_m0 = 30s
warn
hosts = +relay_from_hosts:87.103.215.168/32:195.93.0.0/16
set acl_m0 = 0s
warn
logwrite = Delay $acl_m0 for $sender_host_name $sender_host_address] with HELO=$sender_helo_name. Mail from $sender_address to $local_part@$domain.
delay = $acl_m0
accept domains = +local_domains
endpass
message = "In my mailserver not stored this user"
verify = recipient
accept domains = +relay_to_domains
endpass
message = "main server not know how relay to this address"
verify = recipient
deny message = "you in blacklist - $dnslist_domain \n $dnslist_text"
dnslists = opm.blitzed.org : cbl.abuseat.org : bl.csma.biz : dynablock.njabl.org
accept authenticated = *
control = submission
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient
accept
acl_check_data:
deny malware = *
message = "In e-mail found VIRUS - $malware_name"
accept
########ROUTERS CONFIGURATION#############################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
# An address is passed to each router in turn until it is accepted. #
######################################################################
begin routers
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}}
#user = mailnull
#group = mail
#file_transport = address_file
#pipe_transport = address_pipe
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM \
`alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery
########TRANSPORTS CONFIGURATION##########################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
begin transports
remote_smtp:
driver = smtp
dovecot_delivery:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = mailnull
address_pipe:
driver = pipe
return_output
address_reply:
driver = autoreply
########RETRY CONFIGURATION###############################################
# RETRY CONFIGURATION #
######################################################################
begin retry
# Address or Domain Error Retries
# ----------------- ----- -------
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
########REWRITE CONFIGURATION#############################################
# REWRITE CONFIGURATION #
######################################################################
begin rewrite
######################################################################
# AUTHENTICATION CONFIGURATION #
######################################################################
begin authenticators
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT `username` FROM \
`mailbox` WHERE `username` = \
'${quote_mysql:$auth2}' AND `password` = \
'${quote_mysql:$auth3}'}{yes}{no}}
server_prompts = :
server_set_id = $auth2
auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT `username` FROM \
`mailbox` WHERE `username` = \
'${quote_mysql:$auth1}' AND `password` = \
'${quote_mysql:$auth2}'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $auth1
auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT `password` FROM \
`mailbox` WHERE `username` \
= '${quote_mysql:$auth1}'}{$value}fail}
server_set_id = $auth2
Код: Выделить всё
#!/bin/sh
base_dir = /var/run/dovecot/
protocols = imap pop3
listen = *
disable_plaintext_auth = no
shutdown_clients = yes
log_timestamp = "%b %d %H:%M:%S "
syslog_facility = mail
## SSL settings
ssl_disable = yes
## Login processes
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = dovecot
login_process_size = 64
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 64
login_greeting = dovecot MUA ready
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
## Mailbox locations and namespaces
##
mail_location = maildir:/home/mail/exim/%d/%n
mail_extra_groups = mail
mail_full_filesystem_access = no
## Mail processes
mail_debug = yes
verbose_proctitle = yes
first_valid_uid = 25
#last_valid_uid = 0
first_valid_gid = 0
#last_valid_gid = 0
#max_mail_processes = 1024
#mail_process_size = 256
#mail_max_keyword_length = 50
#valid_chroot_dirs =
#mail_chroot =
## Mailbox handling optimizations
##
#mail_cache_fields =
#mail_never_cache_fields =
#mail_cache_min_mail_count = 0
#mailbox_idle_check_interval = 30
#mail_save_crlf = no
## Maildir-specific settings
##
#maildir_stat_dirs = no
#maildir_copy_with_hardlinks = no
#maildir_copy_preserve_filename = no
## mbox-specific settings
##
#mbox_read_locks = fcntl
#mbox_write_locks = dotlock fcntl
# Максимальное время ожидания блокировки перед прерыванием (отменой).
#mbox_lock_timeout = 300
#mbox_dotlock_change_timeout = 120
#mbox_dirty_syncs = yes
#mbox_very_dirty_syncs = no
#mbox_lazy_writes = yes
#mbox_min_index_size = 0
## dbox-specific settings
##
# Максимальный размер файла dbox (в kB) с которым работает ротации.
#dbox_rotate_size = 2048
# Минимальный размер файла dbox (в kB) до ротации
# (перекрывается dbox_rotate_days)
#dbox_rotate_min_size = 16
# Максимальный возраст dbox файла в днях до ротации. День всегда начинается
# с полуночи, т.о. 1 = сегодня, 2 = вчера, и т.д. 0 = нет проверок.
#dbox_rotate_days = 0
## IMAP specific settings
##
protocol imap {
# mail_plugins = quota #trash
imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
## POP3 specific settings
##
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
#mail_plugins = quota
#mail_plugin_dir = /usr/local/lib/dovecot/pop3
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
## LDA specific settings
##
protocol lda {
# Куда слать письма про превышение квоты
postmaster_address = root@domain.ru
# mail_plugins = quota
auth_socket_path = /var/run/dovecot/auth-master
}
## Authentication processes
##
# Расположение исполняемого файла
#auth_executable = /usr/local/libexec/dovecot/dovecot-auth
# Установить максимальный размер процесса, в мегабайтах.
#auth_process_size = 256
#auth_cache_size = 0
#auth_cache_ttl = 3600
#auth_realms =
#auth_default_realm =
#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
#auth_username_translation =
#auth_username_format =
#auth_master_user_separator =
#auth_anonymous_username = anonymous
#auth_verbose = no
auth_debug = yes
#auth_debug_passwords = yes
#auth_worker_max_count = 30
#auth_gssapi_hostname =
#auth_krb5_keytab =
auth default {
mechanisms = plain
# Добавлено для работы deliver от dovecot
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mailnull
#group = mail
}
}
#passdb passwd-file {
# Файл содержащий имена пользователей, по одному на строку:
#args = /etc/dovecot.deny
#deny = yes
#}
#passdb passwd {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}
#passdb shadow {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}
#passdb bsdauth {
# [cache_key=<key>] - See cache_key in PAM for explanation.
#args =
#}
#passdb passwd-file {
# Path for passwd-file
#args =
#}
#passdb checkpassword {
# Path for checkpassword binary
#args =
#}
# SQL database
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
#passdb ldap {
# путь для конфигурационного файла LDAP, примеры в doc/dovecot-ldap.conf
#args =
#}
# vpopmail аутентификация
#passdb vpopmail {
# [cache_key=<key>] - Смотреть cache_key в PAM, для понимания.
#args =
#}
#userdb passwd {
# [blocking=yes] - By default the lookups are done in the main dovecot-auth
# process. This setting causes the lookups to be done in auth worker
# proceses. Useful with remote NSS lookups that may block.
# NOTE: Be sure to use this setting with nss_ldap or users might get
# logged in as each others!
#args =
#}
# passwd-подобный файл с указанием местоположения
# <doc/wiki/AuthDatabase.PasswdFile.txt>
#userdb passwd-file {
# путь к passwd-файлу
#args =
#}
#userdb static {
# Шаблон для параметров настройки. CМожет вернуть что-то, что userdb
# обычно возвращает, т.е.: uid, gid, home, mail, nice
#
# Пара примеров:
#
# args = uid=500 gid=500 home=/var/mail/%u
# args = uid=500 gid=500 home=/home/%u mail=mbox:/home/%u/mail nice=10
#
# If you use deliver, it needs to look up users only from the userdb. This
# of course doesn't work with static because there is no list of users.
# Normally static userdb handles this by doing a passdb lookup. This works
# with most passdbs, with PAM being the most notable exception. If you do
# the user verification another way, you can add allow_all_users=yes to
# the args in which case the passdb lookup is skipped.
#
#args =
#}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
#userdb prefetch {
#}
user = root
}
## Dictionary server settings
##
dict {
#quota = mysql:/etc/dovecot-dict-quota.conf
}
## Plugin settings
##
plugin {
# quota = maildir:storage=1024M
}
Код: Выделить всё
Jun 4 10:29:48 router dovecot: auth(default): client in: AUTH 1 PLAIN service=POP3 lip=xxx.xxx.xxx.xxx rip=yyy.yyy.yyy.yyy resp=<hidden>
Jun 4 10:29:48 router dovecot: auth-worker(default): sql(root@domen.ru,yyy.yyy.yyy.yyy): query: SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = 'root@domen.ru' AND `active`='1'
Jun 4 10:29:48 router dovecot: auth(default): client out: OK 1 user=root@domen.ru
Jun 4 10:29:48 router dovecot: auth(default): master in: REQUEST 9 18215 1
Jun 4 10:29:48 router dovecot: auth-worker(default): sql(root@domen.ru,yyy.yyy.yyy.yyy): SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` FROM `mailbox` WHERE `username` = 'root@domen.ru' AND `active`='1'
Jun 4 10:29:48 router dovecot: auth(default): master out: USER 9 root@domen.ru home=domen.ru/root/ uid=26 gid=26
Jun 4 10:29:48 router dovecot: pop3-login: Login: user=<root@domen.ru>, method=PLAIN, rip=yyy.yyy.yyy.yyy, lip=xxx.xxx.xxx.xxx
Jun 4 10:29:48 router dovecot: POP3(root@domen.ru): Effective uid=26, gid=26
Jun 4 10:29:48 router dovecot: POP3(root@domen.ru): maildir: data=/home/mail/exim/domen.ru/root
Jun 4 10:29:48 router dovecot: POP3(root@domen.ru): maildir: root=/home/mail/exim/domen.ru/root, index=/home/mail/exim/domen.ru/root, control=, inbox=
Jun 4 10:29:48 router dovecot: POP3(root@domen.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Jun 4 10:29:48 router exim[18219]: no IP address found for host 178.223.kemer.ptl.ru (during SMTP connection from [yyy.yyy.yyy.yyy] I=[xxx.xxx.xxx.xxx]:25)
Jun 4 10:29:48 router dovecot: auth(default): new auth connection: pid=18220
Jun 4 10:30:02 router dovecot: auth(default): client in: AUTH 1 PLAIN service=POP3 lip=xxx.xxx.xxx.xxx rip=yyy.yyy.yyy.yyy resp=<hidden>
Jun 4 10:30:02 router dovecot: auth-worker(default): sql(user1@domen.ru,yyy.yyy.yyy.yyy): query: SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = 'user1@domen.ru' AND `active`='1'
Jun 4 10:30:02 router dovecot: auth(default): client out: OK 1 user=user1@domen.ru
Jun 4 10:30:02 router dovecot: auth(default): master in: REQUEST 10 18220 1
Jun 4 10:30:02 router dovecot: auth-worker(default): sql(user1@domen.ru,yyy.yyy.yyy.yyy): SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` FROM `mailbox` WHERE `username` = 'user1@domen.ru' AND `active`='1'
Jun 4 10:30:02 router dovecot: auth(default): master out: USER 10 user1@domen.ru home=domen.ru/user1/ uid=26 gid=26
Jun 4 10:30:02 router dovecot: pop3-login: Login: user=<user1@domen.ru>, method=PLAIN, rip=yyy.yyy.yyy.yyy, lip=xxx.xxx.xxx.xxx
Jun 4 10:30:02 router dovecot: POP3(user1@domen.ru): Effective uid=26, gid=26
Jun 4 10:30:02 router dovecot: POP3(user1@domen.ru): maildir: data=/home/mail/exim/domen.ru/user1
Jun 4 10:30:02 router dovecot: POP3(user1@domen.ru): maildir: root=/home/mail/exim/domen.ru/user1, index=/home/mail/exim/domen.ru/user1, control=, inbox=
Jun 4 10:30:02 router dovecot: POP3(user1@domen.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
Jun 4 10:30:02 router exim[18251]: no IP address found for host 178.223.kemer.ptl.ru (during SMTP connection from [yyy.yyy.yyy.yyy] I=[xxx.xxx.xxx.xxx]:25)
Jun 4 10:30:02 router dovecot: auth(default): new auth connection: pid=18252
Jun 4 10:32:50 router exim[18251]: 1K3fxP-0004kN-B1 <= user1@domen.ru H=(diversunt) [yyy.yyy.yyy.yyy] I=[xxx.xxx.xxx.xxx]:25 P=esmtpa A=auth_cram_md5: S=1971687 id=10036220.20080604093931@domen.ru from <user1@domen.ru> for root@domen.ru
Jun 4 10:32:50 router dovecot: auth(default): master in: USER 1 root@domen.ru service=deliver
Jun 4 10:32:50 router dovecot: auth-worker(default): sql(root@domen.ru): SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` FROM `mailbox` WHERE `username` = 'root@domen.ru' AND `active`='1'
Jun 4 10:32:50 router dovecot: auth(default): master out: USER 1 root@domen.ru home=domen.ru/root/ uid=26 gid=26
Jun 4 10:32:50 router deliver(root@domen.ru): auth input: root@domen.ru
Jun 4 10:32:50 router deliver(root@domen.ru): auth input: home=domen.ru/root/
Jun 4 10:32:50 router deliver(root@domen.ru): auth input: uid=26
Jun 4 10:32:50 router deliver(root@domen.ru): auth input: gid=26
Jun 4 10:32:50 router deliver(root@domen.ru): Home dir not found: domen.ru/root/
Jun 4 10:32:50 router deliver(root@domen.ru): maildir: data=/home/mail/exim/domen.ru/root
Jun 4 10:32:50 router deliver(root@domen.ru): maildir: root=/home/mail/exim/domen.ru/root, index=/home/mail/exim/domen.ru/root, control=, inbox=
Jun 4 10:32:51 router deliver(root@domen.ru): msgid=<10036220.20080604093931@domen.ru>: saved mail to INBOX
Jun 4 10:32:51 router exim[18267]: 1K3fxP-0004kN-B1 => root <root@domen.ru> R=dovecot_user T=dovecot_delivery
Jun 4 10:32:51 router exim[18267]: 1K3fxP-0004kN-B1 Completed
