Кто подскажет как сделать whitelist (не простой)exim?

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-01 12:54:16

Задача следующая: Мне надо вообще запретить почту, чтоб юзер немог принимать почту от юзера которого нету в whitelist как это сделать? Внимание у меня только exim спам прог нету

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-01 13:30:36

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

deny	message = only for official use
	    hosts	= !+relay_from_hosts
	    condition = ${if eq{lookup mysql{SELECT email FROM whitelist WHERE email = '$sender_address'}}}{}{no}{yes}}
	    log_message = это был не наш человек!
Ну эт при условии, что работа по адресу отправителя и исключения для правила верные ( кому разрешено отправлять письма в мир).
Верить никому нельзя :smile: , так что лучше проверить писанину.
Делай как нибудь, а как надо - само получится!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-13 13:25:11

mastertron писал(а):

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

deny	message = only for official use
	    hosts	= !+relay_from_hosts
	    condition = ${if eq{lookup mysql{SELECT email FROM whitelist WHERE email = '$sender_address'}}}{}{no}{yes}}
	    log_message = это был не наш человек!
Ну эт при условии, что работа по адресу отправителя и исключения для правила верные ( кому разрешено отправлять письма в мир).
Верить никому нельзя :smile: , так что лучше проверить писанину.

в логах пишет ошибку синтаксическую ошибку:

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

2010-10-13 13:22:00 H=f36.mail.ru [217.69.128.193] F=<nemezida1980@bk.ru> temporarily rejected RCPT <bobotol@univ.kiev.ua>: failed to expand ACL string "${if eq{ {${lookup mysql{SELECT email FROM whitelist WHERE email = '$sender_address'}}}}{no}{yes}}": missing 2nd string in {} after "eq"

Пробовал сам исправить не получается :fool:

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-13 14:38:49

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

2010-10-13 13:22:00 H=f36.mail.ru [217.69.128.193] F=<nemezida1980@bk.ru> temporarily rejected RCPT <bobotol@univ.kiev.ua>: failed to expand ACL string "${if eq{ {${lookup mysql{SELECT email FROM whitelist WHERE email = '$sender_address'}}}}{no}{yes}}": missing 2nd string in {} after "eq"
Ну да, как и обещал, проверять надо :smile:
Не сообразил сразу, чего с чем проверять, попробуйте так.

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

deny   message = only for official use
       hosts   = !+relay_from_hosts
       condition = ${if eq{}{${lookup mysql{SELECT email FROM whitelist WHERE email = '${quote_mysql:$sender_address}'}}}{no}{yes}}
       log_message = это был не наш человек!
Делай как нибудь, а как надо - само получится!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-13 14:49:20

mastertron писал(а):

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

condition = ${if eq{}{${lookup mysql{SELECT email FROM whitelist WHERE email = '${quote_mysql:$sender_address}'}}}{no}{yes}}
 


Если так .... То тогда так как такового whitelist нету! все письма пропускает

А хотя должен от одного, я в базу одного вписал доверенного :unknown:

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-13 15:44:50

А из двух примеров слепить один правильный .. может получится?
Делай как нибудь, а как надо - само получится!

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-13 15:54:36

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

deny   message = only for official use
       hosts   = !+relay_from_hosts
       condition = ${if eq{${lookup mysql{SELECT email FROM whitelist WHERE email = '${quote_mysql:$sender_address}'}}}{}{no}{yes}}
       log_message = это был не наш человек!
Вот ...
Делай как нибудь, а как надо - само получится!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-14 11:31:28

mastertron писал(а):

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

deny   message = only for official use
       hosts   = !+relay_from_hosts
       condition = ${if eq{${lookup mysql{SELECT email FROM whitelist WHERE email = '${quote_mysql:$sender_address}'}}}{}{no}{yes}}
       log_message = это был не наш человек!
Вот ...
Теперь такой прикол: адреса блокируются те которые находятся в whitelist, а те адреса которых нету там всё нормально..........получается типа blacklist :ROFL:

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-14 18:31:51

Так все ж решается просто, запишите туда всех, а оставте кого нада .. :-D
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)
Делай как нибудь, а как надо - само получится!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-14 22:23:45

mastertron писал(а):Так все ж решается просто, запишите туда всех, а оставте кого нада .. :-D
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)
кого всех? я ж не знаю от кого мне письмо прийдёт,а вдруг оно мне нужно :shock: .............. я тоже менял местами yes и no , но когда я так делаю то письма все начинают приходить как будто нету этого whitlist

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-14 22:29:42

mastertron писал(а):Так все ж решается просто, запишите туда всех, а оставте кого нада .. :-D
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)

кого всех? я ж не знаю от кого мне письмо прийдёт,а вдруг оно мне нужно :shock: .............. я тоже менял местами yes и no , но когда я так делаю то письма все начинают приходить как будто нету этого whitlist.
Может я не правильно вставляю (EXIM) не в том месте я тут вставляю:

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

begin acl

# This access control list is used for every RCPT command in an incoming
# SMTP message. The tests are run in order until the address is either
# accepted or denied.
acl_check_rcpt:

А ВОТ ТУТ Я ВСТАВЛЯЮ

сразу вначале после acl_check_rcpt

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-15 10:49:03

Не знаю, можно ли тут столько писать ... ( чтоб не забанили )
У вас exim с mysql и с базой все нормально? Таблица whitelist, есть поле email, в котором записи вида user@domain.ru ?
Да, с дислокацией правила все верно, именно там и вставлял для теста, если адрес отправителя есть в таблице whitelist в поле email то пропускает, если не находит такого - блокирует ( все же вконце {}{yes}{no}} ).
Вобсчето идея была вам немного ( именно немного ) помочь. Сравните правила с другими, например которые описаны в разделе полезностей, поиграйтесь.
Для отладки можно вместо deny записать warn , тогда сервак продолжит работать, а по логам - если запишет, значит сработало и т.д.
Успехов!
Делай как нибудь, а как надо - само получится!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-15 11:46:19

mastertron писал(а):Не знаю, можно ли тут столько писать ... ( чтоб не забанили )
У вас exim с mysql и с базой все нормально? Таблица whitelist, есть поле email, в котором записи вида user@domain.ru ?
Да, с дислокацией правила все верно, именно там и вставлял для теста, если адрес отправителя есть в таблице whitelist в поле email то пропускает, если не находит такого - блокирует ( все же вконце {}{yes}{no}} ).
Вобсчето идея была вам немного ( именно немного ) помочь. Сравните правила с другими, например которые описаны в разделе полезностей, поиграйтесь.
Для отладки можно вместо deny записать warn , тогда сервак продолжит работать, а по логам - если запишет, значит сработало и т.д.
Успехов!
Та всё вроде нормально с базой Работает!

Так тут же одно значение надо email:

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

mysql> select* from whitelist
    -> ;
+--------------------+
| email              |
+--------------------+
| nemezida1980@bk.ru |
+--------------------+
1 row in set (0.12 sec)

Хорошо попробую

Аватара пользователя
mastertron
мл. сержант
Сообщения: 107
Зарегистрирован: 2009-02-06 20:48:53
Откуда: Украина, Одесса

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение mastertron » 2010-10-15 14:12:25

Может вы при проверке отсылали с IP, указанных в relay_from_hosts ? ( которые указаны в исключении hosts = !... )
Я игрался так: чтоб тестить правила - закоментировал исключения, чтоб можно было тестить с хостов, которым разрешен релей, а правила condition писать по чуть-чуть, например:

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

deny   message = condition test
#       hosts   = !+relay_from_hosts
       condition = ${if eq{admin@mydomain.xa}{$sender_address}{yes}{no}}
       log_message = TEST condition for email $sender_address
В правило вписывайте свое мыло и вперед ... Если есть совпадения указанного мыла с тем, что в $sender_address, правило должно сработать и при отправке письма вы получите сообщение своей писанины. Если работает - следующий шаг, берем список для сравнения с базы mysql и сравниваем с пустотой {}, если в списке нет такого парня, то соответственно вернет пустоту и сравнение будет {} = {} then {yes} else {no}. Ну, я не спец, могу и ошибаться.
Делай как нибудь, а как надо - само получится!

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-15 14:30:27

mastertron писал(а):Может вы при проверке отсылали с IP, указанных в relay_from_hosts ? ( которые указаны в исключении hosts = !... )
Я игрался так: чтоб тестить правила - закоментировал исключения, чтоб можно было тестить с хостов, которым разрешен релей
вот у меня

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

domainlist local_domains = univ.kiev.ua : mail.univ.kiev.ua : rpd.univ.kiev.ua : econom.univ.kiev.ua
domainlist relay_to_domains = *.univ.kiev.ua
hostlist   relay_from_hosts = localhost : 10.0.0.0/8 : 91.202.128.0/22 : 193.41.88.0/24 : 195.39.242.0/23 : 193.254.221.0/24

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-15 14:31:57

bobot писал(а):
mastertron писал(а):Может вы при проверке отсылали с IP, указанных в relay_from_hosts ? ( которые указаны в исключении hosts = !... )
Я игрался так: чтоб тестить правила - закоментировал исключения, чтоб можно было тестить с хостов, которым разрешен релей
вот у меня

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

domainlist local_domains = univ.kiev.ua : mail.univ.kiev.ua : rpd.univ.kiev.ua : econom.univ.kiev.ua
domainlist relay_to_domains = *.univ.kiev.ua
hostlist   relay_from_hosts = localhost : 10.0.0.0/8 : 91.202.128.0/22 : 193.41.88.0/24 : 195.39.242.0/23 : 193.254.221.0/24
У меня так и получалось если письма с моей сети то это правило не срабатывало(так оно и должно быть)

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Кто подскажет как сделать whitelist (не простой)exim?

Непрочитанное сообщение bobot » 2010-10-21 13:38:43

mastertron писал(а):Так все ж решается просто, запишите туда всех, а оставте кого нада .. :-D
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)

Всё получилось я вот так сделал

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

deny   message = only for official use
          hosts   = !+relay_from_hosts
          condition = ${if eq{${lookup mysql{SELECT email FROM whitelist WHERE email = '$sender_address'}}}{}{yes}{no}}
          log_message = это был не наш человек!