Вход:  Пароль:  
FreeSource: Документация?/Postfix/antispam?/verifysender ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Оглавление документа

Как работает reject_unverified_sender

Допустим, к нашему MTA коннектится какой-либо хост, говорит
MAIL FROM: address@domain.tld
RCPT TO: user@mydomain.tld
Постфикс формирует «проверочное сообщение» (MAIL FROM: postmaster@mydomain) и пытается доставить его стандартным образом (через тот же транспорт, что используется для обычных сообщений ) на адрес из MAIL FROM, т.е. address@domain.tld. После RCPT TO: address@domain.tld и получения отрицательного либо положительного кода ответа постфикс закрывает соединение (т.е. в сессии доставки «проверочного сообщения» нет DATA, и получателю оно не попадает).
Если код ответа 2XX, наш постфикс решает, что адрес валидный (deliverable), и принимает сообщение (если не сработают ещё какие-либо рестрикшены).
Если код ответа MX-а domain.tld 550 – постфикс посчитает адрес недостижимым (undeliverable) и отреджектит запрос.
Если же MX ответит кодом 450, или просто не удастся установить соединение (connection refused/connection timed out), постфикс отреджектит запрос тоже кодом 450, даже если значение параметра unverified_sender_reject_code установлено в 550. Это сделано для того, чтобы исключить влияние временных факторов.
Надо заметить, что применять данную технику на серверах с большой загрузкой может быть довольно накладно.

Пример конфигурации postfix

Случай, когда мы желаем проверять отправителей из всех доменов

main.cf:



, где /etc/postfix/no_verify_sender – файл с исключениями, содержащий домены (или отдельные мыла, см. man 5 postconf /check_sender_access), адреса из которых проверяться не будут.

Случай, когда мы желаем проверять отправителей только из некоторых доменов

main.cf:



, где /etc/postfix/verify_sender – файл со списком доменов, адреса из которых мы желаем проверять:


Применение верификации только для некоторых пользователей нашего домена


В /etc/postfix/verify заносим юзеров, для которых необходимо осуществлять проверку:

Кэширование результатов


По умолчанию postfix хранит результаты проверок в памяти (сроки хранения описаны в man 8 verify), и при reload/restart эта информация пропадает. Однако, эти результаты вполне можно хранить на диске:
main.cf:



Далее, у меня переопределы значения expire_time/refresh_time:
main.cf:



Может возникнуть вопрос – почему значение параметра address_verify_negative_refresh_time установлено всего в 1 час? (дефолтное значение – 3 часа). Дело в том, что если во время встречной проверки MX вернёт код ответа 450, этот ответ будет валидным все 3 часа! А такая задержка почты, на мой взгляд, неприемлима.


Ещё у меня переопределено значение параметра unverified_sender_reject_code (по умолчанию – 450) на 550. Это сделано для того, чтобы в очереди заливающих нам почту MTA не скапливалось «левое» мыло и чтобы они не ломились к нам попусту. В общем случае код 550 является наилучшим.

Подводные камни


Мой файл no_verify_sender:


Почитать подробнее о технике sender verification вы можете в ADDRESS_VERIFICATION_README


 
Файлов нет. [Показать файлы/форму]
Комментарии [Скрыть комментарии/форму]

Postfix 2.1+

-- MichaelShigorin (2006-11-15 22:48:44)