Настраиваем основные компоненты почтового сервера::Журнал СА 9.2005
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9953
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8162
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8263
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5230
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5918
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Настраиваем основные компоненты почтового сервера

Архив номеров / 2005 / Выпуск №9 (34) / Настраиваем основные компоненты почтового сервера

Рубрика: Администрирование /  Электронная почта   | Дополнительные материалы

ЕВГЕНИЙ ЛИТВИНЕНКО

Настраиваем основные компоненты почтового сервера

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

С егодня мы рассмотрим настройу почтового сервера на базе ALT Linux Master 2.4. Настройка системы основывается на проекте TNMailServer Project (http://www.techie.org/Projects/TNMailServer-Full.aspx), создатели которого предоставили структуру базы данных и удобный веб-интерфейс для администрирования почтового сервера. Проект TNMailServer отличается от аналогов простотой в настройке.

Почтовый сервер состоит из нескольких взаимосвязанных элементов. Наличие некоторых из них является обязательным, других – опциональным. В нашем случае используется следующая рабочая связка: Postfix + MySQL + Courier?IMAP +  fetchmail + SquirrelMail. Рассмотрим функциональное назначение отдельных компонентов:

  • Postfix – популярный MTA (Mail Transfer Agent), предназначенный для приема/передачи писем.
  • MySQL – сервер баз данных. В данном случае он необходим для хранения пользовательских аккаунтов. Вместо него можно использовать другие БД, например, PostgreSQL или службу каталогов LDAP. А можно и просто текстовые файлы.
  • Courier-IMAP – сервис доступа к почте, поддерживающий протокол IMAP4 и POP3 (опционально).
  • Fetchmail – утилита для приема почты. В ее задачи входит доставка почты от провайдера. Используется только в том случае, если реальный почтовый ящик находится у провайдера. (Данная методика также может применяться, если канал доступа к сети Интернет недостаточно широк. Таким образом, письма ходят по каналу не постоянно, а забираются через определенные промежутки времени).
  • SquirrelMail – удобный и простой веб-интерфейс для доступа к почте.

Для установки вышеперечисленных пакетов дается следующая команда:

# apt-get install postfix postfix-mysql courier-imap courier-authdaemon-mysql fetchmail squirrelmail

Конфигурирование базы данных

Теперь необходимо создать базу данных и таблицы в ней. Структуры таблиц создаются согласно рекомендациям разработчиков проекта TNMailServer (см. файл на сайте журнала www.samag.ru, в разделе «Исходный код» или на сайте проекта TNMailServer Project – http://techie.org/Projects/TNMailServer.aspx?selForm=01-Introduction).

Сервер принимает запросы к базе данных по запуску следующей команды:

# mysql -u root -p

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

Настройка Postfix

Далее настраиваем Postfix. Конфигурационные файлы пакета находятся в каталоге /etc/postfix. В файле main.cf изменяются следующие параметры:

myhostname = mail.net.lps

указываем доменное имя почтового узла.

mydomain = net.lps

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

inet_interfaces = 127.0.0.1

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

virtual_mailbox_base = /opt/vmail

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

В приведенном примере используется каталог /opt, так как он расположен на отдельном разделе. Традиционно почта хранится в каталоге /var.

virtual_mail_box = 50000000

в этом параметре назначается максимальный размер почтового ящика (~50 Мб).

Теперь необходимо указать поля базы данных, которые будет использовать Postfix:

virtual_alias_maps = proxy:mysql:/etc/postfix/ TNMailServer-Alias.cf

данная переменная отвечает за извлечение из базы email-адреса перенаправления почты (форвардинг).

Файл TNMailServer-Alias.cf содержит следующие данные:

user = postfix

password = password

hosts = localhost

dbname = TNMailServer

table = TNAccount

select_field = ForwardAddress

where_field = EmailAddress

additional_conditions = and active=1

где:

  • user – имя пользователя базы данных;
  • password – пароль;
  • table – имя таблицы в базе данных;
  • hosts – доменное имя хоста, на котором расположен сервер баз данных;
  • dbname – имя базы данных;
  • select_field – содержит имя поля таблицы, данные из  которого необходимо извлечь;
  • where_field – содержит имя поля, по условию которого извлекается значение из select_field.

В данном примере мы извлекаем адрес перенаправления почтовых сообщений из записи, которая содержит необходимый e-mail-адрес.

virtual_mailbox_domains = proxy:mysql:/etc/postfix/ TNMailServer-Domain.cf

этот параметр отвечает за извлечение из БД имен виртуальных доменов.

Файл TNMailServer-Domain.cf помимо общих записей содержит следующее:

table = TNDomain

select_field = Name

where_field = Name

В поле Name содержится имя виртуального домена.

virtual_mailbox_maps = proxy:mysql:/etc/postfix/ TNMailServer-Mailbox.cf

данный параметр отвечает за извлечение из БД пути к почтовому ящику.

Файл TNMailServer-Mailbox.cf содержит следующее:

table = TNAccount

select_field = MailDirLocation

where_field = EmailAddress

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

virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/ TNMailServer-Quota.cf

здесь определяется максимальный размер почтового ящика (используется, если поле содержит значение отличное от нуля, иначе используется значение, указанное в параметре virtual_mail_box из файла main.cf).

В файле TNMailServer-Quota.cf хранится следующее:

table = TNAccount

select_field = Quota

where_field = EmailAddress

Теперь необходимо указать, куда направлять почту, которая адресована во «внешний мир». Здесь определяется адрес сервера:

relay_host = gts.lg.ua

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

Идентификаторы пользователей (UID) хранятся в файле /etc/passwd, идентификаторы групп (GID) – в файле /etc/group. Пользователь apache обычно имеет идентификатор пользователя/группы 96. Однако, чтобы в этом удостовериться, даем команду:

# id apache

Теперь необходимо внести соответствующие изменения в файл /etc/postfix/main.cf:

virtual_minimum_uid = 96

virtual_uid_maps = static:96

virtual_gid_maps = static:96

Остальные настройки можно оставить по умолчанию.

Настройка IMAP-сервера

Теперь необходимо настроить Courier-IMAP. Конфигурационные файлы сервиса находятся в каталоге /etc/courier-imap. Courier-IMAP для авторизации пользователей почты использует свой компонент authdaemon. Данный компонент может использовать различные виды серверов баз данных, для хранения пользовательских аккаунтов. Для работы с MySQL устанавливается модуль authdaemon-mysql. (Так как утилита apt-get ставит все пакеты, от которых зависит устанавливаемый пакет, то достаточно дать команду для установки пакета authdaemon-mysql, чтобы apt-get установил также пакеты courier-imap и authdaemon.)

Для того чтобы Courier-IMAP использовал authdaemon, в файле /etc/courier-imap/imapd правится следующая строка:

AUTHMODULES = "authdaemon"

В файле /etc/courier-imap/authdaemon.conf подключаем модуль поддержки MySQL:

authmodulelist="authmysql"

Используемые поля базы данных прописываются в конфигурационном файле /etc/courier-imap/authdaemon-mysql.conf:

DEFAULT_DOMAIN net.lps                # имя обслуживаемого домена

MYSQL_SERVER localhost                # доменное имя сервера БД

MYSQL_DATABASE TNMailServer           # имя БД

MYSQL_USERNAME courier                # имя пользователя БД

MYSQL_PASSWORD password               # пароль

MYSQL_OPT 0                                

MYSQL_USER_TABLE TNAccount            # имя таблицы в БД

MYSQL_LOGIN_FIELD EmailAddress        # имя поля, содержащее адрес электронной почты

MYSQL_NAME_FIELD FullName             # полное имя пользователя

MYSQL_CLEAR_PWFIELD Password          # пароль на почтовый ящик

MYSQL_HOME_FIELD '/opt/vmail'         # путь к каталогу, в котором хранится содержимое почтовых ящиков

MYSQL_MAILDIR_FIELD MailDirLocation   # путь к почтовому ящику относительно пути, указанного в MYSQL_HOME_FIELD

MYSQL_GID_FIELD '96'                  # идентификатор группы

MYSQL_UID_FIELD '96'                  # идентификатор пользователя

MYSQL_QUOTA_FIELD Quota               # максимальный размер ящика

# шаблон запроса

MYSQL_QUERY_LASTREAD UPDATE TNAccount SET LastLogin=now() WHERE EmailAddress=’%s’

Настройка интерфейса управления

Для администрирования системы (в частности, для создания почтовых ящиков) предназначен веб-интерфейс. Его архив находится в сети Интернет по адресу: http://www.techie.org/downloads/tnmailserveradmin-1.4.1.tgz. Указанный архив распаковывается в каталог с веб-содержимым (по умолчанию /var/www). После этого можно администрировать почтовый сервер с любого компьютера, оснащенного веб-браузером.

Тестирование и отладка системы

Создав два тестовых ящика, можно проверить работоспособность почтовой системы. Для этого необходимо подключиться к нашему SMTP-серверу через утилиту telnet:

# telnet localhost 25

Если сервер запущен, то программа покажет его приглашение:

220 mail.net.lps ESMTP Postfix

После этого сервер готов принимать команды. Сначала необходимо «представиться», дав команду HELO имя_домена:

HELO net.lps

Сервер возвратит ответ:

250 mail.net.lps

Теперь можно отправлять письмо. Сначала нужно написать e-mail отправителя:

MAIL FROM:"test1@net.lps"

Если e-mail-адрес корректный, то сервер возвратит код ответа 250:

250 OK

В противном случае сервер возвратит код ошибки ~500 и укажет причину. После того как сервер принял адрес отправителя, необходимо ввести адрес получателя:

RCPT TO:"test2@net.lps"

Сервер возвращает ответ:

250 OK

Теперь можно вводить текст письма. Сначала дается команда DATA.

Сервер сообщит, что можно вводить текст. Для окончания ввода необходимо нажать клавиши <.> :

354 End data with .

После окончания ввода текста можно отключаться, для чего дается команда QUIT.

После выполнения этой операции в почтовом ящике test2@net.lps должно появиться письмо от test1@net.lps. Для проверки необходимо подключиться к IMAP4- или POP3-серверу. Команды POP3-сервера несколько проще, поэтому используется подключение к POP3-серверу:

# telnet localhost 110

Корректно работающий сервер выдаст приглашение к вводу команд:

+OK Hello there

Для получения доступа к письмам нужно ввести имя пользователя и пароль:

USER test2@net.lps

PASS password

Ответ сервера:

+OK Password required

+OK logged in

Теперь нужно запросить количество писем в ящике. Это делается командой LIST.

Сервер выдаст ответ в следующем виде: «номер_сообщения его_размер»:

1 942

Для прочтения сообщения №1 дается команда RETR:

RETR 1

Убедившись, что сообщение дошло до адресата, отключаемся:

QUIT

Настройка веб-интерфейса

Теперь необходимо предоставить доступ пользователям к почте. Есть два варианта:

  • Через порты (143 IMAP/110 POP3). Клиент может работать с почтой через почтовые программы, например, The BAT!, Outlook Express.
  • Через веб-интерфейс. Клиент работает с почтой через веб-интерфейс.

Второй способ более надежен, так как доступ к сетевым портам открыт только с локальной машины. В данном проекте для доступа к почте используется SquirrelMail. При установке файлы программы копируются в каталог с веб-содержимым. Если пакет был установлен из архива, взятого на сайте разработчика, то конфигурационный файл SquirrelMail хранится в подкаталоге config пакета. Разработчики ALM немного усовершенствовали пакет. Поэтому если SquirrelMail установлен из репозитария ALM, то конфигурационный файл хранится в подкаталоге /etc/squirrelmail. А в подкаталоге config находится только символическая ссылка на файл. Однако файл править нет необходимости, так как разработчики пакета предусмотрели скрипт на языке Perl.

Запуская скрипт, мы интерактивно настраиваем все параметры. Скрипт называется config.pl, и находится он в подкаталоге config.

После запуска скрипта раскрывается меню. Настройки, касающиеся доступа к IMAP-серверу, отображаются после выбора второго пункта меню (Server Settings). Здесь указывается обслуживаемый домен (net.lps), доменное имя хоста IMAP-сервера (localhost), а также конкретное название IMAP-сервера (courier).

После выбора пункта Save Data, данные записываются в конфигурационный файл.

Настройка Fetchmail

Утилита fetchmail позволяет забирать почту от провайдера интернет-услуг и передавать ее локальной почтовой службе. Конфигурационный файл fetchmail всего один. Это /etc/fetchmailrc. В нем устанавливаются следующие параметры:

set daemon 1200

Здесь устанавливается интервал в секундах между запусками демона fetchmail. Почта забирается раз в 20 минут.

poll gts.lg.ua with proto POP3

В этой строке указываются доменное имя сервера почты провайдера (gts.lg.ua) и протокол доступа к почте (POP3).

localdomains politex-college.lg.ua

В этом параметре записывается имя домена, на который приходит почта.

user "politex" there with  password "password" to * here

Здесь записывается имя пользователя почты (politex) и его пароль (password). Строка «to * here» говорит сервису, что полученную почту необходимо передавать локальному SMTP-серверу.

Теперь на файл /etc/fetchmailrc надо назначить необходимые права доступа. Утилита fetchmail довольно чувствительна к изменению прав на этот файл, и не запускается, если не выставлены необходимые права доступа. По умолчанию владелец этого файла root. Изменяем его на пользователя fetchmail:

# chown fetchmail:fetchmail /etc/fetchmailrc

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

# chmod 710 /etc/fetchmailrc

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

# service имя_сервиса restart

Перечень всех сервисов можно посмотреть в каталоге /etc/rc.d/init.d.

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


Комментарии отсутствуют

Добавить комментарий

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

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru