Страница 1 из 1
exim аттачи.
Добавлено: 2007-04-19 8:49:36
lucas
Привет всем.
Подскажите как можно блокирнуть письма с определёнными аттачами (по имени аттачей) или удалять письма при получении с таким аттачем.
Просто прут вирусы с вложением (price_data_mount_year.zip) clamav их неловит, проверил нодом загрузил к ним на сайт, прошёл месяц а толку нету...
Вот думаю ка порезать это дело?
Спасибо
Добавлено: 2007-04-19 9:02:57
Alex Keda
Добавлено: 2007-05-04 18:34:04
gmn
Я делал так (блокировка плохих атачей в архивах тоже).
В Exim:
Код: Выделить всё
# Block EXE in ZIP archive, when zip > 150 Kb.
deny message = Attachment ZIP with dangerous extention.
condition = ${if >{$message_size}{150K}{0}{1}}
condition = ${run {/usr/local/etc/exim/exeinzip.pl /var/spool/exim/scan/${message_id}/${message_id}.eml} {yes}{no} }
demime = zip
Сам perl script exeinzip.pl:
Код: Выделить всё
#!/usr/bin/perl
$file= $ARGV[0];
use Email::MIME::Attachment::Stripper;
open (FF, $file);
while (<FF> ){
$message .= $_;
}
close (FF);
my $stripper = Email::MIME::Attachment::Stripper->new($message);
my Email::MIME $msg = $stripper->message;
my @attachments = $stripper->attachments;
use Archive::Zip;
use IO::File;
foreach my $hash (@attachments) {
if ($hash->{'filename'}=~ '.*\.zip') {
# write archive zip to tmp file
$fh = IO::File->new_tmpfile or die "IO::File->new_tmpfile: $!";
$fh->autoflush(1);
print ( $fh $hash->{'payload'} );
seek($fh,0,0);
# search files in ZIP
$zip = Archive::Zip->new($fh);
@hashmembers = $zip->membersMatching( '.*\.(exe$|com$|pif$)' );
$exefound=$#hashmembers;
if ( $exefound >=0 ) {print "$exefound"; exit(0);};
};
};
$exefound=$#hashmembers;
print "$exefound";
exit(1);
"exit(1)" - добавлял, помоему, на случай поврежденного архива.
Добавлено: 2007-05-11 14:39:25
lucas12
Хм...чёта рукается на модуль Email::MIME::Attachment::Stripper 87 линия эррор...пробовал по новому как там щас и то же самое...