9. Настройка серверов
9.1 Как мне запустить
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 &
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-сервер?.
Три шага.
- Поместите
в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
.
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 Содержание