Простой whitelist на Exim

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Truewar-6.5.88
ефрейтор
Сообщения: 55
Зарегистрирован: 2007-07-31 7:35:18
Откуда: Монголия Булган
Контактная информация:

Простой whitelist на Exim

Непрочитанное сообщение Truewar-6.5.88 » 2007-07-31 12:15:51

Есть таблица "белых" ip типа: [id, relay_ip, type] (ождна таблица на белыйе и черные адреса. Различаются параметром type )
Из нее запросом mysql формируется hostlist.

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

hostlist   	whitelist_hosts		= ${lookup mysql{SELECT relay_ip FROM blacklist WHERE type='WHITE' \
				  and (relay_ip		='${quote_mysql:${sender_host_address}}' \
				  or relay_ip		='${quote_mysql:${mask:$sender_host_address/24}}')}}	
Аксептить пробовал строками:

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

accept
hosts			= +whitelist_hosts
Но у меня все равно письма с "белых" ip проверяются greylist'ом. Мне нужно, чтобы письмо сразу аксептилось.
Что я делаю не так?
Если я скажу что-то, что можно понимать двояко и один из вариантов беспокоит Вас - я имел в виду другой.

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Простой whitelist на Exim

Непрочитанное сообщение Alex Keda » 2007-07-31 12:36:36

поиск вернёт столбец адресов, а не список разделённый двоеточиями.
лучше сделай поиск оп конкретному IP там где это необходимо с результатом yes/no
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Truewar-6.5.88
ефрейтор
Сообщения: 55
Зарегистрирован: 2007-07-31 7:35:18
Откуда: Монголия Булган
Контактная информация:

Re: Простой whitelist на Exim

Непрочитанное сообщение Truewar-6.5.88 » 2007-07-31 12:52:42

Я же проверку делаю:
and (relay_ip ='${quote_mysql:${sender_host_address}}' \
or relay_ip ='${quote_mysql:${mask:$sender_host_address/24}}')}}
В таблице нету одинаковых ip...

А если с yes/no, то это будет так:

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

WHITELIST = SELECT relay_ip FROM blacklist WHERE type='WHITE' \
	    and (relay_ip='${quote_mysql:${sender_host_address}}' \
	    or relay_ip='${quote_mysql:${mask:$sender_host_address/24}}')
А аксептить так:

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

 
accept   condition = ${lookup mysql{WHITELIST}{yes}{no}}

Я правильно понял?
Если я скажу что-то, что можно понимать двояко и один из вариантов беспокоит Вас - я имел в виду другой.

Аватара пользователя
Truewar-6.5.88
ефрейтор
Сообщения: 55
Зарегистрирован: 2007-07-31 7:35:18
Откуда: Монголия Булган
Контактная информация:

Re: Простой whitelist на Exim

Непрочитанное сообщение Truewar-6.5.88 » 2007-07-31 13:14:48

Попробовал с yes\no, как написал тут.
Все заработало!
СпасибО!
Если я скажу что-то, что можно понимать двояко и один из вариантов беспокоит Вас - я имел в виду другой.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Простой whitelist на Exim

Непрочитанное сообщение dikens3 » 2007-07-31 13:15:39

В догонку, раз уж стал писать до твоего ответа. :-)

Список разделённый : делается так:

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

# Заблокированные E-Mail'ы
MYSQL_BAD_EMAILS        = SELECT email FROM block_emails
...
...
# Прибиваем плохие E-Mail'ы и домены
  deny      message      = You are blocked !
            senders      = ${sg{${lookup mysql{MYSQL_BAD_EMAILS}}}{\n}{:}}
...
...
Список по IP-Адресам можно проверять так:

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

# Белый список IP-Адресов
MYSQL_WHITELISTIP       = SELECT ip FROM white_list_ip WHERE ip = '$sender_host_address' LIMIT 1
...
...
# Принимаем, если IP-Адрес в белом списке
  accept    domains       = +local_domains
            hosts         = mysql; MYSQL_WHITELISTIP
            endpass
            message       = "Unknown user"
            verify        = recipient
...
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.