Главная страница
Навигация по странице:

  • -rw-r—– 1 root postfix 134 2010-11-26 11:24 /etc/postfix/mysql-virtual_domains.cf -rw-r—– 1 root postfix 119 2010-11-26 11:25 /etc/postfix/mysql-virtual_email2email.cf

  • -rw-r—– 1 root postfix 188 2010-11-26 11:25 /etc/postfix/mysql-virtual_mailboxes.cf -rw-r—– 1 root postfix 128 2010-11-26 11:25 /etc/postfix/mysql-virtual_transports.cf

  • 4 Краткий отчет о практике (приложение 1). Строки с таким выделением


    Скачать 0.62 Mb.
    НазваниеСтроки с таким выделением
    Дата22.11.2021
    Размер0.62 Mb.
    Формат файлаdoc
    Имя файла4 Краткий отчет о практике (приложение 1).doc
    ТипДокументы
    #278494
    страница2 из 15
    1   2   3   4   5   6   7   8   9   ...   15

    Настройка Postfix


    Сейчас нам необходимо указать Postfix, где ему искать информацию в базе данных. Для этого создадим шесть текстовых файлов. Как вы можете заметить, я указываю Postfix соединяться с MySQL через IP адрес 127.0.0.1 вместо localhost. Это связано с тем, что Postfix запущенный в chroot окружении не сможет иметь доступа к MySQL сокету, если будет пытаться использовать localhost для подключения.

    Проверим, что mysql «слушает» локальный IP адрес

    cat /etc/mysql/my.cnf | grep bind

    bind-address = 127.0.0.1

    Если пришлось поменять /etc/mysql/my.cnf, то перезапустим mysql

    sudo service mysql restart

    и проверяем, что он действительно слушает этот адрес:

    sudo netstat -tap | grep mysql

    tcp 0 0 localhost:mysql *:* LISTEN 5908/mysqld

    (здесь 5908- это номер процесса, у Вас будет другой).

    Теперь создадим файлы для того, чтобы postfix знал, где что искать в нашей базе данных:

    sudo nano /etc/postfix/mysql-virtual_domains.cf

    user = mail_admin

    password =

    dbname = mail

    query = SELECT domain AS virtual FROM domains WHERE domain='%s'

    hosts = 127.0.0.1

    sudo nano /etc/postfix/mysql-virtual_forwardings.cf

    user = mail_admin

    password =

    dbname = mail

    query = SELECT destination FROM forwardings WHERE source='%s'

    hosts = 127.0.0.1

    sudo nano /etc/postfix/mysql-virtual_mailboxes.cf

    user = mail_admin

    password =

    dbname = mail

    query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'

    hosts = 127.0.0.1

    sudo nano /etc/postfix/mysql-virtual_email2email.cf

    user = mail_admin

    password =

    dbname = mail

    query = SELECT email FROM users WHERE email='%s'

    hosts = 127.0.0.1

    sudo nano /etc/postfix/mysql-virtual_transports.cf

    user = mail_admin

    password =

    dbname = mail

    query = SELECT transport FROM transport WHERE domain='%s'

    hosts = 127.0.0.1

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

    sudo chmod o= /etc/postfix/mysql-virtual_*.cf

    sudo chgrp postfix /etc/postfix/mysql-virtual_*.cf

    Проверяем права доступа к этим файлам:

    ls -al /etc/postfix/mysql-virtual*.cf

    -rw-r—– 1 root postfix 134 2010-11-26 11:24 /etc/postfix/mysql-virtual_domains.cf
    -rw-r—– 1 root postfix 119 2010-11-26 11:25 /etc/postfix/mysql-virtual_email2email.cf
    -rw-r—– 1 root postfix 132 2010-11-26 11:24 /etc/postfix/mysql-virtual_forwardings.cf
    -rw-r—– 1 root postfix 188 2010-11-26 11:25 /etc/postfix/mysql-virtual_mailboxes.cf
    -rw-r—– 1 root postfix 128 2010-11-26 11:25 /etc/postfix/mysql-virtual_transports.cf

    Создаем нового пользователя и группу с названием vmail с домашней директорией /home/vmail , где будут находится почтовые ящики:

    sudo groupadd -g 5000 vmail \\

    sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m

    Предварительная настройка postfix (нам еще придется ее менять чуть позже). Не забудьте поменять oban.aaa.ru на Ваше реальное полное имя сервера, а то postfix не будет работать!

    sudo postconf -e 'myhostname = oban.aaa.ru'

    sudo postconf -e 'mydestination = oban.aaa.ru, localhost, localhost.localdomain'

    sudo postconf -e 'mynetworks = 127.0.0.0/8'

    sudo postconf -e 'virtual_alias_domains ='

    sudo postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'

    sudo postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'

    sudo postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'

    sudo postconf -e 'virtual_mailbox_base = /home/vmail'

    sudo postconf -e 'virtual_uid_maps = static:5000'

    sudo postconf -e 'virtual_gid_maps = static:5000'

    sudo postconf -e 'smtpd_sasl_auth_enable = yes'

    sudo postconf -e 'broken_sasl_auth_clients = yes'

    sudo postconf -e 'smtpd_sasl_authenticated_header = yes'

    sudo postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'

    sudo postconf -e 'smtpd_use_tls = yes'

    sudo postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtp.crt'

    sudo postconf -e 'smtpd_tls_key_file = /etc/postfix/smtp.key'

    sudo postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf'

    sudo postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks'
    1   2   3   4   5   6   7   8   9   ...   15


    написать администратору сайта