Пятница, 2024-11-08, 2:48 PM
 
Начало Форум Регистрация Вход
Вы вошли как Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: denix  
Написание демона-фильтра для Postfix
denixДата: Четверг, 2006-06-29, 2:14 AM | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 531
Репутация: 0
Статус: Offline
У меня за вирусами следит уже демонидзе на сервере,
который, непосредственно содержит почтовые ящики пользователей.
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 к этим почтовикам вызывало падучесть раз в
сутки, что недопустимо.

 
  • Страница 1 из 1
  • 1
Поиск:


Бесплатный хостинг uCoz