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

» FAQ по Exim MTA

Автор: tankistua
Дата сообщения: 20.10.2007 14:57
Можно поинтересоваться зачем ? меня этот вопрос никогда не смущал
Автор: hrapun
Дата сообщения: 21.10.2007 21:36
вопрос ко мне наверно?
во всяком случае, отвечу
причем отвечу как в анекдоте: "А почему бы и нет?"

вот не хочется мне чтобы ктото, анализируя заголовки, наблюдал там основной домен в качестве узла. хочется чтобы если уж письмо из такого-то домена - то оно оттуда.
можете считать меня капризным, я переживу. только посоветуйте как реализовать
Автор: fly_house
Дата сообщения: 23.10.2007 11:46
Подскажите как сделать reject на все письма с сабжектом {penis | viagra} ?

Добавлено:

Цитата:
Подскажите как сделать reject на все письма с сабжектом {penis | viagra} ?


кажется нашел


Код:
# Reject messages containing "viagra" in all kinds of whitespace/case combinations

deny message = This message matches a blacklisted regular expression ($regex_match_string)
regex = [Vv] *[Ii] *[Aa] *[Gg] *[Rr] *[Aa] : Rolex : Pharmacy
Автор: serker
Дата сообщения: 26.10.2007 09:01
Добрый день !

Помогите решить две проблемки : одна большая, вторая поменьше !

Первая :
Сейчас работает связка Exim+MySQL+Dovecot+Spamassassin+ClamAV. Почта от провайдера забирается по pop3 с помощью fetchmail и передается Exim, а отправляется через Exim по smtp. Все работает замечательно.

Задача: настроить сервер таким образом, что бы при отправке почты пользователем на определенный домен, скажем mykorp.com, эта почта не отправлялась через Инет, а уходила на корпоративный сервер с ip-адресом 192.168.3.12 по smtp, а вся остальная почта обрабатывалась как и раньше ?

Получать почту от корпоративного сервера нужно по smtp, я думаю, с этим проблем не будет.

Вторая :
Как сделать так, что бы Exim принимал, а Dovecot отдавал почту для виртуальных пользователей без указания домена, только по имени ?

С уважением, Сергей
Автор: DarkHost
Дата сообщения: 26.10.2007 09:12
serker
1. Что мешает в роутере проверять domains=example.com а потом отдать письмо транспорту, аналогичному remote_smtpp¿
2. Все зависит от настроек базы пользователей
Автор: tankistua
Дата сообщения: 26.10.2007 09:17
Поощрю твою лень:


Код:
mailertable:
driver = manualroute
# domains = *.hinet.net
transport = remote_smtp
route_list = *.hinet.net riviera.kiev.farlep.net:luckygrain.imc-ua.net:ks-imports.imc-ua.net;
Автор: serker
Дата сообщения: 26.10.2007 11:29
<b>tankistua</b>
При чем здесь лень !
Я раньше никогда почтовик не настраивал, поэтому и спрашиваю !

Я не увидел нигде в ответе ссылку на сервер с ip-адресом 192.168.3.12, на который нужно пересылать почту по корпоративной сети, а не через Интернет.
Автор: tankistua
Дата сообщения: 26.10.2007 12:34
от меня совета достойного copy/paste ты не увидишь.

И никто не увидит , за исключением некоторых личностей. Ты к их числу не относишься :)
Автор: serker
Дата сообщения: 26.10.2007 13:04
Я и не прошу совета достойного copy/paste.

Речь идет о принципе и понимании того, что делаеш,а не о простом копировании куска конфига. Я вот не понимаю, как заставить сервер отправлять определенную почту на сервер в локальной сети.

Не хочеш отвечать, твое дело, не обижусь !
Автор: ginger
Дата сообщения: 26.10.2007 14:00

Цитата:
Задача: настроить сервер таким образом, что бы при отправке почты пользователем на определенный домен, скажем mykorp.com, эта почта не отправлялась через Инет, а уходила на корпоративный сервер с ip-адресом 192.168.3.12 по smtp, а вся остальная почта обрабатывалась как и раньше ?

Выглядеть будет примерно так:

Цитата:
smart_route:
driver = manualroute
transport = remote_smtp
route_list = mykorp.com 192.168.3.12


Цитата:
Как сделать так, что бы Exim принимал, а Dovecot отдавал почту для виртуальных пользователей без указания домена, только по имени ?

В Dovecot есть соответствующий параметр который устанавливает домен по умолчанию, тогда пользователи данного домена могут использовать "короткие" имена во время авторизации.
Автор: tankistua
Дата сообщения: 26.10.2007 14:26

Цитата:
Речь идет о принципе и понимании того, что делаеш,а не о простом копировании куска конфига. Я вот не понимаю, как заставить сервер отправлять определенную почту на сервер в локальной сети.

бля - это кусок из моего конфига. И сервера это мои. И потратил я на поиск этого 5 минут
Автор: serker
Дата сообщения: 26.10.2007 15:20

Цитата:
В Dovecot есть соответствующий параметр который устанавливает домен по умолчанию, тогда пользователи данного домена могут использовать "короткие" имена во время авторизации.

То есть, фактически, имя домена будет добавлять Dovecot сам ?

И еще несколько вопросиков :
- возможно ли указать для различных доменов получателей разные ограничения размера письма
- возможно ли добавить к тексту письма фразу "Данное письмо проверено антивирусной программой Clam AV v ....." и номер версии

Добавлено:

Цитата:
это кусок из моего конфига. И сервера это мои. И потратил я на поиск этого 5 минут

Молодец, хвалю, вот только хамить не нужно !
Не у всех же такая подпись !
Автор: tankistua
Дата сообщения: 26.10.2007 18:17
так же как и не надо мне рассказывать, что я не читаю маны.

З.Ы. это даже близко не было хамство - ты ж даже не подумал. Ты ж даже не спросил, что и где вписывать - ты приложил к своему конфигу, а оно - не накладывается. Значит тебе фуфло подсовывают - не твое. А ведь так хотелось чтобы копи-пасте
Автор: hrapun
Дата сообщения: 27.10.2007 01:41
сорри, вклинюсь в дискуссию.
могу предложить такой вариант реализации виртуальных юзеров без логина с доменом (но учтите, это сродни вырезанию гланд через ректальное отверстие)
1) во-первых, мы добваляем в exim.users поле login;
2) во-вторых, мы юзеру сообщаем, что он должен указать какой ящик себе хочет, при этом придумать логин (понятно, что и логин и ящик уникальны - логин в пределах сервера, ящик в пределах домена)
3) при авторизации юзер вбивает логин, а сервер делает не выборку
WHERE userid='блабла' AND domain='блабла', а WHERE login='блабла' (про выборку пароля не буду писать, ибо и так ясно)

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

как минус - логины будут заниматься быстрее чем ящики на доменах, ибо для юзеров test@test.com и test@example.com нужно разные логины делать... и дополнительные проверки в скриптах, создающих ящики/алиасы. но минус сомнительный, ибо логин нигде не светится, и можно делать логины типа dima12041985 ну и т.п. - юзер не будет смущен "некрасивостью"

зы не судите строго, я exim тока три недели как впервые увидел
если знаете как лучше - расскажите.
и расскажит наконец как сделать helo зависимым от домена отправителя
пожалуста-пожалуста-пожалуста-пожалуста ))

Автор: hrapun
Дата сообщения: 27.10.2007 13:16
о, проблема решена.
как оказалось, решение лежало на поверхности.
просто в доках сказано что helo_data используется для серверов с несколькими интерфейсами, я и я по запарке пропустил.

а если прописать helo_data = $sender_address_domain то оно замечательно представляется от имени домена отправителя
всем спасибо, вопрос закрыт
Автор: tankistua
Дата сообщения: 27.10.2007 15:02

Цитата:
то оно замечательно представляется от имени домена отправителя

молодец - я твоему серверу насчитаю за такое 1.5 балла.

Объясняю - это несоответствие записи хело/ехло с тем, что прописано в днс-е в обратной зоне касательно айпишника твоего сервера.
Автор: hrapun
Дата сообщения: 28.10.2007 11:03
спасибо, я в курсе
Автор: osipen
Дата сообщения: 28.10.2007 12:37
У меня сервер на базе FreeBSD exim 4.68, вопрос как и чем я могу обрабатывать логи exim? Желательно что бы была возможность установки из портов данного обработчика. Может есть несколько примеров обработчиков?
Автор: tankistua
Дата сообщения: 28.10.2007 22:04
cd /usr/ports/ && make search key=exim
Автор: DarkHost
Дата сообщения: 29.10.2007 10:17
osipen

Код: # which eximstats
Автор: limit max
Дата сообщения: 29.10.2007 18:55
Подскажи пожалуйста

Как реализовать такое:
Есть основной почтовый сервер с доменом buka.kiev.ua(сендмеил), и создан новый сервер (по выше перечисленным конфигам ) на замену старому уже на екзиме.

Вопрос как реализовать постепенный переход юзверов, чтобы работало два одновременно сервера. Домены на серверах одинаковы.


Автор: serker
Дата сообщения: 30.10.2007 10:57
ginger
Спасибо за помощь, все заработало, но только пришлось добавить строку domains, иначе всегда роутер был dnslookup

Цитата:

# Redirect mycorp.com
smart_route:
driver = manualroute
domains = mycorp.com
transport = remote_smtp
route_list = * 192.168.56.14



Подскажите, пожалуйста, как возможно дополнительно сделать такое :
в письмах, которые обрабатываются роутером smart_route, происходила замена домена в адресе отправителя и адресе возврата на mycorp.com, с сохранением имени пользователя.

Автор: senator76
Дата сообщения: 30.10.2007 11:41
Помогите пожалуйста реализовать следующее:
есть внутренний МТА exim, в котором заведены юзеры. Отсылка почты на внешние адреса осуществляется через внешний МТА. На этом внешнем МТА имеется только один пользователь, от имени которого я могу отправлять почту. Проблема в том, что мой exim при авторизации на внешнем МТА берет логин и пароль локального юзера, который естесственно не будет совпадать с учетной записью на внешнем МТА. Как мне заставить проводить авторизацию моего exim-а на внешнем МТА с нужными учетными данными и соотвественно отправлять почту от имени учетной записи на внешнем МТА?
Автор: osipen
Дата сообщения: 30.10.2007 15:14
Не обновляется AWStats, проще говоря я захожу http://localhost/awstats.pl
и вижу статистику в каторой нет никаих данных!!!

qmail# perl awstats.pl -config=mysite -update
Create/Update database for config "/usr/local/etc/awstats/awstats.conf" by AWStats version 6.7 (build 1.892)
From data in log file "perl /usr/local/www/cgi-bin/awstats/tools/maillogconvert.pl standard < /var/log/maillog |"...
Warning: HostAliases parameter is not defined, awstats choose "natu.local localhost 127.0.0.1".
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 0
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.

не могу понять почему он не может файл обработать

qmail# cat /usr/local/etc/awstats/awstats.conf | grep -v "#"

LogFile="perl /usr/local/www/cgi-bin/awstats/tools/maillogconvert.pl standard < /var/log/maillog |"
LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
LevelForFileTypesDetection=0
ShowMenu=1
ShowSummary=HB
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=1
SiteDomain="natu.local"
Lang="ru"
DirLang="/usr/local/www/cgi-bin/awstats/cgi-bin/lang"
Автор: limit max
Дата сообщения: 31.10.2007 11:13
Уважаемый Алл
Подскажите, как правильно прописывать алиаси на целые домены в базе в таблице aliases. Киньте пример.

А также, зачем нужна таблица userforward.


Автор: DarkHost
Дата сообщения: 31.10.2007 13:19
limit max
Не понял вопроса. Но если ты имеешь в виду, как перенаправлять письма с одного домена на другой, то тебе поможет rewrite rules.
Я ей не пользуюсь, так что удалил. Это замена файлам .forward
Автор: Orm
Дата сообщения: 01.11.2007 10:27
Уважаемые, помогите побороть проблему.

dovecot: Nov 01 17:08:45 Info: Dovecot v1.0.7 starting up
dovecot: Nov 01 17:08:45 Info: auth-worker(default): mysql: Connected to www.domain.tld (exim)
dovecot: Nov 01 17:08:46 Info: auth(default): new auth connection: pid=29753
dovecot: Nov 01 17:08:46 Info: auth(default): new auth connection: pid=29754
dovecot: Nov 01 17:08:46 Info: auth(default): new auth connection: pid=29752
dovecot: Nov 01 17:08:46 Info: auth(default): new auth connection: pid=29755
dovecot: Nov 01 17:08:46 Info: auth(default): new auth connection: pid=29756
dovecot: Nov 01 17:08:46 Info: auth(default): new auth connection: pid=29757
dovecot: Nov 01 17:09:05 Info: auth(default): master in: USER 1 it@domain.tld service=deliver
dovecot: Nov 01 17:09:05 Info: auth-worker(default): sql(it@domain.tld): SELECT maildir, 26 AS uid, 6 AS gid FROM mailbox WHERE username = 'it@domain.tld' and active='1'
dovecot: Nov 01 17:09:05 Info: auth(default): master out: USER 1 it@domain.tld maildir=domain.tld/it@domain.tld/ uid=26 gid=6
deliver(it@domain.tld): Nov 01 17:09:05 Info: auth input: it@domain.tld
deliver(it@domain.tld): Nov 01 17:09:05 Info: auth input: maildir=domain.tld/it@domain.tld/
deliver(it@domain.tld): Nov 01 17:09:05 Info: auth input: uid=26
deliver(it@domain.tld): Nov 01 17:09:05 Info: auth input: gid=6
deliver(it@domain.tld): Nov 01 17:09:05 Fatal: setgid(6) failed: Operation not permitted

orm@mail:/var/spool/exim# ls -l
total 8
drwx------ 5 mailnull mail 512 Nov 1 17:00 domain.tld/
drwxr-x--- 2 mailnull mail 512 Nov 1 16:09 db/
drwxr-x--- 2 mailnull mail 1024 Nov 1 17:09 input/
drwxr-x--- 2 mailnull mail 512 Nov 1 17:09 msglog/

dovecot.conf
[more]protocols = imap pop3

protocol imap {
listen = *:143
}

protocol pop3 {
listen = *:110

}


disable_plaintext_auth = no

shutdown_clients = yes


log_path = /var/log/dovecot.log

info_log_path = /var/log/dovecot.log





ssl_disable = yes






















mail_location = maildir:/var/spool/exim/%d/%u






mail_extra_groups = mail



mail_debug = yes









verbose_proctitle = yes

first_valid_uid = 26
last_valid_uid = 26

first_valid_gid = 6
last_valid_gid = 6





























protocol imap {






imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}


protocol pop3 {






pop3_uidl_format = %08Xu%08Xv



pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}


protocol lda {
postmaster_address = postmaster@domain.tld

hostname = mail.domain.tld


sendmail_path = /usr/sbin/sendmail

}












auth_verbose = yes

auth_debug = yes

auth_debug_passwords = yes




auth default {
mechanisms = plain










passdb sql {
args = /usr/local/etc/dovecot-mysql.conf
}







userdb sql {
args = /usr/local/etc/dovecot-mysql.conf
}




user = root





socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mailnull
group = mail
}
client {
path = /var/run/dovecot/auth-client
mode = 0660
user = mailnull
group = mail
}
}
}




dict {
}


plugin {





}
[/more]
exim.conf
[more]
primary_hostname = mail.domain.tld

mysql_servers = www.domain.tld/exim/exim/password

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.1.0/24

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

qualify_domain = domain.tld










exim_user = mailnull
exim_group = mail
never_users = root



host_lookup = *



rfc1413_hosts = *
rfc1413_query_timeout = 5s








ignore_bounce_errors_after = 2d


timeout_frozen_after = 7d







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 = ^[./|] : ^.*[@%!] : ^.*/\\.\\./


accept local_parts = postmaster
domains = +local_domains


require verify = sender




accept hosts = +relay_from_hosts
control = submission


accept authenticated = *
control = submission


require message = relay not permitted
domains = +local_domains : +relay_to_domains


require verify = recipient




accept



acl_check_data:




accept




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}'}}












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



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




begin retry




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





begin rewrite





begin authenticators


PLAIN:
driver = plaintext
server_set_id = $auth2
server_prompts = :
server_condition = ${lookup mysql{SELECT `username` FROM \
`mailbox` WHERE `username` = \
'${quote_mysql:$auth2}' AND `password` = \
'${quote_mysql:$auth3}'}{yes}{no}}

server_advertise_condition = ${if def:tls_cipher }


LOGIN:
driver = plaintext
server_set_id = $auth1
server_prompts = <| Username: | Password:
server_condition = ${lookup mysql{SELECT `username` FROM \
`mailbox` WHERE `username` = \
'${quote_mysql:$auth1}' AND `password` = \
'${quote_mysql:$auth2}'}{yes}{no}}

server_advertise_condition = ${if def:tls_cipher }

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

[/more]

и еще момент, как переместить почту из /var/spool/exim в, скажем, /mail/exim/spool ?
Автор: osipen
Дата сообщения: 01.11.2007 22:04
Доброе время!!!
MTA Exim пишет лог
/var/log/exim/mainlog
если я отправляю письмо на внешний ящик то:
2007-11-01 15:15:16 1InYwC-0003GU-TL => vasya@pupkin.ru R=dnslookup T=remote_smtp H=mx.pupkin.ru [xxx.xxx.xxx.xxx]
если я отправляю посьмо на локольный ящик то:
2007-11-01 15:23:11 1InZ4m-0003H3-EY => /usr/local/mail/pupkin.ru/vasya/Maildir <vasya@pupkin.ru> R=virtual_domains T=virtual_delivery

Как мне исправить что бы Exim писал при отправке локального письма сообщение такое ще что на внешние домены.
Автор: tankistua
Дата сообщения: 01.11.2007 22:35
osipen
а теперь пожалуйста по-русски и внятно - надо то чего ?

Добавлено:
Orm

Код: # Valid UID range for users, defaults to 500 and above. This is mostly
# to make sure that users can't log in as daemons or other system users.
# Note that denying root logins is hardcoded to dovecot binary and can't
# be done even if first_valid_uid is set to 0.
first_valid_uid = 299
last_valid_uid = 301

# Valid GID range for users, defaults to non-root/wheel. Users having
# non-valid GID as primary group ID aren't allowed to log in. If user
# belongs to supplementary groups with non-valid GIDs, those groups are
# not set.
first_valid_gid = 299
last_valid_gid = 301
Автор: Orm
Дата сообщения: 02.11.2007 01:07
вот кусок из вышеприведенного конфига

...
mail_location = maildir:/var/spool/exim/%d/%u
mail_extra_groups = mail
mail_debug = yes
verbose_proctitle = yes

first_valid_uid = 26
last_valid_uid = 26

first_valid_gid = 6
last_valid_gid = 6
...





Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

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


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