Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В

..pdf
Скачиваний:
108
Добавлен:
24.05.2014
Размер:
3.66 Mб
Скачать

Глава 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

Соседние файлы в предмете Информатика