Ключевые слова:mail, virtual, exim, clamav, spam, virus, spamassassin, (найти похожие документы)
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
Исходники:
$ wget http://www.apache.org/dist/httpd/apache_1.3.29.tar.gz
Если для вас есть какая-то разница, то можете посетить
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'а
# mysqladmin -uroot -p create vexim
Source:
$ wget http://mysql.mirror.anlx.net/Downloads/MySQL-4.0/mysql-standard-4.0.18-pc-linux-i686.tar.gz
Снова идём на 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
Исходники:
$ wget http://static.php.net/www.php.net/distributions/php-4.3.4.tar.bz2
Зеркала можно посмотреть на 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. Т.к. мы используем его только на локальной машине, то лично я
не вижу веских причин строить тут зверскую безопасность. Однако,
возможно он понадобится, если вы собираетесь работать с другой машины
или не доверяете сети в плане безопасности.
# mkdir /usr/local/imap-2002e
# mkdir /usr/local/imap-2002e/lib
# mkdir /usr/local/imap-2002e/include
# cp ./c-client/*.c /usr/local/imap-2002e/lib/
# cp ./c-client/*.h /usr/local/imap-2002e/include/
# cp ./c-client/c-client.a /usr/local/imap-2002e/lib/libc-client.a
$ cd ../php-4.3.4
$ ./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql/ \
--with-gettext --with-pear --with-zlib \
--with-imap=/usr/local/imap-2002e/
Конец фрагмента "IMAP и PHP"
Настало время установки PHP:
$ make
# make install
5.1. Настройка: Конфигурация Apache для PHP
FreeBSD:
Это должно сделаться автоматически после установки PHP.
Исходники:
TODO - добавить .php handlers в httpd.conf
6. Установка: ClamAV 0.68
FreeBSD:
# cd /usr/ports/security/clamav && make install clean distclean
Если спросит, не ставьте флажок для "MILTER".
Исходники:
$ wget http://heanet.dl.sourceforge.net/sourceforge/clamav/clamav-0.68.tar.gz
$ tar zxvf clamav-0.68.tar.gz
$ cd clamav-0.68
# groupadd clamav
# useradd -g clamav clamav
$ ./configure
$ make
# make install
В любом случае:
Редактируем /usr/local/etc/clamav.conf под root'ом в текстовом редакторе:
- Закоментировать строку "Example" с помощью #
- Убрать коментарий со строки "ScanMail" в секции Mail Support
Если вы хотите получать уведомления о любых зараженных письмах, можно
включить функцию логов в этом файле.
FreeBSD:
Добавить строку:
clamav_clamd_enable="YES"
в /etc/rc.conf, и потом запустить:
/usr/local/etc/rc.d/clamav-clamd.sh start
Исходники:
Добавить в ваш rc.local (обычно /etc/rc.d/rc.local) строку:
clamd
для запуска демона ClamAV при загрузке. Вам потребуется запустить
"clamd" с правами root'а сейчас, чтобы заставить демона работать.
6.1. Настройка: Автоматическое обновление баз
Базы антивируса ClamAV распространяются через DNS-систему round-robin,
доступ к которой осуществляется при помощи демона freshclam.
FreeBSD и исходники:
Отредактировать /usr/local/etc/freshclam.conf, где раскоментировать
строку UpdateLogFile и изменить её следующим образом:
UpdateLogFile /var/log/clam-update.log
Сохранить файл и затем запустить:
# freshclam -d
Исходники:
Вам необходимо поместить его в ваш файл rc.local также, как это было
сделано выше для демона clamd.
8. Установка: SpamAssassin
FreeBSD:
# cd /usr/ports/mail/p5-Mail-SpamAssassin && make install clean distclean
Добавить строку:
spamd_enable="YES"
в /etc/rc.conf, затем запустить:
# /usr/local/etc/rc.d/spamd.sh start
8. Установка: Exim 4.30
FreeBSD:
# cd /usr/ports/mail/exim-mysql && make -DWITH_OPENSSL_BASE install clean distclean
Добавить строку: exim_enable="YES"
# pw groupadd vexim -g 90
# pw useradd vexim -u 90 -g vexim -d /usr/local/mail -m -s /nonexistant
Исходники:
$ wget ftp://ftp.demon.co.uk/pub/mirrors/exim/exim4/exim-4.34.tar.bz2
Зеркала на http://www.exim.org/mirrors.html
$ 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
$ cd exim-4.34
$ patch -p1 < ../exiscan-acl-4.34-21.patch
$ cp src/EDITME Local/Makefile
# groupadd -g 90 vexim
# useradd -g vexim -u 90 -d /usr/local/mail vexim
Теперь нужно отредактировать файл конфигурации для сборки 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.
При первом подключении следует зайти как:
Username: siteadmin
Domain: <none>
Password: CHANGE
Как только вы войдёте на сайт следует нажать на ссылку 'Site Password'
слева и поменять этот пароль.
Интерфейс в принципе интуитивно простой, так что вполне может
использоваться без каких-либо пошаговых инструкций.
Типовые задачи, такие как добавление доменов и пользователей могут быть
найдены слева.
Если вы хотите удалить пользователя или домен, нажмите на значок корзины
напротив него.
Если хотите поменять настройки для пользователя или домена, то просто
щёлкните по его имени.
Теперь вы должны добавить домен, а затем запустить Exim как показано
ниже:
FreeBSD:
# /usr/local/etc/rc.d/exim.sh start
Исходники:
# exim -bd -q 30m
Нормальный вариант, я уже давно искал такой комплект "все в одном", а то что софт старый - так есть же руки. Жаль только что под dovecot нужно будет самому перестраивать скрипты.Туда еще бы не spamassassin , а dspam и spamd подсунуть.
И еше надо не забыть
что есть php5-extensions
именно там шас выбирается
IMAP (если собираетесь использовать веб- интерфейс сейчас или в будущем)
gettext
iconv
сrypt
Только сейчас увидел Ваши каменты :-)
Отвечу всем и сразу.
По поводу версий софта: в принципе я использовал либо самые последние на момент установки, либо что шло штатно с моим дистрибутивом (сузя 10.3). Единственное что, апач 1.3 собирал из исходников, которые взял с сайта http://apache.lexa.ru/, с 2-кой штатной и штатным PHP5 что-то не заводилось. Так что PHP5+Apache1.3 из исходников, Exim 4.69 и Dovecot последний тоже. Проверено, всё работает.
По поводу донастройки dovecot - ничего там сложного нету, в конфиге должно быть вот это:
driver = mysql
connect = host=/var/lib/mysql/mysql.sock dbname=vexim user=vexim password=вашпароль
default_pass_scheme = CRYPT
password_query = SELECT crypt AS password FROM users WHERE username = '%u' AND enabled = '1'
user_query = SELECT uid, gid FROM users WHERE username = '%u'
Насчёт dspam и spamd не знаю, я штатный прикрутил который в сузе шёл, также как и антивирь.
Хотел помнится написать мануал подробный по установке всего этого хозяйства, но чёт до середины дописал и забил :-) Если вопросы какие будут - могу ответить почтой, сюда случайно чисто заглянул вообще :-)
>Единственное что, апач 1.3 собирал из исходников, которые взял с сайта
>http://apache.lexa.ru/, с 2-кой штатной и штатным PHP5 что-то не заводилось. Так
Переделывал тоже самое с использованием ВСЕХ штатных пакетов suse (уже 11.х линейки) - всё работает. Понял чего не хватало! Пакет php5-posix обязателен помимо php5-PEAR-DB. Ставим его и всё заводится, т.е. собирать ничего не надо.
з.ы. php5-pear-db нету в штатном репе, его надо цеплять из онлайнового suse buildservice:php
Ну и ещё: если брать exim из того же онлайнового сузевского репозитария, там есть два пакета: exim и exim-mysql. Надо ставить второй и только его! Как выяснилось - это два совершенно разных екзима, первый собран БЕЗ поддержки мускля. Странно, но поставить он мне дал тем не менее оба пакета сразу :-) Версия 11.0, в более поздних может пофиксили.
Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /home/webmaster/www/vexim/config/variables.php on line 3
Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/webmaster/www/vexim/config/variables.php on line 3
Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/vexim/config/variables.php on line 3
Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/vexim/config/variables.php on line 3
Вот такая у меня ошибка. Кто скажет в чем дело? Файла db.php нет, но где его скачать?