Вперед Return Содержание

9. Настройка серверов

9.1 Как мне запустить qmail-smtpd под управлением tcpserver?

inetd ненадежен при высоких нагрузках, отключает службы на 10 минут. Также мне хотелось бы иметь лучшее, чем сейчас, ведение логов соединений.

Ответ:

  1. Установите пакет ucspi-tcp, ( http://pobox.com/~djb/ucspi-tcp.html )
  2. Удалите строку с smtp из /etc/inetd.conf,
  3. и поместите строку
    tcpserver -v -u 7770 -g 2108 0 smtp /var/qmail/bin/qmail-smtpd \
    2>&1 | /var/qmail/bin/splogger smtpd 3 &
    
    в скрипт загрузки системы. Замените 7770 на пользовательский идентификатор qmaild (qmaild uid), и замените 2108 на идентификатор группы nofiles (nofiles gid). Не забудьте про & в конце строки. Изменения наступят при следующей загрузке системы.

По умолчанию, tcpserver разрешает до 40 одновременных процессов qmail-smtpd. Чтобы увеличить этот предел до 400, используйте tcpserver -c 400. Чтобы следить, кто соединялся и на какой период, запустите (на двух строках)

tcpserver -v -u 7770 -g 2108 0 smtp /var/qmail/bin/qmail-smtpd \
2>&1 | /var/qmail/bin/splogger smtpd 3 &

9.2 Как мне разрешить отдельным пользователям отсылать сообщения через мой SMTP-сервер?

qmail-smtpd возвращает ошибку ``sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)'' (``извините, этого домена нет в моем списке разрешенных для релея хостов (#5.7.1)'') для сообщений к любому домену, который не прописан в /var/qmail/control/rcpthosts.

Ответ:

Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver, смотрите вопрос Как мне запустить qmail-smtpd под управлением tcpserver?.

Создайте /etc/tcp.smtp содержащий

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

для разрешения релея от клиентов с IP-адресами 1.2.3.6 и 127.*.

Выполните

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

Вставьте

-x /etc/tcp.smtp.cdb

после tcpserver в скрипте загрузки системы. Изменения наступят после перегрузки системы.

Если Вы сделает любые изменения в /etc/tcp.smtp, Вы должны будете выполнить

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

снова. Вам не потребуется перегружать tcpserver.

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

Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver, как в вопросе Как мне запустить qmail-smtpd под управлением tcpserver? и tcpserver разрешил этим клиентам релей, смотрите вопрос Как мне разрешить отдельным пользователям отсылать сообщения через мой SMTP-сервер?.

Три шага.

  1. Поместите
    fixme:fixup
    
    в /var/qmail/control/virtualdomains, и скажите qmail прочесть его как в вопросе Как мне сказать qmail перечитать locals и virtualdomains?.
  2. Поместите
    | bouncesaying 'Permission denied' [ "@$HOST" != "@fixme" ]
    | qmail-inject -f "$SENDER" -- "$DEFAULT"
    
    в ~alias/.qmail-fixup-default. Вставьте @fixme в RELAYCLIENT в соответствующих строках /etc/tcp.smtp:
    1.2.3.6:allow,RELAYCLIENT="@fixme"
    
  3. В заключение, выполните
    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    
    чтобы уведомить tcpserver об изменении. Вам не нужно перегружать tcpserver.

Альтернативный способ заключается в использовании экспериментальной программы ofmipd из пакета mess822, http://pobox.com/~djb/mess822.html. ofmipd включает в себя встроенную базу данных перезаписи поля From и является более мощной по возможности перезаписи, чем qmail-inject.

9.4 Как мне слать сообщения с помощью SMTP на авторизовавшийся диалап-хост когда он коннектится к SMTP?

Я слышал об ETRN и AutoTURN.

Ответ:

Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver, смотрите вопрос Как мне запустить qmail-smtpd под управлением tcpserver?.

Установите serialmail ( http://pobox.com/~djb/serialmail.html и читайте /usr/local/doc/serialmail/AUTOTURN.

AutoTURN работает с клиентами, которые умеют посылать команду ETRN. Он также работает с клиентами, которые не посылают ETRN.

9.5 Как мне установить qmail-pop3d?

Мой старый POP-сервер работает с доставкой в mbox; я хотел бы переключиться на доставку в maildir.

Ответ:

Установите ucspi-tcp ( http://pobox.com/~djb/ucspi-tcp.html ) и checkpassword ( http://pobox.com/~djb/checkpwd.html ) Поместите

tcpserver 0 110 /var/qmail/bin/qmail-popup YOURHOST \
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &

(на двух строках) в скрипт загрузки системы; замените YOURHOST на полное доменное имя Вашего хоста. Установите доставку в Maildir для пользователей, кто хочет читать почту через POP. Новый сервис стартует после перегрузки системы.

Замечание по безопасности: Вам следует делать это только в безопасных сетях; в противном случае злоумышленники могут подслушать и украсть пароли.

Есть различные программы, которые могут заменить checkpassword. Смотрите http://pobox.com/~djb/qmail/toaster.html для более подробной информации.

9.6 Как мне установить qmail-qmqpd?

Я хотел бы разрешить быструю постановку в очередь исходящей почты от авторизованных клиентов.

Ответ:

Установите ucspi-tcp, http://pobox.com/~djb/ucspi-tcp.html. Создайте /etc/qmqp.tcp в формате tcprules чтобы разрешить доступ с авторизованных хостов. Например, если организация очереди разрешена для 1.2.3.*:

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 qmaild uid и nofiles gid Вашей системы. Смотрите вопрос Как мне запустить qmail-smtpd под управлением tcpserver? для большей информации.

9.7 Как мне установить qmail-qmtpd?

Установите ucspi-tcp, http://pobox.com/~djb/ucspi-tcp.html. Поместите строку

tcpserver -u 7770 -g 2108 0 209 /var/qmail/bin/qmail-qmtpd &

в скрипт загрузки системы; замените 7770 на qmaild uid и 2108 на nofiles gid Вашей системы. Не забудьте о заключительной &. Новый сервис стартует после перегрузки системы.

9.8 Как мне записывать весь входящий SMTP-трафик?

Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver ( как это сделать смотрите в вопросе Как мне запустить qmail-smtpd под управлением tcpserver? ) используется tcpserver 0.84 или выше. Все сообщения о входящих соединениях tcpserver будут посылаться в syslog.

Только вставьте recordio перед qmail-smtpd. Трафик SMTP будет посылаться в syslog.


Вперед Return Содержание