словник | перекладачка | факти | тексти | програми
щодо | посилання | новини | гостьова книга | пошук
початок << тексти  << автор  << твір

qmail-HOWTO v2


Автор: Адам МакКенна (Adam McKenna)
Останні зміни: четвер, 27 червня 2001 року 14:59:02 PDT


Переклад українською: Володимир Шелест.
Побажання та зауваження щодо перекладу прошу надсилати за адресою: vshelest@mail.ru
Оригінальна версія документу знаходиться за адресою: http://www.flounder.net/qmail/qmail-howto.html

Цей документ знаходиться на сервері: LinuxIS Consulting, LLC

Ми можемо встановити qmail для вас! Перегляньте нашу web-сторінку по qmail, щоб отримати більше інформації.

Це нова версія документу qmail-HOWTO. В ній зроблено деякі зміни щодо налаштування qmail з новими версіями daemontools та uscp-tcp. Будь ласка, про помилки повідомляйте за адресою adam-howto@flounder.net.

Прошу не надсилати мені загальних запитань щодо роботи з qmail. Надсилайте їх до відповідного списку розсилки. Я відповім тільки на запитання щодо даного HOWTO. Загальні запитання будуть переадресовані до списку розсилки.

Стара версія документу доступна тут. Оригінал завантажувався майже 70,000 разів.

Почитайте, що говорять люди про цей документ.

Цей HOWTO було написано, щоб допомогти людям почати використовувати qmail, цей прекрасний агент передачі пошти, написаний Деном Берстейном (Dan Bernstein). Виконання інструкцій, наведених нижче, зробить інсталяцію qmail більш простою для нових користувачів.

Зміст:

i. . Вступ
ii.  Що необхідно для qmail
iii.  Наша інсталяція qmail
1.  Отримання з мережі та розпакування вихідних файлів.
2.  RTFM (Читайте документацію ;-))
3.  Створення домашнього каталогу qmail
4.  Створення необхідних для запуску qmail користувачів та груп
5.  Компіляція qmail та інших програм.
6.  Конфігурування qmail
7.  Інсталяція аліасів qmail
8.  Налаштування daemontools та створення управляючих каталогів
8a.  Контроль доступу
9.  Знищення sendmail!
10. Створення /var/qmail/rc
10a. Maildir
11. Запуск qmail
12. rblsmtpd
13. RTFM
14. Управляючі файли
15. dot-mail
16. Віртуальні домени
17. Fastforward
18. Кінець
Подяки
Інші сайти
Оплата!

Вступ

Чому qmail?

Для чого потрібно переходити на qmail? Якщо вам доводилося редагувати файл sendmail.cf, то ви знаєте чому. Але є й інші причини для переходу. Ось кілька найбільш загальних:

  • Безпека. qmail - безпечна система. Цю вимогу було підтримано призом в $1000, запропонованим прихильниками qmail. Через рік, коли приз так і не був затребуваний, гроші було передано до фонду вільного програмного забезпечення Free Software Foundation. Ден Берстейн (Dan Bernstein), автор qmail, також пропонує приз $500 для того, хто знайде в недолік в системі безпеки qmail.
  • Швидкість. qmail може опрацьовувати мільйони поштових повідомлень за день навіть на помірній системі. Навіть 486-й комп'ютер може опрацьовувати 100,000 поштових повідомлень за день та відправляти багато повідомлень одночасно.
  • Надійність. qmail записує пошту на диск перед тим, як повідомити про успішне завершення операції. Навіть, якщо під час запису на диск зникне живлення, qmail на втратить пошту.
  • Надзвичайно просте адміністрування віртуальних доменів. Є доповнення до qmail vchkpw, що підтримує віртуальні POP домени. Використовуючи цей пакет, можна створювати поштові скриньки POP3 для користувачів, які не мають облікового запису UNIX в системі.
  • Списки розсилки, що керуються користувачаем ezmlm..
  • Більш інтуїтивно зрозуміле та простіше адміністрування.

Тепер, коли я говорю, що qmail простіша за sendmail, ви повинні мені вірити, не зважаючи на те, що ви звикнете до неї більш, ніж за декілька годин. Незважаючи на те, що документація qmail добре написана й досить повна, це не є послідовні інструкції, як цей HOWTO. Як завжди буває з хорошим програмним забезпеченням, якщо ви бажаєте отримати якнайбільше від qmail, ви повинні зрозуміти теорію роботи цієї системи, зрозуміти, чому деякі речі працюють саме так, як вони працюють. (Щоб мати саме загальне уявлення про те, як компоненти qmail взаємодіють між собою, ознайомтесь з "великою картиною qmail").

Моя перша поряда для вас буде такою: прочитайте всі файли INSTALL та стільки man-файлів, скільки зможете. Вивчення в теорії відмінностей qmail та sendmail - ключова вимога для розуміння роботи qmail.

На відміну від sendmail, qmail розділяє кожну специфічну задачу опрацювання пошти між різними програмами. Кожна програма незалежна. Ця модель має деякі переваги, включаючи простоту використання, швидшу відладку та просту інтергацію з іншими програмами.

Що необхідно для qmail

Навіть, щоб спробувати встановити qmail, такі вимоги повинні бути виконані:

  • Ви повинні керувати операційною системою UNIX чи UNIX-подібною. Повний список операційних систем, на яких може працювати qmail, знаходиться в файлі README, що поставляється разом з дистрибутивом.
  • У вас ПОВИНЕН бути працюючий DNS і ваша система повинна мати DNS-ім'я. qmail не шукає доменні імена в файлі /etc/hosts. Є можливість обійти цю вимогу, використовуючи /var/qmail/control/smtproutes, але в більшості випадків це робити не рекомендується.
  • Ви повинні мати працюючий компілятор. Якщо ваш компілятор не може бути викликаний командою "сс", потрібно відредагувати файли conf-* в каталогах вихідних файлів, щоб повідомити qmail, що використовувати.

Наша інсталяція qmail

qmail - напрочуд гнучка система. Є величезна кількість способів її інсталяції. Однак, якщо ви точно будете слідувати цьому HOWTO, ви будете мати систему, функціонально аналогічну більшості інсталяціям sendmail, включаючи:

  • підтримку для /etc/aliases
  • підтримку для файлів .forward

Цей HOWTO припускає, що:

  • Ви маєте хоч часткові знання UNIX і того, як працює ця система
  • Ви знаєте, як додавати користувачів та налаштовувати файли ініціалізації у вашій конкретній системі
  • Ви користуєтесь GNU tar/ gzip/ binutils та іншими утилітами.

1.Отримання з мережі та розпакування вихідних файлів

Перший крок в інсталяції qmail - отримання з сервера необхідних файлів.

Пакети, які вам будуть потрібні, згідно цього HOWTO:

qmail
доповнення до qmail для коригування -некоректних пакетів DNS
ucspi-tcp
daemontools
fastforward
dot-forward

Звісно, тепер ви повинні почати розпаковувати ваші tar-архіви в підходяще місце (таке як /usr/local/src).

(Тут вам потрібно стати користувачем root.)
root:/usr/local/src# gzip -d qmail-1.03.tar.gz
root:/usr/local/src# tar xf qmail-1.03.tar
Тепер треба перейти до каталога qmail-1.03.

root:/usr/local/src# cd qmail-1.03

RTFM

Тепер, коли ми знаходимося в каталозі qmail, у вас повинно виникнути бажання почати читати файли FAQ та INSTALL.

root:/usr/local/src/qmail-1.03# more INSTALL
root:/usr/local/src/qmail-1.03# more INSTALL.alias
root:/usr/local/src/qmail-1.03# more INSTALL.mbox
і т.д...

Коли ви закінчите читання INSTALL-файлів, читати цей HOWTO далі буде вже не потрібно!

А, ви таки ще читаєте. Це значить, що ви не читали цих файлів. Поганий сисадмін! В куток на 15 хвилин! Завтра без батьків не приходьте! (або щось інше в такому дусі).

Коли ви повернетесь, встановіть латку для коригування некорректинх DNS-пакетів (The oversize DNS packet patch). Ця латка необхідна тому, що деякі провайдери (наприклад, AOL) вирішили ігнорувати документ RFS і вертають DNS-відповіді, що перевищують 512 байтів. Бібліотека розрішення DNS-адрес в qmail точно слідує RFS і тому не приймає нестандартні відповіді. Латка дає можливість qmail коректно їх опрацьовувати.

Щоб встановити латку потрібно зробити наступне (в каталозі вихідних файлів qmail)

root:/usr/local/src/qmail-1.03# patch -p1 < /path/to/qmail-103.patch

3. Створення домашнього каталогу qmail

Перше, що потрібно зробити на нашому шляху до qmail, - створення домашнього каталогу qmail. В ньому буде розташована майже вся система qmail, включаючи конфігураційні файли, чергу та файли програм.

# mkdir /var/qmail

4. Створення необхідних для запуску qmail користувачів та груп

Тепер нам потрібно створити користувачів та групи для роботи різноманітних програм-демонів qmail. Див. INSTALL.ids щодо цих груп. Якщо ви працюєте з дистрибутивом Debian Linux, то потрібні користувачі та групи вже присутні у вашій системі (Який хороший Debian!). Наступні команди спрацюють на більшості дистрибутивів Linux та Solaris:

# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

Примітка: Щоб виконати необхідні дії по створенню користувачів та груп на інших операційних системах або, якщо виникли проблеми з наведеними вище командами, читайте INSTALL.ids.

*** ЗАУВАЖЕННЯ: ЯКЩО ВИ НЕ СТВОРИТЕ ЦИХ КОРИСТУВАЧІВ ТА ГРУПИ, QMAIL ПРАЦЮВАТИ НЕ БУДЕ. ***


5.Компіляція qmail та інших програм

Наступний крок - компіляція програм та створення дерева каталогів qmail.

Введіть:
root:/usr/local/src/qmail-1.03# make setup check

Тепер qmail почне компілюватися. При успішному завершенні буде створено нове дерево каталогів у /var/qmail, яке містить повну систему qmail.

Компіляція інших потрібних програм тривіальна на більшості систем. Наприклад, rblsmtpd:

root:/usr/local/src# tar zxvf daemontools-0.70.tar.gz
root:/usr/local/src# cd daemontools-0.70
root:/usr/local/src/daemontools-0.70# make setup check

Ці команди встановлять daemontools в /usr/local/bin

Зробіть те ж саме для ucspi-tcp, fastforward та dot-forward. Якщо все пройде успішно, то компіляцію програм завершено.

6. Конфігурування qmail

Після компіляції qmail ми бажаємо її сконфігурувати. Найпростіший шлях зробити це:

root:/usr/local/src/qmail-1.03# ./config

Конфігураційний сценарій спробує виконати реверсивний пошук по всим локальним IP-адресам. Якщо це не спрацює, вам потрібно виконати деяку брудну роботу. Читайте INSTALL.ctl. Як тільки всі ваші локальні IP-адерси будуть у вашому DNS, ви не матимете жодних проблем. Однак, ви також можете зробити слідуюче:

root:/usr/local/src/qmail-1.03# ./config-fast your.full.host.name

Це створить потрібні файли.

Після запуску config чи config-fast, ви мабуть побажаєте відредагувати деякі файли в /var/qmail/control, щоб зробити систему qmail придатною для використання. Див. See пункт 14: Управляючі файли, в якому описано деякі найпотрібніші управляючі файли.


Попередження: Якщо ваш конфігураційний сценарій з деяких причин не зміг коректно виконатись, не намагайтесь продовжувати інсталяцію! Якщо ви запустите qmail без належного конфігурування, система не буде працювати коректно, крім пого ви отримаєте відкритий релей!

7. Інсталяція аліасів qmail

root:/usr/local/src/qmail-1.03# cd ~alias
root:/var/qmail/alias# echo adam > .qmail-root
root:/var/qmail/alias# echo bob > .qmail-postmaster
root:/var/qmail/alias# echo bob > .qmail-mailer-daemon

qmail використовує файли для кожного аліасу. Це одна з важливих сторін, якою qmail відрізняється від sendmail. Більш детально це роз'яснено нижче. Зверніть увагу, що для користувача root також використовується аліас. Це тому, що в qmail root не може отримувати пошту. Дійсно, qmail-lspawn одразу завершує роботу й відхиляє доставку поштового повідомлення, якщо UID=0. Щоб отримати більше інформації, читайте INSTALL.alias.

8. Налаштування daemontools та створення управляючих каталогів

Тепер, коли ви вже встановили qmail, вам потрібно настроїти систему так, щоб вона запускалась при старті операційної системи. Щоб забезпечити це, ми використаємо програму svscan, що входить до пакету daemontools.

Якщо ви точно слідували цьому HOWTO, пакет daemontools повинен бути встановлений в /usr/local/bin.

По-перше, нам потрібно створити каталог для служб daemontools. Ден Берстейн рекомендує використовувати /service для цього каталогу. Якщо ви забажаєте використовувати інший каталог - ваша воля. Тільки замініть /service вашим каталогом в наведених нижче рядках.

# mkdir /service
# mkdir /var/qmail/supervise
# mkdir /var/qmail/supervise/qmail-send
# chmod +t /var/qmail/supervise/qmail-send
# mkdir /var/qmail/supervise/qmail-send/log
# mkdir /var/qmail/supervise/qmail-smtpd
# chmod +t /var/qmail/supervise/qmail-smtpd
# mkdir /var/qmail/supervise/qmail-smtpd/log
# mkdir /var/log/qmail
# mkdir /var/log/qmail/qmail-send
# mkdir /var/log/qmail/qmail-smtpd
# chown qmaill /var/log/qmail
# chown qmaill /var/log/qmail/*

Зважаючи на спосіб роботи svscan, ми не будемо створювати ніяких підкаталогів в каталозі /service. Замість цього ми створимо реальні каталоги в /var/qmail/supervise. Потім ми зробимо символьні посилання в /services на ці каталоги.

Наступна річ, яку нам потрібно зробити, це налаштувати запуск svscan кожного разу при старті системи. На своїй системі, я виконую це простим rc-сценарієм:

#!/bin/sh -e
# /etc/init.d/svscan : запускає й зупиняє svscan.
#запозичено з http://Web.InfoAve.Net/~dsill/lwq.html#start-qmail
# змінено Адамом МакКенною (Adam McKenna) 

case "$1" in
    start)
        echo -n "Starting djb services: svscan "
	cd /service
        env - PATH="/usr/local/bin:$PATH" svscan &
        echo $! > /var/run/svscan.pid
        echo "."
        ;;
    stop)
        echo -n "Stopping djb services: svscan "
        kill `cat /var/run/svscan.pid`
        echo -n "services "
        svc -dx /service/*
        echo -n " logging "
        svc -dx /service/*/log
        echo "."
        ;;
    restart|reload|force-reload)
        $0 stop
        $0 start
        ;;
    *)
        echo 'Usage: /etc/init.d/svscan {start|stop|restart}'
        exit 1
esac

exit 0

Якщо ви коректно долучили цей сценарій до init, svscan буде автоматично запускатись при завантаженні системи. Будь ласка звіртесь з документацією на вашу конкретну операційну систему та дистрибутив щодо того, як долучити сценарій до init.

Якщо ви працюєте з Debian GNU/Linux, ви можете використати таку команду (припустимо, що шлях до вашого сценарію /etc/init.d/svscan):

# update-rc.d svscan defaults
Щоб керувати конкретно qmail, можна використати інший простий сценарій:
#!/bin/sh -e
# /etc/init.d/qmail : запускає й зупиняє поштову систему qmail.

# запозичено з http://Web.InfoAve.Net/~dsill/lwq.html#start-qmail
змінено Адамом МакКенною (Adam McKenna) <adam-howto@flounder.net>

PATH=$PATH:/usr/local/bin:/var/qmail/bin

case "$1" in
    start)
        echo -n "Starting mail-transport-agent:" 
        svc -u /var/qmail/supervise/*
        echo -n " qmail"
        svc -u /var/qmail/supervise/*/log
        echo " logging."
        ;;
    stop)
        echo -n "Stopping mail-transport-agent: "
        echo -n " qmail"
        svc -d /var/qmail/supervise/*
        echo " logging"
        svc -d /var/qmail/supervise/*/log
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    reload|force-reload)
        echo "Reloading 'locals' and 'virtualdomains' control files."
	svc -h /var/qmail/supervise/qmail-send
        ;;
    *)
        echo 'Usage: /etc/init.d/qmail {start|stop|restart|reload}'
        exit 1
esac

exit 0

Примітка: На відміну від сценарію svscan, цей сценарій НЕ ПОТРІБНО додавати до сценаріїв init. Він використовується для керування qmail після того, як систему буде запущено через svscan.

Тепер час створити дещо в /var/qmail/supervise. Спочатку змініть активний каталог на /var/qmail/supervise/qmail-send (команда cd).

Тут нам потрібно створити сценарій з іменем run та таким змістом: #!/bin/sh exec /var/qmail/rc Тепер створюємо /var/qmail/supervise/qmail-send/log/run, який повинен містити такі рядки:

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-send

Тепер ми створимо аналогічні файли в /var/qmail/supervise/qmail-smtpd. Для run маємо такий зміст:

#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 \
 /usr/local/bin/tcpserver -H -R -v -p -x /etc/tcp.smtp.cdb \
 -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

Для /log/run:

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd

8a. Контроль доступу

Перед запуском qmail smtpd потрібно виконати деякий контроль доступу. Найпростіше це можна зробити, за допомогою файлів в /etc. Я використовую /etc/tcp.smtp як файл контролю доступу. Якщо вам не потрібно керувати доступом, /etc/tcp.smtp повинен містити лише один рядок:

:allow
Візьміть до уваги, що конфігурація за замовчуванням не допускає НІЯКОЇ транзитної пересилки пошти (релей). Щоб дозволити пересилку пошти від localhost до локальної мережі, потрібно використати щось таке:
127.0.0.1:allow,RELAYCLIENT=""
192.168.1.:allow,RELAYCLIENT=""
:allow

Більше прикладів можна знайти в man tcprules.

Тепер потрібно активувати створені нами правила. tcpserver працює з файлом cdb (база даних). Файл бази даних створюється з текстового файлу /etc/tcp.smtp за допомогою програми tcprules. Виконаємо слідуючу команду:

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

9. Знищення sendmail!

Якщо ви таки дісталися цього місця, це означає, що ви готові назавжди розпрощатися зі старою хиткою системою sendmail. Спочатку визначте pid вашого демону sendmail, а потім знищіть процес!!! В Linux це виглядає так:

# killall -TERM sendmail

Якщо ви не отримали достатню насолоду від цього, перезапустіть sendmail і знову знищіть. Після цього зробіть таке:

# mv /usr/lib/sendmail /usr/lib/sendmail.old
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

# mv /usr/sbin/newaliases /usr/sbin/newaliases.old
# ln -s /var/qmail/bin/newaliases /usr/sbin/newaliases

Примітка: /usr/sbin може бути відсутнім у вашій системі
*** ВАЖЛИВО: Майте на увазі, що sendmail як правило запускається з ініціалізаційних сценаріїв. Потрібно видалити sendmail з цих сценаріїв, щоб при перезавантаженні системи sendmail знову не намагалася стартувати. Звіртесь з документацією на вашу конкретну операційну систему, щоб визначити, як це зробити.

10. Створення /var/qmail/rc

/var/qmail/rc - один з найважливіших файлів qmail. Він потрібен для старту qmail, та більш важливо те, що він говорить qmail, що робити з кожним отриманим поштовим повідомленням. rc містить інструкції для доставки пошти за замовчуванням.

Ми бажаємо, щоб наша система підтримували файли .forward та доставляла пошту в /var/spool/mail. Тому файл var/qmail/rc повинен виглядати таким чином:

#!/bin/sh

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start '|dot-forward .forward
|preline procmail'

10a. Маіldir

Maildir - альтернативний шлях доставки поштових повідомлень. Maildir має такі переваги:

  • Вільний від блокування - це ознає можливість роботи через NFS.
  • Можливість роботи qmail-pop3d, захищеного демона POP3, що поставляється з qmail.
  • Програмам не потрібно мати доступ до /var/spool/mail кожного разу при відкритті поштової скриньки . На системах з багатьма користувачами це може дуже уповільнювати роботу.
  • Вільно підтримується mutt MUA
Є також деякі незручності при використанні Maildir.
  • Для деяких популярних програм, таких як PINE потрібно встановлювати доповнення та проводити перекомпіляцію. Для роботи PINE з фориатом Maildir вам потрібна латка Bloodhounds International c-client Maildir patch.
  • Формат Maildir зберігає кожне поштове повідомлення в окремому файлі. Тому потрібна більша кількість inode, ніж для одного великого spool-файла.

Якщо ви бажаєте налаштувати доставку пошти через Maildir, а не в /var/spool/mail, вам потрібно змінити /var/qmail/rc, щоб він виглядав так:

#!/bin/sh

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start '|dot-forward .forward
./Maildir/

Пам'ятайте, що каталог Maildir повинен належати тому користувачеві, для якого він створюється. якщо ви створюєте Maildir як root, то потрібно використати команду chown для зміни власника. Хороша ідея - включати Maildir до каталогу /etc/skel. тоду Maildir буде автоматично створюватись для кожого нового користувача. Для докладнішої інформації про Maildir читайте INSTALL.maildir.

11. Запуск qmail

Нарешті все на місці і ми готові до запуску qmail. Так як svcan вже запущено, все, що нам потрібно, створити в /services символьні посилання на наші управляючі директорії в /var/qmail/supervice.

# ln -s /var/qmail/supervise/* /service/
Служби qmail завантажаться протягом однієї хвилини. Щоб впевнитись, що вони дійсно запущені, виконайте команду ps:
# ps auxww | grep qmail

Ви повинні побачити запущених задач, щонайменше qmail-send, та деякі процеси supervise. Якщо протягом хвилини ви цього не побачите, можливо щось не так. Вам потрібно повернутися назад і перевірити чи все зроблено як слід.

Як тільки процеси qmail запущено, ви можете протестувати локальну доставку пошти, слідуючи інструкціям з файла TEST.deliver. Ви можете перевірити, що qmail-smtpd працює, запустивши telnet на 25 порту локальної машини.

12. rblsmtpd

Програма rblsmtpd є частиною пакету uscpi-tcp і працює з будь-яким SMTP-сервером, що може бути завантажений під tcpserver (наприклад, qmail чи sendmail). Якщо ви бажаєте блокувати тільки сайти, що входять до списку MAPS RBL, то не потрібні ніякі додаткові параметри, окрім імені SMTP-демона. Щоб блокувати також сайти з інших списків, наприклад Relay Spam Stopper (RSS). потрібно запустити декілька копій rblsmtpd, використовуючи флаг -b з іменем сервера, база даних якого буде використовуватись.

Щоб додати rblsmtpd до вашої інсталяції qmail, вам потрібно зробити декілька змін сценарію run в директорії /var/qmail/supervise/qmail-smtpd:

#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 \
 /usr/local/bin/tcpserver -H -R -v -p -x /etc/tcp.smtp.cdb \
 -u $QMAILDUID -g $NOFILESGID 0 smtp rblsmtpd /var/qmail/bin/qmail-smtpd 2>&1

Якщо ви спостережливі, то звернете увагу, що ми додали rblsmtpd перед процесом qmail-smtpd. Це буде блокувати пошту з адрес, переліених в rbl.maps.vix.com. Якщо потрібно перевіряти також на RSS, додайте ще один rblsmtpd перед qmail-smtpd, наприклад:

#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 \
 /usr/local/bin/tcpserver -H -R -v -p -x /etc/tcp.smtp.cdb \
 -u $QMAILDUID -g $NOFILESGID 0 smtp rblsmtpd rblsmtpd -rrelays.mail-abuse.org /var/qmail/bin/qmail-smtpd 2>&1

Можна додавати стільки процесів rblsmtpd, скільки "чорних списків" ви плануєте переглядати.

13. RTFM

Тепер було б непогано трішки почитати офіційну документацію. Ви, звісно, не збираєтесь цього робити, ви продовжите читати мою нісенітницю. Здається, я маю майже безмежну владу над вами. Це як наркотик.

Гаразд, повернімося до qmail.

14. Управляючі файли

Отже, ми маємо сконфігуровану та запущену систему qmail. Є ще декілька речей, які нам потрібно знати. Спочатку, вам буде приємно знати, що *ШЛЯХ* створення віртуальних хостів в qmail простіший за sendmail.

Подивіться, що є в директорії /var/qmail/control. Це виглядатиме так:

nose:/var/qmail/control$ ls -la
total 8
drwxr-xr-x   2 root     qmail        1024 Sep 29 10:08 .
drwxr-xr-x  10 root     root         1024 Sep 18 02:48 ..
-rw-r--r--   1 root     root           22 Sep 18 02:40 defaultdomain
-rw-r--r--   1 root     root           27 Sep 18 02:40 locals
-rw-r--r--   1 root     root           27 Sep 18 02:40 me
-rw-r--r--   1 root     root           17 Sep 18 02:40 plusdomain
-rw-r--r--   1 root     root           27 Sep 18 02:40 rcpthosts
-rw-------   1 root     root          147 Sep 29 10:08 virtualdomains

Три найважливіші файли (впорядковані за ступенем важливості):

me - (фактично qmail може вижити ТІЛЬКИ з цим файлом. Він містить ім'я вашого локального хосту. Включаючи домен)
rcpthosts - (Всі хости, з яких qmail може отримувати пошту. Всі ваші локальні домени повинні бути занесені до цього файла.)

Важливо: qmail відкидає пошту для доменів, не вказаних в rcpthosts. Всі ваші домени, включаючи віртуальні домени, повинні бути занесені до цього файлу. Крім того, відсутність файла rcpthosts перетворює сервер qmail у відкритий релей (вільне пересилання будь-якої пошти). Робота відкритого релею в інтернет неприпустима. Якщо ви зробите це, ви потрапите до так званих "чорних списків", таких як ORBS чи RSS.
locals - (Всі ваші хости, що є локальними. Тобто, пошта, надіслана на них, повинна доставлятися користувачам з /etc/passwd. )

15. dot-qmail.

dot-qmail - це важлива концепція і я гадаю, що вона заслуговує окремого розділу, навіть в документі HOW-TO. Це тому, що робота з dot-qmail складитиме 95% адміністрування qmail після інсталяції.

dot-qmail говорить програмі qmail-local, що робити з отриманими поштовими повідомленнями. dot-qmail дозволяє переадресовувати пошту, створювати списки поштової розсилки ezmlm (такі як the qmail mailing list), створювати псевдоніми користувачів та викликати зовнішні програми, такі як автовідповідачі.

dot-mail існує в формі файла .qmail в домашньому каталозі користувача. qmail-local читає ці файли і відповідно до них вирішує, що робити з поштовим повідомленням.

Коли qmail не знаходить файла .qmail, вона слідує інструкціям доставки за замовчуванням в /var/qmail/rc (чи в тому сценарії, з якого ви запускаєте qmail). Для докладнішої інформації про команди dot-qmail дивіться man-сторінку для dot-qmail

За допомогою dot-qmail можна створювати аліаси (псевдоніми) користувачів. Якщо мій обліковий запис "adam", то я можу налаштувати файл з іменем .qmail-info, що містить команди для обробки листів, що адресуються на adam-info. З dot-qmail можна створити стільки аліасів, скільки ви забажаєте, ця можливість також може бути використана для створення списків розсилки.

16. Віртуальні домени

Дякуючи dot-qmail, створювати так же просто, як аліаси. Файл virtualdomains має такий формат:

example.com:user

Де user - ім'я користувача, що отримує пошту для цього домену. Спочатку це може здатися досить складним, та на практиці це дуже просто.

Якщо мій обліковий запис adam вказано у virtualdomains як отримувач пошти example.com, то будь-які файли .qmail, створені в моєму домашньому каталозі, будуть працювати як аліаси для example.com, точно так, як і звичайні імена користувачів. Таким чином, qmail-info стає info@example.com.

Та що робити, коли мені потрібно управляти більш, ніж одним віртуальним доменом за допомогою мого облікового запису?


Файл virtualdomains має досить інтуїтивний формат. Замість того, щоб писати ім'я користувача user як адресата, вкажіть user-ext. Наприклад:
example.com:adam-example
example2.com:adam-example2
З цією конфігурацією створення віртуальних хостів таке ж просте, тільки з однією відмінністю: ми додаємо розширення (ext) до імені файла dot-qmail. Тепер info@example.com стане .qmail-example-info, а info@example2.com стане .qmail-example2-info, і т.д.

Якщо .qmail-ext не існує, qmail-local буде намагатися використати деякі .qmail-файли за замовчуванням. Наприклад, якщо розширення foo-bar, qmail-local спробує спочатку .qmail-foo-bar, потім: qmail-foo-default, і врешті-решт: .qmail-default. Якщо ні один з них не існує, поштове повідомлення буде відкинуто. (Виключення: якщо .qmail не існує, то для базових адрес користувачів qmail-local буде застосовувати ті ж самі дії, якщо б цей файл був пустий.) Цей розділ був взятий прямо з man-сторінки по dot-qmail.

17. Fastforward.

Більшість користувачів sendmail добре розуміються з /etc/aliaces. Пакет fastforward від djb теж підтримує цю технологію, плюс ще дещо.

Щоб задіяти /etc/aliaces, помістіть таке в /var/qmail/alias /.qmail-default:

| fastforward -d /etc/aliases.cdb

Вітаємо, /etc/aliases тепер працює. В /etc/aliaces можна додавати аліаси в стилі sendmail разом з аліасами віртуальних доменів (які sendmail не підтримує). Для більш детальної інформаії читайте файл ALIASES, що є серед файлів дистрибутиву fastforward.

18. Кінець

qmail - дуже швидкий, гнучкий та захищений агент передачі пошти. Є дуже багато програм, що працюють з qmail. Я навіть поверхнево не торкнувся можливостей qmail. Зверніться за інформацією до веб-сайту qmail.

Подяки

Я хочу подякувати цим людям:

  • Дену Бернстейну (Dan Bernstein,) за його прекрасні програми
  • Раселові Нельсону (Russell Nelson) за хостинг домашньої сторінки qmail
  • Крістоферові Джонсону (Christopher Johnson) за написання пакету vchkpw
  • Містеру Сему за різні вдосконалення qmail, включаючи maildrop.
  • Наступним людям за зворотній зв'язок, що допомогли зробити цей документ HOW-TO кращим:
    • Matthew Gibbins
    • Scott Schwartz
    • Mark Delany
    • harold@nb.com.[sg]
    • Erik Linder
    • Djalil Chafai
    • Olivier Mueller
    • Peter Rye
    • Harry Hersh
    • Michael Handler
    • Mate Wierdl
    • Dave Sill (Див. Life with Qmail, інший прекрасний довідник по qmail.)
    • Neal Pollack

Інші сайти

Наступні декілька інших сайтів будуть корисні всім, хто займається qmail:

Оплата!

А ви думали, що все це просто так? Добре, не турбуйтесь, я багато не прошу. Якщо цей HOWTO вам допоміг, я буду вдячний за вам за коротенького електронного листа, якщо ж відчуваєте бажання виказати особливу вдячність, щось з мого списку побажань на Buy.com для мене буде класно. БУДЬ ЛАСКА, НЕ ШЛІТЬ МЕНІ ВІТАЛЬНИХ WEB-ЛИСТІВОК! 99% ЇХ - ТІЛЬКИ ПОЖИВА ДЛЯ СПАМЕРІВ!


— Адам
adam@flounder.net

This HOWTO is Copyright (c) 1998-2000 Adam D. McKenna
Permission for redistribution is granted under the OpenContent License.
На початок
На flounder.net
вгору
 
[an error occurred while processing this directive] TopList
© 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:22:01