Настройка почты · 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 restart7 Настройка 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 restartGet new posts in your inbox
No spam. Unsubscribe anytime.