Страница 1 из 1
В Exim 4.88 не будет demime
Добавлено: 2016-06-15 0:35:05
xM
Из
Changelog версии 4.88
JH/02 The obsolete acl condition "demime" is removed (finally, after ten
years of being deprecated). The replacements are the ACLs
acl_smtp_mime and acl_not_smtp_mime
Рекомендую обратить внимание на свои конфиги и подумать как использовать вместо старого доброго demime соответствующее acl.
В Exim 4.88 не будет demime
Добавлено: 2016-06-15 16:02:16
xM
Хм, очень интересно.
Я стал смотреть исходники Exim на предмет реализации альтернативы старому demime и обнаружил в mime.c пару недокументированных (!) переменных, которые можно использовать взамен прежней, а именно $mime_anomaly_level (аналог $demime_errorlevel) и $mime_anomaly_text (аналог $demime_reason).
$mime_anomaly_level имеет три уровня от 0 до 2 (старый имел от 1 до 3).
Собственно, в этой связи реализация нового ACL с MIME представляется тривиальной.
В Exim 4.88 не будет demime
Добавлено: 2016-06-18 20:52:58
Alex Keda
ну а собсно - какая-то религия запрещает использовать то что разработчики и рекомендуют:
xM писал(а): The replacements are the ACLs
acl_smtp_mime and acl_not_smtp_mime
??
В Exim 4.88 не будет demime
Добавлено: 2016-06-18 22:09:56
xM
Дык никакая. Речь о том, чтобы старые конфиги подрихтовали "не дожидаясь перитонита".
В Exim 4.88 не будет demime
Добавлено: 2016-06-18 22:31:57
Alex Keda
один фиг - вначале дождёмся
)
В Exim 4.88 не будет demime
Добавлено: 2016-06-18 22:41:05
xM
Alex Keda писал(а): один фиг - вначале дождёмся )
Ждём поклёвки жаренного петуха в пятую точку по старинному русскому обычаю.
Но я не русский, так то уже всё пофиксил
В Exim 4.88 не будет demime
Добавлено: 2016-06-18 22:52:55
Alex Keda
нету такой национальности.
русский - это состояние души.
у тебя оно не соответствует званию "русского"
--
З.Ы. выложи чтоле замену стандартным народным строкам
Код: Выделить всё
deny message = contains $found_extension file (blacklisted).
demime = com:vbs:bat:pif:scr:exe
deny message = This message contains a MIME error ($demime_reason)
demime = *
condition = ${if >{$demime_errorlevel}{2}{1}{0}}
В Exim 4.88 не будет demime
Добавлено: 2016-06-18 23:08:54
xM
Да нет проблем.
Но я по расширениям не баню, разве что. Но это легко при желании.
Пока так нарисовал для опытов:
Код: Выделить всё
...
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_dkim = acl_check_dkim
acl_smtp_mime = acl_check_mime
acl_smtp_data = acl_check_data
...
begin acl
acl_check_rcpt:
...
acl_check_dkim:
...
# -- by xM 2016-06-14
acl_check_mime:
accept hosts = :
# --- accept messages for abuse / postmaster
accept condition = $acl_m_pm
deny decode = default
condition = ${if >{$mime_anomaly_level}{1}}
message = This message contains a MIME error ($mime_anomaly_text)
# --- Check MIME boundary delimiter according RFC2046
deny condition = ${if match{$mime_boundary}{\N( |\t)$\N}}
message = MIME boundary delimiter ends with whitespace
deny condition = ${if >{${strlen:$mime_boundary}}{70}}
message = Too long MIME boundary delimiter
accept authenticated = *
warn !hosts = +relay_from_hosts
condition = ${if >{$mime_anomaly_level}{0}}
set acl_c0 = ${eval:$acl_c0+20}
set acl_c1 = DEMIME(20) found MIME error ($mime_anomaly_text); $acl_c1
accept
acl_check_data:
...
Если хочется по расширениям, то где-то после
decode = default можно типа такого написать:
Код: Выделить всё
deny condition = ${if match{${lc:$mime_filename}}{\N(\.com|\.vbs|\.bat|\.pif|\.scr|\.exe)$\N}}
message = Forbidden file type in attachment found
В Exim 4.88 не будет demime
Добавлено: 2017-06-30 16:16:39
sergio
спасибо!