В началоСоздание виртуальной почтовой системы → 10. Настройка MySQL авторизации и виртуальных доменов
Gentoo-doc HOME Пред.: 9. Vmail-пользовательВ началоУровень выше: Создание виртуальной почтовой системыСлед.: 11. Squirrelmail

10. 10. Настройка MySQL авторизации и виртуальных доменов

Дальше мы перенастроим нашу авторизацию, на использование mailsql базы в courier-imap и postfix. Во всех следующих примерах, замените $paasword паролем, который вы задали пользователю mailsql для mysql.

Листинг 10.1:

# emerge /usr/portage/sys-libs/pam_mysql/pam_mysql-$currentversion.ebuild

(этот пакет здесь задан маской, которую вы должны заменить на текущую

версию пакета. версию пакета вы можете посмотреть в portage )

# nano -w /etc/pam.d/imap

(закомментируйте существующие строки настройки авторизации, и добавьте

указанные ниже)

#auth       required     pam_nologin.so

#auth       required     pam_stack.so service=system-auth

#account    required     pam_stack.so service=system-auth

#session    required     pam_stack.so service=system-auth

auth     optional       pam_mysql.so host=localhost db=mailsql user=mailsql \

  passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0

account  required       pam_mysql.so host=localhost db=mailsql user=mailsql \

  passwd=$password table=users usercolumn=email passwdcolumn=clear crypt=0

# nano -w /etc/pam.d/pop3

# nano -w /etc/pam.d/smtp

(сделайте такие же изменения в pop3 и smtp файлах)

Далее нам нужно поправить конфигурацию авторизации courier.

Листинг 10.2:

# nano -w /etc/courier-imap/authdaemonrc

authmodulelist="authmysql authpam"

# nano -w /etc/courier-imap/authdaemond.conf

AUTHDAEMOND="authdaemond.mysql"

# nano -w /etc/courier-imap/authmysqlrc

MYSQL_SERVER            localhost

MYSQL_USERNAME       mailsql

MYSQL_PASSWORD      $password

MYSQL_DATABASE          mailsql

MYSQL_USER_TABLE        users

#MYSQL_CRYPT_PWFIELD    crypt (эта строка должна быть закомментирована)

MYSQL_CLEAR_PWFIELD     clear

MYSQL_UID_FIELD         uid

MYSQL_GID_FIELD         gid

MYSQL_LOGIN_FIELD       email

MYSQL_HOME_FIELD        homedir

MYSQL_NAME_FIELD        name

MYSQL_MAILDIR_FIELD     maildir

# /etc/init.d/authdaemond restart

# /etc/init.d/saslauthd restart

Мы уже почти подошли к тому что вам обещал. Далее мы настроим необходимые конфиги postfix'a для связки с базой данных для всех необходимых необходимых транспортов.

Листинг 10.3: /etc/postfix/mysql-aliases.cf

# nano -w /etc/postfix/mysql-aliases.cf

# mysql-aliases.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = alias

select_field    = destination

where_field     = alias

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

Листинг 10.4: /etc/postfix/mysql-relocated.cf

# nano -w /etc/postfix/mysql-relocated.cf

# mysql-relocated.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = relocated

select_field    = destination

where_field     = email

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

Листинг 10.5: /etc/postfix/mysql-transport.cf (необязательно)

# nano -w /etc/postfix/mysql-transport.cf

# mysql-transport.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = transport

select_field    = destination

where_field     = domain

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

Листинг 10.6: /etc/postfix/mysql-virtual-gid.cf (необязательно)

# nano -w /etc/postfix/mysql-virtual-gid.cf

#myql-virtual-gid.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = users

select_field    = gid

where_field     = email

additional_conditions = and postfix = 'y'

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

Листинг 10.7: /etc/postfix/mysql-virtual-maps.cf

#nano -w /etc/postfix/mysql-virtual-maps.cf

#myql-virtual-maps.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = users

select_field    = maildir

where_field     = email

additional_conditions = and postfix = 'y'

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

Листинг 10.8: /etc/postfix/mysql-virtual-uid.cf (необязательно)

# nano -w /etc/postfix/mysql-virtual-uid.cf

# mysql-virtual-uid.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = users

select_field    = uid

where_field     = email

additional_conditions = and postfix = 'y'

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

Листинг 10.9: /etc/postfix/mysql-virtual.cf

# nano -w /etc/postfix/mysql-virtual.cf

# mysql-virtual.cf

user            = mailsql

password        = $password

dbname          = mailsql

table           = virtual

select_field    = destination

where_field     = email

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

И последнее, правим /etc/postfix/main.cf еще один раз.

Листинг 10.10: /etc/postfix/main.cf

# nano -w /etc/postfix/main.cf

alias_maps = mysql:/etc/postfix/mysql-aliases.cf

relocated_maps = mysql:/etc/postfix/mysql-relocated.cf

local_transport = local

local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname

virtual_transport = virtual

virtual_mailbox_domains =

        virt-bar.com,

        $other-virtual-domain.com

virtual_minimum_uid = 1000

virtual_gid_maps = static:$vmail-gid

virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf

virtual_uid_maps = static:$vmail-uid

virtual_mailbox_base = /

#virtual_mailbox_limit =

Здесь видно чем значительно отличается postfix 2.0.x от 1.1.x. Сильнее всего заметно отсутствие необходимости в таблицах транспорта, virtual-gid и virtual-uid, хотя эти таблицы и вкладываются, чтобы вы могли их использовать при необходимости.

Примечание: Рекомендуем прочесть VIRTUAL_README идущий с postfix, для большего количества информации.

Листинг 10.11:

# postfix reload

Теперь, если все прошло хорошо, вы должны иметь работающий почтовый сервер. Пользователи должны быть способны авторизоватся в sql базе, использовать свой полный почтовый адрес для pop3, imap, и smtp. Настоятельно рекомендую проверить , что всё это действительно работает. Если вы столкнулись с проблемами, проверьте раздел troubleshooting в конце документа.

Пред.: 9. Vmail-пользовательВ началоУровень выше: Создание виртуальной почтовой системыСлед.: 11. Squirrelmail
В началоСоздание виртуальной почтовой системы → 10. Настройка MySQL авторизации и виртуальных доменов