Настройка почты · 2 min read · Oct 07, 2025

Виртуальные пользователи и домены с Postfix, Courier и MySQL (Debian Etch) - Страница 3

6 Настройка Saslauthd

Сначала выполните

mkdir -p /var/spool/postfix/var/run/saslauthd

Затем отредактируйте /etc/default/saslauthd. Установите START в yes и измените строку OPTIONS=”-c” на OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”:

vi /etc/default/saslauthd

| # # Настройки для демона saslauthd # # Должен ли saslauthd запускаться автоматически при старте? (по умолчанию: нет) START=yes # Какие механизмы аутентификации должен использовать saslauthd? (по умолчанию: pam) # # Доступные опции в этом пакете Debian: # getpwent -- использовать библиотечную функцию getpwent() # kerberos5 -- использовать Kerberos 5 # pam -- использовать PAM # rimap -- использовать удаленный IMAP сервер # shadow -- использовать локальный файл паролей shadow # sasldb -- использовать локальный файл базы данных sasldb # ldap -- использовать LDAP (конфигурация находится в /etc/saslauthd.conf) # # Можно использовать только одну опцию за раз. Смотрите страницу man saslauthd # для получения дополнительной информации. # # Пример: MECHANISMS="pam" MECHANISMS="pam" # Дополнительные опции для этого механизма. (по умолчанию: нет) # Смотрите страницу man saslauthd для информации о механизмах. MECH_OPTIONS="" # Сколько процессов saslauthd мы должны запустить? (по умолчанию: 5) # Значение 0 создаст новый процесс для каждого соединения. THREADS=5 # Другие опции (по умолчанию: -c) # Смотрите страницу man saslauthd для информации об этих опциях. # # Пример для пользователей postfix: "-c -m /var/spool/postfix/var/run/saslauthd" # Примечание: Смотрите /usr/share/doc/sasl2-bin/README.Debian OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" |

Затем создайте файл /etc/pam.d/smtp. Он должен содержать только следующие две строки (обязательно заполните свои правильные данные базы данных):

vi /etc/pam.d/smtp

| auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 |

Далее создайте файл /etc/postfix/sasl/smtpd.conf. Он должен выглядеть так:

vi /etc/postfix/sasl/smtpd.conf

| pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: mail_admin_password sql_database: mail sql_select: select password from users where email = '%u' |

Затем перезапустите Postfix и Saslauthd:

/etc/init.d/postfix restart  
/etc/init.d/saslauthd restart

7 Настройка Courier

Теперь мы должны сообщить Courier, что он должен аутентифицироваться против нашей базы данных MySQL. Сначала отредактируйте /etc/courier/authdaemonrc и измените значение authmodulelist так, чтобы оно выглядело так:

vi /etc/courier/authdaemonrc

| [...] authmodulelist="authmysql" [...] |

Затем сделайте резервную копию /etc/courier/authmysqlrc и очистите старый файл:

cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig  
cat /dev/null > /etc/courier/authmysqlrc

Затем откройте /etc/courier/authmysqlrc и вставьте в него следующие строки:

vi /etc/courier/authmysqlrc

| MYSQL_SERVER localhost MYSQL_USERNAME mail_admin MYSQL_PASSWORD mail_admin_password MYSQL_PORT 0 MYSQL_DATABASE mail MYSQL_USER_TABLE users MYSQL_CRYPT_PWFIELD password #MYSQL_CLEAR_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email MYSQL_HOME_FIELD "/home/vmail" MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') #MYSQL_NAME_FIELD MYSQL_QUOTA_FIELD quota |

Затем перезапустите Courier:

/etc/init.d/courier-authdaemon restart  
/etc/init.d/courier-imap restart  
/etc/init.d/courier-imap-ssl restart  
/etc/init.d/courier-pop restart  
/etc/init.d/courier-pop-ssl restart

Запустив

telnet localhost pop3

вы можете увидеть, работает ли ваш POP3 сервер корректно. Он должен вернуть +OK Hello there. (Введите quit, чтобы вернуться в оболочку Linux.)

server1:/etc/postfix# telnet localhost pop3  
Trying 127.0.0.1...  
Connected to localhost.localdomain.  
Escape character is '^]'.  
+OK Hello there.  
quit  
+OK Better luck next time.  
Connection closed by foreign host.

8 Измените /etc/aliases

Теперь мы должны открыть /etc/aliases. Убедитесь, что postmaster указывает на root, а root на ваше собственное имя пользователя или адрес электронной почты, например, так:

vi /etc/aliases

| [...] postmaster: root root: [email protected] [...] |

Каждый раз, когда вы изменяете /etc/aliases, вы должны выполнить

newaliases

после этого и перезапустить Postfix:

/etc/init.d/postfix restart
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.