ACL - кто как ?
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
ACL - кто как ?
Предлагаю вопросы по ACL вынести в отдельный топик.
Есть много инетерсных рулезов на все случае жизни делимся...
У меня сразу же вопрос к знатокам.
deny message = "I'm don't like you host"
condition = ${if match{$sender_host_name} \
{adsl|pool|dialup|peer|dhcp} \
{yes}{no}}
Естественно при работе с КПК или Мобильного: пример для UMC:
2007-01-24 17:16:53 H=88-214-90-92.dialup.umc.net.ua (Inbox) [88.214.90.92] I=[89.252.24.9]:25 F=<crud-pda@nostra.com.ua> rejected RCPT <nostra@nostra.com.ua>: "I'm don't like you host"
Все режется,
как написать указать в АКЛе исключение для определенного хоста 89.252.24.9
Есть много инетерсных рулезов на все случае жизни делимся...
У меня сразу же вопрос к знатокам.
deny message = "I'm don't like you host"
condition = ${if match{$sender_host_name} \
{adsl|pool|dialup|peer|dhcp} \
{yes}{no}}
Естественно при работе с КПК или Мобильного: пример для UMC:
2007-01-24 17:16:53 H=88-214-90-92.dialup.umc.net.ua (Inbox) [88.214.90.92] I=[89.252.24.9]:25 F=<crud-pda@nostra.com.ua> rejected RCPT <nostra@nostra.com.ua>: "I'm don't like you host"
Все режется,
как написать указать в АКЛе исключение для определенного хоста 89.252.24.9
Услуги хостинговой компании 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/
- Abigor
- старшина
- Сообщения: 425
- Зарегистрирован: 2006-03-02 11:13:15
- Откуда: РФ. г. Иркутск
- Контактная информация:
у меня эта acl имеет такой вид
вопрос уже тебе, а ты уверен что для этого кпк ip всегда постоянный? если да, то тебе в помощь вот это
hosts = !+relay_from_hosts
p.s. мое правило режет у меня в сутки до 15000 спам сообщений, пока не одного нужного за три недели не наблюдалось
Код: Выделить всё
deny
hosts = !+relay_from_hosts
condition = ${if or {\ {match{$sender_host_name}{\N((\d{1,3}[\.\-_x]){3}|.*(wireless|broadband|modem|dyn|cable|client|dial|dsl|dhcp|user|vpn|ppp|[^sx]pool|unassigned).*\.[-a-z0-9]+\.\w+|.*(cust|host).*\.[-a-z0-9]+\.\w+[^r][^u]$|.*\d{6,12}.*\.[-a-z0-9]+\.\w+)\N}}\
{match{$acl_c1}{\N((\d{1,3}[\.\-_x]){3}|.*(wireless|broadband|modem|dyn|cable|client|dial|dsl|dhcp|user|vpn|ppp|[^sx]pool|unassigned).*\.[-a-z0-9]+\.\w+|.*(cust|host).*\.[-a-z0-9]+\.\w+[^r][^u]$|.*\d{6,12}.*\.[-a-z0-9]+\.\w+)\N}} \
}{yes}{no}}
message = Mail from $sender_address to $local_part@$domain is blocked, cant receive mail from dynamic ip, use your ISP SMTP server, contact admin@isea.ru.
hosts = !+relay_from_hosts
p.s. мое правило режет у меня в сутки до 15000 спам сообщений, пока не одного нужного за три недели не наблюдалось
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
-
- проходил мимо
- Abigor
- старшина
- Сообщения: 425
- Зарегистрирован: 2006-03-02 11:13:15
- Откуда: РФ. г. Иркутск
- Контактная информация:
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- Abigor
- старшина
- Сообщения: 425
- Зарегистрирован: 2006-03-02 11:13:15
- Откуда: РФ. г. Иркутск
- Контактная информация:
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Код: Выделить всё
grep include /usr/local/etc/exim/configure
.include_if_exists /usr/local/etc/exim/includes/100.main.conf
.include_if_exists /usr/local/etc/exim/includes/200.acl_check_rcpt.conf
.include_if_exists /usr/local/etc/exim/includes/300.acl_check_rcpt_spam_rule.conf
.include_if_exists /usr/local/etc/exim/includes/400.acl_check_rcpt_end.conf
.include_if_exists /usr/local/etc/exim/includes/500.acl_check_data.conf
.include_if_exists /usr/local/etc/exim/includes/600.routers.conf
.include_if_exists /usr/local/etc/exim/includes/700.transports.conf
.include_if_exists /usr/local/etc/exim/includes/800.retry_and_rewrite.conf
.include_if_exists /usr/local/etc/exim/includes/900.authenticators.conf
Убей их всех! Бог потом рассортирует...
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
даже целиком ожно
)

Код: Выделить всё
# моя конфига экзма. Будь проклят тот день,
# когда мне пришла в голову мысль подписать
# русские поясния ко всем пунктам! :) Хоть и
# делал я это в первую очередь для себя -
# чтоб лучше понять его, но работа эта оказалась
# слишком масштабная и неблагодарная...
# Инклюдим главные настройки
.include_if_exists /usr/local/etc/exim/includes/100.main.conf
### конфигурация ACL для входящей почты
begin acl
# Эти правила срабатывают для каждого получателя
acl_check_rcpt:
# Начало файла ACL - те, кого срубаем сразу же
.include_if_exists /usr/local/etc/exim/includes/200.acl_check_rcpt.conf
# Проверки на спам - по хостам и прочему.
.include_if_exists /usr/local/etc/exim/includes/300.acl_check_rcpt_spam_rule.conf
# Конец конфигурации - блэк-листы, задержки и прочее
.include_if_exists /usr/local/etc/exim/includes/400.acl_check_rcpt_end.conf
# Тут идут ACL проверяющие содержимое (тело) письма.
# Без них будут пропускаться все сообщения.
acl_check_data:
# Инклюдим конфигурацию проверки тела письма
.include_if_exists /usr/local/etc/exim/includes/500.acl_check_data.conf
# чё делаем с почтой
begin routers
# Инклюдим конфигурацию роутреров
.include_if_exists /usr/local/etc/exim/includes/600.routers.conf
# начинаются транспорты - как доставляем почту
begin transports
# Инклюдим транспорты
.include_if_exists /usr/local/etc/exim/includes/700.transports.conf
# Конфигурация повторов и перезаписи
.include_if_exists /usr/local/etc/exim/includes/800.retry_and_rewrite.conf
# Секция авторизации при отправке писем. Ввиду того,
# что почтовых клиентов много, и все всё делают
# по-своему, то и механизмов авторизации три...
begin authenticators
# Аутентификация юзеров.
.include_if_exists /usr/local/etc/exim/includes/900.authenticators.conf
# Фсё. Конфиг кончился. Два дня убил.
# © lissyara 2006-02-25, 01:19
Убей их всех! Бог потом рассортирует...
- Kolesnikov
- рядовой
- Сообщения: 42
- Зарегистрирован: 2007-01-09 14:49:39
- Откуда: г.Тайга
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
- Alex Keda
- стреляли...
- Сообщения: 35437
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Код: Выделить всё
MAILNAME = smtp.example.ru
MAINDOMAIN = example.ru
.ifdef MAILNAME
primary_hostname = MAILNAME
qualify_domain = MAINDOMAIN
.else
MAILNAME = @
.endif
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
На днях уважаемый dikens3 объяснил на примере ACL принцип их действия.И хотелось бы узнать ваши комментарии на мой взгляд на принцип действия конкретных ACL.
исходные данные: local_domains из базы полчает mail.domen.ru
relay_from_hosts = localhost:127.0.0.0/8 : 10.0.0.0/16
Прокомментируйте пожалуйста
исходные данные: local_domains из базы полчает mail.domen.ru
relay_from_hosts = localhost:127.0.0.0/8 : 10.0.0.0/16
Как я считаю, почта с наружнего домена mail.ru ко мне в mail.domen.ru приходить должна. с адреса 10.0.10.10 должна уходить без аутентификации и внутрь и наружу... а вот с адреса 192.168.0.1 наружу почта не должна пройти без аутентификацииbegin acl
acl_check_rcpt:
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
##До этого момента все понятно, вопросов нет.
##1. Принимаем всех кто аутентифицировался, если без аутентификации(не прошел, или ее нет) то идем в #пункт 2
accept authenticated = *
##2. Проверяем отправителя, если отправитель не верный то отрубаем сразу, если верный то идем в пункт 3
require verify = sender
##3. Принимаем если получатель в моем домене (mail.domen.ru) и если пользователь ##существует в этом домене, если не мой домен то в пункт 4, если мой но нет юзера то отрубаем
accept domains = +local_domains
verify = recipient
##4. Принимаем если обращение идет с хоста принадлежащего к relay_from_hosts, если не принадлежит, то идем в пункт 5
accept hosts = +relay_from_hosts
##5. Запрещаем всем, кто не попал в выше стоящие правила и выдаем сообщение.
deny message = relay not permitted
Прокомментируйте пожалуйста
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Вобщем значительно лучше уже, несколько поправок:
Поменять пункты местами, насколько я знаю require verify = sender проверяет отправителя, только если он из твоего домена. (mail.domain.ru). Не нужно пускать пользователя в мир с обратным адресом postmaster@mail.ru. Сначала проверить потом авторизовывать. :-)
А что будет сказано отправителю, если такого пользователя в твоём домене несуществует? (relay not permitted? :-)) Никакой реализации отрубания тут нет. endpass и message в кондишене были, помнишь я тебе писал?
Код: Выделить всё
##1. Принимаем всех кто аутентифицировался, если без аутентификации(не прошел, или ее нет) то идем в #пункт 2
accept authenticated = *
##2. Проверяем отправителя, если отправитель не верный то отрубаем сразу, если верный то идем в пункт 3
require verify = sender
Код: Выделить всё
##3. Принимаем если получатель в моем домене (mail.domen.ru) и если пользователь ##существует в этом домене, если не мой домен то в пункт 4, если мой но нет юзера то отрубаем
accept domains = +local_domains
verify = recipient
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
да, согласен, везде фигурирует такое расположение, чуть не доработал...dikens3 писал(а): Поменять пункты местами, насколько я знаю require verify = sender проверяет отправителя, только если он из твоего домена. (mail.domain.ru). Не нужно пускать пользователя в мир с обратным адресом postmaster@mail.ru. Сначала проверить потом авторизовывать. :-)
как читать правилоА что будет сказано отправителю, если такого пользователя в твоём домене несуществует? (relay not permitted? :-)) Никакой реализации отрубания тут нет. endpass и message в кондишене были, помнишь я тебе писал?
?##4. Принимаем если обращение идет с хоста принадлежащего к relay_from_hosts, если не принадлежит, то идем в пункт 5
accept hosts = +relay_from_hosts
Потому как если я с ящика user@mail.domen.ru с компьютера c IP 10.0.10.10 без настроек аутентификации хочу отправить письмо на mail.ru, то оно не проходит...
Из мануала к экзиму:
и тут не дается однозначного ответа насчет дальнейшего действияНапример:
accept hosts = +ignore_unknown : friend.example : \
192.168.4.5
принимает (почту, видимо)) от любого хоста, имя которого “friend.example”, и от “192.168.4.5”, независимо найдено или нет его имя. Без “+ignore_unknown”, если имя “192.168.4.5” не найжено, почта отклоняется.
- Kolesnikov
- рядовой
- Сообщения: 42
- Зарегистрирован: 2007-01-09 14:49:39
- Откуда: г.Тайга
Не согласен. Вот цитата из оригинала:насколько я знаю require verify = sender проверяет отправителя, только если он из твоего домена. (mail.domain.ru). Не нужно пускать пользователя в мир с обратным адресом postmaster@mail.ru.
Код: Выделить всё
Verification consists of trying to route the address, to see if a bounce message could be delivered to it. In the case of remote addresses, basic verification checks only the domain, but callouts can be used for more verification if required.
Про локальный домен здесь ни слова, проверяются все сообщения.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Понятно же написано, если внешний, только наличие домена, если внутренний(локальный), ещё и сам почтовый адрес пользователя на возможность доставки BOUNCE MESSAGE.Kolesnikov писал(а): В переводе примерно, следующее: "ПРоверка состоит в попытке маршрутизации до адреса, для возможности доставки на него обратного сообщения. В этом случае, удаленные адреса проверяются только на наличие домена, но callouts может быть использовано для более детальной проверки."
Про локальный домен здесь ни слова, проверяются все сообщения.
Спасибо за уточнение.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Действие будет acceptНапример:
accept hosts = +ignore_unknown : friend.example : \
192.168.4.5
принимает (почту, видимо)) от любого хоста, имя которого “friend.example”, и от “192.168.4.5”, независимо найдено или нет его имя. Без “+ignore_unknown”, если имя “192.168.4.5” не найжено, почта отклоняется.
Код: Выделить всё
# От кого можно принимать почту с ошибками в HELO/EHLO
helo_accept_junk_hosts = +relay_from_hosts
Так можно избавится от проверок HELO/EHLO для локальной сети.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Я пробовал, от имени postmaster@mail.ru не даёт посылать в мир, как бы это не описывалось. Вобщем нужно попробовать, у кого есть интерес, у меня сейчас нет возможности.Kolesnikov писал(а): В переводе примерно, следующее: "ПРоверка состоит в попытке маршрутизации до адреса, для возможности доставки на него обратного сообщения. В этом случае, удаленные адреса проверяются только на наличие домена, но callouts может быть использовано для более детальной проверки."
Про локальный домен здесь ни слова, проверяются все сообщения.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- Kolesnikov
- рядовой
- Сообщения: 42
- Зарегистрирован: 2007-01-09 14:49:39
- Откуда: г.Тайга
Только что попробовал от postmaster@moidomen.ru с включенной опцией require verify = sender . Все прекрасно доставилось. Или ты имеешь в виду именно от postmaster домена mail.ru ?dikens3 писал(а): Я пробовал, от имени postmaster@mail.ru не даёт посылать в мир, как бы это не описывалось. Вобщем нужно попробовать, у кого есть интерес, у меня сейчас нет возможности.
Тут недавно не могло до меня дойти письмо от Транстелекомовского почтовика zapsib.transtk.ru. У них что-то с днс случалось видимо. Я вижу в логах отпинывание Could not complete sender verify Проверил этот домен, а днс молчит о его существовании. Спустя час письмо прилетело, проверил -- уже есть такой домен ))
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
- Kolesnikov
- рядовой
- Сообщения: 42
- Зарегистрирован: 2007-01-09 14:49:39
- Откуда: г.Тайга
- Zedik
- сержант
- Сообщения: 283
- Зарегистрирован: 2007-01-20 22:30:57
- Откуда: 127.0.0.1
хм...
с включенной require verify = sender
сейчас проверил отправить письмо от post@mail.ru со своего домена на mail@mail.ru.... письмо ушло
с включенной require verify = sender
сейчас проверил отправить письмо от post@mail.ru со своего домена на mail@mail.ru.... письмо ушло

- Kolesnikov
- рядовой
- Сообщения: 42
- Зарегистрирован: 2007-01-09 14:49:39
- Откуда: г.Тайга
Ты создал у себя домен mail.ru? или просто в конце письма поставил mailto: post@mail.ru ?