Компьютер-Информ || Архив || Рубрики || Поиск || Подписка || Работа || О "КИ" || Карта


Информационная безопасность. Часть I


Антивирусная защита NIMS

Андрей Шарыпов (say@sigma-soft.spb.ru),
зам. директора ООО Сигма-Софт (www.sigma-soft.ru)

Последние десять дней ноября выдались очень веселыми для сисадминов. Такого массового нашествия вирусов не было уже давно. I LOVE YOU вспоминается как действительно любовное послание, а Sircam как детская шалость. Дыра в Outlook Express привела к тому, что BadtransII гуляет по Сети, заглядывая в каждый почтовый ящик. А Magistrb стал просто добрым знакомым!
Когда надоедает бегать кругами по офису, вытравливая гадость на десятке компьютеров за день, понимаешь, что вирусы должны отлавливаться на почтовом сервере. С этой радостной мыслью идешь на www.nimsinfo.com и в разделе FAQ читаешь что-то вроде этого:

Вопрос: Есть ли антивирус для NIMS?

Ответ: NIMS отличная модульная система, к которой запросто можно написать дополнительные модули. Фирма Novell сейчас работает над антивирусной защитой.

Проникнувшись благодарностью за трогательную заботу, начинаем думать дальше.

Отказаться от использования NIMS не в моих силах. Слишком удобно. Завел пользователя в дереве и готов почтовый ящик. Хоть по POP, хоть по IMAP, хоть по http. Значит, надо ставить защиту перед NIMS. И тут на помощь приходит хорошо нам знакомый, в том числе по BrainShare, Антивирус Касперского. Есть у них замечательная вещь Антивирус для SendMail, позволяющий работать как почтовый шлюз в режиме принял-проверил (вылечил)-отправил по назначению. Что ж, заказал у авторизованного реселлера Антивируса Касперского в СПб компании Поликом Про и получил по электронной почте комплект для SendMail как на Linux, так и на FreeBSD и временную лицензию для тестирования.

Что сразу удивило, так это полное отсутствие каких-либо указаний по установке как в комплекте поставки, так и на сайте Касперского. Вот по этой причине сейчас и пишу эти строки чтобы самому не забыть, как оно делается, да и другим может пригодиться. Итак, мы начинаем.

1.Поставьте Linux или FreeBSD. Лучше, если не будете сразу при установке ставить SendMail. Потом легче настраивать. Дальше будем рассматривать применительно к Linux, как к более распространенной, хотя у меня быстрее получилось привинтить AVP к FreeBSD.

2. В зависимости от того, откуда и что вы получили в комплекте AVP для Linux, комплект полученных файлов может различаться. Вообще комплект поставки напоминает смерть Кащея количеством вложенностей архивов. В любом случае, последовательно распаковывая архивы, вы найдете файлы kavwslinux.tgz и kavkeeper-sendmail-linux-3.5.136.tgz. Рядом с ними, скорей всего, будет файл kavinstaller, который при запуске что-то куда-то устанавливает, но что и куда непонятно. Поэтому будем устанавливать вручную.
2.1.Скопируемфайлы kavwslinux.tgz и kavkeeper-sendmail-linux-3.5.136.tgz во временный пустой раздел, например /usr/src/AVP и сделаем его текущим.
2.2. Распакуем kavwslinux.tgz командой tar -zxvf kavws*. В результате в этом разделе будет создан подраздел kavwslinux с подразделами и файлами внутри. Сразу положим его туда, где дальше будем хранить /usr/local/AVP. Для этого выполним команду mv kavwslinux /usr/local/AVP.
2.3.Создадимподраздел kavkeeper, войдем в него (cd kavkeeper) и распакуем ../kavkeeper-sendmail-linux-3.5.136.tgz командой tar -zxvf../kavkee*.tgz. Вернемся в раздел AVP (cd ..) и перенесем заполненный раздел туда, где ему положено быть mv kavkeeper /usr/local/AVP.
2.4. Переходим в раздел /usr/local/AVP и создаем в нем раздел Bases. В /usr/local/AVP копируем полученный ключ (в моем случае Tr_SendM.Key).
2.5. Начинаем конфигурировать. Редактируем /usr/local/AVP/AvpUnix.ini. Должно получиться что-то вроде следующего:

[AVP32]
DefaultProfile=defUnix.prf
LocFile=None
[Configuration]
KeyFile=Tr_SendM.key
KeysPath=/usr/local/AVP
SetFile=avp.set
BasePath=/usr/local/AVP/Bases
SearchInSubDir=No
UpdatePath=ftp://ftp.kasperskylab.ru/updates

2.6. Переходим в подраздел Bases и загружаем в него по ftp все содержимое раздела updates с сайта ftp.kasperskylab.ru. Автоматически при первом запуске у меня это сделать не получилось, лучше сделать вручную.

2.7. Настраиваем автоматический запуск при загрузке.
2.7.1. Переходим в /etc/rc.d/init.d и создаем линк: ln /usr/local/AVP/EtcScripts/init.d/kavdaemon.rh kavdaemon.
2.7.2. Переходим в раздел, соответствующий используемому уровню работы (runlevel), обычно 3(cd /etc/rc.d/rc3.d) и создаем символьный линк ln -s ../init.d/kavdaemonS76kavdaemon.
2.7.3. Редактируем скрипт S76kavdaemon. Тот, который идет в комплекте поставки, у меня работать не захотел. При старте системы он нормально запускал демона, но штатно остановить и перезапустить его не удается. А это надо для обновления баз. Это во-первых. Во-вторых, надо привести в соответствие пути в скрипте и те пути, по которым мы реально установили AVP.
Для этого меняем следующие строки:

INSTPATH=/usr/local/AVP
вместо INSTPATH=/opt/AVP
INIFILE=/usr/local/AVP/AvpUnix.ini
вместоINIFILE=/opt/AVP/AvpUnix.ini
$INSTPATH/$NAME $DPARMS
вместо daemon $INSTPATH/$NAME $DPARMS
две строки: cd $INSTPATH
$INSTPATH/$NAME -ka >/dev/null 2>&1
вместо $INSTPATH/$NAME -ka >/dev/null 2>&1
killproc $INSTPATH/$NAME

Но и после этого редактирования у меня не работает параметр restart, поэтому лучше запускать с параметрами stop и start с паузой 10 секунд.
2.7.4. Проверяем: ./S76kavdaemon start.

2.8.Настраиваем автоматическое обновление.
2.8.1.Копируем файл /usr/local/AVP/EtcScripts/cron/kavupdater.daily в раздел /etc/cron.daily и в файле /etc/cron.daily/kavupdater.daily приводим путь в соответствие с тем, куда мы поместили AVP:

/usr/local/AVP/kavupdater.sh
вместо/opt/AVP/kavupdater.sh.

2.8.2.В файле /usr/local/AVP/kavupdater.sh меняем следующие строки:
2.8.2.1. if [ -r /usr/local/AVP/AvpUnix.ini ]; then
вместо if [ -r /opt/AVP/AvpUnix.ini ]; then
2.8.2.2. $KAV_PATH/Tools/checkurl -u=$DPARMS -t=5 -d
вместо checkurl -u=$DPARMS -t=5 -d
2.8.2.3. Перед строкой $KAV_PATH/kavupdater uik=$DPARMS -o -y добавляем строку cd $KAV_PATH.

2.9. Настраиваем модуль, отвечающий за проверку почты. Для этого редактируем файл /usr/local/AVP/kavkeeper/kavkeeper.ini следующим образом:
2.9.1. Убираем комментарии со строк:
sendmail=/usr/sbin/sendmail -oi -i -f$f $u
procmail=/usr/bin/procmail -Y -f $f -d $u
2.9.2. Приводим в соответствие с вашими адреса, по которым отправляем сообщения о вирусах и обратный адрес для этих сообщений.
2.9.3. Убираем все упоминания о группе [group:NOTCHECK].
2.9.4.Длягруппы[group: DEFAULT] меняем значение параметра removeinfectedpart с no на yes, иначе до адресата доходят в приложениях те файлы, которые невозможно вылечить.
2.9.5. Редактируем тексты посылаемых отправителю, получателю и администратору писем.

На этом установка и настройка антивирусной части закончена. Приступаем к установке и настройке почтового сервера.

3.Загружаем с www.sendmail.org комплект sendmail. Я использовал sendmail-8.11.6. Поместим файл sendmail-8.11.6.tar.gz, например, в /usr/src.

Распакуем его командойtar zxvf sendmail-8.11.6.tar.gz, перейдем в создавшийся раздел sendmail-8.11.6, сделаем все так, как написано в файле INSTALL, за исключением п. 4, описывающего редактирование файла .mc, и займемся настройкой.
3.1. Скопируем со всем содержимым подразделы (cf, feature и mailer), отходящие от /usr/local/AVP/kavkeeper/sendmail-cf, в /usr/src/sendmail-8.11.6/cf и перейдем в раздел /usr/src/sendmail-8.11.6/cf/cf.
3.2. Конфигурирование SendMail занятие, которому можно посвятить всю жизнь, но перед нами конкретная задача получить почту, проверить (вылечить) и переслать по назначению. При этом не сделать из своего сервера Open Relay. Этой задаче вполне соответствует файл, содержащий следующие строки:

<=======начало файла======>
divert(-1)
#
# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
# All rights reserved.
# Copyright (c) 1983 Eric P. Allman. All rights reserved.
# Copyright (c) 1988, 1993
# The Regents of the University of California. All rights reserved.
# By using this file, you agree to the terms and conditions set forth in the LICENSE file which can be found at the top level of the sendmail distribution.
# This is a generic configuration file for Linux.
# It has support for local and SMTP mail only. If you want to customize it, copy it to a name appropriate for your environment and do the modifications there.
#
divert(0)dnl
VERSIONID($Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $)
OSTYPE(linux)dnl
DOMAIN(generic)dnl
FEATURE(access_db)dnl
FEATURE(local_lmtp)dnl
FEATURE(mailertable,hash -o /etc/mail/mailertable)dnl
define(KAVKEEPER_MAILER,/usr/local/AVP/kavkeeper/kavkeeper)dnl
define(KAVKEEPER_CONFIG,/usr/local/AVP/kavkeeper/kavkeeper.ini)dnl
define(KAV_LOCAL_HACK)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(kavkeeper)dnl
<=======конец файла=======>

сохраните этот файл с именем, например, sendmail.mc и выполните команду sh Build sendmail.cf. В текущем разделе /usr/src/sendmail-8.11.6/cf/cf появится файл sendmail.cf, который надо скопировать в /etc/mail.

3.3. Перейдем в /etc/mail и закончим настройку.
3.3.1. Расскажем SendMail-у, чью почту можно отправлять наружу. Для этого отредактируем (если нет создадим) файл access. В нем, в принципе, достаточно одной строки, задающей сеть, из которой принимать письма, отправляемые во внешний мир:

192.168.1 RELAY
Это если у нас одна сеть. Если сетей несколько, то по строке на каждую сеть. Затем этот файл нужно зашифровать командой makemap hash access < access.
3.3.2.Скопируем файл aliases.db из /etc в /etc/mail.
3.3.3. Отредактируем (если нетсоздадим) файл relay-domains. В нем должен быть перечень доменов, обслуживаемых сервером, т.е. что-то вроде следующего:
office.company.ru
company.ru
company.spb.ru
company.spb.su
3.3.4. Объясним Sendmail-у, куда эти письма девать. Для этого отредактируем (если нет создадим) файл mailertable. В нем для каждого из обслуживаемых доменов укажем ХОСТ, с которым надо связаться по протоколу smtp для отправки писем для адресатов из этого домена, т.е. что-то вроде:
office.company.ru smtp:[nims.office.company.ru]
company.ru smtp:[nims.company.ru]
company.spb.ru smtp:[nims.company.spb.ru]
company.spb.su smtp:[nims.company.spb.su]

ВАЖНО! nims... имя ХОСТА, на котором запущен почтовый сервер, раздающий почту (в нашем случае NIMS), а не имя домена!
Этот файл тоже нужно зашифровать командой makemap hash mailertable < mailertable.
С настройкой SendMail закончено. Можно запустить его вручную командой sendamil -bd -q30, можно настроить автоматический запуск, если еще не настроен кому как нравится.

4. ВАЖНО!!!
Необходима соответствующая настройка или проверка правильности настройки DNS.
Тот сервер, который мы только что настроили, должен иметь MX запись с наивысшим приоритетом для всех доменов, перечисленных в файлах relay-domains и mailertable. На оконечный сервер (на котором NIMS) эти записи вообще не должны указывать, чтобы не было попыток прислать почту в обход антивирусной проверки. Лучше даже настроить фильтры или сам NIMS таким образом, чтобы не было возможности обратиться к оконечному серверу по smtp протоколу ниоткуда, кроме проверяющего сервера.


       КОМПЬЮТЕР-ИНФОРМ 
          Главная страница || Статьи 22'2001 || Новости СПб || Новости России || Новости мира

Рубрики || Работа || Услуги || Поиск || Архив || Дни рождения
О "КИ" || График выхода || Карта сайта || Подписка

Рассылка анонсов газеты по электронной почте

Главная страница

Сайт газеты "Компьютер-Информ" является зарегистрированным электронным СМИ.
Свидетельство Эл 77-4461 от 2 апреля 2001 г.
Перепечатка материалов без письменного согласия редакции запрещена.
При использовании материалов газеты в Интернет гиперссылка обязательна.

Телефон редакции (812) 718-6666, 718-6555.
Адрес: 196084, СПб, ул.Заставская, д.23, БЦ "Авиатор", 3-й этаж, офис 307
e-mail: editor@ci.ru
Для пресс-релизов и новостей news@ci.ru