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
.