Корпоративная почтовая система на базе высокодоступного кластера

Автор: Пользователь скрыл имя, 26 Марта 2012 в 22:28, дипломная работа

Описание работы

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

Содержание

Введение
Техническое задание
Введение
1 Основание для разработки
2 Источники разработки
3 Технические требования
3.1 Состав изделия
3.2 Технические параметры
3.3 Принцип работы
3.4 Требования к надежности
3.5 Условия эксплуатации
3.6 Требования безопасности
4 Экономические показатели
5 Порядок испытаний
1 Анализ программных средств и технологий
1.1 Принципы работы электронной почты
1.1.1 Создание почтового сообщения
1.1.2 Отправка почтового сообщения
1.1.3 Протокол SMTP
1.1.4 Транспортировка сообщений
1.1.5 Доставка почтовых сообщений
1.1.6 Форматы серверных почтовых хранилищ
1.1.7 Организация доступа к серверным хранилищам
1.1.8 Получение сообщений
1.2 Технология DNS
1.3 Способы организации базы данных сообщений
1.4 Способы организации безопасности среды
1.4.1 Организация безопасности средствами операционной системы
1.4.2 Повышенная безопасность с использованием антивирусной защиты
1.4.3 Защита переписки криптографическими средствами
1.5 Технология кластеризации
1.6 Требования к программной части
1.7 Требования к аппаратной части
2 Проектирование корпоративной почтовой системы
2.1 Обоснование выбора DNS-сервера на основе BIND
2.2 Обоснование выбора агента передачи почты Postfix
2.2.1 Основные подсистемы Postfix
2.2.2 Демоны Postfix
2.2.3 Подсистема обработки входящих сообщений
2.2.4 Подсистема доставки почтовых сообщений
2.2.5 Управление очередями сообщений
2.2.6 Вспомогательные утилиты
2.2.7 Описание основных конфигурационных файлов Postfix
2.3 Сервер доставки почты MDA Dovecot
2.4 Обоснование выбора службы каталогов OpenLDAP в качестве базы данных
2.5 Обеспечение безопасной работы в почтовой системе
2.6 Организация кластера на основе Linux-HA
2.6.1 Программный пакет DRBD
2.6.2 Программный пакет Heartbeat
2.7 Обоснование выбора оборудования для почтового сервера
2.8 Обоснование выбора программных продуктов используемых в почтовой системе
3 Реализация корпоративной почтовой системы
3.1 Этапы установки и настройки компонент почтвой системы
3.1.1 Установка и настройка DNS-сервера BIND
3.1.2 Установка и конфигурация компонентов почтового сервера
3.2 Тестирование почтовой системы
3.2.1 Тестирование DNS-сервера
3.2.3 Тестирование спам-фильтра
3.2.4 Тестирование SSL
4 Оценка показателей качества и расчет общей стоимости владения почтовой системой
4.1 Оценка показателей качества
4.2 Расчет общей стоимости владения почтовой системой
4.3 Расчет стоимости теоретического проекта вычислительной системы
4.4 Расчет стоимости технического проекта вычислительной системы
4.5 Расчет стоимости внедрения вычислительной системы
4.6 Расчет стоимости эксплуатации вычислительной системы
4.7 Общая стоимость владения вычислительной системой
5 Раздел безопасности жизнедеятельности
5.1 Требования безопасности при эксплуатации видеодисплейных терминалов (ВДТ) и персональных электронно- вычислительных машин (ПЭВМ)
5.2 Охрана труда для операторов и пользователей персональных электронно-вычислительных машин (ПЭВМ)
5.2.1 Общие положения
5.2.2 Требования безопасности перед началом работы
5.2.3 Требования безопасности во время работы
5.2.4 Требования безопасности в аварийных ситуациях
5.2.5 Требования безопасности после окончания работы
5.3 Выводы по разделу
Заключение
Список используемой литературы
Приложение А
Приложение Б
Приложение В

Работа содержит 1 файл

Диплом.doc

— 1.47 Мб (Скачать)

Local – используется для доставки почты внутри локальной системы. Умеет работать со стандартными для UNIX почтовыми ящиками. В случае если для данного пользователя не заведено системных псевдонимов, в файле псевдонимов обычно это /etc/aliases и нет файлов локального перенаправления .forward, которые любой пользователь может создать в своей домашней директории, то письмо сразу же попадает в целевой почтовый ящик. В противном случае письмо будет передано туда, куда они указывают. Возможности локального агента доставки на этом не заканчиваются. Одновременно могут работать несколько агентов локальной доставки, но в то же время параллельная доставка нескольких писем в один почтовый ящик обычно не практикуется. Несмотря на то, что агент локальной доставки может самостоятельно справиться со всеми проблемами, по желанию администратор может задействовать механизмы, позволяющие передоверить доставку в почтовый ящик внешним программам. Примером такой программы может служить широко известный многим администраторам procmail.

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

SMTP-клиент, являющийся еще одним агентом, вступает в действие в тот момент, когда нужно доставить письмо пользователю удаленной системы. Обычно queue manager передает ему следующие данные: имя файла очереди, адрес получателя, хост или домен, куда нужно доставить почту, адрес отправителя. Первым делом с помощью DNS-запроса нужно получить список MX-серверов для целевого домена и отсортировать его по приоритету. Следующим шагом мы начинаем пробовать каждый адрес до тех пор, пока не найдем тот, который находится в рабочем состоянии. Обычно доставка идет одновременно сразу для нескольких доменов, поэтому в системах, через которые проходит большой поток почты, можно увидеть несколько SMTP-клиентов, работающих параллельно. Если доставка завершилась удачно, то SMTP-клиент модифицирует файл почтовой очереди так, чтобы было понятно, что он обработан. В противном случае данный клиент уведомляет queue manager либо о фатальной ошибке, либо о временных затруднениях. Проблемы первого типа могут быть вызваны отсутствием нужного пользователя удаленной системы, а вторые, к примеру, неполадками в сети или неработоспособностью принимающего сервера. В первом случае процесс bounce посылает отправителю оповещение о неудаче предпринятого действия и делает запись в протокол работы почтовой системы с помощью syslogd. А во втором письмо помещается в специальную очередь deferred, где оно должно дожидаться следующей попытки доставки.

LMTP-клиент работает точно так же, как и SMTP-клиент, разве что протокол используется другой. LMTP специально создан для того, чтобы доставлять письмо на локальный или удаленный сервер, выделенный для хранения почтовых ящиков. В таком качестве могут выступать Courier- или Cyrus-сервер. Большим плюсом такого подхода к доставке писем является то, что один сервер Postfix может раздавать письма разным серверам почтовых ящиков. В то же время никто не мешает одному серверу почтовых ящиков получать почту от нескольких серверов postfix одновременно.

Pipe mailer-интерфейс, предназначенный для работы с внешними транспортными агентами. Примером такого взаимодействия может служить работа с UUCP. В то же время никто не мешает нам привязать к данному интерфейсу свой самодельный транспорт.

Как упоминалось ранее, в случае если доставка не удалась, менеджер очередей переправляет файл, в котором хранится письмо, в директорию, где находится очередь deferred. В ней складируются отложенные в доставке письма. На файл с письмом ставится временной штамп, находящийся в будущем, соответственно следующая обработка этого файла произойдет именно в тот момент, на который указывает штамп. Периодически менеджер очередей проверяет, не пришло ли время предпринять следующую попытку доставки отложенных сообщений. В случае если есть необходимость выполнить очередную попытку раньше, чем истечет тайм-аут, нужно воспользоваться командой postfix flush.

Следующим понятием является очередь corrupt. В нее попадают все поврежденные, нечитаемые или неправильно отформатированные файлы почтовых очередей. Такая предосторожность позволяет изолировать подозрительные данные до тех пор, пока администратор системы не решит, что с ними делать. Впрочем, в эту очередь письма попадают крайне редко.

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

2.2.5 Управление очередями сообщений

Менеджер очередей может работать в разных режимах, обычно они называются стратегиями. В то же время никто не мешает их комбинировать между собой. Ниже приведены характерные особенности каждого из них:

Менеджер очередей может работать в разных режимах, обычно они называются стратегиями. В то же время никто не мешает их комбинировать между собой. Ниже приведены характерные особенности каждого из них.

leaky bucket (дырявое ведро) - жестко ограничивает количество сообщений в очереди active, тем самым защищая менеджера очередей от потребления чрезмерного объема памяти. Большая часть сообщений для доставки берется из очереди incoming и лишь малая часть из deferred.

fairness (честная очередь) - в случае если очередь active не заполнена, письма берутся равномерно из deferred и incoming. Что дает залежавшейся почте больше шансов быть доставленной, даже если система очень сильно загружена.

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

round robin (круговая сортировка) - обычно менеджер очередей сортирует очередь на доставку по пунктам назначения. С помощью этой стратегии вероятность доставки более равномерно распределяется по всем пунктам назначения, что обеспечивает честные условия конкуренции для каждого пункта.

exponential backoff (экспоненциальный откат) - почта, которая не может быть доставлена с первой же попытки, попадает в очередь deferred. После каждой неудачной попытки доставки тайм-аут увеличивается вдвое. Таким образом, почта для недееспособных узлов не будет потреблять слишком много ресурсов отправляющей системы напрасными попытками доставки.

destination status cache (кэширование статуса) - менеджер очередей поддерживает таблицу, в которой некоторое время хранятся статусы предыдущих попыток доставок. Соответственно это позволяет сэкономить на повторных попытках, обращенных на недоступные узлы.

Кроме всех перечисленных функций менеджер очередей может создавать стандартные оповещения, говорящие отправителю исходного сообщения о том, что какие-то почтовые адреса или целые домены перестали существовать или переменили свои названия, мы можем воспользоваться файлом relocated.

2.2.6 Вспомогательные утилиты

Помимо основного функционала в Postfix есть сопутствующие утилиты.

mailq – программа, позволяющая смотреть список писем, находящихся в почтовых очередях. На самом деле эта программа является всего лишь интерфейсом к демону showq, который вызывается через команду sendmail -bp.

postsuper – предназначена для обслуживания почтовых очередей. Одним из применений является удаление какого-либо сообщения или повторная установка его в очередь на доставку. В то же время не стоит забывать об утилите postqueue, которая также создана для управления очередями. Единственное различие в них это то, что для работы c postsuper требуются права root, а для postqueue таких широких полномочий не нужно, хотя за счет этого теряется часть функционала.

postalias – используется для создания баз псевдонимов или выполнения запросов к этим базам. Для совместимости с sendmail существует команда newaliases, делающая то же самое, что и postalias.

postconf – показывает состояние конфигурационных переменных Postfix.

postlog – команда, которую можно использовать для записи данных в протоколы работы Postfix. Полезна для использования в своих собственных скриптах.

postcat – данная утилита, позволяющая посмотреть содержимое файла почтовой очереди.

postmap – используется для выполнения запросов к вспомогательным таблицам или для создания таких таблиц из текстовых файлов. Перевод данных из текстовой формы в табличную довольно сильно ускоряет процедуру выполнения запросов.

postlock – позволяет работать с блокировками, установленными Postfix на файлы. Обычно применяется для написания скриптов.

postkick – предназначена для отправки сигналов по каналам межпроцессового обмена внутри Postfix. Удобна для организации взаимодействия между внутренними процессами Postfix и самописными скриптами.

spawn – демон, позволяющий подключить внешнюю систему фильтрации содержимого сообщений. На данный момент находится в стадии активной разработки, и хотя работает достаточно надежно, но в силу особенностей реализации создает слишком большую нагрузку на систему. Скорее всего в следующих версиях Postfix будет заменен на что-то лучшее.

proxymap – сервис, позволяющий централизованно выполнять запросы ко всем служебным таблицам вместо того, чтобы каждый из процессов выполнял их самостоятельно. Еще одним применением может быть предоставление Postfix доступа к файлам, находящимся за рамками ограничений, накладываемых chroot.

2.2.7 Описание основных конфигурационных файлов Postfix

Главный конфигурационный файл main.cf находится в каталоге /etc/postfix. Все основные параметры настраиваются в нём. В таблице 2.6 представлено описание опций для правильной настройки главного конфигурационного файла.

Листинг файла прилагается в приложение А.

Таблица 2.6 – Описание конфигурационного файла Postfix – main.cf

Параметр

Описание

soft bounce

Сообщение, которое не смогло  быть доставлено сразу попадает в очередь, и через какое-то время попытка повторяется.  Если опция отключена, то отправитель сразу  уведомляется, что доставка невозможна и сообщение отбрасывается;

queue_directory

Директория для очереди сообщений;

command_directory

Расположение административных команд;

daemon_directory

Директория с дополнительными программами;

mail_owner

Кому принадлежит почтовая очередь и от какого пользователя выполняется  большинство процессов;

default_privs

Права этого пользователя  будут использоваться в процессе локальной доставки сообщений внешним командам или файлам;

Продолжение таблицы 2.6

Параметр

Описание

myhostname

Имя системы, по умолчанию используется FQDN имя получаемое с помощью gethostname();

mydomain

Доменное имя этой системы;

myorigin

Значение используется в адресе отправителя почты, если myorigin=company.ru то вся почта будет из @company.ru

inet_interfaces

На каких сетевых интерфейсах принимать почту;

mydestination

Для каких доменов мы будем принимать почту;

unknown_local_recipient_reject_code

Код ответа в случае некорректного получателя сообщения;

local_recipient_maps

Список всех локальных получателей почты;

mynetworks

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

relay_domains

Для каких доменов мы будем релеем;

alias_maps

alias_database

База псевдонимов используемых для локальной доставки;

mail_spool_directory

Директория где хранятся почтовые ящики;

smtpd_banner

Приглашение почтового сервера, код 220;

debug_peer_level

Уровень отладки при достижение условия в debug_peer_list;

debug_peer_list

Для этих IP-адресов будет использоваться повышенное журналирование;

debugger_command

Внешняя программа запускаемая в случае старта Postfix с опцией -D;

sendmail_path

Расположение команды sendmail которая помещает сообщения в очередь;

newaliases_path

Путь к программе newaliases;

mailq_path

Путь к программе mailq, с ее помощью можно посмотреть почтовую очередь;

setgid_group

Группа владелец set-gid команд;

html_directory

Директория с HTML-файлами описывающими специфичные возможности Postfix;

manpage_directory

Расположение manual pages;

sample_directory

Директория с примерами;

readme_directory

Директория с README файлами Postfix;

config_directory

Расположение main.cf и master.cf;

virtual_mailbox_domains

Конечный пункт назначения для списка доменов, здесь используется такой же синтаксис как в mydestination;

virtual_mailbox_base

Префикс который используется для всех результатов из virtual_mailbox_maps;

 

 

Продолжение таблицы 2.6

Параметр

Описание

virtual_mailbox_maps

Таблица с возможными адресатами в доменах, которые отвечают virtual_mailbox_domains;

virtual_alias_maps

Таблица псевдонимов;

virtual_minimum_uid

Минимальный UID для виртуальных аккаунтов;

virtual_uid_maps

Поисковые таблицы с пользовательским идентифи-катором, который используется агентом локальной доставки при записи сообщения в почтовый ящик;

virtual_gid_maps

Поисковые таблицы с идентификаторами групп пользователей. Используется агентом локальной доставки;

virtual_transport

Транспорт для доставки почты;

dovecot_destination_recipient_limit

Опция Dovecot, доставлять за раз только одно письмо;

smtpd_sasl_auth_enable

Включить ли SASL-аутентификацию;

smtpd_sasl_exceptions_networks

Список сетей которым SASL AUTH предлагаться не будет;

debug_peer_level

Уровень отладки при достижение условия в debug_peer_list;

debug_peer_list

Для этих IP-адресов будет использоваться повышенное журналирование;

debugger_command

Внешняя программа запускаемая в случае старта Postfix с опцией -D;

sendmail_path

Расположение команды sendmail которая помещает сообщения в очередь;

newaliases_path

Путь к программе newaliases;

mailq_path

Путь к программе mailq, с ее помощью можно посмотреть почтовую очередь;

setgid_group

Группа владелец set-gid команд;

html_directory

Директория с HTML-файлами описывающими специфичные возможности Postfix;

manpage_directory

Расположение manual pages;

sample_directory

Директория с примерами;

readme_directory

Директория с README файлами Postfix;

config_directory

Расположение main.cf и master.cf;

virtual_mailbox_domains

Конечный пункт назначения для списка доменов, здесь используется такой же синтаксис как в mydestination;

virtual_mailbox_base

Префикс который используется для всех результатов из virtual_mailbox_maps;

virtual_mailbox_maps

Таблица с возможными адресатами в доменах, которые отвечают virtual_mailbox_domains;

virtual_alias_maps

Таблица псевдонимов;

virtual_minimum_uid

Минимальный UID для виртуальных аккаунтов;

Продолжение таблицы 2.6

Параметр

Описание

virtual_uid_maps

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

virtual_gid_maps

Поисковые таблицы с идентификаторами групп пользователей. Используется агентом локальной доставки;

virtual_transport

Транспорт для доставки почты;

dovecot_destination_recipient_limit

Опция Dovecot, доставлять за раз только одно письмо;

smtpd_sas l_auth_enable

Включить ли SASL-аутентификацию;

smtpd_sasl_exceptions_networks

Список сетей которым SASL AUTH предлагаться не будет;

smtpd_sasl_security_options

Опции для SASL-аутентификации;

broken_sasl_auth_clients

Совместимость с клиентами, которые используют старую версию AUTH;

smtpd_sasl_type

Плагин который будет использоваться для аутентификации;

smtpd_recipient_restrictions

Набор ограничений почтового сервера;

content_filter

Название транспорта, который фильтрует почту после того, как она поставлена в очередь;

receive_override_options

Включение или отключение проверки правильности получателя.

 

Конфигурационный файл master.cf находится в каталоге /etc/postfix. Этот файл определяет, как клиентская программа соединяется с сервисом и что запускать, когда происходит запрос к сервису. Также используется для определения транспорта, порядка запуска процессов и использования каждого подключенного сервиса, включая антивирус, спам-фильтр и агент доставки.

Листинг файла прилагается в приложение А.

Структура файла может быть представлена 8 столбцами, они перечислены в таблице 2.7.

Таблица 2.7 – Структура файла master.cf

service

type

private

unpriv

chroot

wakeup

maxproc

command + args

 

В таблице 2.8 представлено описание опций для настройки подключаемых сервисов.

Таблица 2.8 – Описание сервисов Postfix, настраиваемых в конфигурационном файле master.cf

Название

Описание

type

Тип сервиса, inet – сервис работает на TCP/IP-сокете, unix – сервис слушает на UNIX-сокете, fifo – именованный pipe, доступ только для локальный клиентов,  pass – слушает на UNIX-сокете, принимает одно открытое подключение по запросу и доступно только для локальных пользователей;

private

Ограничен ли доступ к почтовой системе, тип сервиса inet не может быть приватным;

unpriv

Запускать от пользователя root или от mail owner в main.cf;

chroot

Сервис запускается в chroot-окружение или нет;

wakeup

Через определенное количество секунд можно отсылать запрос сервису чтобы тот “проснулся”;

maxproc

Максимальное количество процессов которое этот сервис может выполнять одновременно;

command + args

Исполняемая команда и аргументы для сервиса.

Информация о работе Корпоративная почтовая система на базе высокодоступного кластера