FreeBSD
Настройка postfix
- Подробности
- Категория: FreeBSD
- Опубликовано 21.01.2013 12:28
- Автор: 1111
- Просмотров: 5130
Установка 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 завершена!