Почтовый сервер NextMail

Почтовый сервер NextMail

Почтовый сервер NextMail Server, используемый почтовым сервисом NextMail.ru, который ведет свою историю с 2001 года, создан группой российских разработчиков. На данный момент времени почтовая система NextMail имеет более 100 тысяч пользователей, 8000 посетителей ежедневно проверяют почту через веб-интерфейс. У сервиса NextMail.ru есть несколько "дочерних" тематических доменов: student.su, xaker.ru, dezigner.ru, epage.ru, email.su, programist.ru, mail2k.ru, hu2.ru.

Сейчас NextMail.ru — это почтовый сервис на yandex.ru, предоставляющий различные почтовые услуги. Кроме бесплатной почты NextMail.ru предоставляет возможность организовать корпоративную почту как на одном из своих доменов, так и на домене клиента. Доступна корпоративная адресная книга на основе каталогов LDAP. Пользователи, не желающие просматривать рекламу в своем личном кабинете, могут подписаться на один из тарифов ВИП-почты. В декабре 2010 года запущен новый уникальный проект - почта на кириллице.

Тем, кто зарегистрируется, NextMail предоставляет первоначально 50 Мб свободного места для писем и файловое хранилище объемом 2 Гб. По мере заполнения почтового ящика размер дискового пространства под почту может быть увеличен неограниченное количество раз. При работе с почтой NextMail можно использовать веб-интерфейс, настроить программу почтового клиента по протоколу POP3 или применить все преимущества протокола IMAP. При работе через веб-интерфейс пользователи имеют возможность настроить пересылку корреспонденции на другой почтовый ящик, подключить дополнительные почтовые ящики, настроить фильтры для разбора входящих писем.

Файловое хранилище можно использовать для хранения сайта, причем доступ к файлам сайта возможен как через веб-интерфейс, так и по протоколу FTP.

В 2009 году разработчиками была произведена модернизация почтового движка NextMail Server с целью повышения пропускной способности серверов, повышения скорости выдачи страниц пользователю при работе с почтой через веб-интерфейс, повышения защищенности и устойчивости системы. Модернизация затронула только программную часть серверов.

В 2012 году система скуплена Яндексом и уничтожена[1].

Содержание

Сервер обработки почтовых сообщений NextMail

Почтовый движок NextMail Server использует следующие программные компоненты: qmail, веб-сервер Apache v.2.2, сервер баз данных MySQL, nginx — веб-сервер и почтовый прокси-сервер, SQLite — встраиваемый движок баз данных. Процедуры обработки и вывода информации в почтовом движке NextMail написаны на языке программирования PHP версии 5.

В качестве основной операционной системы используется Debian (Linux). Проект Debian был создан Ian Murdock в 1993 году при спонсорском участии проекта GNU Free Software Foundation. Главная отличительная особенность Debian - это его система управления пакетами, которая позволяет администратору иметь полный контроль над пакетами, которые установлены в системе.

Модернизация программного обеспечения NextMail Server

Доставка почты

В старой версии программного обеспечения NextMail Server одним из основных элементов на этапе доставки почты был доставщик, созданный разработчиками NextMail на языке Perl, но он имел тот недостаток, что при большом объеме писем постоянно происходил процесс компиляции, что очень сильно нагружало сервер. В новой версии NextMail Server проблема была решена заменой этого модуля новой разработкой на языке С++. Компиляция выполняется один раз, и при дальнейшей работе данная операция не требуется.

Модульность qmail

Еще одной заметной проблемой до модернизации почтового движка NextMail была модульность qmail, который состоит из нескольких небольших модулей, выполняющих определенную задачу. На каждую из этих операций затрачивается процессорное время, кроме того, происходит постоянное взаимодействие с жестким диском (чтение исходного кода программы), а, как известно, скорость работы с жестким диском на несколько порядков ниже, чем скорость работы с оперативной памятью.

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

Формат хранения данных базы данных MySQL

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

Более широкими возможностями обладает формат данных InnoDB, который имеет ряд существенных преимуществ при обработке больших объемов данных, поэтому этот формат был использован в новой версии почтового движка NextMail Server. Многие группы запросов были вынесены в SQL-функции, в результате чего процедура стала работать быстрее, кроме того, повысилась безопасность.

Выделение более быстрого сервера на выдачу статики

Архитектура обработки запросов веб-сервера в новой версии программного обеспечения NextMail Server была переработана таким образом, чтобы все статические данные (картинки, стили, флэш-файлы) отдавались бы более быстрым сервером и не затрагивали сервер, отвечающий за обработку PHP-скриптов. В качестве такого сервера был выбран nginx.

Кэширование внешних страниц почтовой системы

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

Базы данных: общая база данных MySQL и личная для каждого пользователя

Как уже отмечалось, в ранних версиях NextMail Server вся информация о пользователе, его настройках, письмах, папках хранилось в общей базе данных MySQL, объем которой достиг довольно больших размеров, что сильно увеличивало нагрузку на сервер базы данных.

В новой версии почтового движка NextMail Server база данных разделена на две части: общая база данных, которая хранит базовую информацию о пользователях, их адресную книгу, белый и черный списки, и личная база данных каждого из пользователей (дополнительные учетные записи, сообщения, вложения).

В результате таких изменений была получена одна база данных умеренного размера, которая в основном отвечает за выборку данных (базовая информация о пользователях меняется редко) и множество небольших баз данных, относящихся к каждому пользователю. Таким образом, удалось избежать больших таблиц, перекрестных запросов и долгую переделку индексов. В качестве локальной базы данных пользователя был выбран SQLite3.

Безопасность

Защита от подбора пароля пользователя

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

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

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

Защита SMTP и POP3 серверов

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

Таким образом, при распределенной атаке с течением некоторого времени все IP-адреса, с которых ведется атака, блокируются, т.е. атака заканчивается неудачно.

Защита веб-интерфейса

Если пользователь определенное число раз ввел неправильные данные, то ему придется кроме логина и пароля указывать код с картинки – для обычного пользователя это не является большой проблемой, а подбор пароля при помощи программ подбора паролей уже работать не будет. Если ведется распределенная атака с нескольких IP-адресов, то в течение некоторого времени придется вводить картинку со всех IP-адресов, и алгоритм подбора пароля работать не будет.

Ссылки

The Apache Software Foundation

Qmail

mysql

nginx

sqlite

vpopmail

NextMail.ru

Сноски

  1. NextMail.ru - О почте - Перенос почты на Яндекс

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Почтовый сервер NextMail" в других словарях:

  • Почтовый сервер — Почтовый сервер, сервер электронной почты, мейл сервер  в системе пересылки электронной почты так обычно называют агент пересылки сообщений (англ. mail transfer agent, MTA). Это компьютерная программа, которая передаёт сообщения от… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»