qmail-smtpd под управлением tcpserver?
inetd ненадежен при высоких нагрузках, отключает службы на 10 минут. Также мне
хотелось бы иметь лучшее, чем сейчас, ведение логов соединений.
Ответ:
ucspi-tcp, (
http://pobox.com/~djb/ucspi-tcp.html )
smtp из /etc/inetd.conf,
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 &
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.
Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver,
как в вопросе
Как мне запустить qmail-smtpd под управлением tcpserver? и tcpserver разрешил этим клиентам релей, смотрите вопрос
Как мне разрешить отдельным пользователям отсылать сообщения через мой SMTP-сервер?.
Три шага.
fixme:fixup
в /var/qmail/control/virtualdomains, и скажите qmail прочесть его
как в вопросе
Как мне сказать qmail перечитать locals и virtualdomains?.
| 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"
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.
Я слышал об ETRN и AutoTURN.
Ответ:
Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver,
смотрите вопрос
Как мне запустить qmail-smtpd под управлением tcpserver?.
Установите serialmail (
http://pobox.com/~djb/serialmail.html и читайте
/usr/local/doc/serialmail/AUTOTURN.
AutoTURN работает с клиентами, которые умеют посылать команду ETRN. Он также работает с клиентами, которые не посылают ETRN.
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 для более подробной информации.
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? для большей информации.
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 Вашей системы. Не забудьте о заключительной &. Новый
сервис стартует после перегрузки системы.
Этот ответ подразумевает, что Вы запускаете qmail-smtpd под управлением tcpserver
( как это сделать смотрите в вопросе
Как мне запустить qmail-smtpd под управлением tcpserver? ) используется tcpserver 0.84 или выше. Все сообщения о входящих соединениях tcpserver
будут посылаться в syslog.
Только вставьте recordio перед qmail-smtpd. Трафик SMTP будет посылаться
в syslog.