Есть вопрос по поводу правильного конфигурирования exim4, дело в том во все мануалы идут с готовыми конфигами, у меня директории /etc/exim4 следущее:
drwxr-xr-x 9 root root 4096 Авг 17 17:14 conf.d
-rw-r--r-- 1 root root 75893 Сен 30 2008 exim4.conf.template
-rw-r----- 1 root Debian-exim 204 Сен 30 2008 passwd.client
-rw-r--r-- 1 root root 1024 Авг 17 17:52 update-exim4.conf.conf
Объясните неведомому, конкретно где какие файлы и за что отвечают, и почему конфигурация файла exim4.conf.template идет на каком то своем языке,
ну типа:
.ifndef MAIN_PRIMARY_HOSTNAME_AS_QUALIFY_DOMAIN
.ifndef MAIN_QUALIFY_DOMAIN
qualify_domain = ETC_MAILNAME
.else
qualify_domain = MAIN_QUALIFY_DOMAIN
.endif
.endif
# listen on all all interfaces?
.ifdef MAIN_LOCAL_INTERFACES
local_interfaces = MAIN_LOCAL_INTERFACES
.endif
Откуда берутся эти параметры, надо их вводить, или утилита dpkg-reconfigure exim4-config должна там все изменить
Или надо свой файл конфигурации создать, подобно вот этому, например http://www.lissyara.su/?id=1194
Снова exim
Модераторы: Warderer, Модераторы разделов
- Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Снова exim
i Уведомление от модератора переношу в debian.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Re: Снова exim
CheGevara80
у вас явно умолчальная схема «split config». т.е. конфигурационный файл разбит на мелкие части. они находятся в каталоге /etc/exim4/conf.d/.
читайте подробнее про exim в debian:
$ less /usr/share/doc/exim4-base/README.Debian.gz
или
$ w3m /usr/share/doc/exim4-base/README.Debian.html
p.s. для хорошего старта вам, как новичку, будет более чем достаточно пройти процедуру минимальной настройки:
$ sudo dpkg-reconfigure exim4-config
причём в большинстве диалогов (особенно непонятных поначалу) скорее всего подойдёт просто нажать «enter». а можно сразу параллельно читать приведённый мною выше документ. чтобы уж не щёлкать по «enter» совсем бездумно.
p.p.s. то, что изменяет эта команда, полностью укладывается в «мета»-конфигурационный файл /etc/exim4/update-exim4.conf.conf. это самые базовые настройки. лезть глубже (в /etc/exim4/conf.d/) на начальных порах очень не рекомендую.
у вас явно умолчальная схема «split config». т.е. конфигурационный файл разбит на мелкие части. они находятся в каталоге /etc/exim4/conf.d/.
читайте подробнее про exim в debian:
$ less /usr/share/doc/exim4-base/README.Debian.gz
или
$ w3m /usr/share/doc/exim4-base/README.Debian.html
ни в коем случае. древние руководства (к любой программе) можно рассматривать только как тему для размышления. а в данном случае — особенно. ставлю шесть пачек чая против шкуры дохлого бизона, что если современному debian-овскому exim-у подсунуть конфигурационный файл из этого руководства, exim этот конфигурационный файл использовать просто откажется.CheGevara80 писал(а): ↑17.08.2009 18:14Или надо свой файл конфигурации создать, подобно вот этому, например http://www.lissyara.su/?id=1194
p.s. для хорошего старта вам, как новичку, будет более чем достаточно пройти процедуру минимальной настройки:
$ sudo dpkg-reconfigure exim4-config
причём в большинстве диалогов (особенно непонятных поначалу) скорее всего подойдёт просто нажать «enter». а можно сразу параллельно читать приведённый мною выше документ. чтобы уж не щёлкать по «enter» совсем бездумно.
p.p.s. то, что изменяет эта команда, полностью укладывается в «мета»-конфигурационный файл /etc/exim4/update-exim4.conf.conf. это самые базовые настройки. лезть глубже (в /etc/exim4/conf.d/) на начальных порах очень не рекомендую.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
- Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Снова exim
Код: Выделить всё
rbpost:/etc/exim4# dpkg --list| grep exim
ii exim4-base 4.69-9 support files for all Exim MTA (v4) packages
ii exim4-config 4.69-9 configuration for the Exim MTA (v4)
ii exim4-daemon-heavy 4.69-9 Exim MTA (v4) daemon with extended features,
rbpost:/etc/exim4# cat exim4.conf| egrep -v '^#|^$'
CONFDIR = /etc/exim4
primary_hostname = rbpost.yyyyybank.ru
disable_ipv6 = true
daemon_smtp_ports = 25 : 465
system_filter = /etc/exim4/filter.spam.conf
smtp_banner = $smtp_active_hostname ESMTP server ready
hostlist relay_from_hosts = 127.0.0.1 : 172.16.16.0/20 : 192.168.0.0/16 : 10.128.0.0/9 : 172.25.13.0/24 : 172.25.12.0/24 : 172.16.33.0/24 : 172.16.34.0/24 : 172.16.253.0/24 : 192.168.192.46 : 192.168.192.20 : 192.168.192.56 : 192.168.192.40 : 192.168.192.52 : 192.168.192.42 : 192.168.192.44 : 172.30.12.141 : 172.30.12.140 : 172.16.252.74 : 172.16.253.102 : 172.25.11.0/24 : 172.19.65.0/24 : 172.16.116.0/24 : 172.16.116.240 : 172.16.117.0/24 : 172.16.41.0/24 : 172.19.65.0/24 : 10.178.1.0/24 : 10.10.30.0/24 : 10.10.31.0/24
domainlist local_domains = @ : localhost
domainlist virt_domains = yyyyybank.ru : zzzzbank.ru : *.yyyyybank.ru
domainlist servers = digger.tttttbank.spb.ru : electra.tttttbank.spb.ru : beholder.tttttbank.spb.ru : manager3.tttttbank.spb.ru : manager4.bank.xxxx.ru : manager3-r.bank.xxxx.ru : integra.bank.xxxx.ru : bank.xxxx.ru #: xxxx.ru
domainlist our_domains = +local_domains : +virt_domains : +servers
domainlist relay_to_domains =
DCsmarthost = mailhub.xxxx.ru
XXXXsmarthost = corpost.bank.xxxx.ru
RElay1=relay-1.xxxx.ru
RElay2=relay-2.xxxx.ru
qualify_domain = yyyyybank.ru
acl_smtp_connect = acl_check_connect
acl_smtp_helo = acl_check_helo
acl_smtp_mail = acl_check_mail
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_mime = acl_check_mime
acl_smtp_data = acl_check_data
ldap_default_servers = lain.yyyyybank.ru::389 : rena.yyyyybank.ru::389
LDAPU = ou=users,dc=yyyyybank,dc=ru
LDAPM = ou=users,dc=yyyyybank,dc=ru
LDAPA = ou=aliases,dc=yyyyybank,dc=ru
LDAPE = dc=yyyyybank,dc=ru
spamd_address = /var/run/spamd_socket
message_size_limit = 20M
DEFAULT_QUOTA = 150M
never_users = root
smtp_enforce_sync = yes
accept_8bitmime = yes
rfc1413_query_timeout = 0s
freeze_tell = postmaster@yyyyybank.ru
split_spool_directory = true
allow_mx_to_ip = no
pipelining_advertise_hosts = :
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
auto_thaw = 2h
bounce_return_body = yes
bounce_return_size_limit = 50K
bounce_sender_authentication = MAILER-DAEMON@yyyyybank.ru
delay_warning = 2h:8h:365d
errors_reply_to = postmaster@yyyyybank.ru
queue_run_max = 10
recipients_max = 100
smtp_accept_max = 50
smtp_accept_max_per_host = 5
smtp_accept_max_per_connection = 20
smtp_accept_queue_per_connection = 100
smtp_connect_backlog = 100
perl_startup = do '/etc/exim4/conv.pl'
headers_charset = "koi8-r"
received_header_text = Received: \
${if def:sender_rcvhost {from $sender_rcvhost\n\t}\
{${if def:sender_ident {from $sender_ident }}\
${if def:sender_helo_name {(helo=$sender_helo_name)\n\t}}}}\
${if def:authenticated_id {authenticated as $authenticated_id\n\t}}\
by $primary_hostname \
${if def:received_protocol {with $received_protocol}} \
${if def:tls_cipher {($tls_cipher)\n\t}}\
(Exim $version_number)\n\t\
id $message_id\
${if def:received_for {\n\tfor $received_for}}
av_scanner = clamd:/var/run/clamav/clamd.ctl
spool_directory = /var/spool/exim4
begin acl
acl_check_connect:
accept
hosts = +relay_from_hosts : mailhub.xxxx.ru
deny
message = "rejected because $sender_host_address is not valid"
acl_check_helo:
accept
acl_check_mail:
deny
hosts = !DCsmarthost : !XXXXsmarthost : !RElay1 : !RElay2 : +relay_from_hosts
sender_domains = !+our_domains
message = "Error: sender address is not in local domain list."
accept
delay = 0s
acl_check_rcpt:
accept
hosts = :
deny
message = Restricted characters in address
domains = +our_domains
local_parts = ^[.] : ^.*[@%!/|]
deny
message = Restricted characters in address
domains = !+our_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept
local_parts = all_users
domains = +our_domains
set acl_m0 = ${lookup ldap \
{ldap:///LDAPU?uid?sub?(mail=${quote_ldap:$sender_address})}\
{$value} fail}
condition = ${lookup ldap \
{user=cn=exim_sprayer,ou=services,dc=yyyyybank,dc=ru pass=ttttttt ldap:///cn=sprayers,ou=groups,dc=yyyyybank,dc=ru?memberUid?base?(memberUid=$acl_m0)}\
{yes} {no}}
accept
local_parts = postmaster : abuse
domains = +our_domains
accept
domains = +virt_domains
condition = ${lookup ldapm \
{ldap:///LDAPU??sub?(|(mailForward=${quote_ldap:$local_part@$domain})(mail=${quote_ldap:$local_part@$domain}))} {yes} {no} \
}
verify = recipient
accept
domains = +virt_domains
endpass
condition = ${lookup ldapm \
{ldap:///LDAPA??sub?(mailAlias=${quote_ldap:$local_part@$domain})} {yes} {no} \
}
verify = recipient
accept
hosts = +relay_from_hosts
accept
domains = +relay_to_domains
endpass
verify = recipient
deny
message = "relay not permitted"
acl_check_mime:
#decoding mime's (for antivirus and stuff)
warn decode = default
#rejucting mail with executables included
deny message = Executable files are not allowed!
condition = ${if match \
{${lc:$mime_filename}} \
{\N(\.exe|\.cpl|\.pif|\.bat|\.scr|\.lnk|\.com|\.cmd|\.js|\.vbs)$\N} \
{1}{0}}
accept
acl_check_data:
deny
message = "This message contains malware ($malware_name)"
malware = */defer_ok
demime = *
warn
spam = Debian-exim:true
# message = X-Spam_score: $spam_score\n\
# X-Spam_score_int: $spam_score_int\n\
# X-Spam_bar: $spam_bar\n\
# X-Spam_report: $spam_report
message = X-Spam-Flag: YES\n\
X-Warning: NYYAA\n\
X-Spam-Score: $spam_score\n\
X-Spam-Level: $spam_bar\n\
X-Spam-Report: $spam_report
accept
begin routers
smarthost_ldap_check_from:
driver = manualroute
domains = ! +virt_domains
condition = ${if match {$sender_address_domain} {yyyyybank\.ru} {yes} {no}}
headers_remove = "From"
headers_add = From: ${rfc2047:\
${perl{utf2koi}{ \
${lookup ldap \
{ldap:///LDAPU?cn?sub?(&(objectClass=mailUser)(mail=${quote_ldap:$sender_address}))} \
{$value} fail}}}} \
<$sender_address>
transport = remote_smtp_smarthost
route_list = bank.xxxx.ru VEFKsmarthost; \
#xxxx.ru VEFKsmarthost; \
* DCsmarthost
host_find_failed = freeze
no_more
smarthost:
driver = manualroute
domains = ! +virt_domains
transport = remote_smtp_smarthost
route_list = bank.xxxx.ru XXXXsmarthost; \
#xxxx.ru XXXXsmarthost; \
* DCsmarthost
host_find_failed = freeze
no_more
system_aliases:
domains = +virt_domains
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
user = mail
group = mail
file_transport = address_file
pipe_transport = address_pipe
ldap_everyone:
driver = redirect
domains = +virt_domains
allow_fail
allow_defer
condition = ${if eq {${local_part}} {all_users} {yes} {no}}
data = ${lookup ldapm \
{ldap:///LDAPU?mail?sub?(&(objectClass=mailUser)(mail=*@yyyyybank.ru))}\
{$value} fail}
headers_remove = From : Return-Path : Reply-To
headers_add = From: ${rfc2047:\
${perl{utf2koi}{"Общая Рассылка"}}} \
<noreply@yyyyybank.ru>
user = mail
group = mail
file_transport = address_file
pipe_transport = address_pipe
ldap_forward:
driver = redirect
domains = +virt_domains
allow_fail
allow_defer
data = ${lookup ldap \
{ldap:///LDAPU?mailForward?sub?(&(objectClass=mailUser)(mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}\
{$value} fail}
user = mail
group = mail
file_transport = address_file
pipe_transport = address_pipe
ldap_aliases:
driver = redirect
domains = +virt_domains
allow_fail
allow_defer
data = ${lookup ldap \
{ldap:///ou=aliases,dc=yyyyybank,dc=ru?mailAliasedName?sub?(&(objectClass=mailAlias)(mailAlias=${quote_ldap:$local_part@$domain}))}\
{$value} fail}
user = mail
group = mail
file_transport = address_file
pipe_transport = address_pipe
ldap_mail_check_from:
driver = redirect
allow_fail
allow_defer
condition = ${if match {$sender_address_domain} {yyyyybank\.ru} {yes} {no}}
data = ${lookup ldap \
{ldap:///LDAPU?uid?sub?(&(objectClass=mailUser)(mail=${quote_ldap:$local_part@$domain}))}\
{$value} fail}
headers_remove = "From"
headers_add = From: ${rfc2047:\
${perl{utf2koi}{ \
${lookup ldap \
{ldap:///LDAPU?cn?sub?(&(objectClass=mailUser)(mail=${quote_ldap:$sender_address}))} \
{$value} fail}}}} \
<$sender_address>
user = mail
group = mail
file_transport = address_file
pipe_transport = address_pipe
ldap_mail:
driver = redirect
domains = +virt_domains
allow_fail
allow_defer
data = ${lookup ldap \
{ldap:///LDAPU?uid?sub?(&(objectClass=mailUser)(mail=${quote_ldap:$local_part@$domain}))}\
{$value} fail}
user = mail
group = mail
file_transport = address_file
pipe_transport = address_pipe
ldap_user:
driver = accept
domains = +virt_domains
local_parts = ldap; \
ldap::///LDAPU?userid?sub?\
(&(objectClass=mailUser)(uid=${quote_ldap:$local_part}))
transport = maildir
user = mail
group = mail
cannot_route_message = Unknown user
begin transports
remote_smtp_smarthost:
debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
driver = smtp
remote_smtp:
driver = smtp
mailbox:
debug_print = "T: appendfile for $local_part@$domain"
driver = appendfile
file = /var/spool/mailbox/$local_part
delivery_date_add
envelope_to_add
return_path_add
user = mail
group = mail
mode = 0660
no_mode_fail_narrower
maildir:
debug_print = "T: appendfile for $local_part@$domain"
driver = appendfile
#transport_filter = /usr/local/sbin/correct-mail-from
directory = /var/spool/maildir/$local_part/Maildir
maildir_format = true
quota = ${lookup ldap{ldap:///LDAPU?mailQuota?sub?(&(objectClass=mailUser)(uid=${local_part}))}{$value}{DEFAULT_QUOTA}}
quota_warn_threshold = 85%
quota_warn_message ="\
To: $local_part@$domain\n\
Cc: postmaster@yyyyybank.ru\n\
Subject: [$local_part@$domain]Warning - Almost out of email space\n\
This is an automated email.\n\
\n\
The storage space used by your emails has \
almost exceeded the allowed limit of quota.\n\
Please delete some emails, especially those \
with attachments, to free up space.\n\
Otherwise email will stop being delivered. \
If you have any questions please call UIT.\n"
create_directory
delivery_date_add
envelope_to_add
return_path_add
user = mail
group = mail
mode = 0660
no_mode_fail_narrower
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
user = $local_part
mode = 0660
no_mode_fail_narrower
address_pipe:
driver = pipe
return_output
address_file:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
address_reply:
driver = autoreply
begin retry
* * F,1h,10m; G,2d,1h,2;
begin rewrite
begin authenticators
plain:
driver = plaintext
public_name = PLAIN
server_condition = ${if ldapauth \
{user=${quote_ldap:\
${lookup ldapdn {ldap:///LDAPU?dn?sub?\
(&(objectClass=mailUser)(mail=${quote_ldap:$2@rbtest.xxxx.ru}))} \
{$value} fail} \
pass=${quote:$3} \
ldap:///}{yes}{no}}
server_set_id = $2
server_prompts = :
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${if ldapauth \
{user=${quote_ldap:\
${lookup ldapdn {ldap:///LDAPU?dn?sub?\
(&(objectClass=mailUser)(mail=${quote_ldap:$1@rbtest.xxxx.ru}))} \
{$value} fail}} \
pass=${quote:$2} \
ldap:///}{yes}{no}}
server_set_id = $1
rbpost:/etc/exim4#
шесть пачек чааяяя... моя прелееессссттьь... :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Re: Снова exim
Ленивая Бестолоч...
ничего не понял.
если ты подсунул exim-у лиссяровский bsd-ишный конфиг и exim его схавал не заругавшись, шесть пачек чая ждут тебя (улыбка).
p.s. и что, в натуре удобно работать с монстрообразным конфигом? я когда-то пробовал. об стену, конечно, убиваться не стал, но split configuration вернул обратно.
ничего не понял.
если ты подсунул exim-у лиссяровский bsd-ишный конфиг и exim его схавал не заругавшись, шесть пачек чая ждут тебя (улыбка).
p.s. и что, в натуре удобно работать с монстрообразным конфигом? я когда-то пробовал. об стену, конечно, убиваться не стал, но split configuration вернул обратно.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Снова exim
и в коем случае. древние руководства (к любой программе) можно рассматривать только как тему для размышления. а в данном случае — особенно. ставлю шесть пачек чая против шкуры дохлого бизона, что если современному debian-овскому exim-у подсунуть конфигурационный файл из этого руководства, exim этот конфигурационный файл использовать просто откажется.
и мне чаю, и мне!! все там работает.
по поводу конфига - мне лично проще поиском найти нужную опцию в одном файле, чем перелопачивать несколько...
Losing is fun!
-
- Сообщения: 85
- ОС: aasp
Re: Снова exim
В английском не силен, а так бы с удовольствием почитал, в инете у той же лисы нашел переводы манов по эксиму, но они все где 2006 год, т.е. старые конфиги, мож кто нашел доброго переводчика, подкинте ссылку.
И еще usr/share/doc/exim4-base/examples/example.conf.gz лежит конфиг вроде как с понятными опциями, мож его использовать?
И еще usr/share/doc/exim4-base/examples/example.conf.gz лежит конфиг вроде как с понятными опциями, мож его использовать?
Re: Снова exim
на вас не напасёсси!
откройте для себя опцию «-r» программы grep.
в конце концов, если уж приспичит, можно поглядеть на одну большую колбасу:
$ less /var/lib/exim4/config.autogenerated
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
- Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Снова exim
ну - редактирование конфига экзима не всегда сводится к замене одной строки на другую.
в моем случае это часто так: "тээк, если вот эту ацль вытащить вон в тот роутер, при условии, что глобальная опция будет объявлена, то вот этот транспорт можно убрать"
хоть я и люблю и обожаю debconf и вообще debian-way настройки всего, в случае с exim мне он не дался. слишком странных вещей я хочу от экзима, и слишком много рядовых (по мнению мейнтейнеров дебиан) не хочу.
насчет монолитного конфига: дебиановский экзим воспринимеат сначала конфиг /etc/exim4/exim4.conf, а затем свои debconf-овские варианты, о чем прямо написано в пункте 2.1.6 (вроде) README.debian в доках в exim4-daemon-heavy.
в пользу раздельного конфига могу сказать только одну вещь - его проще обновлять одновременно на 500 серверах. хотя я со своим монолитным обхожусь diff/patch.
а еще дебиановский кофиг чуть более, чем на половину состоит из строк типа
.ifdef MAIN_ROUTER_INTERNET_SETTING1
.....
.endif
что добавляет новых опций для запоминания в экзим, который и так нельзя назвать элементарным.
ничего страшного.
мож. в любом случае - настройка почтового релея дело сугубо индивидуальное и зависит от ваших целей и спобосов решения, которым вы хотите следовать.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.