FreeBSD

Postfix + Dovecot + Postfixadmin

 

Установка Postfix + Dovecot

cd /usr/ports/mail/postfix

make config

Добавляем DOVECOT и MYSQL

При установке Dovecot выбрать опцию MYSQL

Отвечаем на вопрос

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? n

Устанавливаем apache

cd /usr/ports/www/apache22
make install clean

Устанавливаем Mysql

cd /usr/ports/databases/mysql55-server

make install clean

 

Установка php

cd /usr/ports/lang/php5
make config

ставим галочку напротив apache

make install clean

 

Для работы с базами MySQL устанавливаем phpmyadmin

cd /usr/ports/databases/phpmyadmin

make install clean

Выбираем опцию MySQL

 Установка Postfixadmin

 

cd /usr/ports/mail/postfixadmin
make install clean

 

Установка дополнительных модулей php

cd /usr/ports/lang/php5-extensions

make config 

 

Переходим к настройке установленных пакетов.

добавляем в ee /etc/rc.conf

apache22_enable="YES" включаем апач

postfix_enable="YES" разрешим Postfix

mysql_enable="YES" включаем мускул

dovecot_enable="YES" разрешим Dovecot

sendmail_enable="NO" Отключаем запуск SendMail

sendmail_submit_enable="NO" Отключаем запуск SendMail

sendmail_outbound_enable="NO" Отключаем запуск SendMail

sendmail_msp_queue_enable="NO" Отключаем запуск SendMail

перезагружаем систему и заходим на http://ваш домен или ип адрес сервера

и если вы все правильно сделали должна появится надпись it works!

добавляем в ee /usr/local/etc/apache22/httpd.conf

в самом низу конфигов строчки

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

        Options none
        AllowOverride Limit
        Order Deny,Allow
        Deny from all
        Allow from all


        AddType application/x-httpd-php .php
        DirectoryIndex index.php index.html index.htm

и проверяем ошибки в конфигах

apachectl configtest

 

Для проверки работы php создадим info.php  в ee /usr/local/www/apache22/data

с таким вот наполнением

phpinfo();
?>

перезагружаем и проверяем  http://ваш домен или ип адрес сервера/info.php

ee /usr/local/etc/postfix/main.cf

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
myhostname = mail.infoitcom.ru
mydomain = infoitcom.ru
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
local_recipient_maps = unix:passwd.byname $alias_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix
virtual_mailbox_base = /usr/mail/
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid             = 65534
virtual_uid_maps                = static:65534
virtual_gid_maps                = static:65534
virtual_transport               = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated  reject_unauth_destination

Замечание к конфигу:
В начале строк

    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    ddd $daemon_directory/$process_name $process_id & sleep 5

должен стоять знак табуляции!

Создаем директорию для клиентских почтовых ящиков и необходимые файлы

 mkdir /usr/mail
 chmod -R 777 /usr/mail
 touch /usr/local/etc/postfix/mysql_virtual_alias_maps.cf
 touch /usr/local/etc/postfix/mysql_virtual_domains_maps.cf
 touch /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

 

Редактируем /usr/local/etc/postfix/mysql_virtual_alias_maps.cf

user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

 

Редактируем /usr/local/etc/postfix/mysql_virtual_domains_maps.cf

user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'

 

Редактируем /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

user = postfix
password = postfixpass
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox перенос
WHERE username='%s' AND active = '1'

Инициализируем базу данных алиасов

mx#newaliases

Остается добавить в master.cf dovecot транспорт

mx# ee /usr/local/etc/postfix/master.cf

Добавляем в конец файла

dovecot unix - n n - - pipe flags=DRhu user=nobody:nobody argv=/usr/local/libexec/dovecot/deliver -d ${recipient}

Отключаем специфические для Sendmail опции. Создаем файл

mx# touch /etc/periodic.conf

И вносим в него

daily_clean_hoststat_enable="NO"

daily_status_mail_rejects_enable="NO"

daily_status_include_submit_mailq="NO"

daily_submit_queuerun="NO"


перезагружаем reboot

стартуем postfix

/usr/local/etc/rc.d/postfix onestart

 и проверяем логи /var/log/maillog

должны быть записи о старте

mail postfix/postfix-script[1982]: starting the Postfix mail system

 

mail postfix/master[1983]: daemon started -- version 2.9.4, configuration /usr/local/etc/postfix

ee /usr/local/etc/dovecot.conf

 

base_dir = /var/run/dovecot
protocols = imap pop3
disable_plaintext_auth = no
mail_location = maildir:/usr/mail/%d/%u/
mail_privileged_group = mail
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_gid = 65534
maildir_copy_with_hardlinks = yes
ssl = no
protocol imap {
imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
postmaster_address = Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
sendmail_path = /usr/sbin/sendmail
}
auth_username_format = %Lu
auth default {
mechanisms = plain login
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}

userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = nobody
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0666
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}

dict {

}

plugin {

}

Создадим файл настроек подключения к MySQL

touch /usr/local/etc/dovecot-sql.conf

ee /usr/local/etc/dovecot-sql.conf

driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixpass
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT  CONCAT('/usr/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 65534 AS uid,  65534 AS gid FROM mailbox WHERE username = '%u'

Создаем виртуалхост для Postfixadmin’a. Добавляем в самый низ /usr/local/etc/apache22/extra/httpd.conf

Alias /postfixadmin/ "/usr/local/www/postfixadmin/"

 

Options none

AllowOverride Limit

Order Deny,Allow

Deny from all

Allow from all

AddType application/x-httpd-php .php

DirectoryIndex index.php index.html index.htm

 

 

Присваиваем пользователю root баз данных mysql пароль mysqladmin -u root password ваш пароль 

Смена пароля баз MySQL mysqladmin -u root -pваш старый пароль password ваш новый пароль

-p  и ваш старый пароль нет пробела.

 

 Настрайваем базу MySQL через интерфейс phpmyadmin

заходим в браузере по адресу http://ип вашего сервера или доменное имя вашего сервера/phpmyadmin/

обязательно в конце / иначе страница не откроется.

Вводим логин root и указанный вами пароль, который вводили вот здесь mysqladmin -u root password ваш пароль 

Если ввели правильно то вы зайдете на настройки mysql. Заводим пользователя postfix с базой postfix и паролем postfixpass.

 

Изменяем данные в ee /usr/local/www/postfixadmin/config.inc.php

на вот такие

$CONF['configured'] = true;
$CONF['postfix_admin_url'] = 'http://postfixadmin.xxx.org.ua';
$CONF['default_language'] = 'ru';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = '127.0.0.1';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfixpass';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

 

Открываем в браузере http://ваш домен/postfixadmin/setup.php. Если все правильно настроили, то везде должно быть "OK" и "Done". В самом низу увидим окно создания админа. Заполняем поля

Postfixadmin. Create superadmin account

Postfixadmin-Setup. Create superadmin account

Нажимаем "Добавить администратора", после чего увидим

Postfixadmin. Password hash

Postfixadmin-Setup. Password hash

Копируем последнюю строку, выделенную красным и заменяем ею аналогичную в config.inc.php. Сохраняем изменения в конфиге. После этого повторяем процедуру создания аккаунта админа с теми же данными, которые были введены в предыдущем шаге. Нажимаем "Добавить администратора" и видим сообщение о том, что админ успешно создан.
Открываем в браузере http://postfixadmin.xxx.org.ua и авторизируемся указанием e-mail’а и пароля админа, только что созданного.

Postfixadmin. Authorization

Postfixadmin. Authorization

Войдя в Postfixadmin создаем свой домен, потом своих пользователей. При добавлении пользователя выбираем "Отправить приветственное письмо" для того, чтобы автоматически создалась папка пользователя в /usr/mail.
На этом установка и настройка связки Postfix + Dovecot + Postfixadmin завершена!

 

Дополнительная информация