31.08.2005

Безопасная почтовая система

image

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

Алексей Белютин aka NetGuard

Введение

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

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

Второй по важности момент при использовании электронной почты – это фильтрация спама. В самом деле, на прочтение и удаление такого рода ненужной рекламы тратится достаточное количество рабочего времени сотрудников, что сказывается на снижении производительности труда. В дополнение к этому рассылка загружает сервера компаний ненужной информацией.

Наконец, не следует забывать о том, что использование почтового сервера открывает в системе дополнительно как минимум один порт (при необходимости использования почты удаленными сотрудниками, например в командировке со своего ноутбука, приходится также открывать 110 порт для приема почты). Что, безусловно, требует качественного подхода при построении защиты со стороны администратора.

Таким образом, безопасный почтовый сервер должен удовлетворять следующим требованиям:

  1. Быть надежным, гибким и устойчивым.
  2. Иметь возможность взаимодействия с антивирусным ПО.
  3. Иметь возможность взаимодействия с антиспамовым ПО.

Большинство существующих почтовых серверов удовлетворяют последним двум требованиям, но не все из них являются на самом деле безопасными.

Не стоит забывать и о почтовых клиентах, которые должны принимать почту от сервера и передавать ее по защищенным каналам.

В статье не рассматривается процесс установки программного обеспечения, необходимого для функционирования электронной почты.  

Размещение почтового сервера в сети

Механизм работы почтового сервера предполагает, что к нему должно быть разрешено свободное обращение из Internet по 25-ому порту. Соответственно вероятность взлома такого сервера выше, чем остальных компьютеров сети. По этой причине размещать его внутри защищаемой зоны нецелесообразно с точки зрения безопасности, так как в случае взлома он может стать воротами для атаки внутренних компьютеров. Для минимизации риска и сохранения функциональности такие серверы устанавливают за основным шлюзом сети, но перед межсетевым экраном, обеспечивающим защиту внутренних компьютеров. Логическую область их размещения называют демилитаризованной зоной (Рис. 1).

Рис. 1 Схема расположения Mail-сервера в демилитаризованной зоне

Выбор почтового сервера

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

Рассмотрим Mail-сервер под управлением ОС Linux. Cуществует несколько наиболее распространенных почтовых серверов: Sendmail, Exim, Postfix, Qmail.

Наиболее старый из них Sendmail. Эта программа представляет из себя один монолитный блок. По этой причине возникают проблемы с ее быстродействием и безопасностью. Но многие по-прежнему продолжают ее использовать. Exim довольно функциональная программа, но имеет не простую установку и настройку. Postfix делает упор на быстродействие и безопасность. Qmail схож по степени безопасности с Postfix. Он распространяется в исходниках, поэтому приходится его компилировать.

Приведем статистику обнаруженных уязвимостей в этих продуктах по данным secunia.com:

Sendmail 8.x – 2002-2003 гг. – 7 уязвимостей

Exim 3.x - 2002-2004 гг.– 3 уязвимости

Exim 4.x - 2002-2004 гг.– 4 уязвимости

Qmail 1.x 2004-2005 гг. – 3 уязвимости

Postfix 1.x – 2003 г. – 1 уязвимость

Postfix 2.x – 2003-2005 гг. – нет уязвимостей

Лучше всего удовлетворяет заданным нами выше требованиям (особенно первому), а также имеет меньше всех дыр, Postfix - один из самых безопасных и гибких MTA (Mail Transfer Agent). Он имеет модульную структуру, является надежным, высокопроизводительным, гибко настраиваемым, и способен поддерживать встройку фильтров (например, для борьбы со спамом). К тому же проект Postfix на данный момент является самым динамично развивающимся из всех перечисленных. Несмотря на все его достоинства обязательно нужно устанавливать последнюю версию этого продукта. Это правило касается и всех остальных далее рассматриваемых программ.

Использование Postfix

С установкой программы не должно возникнуть никаких проблем, этот процесс довольно прозрачен. Файлы конфигурации Postfix хранятся в /etc/postfix/. В главном файле конфигурации main.cf определяются основные настройки.

Возможности Postfix, повышающие безопасность

У Postfix есть возможность проверять наличие локального пользователя в системе на этапе соединения. Это может быть очень полезно, так как некоторые почтовые вирусы рассылают себя по несуществующим адресам в домене, засоряя трафик. Для включения этой опции необходимо в файле main.cf добавить строку:

local_recipient_maps = $alias_maps unix:passwd.byname

Без данной опции Postfix полностью принимает письмо для любого пользователя, даже для несуществующего, и только потом отсылает bounce сообщение. С local_recipient_maps ошибка генерируется сразу на этапе RCPT TO.

По умолчанию Postfix передает в заголовке IP-адрес и имя компьютера в локальной сети.

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

Return-Path: <ivanov@company.ru>

X-Original-To: petrov@company.ru

Delivered-To: petrov@company.ru

Received: from Ivanov (ivanov.company.ru [192.168.1.22])

            by gw.company.ru (Postfix) with SMTP id 176E434F2F

            for <petrov@company.ru>; Mon, 29 Aug 2005 12:15:38 +0400 (MSD)

Message-ID: <000601c5ac58$fd759c10$1601a8c0@Ivanov>

From: =?koi8-r?B?88XSx8XKIPDPzMnLwdLQz9fJ3iDrwdrBy8/Xw8XX?= <ivanov@company.ru>

To: <petrov@company.ru>

Subject: test

Date: Mon, 29 Aug 2005 12:17:45 +0700

MIME-Version: 1.0

Content-Type: multipart/alternative;

            boundary="----=_NextPart_000_0003_01C5AC93.A9ACC7D0"

X-Priority: 3

X-MSMail-Priority: Normal

X-Mailer: Microsoft Outlook Express 6.00.2900.2180

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

X-UIDL: %(&"!l7K!!K6-"!B`4"!

Поскольку мы не хотим поведать всему миру структуру нашей сети, справедливо будет убрать такие поля из заголовка. Для этого создаем файл /etc/postfix/header_checks:

/^((Resent-)?Received)/ IGNORE
/./ OK

И раскоментируем строку header_checks = regexp:/etc/postfix/maps/header_checks  в main.cf. Затем перегружаем Postfix.

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

Return-Path: <ivanov@company.ru>

X-Original-To: petrov@company.ru

Delivered-To: petrov@company.ru

Message-ID: <000601c5ac5a$ec268a30$1601a8c0@Ivanov>

From:=?koi8-r?B?88XSx8XKIPDPzMnLwdLQz9fJ3iDrwdrBy8/Xw8XX?= <ivanov@company.ru>

To: <petrov@company.ru>

Subject: test

Date: Mon, 29 Aug 2005 12:31:35 +0700

MIME-Version: 1.0

Content-Type: multipart/alternative;

            boundary="----=_NextPart_000_0003_01C5AC95.986B4A80"

X-Priority: 3

X-MSMail-Priority: Normal

X-Mailer: Microsoft Outlook Express 6.00.2900.2180

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

X-UIDL: Fl&!!R6"#!+-F!!"4Z!!

MTA обеспечивает принятие входящих и отправку исходящих сообщений по протоколу SMTP. Для получения почты пользователями необходима установка дополнительного ПО, реализующего протоколы POP (Post Office Protocol) или IMAP (Internet Message Access Protocol), непосредственно взаимодействующего с клиентскими почтовыми программами (MUA, Mail User Agent). Лучше всего для этих целей подойдет Qpopper – популярный, высокопроизводительный и надежный сервер от QUALCOMM Incorporated, предназначенный для организации получения сообщений электронной почты клиентскими почтовыми программами с использованием протокола POP3.

При обращении MUA к серверу происходит передача пароля по сети в открытом виде. Такая информация может быть перехвачена сниферами и использована в дальнейшем для несанкционированного доступа к ресурсам. Для того чтобы исключить эту возможность, необходимо использовать протокол SSL (Secure Sockets Layer). Он практически незаметно для пользователя взаимодействует с остальными протоколами и обеспечивает передачу конфиденциальной информации по сети в зашифрованном виде. Поддерживает этот протокол программное обеспечение OpenSSL. Его необходимо установить на сервер. Для установки шифрования трафика между клиентской почтовой программой и POP-сервером необходимо включить поддержку протокола SSL в Qpopper.

После установки и настройки надежного почтового сервера необходимо установить и настроить антивирусное и антиспамовое ПО.

Антивирусное ПО

Выдвинутый нами критерий бесплатности распространяется и на антивирус. В этой области лучшим решением будет ClamAV – бесплатный антивирусный продукт, распространяемый под лицензией GPL. Он  поддерживается мировым сообществом, благодаря чему реакция на появление новых вирусов происходит достаточно быстро. Он вполне подходит для проверки почтовых сообщений на вирусы.

ClamAV имеет утилиту обновления БД вирусов freshclam, которую можно привязать к cron-демону. Таким образом, база будет пополняться через указанный промежуток времени.

Спам-фильтр

Для фильтрации спама существуют аппаратные решения. Цена спам-брандмауэров составляет от 2 до 10 тыс. долларов, и некоторые поставщики взимают дополнительную плату за обновление программного обеспечения. Однако можно обойтись и программными продуктами. Даже бесплатными. Речь идет о Spamassassin. Это фильтр спама, написанный на perl. В нем используются написанные вручную правила, присваивающие определенное количество баллов типичным для спама фразам. Если письмо набирает больше определенного количества баллов, оно считается спамом.

Spamassassin позволяет:

• проверять сообщения на предмет выявления различных уловок, обычно используемых спамерами, для того чтобы сообщение выглядело бы, как отправленное обычным отправителем, либо относилось к списку рассылки, подписчиком которого вы являетесь;

• анализировать текст сообщения на предмет выявления идиом, содержащих неоправданно выгодные предложения, различные заверения для удовлетворения требованиям действующего законодательства и сетевого этикета и т.п.;

• осуществлять поддержку пользовательских и глобальных стоп-листов;

• создавать пользовательские тесты для фильтрации сообщений.

Таким образом, пришедшие письма, проходя через фильтр, будут проверятся на спам и вирусы. И на выходе мы получим чистое сообщение.

Конфиденциальность переписки

Безопасность корпоративной электронной почты не ограничивается установкой безопасного почтового сервера. Иногда возникает необходимость ведения конфиденциальной переписки с доверенными людьми. Для этого на клиентских машинах нужно установить программу PGP для шифрования сообщений. Пользователи должны будут обменяться открытыми ключами с теми, с кем ведут переписку. Таким образом, даже перехваченное почтовое сообщение не сможет быть прочитано.

Заключение

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

или введите имя

CAPTCHA