Оказывается, стандартный unrar-free
не распаковывает многоуровневые вложенные rar-архивы. Для того, чтобы такие архивы распаковывались и их содержимое проверялось необходимо включить «несвободную» unrar-библиотеку. Если конкретно, то изменить в конфиге amavis стоковую конфигурацию (которая находится в /etc/amavis/conf.d/01-debian
:
#$unrar = ['rar', 'unrar']; #disabled (non-free, no security support) $unrar = ['unrar-free'];
на свою:
$unrar = ['rar', 'unrar']; #disabled (non-free, no security support) #$unrar = ['unrar-free'];
После этого амавис корректно открывает rar-архивы и можно запрещать неугодные разрешения файлов.
UPDATE:
Если закомментировать обе строки, то будет использоваться архиватор 7zip
(который заранее, естественно, установить надо). Также его можно указать вручную. Это похоже наилучшее решение.
Этот способ мне не помог, всё равно пропускались архивы, хоть на английском, хоть на русском, хоть цифирный, ставил и $unrar = [‘unrar-free’]; и $unrar = [‘rar’, ‘unrar’]; и комментировал оба, чтобы использовать 7zip… в общем горе…
получал ошибки такого характера:
amavis[5642]: (05642-01) (!)Decoding of p003 (RAR archive data, vfc,) failed, leaving it unpacked: do_unrar: /var/lib/amavis/tmp/amavis-20171214T105307-05642-03dt_PYt/parts/p003 is not RAR archive at (eval 108) line 1022.
Решение:
Установка rar и unrar (ставил так же p7zip-full p7zip-rar на всякий случай), далее прописать
$unrar = [‘unrar-nonfree’] # именно NONfree…
Решилась проблема частично, если есть русские символы всё равно пропускает письмо.
Debian 8, amavis 2.10.1, rar 5.2
Имеет смысл явно указать 7zip и поставить его последней доступной версии, он умеет rar распаковывать. Возможно ещё дело в самих архивах.
если взять просто unrar e файл-аттач то всё без проблем… дело где-то в амависе, похоже