4 Краткий отчет о практике (приложение 1). Строки с таким выделением
Скачать 0.62 Mb.
|
Настройка dovecotСкопируем файл sudo cp /etc/pam.d/smtp /etc/pam.d/dovecot (мы будем для dovecot использовать тоже аутентификацию через pam) Отредактируем файл /etc/dovecot/dovecot-ldap.conf sudo nano /etc/dovecot/dovecot-ldap.conf uris = ldap://10.0.0.3/ dn = cn=admin,dc=aaa,dc=ru dnpass = ldap_version = 3 base = ou=Users,dc=aaa,dc=ru deref = searching scope = subtree user_attrs = mail=mail=maildir:/home/vmail/aaa.ru/%n/ user_filter = (&(uid=%n)) Мы не будем задавать квоту для локальных пользователей, чтобы у них была неограниченная квота (напомним, что мы задали по умолчанию квоту без лимита). Отредактируем файл /etc/dovecot/dovecot-sql.conf sudo nano /etc/dovecot/dovecot-sql.conf driver = mysql connect = host=127.0.0.1 user=mail_admin password= user_query = SELECT email, CONCAT('/home/vmail/',CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1))) AS home, concat('*:storage=', quota) as quota_rule FROM users WHERE email='%u' Отредактируем файл /etc/dovecot/dovecot.conf, изменив следующие параметры: sudo nano /etc/dovecot/dovecot.conf disable_plaintext_auth = yes ssl = yes ssl_cert_file = /etc/ssl/certs/oban.crt ssl_key_file = /etc/ssl/private/oban.key mail_location = maildir:/home/vmail/%d/%n mail_uid = vmail mail_gid = vmail maildir_copy_with_hardlinks = yes В блоке auth default { должно быть выбрано mechanisms = plain и раскомментарено passdb pam { … } закомментарим # userdb passwd { … # } и раскомментарим # SQL database userdb sql { # Path for SQL configuration file args = /etc/dovecot/dovecot-sql.conf } # LDAP database userdb ldap { # Path for LDAP configuration file args = /etc/dovecot/dovecot-ldap.conf } В блоке protocol imap { добавляем строку mail_plugins = quota imap_quota В блоке protocol pop3 { добавляем строку mail_plugins = quota В блоке plugin { добавляем строки quota = maildir:Quota quota_rule = *:storage=0 quota_rule2 = Trash:ignore quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95 quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80 Создадим скрипт, который будет посылать пользователям напоминания при превышении ими квоты sudo nano /usr/local/bin/quota-warning.sh #!/bin/sh PERCENT=$1 FROM="admin@aaa.ru" qwf="/tmp/quota.warning.$$" echo "From: $FROM To: $USER To: admin@aaa.ru Subject: Your email quota is $PERCENT% full Content-Type: text/plain; charset="UTF-8" Your mailbox is now $PERCENT% full." >> $qwf cat $qwf | /usr/sbin/sendmail -f $FROM "$USER" rm -f $qwf exit 0 (здесь мы посылаем сообщение от имени admin@aaa.ru, причем копию сообщения направляем на admin@aaa.ru) и сделаем его выполняемым sudo chmod a+x /usr/local/bin/quota-warning.sh Не ждите от dovecot немедленной реакции на достижение квоты пороговых значений: dovecot пересчитывает квоту периодически. Сменим права файлам, в которых записана информация о доступе к mysql и ldap sudo chown root.root /etc/dovecot/dovecot-ldap.conf sudo chown root.root /etc/dovecot/dovecot-sql.conf sudo chmod og= /etc/dovecot/dovecot-ldap.conf sudo chmod og= /etc/dovecot/dovecot-sql.conf Перезапустим dovecot sudo /etc/init.d/dovecot restart и проверим аутентификацию dovecot для обоих наших пользователей: telnet 127.0.0.1 110 Trying 127.0.0.1… Connected to 127.0.0.1. Escape character is '^]'. +OK Dovecot ready. user admin@bbb.ru +OK pass secret (здесь, конечно, вводим пароль пользователя admin@bbb.ru) +OK Logged in. quit +OK Logging out. Connection closed by foreign host. и telnet 127.0.0.1 110 Trying 127.0.0.1… Connected to 127.0.0.1. Escape character is '^]'. +OK Dovecot ready. user admin +OK pass secret (здесь, конечно, вводим пароль пользователя admin) +OK Logged in. quit +OK Logging out. Connection closed by foreign host. После этой проверки, кстати, автоматически создадутся папки для хранения почты: sudo ls -R /home/vmail/ /home/vmail: aaa.ru bbb.ru /home/vmail/aaa.ru: admin /home/vmail/aaa.ru/admin: cur dovecot.index.log dovecot-uidlist dovecot-uidvalidity dovecot-uidvalidity.4cf4e5c7 new tmp /home/vmail/aaa.ru/admin/cur: /home/vmail/aaa.ru/admin/new: /home/vmail/aaa.ru/admin/tmp: /home/vmail/bbb.ru: admin /home/vmail/bbb.ru/admin: cur dovecot.index.log dovecot-uidlist dovecot-uidvalidity dovecot-uidvalidity.4cf4e5ba new tmp /home/vmail/bbb.ru/admin/cur: /home/vmail/bbb.ru/admin/new: /home/vmail/bbb.ru/admin/tmp: |