
LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdfГлава 29. SpamAssasin – программное обепечение для фильтрации сообщений, содержащих спам 421
no_more
system_aliases: driver = redirect allow_fail allow_defer
data = ${lookup{$local_part}lsearch{/etc/mail/aliases}} user = mail
file_transport = address_file pipe_transport = address_pipe
userforward:
driver = redirect check_local_user
file = $home/.forward no_verify
no_expn check_ancestor allow_filter modemask = 002
file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply
localuser:
driver = accept check_local_user
transport = local_delivery
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# |
ORDER DOES NOT MATTER |
# |
# |
Only one appropriate transport is called for each delivery. |
# |
######################################################################
begin transports
remote_smtp: driver = smtp
local_delivery: driver = appendfile
file = /var/mail/$local_part delivery_date_add envelope_to_add return_path_add
group = mail mode = 0600
address_pipe: driver = pipe return_output
address_file:
driver = appendfile delivery_date_add envelope_to_add return_path_add
address_reply: driver = autoreply
#SpamAssassin
spamcheck:

422 Часть 7. Программное обеспечение для организации службы электронной почты
driver = pipe batch_max =100
command = /usr/sbin/exim -oMr spam-scanned -bS use_bsmtp = true transport_filter=/usr/bin/spamc
home_directory = "/tmp" current_directory = "/tmp" user=mail
group=mail log_output = true
return_fail_output = true return_path_add = false message_prefix = message_suffix =
#SpamAssassin
######################################################################
# RETRY CONFIGURATION #
######################################################################
begin retry |
|
|
# Domain |
Error |
Retries |
# ------ |
----- |
------- |
* |
* |
F,2h,15m; G,16h,1h,1.5; F,4d,6h |
######################################################################
# REWRITE CONFIGURATION #
######################################################################
begin rewrite
######################################################################
# AUTHENTICATION CONFIGURATION #
######################################################################
begin authenticators
Тестирование SpamAssassin
Для тестирования SpamAssassin выполните следующие операции.
Шаг 1
Запустите spamd:
[root@test /]# /etc/init.d/spamd start
Запускается Spamd: |
[ОК] |
Шаг 2 |
|
Запустите или перезапустите Exim: |
|
[root@test /]# /etc/init.d/exim restart |
[ОК] |
Останавливается Exim: |
|
Запускается Exim: |
[ОК] |
Шаг 3 Отправьте сообщение какому-нибудь пользователю:
[root@test /]# mail drwalbr@test.bruy.info
Subject: Обычное сообщение, не содержащее спам. <Enter> Это обычное сообщение. <Enter>
В нем нет спама. <Enter> Администратор. <Enter>
<Ctrl+D> Cc: <Enter>
Глава 29. SpamAssasin – программное обепечение для фильтрации сообщений, содержащих спам 423
Шаг 4 Через некоторое время получите почту для этого пользователя:
[root@test /]# mail -u drwalbr
Mail version 8.1 6/6/93. |
Type |
? for help. |
|
"/var/mail/drwalbr": 1 message |
1 new |
"Тест" |
|
>N 1 root@test.bruy.info |
Mon Jun 23 16:52 23/832 |
& 1 <Enter>
Message 1:
From root@test.bruy.info Mon Jun 23 16:52:32 2003 Envelope-to: drwalbr@test.bruy.info Delivery-date: Mon, 23 Jun 2003 16:52:32 +0400
To: drwalbr@test.bruy.info
Subject: Обычное сообщение, не содержащее спам.
From: root <root@test.bruy.info> Date: Mon, 23 Jun 2003 16:51:30 +0400
X-Spam-Status: No, hits=0.0 required=5.0 tests=none
version=2.55 X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
Это обычное сообщение. В нем нет спама. Администратор.
& q <Enter>
Если сообщение выглядит примерно так, как приведено выше, то доставка сообщений без спама и их проверка работает нормально. При этом строки
X-Spam-Status: No, hits=0.0 required=5.0 tests=none
version=2.55 X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
указывают на то, что сообщение не содержит спама. Значение hits для него составляет 0,0 при максимально допустимом значении 5,0. Сообщение проверено SpamAssassin версии 2.55.
Шаг 5 Отправьте сообщение, содержащее спам, какому-нибудь пользователю:
[root@test /]# mail drwalbr@test.bruy.info < spam
При этом предполагается, что в файле spam содержится сообщение со спамом. При таком способе проверки несколько уменьшается значение hits, т. к. исходным отправителем является локальный пользователь root. Однако в рассматриваемом примере результатов остальных тестов оказалось достаточно для классификации письма как содержащего спам.
Шаг 6 Через некоторое время для наглядности снимите почту с удаленной системы, используя клиентскую
почтовую программу. Пользователь получил сообщение, в заголовке которого добавлен префикс:
Fw: >(;-(SPAM***** |
Кондициoнеры. Весенние скидки! |
||
В тексте сообщения |
содержится созданная вами инструкция для пользователя. |
||
Возможно, отправленное Вам сообщение содержало спам. |
|||
С его содержанием |
вы можете ознакомится в приложении |
||
к этому письму. Настройте вашу почтовую программу на |
|||
помещение сообщений, содержащих в заголовке |
префикс: |
||
>(;-(SPAM***** |
|
папки осуществляйте |
|
в отдельную паку. Просмотр этой |
|||
при возникновении |
подозрений о |
неполучении |
вами |
важных сообщений поисковыми средствами вашей почтовой программы. Администратор Сергей Панов. т. 26-35
Краткая аннотация спамерского сообщения:
Content preview: ЗВОНИТЕ НАМ ЗВОНИТЕ НАМ! ДЕШЕВЛЕ НЕТ! Новый прайс! ООО

424 |
Часть 7. Программное обеспечение для организации службы электронной почты |
"Техносервис" предлагает приобрести и установить кондиционеры [...]
Результаты тестов SpamAssassin:
Content analysis details: (9.60 points, 5 required) X_PRIORITY_HIGH (1.9 points) Sent with 'X-Priority' set to high HTML_80_90 (0.5 points) BODY: Message is 80% to 90% HTML
HTML_FONT_BIG_B (0.5 points) BODY: HTML has a big "font" and "B" tag combo
HTML_MESSAGE (0.1 points) BODY: HTML included in message FRONTPAGE (0.7 points) BODY: Frontpage used to create the message
FORGED_HOTMAIL_RCVD (1.1 points) Forged hotmail.com 'Received:' header found
FORGED_MUA_OUTLOOK (3.5 points) Forged mail pretending to be from MS Outlook
MIME_HTML_ONLY (0.1 points) Message only has text/html MIME parts UPPERCASE_25_50 (1.2 points) message body is 25-50% uppercase
Предупреждения для пользователя о небезопасности просмотра подозрительных сообщений в почтовой программе:
The original message did not contain plain text, and may be unsafe to open with some email clients; in particular, it may contain a virus, or confirm that your address can receive spam. If you wish to view it, it may be safer to save it to a file and open it with an editor.
В приложении в целости и сохранности находится исходное отправление, вид которого представлен на рис 29.1.
Рис. 29.1 Образец спамерского сообщения, прикрепленного к письму, сгенерированного
SpamAssassin.
После того, как пользователи привыкнут к наличию в сети программного обеспечения, осуществляющего фильтрацию спама, текст сообщения, генерируемого SpamAssassin, можно сократить, например, до:
Возможно, отправленное Вам сообщение содержало спам. Администратор Сергей Панов. т. 26-35
а отчеты и другую служебную информацию – удалить.
Особенности национального спама
Для тестирования возможностей SpamAssassin с настройками по умолчанию применительно к спаму, попадающему в ящики обычных российских пользователей, было проверена тысяча сообщений, содержа-

Глава 29. SpamAssasin – программное обепечение для фильтрации сообщений, содержащих спам 425
щих спам, и тысяча обычных. Сообщения со спамом были отобраны из почтовых ящиков, специально отданных на растерзание спамерам, а обычные сообщения были любезно предоставлены руководством дружественной фирмы. При этом предварительного отбора обычных сообщений по каким-либо признакам – например, степени конфиденциальности – не проводилось.
Для проверки сообщений возможно использование утилиты spamassassin, позволяющей определять величину hits для сообщений, находящихся в файле, без использования почтового сервера и демона spamd. Для проверки сообщения, находящегося в некотором файле, используйте команду:
[drwalbr@test spam]# spamassassin -t < message_file | less
или:
[drwalbr@test spam]# spamassassin -t < message_file | grep "X-Spam-
Level:"
X-Spam-Level: *********
Для проверки большого числа сообщений лучше написать программу на Perl, использующую класс
Mail::SpamAssassin.
В результате проверки сообщений были получены зависимости числа ошибочно пропускаемых спамерских сообщений и числа обычных сообщений, ошибочно принимаемых за спамерские, от величины hits, при превышении значения которой принимается решение о принадлежности сообщения к спаму. Полученные зависимости представлены на рис. 29.2.
Рис. 29.2 Зависимость числа сообщений от величины hits.
Из представленных зависимостей видно, что существенное снижение количества спамерских сообщений (на порядок), достигающих своих получателей, имеет место только при значениях hits менее или равного единице. При этом теряется не менее семи процентов обычных сообщений, ошибочно принятых за спам. Для проверки обучаемости SpamAssassin были созданы две папки ham и spam, содержащие, соответственно, по одной тысяче обычных и спамерских сообщений. Обучение SpamAssassin проводилось с использованием утилиты sa-learn:
[drwalbr@test messages]# /usr/bin/sa-learn --ham --dir ./ham
Learned from 1000 messages.
[drwalbr@test messages]# /usr/bin/sa-learn --spam --dir ./spam
Learned from 1000 messages.
После обучения SpamAssassin повторно получены зависимости числа ошибочно пропускаемых спамерских сообщений и числа обычных сообщений, ошибочно принимаемых за спамерские, от величины hits. Статистически значимых отклонений от зависимостей, полученных до обучения, обнаружено не было. Очевиден вывод – «чудес не бывает», SpamAssassin не учитывает русскоязычные идиомы. Выход из сложившейся ситуации может быть найден путем создания собственных настроек и тестов, используемых
426 |
Часть 7. Программное обеспечение для организации службы электронной почты |
при принятии решений о принадлежности сообщений к спаму. Двухлетний опыт применения SpamAssassin в пяти организациях показывает, что с использованием достаточно очевидных правил, учитывающих специфику конкретных пользователей, количество спамерских сообщений, достигающих своих получателей, может быть сокращено в 20…30 раз. При этом потерь сообщений, содержащих важную информацию, в течение последнего года не было.
Вы или ваша организация несет затраты (амортизация ресурсов, затраты труда на настройку программного обеспечения, оплата трафика и т. п.) на обработку содержащих спам сообщений. Они все равно поступают к вам, правда, уже в виде, не отвлекающем сотрудников от выполнения своих служебных обязанностей. Для частичной компенсации затрат на организацию борьбы со спамом можно складывать сообщения, сортируя их по датам на внутреннем Web-сервере. Информация, содержащаяся в сообщениях, может оказаться полезной при проведении маркетинговых исследований и решении других задач конкурентной интернет-разведки. Информация, содержащаяся в спаме, по-своему уникальна, т. к., как правило, не публикуется на Web-ресурсах. Для обеспечения оперативного доступа к информации на Web-сервере следует установить поисковую систему, реализующую алгоритм поиска по ключевым словам или с помощью латент- но-семантического анализа.
Глава 30. Doctor Web – антивирусное программное обеспечение |
427 |
Глава 30
Doctor Web – антивирусное программное обеспечение
В этой главе:
1. Ограничения и допущения
2.Пакеты
3.Компиляция, оптимизация и инсталляция Doctor Web
4.Конфигурирование и интеграция Doctor Web с почтовым транспортным агентом Exim
5.Конфигурационный файл /etc/drweb/drweb32.ini
6.Конфигурационный файл /etc/mail/exim.conf
7.Конфигурационный файл /etc/drweb/drweb_exim.conf
8.Конфигурационный файл /etc/mail/system-filter
9.Конфигурационный файл /etc/drweb/addresses.conf
10. Конфигурационный файл /etc/drweb/users.conf
11. Конфигурационный файл /etc/drweb/viruses.conf
12. Конфигурационные файлы шаблонов /etc/drweb/templates/en-ru/*.msg
13. Тестирование Doctor Web
14. Обновление антивирусных баз
428 |
Часть 7. Программное обеспечение для организации службы электронной почты |
В этой главе рассматривается установка и настройка антивирусного программного обеспечения Doctor Web от Санкт-Петербургской антивирусной лаборатории И. Данилова (ООО «СалД»). Несколько лет назад этот программный продукт был перенесен на платформу Linux. В комплект поставки Doctor Web (Dr. Web) для Linux входят:
•Dr. Web daemon, предназначенный для интеграции с различным программным обеспечением (почтовыми транспортными агентами и файл-серверами), в качестве фильтра;
•сканер Dr. Web, работающий в режиме командной строки.
Кроме демона и сканера в комплект поставки входят исходные тексты программ, необходимых для совместного использования Dr. Web с Sendmail, Exim, QMail Postfix, Communigate Pro, Samba, Courier и ZMailer.
Вкомплект поставки входит также подробная документация на русском и английском языках.
Вотличие от рассмотренного ранее программного обеспечения Doctor Web является коммерческим программным продуктом и не поставляется в исходных кодах. По этой причине авторам не удалось обеспечить работоспособность Dr. Web daemon при его установке в типичные для Linux-систем каталоги. В рас-
сматриваемом ниже варианте инсталляции основные исполняемые файлы устанавливаются в каталог /opt, который рекомендуется размещать на отдельном разделе диска. Не смотря на этот недостаток, по мнению авторов, Doctor Web является лучшим программным продуктом для реализации антивирусной защиты на почтовом сервере.
Ограничения и допущения
Исходные коды находятся в каталоге /var/tmp.
Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).
Перекомпиляция ядра не требуется.
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы этого не проверяли.
Пакеты
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта Doctor Web по состоянию на 29.06.2003. Регулярно посещайте домашнюю страницу проекта http:// http://drweb.ru/unix/ и отслеживайте текущие обновления. Doctor Web содержится в архиве drweb-version-glibc.version.tar.gz (последняя доступная на момент написания главы стабильная версия drweb-4.29.2-glibc.2.2.tar.gz). Клиентское программное обеспечение, предназначенное для интеграции с почтовым транспортным агентом Exim, содержится в архиве drweb-exim- version-linux.tar.gz (последняя доступная на момент написания главы стабильная версия drweb-
exim-4.29.10-linux.tar.gz).
Для нормальной инсталляции и работы Doctor Web необходима установка модуля Perl-
String::CRC32 (http://www.cpan.org/modules/index.html) и программы для скачивания файлов Wget (http://www.gnu.org/software/wget/wget.html).
Компиляция, оптимизация и инсталляция Doctor Web
Для инсталляции Doctor Web необходимо выполнить следующие операции.
Шаг 1
Распакуйте архив с исходными кодами String::CRC32 в каталог /var/tmp и установите модуль
Perl- String::CRC32:
[root@test tmp]# tar xzpf String-CRC32-1.2.tar.gz [root@test tmp]# cd String-CRC32-1.2
[root@test String-CRC32-1.2]# perl Makefile.PL [root@test String-CRC32-1.2]# make
[root@test String-CRC32-1.2]# make test [root@test String-CRC32-1.2]# make install
Шаг 2
Распакуйте архив с исходными кодами Wget в каталоге /var/tmp, сконфигурируйте, откомпилируйте, проинсталлируйте Wget, создайте и сохраните в надежном месте список установленных файлов:
[root@test tmp]# tar xzpf wget-1.8.2.tar.gz
[root@test tmp]# cd wget-1.8.2
Глава 30. Doctor Web – антивирусное программное обеспечение |
429 |
|
[root@test wget-1.8.2]# |
CFLAGS="-O2 -march=i686 -funroll-loops"; export |
|
CFLAGS \ |
|
|
./configure \ |
|
|
--prefix=/usr \ |
|
|
--sysconfdir=/etc \ |
|
|
--localstatedir=/var \ |
|
|
--mandir=/usr/share/man |
|
|
[root@test wget-1.8.2]# |
make |
|
[root@test wget-1.8.2]# |
find /* > /root/wget1 |
|
[root@test wget-1.8.2]# |
make install |
|
[root@test wget-1.8.2]# |
find /* > /root/wget2 |
|
[root@test wget-1.8.2]# |
diff /root/wget1 /root/wget2 > |
|
/root/wget.installed |
|
|
[root@test wget-1.8.2]# |
mv /root/wget.installed |
|
/very_reliable_place/wget.installed.YYYYMMDD
Шаг 3
Распакуйте в каталоге /var/tmp архивы с Doctor Web и клиентским программным обеспечением:
[root@test wget-1.8.2]# cd /var/tmp
[root@test tmp]# tar xzpf drweb-4.29.2-glibc.2.2.tar.gz [root@test tmp]# tar xzpf drweb-exim-4.29.10-linux.tar.gz
Шаг 4
Проинсталлируйте Doctor Web, создайте и сохраните в надежном месте список установленных фай-
лов:
[root@test tmp]# find /* > /root/drweb1
[root@test tmp]# drweb-4.29.2-glibc.2.2/install.sh
Enter destination directory (/opt/drweb is default): <Enter>
Select interface language: 0) english 1) russian 1 <Enter>
Dr.Web is installed to /opt/drweb. Edit /drweb32.ini to complete setup.
[root@test tmp]# find /* > /root/drweb2
[root@test tmp]# diff /root/drweb2 /root/drweb1 > /root/drweb.installed [root@test tmp]# mv /root/drweb.installed
/very_reliable_place/drweb.installed.YYYYMMDD
Шаг 5
Проинсталлируйте клиентское программное обеспечение, необходимое для интеграции Doctor Web с
Exim:
[root@test tmp]# cp -R drweb-exim/etc/drweb/* /etc/drweb/ [root@test tmp]# cp drweb-exim/opt/drweb/drweb-exim /opt/drweb/
Шаг 6 Удалите архивы и каталоги с исходными кодами программ:
[root@test tmp]# rm -rf drweb-exim/
[root@test tmp]# rm -f drweb-exim-4.29.10-linux.tar.gz [root@test tmp]# rm -rf drweb-4.29.2-glibc.2.2/ [root@test tmp]# rm -f drweb-4.29.2-glibc.2.2.tar.gz
Конфигурирование и интеграция Doctor Web с почтовым транспортным агентом
Exim
Конфигурирование Doctor Web в варианте интеграции его с Exim осуществляется с использованием следующих файлов:
•главного конфигурационного файла /etc/drweb/drweb32.ini, единого для демона и сканера;
•главного конфигурационного файла Exim /etc/mail/exim.conf;
•конфигурационного файла клиентского программного обеспечения
/etc/drweb/drweb_exim.conf;
•конфигурационного файла фильтров /etc/mail/system-filter;
•конфигурационного файла /etc/drweb/addresses.conf;
430 |
Часть 7. Программное обеспечение для организации службы электронной почты |
•конфигурационного файла /etc/drweb/users.conf;
•конфигурационного файла /etc/drweb/viruses.conf;
•файлов /etc/drweb/templates/en-ru/*.msg, содержащих шаблоны сообщений, используемых для информирования получателя, отправителя и администратора системы об обнаружении инфицированных сообщений и принятых к ним мерах.
Конфигурационный файл /etc/drweb/drweb32.ini
Шаг 1 Руководствуясь ниже приведенными рекомендациями и вашими потребностями, отредактируйте
файл /etc/drweb/drweb32.ini: [Linux]
EnginePath = "/opt/drweb/lib/drweb32.dll"
VirusBase = "/var/drweb/bases/*.vdb", "/var/drweb/bases/*.VDB" MoveFilesTo = "/var/drweb/infected"
LngFileName = "/opt/drweb/lib/russian.dwl"
Key = "/opt/drweb/drweb.key"
LogFileName = "/var/drweb/log/drweb.log" RenameFilesTo = #??
FilesTypes = EXE,COM,SYS,OV?,BAT,BIN,DRV,PRG,BOO,SCR,CMD,VXD,386,DLL,FON,DO? FilesTypes = XL?,WIZ,RTF,CL*,HT*,VB*,JS*,INF,AR?,ZIP,R??,PP?,OBJ,LIB,HLP,MD? FilesTypes = INI,MBR,IMG,CSC,CPL,MBP,SHS,SHB,PIF
ScanFiles = ByFormat HeuristicAnalysis = Yes CheckPackedFiles = Yes CheckArchives = Yes CheckEMailFiles = Yes InfectedFiles = Report SuspiciousFiles = Report IncurableFiles = Report ExcludePaths =
LogToFile = Yes OverwriteLog = No LogScanned = Yes LogInfo = Yes LogPacked = Yes LogArchived = Yes LogStatistics = Yes LogTime = No
ScanSubDirectories = Yes PromptOnAction = No LimitLog = No
MaxLogSize = 512 OutputMode = Terminal FollowLinks = No
UpdatePath = "/opt/drweb/updates"
RecodeNonprintable = Yes
RecodeMode = QuotedPrintable
RecodeChar = "?"
[Linux:Daemon]
EnginePath = "/opt/drweb/lib/drweb32.dll"
VirusBase = "/var/drweb/bases/*.vdb", "/var/drweb/bases/*.VDB" MoveFilesTo = "/var/drweb/infected"
LngFileName = "/opt/drweb/lib/russian.dwl"
Key = "/opt/drweb/drwebd.key"
LogTime = Yes