пятница, 22 марта 2013 г.

postfix freebsd


Нам потребуются установленные apache и MySQL.
Как установить apache: http://wolandblog.com/387-apache-ustanovka-nastroyka
Как установить MySQL: http://wolandblog.com/1341-ustanovka-i-nastrojka-mysql-5-1-utf-8-v-freebsd
Установим PostfixAdmin:
# cd /usr/ports/mail/postfixadmin/
# make config
Отмечаем нужные опции:
[X] MYSQL   MySQL back-end (use mysql PHP extension)
Собираем порт:
# make install clean
Пакет postfixadmin установлен и мы переходим к его настройке. В процессе настройки мы позаботимся о безопасности, настроим виртуальный хост для postfixadmin таким образом, чтобы даже в случае взлома злоумышленник не смог причинить практически никакого вреда системе. Итак, поехали.
Для скриптов postfixadmin мы выделим отдельную площадку. Для этих целей создадим пользователя и домашнюю директорию с деревом каталогов под виртуалхост, установим соответствующие права:
# pw useradd postfixadmin -g www -s “/sbin/nologin” -c “PostfixAdmin”
# mkdir /home/postfixadmin
# mkdir /home/postfixadmin/tmp
# mkdir /home/postfixadmin/admin.example.com
# chmod -R 770 /home/postfixadmin
В директории /home/postfixadmin/tmp будут размещаться временные файлы, генерируемые PHP скриптом (сессии, к примеру), а в директории /home/postfixadmin/admin.example.com – скрипты postfixadmin. Перенесем их в эту директорию и зададим нужного владельца на дерево каталогов:
# cp -R /usr/local/www/postfixadmin/* /home/postfixadmin/admin.example.com/
# chown -R postfixadmin:www /home/postfixadmin
Создадим базу данных для posfixadmin:
# mysql
mysql> create database postfix;
mysql> grant all on postfix.* to 'postfix'@'localhost' identified by 'postfix';
Создадим файл /home/postfixadmin/admin.example.com/config.local.php и отредактируем его (для совместимости с последующими версиями не рекомендуется редактировать config.inc.php, вместо этого рекомендуется заносить измененные опции в config.local.php):
$CONF['postfix_admin_url'] = 'http://admin.example.com/';
$CONF['theme_css'] = 'css/default.css';
$CONF['postfix_admin_path'] = dirname(__FILE__);
$CONF['default_language'] = 'ru';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
$CONF['admin_email'] = 'postmaster@example.com';
$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';
$CONF['encrypt'] = 'md5crypt';
$CONF['generate_password'] = 'NO';
$CONF['page_size'] = '10';
$CONF['default_aliases'] = array (
'abuse' => 'abuse@example.com'
);
$CONF['domain_path'] = 'NO';
$CONF['domain_in_mailbox'] = 'YES';
$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '10';
$CONF['quota'] = 'NO';
$CONF['quota_multiplier'] = '1024000';
$CONF['transport'] = 'NO';
$CONF['vacation'] = 'NO';
$CONF['vacation_domain'] = '';
$CONF['alias_control'] = 'NO';
$CONF['special_alias_control'] = 'YES';
$CONF['logging'] = 'YES';
$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';
$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to admin.example.com';
$CONF['footer_link'] = 'http://admin.example.com';
$CONF['welcome_text'] = 'Hi, Welcome to your new account.';
Теперь переходим к настройке виртуалхоста для postfixadmin. В созданной нами директории для конфигурационных файлов виртуалхостов (/usr/local/etc/apache/vhosts) создаем файл postfixadmin.conf:
touch /usr/local/etc/apache/vhosts/postfixadmin.conf
Редактируем его:
<Virtualhost>
ServerName admin.example.com
ServerAdmin admin@example.com
DocumentRoot "/home/postfixadmin/admin.example.com"

# Поскольку postfixadmin написан на PHP и мы
# не предполагаем запуск чего-либо кроме PHP скриптов
# на этом виртуалхосте, то на всякий случай отключаем CGI
# и запрещаем изменение параметров ./htaccess'ом

<Directory /home/postfixadmin/admin.example.com>
Options -ExecCGI
AllowOverride None
</Directory>

# Запрещаем PHP скриптам выходить за пределы
# директории виртуалхоста
php_admin_value open_basedir /home/postfixadmin
php_admin_value safe_mode_include_dir /home/postfixadmin
php_admin_value safe_mode_exec_dir /noexec
php_admin_value doc_root /home/postfixadmin
php_admin_value upload_tmp_dir /home/postfixadmin/tmp
php_admin_value session.save_path /home/postfixadmin/tmp

# Логирование
ErrorLog /var/log/httpd/postfixadmin-error.log
TransferLog /var/log/httpd/postfixadmin-access.log
</Virtualhost>
Рестартим apache:
# apachectl restart
Открываем в браузере адрес: http://admin.example.com/setup.php
PostfixАdmin создаст базу данных. Затем на этой же странице вводим инсталляционный пароль (зачем он нужен – ниже), postfixadmin сгенерирует хеш, этот хеш помещаем в config.local.php:
#$CONF['setup_password'] = 'hashed_password';
Возвращаемся на страницу http://admin.example.com/setup.php и с помощью инсталляционного пароля добавляем аккаунт главного админа. В дальнейшем можно будет добавлять главных админов с помощью этого инсталляционного пароля. Так что лучше удалить setup.php от греха подальше. В случае необходимости сходить на сайт postfixadmin’а и взять его из тарбола труда не составит, если, конечно, Вы каждый день не добавляете супер админов :) Удаляем setup.php:
# rm /home/postfixadmin/admin.example.com/setup.php
Всё, PostfixAdmin установлен.

Комментариев нет:

Отправить комментарий