exim для чайника: поиск в dbm-файле

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

exim для чайника: поиск в dbm-файле

Непрочитанное сообщение moury » 2009-07-07 9:11:42

Пытаюсь освоить exim, испытываю страшные трудности в понимании логики работы его acl и поиска.

Есть файл dbm, сделанный из текстового файла следующего формата:

Код: Выделить всё

<address>: <host>
Где <host> - либо ip-адрес, либо бекрезолв хоста.

Пожалуйста, напишите условие, чтобы почта с обратным адресом <address> принималась, если ее передает хост <host>

Я перепробовал больше десятка вариантов описания условий, с какого-то момента подставляя в condition все встретившиеся в google варианты, хоть как-то напоминающие решение моей задачи, поэтому не привожу их здесь специально.

Заранее спасибо.
Сисадмин - вождь апачей

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: exim для чайника: поиск в dbm-файле

Непрочитанное сообщение Laa » 2009-07-07 14:21:40

Обратный адрес e-mail? или IP?
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: exim для чайника: поиск в dbm-файле

Непрочитанное сообщение moury » 2009-07-07 14:27:11

Обратный адрес e-mail ($sender_address).
Сисадмин - вождь апачей

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: exim для чайника: поиск в dbm-файле

Непрочитанное сообщение Laa » 2009-07-07 16:11:44

file.dbm:

Код: Выделить всё

email1@domain:  12.3.4.5
email2@domain2: 13.4.5.6
exim.conf:

Код: Выделить всё

...
addresslist acl1_file = dbm;/usr/local/etc/exim/acl1_file.dbm
...
acl_check_mail:
...
 accept condition = ${if or \
 {${lookup{$sender_address} dbm{acl1_file}{$sender_host_address}}}\
 {${lookup{$sender_address} dbm{acl1_file}{$sender_host_name}}}\
}
 log_message = Permit by local policy -- dbm acl.
Это очень бегло на коленке и я не проверял... попробуйте сперва простой кондишен, а потом когда получится вместе с OR.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: exim для чайника: поиск в dbm-файле

Непрочитанное сообщение moury » 2009-07-09 13:20:33

Laa, большое спасибо. Ваш ответ очень помог. К сожалению, Ваш код при дословном воспроизведении не заработал.

Надеюсь, что другим начинающим админам экзима помогут заработавшие конструкции:

Код: Выделить всё

ACL1FILE= /etc/exim4/test_check_access.cf.db
...
accept
  condition = ${if eq \
   {$sender_host_address} \
   {${lookup{$sender_address}dbm{ACL1FILE}{$sender_host_address}}} \
    {yes}{no} \
   }
  log_message = Accepted by local policy - dbm acl1file
и

Код: Выделить всё

ACL1FILE= /etc/exim4/test_check_access.cf.db
...
accept
  hosts = ${lookup{$sender_address}dbm{ACL1FILE}{$sender_host_address}}
  log_message = Accepted by local policy acl1file
При этом, у меня в лог-файл содержимое log_message почему-то не пишется и строка

Код: Выделить всё

addresslist acl1_file = dbm;/usr/local/etc/exim/acl1_file.dbm
также игнорируется.
Сисадмин - вождь апачей

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: exim для чайника: поиск в dbm-файле

Непрочитанное сообщение Laa » 2009-07-09 14:24:59

Я же говорил, что писал на коленке, не проверял, а просто наброски сделал и дал, тому кому нужно -- дальше и сам сможет... :good: :drinks:
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!