Не важно для чего вы хотите организовать систему электронной почты, только лишь для сервисов, как самостоятельный сервер, или для нескольких виртуальных доменов, qmail может быть легко настроен для любых ваших нужд. Это руководство поможет вам установить и настроить qmail, для любого из этих вариантов с уклоном на удаленный доступ, в том числе через зашифрованные каналы данных.
Это руководство поможет вам освоить qmail, courier-imap, vpopmail, и horde/imp. Но вместе с ними так же вступят в "игру" daemontools, ucspi-tcp, mysql, apache, и mod_php. qmail предоставляет функции MTA (Mail Transfer Agent), courier-imap - предоставляет удаленный сбор почты, (pop3/imap сервер. прим.пер.) vpopmail предоставляет функции управления виртуальными доменами, и horde/imp - это почтовый веб-клиент.
До установки (emerging) чего-либо, вы должны корректно установить переменную USE.
Если у вас уже были установлены какие-нибудь из этих пакетов,
то, возможно, вам придется их переустановить.
Конечно, существует достаточно пакетов, с помошью которых
можно построить систему электронной почты.
Сейчас самое время осмыслить и решить для вас ли qmail. У нас так же есть
# emerge qmail
Установка qmail так же "потянет" за собой установку ucspi-tcp и daemontools.
О них, если хотите, вы можете прочитать на
Для начала проведем несколько пост-инсталяционных мероприятий. :)
(Измените под свою конфигурацию) # nano /var/qmail/control/servercert.cnf # ebuild /var/db/pkg/mail-mta/qmail-1.03-r*/qmail-1.03-r*.ebuild config
Qmail проектировался так, чтобы полностью соответствовать требованиям безопасности. Почта никогда не посылается пользователю 'root'. Поэтому вам надо выбрать пользователя на машине, который будет получать почту предназначенную 'root'. С этого момента я предполагаю, что этот пользователь 'vapier'.
# cd /var/qmail/alias # echo vapier > .qmail-root # echo vapier > .qmail-postmaster # echo vapier > .qmail-mailer-daemon
Теперь, поднимем сервис доставки qmail.
# rc-update add svscan default # /etc/init.d/svscan start # cd /service # ln -s /var/qmail/supervise/qmail-send qmail-send
Надо убедиться, что qmail работает корректно, вот небольшой тест.
# ssh vapier@localhost # maildirmake .maildir # qmail-inject root << EOF test root e-mail! EOF # qmail-inject postmaster << EOF test postmaster e-mail! EOF # qmail-inject vapier << EOF test vapier e-mail! EOF # mutt(Теперь в вашем ящике должно быть 3 письма)
Вот и все! Теперь у вас стоит почтовая система способная удовлетворить, потребности локальной машины и системных демонов/пользователей.
# hostname --fqdn wh0rd.org # cat me wh0rd.org # cat defaultdomain wh0rd.org # cat plusdomain wh0rd.org # cat locals wh0rd.org # cat rcpthosts wh0rd.org
# hostname --fqdn mail.wh0rd.org # cat me mail.wh0rd.org # cat defaultdomain wh0rd.org # cat plusdomain wh0rd.org # cat locals mail.wh0rd.org # cat rcpthosts mail.wh0rd.org
# emerge vpopmail
vpopmail требует немного больше старания при установке, чем предыдущие пакеты. Мы должны убедиться что он запущен и работает (до mysql). Далее мы можем установить базу данных vpopmail. До того как приступить к следующему шагу, необходимо проверить что mysql корректно установлен. Учтите, пароль для базы данных vpopmail будет 'vpoppw', конечно вы можете выбрать другой.
# rc-update add mysql defaultЕсли вы установили mysql в первый раз, убедитесь что была запущена команда ebuild <mysql.ebuild> config до запуска mysql сервера. # /etc/init.d/mysql start # nano /etc/vpopmail.conf(Изменим пароль с 'secret' на 'vpoppw') # mysql -p << EOF create database vpopmail; use mysql; grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'vpoppw'; flush privileges; EOF(Следующие шаги могут понадобиться, а могут и нет, но мы выполним их просто чтобы быть уверенными) # chown root:vpopmail /etc/vpopmail.conf # chmod 640 /etc/vpopmail.conf # chown root:vpopmail /var/vpopmail/bin/vchkpw # chmod 4711 /var/vpopmail/bin/vchkpw
Теперь, vpopmail готов к использованию. В этой части, мы предоставим виртуальный хостинг для домена 'wh0rd.org'. Это означает что мы должны "сообщить" vpopmail об этом домене. Кстати, давайте добавим пользователя 'vapier'.
(Это нужно сделать только в том случае если vadddomain выдает "command not found" (см. далее)) # source /etc/profile(While debugging vpopmail, you may want to consult the logs) # mysql -u vpopmail -p mysql> select * from vpopmail.vlog; # vadddomain wh0rd.org postpass(Теперь проверим правильно ли установлен домен) # printf "postmaster@wh0rd.org\0postpass\0blah\0" | vchkpw `which id` 3<&0 uid=89(vpopmail) gid=89(vpopmail) groups=0(root)(Если вы не видите что-либо подобное, значит права доступа где-то выставлены некорректно) # vadduser vapier@wh0rd.org vappw
В каждом домене созданном vpopmail существует аккаунт 'postmaster'. Мы задаем пароль postmaster'а в 'postpass'. Чтобы vpopmail был действительно полезен нам, мы должны получать почту через courier и посылать с помощью qmail и SMTP.
# emerge net-mail/courier-imap
И еще несколько пост-инсталляционных шагов:). Они необходимы только в том случае если вы будете использовать SSL зашифрованные коммуникации (Рекомендуется!). Иначе вы можете пропустить последние 2 шага, в следующих листингах, удаляя '-ssl' из имени инициализационного скрипта.
# nano /etc/courier/authlib/authdaemonrc(Оставьте в переменной authmodulelist только "authvchkpw") # cd /etc/courier-imap # nano pop3d.cnf(Отредактируйте секцию [ req_dn ] ) # mkpop3dcert # rc-update add courier-pop3d-ssl default # /etc/init.d/courier-pop3d-ssl start
# cd /etc/courier-imap # nano imapd.cnf(Отредактируйте секцию [ req_dn ] ) # mkimapdcert # rc-update add courier-imapd-ssl default # /etc/init.d/courier-imapd-ssl start
Ваш почтовый клиент теперь может соединиться с сервером (с запущенным на нем courier) и получать почту предназначенную для виртуального хоста. В моем случае, я могу соединиться с именем 'vapier@wh0rd.org' и паролем 'vappw'.
Давайте заставим SMTP работать, не причинив ущерба людям, открыв очередную спам-дыру.
# cd /var/qmail/control/ # nano conf-smtpd(Раскомментируйте SMTP-AUTH переменную и установите QMAIL_SMTP_CHECKPASSWORD в /var/vpopmail/bin/vchkpw) # nano servercert.cnf(Отредактируйте секцию [ req_dn ] ) # mkservercert # cd /service # ln -s /var/qmail/supervise/qmail-smtpd qmail-smtpd # /etc/init.d/svscan restart
Предположим вы не меняли файлов qmail, тогда он теперь принимает почту для виртуального домена wh0rd.org и для пользователей локальной машины. Более того, qmail доверяет любому кто посылает письма через 127.0.0.1 и для любого кто может пройти аутентификацию через vpopmail. При настройке своего почтового клиента для отправки почты, убедитесь что вы включили опцию вроде 'Server requires authentication'. В моем случае, я поставил имя пользователя в 'vapier@wh0rd.org' и пароль - 'vappw'. И последняя деталь - убедитесь что настроили использование SSL/TLS для SMTP в своем клиенте. Qmail не позволит вам пройти аутентификацию если сессия не зашифрована.
Несмотря на то что существует множество веб-клиентов электронной почты
(и вы свободны выбрать любой из них), я предпочитаю
On to the good stuff! Теперь установим IMP.
# emerge horde-imp
Horde не просто настроить если вы точно не знаете что делать. К счастью для вас, я точно знаю что делать, значит и вы будете. :)
# cd /var/www/localhost/htdocs/horde/config/ # for f in *.dist ; do mv ${f} ${f/.dist} ; done # nano horde.php(Ниже 'Horde Authentication':) $conf['auth']['driver'] = 'imap'; $conf['auth']['params']['dsn'] = '{localhost:993/imap/ssl/novalidate-cert}';(Ниже 'Horde Logging':) $conf['log']['name'] = '/var/log/apache2/horde.log';(Ниже 'Problem Reporting':) $conf['problems']['enabled'] = true; $conf['problems']['email'] = 'webmaster@wh0rd.org'; # nano registry.php(Ниже 'Handlers':) $this->registry['auth']['login'] = 'imp'; $this->registry['auth']['logout'] = 'imp';(Ниже 'Application registry':) Установите элемент 'status', раздел applications['imp'], из 'inactive' в 'active' # touch /var/log/apache2/horde.log # chown apache:apache /var/log/apache2/horde.log
Теперь действительно быстро установим IMP.
# cd /var/www/localhost/htdocs/horde/imp/config/ # for f in *.dist ; do mv ${f} ${f/.dist} ; done # nano servers.php(Отредактируйте массив $servers['imap'] $servers['imap'] = array( 'name' => 'wh0rd.org', 'server' => 'localhost', 'protocol' => 'imap/ssl/novalidate-cert', 'port' => 993, 'folders' => '', 'namespace' => 'INBOX.', 'maildomain' => 'wh0rd.org', 'smtphost' => 'localhost', 'realm' => '', 'preferred' => '' );
Наконец, поднимем apache, чтобы начать использовать webmail.
# nano /etc/conf.d/apache2(Раскоменнтируйте APACHE2_OPTS="-D SSL -D PHP4") # rc-update add apache2 default # /etc/init.d/apache2 start
Чтобы проверить установку IMP, запустите браузер и зайдите
На данный момент, Horde и IMP установлены. Однако, вы можете пройти заново через все дерево конфигурационных директорий и настроить все что вашей душе угодно.
Первый пакет на который я обращу ваше внимание это
Если вы вляпались в проблемы с очередями qmail и провели много времени над отладкой,
то, возможно захотите взглянуть на
Я очень рекомендую посмотреть на множество приложений Horde.
qmail использует ucspi-tcp для фильтрации входящих соединений.
Если вы хотите настроить правила фильтрации, тогда смотрите
файлы в
Если вы хотите обеспечить фильтрацию контента на своем mail сервере
(спам, вирусы), тогда вам необходимо использовать другую программу
для организации очередей. Одна из хороших программ это
# cd /etc/tcprules.d/ # nano tcp.qmail-smtp(добавьте QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" в правило catchall) # tcprules tcp.qmail-smtp.cdb tcp.qmail-smtp.tmp < tcp.qmail-smtp
Смотрите секции об установке спам и вирус фильтров.
Вы можете отредактировать несколько опций в
Один из лучших спам фильтров это
# nano /etc/mail/spamassassin/local.cf(чтобы обеспечить самый минимум, добавьте следующие опции:) required_hits 6 skip_rbl_checks 1 # rc-update add spamd default # /etc/init.d/spamd start # nano /var/qmail/bin/qmail-scanner-queue.pl(Убедитесь что $spamc_binary variable выставлена в '/usr/bin/spamc'.) (Если она выставлена в '', тогда смотрите далее.)
На этом этапе входящая почта будет проходить через qmail-scanner который в свою очередь пропустит ее через SpamAssassin.
Как и SpamAssassin,
# nano /etc/conf.d/clamd(Установите START_CLAMD=yes) # nano /etc/clamav.conf(Настройте все как хотите) # rc-update add clamd default # /etc/init.d/clamd start # nano /var/qmail/bin/qmail-scanner-queue.pl(Убедитесь что $clamscan_binary переменная установлена в '/usr/bin/clamscan'.) (Если нет, смотрите ниже.) # nano /var/qmail/control/conf-common(Если ClamAV сообщает о проблемах с памятью попробуйте увеличить программный лимит (softlimit))
На этом этапе входящая почта будет проходить через qmail-scanner который в свою очередь пропустит ее через Clam AntiVirus.
У меня нет особых примечаний, но если у вас проблемы с этим руководством,
пожалуйста, свяжитесь со