Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Postfix как шлюз для Exchange (часть 3).

Пришло время продолжить настройку, об этом я писал здесь:

https://khlebalin.wordpress.com/category/linux-and-unix/page/2/

Вроде бы все сделал, но осталось некое чувство недосказанности (недоделанности). Пришла в голову мысль еще и Веб интерфейс прикрутить.

Немного почитав форумы в инете остановился на postfixadmin. Но для того, чтоб это работало нам понадобится Apache и MySQL.

Если апач еще не прикручен, то пришло время его прикрутить:

Для работы DSPAM WebUI, PostfixAdmin и web-интерфейса RoundCube нам потребуется web-сервер с поддержкой suexec и MySQL аутентификации (для DSPAM WebUI), и поддержкой PHP (для RoundCube и PostfixAdmin). В качестве web-сервера мы будем использовать apache , собранный с поддержкой suexec и модули к нему: mod_auth_mysql_another и mod_php. Приступим к установке apache с поддержкой suexec. Включим поддержку suexec и ограничим ее деревом каталогов, где будут находится скрипты. Для этого добавим в /etc/make.conf:

Собираем порт:

Устанавливаем mod_auth_mysql_another:

Устанавливаем mod_php:

Разрешаем запуск apache, для этого добавляем в /etc/rc.conf:

Создадим директорию, где в последствии будем размещать конфигурационные файлы виртуалхостов:

Теперь можно заняться конфигурированием apache. Редактируем файл /usr/local/etc/apache22/httpd.conf

Здесь приведу конфиг для версии 1.3 (но можно и установить версию 2.2, там конфиг незначительно отличается от текущего, но в нашем случае незначительно…)

#
# Раздел 1: Общие настройки
#
ServerType standalone
ServerRoot «/usr/local»
PidFile /var/run/httpd.pid
ScoreBoardFile /var/run/httpd.scoreboard
Timeout 300
KeepAlive Off
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 100

# Модули. Лишние модули закоментированы.
# Если они Вам потребуются — можете раскоментировать.
LoadModule config_log_module  libexec/apache/mod_log_config.so
LoadModule mime_module        libexec/apache/mod_mime.so
LoadModule dir_module         libexec/apache/mod_dir.so
LoadModule cgi_module         libexec/apache/mod_cgi.so
LoadModule access_module      libexec/apache/mod_access.so
LoadModule auth_module        libexec/apache/mod_auth.so
LoadModule unique_id_module   libexec/apache/mod_unique_id.so
LoadModule mysql_auth_module  libexec/apache/mod_auth_mysql.so
LoadModule php5_module        libexec/apache/libphp5.so
#LoadModule mmap_static_module libexec/apache/mod_mmap_static.so
#LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so
#LoadModule env_module         libexec/apache/mod_env.so
#LoadModule mime_magic_module  libexec/apache/mod_mime_magic.so
#LoadModule negotiation_module libexec/apache/mod_negotiation.so
#LoadModule status_module      libexec/apache/mod_status.so
#LoadModule info_module        libexec/apache/mod_info.so
#LoadModule includes_module    libexec/apache/mod_include.so
#LoadModule autoindex_module   libexec/apache/mod_autoindex.so
#LoadModule asis_module        libexec/apache/mod_asis.so
#LoadModule imap_module        libexec/apache/mod_imap.so
#LoadModule action_module      libexec/apache/mod_actions.so
#LoadModule speling_module     libexec/apache/mod_speling.so
#LoadModule userdir_module     libexec/apache/mod_userdir.so
#LoadModule alias_module       libexec/apache/mod_alias.so
#LoadModule rewrite_module     libexec/apache/mod_rewrite.so
#LoadModule anon_auth_module   libexec/apache/mod_auth_anon.so
#LoadModule db_auth_module     libexec/apache/mod_auth_db.so
#LoadModule digest_module      libexec/apache/mod_digest.so
#LoadModule proxy_module       libexec/apache/libproxy.so
#LoadModule cern_meta_module   libexec/apache/mod_cern_meta.so
#LoadModule expires_module     libexec/apache/mod_expires.so
#LoadModule headers_module     libexec/apache/mod_headers.so
#LoadModule usertrack_module   libexec/apache/mod_usertrack.so
#LoadModule log_forensic_module libexec/apache/mod_log_forensic.so
#LoadModule setenvif_module    libexec/apache/mod_setenvif.so

ClearModuleList
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_auth_mysql.c
AddModule mod_php5.c
#AddModule mod_mmap_static.c
#AddModule mod_vhost_alias.c
#AddModule mod_env.c
#AddModule mod_mime_magic.c
#AddModule mod_negotiation.c
#AddModule mod_status.c
#AddModule mod_info.c
#AddModule mod_include.c
#AddModule mod_autoindex.c
#AddModule mod_asis.c
#AddModule mod_imap.c
#AddModule mod_actions.c
#AddModule mod_speling.c
#AddModule mod_userdir.c
#AddModule mod_alias.c
#AddModule mod_rewrite.c
#AddModule mod_auth_anon.c
#AddModule mod_auth_db.c
#AddModule mod_digest.c
#AddModule mod_proxy.c
#AddModule mod_cern_meta.c
#AddModule mod_expires.c
#AddModule mod_headers.c
#AddModule mod_usertrack.c
#AddModule mod_log_forensic.c
#AddModule mod_setenvif.c

#
# Раздел 2: Настройки по-умолчанию для главного хоста и вирт. хостов.
#
Port 80
User www
Group www
ServerAdmin admin@example.com
DocumentRoot «/usr/local/www/data»
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
DirectoryIndex index.html index.php index.cgi
AccessFileName .htaccess
<Files ~ «^.ht»>
Order allow,deny
Deny from all
Satisfy All
</Files>
UseCanonicalName On
TypesConfig /usr/local/etc/apache/mime.types
DefaultType text/plain
HostnameLookups Off
ServerSignature On
ErrorLog /var/log/httpd-error.log

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-tar .tgz
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
AddHandler cgi-script .cgi

LogLevel warn
LogFormat «%h %l %u %t «%r» %>;s %b «%{Referer}i» «%{User-Agent}i»» combined
LogFormat «%h %l %u %t «%r» %>;s %b» common
LogFormat «%{Referer}i -> %U» referer
LogFormat «%{User-agent}i» agent
CustomLog /var/log/httpd-access.log combined

#
# Раздел 3: Виртуальные хосты
#
NameVirtualHost *:80
Include /usr/local/etc/apache/vhosts/*.conf

Далее пришло время приступить к установке MySQL:

В /etc/make.conf добавляем:

собираем порт:

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

создаем конфигурационный файл MySQL:

добавляем в /var/db/mysql/my.cnf:

запускаем MySQL:

/usr/local/etc/rc.d/mysql-server start

Установим PostfixAdmin:

Пакет 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/&#8217;;
$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&#8217;;
$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 установлен.

Далее осталось, если есть необходимость докрутить настройку постфикса через веб интерфейс.

Собственно на этом настройка закончена, продолжение следует.

Всем удачи.


10.05.2011 Posted by | linux and unix servers | Комментарии к записи Postfix как шлюз для Exchange (часть 3). отключены

Фильм «ОДИНОЧКА».

На днях по совету своего друга посмотрел фильм «Одиночка», который недавно транслировался на НТВ.

Фильм меня реально порадовал.

Десять баллов из десяти по десятибалльной шкале.

ВСЕМ РЕКОМЕНДУЮ К ПРОСМОТРУ !!!

Режиссер

Сергей Щербин

Актеры

Данила Козловский, Ян Цапник, Андрей Кузнецов, Сергей Кудрявцев, Яков Шамшин

Сценарий

Андрей Тумаркин

Продюсеры

Инесса Юрченко, Сергей Щеглов

Производство

ООО «Триикс Медиагруп» по заказу телеканала НТВ
Вооруженный бандит, лицо которого скрыто под маской, совершает налет на сберкассу. Во время нападения погибает молодая женщина, жена оперуполномоченного Фролова. Представителям «органов» достаточно быстро удается выйти на след бандита — неизвестный, позвонивший в отделение милиции, дает операм наводку на дачу, где скрываются преступник. Сотрудники милиции проводят операцию, в ходе которой задержан некий Андрей Громов, который на самом деле является сотрудником спец. служб. Вина его полностью доказана и он получает 12 лет колонии строгого режима…
Под видом бандита он должен был попасть в тюрьму, чтобы обзавестись связями в криминальном мире. А нападение на сберкассу послужило отличным поводом к этому. Громов был уверен, что спустя два-три года он выйдет на свободу. Но про него забыли. И вот Громов на свободе. Он хочет только одного — отомстить тем, кто оставил его на зоне. За вышедшим из тюрьмы агентом начинается охота. Но ликвидировать Громова сложно — он бывший спецназовец, кроме того, годы, проведенные в тюрьме, не прошли для него даром…

Год

2010

10.05.2011 Posted by | синематограф | 1 комментарий