Установка почтового сервера Qmail
Qmail - современная альтернатива известному транспортному агенту системы электронной почты - Sendmail. Автором qmail является профессор математики Университета Иллинойс, Чикаго, D.J. Bernstein. Qmail - безопасная, надежная, эффективная, простая система.
Безопасность транспортного агента - не самоцель, но абсолютное требование и qmail полному праву претендует на статус безопасной системы. Несколько лет назад был установлен призовой фонд в $1000 для того, кто сможет опровергнуть подобное заявление.
Идеология qmail гарантирует безусловную сохранность всех почтовых сообщений, принятых системой. Qmail поддерживает новый, супернадежный формат Maildir для хранения входящих почтовых сообщений. Использование данного формата позволяет сохранять целостность почтовых сообщений даже в случае повреждения системы в период доставки почты. Пользователи имеют возможность безопасно читать свою почту, используя NFS и несколько NFS-клиентов могут отправлять почту им в то же самое время.
Эффективность выражается в способности qmail обрабатывать огромное количество почтовых сообщений, что подтверждается соответствующими тестами.
Qmail значительно компактнее других транспортных агентов, что практически не отражается на его возможностях. Qmail распространяется бесплатно, и сейчас Вы можете свободно получить версию qmail-1.03.
На сегодняшний момент qmail уже достаточно широко используется в
качестве основной почтовой системы (можно привести в качестве примеров
Hotmail.com, Yahoo! mail, Address.com и т.д.).
(С сайта http://www.ru.qmail.org/)
Порядок установки, и исходники также можно взять с этого сайта, но все таки опишу установку со своей точки зрения.
Для установки потребуется скачать следующие файлы:
netqmail-1.05.tar.gz
- qmail версии 1.03 + патчи, добавляющие новые возможности и исправляющие
ошибку с переменной errno, появляющуюся при компиляции на системах с новой
версией glibc (например RedHat 9).
ucspi-tcp_0.88.orig.tar.gz
- тулза, которая будет висеть на 25 порту и позволяющая в зависимости от
ip адреса подключения менять переменную окружения для этого подключения.
Нужно для того чтобы поиметь открытый релей ТОЛЬКО для своей сетки.
checkpassword-0.90.tar.gz
- будет проверять пароль при POP3 подключениях.
Итак все по порядку.
- 1. Подготовка
- Скачиваем все три файла.
- Распаковываем netqmail-1.05.tar.gz например в домашний каталог или
/tmp. В результате получаем папку /tmp/netqmail-1.05
- Заходим в нее и запускаем скрипт ./collate.sh Этот скрипт
распакует исходники qmail-1.03 и автоматом применит все нужные патчи. В
результате получаем еще один каталог
/tmp/netqmail-1.05/netqmail-1.05
- Точно также распаковываем ucspi-tcp_0.88.orig.tar.gz и
checkpassword-0.90.tar.gz На них так же нужно наложить патч для
исправления ошибки компиляции.
- Копируем патч
/tmp/netqmail-1.05/other-patches/checkpassword-0.90.errno.patch в
/tmp/checkpassword-0.90
- Применяем патч. находясь в директории с исходниками checkpassword:
patch -p1 < ./checkpassword-0.90.errno.patch
- Также переписываем а затем применяем все три патча для ucspi-tcp.
- Создаем папку /var/qmail (все остальное делаем из-под root
- В исходниках qmail открываем редактором (например в mc по F4) файл
INSTALL.ids. копируем из него строки с командами для нашей системы:
Linux. Закрываем его и создаем новый файл touch /tmp/1234.
Открываем его для редактированя, вставляем скопированные строки, убираем
знаки решетки, закрываем, делаем исполняемым и запускаем. В результате в
систему добавится одна группа и несколько пользователей, необходимых для
работы qmail.
- Теперь приступаем к компиляции: Ззходим в папку с исходниками qmail и делаем make setup checkПосле этого все должно скомпилироваться, и установится в папку /var/qmail
- Для начальной инициализации настроек из папки исходников делаем ./config-fast имя_нашего_хоста
- Создание алиасов. Переходим в каталог /var/qmail/alias
Делаем touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 .qmail* - Почтовые ящики и рабочие окружения. Переходим в паку /var/qmail/bin и делаем ./maildirmake $HOME/Maildir это создаст структуру каталогов, необходимых для работы с почтой в домашней директории root, а после чего echo ./Maildir/ > ~/.qmail
- Копируем каталог /root/Maildir и файл /root/.qmail в каталог /etc/skel это позволит автоматом создавать все необходимые настройки при добавлении нового пользователя.
- Добавляем в файл /etc/skel/.bash_profile следующие
строки
MAILDIR=$HOME/Maildir
MAILTMP=$HOME/Mailtmp
MAIL=$HOME/Mailbox
export MAIL MAILDIR MAILTMP - Как запускать Qmail? Делаем: cp /var/qmail/boot/home
/var/qmail/
mv /var/qmail/home /var/qmail/rc
Меняем в /var/qmail/rc строку qmail-start ./Mailbox splogger qmail на qmail-start ./Maildir splogger qmail и запихните строчку csh -cf '/var/qmail/rc' в /etc/rc.d/rc.local. Это обеспечит автоматический запуск qmail при запуске системы. - Удаление sendmail. Если в системе остались остатки от старой
почтовой системы, их нужно удалить.
rpm -e --nodeps sendmail или
rpm -e --nodeps postfix
Потом делаем
chmod 0 /usr/lib/sendmail
mv /usr/lib/sendmail /usr/lib/sendmail.bak
mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail - Установка SMTP. На стадии подготовки был распакован и пропатчен
пакет ucspi-tcp. Теперь необходимо его установить. Заходим в папку с его
исходниками и делаем make setup check. После компилирования и
инсталяции создаем файл /etc/tcp.smtp следущего содержания:
127.0.0.1:allow,RELAYCLIENT="" 192.168.0.:allow,RELAYCLIENT="" 192.168.111.:allow,RELAYCLIENT="" :allow
Это говорит о том что при подключении с этих ip адресов (локальная сеть) устанавливается переменная окружения RELAYCLIENT а это в свою очередь разрешает релеить на любые адреса. И напротив последняя строка говорит что подключаться можно с любого хоста интернета, но при этом переменная не устанавливается и почта будет релеиться только для тех доменов, которые явно указаны в /var/qmail/control/rcphosts.
ЕСЛИ ВСТРЕТИТЕ ИНСТРУКЦИЮ ПО НАСТРОЙКЕ QMAIL, ГДЕ НАПИСАНО ЧТО В ЭТОТ ФАЙЛ НУЖНО ПРОПИСАТЬ ВСЕ ДОМЕНЫ: .com, .net, .ru .... НЕ ДЕЛАЙТЕ ЭТОГО. ЭТО ПРЕВРАЩАЕТ ВАШ СЕРВЕР В ОТКРЫТЫЙ РЕЛЕЙ ДЛЯ СПАМЕРОВ.
- Создаем какой нибудь скрипт например /usr/script/mail/tcp следующего
содержания:
killall tcpserver cat /etc/tcp.smtp | tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp (далее все в одну строку) /usr/local/bin/tcpserver -p -H -v -lимя_носта -x /etc/tcp.smtp.cdb -H -v 0 25 /var/qmail/bin/qmail-smtpd/bin/checkpassword /usr/bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 &
Это позволит не парится каждый раз с двоичной базой для tcpserver и автоматом запускает его на выполнение. - Установка POP3. Устанавливаем checkpassword запустив из каталога с
исходниками make setup check Создаем в папке /etc/xinetd.d/ файл
qmail-pop следующего содержания:
service pop3 { disable = no socket_type = stream wait = no user = root server = /var/qmail/bin/qmail-popup server_args = ls.water.udmlink.ru /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir log_on_success += DURATION USERID log_on_failure += USERID nice = 10 only_from = 127.0.0.1 192.168.0.0/24 192.168.111.0/24 }
и перезапускаем xinetd: service xinetd restart - теперь можно проверить работу сервисов. Приконектимся телнетом: telnet localhost 25 - для проверки smtp и telnet localhost 110 для проверки POP3. Если все заработало и сервисы не рефузят соединения, то можно радоваться жизни: у нас все получилось. Осталось только настроить файрвол, завести пользователей, и может быть сделать несколько полезняшек, которые будут описаны ниже.
2. Установка Qmail
Другие документы по Qmail:
Qmail-HOWTO
Жизнь с qmail