Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FAQ по Exim MTA

Автор: DarkHost
Дата сообщения: 28.03.2006 09:15

Цитата:
Т.е. письма больше 200к он проверять не будет?

Именно так. Вообще, стандартное письмо - не более 50кб. HTML с рисунками - 100-150кб. Остальное - уже с вложениями.
Автор: tankistua
Дата сообщения: 28.03.2006 09:22
да, только у меня например чуток не так.


Код: acl_check_data:

deny message = Contains file with forbidden extension: $found_extension
demime = scr:pif:exe:com

deny message = This message contains a virus or other harmful content $malware_name)
demime = *
malware = *

accept condition = ${if >{$message_size}{200k}{yes}{no}}

warn message = X-Spam-Score: $spam_score ($spam_bar)
log_message = Scored $spam_score by spamd
spam = mail:true

warn message = X-Spam-Report: $spam_report
spam = mail:true

deny condition = ${if > {$spam_score_int}{69}{yes}{no}}
message = Classified as spam (score $spam_score)
spam = mail:true


# explicitly accept 'cause reaching the end of the ACL causes access to be denied
accept
Автор: DarkHost
Дата сообщения: 28.03.2006 09:26
tankistua
Не совсем понимаю, в чем разница? К тому же, безструктурность плохо влияет на большие конфиги.
Автор: drewis
Дата сообщения: 28.03.2006 09:46
Спасибо, заработало

Тогда еще вопросик в догонку, а по какому принципу действует auto_learn в spamassasin?
Каким образом избежать потери "белых" писем? Например я найду 500 спамерских сообщений и скормлюих sa-learn --spam, но где взять столько белой почты? (сервер еще готовится на стенде и поэтому доступа к специфической почте заказчика нет).
Автор: DarkHost
Дата сообщения: 28.03.2006 09:51
auto_learn - зло! Никогда его не используйте!
У нас в стране частенько криворукие специалисты встречаются, которые не способны нормально настроить MTA и оперативно реагировать на недоставку. Как только sa-learn --spam неправильно определит письма и наестся их, задолбаетесь его переучивать.
Автор: tankistua
Дата сообщения: 28.03.2006 10:45
DarkHost
сказывается усталость - я только приехал . Да - по большому счету никакой разницы - та же проверка на размер.
Автор: amat
Дата сообщения: 30.03.2006 12:16
Тут в конфе Павла маленькая опочка закралась:
в exim.conf в секторе spam_reject описан сценарий для локально хранящихся юзверей, то бишь если база храниться в мускуле, то созданием файлов по искомым путям ничего не дают, пока не заведешь юзверей в passwd, посему этот сектор для мускульных ящиков должен выглядеть следующим образом:
spam_reject:
driver = redirect
user = mail
group = mail
headers_add = "X-DSPAM-Rreport: Rejected"
condition = ${if eq {$h_X-DSPAM-Result:}{Spam}{yes}{no}}
allow_fail = true
require_files = /var/mail/spam/block/${domain}/$local_part
errors_to = ""
data = :blackhole:
more = false
Автор: hoochie
Дата сообщения: 30.03.2006 13:00

Цитата:
Тут в конфе Павла маленькая опочка закралась:

Можно смело дописать боольшую букву П. Там она не одна. При всем уважении к автору за проделанную работу, замечу, что про DSPAM написано очень туманно. И тему не раскрыл. Где настройка WEBUI? Это как же получается, вынес апач на другой бокс, а конфиг по дефолту ссылается на локалхост.
amat
У тебя стоит все локально?
Автор: coffin
Дата сообщения: 31.03.2006 05:43
посоветуйте, какие опции прописать в конфиге экзима для сильно нагруженного сервера?
Автор: Pleshkov
Дата сообщения: 31.03.2006 22:25

Цитата:
посоветуйте, какие опции прописать в конфиге экзима для сильно нагруженного сервера?

смотря что понимать под "сильной загруженностью".
Статистику в студию.
Автор: coffin
Дата сообщения: 03.04.2006 07:10

Цитата:
Цитата:
посоветуйте, какие опции прописать в конфиге экзима для сильно нагруженного сервера?

смотря что понимать под "сильной загруженностью".
Статистику в студию.

CPU: Intel Pentium III Xeon (863.94-MHz 686-class CPU)
real memory = 1073725440 (1048560K bytes)
FreeBSD/SMP: Multiprocessor motherboard: 2 CPUs
крутится http+ftp+smtp/pop3/spamassassin
пользователей ~33 тысячи
при регистрации пользователь получает минимальный хостинг и почтовый аккаунт
пользователи в бд (мускуль)

last pid: 32593; load averages: 3.05, 3.10, 3.22 up 3+12:29:41 09:54:28
272 processes: 8 running, 256 sleeping, 8 zombie
CPU states: 88.2% user, 0.0% nice, 7.6% system, 0.2% interrupt, 0,0% idle
Mem: 330M Active, 340M Inact, 190M Wired, 52M Cache, 112M Buf, 90M Free
Swap: 2048M Total, 57M Used, 1991M Free, 2% Inuse

PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
32436 vpopmail 57 0 36820K 30744K CPU1 1 0:08 28.82% 21.73% perl
32470 vpopmail 58 0 35972K 29860K RUN 1 0:07 30.65% 20.46% perl
32507 vpopmail 58 0 34280K 28212K RUN 1 0:05 30.98% 16.36% perl
32532 vpopmail 2 0 34260K 28144K select 1 0:03 26.66% 10.50% perl
32541 vpopmail 56 0 33440K 27360K RUN 0 0:02 25.75% 8.50% perl
32589 root 44 0 2244K 1292K CPU0 0 0:01 70.00% 3.42% top
32466 vpopmail 2 0 6300K 2324K poll 0 0:00 0.21% 0.15% exim-4.
32554 vpopmail 2 0 5804K 2148K sbwait 0 0:00 0.38% 0.10% exim-4.
292 mysql 2 0 338M 38640K poll 0 47:43 0.05% 0.05% mysqld
32499 vpopmail 2 0 5804K 2152K sbwait 0 0:00 0.09% 0.05% exim-4.
32577 vpopmail 2 0 5800K 2152K kqread 0 0:00 0.35% 0.05% exim-4.
32537 vpopmail 2 0 5804K 2148K kqread 1 0:00 0.13% 0.05% exim-4.
89865 vpopmail 59 0 5744K 1956K RUN 0 26:26 0.00% 0.00% exim-4.
89849 root 2 0 32372K 25116K select 1 26:08 0.00% 0.00% perl
107 root 2 0 992K 548K select 1 5:57 0.00% 0.00% syslogd
173 zabbix 2 5 1216K 656K accept 1 4:43 0.00% 0.00% zabbix_
171 zabbix 2 5 1216K 656K accept 1 4:42 0.00% 0.00% zabbix_
172 zabbix 2 5 1216K 656K connec 1 4:40 0.00% 0.00% zabbix_

настраивалось все до меня.. стоял qmail+vpopmail - почта не фурычила вообще..
поставил exim+courier - вроде шевелится, но плохо
коннектов по смтп 250 разрешено
регистрацию отключил нафик
Автор: DarkHost
Дата сообщения: 03.04.2006 09:13
Вот это:

Цитата:

32436 vpopmail 57 0 36820K 30744K CPU1 1 0:08 28.82% 21.73% perl
32470 vpopmail 58 0 35972K 29860K RUN 1 0:07 30.65% 20.46% perl
32507 vpopmail 58 0 34280K 28212K RUN 1 0:05 30.98% 16.36% perl
32532 vpopmail 2 0 34260K 28144K select 1 0:03 26.66% 10.50% perl
32541 vpopmail 56 0 33440K 27360K RUN 0 0:02 25.75% 8.50% perl

говорит о том, что вам нельзя SpamAssassin использовать, он слишком прожорлив.
Автор: SaintBes
Дата сообщения: 05.04.2006 16:21
Здраствуйте, уважаемые, прошу помощи в таком вопросе - SMTP-аутоинтефикация.
Проблема вот в чём -
Вроде и аутоинтефикация настроена, но письма ходят как с авторизацией, так и без её включения в клиенте...Как его заставить не делать такую гадость...?...
Вот моё конфиг:

Цитата:


primary_hostname = мой.сервер
domainlist local_domains = ${lookup mysql{SELECT domain FROM domains \
WHERE domain='${domain}' AND \
(type='LOCAL' OR type='VIRTUAL')}}
domainlist relay_to_domains = ${lookup mysql{SELECT domain FROM domains \
WHERE domain='${domain}' AND type='RELAY'}}
hostlist relay_from_hosts = 127.0.0.1 : 192.168.0.0/26

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
acl_smtp_auth = acl_check_auth

auth_advertise_hosts = +relay_from_hosts
daemon_smtp_ports = 25 : 465
tls_on_connect_ports = 465
tls_advertise_hosts = +relay_from_hosts
tls_certificate = /etc/ssl/certs/mail.pem
tls_privatekey = /etc/ssl/certs/mail.pem
qualify_domain = мой.домен

log_selector = \
+address_rewrite \
+all_parents \
+arguments \
+connection_reject \
+delay_delivery \
+delivery_size \
+dnslist_defer \
+incoming_interface \
+incoming_port \
+lost_incoming_connection \
+queue_run \
+received_sender \
+received_recipients \
+retry_defer \
+sender_on_delivery \
+size_reject \
+skip_delivery \
+smtp_confirmation \
+smtp_connection \
+smtp_protocol_error \
+smtp_syntax_error \
+subject \
+tls_cipher \
+tls_peerdn

allow_domain_literals = false
never_users = root:daemon:bin:sync:named
host_lookup = *
#trusted_users = mail:drweb
rfc1413_hosts = *
rfc1413_query_timeout = 10s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 3d
freeze_tell = postmaster
auto_thaw = 1h
#system_filter = /etc/mail/system-filter
#message_body_visible = 5000
message_size_limit = 10M
smtp_accept_max = 50
smtp_accept_max_per_connection = 50
smtp_connect_backlog = 50
smtp_accept_max_per_host = 25
split_spool_directory = true
remote_max_parallel = 15

hide mysql_servers = localhost/exim/sqlmail/pfljk,fkb

begin acl

acl_smtp_auth:

accept hosts = *
endpass
message = STARTTLS required before AUTH
encrypted = *

acl_check_rcpt:

accept hosts = :

deny local_parts = ^.*[@%!/|] : ^\\.

accept local_parts = postmaster
domains = +local_domains

require verify = sender/no_details

deny message = HELO/EHLO required by SMTP RFC
condition = ${if eq{$sender_helo_name}{}{yes}{no}}

deny message = Go Away! You are spammer.
condition = ${if match{$sender_host_name} \
{bezeqint\\.il|dialup|pool|peer|dhcp} \
{yes}{no}}

deny message = host is listed in $dnslist_domain
dnslists = sbl.spamhaus.org : \
relays.ordb.org : \
opm.blitzed.org : \
proxies.blackholes.easynet.nl

warn message = X-Broken-Reverse-DNS: no host name for sender IP address
# $sender_host_address
!verify = reverse_host_lookup

accept domains = +local_domains
endpass
message = unknown user
verify = recipient
     #/defer_ok/callout=10s,defer_ok

accept domains = +relay_to_domains
endpass
message = unrouteable address
verify = recipient/callout=30s/callout_defer_ok

accept hosts = +relay_from_hosts

deny message = relay not permitted

acl_check_data:

deny message = Go Away! Eat Your Spam Self!
condition = ${if match{$message_body} \
{105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
{yes}{no}}

accept

######################################################################
# 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 recipients FROM aliases \
WHERE local_part='${local_part}' AND domain='${domain}'}}

userforward:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT recipients FROM userforward \
WHERE local_part='${local_part}' AND domain='${domain}'}}

virtual_localuser:
driver = accept
domains = ${lookup mysql{SELECT domain from domains WHERE domain='${domain}'}}
local_parts = ${lookup mysql{SELECT login from users \
WHERE login='${local_part}' AND domain='${domain}'}}
transport = local_delivery

######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################

begin transports

remote_smtp:
headers_remove = received
driver = smtp
hosts_nopass_tls = +relay_from_hosts
hosts_avoid_tls = +relay_from_hosts
hosts_try_auth = +relay_from_hosts

local_delivery:
headers_remove = received
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = /var/mail/$domain/$local_part
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0660
quota = ${lookup mysql{SELECT quota FROM users \
WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}
quota_size_regex = S=(\d+)$
quota_warn_threshold = 75%
return_path_add

address_pipe:
driver = pipe
return_output

address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add

address_reply:
driver = autoreply

######################################################################
# RETRY CONFIGURATION #
######################################################################

begin retry

* quota
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h


######################################################################
# REWRITE CONFIGURATION #
######################################################################

begin rewrite
######################################################################
# AUTHENTICATION CONFIGURATION #
######################################################################

begin authenticators

auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT login FROM users \
WHERE login = '${quote_mysql:${local_part:$2}}' \
AND domain = '${quote_mysql:${domain:$2}}' \
AND decrypt = '${quote_mysql:$3}' \
AND status = '1'}{yes}{no}}
server_prompts = :
server_set_id = $2

auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT login FROM users \
WHERE login = '${quote_mysql:${local_part:$1}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND decrypt = '${quote_mysql:$2}' \
AND status = '1'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1

auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT decrypt FROM users \
WHERE login = '${quote_mysql:${local_part:$1}}' \
AND domain = '${quote_mysql:${domain:$1}}' \
AND status = '1'}{$value}fail}
server_set_id = $1

# End of Exim configuration file



И ещё, интересуюсь - где можно перевод документации по exim найти...?
А то тот англиский, что на exim.org не совсем понимаю....
Автор: Pleshkov
Дата сообщения: 05.04.2006 20:49
SaintBes

Цитата:
но письма ходят как с авторизацией, так и без её включения в клиенте.


Цитата:
192.168.0.0/26

Наверное с вот этой посдети? А из других мест тоже самое?

Цитата:
А то тот англиский

translate.ru
Автор: SaintBes
Дата сообщения: 06.04.2006 10:10
Не совсем чтоб тоже самое.



Цитата:

accept hosts = +relay_from_hosts

deny message = relay not permitted

Пытаюсь отправить с авторизацией с dial-up - пишет 500 relay not permitted
Ставлю вместо +relay_from_hosts звёздочку, отправляет даже без авторизации...
А на внутренние отправляет даже с +relay_from_hosts..
Помогите пожалуста . Заранее благодарю.
Автор: kempston
Дата сообщения: 08.04.2006 10:33
Как сделать так, чтобы во время SMTP аутентификации, в почтовом клиенте нужно было бы указывать не просто имя пользователя а еще и домен? (user@domain.com вместо user)
Автор: DexizeR
Дата сообщения: 12.04.2006 12:52
Привет.

У меня тут такая ситуация сейчас: есть сервак, к нему есть рут акцесс, на нём стоит Exim 4.52 к-рый не использует БД, но полностью сконфигурирован и настроен. Задача: перенастроить или переустановить его так, чтобы он поддерживал работу с аккаунтами которые будут храниться в БД(MySQL), причём аккаунты эти все исключительно редиректы. Кроме того, работать он должен так же как и раньше(т.е. конфиг оставить старый, просто дописать, то что необходимо для данной задачи, это очень важно).

Пишу потому что, использовать описанный выше конфиг не могу, т.к. перенастраивать всё целиком мне совершенно не надо, а надо просто выделить моменты которые:
а) Необходимы для обеспечения работы с аккаунтами из БД Exim'ом.
б) Разрешают этим аккаунтам только редирект(т.е. приходит письмо на имейл и сразу отправляется на другой не сохраняясь при этом на сервере) без всяких авторизаций и пр.

Очень надеюсь на помощь, т.к. я в этом деле профан.
Спасибо.
Автор: Pleshkov
Дата сообщения: 12.04.2006 15:42
DexizeR
пересобирай exim с поддержкой mysql для начала. да и обновись.
Автор: DexizeR
Дата сообщения: 12.04.2006 17:25
Ну предположим, пересобрал... А дальше-то...
Автор: DarkHost
Дата сообщения: 12.04.2006 17:42
Бэкапишь старый конфиг, ставишь новый Exim, возвращаешь конфиг на место.
Дописываешь в секцию main:

hide mysql_servers = localhost/имя_базы/имя_пользователя/пароль

Дописываешь один роутер mysqluser ПЕРЕД localuser, дописываешь один транспорт mysql_delivery, и все. Теперь, если пользователь не найден в MySQL, он будет авторизироваться как системный. Со временем перенесешь всех юзеров и сможешь избавится от роутера localuser.
Также, впоследствии, все запросы будешь делать через MySQL.

Следи за правами на папку. Советую делать это постепенно, чтобы не блокировать работу компании.
Автор: Ilya98
Дата сообщения: 12.04.2006 18:06
auth-worker(default): mysql: Connect failed to /temp/mysql.sock (exim):
Access denied for user 'sqlmail'@'localhost' (using password: YES)

При перемещении связки apache+PHP в chroot требовалось разместить mysql.sock на тот же filesystem, где лежит chroot. Это было сделано. Теперь ставлю почту с Exim'ом проблем нет. Все проверил.
А Dovecot выдает вышеуказанную ошибку.
Естественно пользователь sqlmail есть и ему даны права на базу exim....

В dovecot-sql.conf
driver=mysql
connect = host=/temp/mysql.sock port=3300 dbname=exim user=sqlmail pass....

С уважением, Илья


Добавлено:
Извиняюсь, не указал версию Dovecot -1.0 beta 5
Автор: Ilya98
Дата сообщения: 13.04.2006 18:30
Помогло:
см. http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html

SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('mypass');

после чего default_pass_scheme = CRYPT из dovecot-sql.conf сработал.

Есть ли другие варианты?

Спасибо, Илья


Автор: Pleshkov
Дата сообщения: 14.04.2006 12:46

Цитата:
Есть ли другие варианты?

пересобрать с нормальной libmysql.so
Автор: DexizeR
Дата сообщения: 14.04.2006 14:09
To DarkHost,
1. Как именно дописать этот "один роутер mysqluser ПЕРЕД localuser" ?
2. Как именно дописать этот "один транспорт mysql_delivery" ?
3. Мне нужны только(!) редирект аккаунты в MySQL, т.е. в идеале вообще без своих папок. Как таких делать ?
Автор: DarkHost
Дата сообщения: 14.04.2006 14:29
Если только редирект, то создаешь вот такую таблицу:
CREATE TABLE aliases (
local_part varchar(64) NOT NULL default '',
domain varchar(128) NOT NULL default 'example.ru',
recipients text,
PRIMARY KEY (local_part,domain)
) TYPE=MyISAM;

И в разделе "роутеры" изменяешь system_aliases на:

system_aliases:
driver = redirect
allow_defer
allow_fail
data = ${lookup mysql{SELECT recipients FROM aliases \
WHERE local_part='${local_part}' AND domain='${domain}'}}
Автор: DexizeR
Дата сообщения: 14.04.2006 14:57
2 DarkHost, гут, пасип.

А транспорты или что-то ещё не надо больше конфигурировать ?

И последнее, возникла трабла с установкой - в мануалах от Ginger говорится, что после распаковки в директории EDITME Local в файле Makefile нужно раскоментировать и поставить свои значения у нужных директив...

Я скачал с офф сайта сорсы 4.60 и 4.52(текущая версия на моём сервере), но такой директории там нету, кроме того, во всех Makefile'ах которые я нашёл в папке с Exim'ом нету описанных Ginger опций... Как мне сконфигурировать и скомпилить Exim с включением модулей MySQL ?
Автор: DarkHost
Дата сообщения: 14.04.2006 15:04
сp /path_to_exim/Exim-4.60/src/EDITME /path_to_exim/Exim-4.60/Local/Makefile

Советую сделать так:
LOOKUP_DBM=yes
LOOKUP_LSEARCH=yes
# LOOKUP_CDB=yes
LOOKUP_DNSDB=yes
# LOOKUP_DSEARCH=yes
# LOOKUP_IBASE=yes
# LOOKUP_LDAP=yes
LOOKUP_MYSQL=yes
# LOOKUP_NIS=yes
# LOOKUP_NISPLUS=yes
# LOOKUP_ORACLE=yes
LOOKUP_PASSWD=yes
# LOOKUP_PGSQL=yes
# LOOKUP_WHOSON=yes
LOOKUP_WILDLSEARCH=yes
LOOKUP_NWILDLSEARCH=yes
Я раскомментировал дополнительные параметры, чтобы можно было выполнять поиск в файлах.
А вот собственно и MySQL чуть ниже:
LOOKUP_INCLUDE=-I /usr/local/include/mysql
LOOKUP_LIBS=-L/usr/local/lib/mysql -lz -lmysqlclient -lm -lcrypt

А еще чуть ниже:
WITH_CONTENT_SCAN=yes
Чтобы антивирус и антиспам мог сканировать письмо.

Это то, что я бы прибавил к конфигу GINGER.
Автор: Pleshkov
Дата сообщения: 14.04.2006 15:06
DexizeR

Цитата:
1. Как именно дописать этот "один роутер mysqluser ПЕРЕД localuser" ?

тебе непонятно слово перед?

Цитата:
2. Как именно дописать этот "один транспорт mysql_delivery" ?

как это описано в примере конфига.

Цитата:
3. Мне нужны только(!) редирект аккаунты в MySQL, т.е. в идеале вообще без своих папок. Как таких делать

ну так заполняй таблицу в чем проблема то?
Автор: DarkHost
Дата сообщения: 14.04.2006 15:10
Сконфигурируй транспорт local_delivery и роутер localuser, чтобы хоть на своего локального пользователя получать письма. А среди алиасов укажи, что почту с root, postmaster, dnsmaster, mail, webmaster пересылать на локального пользователя. Иначе как ты обслуживать будешь сервер и ошибки получать? Или тоже наружу пересылать будешь? Если да, то ничего больше конфигурировать не надо из транспортов и роутеров.
Автор: DexizeR
Дата сообщения: 14.04.2006 17:13
2 DarkHost, не, старые настройки, где уже прописаны подобные адресы я оставлю, в т.ч. я так понимаю, остануться и все старые аккаунты. Надо просто как можно меньше внести изменений в конфиг, чтобы майл сервер работал с прежними параметрами.
Вобщем, когда я всё это дело опробую - отпишу ещё, чего у меня не получилось. Спасибо за помощь.

2 Pleshkov, спасибо конечно за отзыв, но твои комментарии не несут полезной информации.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: MS Outlook Возвращает: Не удается доставить.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.