Есть почтовый сервер на qmail.
Я раньше с ним не сталкивался, все почтовики делал на postfix. А тут столкнулся с проблемой, есть уже работающий сервер. Более 300 доменом, про количество ящиков я молчу...И тут возникла проблема, при отправке почты клиентами настроена smtp авторизация. А для блокировки спама используется rblsmtp.
И получается крайне неприятная ситуация, когда еще до авторизации клиентов с динамическими адресами (от провайдеров домащних) банит по rbl. Соответственно, хотелось бы сделать так, чтоб если прошел авторизацию, то можно почту отправлять через сервер.
Как я понимаю, для приема почты стоит /var/qmail/supervise/smtp/run
С таким содержимым#!/bin/sh
QMAILDUID=`id -u vpopmail`
NOFILESGID=`id -g vpopmail`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
#BLACKLIST=""
BLACKLIST=`cat /var/qmail/control/blacklists`
WHITELIST=`cat /var/qmail/control/whitelists`
SMTPD="/var/qmail/bin/qmail-smtpd"
TCP_CDB="/etc/tcprules.d/tcp.smtp.cdb"
#RBLSMTPD=""
RBLSMTPD="/usr/bin/rblsmtpd"
HOSTNAME=`hostname`
VCHKPW="/home/vpopmail/bin/vchkpw"
REQUIRE_AUTH=0exec /usr/bin/softlimit -m 20000000 \
/usr/bin/tcpserver -v -R -H -l $HOSTNAME -x $TCP_CDB -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
$RBLSMTPD $WHITELIST $BLACKLIST $SMTPD $VCHKPW /bin/true 2>&1
Первым почту принимает через tcpserver как раз /usr/bin/rblsmtpd.Можно ли как то сделать чтоб для авторизованным ползователей он этого не делал?
Да, судя по доккументации, я понял, что нельзя (может читал правда не тем глазом).Есть ли решение для данной проблемы?
Это не для приема почты стоит как ты выразился ...
Это скрипт запуска собственно самого smtp.
Скрипт представляет собой цепочку - конект последовательно передается от первого к последующим, и если гдето конект непроходит по правилам, то цепочка рвется и конект закрывается. Т.е. варианта два исходно: рбл либо есть либо нет.
Думаю суть понятна - пока юзаешь рбл он будет банить по тем спискам которые к нему прикручены.
Советую сделать так: всех известных статик клиентов заводим в ВАЙТЛИСТ, а в качестве БЛЕКЛИСТА используем только адекватные блек листы в которых есть способ самому клиенты сделать делист. Ибо проблема конекта клиента - это проблема клиента, а не твоя. И то что его адреса гдето в листах - это все его проблема. Пусть сам идет и удяляет свои адреса из списков, благо сервак емы ссылку для этого отдает. Как вариант не использовать блеклисты совсем - но это сам понимаешь )
>[оверквотинг удален]
>Думаю суть понятна - пока юзаешь рбл он будет банить по тем
>спискам которые к нему прикручены.
>Советую сделать так: всех известных статик клиентов заводим в ВАЙТЛИСТ, а в
>качестве БЛЕКЛИСТА используем только адекватные блек листы в которых есть способ
>самому клиенты сделать делист. Ибо проблема конекта клиента - это проблема
>клиента, а не твоя. И то что его адреса гдето в
>листах - это все его проблема. Пусть сам идет и удяляет
>свои адреса из списков, благо сервак емы ссылку для этого отдает.
>Как вариант не использовать блеклисты совсем - но это сам понимаешь
>)Спасибо большое. Я и сам к вечеру понедельника включил мозг и понял, что тут как раз идет проверка по порядку
В данный момент порядок такой
exec /usr/bin/softlimit -m 20000000 \
/usr/bin/tcpserver -v -R -H -l $HOSTNAME -x $TCP_CDB -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
$RBLSMTPD $WHITELIST $BLACKLIST $SMTPD $VCHKPW /bin/true 2>&1Т.е. в начале рбл (причем он же, как я понимаю, обрабатывает белый и черный список), а далее smtp с авторизацией.
exec /usr/bin/softlimit -m 20000000 \
/usr/bin/tcpserver -v -R -H -l $HOSTNAME -x $TCP_CDB -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
$SMTPD $VCHKPW $RBLSMTPD $WHITELIST $BLACKLIST /bin/true 2>&1А почемуже такая схема не работает? Тут по идее, не прошла авторизация, проверяем по черному списку.
>[оверквотинг удален]
>
>exec /usr/bin/softlimit -m 20000000 \
> /usr/bin/tcpserver -v -R -H -l $HOSTNAME -x
>$TCP_CDB -c "$MAXSMTPD" \
> -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
>
> $SMTPD $VCHKPW $RBLSMTPD $WHITELIST $BLACKLIST /bin/true 2>&1
>
>А почемуже такая схема не работает? Тут по идее, не прошла авторизация,
>проверяем по черному списку.прочтите чем отличается авторицация smtp auth от авторизации pop before smtp.
в первом случае ищите патчи для кумыла во втором - прочитайте как работает tcp.smtp и буте вам щасте (хинт - переменная RELAYCLIENT)
>[оверквотинг удален]
>>
>> $SMTPD $VCHKPW $RBLSMTPD $WHITELIST $BLACKLIST /bin/true 2>&1
>>
>>А почемуже такая схема не работает? Тут по идее, не прошла авторизация,
>>проверяем по черному списку.
>
>прочтите чем отличается авторицация smtp auth от авторизации pop before smtp.
>в первом случае ищите патчи для кумыла во втором - прочитайте как
>работает tcp.smtp и буте вам щасте (хинт - переменная RELAYCLIENT)
>Всем спасибо. К обеду вторника включился мозг. Во всем разобрался.