Главная arrow Статьи arrow Почтовые системы arrow Создаем почтовую систему среднего и малого офиса на основе FreeBSD Postfix+dr.web+popa3d+pflogsumm  
 
 
 

Main Menu
Главная
Статьи
Обзоры
Блог
Поиск
 

Создаем почтовую систему среднего и малого офиса на основе FreeBSD Postfix+dr.web+popa3d+pflogsumm

Написал Бешков Андрей   
Пятница, 01 Апреля 2005
Содержание статьи
Постановка задачи
Выбор програмного обеспечения
Установка Postfix
Тестирование SMTP
Проверка результатов работы SMTP сервера
Установка POP3 сервера
Тестирование POP3 сервера
Установка антивируса
Подключение антивируса к Postfix и тестирование его работы
Настрока обновления антивируса
Сбор статистики работы почтового сервера


Давайте приступим к созданию антивирусной защиты для нашего сервера. Как я уже говорил в качестве антивируса мы будем использовать drweb. Грустный опыт работы с KAV для FreeBSD подтолкнул меня к правильному выбору. Так же стоит обратить внимание на отличное качество русской документации поставляющейся вместе с дисрибутивом drweb. Несмотря на то что эта версия не лечит письма, а отправляет их в карантин, и не умеет проверять архивы внутри писем, возможностей заложенных в пробной версии которую мы будем использоватьдостаточно для надежной защиты от вирусов. Лично мне зараженные письма не нужны. А большинство пользователей самостоятельно архивы открывать не умеет. Даже если они и научатся это делать вирусу все равно не жить потому что на каждой рабочей станции тоже стоит drweb.
Для получения обновлений антивирусных баз нам понадобится программа wget. Кроме всего прочего она поможет нам скачивать все необходимое программное обеспечение. Устанавливаем wget используя механизм портов. Можно конечно и из исходников, но особой надобности в этом нет.


# cd /usr/ports/ftp/wget
# make
# make install
# make clean
Пользователи других операционных систем могут взять исходный код этой утилиты тут http://www.gnu.org/software/wget/wget.html. С помощью только что установленного wget скачиваем последнюю версию drweb.


# /usr/local/bin/wget ftp://ftp.drweb.ru/pub/unix/4.29.5/drweb-4.29.5-freebsd4.tar.gz
Если выполнить это действие, по каким либо причинам не удалось, то для скачивания можно воспользоваться любыми другими инструментами. Но все же стоит разобраться почему произощел такой казус. Иначе в дальнейшем мы не сможем автоматически обновлять антивирусные базы. Если и это не получится то для автообновления вместо wget прийдется использовать программу fetch.

После окончания закачки, распаковываем полученный дистрибутив и создаем пользователя drweb принадлежащего группе drweb.

Внимательно читаем инструкции в файле /tmp/drweb-4.29.5-freebsd4/install/opt/drweb/README.RUS. А затем запускаем скрипт инсталляции.


# cd drweb-4.29.5-freebsd4
# ./install.sh
К сожалению, установить антивирус с помощью стандартного скрипта да еще и с первого раза мне не удалось. Он все время жаловался, что не может создать директорию /opt/drweb/ поэтому пришлось создать ее вручную.


# mkdir /opt
# mkdir /opt/drweb/
После этого пошли жалобы на невозможность использования уже созданной директории по причине того, что она уже существует. Ну что же придется обработать скрипт инсталляции напильником. Открываем install.sh любимым текстовым редактором ищем такой фрагмент текста.

if [ -d "$INPUT" ] ; then
echo "Directory $INPUT already exists!"

else
mkdir $INPUT

if [ ! -d "$INPUT" ] ; then
echo "Can not create $INPUT!"

else
INSTALL_DIR=$INPUT
fi
fi

Удаляем совсем или переводим этот кусок текста в комментарии. А вместо него вставляем строку:

INSTALL_DIR=$INPUT

Сохраняемся, выходим из редактора и запускаем install.sh снова. Теперь нужно по порядку отвечать на вопросы задаваемые скриптом.

Enter destination directory (/opt/drweb is default):
# Директория инсталляции

Select interface language: 0) english 1) russian
# Язык интерфейса. Мне больше нравится английский поэтому я выбрал "0"

После завершения установки начинаем редактировать /etc/drweb/drweb32.ini и ищем строку:

;User = drweb

Удаляем из нее символ ?;? и идем дальше. Таким образом мы указываем демону drweb что он должен работать с правами одноименного пользователя. Итак, антивирус установлен. Запускаем его с помошью файла /opt/drweb/drwebd. Полюбовавшись на сообщения в /var/log/messages понимаем что антивирус запустился и работает как надо. Но к сожалению, проку нам от этого пока мало. Для того чтобы подключить его к проверке почты нужно настроить интерфейс от postfix к drweb. Давайте разберемся, как взаимодействуют друг с другом вышеуказанные программы проследив весь жизненый цикл письма. На приведенной ниже схеме интересующий нас маршрут прохождения письма помечен синим цветом.

 Image

Письмо может войти в postfix двумя способами. C помошью входящего соединения по smtp через демона smtpd. Если же письмо отправлено с локальной машины, то через программу заменяющую собой sendmail. После этого письмо попадает в модуль cleanup который занимается проверкой и зачисткой заголовков письма. Затем письмо переходит в модуль queue который передает его через pipe фильтру postfix-drweb. Фильтр в свою очередь сохраняет письмо во временном файле и передает путь к нему клиенту антивируса. Усилиями клиента письмо попадает к демону drweb. В свою очередь он с помощью набора антивирусных баз проверяет письмо.

Если вирусов не найдено, то с используя программу заменяющую sendmail письмо передается модулю pickup. Затем вторично пройдя через cleanup и queue в зависимости от того где находится получатель письмо попадает либо в local и доставляется локально, либо в smtp и отсылается на другой сервер. В случае если drweb считает письмо зараженным оно переносится в карантин. С помощью программы sendmail письма с уведомлениями о данном неприятном факте направляются всем кто указан в секции [VirusNotify] файла drweb_postfix.conf. Обычно это админисратор, отправитель и получатель. Разобравшись с теорией приступим к настройке.

Берем фильтр drweb для postfix

# /usr/local/bin/wget ftp://ftp.drweb.ru/pub/unix/drweb-postfix-4.29.10-freebsd4.tar.gz
В обязательном порядке читаем документацию поставляемую вместе с фильтром. После распаковки получаем две директории etc и opt. Содержимое директории etc копируем в /etc/drweb/ а файлы из opt соответственно кладем в /opt/drweb/.

Создаем директорию в которую фильтр будет складывать письма приготовленные для проверки.

# mkdir /var/spool/drweb
Настраиваем права доступа так чтобы работать с этой директорией мог только единственный пользователь группы drweb. Аналогичным способом расставляем нужные права на остальные интересные для нас директории.

# chmod 770 /var/spool/drweb
# chown drweb:drweb /var/spool/drweb
# chown -R drweb:drweb /opt/drweb/
# chown -R drweb:drweb /var/drweb/
# chown -R drweb:drweb /etc/drweb/
Последнее обновление ( Воскресенье, 17 Июня 2007 )
След. >