Снова exim

Knoppix

Модераторы: Warderer, Модераторы разделов

Ответить
CheGevara80
Сообщения: 85
ОС: aasp

Снова exim

Сообщение CheGevara80 »

Есть вопрос по поводу правильного конфигурирования 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
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Снова exim

Сообщение Ленивая Бестолочь »

iУведомление от модератора
переношу в debian.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Снова exim

Сообщение sash-kan »

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

CheGevara80 писал(а):
17.08.2009 18:14
Или надо свой файл конфигурации создать, подобно вот этому, например http://www.lissyara.su/?id=1194
ни в коем случае. древние руководства (к любой программе) можно рассматривать только как тему для размышления. а в данном случае — особенно. ставлю шесть пачек чая против шкуры дохлого бизона, что если современному debian-овскому exim-у подсунуть конфигурационный файл из этого руководства, exim этот конфигурационный файл использовать просто откажется.

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#


шесть пачек чааяяя... моя прелееессссттьь... :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Снова exim

Сообщение sash-kan »

Ленивая Бестолоч...
ничего не понял.
если ты подсунул exim-у лиссяровский bsd-ишный конфиг и exim его схавал не заругавшись, шесть пачек чая ждут тебя (улыбка).

p.s. и что, в натуре удобно работать с монстрообразным конфигом? я когда-то пробовал. об стену, конечно, убиваться не стал, но split configuration вернул обратно.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora
Контактная информация:

Re: Снова exim

Сообщение arkhnchul »

и в коем случае. древние руководства (к любой программе) можно рассматривать только как тему для размышления. а в данном случае — особенно. ставлю шесть пачек чая против шкуры дохлого бизона, что если современному debian-овскому exim-у подсунуть конфигурационный файл из этого руководства, exim этот конфигурационный файл использовать просто откажется.

и мне чаю, и мне!! все там работает.
по поводу конфига - мне лично проще поиском найти нужную опцию в одном файле, чем перелопачивать несколько...
Losing is fun!
Спасибо сказали:
CheGevara80
Сообщения: 85
ОС: aasp

Re: Снова exim

Сообщение CheGevara80 »

В английском не силен, а так бы с удовольствием почитал, в инете у той же лисы нашел переводы манов по эксиму, но они все где 2006 год, т.е. старые конфиги, мож кто нашел доброго переводчика, подкинте ссылку.
И еще usr/share/doc/exim4-base/examples/example.conf.gz лежит конфиг вроде как с понятными опциями, мож его использовать?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Снова exim

Сообщение sash-kan »

arkhnchul писал(а):
18.08.2009 09:18
и мне чаю, и мне
на вас не напасёсси!

arkhnchul писал(а):
18.08.2009 09:18
чем перелопачивать несколько
откройте для себя опцию «-r» программы grep.

в конце концов, если уж приспичит, можно поглядеть на одну большую колбасу:
$ less /var/lib/exim4/config.autogenerated
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Снова exim

Сообщение Ленивая Бестолочь »

sash-kan писал(а):
18.08.2009 22:00
откройте для себя опцию «-r» программы grep.

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

хоть я и люблю и обожаю debconf и вообще debian-way настройки всего, в случае с exim мне он не дался. слишком странных вещей я хочу от экзима, и слишком много рядовых (по мнению мейнтейнеров дебиан) не хочу.

насчет монолитного конфига: дебиановский экзим воспринимеат сначала конфиг /etc/exim4/exim4.conf, а затем свои debconf-овские варианты, о чем прямо написано в пункте 2.1.6 (вроде) README.debian в доках в exim4-daemon-heavy.

в пользу раздельного конфига могу сказать только одну вещь - его проще обновлять одновременно на 500 серверах. хотя я со своим монолитным обхожусь diff/patch.


sash-kan писал(а):
18.08.2009 22:00
в конце концов, если уж приспичит, можно поглядеть на одну большую колбасу:

а еще дебиановский кофиг чуть более, чем на половину состоит из строк типа
.ifdef MAIN_ROUTER_INTERNET_SETTING1
.....
.endif
что добавляет новых опций для запоминания в экзим, который и так нельзя назвать элементарным.

CheGevara80 писал(а):
18.08.2009 10:51
но они все где 2006 год

ничего страшного.
CheGevara80 писал(а):
18.08.2009 10:51
мож его использовать

мож. в любом случае - настройка почтового релея дело сугубо индивидуальное и зависит от ваших целей и спобосов решения, которым вы хотите следовать.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Ответить