Страница 1 из 1
аутентификация пользователей
Добавлено: 2011-01-09 0:18:48
100kg
всем привет
как запретить отправку писем пользователей к локальным доменам если они не прошли аутентификацию?
не нравится мне что любой может зателнетится и оформить письмо от любого ящика и отправить локальным пользователям,
но а с другой стороны так и должно быть нужно же как-то принимать письма от других MTA, кароче у меня тут пробел, обьясните плиз
ps
rfc не читал
Re: аутентификация пользователей
Добавлено: 2011-01-09 0:43:23
xM
Код: Выделить всё
# запрет отправки от наших доменов без аутентификации
deny message = Authenification need to relay.
hosts = !127.0.0.1 : !localhost : *
domains = +local_domains
sender_domains = +local_domains
Re: аутентификация пользователей
Добавлено: 2011-01-09 12:21:15
blade_007
Первым делом настроить аутентификацию.
Далее в вышеприведенную конструкцию добавить
!authenticated = *
либо ДО этого правила в check_rcpt (или как у вас там)
Код: Выделить всё
accept
logwrite = auth = $auth1, host = $sender_host_name [$sender_host_address]
authenticated = *
Re: аутентификация пользователей
Добавлено: 2011-01-09 13:55:00
dikens3
Re: аутентификация пользователей
Добавлено: 2011-01-09 14:11:19
xM
blade_007 писал(а):
либо ДО этого правила в check_rcpt (или как у вас там)
Код: Выделить всё
accept
logwrite = auth = $auth1, host = $sender_host_name [$sender_host_address]
authenticated = *
Да-да. Наверное, лучше именно так. Собственно, у меня так и сделано.
Забыл приписать.
Re: аутентификация пользователей
Добавлено: 2011-01-09 15:00:59
100kg
спасибо работает

Re: аутентификация пользователей
Добавлено: 2011-01-09 19:50:06
100kg
acl работает только для локальных пользователей,
нужно прикручивать spf, спасибо dikens3
Код: Выделить всё
По поводу проверки валидности отправителя через DNS.
В классическом SMTP этого сделать нельзя.
То есть если вы почтовый сервер и вам пришло письмо с обратным адресом masha@masha.ru с хоста petya.ru вы должны безропотно это письмо принять. (я сейчас говорю только о несоответствии имен).
Однако в связи с большим количеством спама было предложено решение, оно называется SPF.
Суть кратко в следующем: в DNS отправителя вносится запись, в которой содержится список хостов, с которых следует принимать почту.
Например:
Код
rakul@tycoon:~/rage$ host -t txt mail.ru
mail.ru descriptive text "v=spf1 ip4:194.67.57.0/24 ip4:194.67.23.0/24 ip4:194.67.45.0/24 ip4:195.239.211.0/24 ip4:194.186.55.0/24 ip4:195.239.174.0/24 ip4:94.100.176.0/20 ~all"
Это говорит нам о том, что принимать почту с обратным адресом @mail.ru можно только если она пришла к вам с хостов
194.67.57.0/24 194.67.23.0/24 194.67.45.0/24 195.239.211.0/24 194.186.55.0/24 195.239.174.0/24 94.100.176.0/20
по поводу «~all» в конце:
-all — принимать ТОЛЬКО с этих хостов
~all — рекомендуется принимать только с этих адресов
?all — на spf можно не обращать внимание
SPF в exim
Об SPF в wikipedia
После нескольких лет существования SPF выяснилось, что технология не безгрешна и есть ситуации, в которых она дает сбои. Например, когда почта переадресовывается с одного сервера на другой.
В том числе таким образом по SPF отрезается часть рассылок mail.ru.
Для обработки таких ситуаций была разработана надстройка — технология SRS.
Также существует механизм проверки валидности отправителя DKIM.
Он работает следующим образом: в заголовки письма (хедер DKIM-Signature) добавляется электронная подпись отправителя.
Сервер получателя берет публичный ключ отправителя и с помощью него проверяет информацию в хедере
Re: аутентификация пользователей
Добавлено: 2011-01-10 17:27:09
100kg
и так exim был собран без spf, не хотел пересобирать и решил прикрутить spf с помощью perl скрипта
libmail-spf-query-perl, ну и добавил acl
Код: Выделить всё
deny
message = [SPF] $sender_host_address is not allowed to send mail \
from $sender_address_domain.
log_message = SPF check failed.
set acl_m9 = -ipv4=$sender_host_address \
-sender=$sender_address \
-helo=$sender_helo_name
set acl_m9 = ${run{/usr/bin/spfquery $acl_m9}}
condition = ${if eq {$runrc}{1}{true}{false}}
у себя в условие вместо 1 я поставил 2, в самом скрипте я нашел возвращаемые значения, вообщем тут нужно поиграться, проверял на примере mail.ru, работает

, только вот бы стандартизировать этот spf, а так от него нет большого толка, например yahoo не имеет этих записей в dns