Главная > Програмное обеспечение > для Internet >
русский перевод F.A.Q. от qmail [2/2]

5.4. Как мне разрешить указанным клиентам использовать мой сервер в качестве
пересыльщика почты (mail relay)? Я вижу, что qmail-smtpd отбрасывает сообщения
для любых хостов, не перечисленных в control/rcpthosts.


Ответ: в три этапа. а первом инсталлируйте пакет tcp-wrappers (вместе с
       hosts_options), распространяющийся отдельно. Во-вторых, измените
       в /etc/inetd.conf строчку с qmail-smtpd на

smtpd stream tcp nowait qmaild /usr/local/bin/tcpd /var/qmail/bin/tcp-env
/var/qmail/bin/qmail-smtpd

       (все на одной строке) и пошлите inetd HUP. аконец, в файл hosts.allow
       для tcpd добавьте строку, делающую для указанных клиентов пустую строку
       значением переменной среды RELAYCLIENT:

tcp-env: 1.2.3.4, 1.2.3.5: setenv = RELAYCLIENT

       где 1.2.3.4 и 1.2.3.5 - IP-адреса клиентов. qmail-smtpd игнорирует
       control/rcpthosts, если установлена эта переменная (Он также добавляет
       RELAYCLIENT ко каждому служебному адресу получателя (envelope recipient
       address) (***Я не знаю как адекватно перевести это на русский*** - А.М.)
       В вопросе 5.5. приведены примеры использования такого поведения)

       Если Вы используете tcpserver версии 0.80 или выше, то вместо этого Вам
       следует создать файл /etc/tcp.smtp, содержащий

1.2.3.6:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""

       Эти строчки разрешат соединение клиентам с IP адресами 1.2.3.6 и 127.*.
       (Прим. Будьте внимательны с синтаксисом: строки должна кончаться <CR>,
       осторожнее с пробелами. - А.М.) Выполните

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

       И наконец внесите

-x /etc/tcp.smtp.cdb

       сразу после tcpserver в файле запуска qmail-smtpd


5.5. Как мне исправлять сообщения от неверных клиентов SMTP?

Ответ: три этапа. Во-первых, впишите в ~alias/.qmail-fixup-default строчки

| bouncesaying 'Permission denied' [ "@$HOST" != "@fixme" ]
| qmail-inject -f "$SENDER" -- "$DEFAULT"

       Во-вторых, добавьте

fixme: fixup

       в /var/qmail/control/virtualdomains и пошлите qmail-send сигнал HUP.
       В-третьих, следуйте процедуре, описанной в вопросе 5.4, но установите
       RELAYCLIENT равной "@fixme":

tcp-env: 1.2.3.6, 1.2.3.7: setenv = RELAYCLIENT @fixme

       где 1.2.3.6 и 1.2.3.7 - IP адреса клиентов. Если Вы используете
       tcpserver вместо inetd и tcpd, добавьте в /etc/tcp.smtp

1.2.3.6:allow,RELAYCLIENT="@fixme"
1.2.3.7:allow,RELAYCLINET="@fixme"

       и запустите tcprules как в вопросе 5.4.


5.5. Как мне установить qmail-qmqpd? Мне хотелось бы разрешить быструю
постановку в очередь исходящей почты от авторизованных клиентов.

Ответ: убедитесь, что у Вас инсталлирован tcpserver 0.80 или выше. Создайте
       /etc/qmqp.tcp в формате tcprules для разрешения соединений с
       авторизованных хостов. апример, если постановка в очередь разрешена с
       1.2.3.*, то в /etc/qmqp.tcp внесите

1.2.3.:allow
:deny

       Преобразуйте /etc/qmqp.tcp в /etc/qmqp.cdb:

tcprules /etc/qmqp.cdb /etc/qmqp.tmp < /etc/qmqp.tcp

       аконец, установите

tcpserver -x /etc/qmqp.cdb -u 7770 -g 2108 0 628 /var/qmail/bin/qmail-qmqpd &

       заменив 7770 и 2108 на UID qmaild и GID nofiles. В вопросе 5.1. описаны
       детали исталляции tcpserver.
       (Прим. Кроме этого, Вам, возможно, захочется использовать мнемоническое
       имя сервиса (qmqp), а не его порт (628/tcp). Внесите строчку

qmqp 628/tcp

       в /etc/services, как в вопросе 5.2. Если же вы хотите использовать
       inetd и tcpd вместо tcpserver действуйте как в вопросе 5.4.- А.М.)



6. Конфигурирование пользовательских почтовых программ (MUA) для работы с qmail

6.1. Как мне заставить BSD mail генерировать дату, используя местное время?
Когда я посылаю почту, я бы хотел использовать местное время, а не GMT, т.к.
некоторые MUA не знают как показывать время в часовом поясе получателя.

Ответ: поместите

set sendmail=/var/qmail/bin/datemail

       в ваш .mailrc или системный Mail.rc. Помните, однако, что BSD mail
       небесопасна и ненадежна.


6.2. Как мне заставить pine работать с qmail?

Ответ: поместите

sendmail-path=/usr/lib/sendmail -oem -oi -t

       в /usr/local/lib/pine.conf. (Это будет работать и для sendmail)
       (Прим. в зависимости от особенностей Вашей системы данные файлы
        могут находиться в других местах, будьте внимательны. - А.М.)
       Помните, однако, что pine небезопасен и ненадежен.


6.3. Как мне заставить MH работать с qmail?

Ответ: поместите строчку

postproc: /usr/mh/lib/spost

       в .mh_profile каждого пользователя. (Это будет работать и для sendmail)
       Помните, однако, что MH небезопасен и ненадежен.


6.4. Как мне прекратить зависания Sun'овского dtcm?

Ответ: в dtcm появилась новая программистская ошибка, известная как "ошибка
       закрытия ***выходной части программного канала в дочернем процессе***"
       ("failure to close the output side of the pipe in the child"). а момент
       написания Sun еще не исправил эту ошибку. Мне очень жаль.



7. Управление почтовой системой.

7.1. Как мне остановить qmail-send? Раньше, когда мы имели sendmail, было
очень нетривиально остановить sendmail без риска потерять почту, находящуюся в
доставке. Что я должен делать с qmail-send?

Ответ: просто возьмите и убейте процесс qmail-send. Он остановится правильно.
       Дождитесь появления в логах сообщения "exiting" ("завершение"). Для
       перезапуска qmail запустите /var/qmail/rc также, как он запускается из
       стартовых скриптов Вашей системы с правильными PATH, лимитами ресурсов
       итп.

Вариант: Если qmail под контролем supervise, выполните svc -t /var/run/qmail.
       Процесс supervise убьет qmail, дождется его остановки и перезапустит
       его. Используйте -d вместо -t, если Вы не хотите, чтобы qmail
       перезапустился автоматически.


7.2. Как мне вручную управлять очередью сообщений? Мне бы хотелось, чтобы
qmail попытался доставить все сообщения для удаленных получателей прямо сейчас

Ответ: Пошлите qmail-send сигнал ALRM (или выполните svc -a /var/run/qmail,
       если qmail под управлением supervise)

       Возможно, вам имеет смысл запустить перед этим qmail-tcpok, чтобы
       убедиться, что qmail-remote попробует связаться со всеми получателями.
       Обычно, если несколько раз происходит сбой передачи какого-либо
       сообщения, qmail-remote откладывает его доставку на час.


7.3. Как мне "омолодить" сообщение? Кто-то снова сломал компьютер Эрика, он
будет выключен еще как минимум два дня. Я знаю, что Эрик ожидает получения
важного сообщения, а я уже вижу его в очереди в /var/qmail/queue/mess/15/26902
Оно здесь уже шесть дней, как мне убедиться, что завтра оно не будет отослано
обратно?

Ответ: Просто выполните touch /var/qmail/queue/info/15/26902 (Это единственный
       безопасный способ модификации очереди при запущенном qmail'е)


7.4. Как мне организовать большую сеть? У меня много машин, и я не знаю, с чего
     начать.

Ответ: Сначала выберите имя домена, в котором Ваши пользователи будут получать
       почту. Обычно это кратчайшее имя из доступных Вашему контролю. Если Вы
       управляете именами *.movie.edu, то сможете использовать адреса вроде
       joe@movie.edu.

       Затем выберите компьютер, который будет знать, как поступать с почтой для
       пользователей в movie.edu. Задайте для него имя в DNS:

mailhost.movie.edu. IN A 1.2.3.4
4.3.2.1.in-addr.arpa. IN PTR mailhost.movie.edu.

       (1.2.3.4 - IP адрес для данной машины)

       Далее создайте список машин, где должны быть расположены почтовые ящики
       пользователей. апример, если почта для Боба должна доставляться на его
       рабочую машину, внесите эту машину в список. Каждой из таких машин
       присвойте имя в DNS:

bobhost.movie.edu. IN A 1.2.3.7
7.3.2.1.in-addr.arpa IN PTR bobhost.movie.edu.

       После этого установите qmail на bobhost.movie.edu. При установке по
       умолчанию qmail автоматически будет сконфигурирован для приема сообщений
       для bob@bobhost.movie.edu и доставки их в ~bob/Mailbox. Проделайте это
       для всех машин из списка.

       Установите qmail на mailhost.movie.edu. Добавьте

movie.edu:alias-movie

       в control/virtualdomains на mailhost. Затем установите пересылку
       bob@movie.edu на bob@bobhost.movie.edu, поместив в
       ~alias/.qmail-movie-bob (на mailhost)

bob@bobhost.movie.edu

       Проделайте аналогичную операцию для других пользователей.

       Затем добавьте movie.edu в control/rcpthosts на mailhost.movie.edu,
       теперь qmail будет принимать почту для пользователей домена movie.edu.

       Установите в DNS запись MX для доставки сообщений для movie.edu на
       mailhost:

movie.edu. IN MX 10 mailhost.movie.edu.

       И наконец, поместите movie.edu в control/defaulthost на всех Ваших
       машинах.


7.5. Как мне сделать резервную копию и затем восстановить диск с очередью
сообщений?

Ответ: Вы не можете сделать этого.

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

       Однако, значительно важнее то, что резервное копирование - даже
       дважды в день, - слишком ненадежно для почты. Если жесткие диски
       "умрут", то очень мало потерянных сообщений отыщутся в последней
       резервной копии.

       Существуют несколько способов увеличения надежности почтовых
       серверов. Источники бесперебойного питания дают Вам в случае
       необходимости время на штатную остановку сервера, предохраняя тем
       самым жесткие диски от поломки. Диски с устойчивым состоянием
       (solid-state disks) имеют встроенные аккумуляторы для таких ситуаций.
       RAID-системы позволяют Вам заменять "умершие" диски без потери
       данных.

       (Примечание А.М. -  Механизм, описанный в вопросе 8.2, позволяет
       Вам создать запасной почтовый сервер, который будет получать
       всю почту, проходящую через основной сервер, и откуда ее при
       необходимости можно будет восстановить. Важно лишь подобрать разумное
       время хранения почты на таком запасном сервере.)


7.6. Как мне запустить qmail под управлением supervise? svc выглядит
полезным.

Ответ: Установите daemontools (http://pobox.com/~djb/daemontools.html).
       Создайте каталог /var/run/qmail. Измените строчку

/var/qmail/rc
       на
supervise /var/run/qmail /var/qmail/rc

       в стартовых скриптах Вашей системы. Убедитесь, что supervise
       находится в каталогах, указанных в PATH. Теперь Вы можете
       использовать svc для управления qmail и svstat для проверки,
       запущен ли qmail.


7.7. Как мне отказаться от использования syslog? Он съедает много
процессорного времени и ненадежен.

Ответ: Установите daemontools (http://pobox.com/~djb/daemontools.html).
       Создайте каталог /var/log/qmail, принадлежащий qmaill, c режимом
       доступа 2700. Измените способ запуска qmail в /var/qmail/rc на

qmail-start ./Mailbox /usr/local/bin/accustamp \
 | setuser qmaill /usr/local/bin/cyclog /var/log/qmail &

       Если Вы ведете лог соединений tcpserver'а, создайте отдельный
       каталог /var/log/smtpd и запускайте /var/log/smtpd для tcpserver.
       Вам не следует запускать несколько копий cyclog в одном каталоге.

       По умолчанию cyclog сохраняет 10 автоматически заменяемых (rotated)
       лог-файлов максимум по 100Kb каждый. Для сохранения 20 файлов по 1Mb
       запускайте cyclog -s 1000000 -n 20.



8. Разное.


8.1. Как мне увеличить количество одновременно отправляемых сообщений? По
умолаанию он запускает не более 20 одновременных qmail-remote.

Ответ: Подумайте, сколько одновременных доставок вам требуется. Поместите
       это число в control/concurrencyremote. Перезапустите qmail как в
       вопросе 7.1. Если Ваша система имеет ограничение на используемые
       процессами ресурсы (что очень рекомендуется, - прим. А.М.),
       убедитесь, что максимально допустимое количество дескрипторов по
       крайней мере равно удвоенному кол-ву одновременных доставок плюс 5.
       В противном случае Ваша почта будет без необходимости откладываться в
       моменты, когда почтовая система будет нагружена. Помните, что у
       qmail существует ограничение времени компиляции на кол-во
       одновременных доставок (120 по умолчанию, устанавливается в
       conf-spawn)


8.2. Как мне сохранять копии всех входящих и исходящих сообщений?

Ответ: Установите в extra.h QUEUE_EXTRA равным "Tlog\0" и QUEUE_EXTRALEN
       равным 5. Пересоберите qmail. Поместите в ~alias/.qmail-log строку

./msg_log

       Вы можете использовать QUEUE_EXTRA, например, для сохранения
       идентификационных номеров MESSAGE-ID сообщений: поместите

| awk '/^$/ { exit } /^[mM][eE][sS][sS][aA][gG][eE]-/ { print }'

       в ~alias/.qmail-log.


8.3. Как мне постепенно переключиться с sendmail на qmail? Я подумываю о
переключении всей сети heaven.af.mil на qmail, но, для начала, мне хотелось
бы дать пользователям шанс попробовать qmail без нарушения работы sendmail.
Мы используем NFS.

Ответ: айдите хост в Вашей сети, скажем, pc.heaven.af.mil, на котором не
       запущен SMTP сервер. (Если адрес pc.heaven.af.mil уже использовался,
       то для него в DNS уже должен установлен MX, указывающий на Ваш почтовый
       сервер)

       Создайте в DNS новую запись MX, направляющую почту для
       lists.heaven.af.mil на pc.heaven.af.mil. Установите qmail на
       pc.heaven.af.mil. Замените в конфигурационных файлах qmail'а pc на
       lists. Убедитесь, что документация для qmail и его man pages доступны
       на всех Ваших машинах.

       Теперь скажите Вашим пользователям о qmail. Пользователь может
       перенаправлять почту для joe@heaven.af.mil на joe@lists.heaven.af.mil
       для доставки в ~/Mailbox; он может устанавливать файлы .qmail; он
       может открывать свои списки рассылки на @lists.heaven.af.mil

       Когда Вы будете готовы отказаться от sendmail, вы можете установить
       pc.heaven.af.mil как новый почтовый сервер. Добавьте heaven.af.mil
       в control/locals и измените MX для heaven.af.mil на pc.heaven.af.mil.
       е забудьте оставить lists.heaven.af.mil в control/locals, чтобы
       временные адреса продолжали работать.


Страница 1 2 <<< Предыдущая


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2003 Olexandr Slobodyan.
Сайт создан в системе uCoz