Кто подскажет как сделать whitelist (не простой)exim?
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Кто подскажет как сделать whitelist (не простой)exim?
Задача следующая: Мне надо вообще запретить почту, чтоб юзер немог принимать почту от юзера которого нету в whitelist как это сделать? Внимание у меня только exim спам прог нету
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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?
Код: Выделить всё
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 = это был не наш человек!
Верить никому нельзя

Делай как нибудь, а как надо - само получится!
- bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Re: Кто подскажет как сделать whitelist (не простой)exim?
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 = это был не наш человек!
Верить никому нельзя, так что лучше проверить писанину.
в логах пишет ошибку синтаксическую ошибку:
Код: Выделить всё
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"

- mastertron
- мл. сержант
- Сообщения: 107
- Зарегистрирован: 2009-02-06 20:48:53
- Откуда: Украина, Одесса
Re: Кто подскажет как сделать whitelist (не простой)exim?
Код: Выделить всё
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"

Не сообразил сразу, чего с чем проверять, попробуйте так.
Код: Выделить всё
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?
mastertron писал(а):Код: Выделить всё
condition = ${if eq{}{${lookup mysql{SELECT email FROM whitelist WHERE email = '${quote_mysql:$sender_address}'}}}{no}{yes}}
Если так .... То тогда так как такового whitelist нету! все письма пропускает
А хотя должен от одного, я в базу одного вписал доверенного

- mastertron
- мл. сержант
- Сообщения: 107
- Зарегистрирован: 2009-02-06 20:48:53
- Откуда: Украина, Одесса
Re: Кто подскажет как сделать whitelist (не простой)exim?
А из двух примеров слепить один правильный .. может получится?
Делай как нибудь, а как надо - само получится!
- mastertron
- мл. сержант
- Сообщения: 107
- Зарегистрирован: 2009-02-06 20:48:53
- Откуда: Украина, Одесса
Re: Кто подскажет как сделать whitelist (не простой)exim?
Код: Выделить всё
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?
Теперь такой прикол: адреса блокируются те которые находятся в whitelist, а те адреса которых нету там всё нормально..........получается типа blacklistmastertron писал(а):Вот ...Код: Выделить всё
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 = это был не наш человек!

- mastertron
- мл. сержант
- Сообщения: 107
- Зарегистрирован: 2009-02-06 20:48:53
- Откуда: Украина, Одесса
Re: Кто подскажет как сделать whitelist (не простой)exim?
Так все ж решается просто, запишите туда всех, а оставте кого нада ..
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)

Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)
Делай как нибудь, а как надо - само получится!
- bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Re: Кто подскажет как сделать whitelist (не простой)exim?
кого всех? я ж не знаю от кого мне письмо прийдёт,а вдруг оно мне нужноmastertron писал(а):Так все ж решается просто, запишите туда всех, а оставте кого нада ..![]()
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)

- bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Re: Кто подскажет как сделать whitelist (не простой)exim?
mastertron писал(а):Так все ж решается просто, запишите туда всех, а оставте кого нада ..![]()
Поменяйте местами yes / no. (хотя у меня работало, лень было, но вписал)
кого всех? я ж не знаю от кого мне письмо прийдёт,а вдруг оно мне нужно

Может я не правильно вставляю (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:
А ВОТ ТУТ Я ВСТАВЛЯЮ
- mastertron
- мл. сержант
- Сообщения: 107
- Зарегистрирован: 2009-02-06 20:48:53
- Откуда: Украина, Одесса
Re: Кто подскажет как сделать whitelist (не простой)exim?
Не знаю, можно ли тут столько писать ... ( чтоб не забанили )
У вас exim с mysql и с базой все нормально? Таблица whitelist, есть поле email, в котором записи вида user@domain.ru ?
Да, с дислокацией правила все верно, именно там и вставлял для теста, если адрес отправителя есть в таблице whitelist в поле email то пропускает, если не находит такого - блокирует ( все же вконце {}{yes}{no}} ).
Вобсчето идея была вам немного ( именно немного ) помочь. Сравните правила с другими, например которые описаны в разделе полезностей, поиграйтесь.
Для отладки можно вместо deny записать warn , тогда сервак продолжит работать, а по логам - если запишет, значит сработало и т.д.
Успехов!
У вас exim с mysql и с базой все нормально? Таблица whitelist, есть поле email, в котором записи вида user@domain.ru ?
Да, с дислокацией правила все верно, именно там и вставлял для теста, если адрес отправителя есть в таблице whitelist в поле email то пропускает, если не находит такого - блокирует ( все же вконце {}{yes}{no}} ).
Вобсчето идея была вам немного ( именно немного ) помочь. Сравните правила с другими, например которые описаны в разделе полезностей, поиграйтесь.
Для отладки можно вместо deny записать warn , тогда сервак продолжит работать, а по логам - если запишет, значит сработало и т.д.
Успехов!
Делай как нибудь, а как надо - само получится!
- bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Re: Кто подскажет как сделать whitelist (не простой)exim?
Та всё вроде нормально с базой Работает!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?
Может вы при проверке отсылали с IP, указанных в relay_from_hosts ? ( которые указаны в исключении hosts = !... )
Я игрался так: чтоб тестить правила - закоментировал исключения, чтоб можно было тестить с хостов, которым разрешен релей, а правила condition писать по чуть-чуть, например:
В правило вписывайте свое мыло и вперед ... Если есть совпадения указанного мыла с тем, что в $sender_address, правило должно сработать и при отправке письма вы получите сообщение своей писанины. Если работает - следующий шаг, берем список для сравнения с базы mysql и сравниваем с пустотой {}, если в списке нет такого парня, то соответственно вернет пустоту и сравнение будет {} = {} then {yes} else {no}. Ну, я не спец, могу и ошибаться.
Я игрался так: чтоб тестить правила - закоментировал исключения, чтоб можно было тестить с хостов, которым разрешен релей, а правила 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
Делай как нибудь, а как надо - само получится!
- bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Re: Кто подскажет как сделать whitelist (не простой)exim?
вот у меня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 писал(а):вот у меня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?
mastertron писал(а):Так все ж решается просто, запишите туда всех, а оставте кого нада ..![]()
Поменяйте местами 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 = это был не наш человек!