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

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

Сетевая инфраструктура  

Как удаленная работа меняет подход к сетевой инфраструктуре?

С увеличением числа сотрудников, работающих из дома, организации сталкиваются с необходимостью создания

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

Мониторинг  

Какой мониторинг нужен сегодня?

По мнению экспертов ГК InfoWatch, действия сотрудников – самая распространенная причина инцидентов

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

Мобильные приложения  

Искусственный интеллект в мобильных приложениях: возможности и перспективы

Обзор современных применений ИИ в мобильных приложениях, анализ перспектив развития этой технологии,

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

ИТ-образование  

Как сделать ИТ-образование эффективным?

Эксперты ИТ-отрасли отвечают на вопросы «СА». Обсуждаем ключевые аспекты для улучшения образовательных

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

Work-life balance  

Как айтишнику найти баланс между работой и личной жизнью?

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

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

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

Всё самое нужное – под одной обложкой

Отличительная черта книжных новинок, выпущенных недавно издательством «БХВ» – это их универсальность. Не просто

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

ИТ-инфраструктура  

Системы мониторинга ИТ-инфраструктуры-2025

Без мониторинга ИТ-инфраструктуры не обходится ни одна компания, хотя бы потому, что

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

Открытое ПО  

Безопасность Open Source: рискуем или контролируем?

Компания «Кросс технолоджис» изучила, как используется ПО с открытым кодом в компаниях

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

Работа с нейросетью  

Скажи, есть ли у тебя AI, и я скажу, кто ты

Недавно сервис по поиску работы SuperJob выяснил, что каждый второй россиянин уже

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

Опрос  

Защита личных и клиентских данных: как мошенники используют ИИ и как защититься?

По данным RED Security, общее число кибератак на российские компании в 2024

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

Опрос  

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

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Как с помощью облака сделать

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

Опрос  

Рынок мобильных приложений: что будет актуальным в 2025 году?

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Ваши прогнозы: чего ожидать от

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

Рынок труда  

Как успешно пройти все этапы собеседования на ИТ-должность?

По оценкам государства, дефицит ИТ-специалистов составляет от 740 тысяч до 1 миллиона

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

Исследование  

Как искусственный интеллект меняет банковское обслуживание: от чат-ботов до автоматического одобрения кредитов

Искусственный интеллект (AI) всё глубже проникает в банковский сектор, меняя способы обслуживания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Друзья сайта  

 SMTP auth in da Postfix + ...

Архив номеров / 2003 / Выпуск №10 (11) / SMTP auth in da Postfix + ...

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

АНДРЕЙ МОЗГОВОЙ

SMTP AUTH in da Postfix + ...

SMTP AUTH in da Postfix + Cyrus-SASL + Mysql + Courier-IMAP + DrWeb + SquirrelMail + SpamAssassin. Как собрать все это «хозяйство» с MTA Postfix, вы можете найти в следующих статьях:

Как прикрутить SpamAssassin, можно почитать здесь:

Настоящая статья только вскользь опишет общую сборку большой связки.

Главная цель – настроить авторизацию по SMTP (без SSL) и выдержать стиль Mini-HOWTO.

Большая связка

Версии ПО, используемые мной на момент написания статьи:

  • Linux Slackware-9.0 + Patches
  • Postfix-2.0.13
  • Cyrus-sasl-2.1.15
  • Mysql-3.23.56
  • Courier-imap-1.7.1
  • Drweb-4.29.5
  • SpamAssassin-2.55
  • Squirrelmail-1.4.0

Честно говоря, у меня крутится MySQL, который поставляется вместе с дистрибутивом. MySQL, наверное, лучше установить/настроить первым. Качаем, распаковываем, конфигурим, собираем, устанавливаем. Заводим отдельного пользователя под Postfix, например, «postfix».  Кстати, для повышения безопасности, почта все-таки, заставьте MySQL не слушать Сеть, общайтесь только через сокет-файл. Так оно и быстрее.

--- /etc/my.cnf ---

...

[mysqld]

skip-networking

...

--- EOF /etc/my.cnf ---

Создаем базу данных (mail), в которой будут храниться таблицы, содержащие все записи о почтовых бюджетах (users), синонимах (aliases) и обслуживаемых доменах (transport).

Поля таблиц

Можно обойтись несколькими полями в каждой таблице, но в Postfix-2.x.x появилась поддержка дополнительных полей/условий. Это очень удобно, почему бы не воспользоваться ими? Придерживаясь главной цели сей статьи, буду краток. Некоторые поля действительно необязательны, но они пригодятся, когда будем прикручивать веб-интерфейс собственного производства (тема следующей статьи).

CREATE TABLE users (

uid int(11) NOT NULL auto_increment,

gid int(11) NOT NULL default '12',

alias varchar(255) NOT NULL default '',

domain varchar(255) NOT NULL default '',

active enum('1','0') NOT NULL default '1',

maildir varchar(255) NOT NULL default '',

password varchar(255) NOT NULL default '',

password-crypt varchar(255) default NULL,

owner varchar(255) NOT NULL default '',

create_date datetime NOT NULL default '0000-00-00 00:00:00',

change_date datetime NOT NULL default '0000-00-00 00:00:00',

quota varchar(255) NOT NULL default 'NOQUOTA',

comment text,

PRIMARY KEY  (uid),

UNIQUE KEY alias (alias),

FULLTEXT KEY comment (comment)

) TYPE=MyISAM COMMENT='Здесь хранится информация о почтовых бюджетах';

CREATE TABLE aliases (

id int(11) NOT NULL auto_increment,

alias varchar(200) NOT NULL default '',

rcpt varchar(200) NOT NULL default '',

create_date datetime NOT NULL default '0000-00-00 00:00:00',

change_date datetime NOT NULL default '0000-00-00 00:00:00',

active enum('1','0') NOT NULL default '1',

PRIMARY KEY  (id),

UNIQUE KEY alias (alias,rcpt)

) TYPE=MyISAM COMMENT='Здесь хранится информация о синонимах';

CREATE TABLE transport (

id int(11) NOT NULL auto_increment,

domain varchar(128) NOT NULL default '',

transport varchar(128) NOT NULL default '',

create_date datetime NOT NULL default '0000-00-00 00:00:00',

change_date datetime NOT NULL default '0000-00-00 00:00:00',

active tinyint(4) NOT NULL default '1',

gid int(11) NOT NULL default '12',

PRIMARY KEY  (domain),

KEY id (id)

) TYPE=MyISAM COMMENT='Здесь храниться информация об обслуживаемых доменах';

Cyrus-SASL

Немногим сложнее MySQL. Качаем, распаковываем, конфигурим, собираем, устанавливаем.

---

./configure --enable-login --with-mysql --with-openssl

make

make install

---

* прочтите файл doc/install.html, чтоб сделать

* все необходимые линки

Postfix

Качаем, распаковываем. Учтите, что собирается postfix с учетом окружения и ОС, под которой в дальнейшем будет работать. Читайте INSTALL-файл.

---

make tidy

make -f Makefile.init makefiles

"CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl"

"AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2"

make

...

make install

---

*уточните пути до библиотек в вашей системе

Настройка Postfix

Если кратко, только то, что касается MySQL.

--- /etc/postfix/main.cf ---

relay_domains = $transport_maps

transport_maps = mysql:/etc/postfix/transport.cf

virtual_alias_domains = $virtual_alias_maps

virtual_alias_maps = mysql:/etc/postfix/aliases.cf

virtual_gid_maps = mysql:/etc/postfix/gids.cf

virtual_mailbox_base = /

virtual_mailbox_domains = $virtual_mailbox_maps

virtual_mailbox_maps = mysql:/etc/postfix/users.cf

virtual_transport = virtual

virtual_uid_maps = mysql:/etc/postfix/uids.cf

--- EOF /etc/postfix/main.cf ---

--- /etc/postfix/users.cf ---

user = postfix

password = PASSWORD

dbname = mail

table = users

select_field = maildir

where_field = alias

additional_conditions = and active = "1"

hosts = unix:/var/run/mysql/mysql.sock

--- EOF /etc/postfix/users.cf ---

--- /etc/postfix/gids.cf ---

user = postfix

password = PASSWORD

dbname = mail

table = users

select_field = gid

where_field = alias

additional_conditions = and active = "1"

hosts = unix:/var/run/mysql/mysql.sock

--- EOF /etc/postfix/gids.cf ---

--- /etc/postfix/aliases.cf ---

user = postfix

password = PASSWORD

dbname = mail

table = aliases

select_field = rcpt

where_field = alias

additional_conditions = and active = "1"

hosts = unix:/var/run/mysql/mysql.sock

--- EOF /etc/postfix/aliases.cf ---

--- /etc/postfix/transport.cf ---

user = postfix

password = PASSWORD

dbname = mail

table = transport

select_field = transport

where_field = domain

additional_conditions = and active = "1"

hosts = unix:/var/run/mysql/mysql.sock

--- EOF /etc/postfix/transport.cf ---

--- /etc/postfix/uids.cf ---

user = postfix

password = PASSWORD

dbname = mail

table = users

select_field = uid

where_field = alias

additional_conditions = and active = "1"

hosts = unix:/var/run/mysql/mysql.sock

--- EOF /etc/postfix/uids.cf ---

Вся информация по настройке Postfix подробно расписана в man-страницах и на домашнем сайте Postfix.

Расписывать установку и настройку Courier-imap, Drweb, SpamAssassin и Squirrelmail в этой статье нет смысла.

SMTP AUTH

Создайте файл /usr/lib/sasl2/smtpd.conf следующего содержания:

--- /usr/lib/sasl2/smtpd.conf ---

pwcheck_method: auxprop

mysql_user: postfix

mysql_passwd: PASSWORD

mysql_hostnames: localhost

mysql_database: mail

mysql_statement: select password from users where alias = "%u@%r"

--- EOF /usr/lib/sasl2/smtpd.conf ---

Это все.

Небольшая выжимка из README-файла.

  • %u имя пользователя до @, под которым логинятся.
  • %p особенность запроса, механизм идентификации.
  • %r все что за @, т.е. имя домена.

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


Комментарии
 
  09.04.2011 - 10:33 |  seoonlyblog

Хороший пост! Познавательно!

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

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

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

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