Ключевые слова:postfix, spam, filter, mail, (найти похожие документы)
Date: Thu, 21 Apr 2005 14:13:01 +0600
From: Vadim Krol <Vadim_Krol@p5.f1249.n5030.z2.fidonet.org.>
Newsgroups: ftn.ru.unix.bsd
Subject: Написание демона-фильтра для Postfix
IC> Hо если хочется своего - README_FILES/FILTER_README от postfix'а
IC> поможет?
У меня за вирусами следит уже демонидзе на сервере,
который, непосредственно содержит почтовые ящики пользователей.
Hаписал свое и будя. Если кому пригодится. Кратко.
main.cf:
smtpd_greylist = check_policy_service inet:127.0.0.1:10023
smtpd_spf = check_policy_service unix:private/policy-spf
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
reject_rbl_client list.dsbl.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dul.ru,
reject_rbl_client dynablock.wirehub.net,
$smtpd_greylist,
$smtpd_spf
master.cf:
smtp inet n - n - - smtpd
-o content_filter=spam
policy-spf unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/local/bin/spf.pl
spam unix - n n - 5 pipe
flags=q user=spam argv=/usr/local/bin/sa-smtp localhost:10027 antispam \
${sender} ${recipient} /usr/local/bin/spamc -u spam
localhost:10027
inet n - n - - smtpd
-o mynetworks=127.0.0.0/8
-o transport_maps=hash:/usr/local/etc/postfix/transport
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o myhostname=mxr.mydomain.ru
/usr/local/bin/sa-smtp:
#!/usr/bin/perl -w
use strict;
use Net::SMTP;
my $host = $ARGV[0];
my $hello = $ARGV[1];
my $mail_from = $ARGV[2];
my $rcpt_to = $ARGV[3];
my $argm = $ARGV[4];
if (defined($argm)) {
open(CHILD, "$argm |") or undef($argm);
}
my $smtp = Net::SMTP->new($host);
$smtp->hello($hello);
$smtp->mail($mail_from);
$smtp->to($rcpt_to);
$smtp->data();
if (defined($argm)) {
while(<CHILD>) {
next if (/^delivered\-to\:/i);
$smtp->datasend($_);
}
} else {
while(<>) {
next if (/^delivered\-to\:/i);
$smtp->datasend($_);
}
}
$smtp->dataend();
close(CHILD) if defined($argm);
$smtp->quit;
Hу и, соотвю., в файле transport прописаны транспорты к почтовым серверам
соотв. доменов. Greylist запущен как демон.
Получился принимающий сервер, который проверяет почту на спам и передает нужным
серверам, в соотв. с доменами. Сделано по причине страшного геморроя и
лицензионных ограниченией на почтовые сервера, которые используются у нас (софт
коммерческий). Попытка прикрутить SA к этим почтовикам вызывало падучесть раз в
сутки, что недопустимо.
bye, Igor.