From: Алексей Чугунов
Newsgroups: email
Date: Mon, 12 Sep 2007 14:31:37 +0000 (UTC)
Subject: Перевод руководства по установке панели управления VExim
РУКОВОДСТВО ПО УСТАНОВКЕ VEXIM 2
Содержание:
1. Предисловие
2. Возможные варианты установки
3. Установка: Apache 1.3.29
3.1. Настройка: VirtualHosts
4. Установка: MySQL 4.0.18
4.1. Настройка: Создание базы и пользователя
5. Установка: PHP 4.3.4
5.1. Настройка: Конфигурация Apache для PHP
6. Установка: ClamAV 0.68
6.1. Настройка: Автоматическое обновление баз
7. Установка: SpamAssassin
8. Установка: Exim 4.30
8.1. Настройка: Конфигурация роутеров и др.
9. Установка: Courier-IMAP
9.1. Настройка: Общая конфигурация Courier-IMAP
9.2. Настройка: Конфигурация IMAP
9.3. Настройка: Конфигурация POP3
10. Установка: Vexim 2
10.1. Настройка: Первоначальные установки
11. Установка: Horde IMP Webmail
12. Если что-то не работает
1. Предисловие
---------------
Данное руководство описывает установку полнофункциональной системы с
комплексным решением для электронной почты, включая SMTP, POP3, IMAP,
webmail и панель управления Vexim с такими функциями, как фильтрация
спама и вирусов.
Хочется отметить, что на протяжении всего данного руководства я
использую оболочку sh.
Если вы используете что-то другое, то, возможно, синтаксис команд будет
отличаться.
В тех местах, где командная строка начинается с символа $
подразумевается что используется учетная запись обычного пользователя,
там же, где она начинается с символа #, означает что это делается от
имени пользователя root. В принципе, вся процедура может быть сделана
под суперпользователем, но это крайне не желательно из соображений
безопасности.
В руководстве приведены как команды для установки с использованием
системы управления пакетами FreeBSD (рекомендуется), если вы работаете
под FreeBSD, так и команды для компиляции из исходных кодов.
Инструкции по установке из исходников даны в основном для тех, кто
использует ОС Linux.
Вам следует использовать что-то одно, не всё вместе.
2. Возможные варианты установки
Самый элементарный минимум, необходимый для запуска системы электронной
почты с использованием Vexim - это Apache, MySQL, PHP, Exim и сам
Vexim. Для доступа пользователей к своим почтовым ящикам автор
рекомендует использовать ПО Courier-IMAP, которое предоставляет функции
IMAP и/или POP3.
С использованием Courier-IMAP, предоставляющего возможность работы по
протоколу IMAP, вы можете сделать единую почтовую систему с
веб-интерфейсом. Я, пожалуй, пропущу описание установки и настройки
пакета Horde IMP, также как и других аналогичных. К примеру,
SquirrelMail, который также прекрасно справляется со своими задачами (по
моему личному мнению).
Если у вас уже установлены и работают Apache, PHP и MySQL, следует
убедиться в том, что у вас настроен дополнительный VirtualHost в
Apache, как описано в пункте 3.1 и есть база данных и пользователь в
MySQL, как в пункте 4.1. В таком случае можно просто пропустить эти
пункты.
Пункты 6 и 7 для настройки антивируса и спамфильтра не являются
обязательными, если вы не планируете их использовать. Однако следует
обратить внимание что тогда нужно будет закоментировать соответствующие
строки файла конфигурации Exim в пункте 8.1.
Помните, что разделы, посвященные Apache, PHP и MySQL не являются
основными объектами данной документации - если вам нужна какая-либо
дополнительная информация, пожалуйста обратитесь к их соответствующим
веб-сайтам и спискам почтовых рассылок. Также, возможно, кто-то из
списков рассылки Vexim окажет вам помощь в случае необходимости.
3. Установка: Apache 1.3.29
Последней стабильной версией Apache 1.3 на момент написания данного
руководства является 1.3.29, однако, более поздние версии этого продукта
содержат в основном только исправления, связанные с ошибками и
безопасностью, поэтому никакой координальной разницы быть не должно.
Прежде всего необходимо создать рабочий каталог для нашей установки и
перейти в него, например ~/vexim_install/
FreeBSD:
# cd /usr/ports/www/apache13 && make install clean distclean
Если для вас есть какая-то разница, то можете посетить
http://httpd.apache.org/download.cgi и скачать его с ближайшего к вам
зеркала
$ tar zxvf apache_1.3.29.tar.gz && cd apache_1.3.29
$ ./configure --prefix=/usr/local/apache1.3/ --enable-module=so
Вы можете спокойно менять prefix, если хотите... главное его запомнить!
$ make
# make install
3.1. Настройка: VirtualHosts
TODO - сделать хороший файл httpd.conf и добавить виртуальный хост для
Vexim в /www - также запустить демона httpd.
Большинство пользователей apache должны знать как настраивается
<VirtualHost>, если вы не уверены в своих знаниях, пожалуйста обратитесь
к документации на http://httpd.apache.org/
4. Установка: MySQL 4.0.18
Последняя версия продукта MySQL на момент написания руководства -
4.0.18, однако процедуры установки могут изменяться с выходом более
новых релизов. Я буду использовать бинарные релизы (как рекомендуют
разработчики MySQL) для платформы x86. Если у вас другая архитектура,
загрузите стандартные бинарники с http://www.mysql.com/downloads/mysql-4.0.html
FreeBSD:
# cd /usr/ports/databases/mysql40-server && make install clean distclean
# /usr/local/etc/rc.d/mysql-server.sh start
# mysqladmin -u root password 'new-password'
Замените текст new-password на нужный вам... что-нибудь более
безопасное, т.к. это предоставляет доступ к MySQL с правами root'а
Снова идём на http://www.mysql.com/downloads/mysql-4.0.html если
необходимы зеркала
# cd /usr/local
# groupadd mysql
# useradd -g mysql mysql
# tar zxvf /PATH/TO/mysql-standard-4.0.18-pc-linux-i686.tar.gz
# ln -s mysql-standard-4.0.18-pc-linux-i686 mysql
# cd mysql
# ./scripts/mysql_install_db
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# ./support-files/mysql.server start
# mysqladmin -uroot create vexim
# ./bin/mysqladmin -u root password 'new-password'
Замените текст new-password на нужный вам... что-нибудь более
безопасное, т.к. это предоставляет доступ к MySQL с правами root'а
Теперь необходимо заставить MySQL запускаться при загрузке. Скопируйте
скрипт /usr/local/mysql/support-files/mysql.server туда, где лежат
скрипты запуска в вашей системе (т.е. в /etc/rc.d/rc.mysql) или, если
используется система на базе init.d (такая как Redhat), в
/etc/rc.d/init.d/mysqld
Организация скриптов запуска/остановки может отличаться в зависимости от
дистрибутива, так что имейте это в виду...!
5. Установка: PHP 4.3.4
Ещё раз повторюсь, что PHP 4.3.4 - последняя версия на момент написания,
в то время как долгожданный PHP 5 всё ещё находится на стадии RC.
Я планирую обновить данный документ, как только выйдет его релиз.
FreeBSD:
# cd /usr/ports/lang/php4 && make install clean distclean
Из появившегося меню выберите:
IMAP (если собираетесь использовать веб-интерфейс сейчас или в будущем)
gettext
iconv
crypt
Зеркала можно посмотреть на http://uk.php.net/get/php-4.3.4.tar.bz2/from/www.php.net/mirror
$ tar jxvf php-4.3.4.tar.bz2
На этом этапе необходимо определиться будете ли вы использовать
веб-интерфейс или нет - если да, то необходимо включить поддержку IMAP в
PHP сейчас (в принципе вы можете потом переустановить PHP).
Если вам НЕ нужна поддержка IMAP:
$ cd php-4.3.4
$ ./configure --with-apxs=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql/
--with-gettext --with-pear --with-zlib
Если вам НУЖНА поддержка IMAP
Нам понадобится imap-2002e, который содержит некоторые библиотеки,
необходимые для PHP...
$ wget ftp://ftp.cac.washington.edu/imap/imap-2002e.tar.Z
$ tar zxvf imap-2002e.tar.Z
$ cd imap-2002e
Теперь открываем ./Makefile в вашем любимом редакторе и смотрим какой
код соответствует вашей системе. Помните, существуют различные коды, в
зависимости от которых теневые пароли либо используются, либо нет. Для
моего Slackware 9.1 с теневыми паролями я использовал "slx".
$ make slx SSLTYPE=none
Измените "slx" на ваш трехзначный код, но оставьте опцию SSLTYPE=none -
это означает что сборка библиотек IMAP будет произведена без поддержки
OpenSSL. Т.к. мы используем его только на локальной машине, то лично я
не вижу веских причин строить тут зверскую безопасность. Однако,
возможно он понадобится, если вы собираетесь работать с другой машины
или не доверяете сети в плане безопасности.
$ tar jxvf exim-4.34.tar.bz2
$ wget http://duncanthrax.net/exiscan-acl/exiscan-acl-4.34-21.patch
Этот патч необходим для фильтрации вирусов и спама. Последняя версия
на http://duncanthrax.net/exiscan-acl/ и её следует проверить если вам
нужен патч не для 4.34
Теперь нужно отредактировать файл конфигурации для сборки Exim, добавив
туда необходимую нам информацию. Для начала откройте
exim-4.34/Local/Makefile в вашем любимом текстовом редакторе. Следующие
строки должны быть раскоментированы и заменены как показано тут:
Раскоментировать '# SUPPORT_TLS=yes' как 'SUPPORT_TLS=yes'
Раскоментировать '# EXIM_PERL=perl.o' как 'EXIM_PERL=perl.o'
Заменить строку, начинающуюся с 'CONFIGURE_FILE=' на
'CONFIGURE_FILE=/usr/local/etc/exim/configure'
Вам также нужно указать значения переменных 'EXIM_USER' и 'EXIM_GROUP'
согласно вашей системе. Обратитесь к документации по Exim чтобы узнать
что именно там должно быть.
# make
# make install
10. Установка: Vexim 2
$ wget http://silverwraith.com/vexim/vexim2.tar.gz
$ cd /www
# tar zxvf /PATH/TO/vexim2.tar.gz
Отредактируйте vexim2/setup/mysql.sql, и замените слово 'CHANGE' в
строках 6 и 7 на UID и GID по умолчанию, под которыми должна будет
происходить доставка. Эти UID и GID должны быть существующим
пользователем в вашей системе. Я использую пользователя "vexim",
созданного нами выше. Его UID и GID по умолчанию должны быть 90.
Теперь, в строке 69, начинающейся с "GRANT SELECT,...", измените слово
"CHANGE" на заданный вами пароль. Это пароль который как Exim, так и
веб-интерфейс, будут использовать для доступа к базе данных. Убедитесь
что пароль достаточно безопасен. Ну и наконец, в конце файла есть два
закоментированных параграфа с '-- ' в их началах. Если ваша система
использует пароли MD5 (FreeBSD, некоторые дистрибутивы Linux),
раскоментируйте первый параграф так, как это описано в файле.
Если ваша система использует пароли DES (Как правило Solaris и некоторые
другие дистрибутивы Linux), раскоментируйте второй параграф так, как это
описано в файле.
Сохраните файл и выйдите из редактора.
# mysql -uroot -p vexim < vexim2/setup/mysql.sql
Теперь отредактируем vexim2/vexim/config/variables.php. Там необходимо
поменять следующие параметры:
Изменить '$sqlpass' в строке 17 на пароль пользователя базы данных vexim,
который вы задали во время редактирования 'mysql.sql' в нашем предыдущем шаге.
Если ваша система использует DES-пароли, замените '$cryptscheme' на "des".
Теперь мы настроим Exim для работы с VExim.
Копируем vexim2/docs/configure в /usr/local/etc/exim/configure
Копируем vexim2/docs/vexim* в /usr/local/etc/exim
Отредактируем /usr/local/etc/exim/configure, где в строке 78,
начинающейся с 'hide mysql_servers', также заменим слово 'CHANGE' на
пароль пользователя базы данных vexim.
Конфигурация ACL начинается со строки 268. Тут есть несколько ACL'ов,
которые будут влиять на возможности получения почты. Пробегитесь
по каждому из этих файлов чтобы понять что делает каждый конкретный ACL.
По умолчанию разрешены SpamAssassin, ClamAV, SPF и несколько блок-листов
DNS. Многим из вас, возможно, не придется их трогать вообще, либо внести
туда лишь незначительные изменения. Эти параметры расширяют ваши
возможности по блокированию почты.
Вся (ну или почти вся) почта, удовлетворяющая этим условиям, является
спамом, но необходимо решить хотим мы его блокировать или нет. Если мы
не хотим блокировать вообще никакой почты, тогда удаляем все строки,
которые начинаются с '.include' в секции ACLs.
10.1. Настройка: Первоначальные установки
Теперь по идее уже можно открыть сайт VExim на виртуальном хосте,
который вы настроили в Apache.