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

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

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

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

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

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

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

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

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

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

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

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

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

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

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

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

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

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

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

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

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

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

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

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

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

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

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

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

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

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

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

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

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

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

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

12.03.2018г.
Просмотров: 4229
Комментарии: 0
Глубокое обучение с точки зрения практика

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

12.03.2018г.
Просмотров: 3014
Комментарии: 0
Изучаем pandas

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

12.03.2018г.
Просмотров: 3811
Комментарии: 0
Программирование на языке Rust (Цветное издание)

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

19.12.2017г.
Просмотров: 3827
Комментарии: 0
Глубокое обучение

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

19.12.2017г.
Просмотров: 6323
Комментарии: 0
Анализ социальных медиа на Python

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

19.12.2017г.
Просмотров: 3174
Комментарии: 0
Основы блокчейна

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

19.12.2017г.
Просмотров: 3466
Комментарии: 0
Java 9. Полный обзор нововведений

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

16.02.2017г.
Просмотров: 7283
Комментарии: 0
Опоздавших не бывает, или книга о стеке

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

17.05.2016г.
Просмотров: 10649
Комментарии: 0
Теория вычислений для программистов

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

30.03.2015г.
Просмотров: 12370
Комментарии: 0
От математики к обобщенному программированию

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

18.02.2014г.
Просмотров: 14004
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

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

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

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

12.02.2014г.
Просмотров: 7083
Комментарии: 0
Рисуем наши мысли

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

10.02.2014г.
Просмотров: 5392
Комментарии: 3
Страна в цифрах

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

18.12.2013г.
Просмотров: 4619
Комментарии: 0
Большие данные меняют нашу жизнь

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

18.12.2013г.
Просмотров: 3431
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

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

04.12.2013г.
Просмотров: 3160
Комментарии: 0
Паутина в облаках

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

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

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

02.12.2013г.
Просмотров: 3029
Комментарии: 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-45
E-mail: sa@samag.ru