Страница 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 линия эррор...пробовал по новому как там щас и то же самое...