EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
crush13
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2015-09-17 15:40:30
Непрочитанное сообщение
crush13 » 2015-09-17 15:57:25
Доброго всем времени суток, накидал вот такой вот ACL (просмотрел много сабжа на разных ресурсах):
Код: Выделить всё
acl_smtp_mime = acl_check_mime
acl_check_mime:
deny message = We do not accept attachments like: $mime_filename
condition = ${if match{$mime_filename}{\N\.(bat|js|pif|cd|com|exe|lnk|reg|vbs|jse|msi|ocx|dll|sys|cab)$\N}}
deny message = Probably this message contains dangerous file in ZIP-attachment ($mime_filename).
condition = ${if match{$mime_filename}{\N(?i)\.zip$\N}}
decode = /var/exim/scan/zip/$mime_filename
condition = ${if match{${run{/usr/bin/unzip -l $mime_decoded_filename}}}{\N(?i)\.(bat|js|pif|cd|com|exe|lnk|reg|vbs|jse|msi|ocx|dll|sys|cab)\n\N}}
deny message = Probably this message contains dangerous file in RAR-attachment ($mime_filename).
condition = ${if match{$mime_filename}{\N(?i)\.rar$\N}}
decode = /var/exim/scan/rar/$mime_filename
condition = ${if match{${run{/usr/bin/unrar l $mime_decoded_filename}}}{\N(?i)\.(bat|js|pif|cd|com|exe|lnk|reg|vbs|jse|msi|ocx|dll|sys|cab)$\N}}
accept
Но к сожалению он работает только частично, первая из трёх частей - отбрасывает письма с исполняемыми вложениями, но пропускает любые письма с вложениями zip->exe. Может у кого-то есть мысли из-за чего может не работать оставшаяся часть acl?
Код: Выделить всё
whereis unzip
unzip: /usr/bin/unzip /usr/share/man/man1/unzip.1.gz
whereis unrar
unrar: /usr/bin/unrar /usr/share/man/man1/unrar.1.gz
exim -bV
Exim version 4.72 #7 built 21-Nov-2014 18:27:12
crush13
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
None
- проходил мимо
- Сообщения: 6
- Зарегистрирован: 2013-05-07 11:32:57
Непрочитанное сообщение
None » 2015-09-18 9:32:57
видел на просторах сети решение с 7zip, более универсальное на мой взгляд
как решить вопрос с архивами вложенными в архив zip->zip->zip->samiy_noviy_dogovor.doc.exe?
None
-
Alex Keda
- стреляли...
- Сообщения: 35456
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
-
Контактная информация:
Непрочитанное сообщение
Alex Keda » 2015-09-18 10:17:40
По рукам юзерам стучать....
Убей их всех! Бог потом рассортирует...
Alex Keda
-
lintech
- рядовой
- Сообщения: 19
- Зарегистрирован: 2010-11-19 17:24:23
Непрочитанное сообщение
lintech » 2015-10-06 23:03:43
Кусок моего конфига:
Код: Выделить всё
#free_arqexec contain emails of permited sender. Example: *@gmail.com
drop
!senders =
demime = zip:rar:arj:tar:tgz:gz:bz2:7z
set acl_m9 = ${run{/var/spool/exim/logs/checkarc.sh ${lc:$found_extension} $message_exim_id}}
message = This message contains dangerous file(s) in .${uc:$found_extension} file.
condition = ${if eq {$runrc}{0}{false}{true}}
Сам скрипт checkarc.sh:
Код: Выделить всё
#!/bin/sh
# See http://wiki.exim.org/ExiscanFilenameBlocking
zipinfo=/usr/local/bin/zipinfo
unzip=/usr/local/bin/unzip
rar=/usr/local/bin/unrar
7z=/usr/local/bin/7z
# Проверяем наличие приложений
for application in ${zipinfo} ${unzip} ${rar} ${7z}
do
if [ ! -s ${application} ]; then
echo "Приложение \`\`${application}'' не найдено!"
exit
fi
done
# Блокируемые файлы в архивах
EXTENS='(\.cmd$|\.com$|\.exe$|\.bat$|\.btm$|\.cpl$|\.dll$|\.exe$|\.lnk$|\.msi$|\.pif$|\.prf$|\.reg$|\.scr$|\.vb$|\.vbs$|\.url$|\.pl$|\.bas$|\.js$|\.java$|\.s
hs$|\.chm$|\.hlp$|\.zip$|\.rar$|\.arj$|\.7z$)'
# Архивы
COMPAC='(zip|rar|7z)'
# переход в рабочую директорию.
if [ ! -z "$2" ]; then
if [ -d /var/spool/exim/scan/$2 ]; then
cd /var/spool/exim/scan/$2
else
exit 1
fi
fi
# Проверка архивов.
for i in `ls | egrep -i ".${COMPAC}$"`; do
EXTFILE="`basename $i | sed -e 's/.*\.//' | tr [A-Z] [a-z]`"
case "${EXTFILE}" in
zip)
CMD_TST="${unzip} -t $i"
CMD_VRF="${zipinfo} -1 $i"
;;
rar)
CMD_TST="${rar} t -p- $i"
CMD_VRF="${rar} vb -p- $i"
;;
7z)
CMD_TST="${7z} t $i"
CMD_VRF="${7z} l $i"
;;
*)
echo -n '* Extension of File <'$i'> is unknown archive compact!\n'
esac
ARQS="`${CMD_VRF} 2> /dev/null | gawk '{ print $1 }' | egrep -i "${EXTENS}$"`"
if [ ! -z "$ARQS" ]; then
echo -n '* File(s) in <'$i'>: '$ARQS'\n'
FOUND=1
fi
done
if [ ! -z "${FOUND}" ]; then
exit 1
else
exit 0
fi
lintech
-
crush13
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2015-09-17 15:40:30
Непрочитанное сообщение
crush13 » 2015-10-09 9:25:43
Вот это c 7zip заработало:
Код: Выделить всё
deny message = Probably this message contains dangerous file in attachment
condition = ${if match{$mime_filename}{\N(?i)\.(zip|rar|7z)$\N}}
decode = default
condition = ${if match{${run{/usr/bin/7z l $mime_decoded_filename}}}{\N(?i)\.(exe|com|vbs|bat|pif|scr|hta|js|cmd|chm|cpl|jsp|reg|vbe|lnk|dll|sys)\n\N}}
log_message = forbidden attachment: filename=$mime_filename, content-type=$mime_content_type, recipients=$recipients
crush13
-
crush13
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2015-09-17 15:40:30
Непрочитанное сообщение
crush13 » 2015-10-16 8:49:39
Ещё добавлю от себя, столкнулся с тем, что rar архивы с вложениями пропускались до адресатов. При попытке просмотреть архив 7z выяснилось, что установлена старая версия, которая не понимала rar. После сборки новой версии p7zip, фильтрация заработала "как необходимо".
crush13
-
qwertykma
- мл. сержант
- Сообщения: 93
- Зарегистрирован: 2009-06-19 13:14:04
- Откуда: почти С-Пб
Непрочитанное сообщение
qwertykma » 2015-10-23 13:12:09
Я сделал через clam.
в /var/db/clamav/
создать два файла один с расширением .zmd для zip-ов, другое .rmd для rar в файле:
Block.EXE-rar:0:\.exe$:*:*:*:*:*:*
Block.BAT-rar:0:\.bat$:*:*:*:*:*:*
Block.CMD-rar:0:\.cmd$:*:*:*:*:*:*
Block.COM-rar:0:\.com$:*:*:*:*:*:*
Block.LNK-rar:0:\.lnk$:*:*:*:*:*:*
Block.vbs-rar:0:\.vbs$:*:*:*:*:*:*
Block.JS-rar:0:\.JS$:*:*:*:*:*:*
Block.EXE-c-rar:1:\.exe$:*:*:*:*:*:*
Block.BAT-c-rar:1:\.bat$:*:*:*:*:*:*
Block.CMD-c-rar:1:\.cmd$:*:*:*:*:*:*
Block.COM-c-rar:1:\.com$:*:*:*:*:*:*
Block.LNK-c-rar:1:\.lnk$:*:*:*:*:*:*
Block.VBS-c-rar:1:\.vbs$:*:*:*:*:*:*
Block.JS-c-rar:1:\.JS$:*:*:*:*:*:*
0\1 - энкриптед флаг
qwertykma
-
klin2
- рядовой
- Сообщения: 12
- Зарегистрирован: 2007-02-09 20:12:25
- Откуда: Germany
Непрочитанное сообщение
klin2 » 2016-03-05 0:33:02
None писал(а):видел на просторах сети решение с 7zip, более универсальное на мой взгляд
как решить вопрос с архивами вложенными в архив zip->zip->zip->samiy_noviy_dogovor.doc.exe?
Применяю для этого
deepfind вместо
unzip в checkarc.sh:
(входит в линукс пакет
Strigi)
....
Код: Выделить всё
case "${EXTFILE}" in
zip)
CMD_VRF="${deepfind}"
;;
http://noone.org/blog/English/Computer/ ... rep.futile
klin2
-
crush13
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2015-09-17 15:40:30
Непрочитанное сообщение
crush13 » 2016-08-25 11:52:55
Было давно, но всё же отвечу. Не нравятся мне вызовы сторонних скриптов из конф.файлов, которые проделывают тоже самое. Много строк ненужного кода. Но это как говорится, на вкус и цвет.
crush13