Страница 1 из 1
Exim как запретить вложения rar с паролями?
Добавлено: 2019-03-20 13:51:12
RusEM
Добрый день
Подскажите, есть ли возможность запретить вложения rar на которых установлен пароль?
Exim как запретить вложения rar с паролями?
Добавлено: 2019-03-22 11:32:53
skeletor
Делать листинг rar вложений, если не удался - значит с паролем. Но и тут хитрецы есть: ставят пароль на извлечение, а на листинг - не ставят, поэтому, данная проверка не 100% рабочая.
Exim как запретить вложения rar с паролями?
Добавлено: 2019-03-27 10:39:36
RusEM
skeletor писал(а): ↑2019-03-22 11:32:53
Делать листинг rar вложений, если не удался - значит с паролем
А можно пример как это реализовать? unrar в консоли сразу требует пароль при выводе листинга
Exim как запретить вложения rar с паролями?
Добавлено: 2019-03-28 9:43:39
skeletor
Можно, например, заведомо передавать неправильный пароль. К примеру:
Для архивов без пароля оно ничего не означает.
Exim как запретить вложения rar с паролями?
Добавлено: 2019-04-12 15:33:46
mssk
Добрый день! Пытаюсь отлупить почтовые вложения в запароленных архивах.
Логика такая: Если 7z дает ошибку на пароль, он возвращает код отличный от 0, и скрипт завершается с exit 1
Пока ничего не получилось, подскажите где ошибка.
exim config:
Код: Выделить всё
deny message = This message contains dangerous file(s) in .${uc:$found_extension} file.
condition = ${if <{$message_size}{500K}{1}{0}}
condition = ${if match{$mime_filename}{\N(?i)\.(zip|rar|7z)$\N}}
decode = default
set acl_m1 = ${run{/usr/local/archive.sh $mime_decoded_filename }}
condition = ${if eq {$runrc}{1}{false}{true}}
archive.sh:
Код: Выделить всё
#!/bin/sh
7z l -psdaio $1 >nul 2>nul
if [ $? != "0" ]; then exit 1
else
exit 0
fi
Exim как запретить вложения rar с паролями?
Добавлено: 2019-04-17 8:08:08
skeletor
А что такое nul?
Exim как запретить вложения rar с паролями?
Добавлено: 2019-04-17 11:55:17
mssk
Где-то на просторах подсмотрел такую конструкцию.
Может можно без скрипта обойтись и сделать все из конфига exim'a?
Вот чего 7z выдает при попытке листить с неправильным паролем:
Код: Выделить всё
Scanning the drive for archives:
1 file, 1604 bytes (2 KiB)
Listing archive: file.rar
ERROR: file.rar : Can not open encrypted archive. Wrong password?
Errors: 1
Можно ловить по слову "ERROR:"?
Exim как запретить вложения rar с паролями?
Добавлено: 2019-05-29 11:24:24
mssk
UP!
Пока не смог победить.
Подскажите кто как блокирует архивы с паролем?
Exim как запретить вложения rar с паролями?
Добавлено: 2019-06-24 13:03:24
RaSergiy
mssk писал(а): ↑2019-05-29 11:24:24
Пока не смог победить.
Подскажите кто как блокирует архивы с паролем?
Для ZIP:
Код: Выделить всё
deny hosts = ! +relay_from_hosts
message = Message's archive attachment contains a passworded ZIP file: $mime_filename. Password archives is not allowed!
condition = ${if match{$mime_filename} {\N(?i)\.zip$\N}}
decode = default
set acl_m1 = ${run{/usr/local/bin/7za t -pFakePassword $mime_decoded_filename}{0}{1}}
condition = ${if eq{$acl_m1}{1}}
log_message = forbidden passworded attachment: filename=$mime_filename, content-type=$mime_content_type, recipients=$recipients
Для RAR под FreeBSD не работает, всегда выдает ошибку:
Код: Выделить всё
7-Zip (a) [64] 9.38 beta Copyright (c) 1999-2014 Igor Pavlov 2015-01-03
p7zip Version 9.38.1 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)
Processing archive: rarfile_norm.rar
Error: Can not open file as archive
Exim как запретить вложения rar с паролями?
Добавлено: 2019-06-24 13:09:13
RaSergiy
Поэтому для RAR отдельное правило:
Код: Выделить всё
deny hosts = ! +relay_from_hosts
message = Message's archive attachment contains a passworded RAR file: $mime_filename. Password archives is not allowed!
condition = ${if match{$mime_filename} {\N(?i)\.rar$\N}}
decode = default
set acl_m1 = ${run{/usr/local/bin/unrar t -pFakePassword $mime_decoded_filename}{0}{1}}
condition = ${if eq{$acl_m1}{1}}
log_message = forbidden passworded attachment: filename=$mime_filename, content-type=$mime_content_type, recipients=$recipients
Exim как запретить вложения rar с паролями?
Добавлено: 2019-11-12 8:13:34
avamal
Два уточнения.
1) добавлять это надо в секцию acl_smtp_mime
2) так же будет резать и отдельные тома беспарольного многотомного rar-архива, с расширением .partХХ.rar, и первый файл многотомного zip-архива, с расширением .zip.
Exim как запретить вложения rar с паролями?
Добавлено: 2019-11-12 10:08:59
avama
Поэтому вариант от RaSergiy можно немного изменить.
Для zip сделать такой вызов:
set acl_m1 = ${run{/bin/sh -c "/usr/local/bin/7za t -pFakePassword $mime_decoded_filename 2>&1 | /usr/bin/grep 'Wrong password'"}{1}{0}}
(местонахождение sh и grep для своей системы проверьте сами)
А для rar можно проверить код возврата:
set acl_m1 = ${run{/usr/local/bin/unrar t -pFakePassword $mime_decoded_filename}}
condition = ${if or{ { eq{$runrc}{3} } { eq{$runrc}{11} } } }
Exim как запретить вложения rar с паролями?
Добавлено: 2019-11-12 13:09:43
avama
И, наконец, в первый condition для zip можно добавить поддержку 7z.
condition = ${if match{$mime_filename} {\N(?i)\.zip$|(?i)\.7z$\N}}