|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> почтовые системы
—> smfsav
smfsav - проверка адреса отправителя
Автор: Bart Tapolsky.
Smfsav - проверка адреса отправителя
1 Введение
2 Технология
3 Установка smfsav для sendmail
4 Настройка фильтра на postfix
Введение
Зачем нужна проверка адреса отправителя на почтовых серверах? SMTP протокол фактически не гарантирует доставку письма, но всячески способствует хотя бы косвенно уведомить отправителя о возможных проблемах. Ниже приведена схема, по которой работает SMTP сервер:
1. Сервер получает письмо и пытается доставить получателю
2. Если возникает ошибка, создается отчет об ошибках и отправляется отправителю
3. Если возникает ошибка при отправке письма отправителю, сервер пытается отправить отчет своему postmaster'у
4. Если недоступен адрес postmaster'a, в логи добавляется событие "savemail panic" и обработка письма вместе с отчетом останавливается
Как видите, SMTP сервер пытается, во чтобы то ни стало, доставить письмо получателю или известить компетентых людей об ошибках. Если у вас есть почтовый сервер, обратите внимание, сколько писем у него в очереди. Скорее всего, вы увидите письма от MAILER-DAEMON или postmaster на непонятные адреса типа <klausdefargt093fstb@poweroverhealthing.ee>. Потому что спаммеры зачастую в своих письмах указывают неверный обратный адрес, а заодно и неверный адрес получателя. Согласно вышеуказанной схеме, отчет должен уйти отправителю, вот и висит он, потому что некуда ему идти. Механизм проверки адреса отправителя вовсе не гарантирует, что адрес отправителя в письме - это настоящий адрес отправителя, но позволит нам хотя бы удостовериться, что это рабочий адрес, и, как минимум, на него можно будет отправить отчет о недоставке.
Технология
Обычная SMTP сессия выглядит примерно так:
<= 220 Server ESMTP ready
=> HELO mx.yandex.ru
<= 250 server.firma.ua Hello mx.yandex.ru [212.89.22.56], pleased to meet you
=> MAIL FROM:<invalid@address.com>
<= 250 2.1.0 Ok
=> RCPT TO:<petrov@firma.ua>
<= 250 2.1.5 Ok
=> DATA
<= 354 Enter mail, end with "." on a line by itself
=> text
=> of
=> mail
=> .
<= 250 2.0.0 mAA8JNbB099896 Message accepted for delivery
=> QUIT
<= 221 2.0.0 server.firma.ua closing connection
| Фильтр, отвечающий за проверку адреса получателя, вызывается почтовым сервером после команды MAIL FROM и делает примерно следующие действия:
Получает список MX записей для домена address.com
nslookup -type=MX address.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
address.com mail exchanger = 10 spam04.affinitypath.com.
address.com mail exchanger = 20 spam01.affinitypath.com.
| Подключается к одному из них и производит следующий диалог с сервером:
<= 220 Server ESMTP ready
=> HELO server.firma.ua
<= 250 spam04.affinitypath.com Hello server.firma.ua [11.22.33.44], pleased to meet you
=> MAIL FROM:<validator@firma.ua>
<= 250 2.1.0 Ok
=> RCPT TO:<invalid@address.com>
<= 550 User not found.
=> QUIT
<= 221 2.0.0 spam04.affinitypath.com closing connection
| Возращает отправителю ошибку без приема письма. Сессия будет выглядеть примерно так:
<= 220 Server ESMTP ready
=> HELO mx.yandex.ru
<= 250 server.firma.ua Hello mx.yandex.ru [212.89.22.56], pleased to meet you
=> MAIL FROM:<invalid@address.com>
<= 550 Sender address verification failed
=> QUIT
<= 221 2.0.0 server.firma.ua closing connection
| Установка smfsav для sendmail
Установите smfsav из исходников (сорцы возьмите на http://smfs.sourceforge.net/smf-sav.html), либо из портов FreeBSD:
make install clean -C /usr/ports/mail/smfsav
| Поправьте в конфиге smfsav.conf, который скорее всего будет в /usr/local/etc:
PublicName dns_имя_вашего_сервера #Узнайте командой nslookup ваш_внешний_IP
SafeCallBack postmaster@firma.ua #Заведомо рабочий адрес в вашем домене
| Запустите сервис
/usr/local/etc/rc.d/smfsav start
| Пропишите фильтр в конфиг sendmail'a /etc/mail/your_hostname.mc
INPUT_MAIL_FILTER(`smfsav', `S=unix:/var/run/smfsav/smfsav.sock, T=S:30s;R:4m')
| Пересоберите конфиги и перезапустите сервер
make all install stop start -C /etc/mail
| Все, ждите сообщений в логах!
# tail -f /var/log/maillog |grep smf
Nov 10 10:37:52 gt smf-sav[60084]: sender check failed: <tefighter70@icqmail.com>, 83.9.68.148, abzw148.adsl.tpnet.pl, [00:00:06]
Nov 10 10:40:09 gt smf-sav[60084]: sender check failed: <yu@basf.com>, 89.254.215.113, line113-49.adsl.kirov.ru, [00:00:03]
Nov 10 10:41:05 gt smf-sav[60084]: sender check failed: <simeon@basf.com>, 89.20.23.89, [89.20.23.89], [00:00:04]
Nov 10 10:44:32 gt smf-sav[60084]: sender check failed: <www.@ruthschris.com>, 85.72.60.199, oikopano.static.otenet.gr, [00:00:03]
Nov 10 10:45:08 gt smf-sav[60084]: sender check succeeded: <fields@whsllc.com>, 59.90.187.144, [59.90.187.144], [00:00:02]
|
Настройка фильтра на postfix
Такой механизм уже есть в стандартной поставке postfix'a, добавьте нужное значение в следующий параметр конфига main.cf:
smtpd_sender_restrictions = ..., reject_unverified_sender
| ----
Оригинал статьи: http://unixpages.net/wiki/Smfsav_-_проверка_адреса_отправителя
http://unixpages.net
размещено: 2008-11-10,
последнее обновление: 2008-11-10,
автор: Bart Tapolsky
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
|
Статистика сайта
|
Сейчас на сайте находится: 17 чел.
|
За последние 30 мин было: 26 человек
|
За сегодня было 6847 показов, 794 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [2 шт.]