Spamd - секретный контрудар Andrey Matveev, Anton Karpov Хакер, номер #085, стр. 085-106-4 # vi /etc/rc.conf spamd_flags="-v -n Postfix" spamd_grey=YES spamlogd_flags="" В режиме greylisting демон spamd будет вести себя стандартным образом для всех адресов, найденных в таблице <spamd>, тогда как для всех остальных будет работать в режиме «серых списков». В данном режиме spamd, как нетрудно предположить, оперирует с тремя значениями: IP-адресом сервера отправителя, почтовым адресом отправителя и почтовым адресом получателя. Если полученный «триплет» встречается впервые, мы получаем показанный выше отлуп и запись в таблицу /var/db/spamd (в «серый список»). После определенного времени - passtime (по умолчанию равно 25 минутам), - если сервер получает повторный запрос с присутствующим в базе «триплетом», запрос обрабатывается, письмо доставляется, а сервер отправителя заносится уже в «белый список», и далее все письма с данного сервера принимаются без задержек. Но если затем с этого почтового сервера писем не приходило на протяжении длительного периода времени - whiteexp (по умолчанию - 36 дней) - сервер удаляется из «белого списка» и далее рассматривается как «новый». Третий временной отрезок, которым оперирует spamd - greyexp - время, в течение которого spamd ожидает повторного соединения от сервера, то есть время пребывания сервера в «серых списках». Оно составляет по умолчанию 4 часа. Настроить эти три параметра можно указанием в spamlogd_flags опции '-G passtime:greyexp:whiteexp' (в минутах). Дефолтные установки, впрочем, вполне разумны, разве что passtime можно выставить поменьше: не 25, а 5 минут. Внесенные в файл /etc/rc.conf изменения вступят в силу только после перезагрузки. Если по какой-то причине хост перегружать нельзя, выполни такую последовательность команд: # eval /usr/libexec/spamd -g -v -n Postfix # /usr/libexec/spamd-setup # /usr/libexec/spamlogd [packet filter: таинство гармоний] Итак, spamd и компания находятся в полной боевой готовности, осталось подготовить рулесеты файрвола. # vi /etc/pf.conf /* Внешний сетевой интерфейс */ ext_if = "fxp0" /* Таблица радикса, куда будут заноситься IP-адреса из секций china и korea */ table <spamd> persist /* Здесь будем хранить IP-адреса SMTP-серверов, которые прошли greylisting-проверку */ table <spamd-white> persist /* Локальная копия списка известных SMTP-серверов, которые в виду специфики своей работы не осуществляют повторную доставку письма cvs.puremagic.com/viewcvs/greylisting/schema/whitelist_ip.txt */ table <spamd-whitelist> persist file "/etc/mail/whitelist.txt" /* Список доверенных SMTP-серверов */ table <spamd-whitegroup> { 81.210.33.44, 81.212.44.55 } /* Не следует форвардить соединения, которые инициируют дружественные SMTP-сервера */ no rdr inet proto tcp from <spamd-whitelist> to port smtp no rdr inet proto tcp from <spamd-whitegroup> to port smtp |