FreeBSD

Настройка postfix

Установка postfix и нужной для работы пакетов находится здесь.

 

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

 добавляем в 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'

 

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

newaliases

 

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

 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 опции. Создаем файл

 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 для просмотра. ">Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен 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/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". В самом низу увидим окно создания админа. Заполняем поля пароль и повторяем пароль от базы. Появляется данные хеш, которые нужно вставить в

$CONF['setup_password'] = 'changeme'

Заполняем поля и нажимаем "Добавить администратора" и видим сообщение о том, что админ успешно создан.
Открываем в браузере http://ваш домен/postfixadmin/login.php и авторизируемся указанием e-mail’а и пароля админа, только что созданного.

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

 

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