Задача: Быстрое и максимально простое в установке и настройке решение MTA на
платформе FreeBSD.
Решение:
Итак, начнёмс...
Есть Freebsd 5.5 установленная на виртуальный хост вынесенный в DMZ (а
почему нет?) она будет выполнять роль простейшего многодоменного MTA.
Нам точно не нужны все завороты по типу TLS, SSL и т.д., почему,
объяснять не буду, но вот не нужны и всё тут, споры о необходимости их
пишите в комментарии. Нам нужен, банальный SMTP&POP3+RBL
проверки+проверка на наличие обратной зоны. Срок установки и минимальной
настройки у нас 6-7 часов максимум и вы это делаете точно первый раз.
Вам так же нужен какой то минимально простой и удобный интерфейс
управление этим МТА, возможно на web, возможно ещё как то, Вы пока не
знаете, что точно вы хотите.
После долгих посиков я натолкнулся на Xmail http://www.xmailserver.org/,
сначало имел крайне критическое отношение к этому проекту, но потом
сомнения сменились любопытсквом и решил таки попробовать с ним поиграть.
Если честно, то понравилось. Крайне люблю простенькие законченные
решения.
Начинаем.
Установка Apache.
# cd /usr/ports/www/apache13-modssl/
# make install clean
всё банально до предела.
Ставим php:
# cd ../../lang/php4 or php5 (кому что больше нравиться, я привык к 4 на ней и тестировал)
# make config
выключаем всё, акромя "mode Apache", кому как больше нравиться конечно,
я привык к моду.
Далее, либо правим Makefile руками на тему необходимых опций, но точно
будут нужны session и что то ещё. мой кусок Makefile в секции mode Apache
.if defined(WITH_APACHE)
PHP_SAPI+= mod
USE_APACHE= 1.3+
.include "${PORTSDIR}/Mk/bsd.apache.mk"
.if ${APACHE_VERSION} > 13
CONFIGURE_ARGS+=--with-apxs2=${APXS}
.else
CONFIGURE_ARGS+=--with-apxs=${APXS} \
--with-zlib-dir=/usr \
--with-gd \
--enable-gd-native-ttf \
--with-freetype-dir=/usr/local \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-mysql \
--enable-overload \
--enable-xml \
--with-zip=/usr/local \
--enable-session \
--with-zip=/usr/local \
--with-regex=php \
--with-pcre-regex=yes \
--enable-tokenizer \
--with-expat-dir=/usr/local
.endif
предварительно установил отдельно GD2&devel/zziplib.
Либо, подсовываем необходимые модули потом через файлик php.ini.
# make install clean
Устанавливаем gmake, будет нужен в процессе установки МТА.
# cd ../../devel/gmake
# make install clean
Приступаем к "взгромождению" нашего МТА.
# mkdir /#dist
# cd /#dist
# fetch http://www.xmailserver.org/xmail-1.22.tar.gz
# tar xzf xmail-1.22.tar.gz
# cd xmail-1.22
# setenv OSTYPE FreeBSD
# gmake -f Makefile.bsd
копируем всю папку MailRoot из дистрибутива в /var , копируем все файлы
из директории bin в /var/MailRoot/bin
# chown 700 /var/MailRoot
# cp xmail /usr/local/etc/rc.d
# chown root:wheel /usr/local/etc/rc.d/xmail
# chmod 555 /usr/local/rc.d/xmail
Замечательно, мы скопировали скрипт запуска и сменили ему права и дали
разрешение на запуск.
Теперь нужно подготовиться к первому запуску нашего "супермега" МТА. Для
этого топаем в /var/MailRoot. Сначало придумываем супермегасложный
пароль для администратора всего МТА, а так же его имя, например:
root sUpErMeGaPaSS
Далее топаем в /var/MailRoot/bin и делаем вот так
# ./XMCrypt sUpErMeGaPaSS
16301520172800220435043636
вывод команды XMcrypt есть ни что иноге как просто md5 хэш нашего супер
пароля. Этот хэш нам будет нужен! далее идём.
# cd ../
# ee ctrlaccouts.tab
вносим в этот файлик следуюшую строку
root<tab>16301520172800220435043636(это наш хэш, не забыли?)<newline>
Далее, для пущей надёжности запретим обрабатывать нашему МТА управляющие
команду откуда бы то ни было акромя localhost.
# ee ctrl.ipmap.tab
правим там строку вида
"0.0.0.0" "0.0.0.0" "ALLOW" 1
на строку вида
"127.0.0.1" "255.255.255.255" "ALLOW" 1
Такс, теперь всё тупенько
# /usr/local/etc/rc.d/./xmail start
И наш МТА стартует. Так, полдела сделано.
Теперь управление:
# cd /#dist
# fetch http://puzzle.dl.sourceforge.net/sourceforge/phpxmail/phpxmail1.4.zip
# portinstall unzip
# rehash
# unzip phpxmail1.4.zip
компируем то что получилось после распаковки в
/usr/local/www/data/phpxmail пробуем туда зайтить по http://ip_server/phpxmail/,
если всё прошло, то вбиваем при первом
запуске вместо адреса нашего МТА слово localhost и те волшебные root и
суперпароль. Дальше спокойно рулим тем что получилось. Бодробнуб
документацию по настройке xmail искать тут http://www.xmailserver.org/Readme.html ,
крайне подробно и просто написано, без заморочек и "неправильного" английского.
В это маленькой заметке не рассмотрены такие моменты как подключение
различных фильтров для обработки к МТА, а их написано великое множество,
как антивирусных так и разных других.
Cсылки на материалы:
FreeBSD - http://www.freebsd.org
Xmail server - http://www.xmailserver.org/ тут же смотрите весь
остальной материал по фильтрам, управляющему софту и т.д.
phpxmaail - https://sourceforge.net/projects/phpxmail
p/s/ в это заметке не рассмотрен очень большой пласт тех, часто
необходимых, для МТА моментов, как виртуальные домены, "виртуальные"
пользователи, списки рассылки и т.д. и т.п. Большинство из этих фич,
поддерживаются xmail базово и в комплекте, что называется, так же он
позволяет использовать внешнюю авторизацию, вполть до NT и многое
другое. К нему, опять же модульно, пока во всяком случае на форумах идёт
голосование о включении IMAP в базовую систему, прикручивается IMAP
(базово его просто нет). Но её задача была не рассмотреть весь спектр
настроек данного МТА, задача была до предела простой - как просто
взгромоздить xmail на FreeBSD и как им просто и эффективно управлять.