RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Beyond Linux From Scratch. Версия 6.0

Глава 21. Программы почтовых серверов

Courier-0.47

Введение в Courier

Пакет Courier содержит Mail Transport Agent (MTA). Он полезен для отправки почты другим пользователям на Вашей машине. Также он может быть настроен в качестве центрального сервера почты Вашего домена или в качестве агента перенаправления почты. Пакет Courier также включает web-основанный интерфейс почты, IMAP, IMAP-SSL, POP3 и POP3-SSL.

Информация о пакете

Зависимости Courier

Требуемые

GDBM-1.8.3.

Опционально

MySQL-4.1.8a или PostgreSQL-7.4.6, Linux-PAM-0.78, OpenSSL-0.9.7e, FAM-2.7.0, OpenLDAP-2.2.20, Apache-2.0.53, ispell-3.2.06.epa7 или Aspell-0.60, GnuPG-1.4.0, Expect-5.42.1, AFPL Ghostscript-8.14 или ESP Ghostscript-7.07.1, Netpbm и Mgetty+Sendfax .

Установка Courier

[Замечание]

Замечание

Архив Courier должен быть распакован с правами обычного пользователя, иначе скрипт configure выпадет с ошибкой.

Перед началом сборки программы надо создать пользователя и группу courier, которые должны присутствовать в системе перед запуском скрипта install. Как пользователь root, добавим пользователя и группу courier при помощи следующих команд:


groupadd courier &&
useradd -c 'Courier Mail Server' -d /dev/null \
        -g courier -s /bin/false courier

Скрипт install также ожидает наличия пользователя bin. Если у Вас уже есть пользователь с именем bin, то этот шаг может быть пропущен.


useradd -c 'bin' -d /dev/null -g bin -u 1 bin

Courierfilter требует каталог /var/run/courier для сохранения всех pid и lock-файлов для Courier. Каталог /var/lock/subsys также должен присутствовать для основного lock-файла Courier. Выполним следующие команды для создания этих каталогов:


install -d /var/run/courier -o courier -g courier -m755 &&
install -d /var/lock/subsys -o root -g root -m755

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


./configure --prefix=/usr --libexecdir=/usr/lib/courier \
            --datadir=/usr/share/courier --sysconfdir=/etc/courier \
            --localstatedir=/var/lib/courier --with-piddir=/var/run/courier \
            --with-paranoid-smtpext --disable-autorenamesent \
            --enable-workarounds-for-imap-client-bugs --with-db=gdbm &&
make

А теперь опять станем пользователем root и установим Courier при помощи следующих команд:


make install &&
make install-configure

Описание команд

--libexecdir=/usr/lib/courier: Описывает каталог, который содержит программы и библиотеки, которые не могут быть непосредственно запущены из командной строки.

--datadir=/usr/share/courier: Описывает каталог, в который будут установлены различные скрипты оболочки, Perl-скрипты и файлы данных.

--localstatedir=/var/spool/courier: Описывает каталог, который будет содержать очередь почты и другие временные данные.

--with-piddir=/var/run/courier: Описывает каталог, в который сохраняются PID файлы Courier, когда Courier активен.

--with-paranoid-smtpext: Быть параноиком при переговорах Courier-specific ESMTP расширений с удаленными серверами. Почтовый сервер Courier описывает и реализует некоторые экспериментальные ESMTP-расширения: XVERP и XEXDATA. Проблемы могут быть следствием событий, когда кто-то другой использует то же самое имя для реализации другого расширения. Если эта опция описана, то ESMTP-сервер Courier также будет объявлять фиктивную возможность ESMTP, называемую XCOURIEREXTENSIONS, и не будет узнавать любые Courier-специфичные расширения, пока удаленный почтовый сервер также объявляет эту фиктивную ESMTP-возможность.

--disable-autorenamesent: Не переименовывать папку Sent каждый месяц. Также эта опция может быть проконтролирована переменной окружения SQWEBMAIL_AUTORENAMESENT.

--enable-workarounds-for-imap-client-bugs: Есть несколько подтвержденных ошибок в некоторых клиентах IMAP, которые неправильно реализуют протокол IMAP 4rev1. Эта опция включает некоторые обходы для этих ошибочных IMAP-клиентов. ЗАМЕЧАНИЕ: make check при использовании этой опции будет выпадать. Сначала Вы должны использовать configure без этой опции и, если все послеконфигурационные тесты проходят, перезапустить configure с этой опцией и пересобрать.

--with-db=gdbm: Courier также требует библиотеку базы данных GDBM или DB. GDBM используется, если присутствуют обе. Эта опция принудительно выбирает GDBM, так как в данный момент courier не работает при использовании DB.

--with-ispell=/usr/bin/aspell: Сервер интернет-почты Courier может использовать проверку орфографии, если configure находит ispell, или если Вы точно установите положение aspell.

--enable-mimetypes= [location of mime.types file]: Используйте этот ключ, если Вы получите ошибку, говорящую, что файл mime.types не может быть найден.

Конфигурация Courier

Файлы конфигурационной информации

/etc/courier/*.

Конфигурационная информация

Пока Вы все еще root, Вам понадобится создать следующие файлы с особым содержанием.

/etc/courier/defaultdomain


cat > /etc/courier/defaultdomain << "EOF"
[Ваш домен]
EOF

/etc/courier/me


cat > /etc/courier/me << "EOF"
[имя сервера.Ваш домен]
EOF

/etc/courier/locals


cat > /etc/courier/locals << "EOF"
localhost
[Ваш домен]
EOF

/etc/courier/esmtpacceptmailfor.dir/system


cat > /etc/courier/esmtpacceptmailfor.dir/system << "EOF"
localhost
[Ваш домен]
EOF

Вам также понадобиттся отредактировать файл /etc/courier/aliases/system и изменить следующее содержимое.


postmaster: [почтовый адрес Вашего администратора]

Если Вы хотите запретить доступ с некоторых хостов от посылки почты, то Вам понадобится отредактировать файл /etc/courier/smtpaccess/default.

Если Вы хотите предоставлять почту для нелокальных доменов, включая виртуальные домены, то Вы должны добавить их в /etc/courier/hosteddomains. Этот файл должен присутствовать, нужен ли Вам список доменов или нет:


touch /etc/courier/hosteddomains

После выполнения предыдущего шага понадобится выполнить следующие команды:


makesmtpaccess &&
makehosteddomains &&
makealiases

Для каждого пользователя понадобится создать каталог Maildir:


cd /home/[имя пользователя] &&
maildirmake Maildir &&
chown [имя пользователя].[имя пользователя] Maildir -R

Если Вы хотите использовать SSL с Courier, Вы должны получить сертификаты и сохранить их в /usr/share/courier. Опционально Вы можете создать самоподписываемые тестовые сертификаты при помощи следующих команд:


mkesmtpdcert &&
mkimapdcert &&
mkpop3dcert

Все файлы конфигурации Courier находятся в каталоге /etc/courier/. Для каждого сервиса SMTP, POP3 и IMAP у Вас будет стандартный файл конфигурации и файл конфигурации SSL. Для каждого сервиса, который Вы хотите использовать, Вам понадобится отредактировать файл конфигурации и изменить переменную [DAEMON]START с 'NO' на 'YES'. Например, для использования SMTP с SSL Вам понадобится отредактировать /etc/courier/esmtpd-ssl и изменить значение 'ESMTPDSSLSTART' на 'YES'. Сделайте такие же изменения для каждой конфигурации сервиса, который Вы хотите использовать с Courier.

Если Вы хотите использовать LDAP, то должен быть создан файл конфигурации LDAP:


echo "LDAPALIASDSTART=YES" > /etc/courier/ldapaliasd

Аналогично, если Вы хотите использовать webmail, то должны создать файл конфигурации webmail:


echo "WEBMAILDSTART=YES" > /etc/courier/webmaild

Вам также понадобится скопировать файл webmail из /usr/lib/courier/courier/webmail в cgi-bin Вашего сервера Apache.


cp -a /usr/lib/courier/courier/webmail/webmail /srv/www/cgi-bin

Затем понадобится скопировать изображения в подкаталог каталога htdocs Вашего сервера Apache. Подкаталог должен быть назван webmail , или Вам необходимо указать его во время фазы configure в параметре --enable-imageurl= [URL].


cp -a /usr/share/courier/sqwebmail/images /srv/www/htdocs/webmail

Если Вы хотите использовать утилиту webadmin, то понадобится скопировать файл webadmin из /usr/lib/courier/courier/webmail в каталог cgi-bin Вашего сервера Apache.


cp -a /usr/lib/courier/courier/webmail/webadmin /srv/www/cgi-bin

Также необходимо поместить пароль в файл /etc/courier/webadmin/password:


cat > /etc/courier/webadmin/password << "EOF"
[пароль]
EOF

Если Вы не используете SSL в сервере Apache, то понадобится добавить /etc/courier/webadmin/unsecureok, при этом Вы сможете использовать Ваше средство администрирования, основанное на интернет.


touch /etc/courier/webadmin/unsecureok

Если Вы используете Linux-PAM в системе, то понадобится создать файлы конфигурации PAM:


cat > /etc/pam.d/esmtp << "EOF"
# Begin /etc/pam.d/esmtp
authrequiredpam_unix.so try_first_pass
account requiredpam_unix.so
session requiredpam_unix.so
# End /etc/pam.d/esmtp
EOF

cat > /etc/pam.d/pop3 << "EOF"
# Begin /etc/pam.d/pop3
authrequiredpam_unix.so try_first_pass
account requiredpam_unix.so
session requiredpam_unix.so
# End /etc/pam.d/pop3
EOF

cat > /etc/pam.d/imap << "EOF"
# Begin /etc/pam.d/imap
authrequiredpam_unix.so try_first_pass
account requiredpam_unix.so
session requiredpam_unix.so
# End /etc/pam.d/imap
EOF

cat > /etc/pam.d/webmail << "EOF"
# Begin /etc/pam.d/webmail
authrequiredpam_unix.so try_first_pass
account requiredpam_unix.so
session requiredpam_unix.so
# End /etc/pam.d/webmail
EOF

Наконец, если Вы хотите запускать сервер Courier во время загрузки, то установите стартовый скрипт /etc/rc.d/init.d/courier , включенный в пакет blfs-bootscripts-6.0.


make install-courier

Конфигурация для виртуальных пользователей

Эти инструкции настроят Courier для просмотра виртуальных пользователей в базе данных MySQL. Начните с внесения следующих изменений в /etc/courier/authmysqlrc:


MYSQL_SERVERlocalhost
MYSQL_USERNAMEcourier
MYSQL_PASSWORD[ваш выбор]
MYSQL_SOCKET/var/run/mysql/mysql.sock
MYSQL_PORT3306
MYSQL_DATABASEcourier_mail
MYSQL_USER_TABLEusers
MYSQL_CLEAR_PWFIELD clear
DEFAULT DOMAIN[ваш домен]
MYSQL_QUOTA_FIELD quota

Подключитесь к MySQL:


mysql -p

Создайте базу данных courier_mail и настройте таблицу пользователей:


CREATE DATABASE courier_mail;
USE courier_mail
CREATE TABLE users (idchar(128) DEFAULT '' NOT NULL,
                    crypt char(128) DEFAULT '' NOT NULL,
                    clear char(128) DEFAULT '' NOT NULL,
                    namechar(128) DEFAULT '' NOT NULL,
                    uid int(10) unsigned DEFAULT '65534' NOT NULL,
                    gid int(10) unsigned DEFAULT '65534' NOT NULL,
                    homechar(255) DEFAULT '' NOT NULL,
                    quota char(255) DEFAULT '' NOT NULL, KEY id (id(128)));

Предоставим все привилегии пользователю courier, созданному ранее:


GRANT ALL PRIVILEGES ON *.* TO courier@localhost
      IDENTIFIED BY '[пароль]'
      WITH GRANT OPTION;
QUIT

Создадим виртуальных пользователя и группу mailman:


groupadd -g 9000 vmailman &&
useradd -c 'Virtual Mailman' -g vmailman -m -k /dev/null -u 9000 vmailman

Создадим почтовый каталог для нового виртуального пользователя:


cd /home/vmailman &&
mkdir [виртуальный_пользователь] &&
cd [виртуальный_пользователь] &&
maildirmake Maildir &&
chown vmailman.vmailman Maildir -R

Теперь подключимся к базе данных MySQL как пользователь courier:


mysql -u courier -p

Для добавления виртуального пользователя Вам надо ввести минимум одну версию пароля: обычную (текстовую) или шифрованную.

Добавим первого виртуального пользователя запуском следующих команд:


USE courier_mail
INSERT INTO users VALUES (
   '[виртуальный_пользователь]@[домен.com],
   '[шифрованный пароль или пусто]',
   '[текстовый пароль или пусто]',
   '[имя пользователя]', 9000, 9000,
   '[положение каталога для почты]',
   '[квота в байтах]);
QUIT

Например:


INSERT INTO users VALUES ('blfsuser@linuxfromscratch.org', '', 'password',
                          'BLFS User', 9000, 9000, '/home/vmailman/blfsuser',
                          '');

Содержание

Установленные программы: addcr, authenumerate, cancelmsg, courier, courier-config, courieresmtpd, courierfilter, courierlogger, couriermlm, couriertcpd, couriertls, deliverquota, dotforward, esmtpd, esmtpd-msa, esmtpd-ssl, filterctl, imapd, imapd-ssl, lockmail, mailbot, maildiracl, maildirkw, maildirmake, maildrop, mailq, makeacceptmailfor, makealiases, makedat, makehosteddomains, makemime, makepercentrelay, makesmtpaccess, makesmtpaccess-msa, makeuserdb, makeuucpneighbors, mimegpg, mkesmtpdcert, mkimapdcert, mkpop3dcert, pop3d, pop3d-ssl, preline, pw2userdb, reformail, reformime, rmail, sendmail, sharedindexinstall, sharedindexsplit, showconfig, showmodules, testmxlookup, userdb, userdbpw, vchkpw2userdb, webgpg, webmaild. Установленные каталоги: /etc/courier, /usr/lib/courier, /usr/share/courier, /var/lib/courier, /var/lock/subsys, /var/run/courier и /var/spool/courier.

Короткое описание

cancelmsg

Удаляет сообщение из очереди почты.

courier

Административная команда, используемая для контроля движка планирования Courier.

courierfax

Посылает почтовые сообщения по факсу.

courierfilter

Запускает и останавливает все почтовые фильтры, установленные filterctl.

courierldapaliasd

Поддерживает псевдонимы почтовых адресов, используя LDAP.

courierlogger

Захватывает сообщения об ошибках из других приложений Courier и перенаправляет их в системный журнал.

couriermlm

Настраивает, поддерживает и управляет списками рассылки.

courierperlfilter

Простой фильтр, написанный на Perl.

courierpop3d

POP3 сервер Courier.

courierpop3login

Читает POP3 ID пользователя и пароль и помещает их в модули аутентификации.

couriertcpd

Принимает входяшие сетевые соединения и запускает другие программы Courier после создания каждого сетевого соединения.

couriertls

Используется приложениями для шифрования сетевого соединения, используя SSL/TLS.

dotforward

Модуль совместимости, который читает перенаправленные инструкции в $HOME/.forward.

dupfilter

Фильтр, который пытается блокировать ненужную почту, пытаясь определить многочисленные копии одного и того же сообщения.

esmtpd

Контролирующий скрипт для courieresmtpd.

esmtpd-msa

Контролирующий скрипт для courieresmtpd, но добавляет порт 587 подачи почты для протокола MSA.

filterctl

Устанавливает или снимает глобальные почтовые фильтры.

imapd

Сервер Courier-IMAP.

lockmail

Это утилита для блокирования файлов mailbox.

mailbot

Знающая MIME утилита автоответа.

maildiracl

Управляет списком контроля доступа.

maildirkw

Изменяет Courier-IMAP-совместимые ключевые слова сообщений maildir.

maildirmake

Создает почтовые каталоги.

maildrop

Замена локального агента пересылки почты, который включает язык фильтрации почты.

mailq

Отображает список всех сообщений, которые еще не были отправлены.

makeacceptmailfor

Строит список доменов для приема почты из каталога /etc/courier/esmtpacceptmailfor.dir.

makealiases

Строит базу данных псевдонимов из одного или более обычных текстовых исходных файлов.

makedat

Утилита для создания файлов GDBM или DB из обычных текстовых файлов.

makehosteddomains

Перестраивает содержимое базы данных hosteddomains из содержимого /tools/etc/courier/hosteddomains.

makemime

Создает MIME-фоматированные сообщения из одного или более файлов.

makepercentrelay

Строит список %-переключаемых доменов из каталога percentrelay.dir.

makesmtpaccess

Строит ESMTP-файлы доступа к серверу из каталога /etc/courier/smtpaccess.

makesmtpaccess-msa

Строит ESMTP-файлы доступа к серверу из каталога /etc/courier/smtpaccess. Этот esmtp-список предназначен для протокола MSA.

makeuserdb

Строит базу данных пользователь/пароль из содержимого /tools/etc/courier/userdb.

mimegpg

Подписывает, шифрует или дешифрует MIME-форматированные почтовые сообщения, используя GnuPG.

mkesmtpdcert

Создает защищенный SMTP-тестовый сертификат.

mkimapdcert

Создает защищенный IMAP-тестовый сертификат.

mkpop3dcert

Создает защищенный POP3-тестовый сертификат.

pop3d

Скрипт-обертка для couriertcpd для запуска и остановки сервиса POP3.

pop3d-ssl

Скрипт-обертка для couriertcpd для запуска и остановки POP3 через сервис SSL.

reformail

Читает сообщение со стандартного ввода, форматирует его некоторым способом и записывает сообщение на стандартный вывод.

reformime

Утилита для переформатирования MIME-сообщений.

sendmail

Читает почтовое сообщение и пересылает его получателю.

submit

Представляет сообщения Courier для обработки.

testmxlookup

Выводит имена и IP-адреса почтовых переключателей, которые получают почту для домена.

userdb

Скрипт для индивидуального манипулирования содержанием /tools/etc/courier/userdb.

userdbpw

Читает одиночную строку текста со стандартного ввода, шифрует ее и печатает шифрованный результат на стандартный вывод.

Последнее обновление 2005-03-14 04:10:36 -0700.

Поиск

 

Найди своих коллег!