LINUX.ORG.RU
ФорумAdmin

qmail, smtp, access


0

0

Установил qmail на RedHat 7.3, его же ядро:

Linux my.ru 2.4.18-27.7.x #1 Fri Mar 14 06:44:53 EST 2003 i686 unknown

Настроил xinetd:

$cat /etc/xinetd/smtp
service smtp
{
flags = NAMEINARGS
socket_type = stream
wait = no
user = qmaild
server = /usr/sbin/tcpd
server_args = /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpd
log_on_failure += HOST ATTEMPT
log_on_success += PID HOST EXIT DURATION
}

Kак везде в интернете пишут, настроил control/rcpthosts и hosts.allow:

tcp-env:127.0.0.1 192.168.1.:setenv=RELAYCLIENT
tcp-env:ALL

Вроде всё работало, пока не поймал на своем smtp спамера.
На 864 спаме убрал из hosts.allow строчку tcp-env:ALL.
Немного подумал, почитал доки, вернул строчку, но урезал
control/rcpthosts:

my.ru
.my.ru

Все замечательно, от спамеров застраховался, письма доставляются
только на my.ru и должны отпраляться из локалки куда угодно.
НО! Письма отправляются только с localhost, а из 192.168.1.
не отправляются. Много думал. Ничего не понимал. Модифицировал
qmail-smtpd, чтобы выводил содержимое environ в
/tmp/qmail-smtpd-environ.log.
Обнаружил следующее:
1. При отправке с localhost имеется строка "RELAYCLIENT=".
2. При отпралении с 192.168.1.x этой строки нету.

Попробовал запускать без помощи tcpd -- строки не было в обоих
случаях. Изучил man tcpd, hosts.allow, hosts_options.
Ничего не нашел.
Сейчас отказался от tcp-env из qmail и пользуюсь tcpserver.
Но я считаю это для себя временным решением. Хотелось бы однородности
и все управление серверами держать на xinetd.

Теперь, господа, прошу вашей помощи.
Почему нету строки "RELAYCLIENT=" в окружении процесса qmail-smtpd, если он запускается с помощью xinetd для внешнего клиента?
Как заставить появиться переменной "RELAYCLIENT=" в окружении процесса?

заведи отдельные smtp для интерфейсоф

# наружный service smtp { disable = no id = smtp-global flags = REUSE NAMEINARGS socket_type = stream protocol = tcp user = qmaild interface = внешний_интерфейс server = /var/qmail/bin/tcp-env server_args = -R /var/qmail/bin/qmail-smtpd wait = no no_access = свой_список }

# внутренний service smtp { disable = no id = smtp-local flags = REUSE NAMEINARGS socket_type = stream protocol = tcp user = qmaild server = /var/qmail/bin/tcp-env server_args = -R /var/qmail/bin/qmail-smtpd wait = no env = RELAYCLIENT= interface = 192.168.0.3 only_from = 192.168.0.0 }

anonymous
()
Ответ на: комментарий от anonymous

To anonymous:
Большое спасибо!

Теперь буду думать, как я облопошился :-( и почему сам не догадался
о разделении интерфейсов и как я умудрился пропустить параметр
interface в конфигурации xinetd :-).
Ну ничё, после подсказки настроение значительно улучшилось!

sergio_nsk
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.