URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91385
[ Назад ]

Исходное сообщение
"clamsmtpd + Roundcube отчеты о вирусах."

Отправлено byshido , 15-Апр-11 15:56 
Сделал скриптик:

#!/bin/sh
ADMIN="admin@domain.ru"
MAILTO="$RECIPIENTS,$ADMIN"
SUBJECT=$(cat $EMAIL|grep Subject|awk -F: '{print $2}')
TEXT="ВНИМАНИЕ!!!\n\nНа почтовый адрес $RECIPIENTS пришло сообщение, содержащее ВИРУС!\n"
TEXT=$TEXT"\nНе волнуйтесь, вирус обезврежен антивирусным программным обеспечением, установленным на почтовом сервере."
TEXT=$TEXT"\nВашим данным ничто не угражает."
if [ "x$EMAIL" != "x" ] && [ -f $EMAIL ]
then
TEXT=$TEXT"\nПисьмо добавлено в карантин: $EMAIL \n"
fi
TEXT=$TEXT"\nОтправитель:         $SENDER"
TEXT=$TEXT"\nТема сообщения:        $SUBJECT"
TEXT=$TEXT"\nИдентификатор Вируса:     $VIRUS"
        #TEXT=$TEXT"\nПочтовый клиент:    $CLIENT"
        #TEXT=$TEXT"\nПочтовый сервер:    $SERVER"
TEXT=$TEXT"\n\nЕсли вы уверены, что письмо не содержит вредоносного содержимого, либо, не смотря ни на что, вы все равно хотите прочитать данное сообщение и$
TEXT=$TEXT"\nОбратите внимание, что в карантине зараженные письма находятся 7 дней, после чего удаляются без возможности восстановления!"
TEXT=$TEXT"\n\nС наилучшими пожеланиями,\nВаш администратор."
echo "$TEXT" | mail -s "[ВИРУС] $SUBJECT" $MAILTO

Имеется связка Postfix+Dovecot+Clamav+Spamassasin, все работает но одно но, когда отправляю тестовое письмо с вирусом, приходит по этому скрипту ответ. В совершенно непонятно кодировке. Пробовал игратся с кодировкой в roundcube ни к чему не привело. Роундкуб все равно перекодит из utf-8 во что-то не понятное( менял кодировку скрипта. Эфекта никакого(

вот текст письма по скрипту:
Return-Path: <clamav@mail2..ru>
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail2..ru
X-Spam-Level: ****
X-Spam-Status: No, score=4.4 required=5.0 tests=ALL_TRUSTED,FSL_RU_URL,
        HEAD_ILLEGAL_CHARS,NO_DNS_FOR_FROM,SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS
        autolearn=no version=3.3.1
Delivered-To: daniel@.ru
Received: from mail2..ru (localhost [127.0.0.1])
        by mail2..ru (Postfix) with ESMTP id DD861981344;
        Fri, 15 Apr 2011 15:35:12 +0400 (MSD)
Received: by mail2..ru (Postfix, from userid 200)
        id A520698162E; Fri, 15 Apr 2011 15:35:12 +0400 (MSD)
To: admin@.ru,daniel@.ru
Subject: [ВИРУС]  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  virus test   Fwd  Fwd  1541   testtest
Message-Id: <20110415113512.A520698162E@mail2..ru>
Date: Fri, 15 Apr 2011 15:35:12 +0400 (MSD)
From: clamav@mail2..ru
X-Virus-Scanned: Внимание! Обнаружен вирус!

ВНИМАНИЕ!!!

На почтовый адрес admin@.ru пришло сообщение, содержащее ВИРУС!

Не волнуйтесь, вирус обезврежен антивирусным программным обеспечением, установленным на почтовом сервере.
Вашим данным ничто не угражает.
Письмо добавлено в карантин: /tmp/virus.wvPolN

Как видно нет обычных строчек:
Content-Description: Notification
Content-Type: text/plain; charset=utf-8

Вопрос, как отучить раундкуб чтобы не кодил письма с непонятной кодировкой? Илиже как в скрипте добавить кодировку чтобы указывалась в Content-Type?

Заранее Спасибо


Содержание

Сообщения в этом обсуждении
"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено byshido , 20-Апр-11 11:26 
Мыслей нет?

"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 20-Апр-11 11:37 
> Мыслей нет?

----------------------------------------------
#!/bin/sh

cat << EEEOOOTTT | /usr/local/libexec/dovecot/deliver -d $USER
From: postmaster@foo.bar
To: $USER
Subject: Привет!
Content-Type: text/html; charset="windows-1251"

По городу ходила
Большая крокодила.
EEEOOOTTT

exit 0


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено PavelR , 20-Апр-11 12:03 
>[оверквотинг удален]
> #!/bin/sh
> cat << EEEOOOTTT | /usr/local/libexec/dovecot/deliver -d $USER
> From: postmaster@foo.bar
> To: $USER
> Subject: Привет!
> Content-Type: text/html; charset="windows-1251"
> По городу ходила
> Большая крокодила.
> EEEOOOTTT
> exit 0

Сабж в письме должен быть в семи битах.


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 20-Апр-11 12:55 
> Сабж в письме должен быть в семи битах.

У меня работает, оннако. Прекрасно читается как сабж, так и тело.


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 20-Апр-11 12:58 
> Сабж в письме должен быть в семи битах.

/usr/home/mail/foo.bar/user/cur > cat 1303289689.M699090P27603.foo.bar,S=157,W=164:2,S
From: user@foo.bar
To: user@foo.bar
Subject: == ПОВІДОМЛЕННЯ ВІД ПОШТОВОЇ СИСТЕМИ ==
Content-Type: text/html; charset="windows-1251"

перевірка ЇЄЁ

/usr/home/mail/foo.bar/user/cur >


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено byshido , 20-Апр-11 16:58 
что стоит в $rcmail_config['default_charset'] ?


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено byshido , 20-Апр-11 17:24 
нет у меня Content-Type в тексте письма нету генерируемого скриптом. Скрипт выше дает письмо но оно неправильно оформленно. И поэтому в роундкубе не открывается вообше

"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 20-Апр-11 20:07 
> нет у меня Content-Type в тексте письма нету генерируемого скриптом. Скрипт выше
> дает письмо но оно неправильно оформленно. И поэтому в роундкубе не
> открывается вообше

Что значит "неправильно оформлено"? Выкладывайте сюда, тогда будет видно - правильно или неправильно. Только будете выкладывать - выкладывайте полностью, со всеми пустыми строками.


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 20-Апр-11 20:05 
> что стоит в $rcmail_config['default_charset'] ?

$rcmail_config['default_charset'] = 'UTF-8';

И я выложил содержимое письма - с хедерами и телом - которое генерит скрипт. Все прекрасно открывается.


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено byshido , 21-Апр-11 10:34 
Это письмо не видит роундкуб, получилось после выполнения скрипта выше сказанного:

From: admin@spbsseu.ru
To: daniel@spbsseu.ru
Subject: Привет!
Content-Type: text/html; charset="windows-1251"
По городу ходила
Большая крокодила.
EEEOOOTTT
exit 0


добавил в скрипт строчку:
#!/bin/sh
ADMIN="daniel@spbsseu.ru"
MAILTO="$RECIPIENTS,$ADMIN"
SUBJECT=$(cat $EMAIL|grep Subject|awk -F: '{print $2}')

Content-Type: text/plain; charset="utf-8"

TEXT="ВНИМАНИЕ!!!\n\nНа почтовый адрес $RECIPIENTS пришло сообщение, содержащее ВИРУС!\n"
TEXT=$TEXT"\nНе волнуйтесь, вирус обезврежен антивирусным программным обеспечением,
...
TEXT=$TEXT"\n\nС наилучшими пожеланиями,\nВаш администратор."
echo "$TEXT" | mail -s "X-Virus $SUBJECT" $MAILTO

Получилось вот что:
Return-Path: <clamav@mail2.spbsseu.ru>
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail2.spbsseu.ru
X-Spam-Level: ****
X-Spam-Status: No, score=4.4 required=5.0 tests=ALL_TRUSTED,FSL_RU_URL,
        HEAD_ILLEGAL_CHARS,NO_DNS_FOR_FROM,SUBJECT_NEEDS_ENCODING,SUBJ_ILLEGAL_CHARS
        autolearn=no version=3.3.1
Delivered-To: daniel@spbsseu.ru
Received: from mail2.spbsseu.ru (localhost [127.0.0.1])
        by mail2.spbsseu.ru (Postfix) with ESMTP id 4993B9804D6
        for <daniel@spbsseu.ru>; Thu, 21 Apr 2011 10:32:36 +0400 (MSD)
Received: by mail2.spbsseu.ru (Postfix, from userid 200)
        id 1EA87981695; Thu, 21 Apr 2011 10:32:35 +0400 (MSD)
To: daniel@spbsseu.ru,daniel@spbsseu.ru
Subject: X-Virus  Fwd  (без темы)   Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  Fwd  virus test   Fwd  Fw$
Message-Id: <20110421063236.1EA87981695@mail2.spbsseu.ru>
Date: Thu, 21 Apr 2011 10:32:35 +0400 (MSD)
From: clamav@mail2.spbsseu.ru
X-Virus-Scanned: Внимание! Обнаружен вирус!

ВНИМАНИЕ!!!

На почтовый адрес daniel@spbsseu.ru пришло сообщение, содержащее ВИРУС!

Не волнуйтесь, вирус обезврежен антивирусным программным обеспечением, установленным на почтовом сервере.
Вашим данным ничто не угражает.
Письмо добавлено в карантин: /tmp/virus.kszUDF

Отправитель:         daniel@spbsseu.ru
Тема сообщения:         Fwd
(без темы)
testtest
Идентификатор Вируса:     Eicar-Test-Signature

Как видно контент тайп недобавился, и все равно в раундкубе получается билибирда.



"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 21-Апр-11 16:16 
> Как видно контент тайп недобавился, и все равно в раундкубе получается билибирда.

Потому что нужно читать РФЦ!

Всякое письмо делится на хедеры и тело. Хедеры начинаются с первой строки письма и отделяются от тела пустой строкой. Все, что идет после первой пустой строки, хедером не считается.

Далее. То, что у вас в тело письма попала строка "exit 0" означает, что у вас коряво работает редактор текстов. В частности, конец строки записывается, как CR-LF вместо LF. Это понятно уже потому, что у вас не отработал EEEOOOTTT.

По итогу у вас не получается ни правильно выполнить скрипт, ни правильно сформировать письмо, потому что в него даже пустую строку без ^M вставить не удается.

Успехов!


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено byshido , 21-Апр-11 17:06 
>[оверквотинг удален]
> письма и отделяются от тела пустой строкой. Все, что идет после
> первой пустой строки, хедером не считается.
> Далее. То, что у вас в тело письма попала строка "exit 0"
> означает, что у вас коряво работает редактор текстов. В частности, конец
> строки записывается, как CR-LF вместо LF. Это понятно уже потому, что
> у вас не отработал EEEOOOTTT.
> По итогу у вас не получается ни правильно выполнить скрипт, ни правильно
> сформировать письмо, потому что в него даже пустую строку без ^M
> вставить не удается.
> Успехов!

Хм. Т.е. выхотите сказать что проблемы с кодировкой у меня исключительно из-за текстового редактора? использую nano, скажите каким редактором сделаю им.


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено byshido , 28-Апр-11 14:09 
Какиенибудь мысли имеются?

"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено DeadLoco , 28-Апр-11 22:32 
> Какиенибудь мысли имеются?

----------------------------------------------
#!/bin/sh

cat << EEEOOOTTT | /usr/local/libexec/dovecot/deliver -d $USER
From: postmaster@foo.bar
To: $USER
Subject: Привет!
Content-Type: text/html; charset="windows-1251"
              <---- СОВСЕМ НИЧЕГО, НИ ЕДИНОГО СИМВОЛА, ДАЖЕ ПРОБЕЛА, ТОЛЬКО ПЕРЕВОД СТРОКИ
По городу ходила
Большая крокодила.
EEEOOOTTT     <---- НИКАКИХ СИМВОЛОВ ПОСЛЕ ЕЕЕОООТТТ, ТОЛЬКО ПЕРЕВОД СТРОКИ

exit 0
#             <---- ПОСЛЕДНЯЯ СТРОКА СКРИПТА - ВСЕГДА КОММЕНТ. ЗДОРОВО ЭКОНОМИТ НЕРВЫ
----------------------------------------------


В досе-виндовсе конец строки - два символа 0х13-0х10 ака ^M^J ака CR-LF.
В никсах - один символ. 0х10 ака ^J ака LF.

Если скрипт набрать в редакторе, который строки завершает по-досовски, то в каждой "пустой" строке у вас будет невидимый символ ^M, а строка с точки зрения почтовика не будет пустой. И концевой маркер инлайнового текста будет иметь вид "ЕЕЕОООТТТ^M", а не тот, который шелл ищет. Вот потому у вас и не работают скрипты.


"clamsmtpd + Roundcube отчеты о вирусах."
Отправлено sHaggY_caT , 28-Апр-11 15:43 
> Хм. Т.е. выхотите сказать что проблемы с кодировкой у меня исключительно из-за
> текстового редактора? использую nano, скажите каким редактором сделаю им.

С vi/vim никогда проблем с совместимостью не было