Установка postfix dovecot mysql postfixadmin на Ubuntu
Установим LAMP, Если Вы испльзуете дистрибудив Ubuntu LAMP пропускаем этот шаг.
sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql php5-pspell php5-snmp php5-sqlite php5-xmlrpc php5-xsl php5-imap
Устанавливаем MySql сервер
sudo apt-get install mysql-server mysql-client
Проверяем два файла «hosts» и «hostname»
Открываем «hosts»
nano /etc/hosts
и приводим его к примерно следующему содержанию
127.0.0.1 localhost your_inet_ip_addr mail.your_domain.com mail
открываем файл «hostname»
nano /etc/hostname
этот файл должен содержать отдну строку:
mail
Приступаем к установке postfix dovecot sasl
sudo apt-get install postfix postfix-mysql dovecot-common dovecot-imapd dovecot-pop3d openssl libsasl2 sasl2-bin libsasl2-modules dovecot-postfix
Установим postfixadmin
Скачиваем установочный deb пакет
wget https://libnix.com/wp-content/uploads/2011/08/postfixadmin_2.3.5-1_all.deb
Для установки копируем команду
dpkg -i postfixadmin_2.3.5-1_all.deb
Если dpkg выдаст ошибку не пугаемся, просто набераем команду:
apt-get install -f
эта команда доустановит все зависимости необходимые данному пакету
во время утановки небходимо ввести пароль для postfixadmin для примера возьмём 123
К сожалению, есть вероятность, что установщик пакета не изменит параметров конфигурационного файла config.inc.php, этот файл находится по такому пути: /etc/postfixadmin/config.inc.php
открываем его и проверяем:
nano /etc/postfixadmin/config.inc.php
находим такие строки:
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = '123';
$CONF['database_name'] = 'postfixadmin';
$CONF['database_prefix'] = '';
изменяем алгоритм шифрования:
$CONF['encrypt'] = 'md5';
Переходим к настройке postfixadmin через web интерфейс, набираем в браузере:
https://your_ip/postfixadmin/setup.php
Если предыдущие действия выполнены правильно, внизу страницы появится запрос на создание пароля установки.
После ввода пароля должна появится строка с хешем, если так, тогда копируем её и возвращаемся в файл config.inc.php находим там эту строку и вставляем хеш
$CONF['setup_password'] = ' ';
Создаём администратора для postfixadmin в первое поле вводим пароль установки, во второе вводим email администратора например [email protected] в третье поле вводим пароль и в четвёртое подтверждение пароля.
Создаём 3 конфигурационных файла обращения к mysql:
nano /etc/postfix/virtual-alias-maps.cf
вставляем в него следующие строки
user = postfixadmin password = 123 hosts = 127.0.0.1 dbname = postfixadmin query = select `goto` from `alias` where `address` = '%s'
Создаем следующий
nano /etc/postfix/virtual-mailbox-domains.cf
Вставляем
user = postfixadmin password = 123 hosts = 127.0.0.1 dbname = postfixadmin query = select 1 from `domain` where `domain` = '%s'
И последний
nano /etc/postfix/virtual-mailbox-maps.cf
user = postfixadmin password = 123 hosts = 127.0.0.1 dbname = postfixadmin query = select 1 from `mailbox` where `username` = '%s'
Cоздаём пользователя и группу:
groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /home/vmail -m
У Postfix-а из коробки есть отличный скрипт для управления конфигурацией.
Для ленивых:
создаём в любой дериктории скрипт командой:
nano conf_postfix.sh
записываем в него следующее
#!/bin/sh
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/virtual-mailbox-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/virtual-mailbox-maps.cf
postconf -e virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
postconf -e smtpd_use_tls=yes
postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination
сохраняем и даём права на запуск:
chmod +x conf_postfix.sh
запускаем:
./conf_postfix.sh
Для тех, кто не ищет лёгких путей применяем по очереди данные настройки:
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/virtual-mailbox-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/virtual-mailbox-maps.cf
postconf -e virtual_alias_maps=mysql:/etc/postfix/virtual-alias-maps.cf
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
postconf -e smtpd_use_tls=yes
postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination
Настройка postfix.
Конфиг postfix находится тут /etc/postfix/main.cf открываем его:
nano /etc/postfix/main.cf
Приводим его к такому виду.
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = /usr/share/doc/postfix # TLS parameters smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = mail.your_doain.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $myhostname mydestination = $myhostname relayhost = mynetworks = 127.0.0.0/8 inet_ip/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all virtual_mailbox_domains = mysql:/etc/postfix/virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/virtual-alias-maps.cf virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_transport = dovecot dovecot_destination_recipient_limit = 1 smtpd_sasl_type = dovecot smtpd_sasl_path = private/dovecot-auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination html_directory = /usr/share/doc/postfix/html home_mailbox = Maildir/ smtpd_sasl_authenticated_header = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes smtpd_sender_restrictions = reject_unknown_sender_domain #mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-dovecot-postfix.conf -n -m "${EXTENSION}" smtp_use_tls = yes smtpd_tls_received_header = yes smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_mandatory_ciphers = medium smtpd_tls_auth_only = yes tls_random_source = dev:/dev/urandom
Далее открываем файл /etc/postfix/master.cf
nano /etc/postfix/master.cf
и дописываем в конце этого файла следующие строки:
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Настраеваем безопастное соединение SSL/TLS
В консоле набираем:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem chmod o= /etc/ssl/private/dovecot.pem
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem chmod o= /etc/ssl/private/postfix.pem
Настраиваем dovecot
открываем главный конфигурационный файл командой
nano /etc/dovecot/dovecot.conf
Hаходим и исправляем приведённые ниже парпметры:
protocols = imap imaps pop3 pop3s listen = * disable_plaintext_auth = no log_timestamp = "%Y-%m-%d %H:%M:%S " login_greeting = Dovecot ready. mail_location = maildir:/home/vmail/%d/%n mail_privileged_group = vmail maildir_copy_with_hardlinks = yes protocol lda { postmaster_address = postmaster@your_domain.com hostname = mail.your_domain.com mail_plugin_dir = /usr/lib/dovecot/modules/lda auth_socket_path = /var/run/dovecot/auth-master mail_plugins = sieve log_path = /home/vmail/dovecot-deliver.log global_script_path = /home/vmail/globalsieverc } auth_verbose = yes auth_debug = yes auth_debug_passwords = yes auth default { mechanisms = plain login cram-md5 passdb sql { # Path for SQL configuration file args = /etc/dovecot/dovecot-sql.conf } userdb static { args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes } userdb sql { # Path for SQL configuration file args = /etc/dovecot/dovecot-sql.conf } user = vmail socket listen { master { path = /var/run/dovecot/auth-master mode = 0600 # Default user/group is the one who started dovecot-auth (root) user = vmail #group = vmail } client { path = /var/run/dovecot/auth-client mode = 0660 user = postfix group = postfix } }
Теперь редактируем файл dovecot-sql.conf набираем команду:
nano /etc/dovecot/dovecot-sql.conf
Копируем и вставляем следующие строки
driver = mysql connect = host=127.0.0.1 dbname=postfixadmin user=root password=123 default_pass_scheme = PLAIN-MD5 password_query = SELECT username as user, password FROM mailbox WHERE username = '%u'
Завершающим этапом будет перезагрузка почтовых сервисов
/etc/init.d/postfix restart && /etc/init.d/dovecot restart
Лог файлы находятся в «/var/log/»
/var/log/mail.err /var/log/mail.log /var/log/mail.info
Успехов.