Страница 1 из 1
Простой whitelist на Exim
Добавлено: 2007-07-31 12:15:51
Truewar-6.5.88
Есть таблица "белых" 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}}')}}
Аксептить пробовал строками:
Но у меня все равно письма с "белых" ip проверяются greylist'ом. Мне нужно, чтобы письмо сразу аксептилось.
Что я делаю не так?
Re: Простой whitelist на Exim
Добавлено: 2007-07-31 12:36:36
Alex Keda
поиск вернёт столбец адресов, а не список разделённый двоеточиями.
лучше сделай поиск оп конкретному IP там где это необходимо с результатом yes/no
Re: Простой whitelist на Exim
Добавлено: 2007-07-31 12:52:42
Truewar-6.5.88
Я же проверку делаю:
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}}
Я правильно понял?
Re: Простой whitelist на Exim
Добавлено: 2007-07-31 13:14:48
Truewar-6.5.88
Попробовал с yes\no, как написал тут.
Все заработало!
СпасибО!
Re: Простой whitelist на Exim
Добавлено: 2007-07-31 13:15:39
dikens3
В догонку, раз уж стал писать до твоего ответа. :-)
Список разделённый
: делается так:
Код: Выделить всё
# Заблокированные 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
...