Привет нужна помощь с qmail.
Локальные пользователи при попытке отправить почту получают сообщение Bad Reverse DNS.
Подскажите пожалуйста, как указать tcpserver, что бы не производил обратный резолв для локальных пользователей? Хосты всех локальных юзеров прописывать в DNS не хочется.Содержимое tcp.smtp:
127.0.0.1:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT=""
192.168.1.:allow,RELAYCLIENT=""
192.168.2.:allow,RELAYCLIENT=""
:allow,HELOCHECK="."qmail-smtpd запускаю так:
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb \
-u $QMAILDUID -g $NOFILESGID 0 smtp \
sh -c 'test -z "$TCPREMOTEHOST" \
&& echo "451 bad reverse DNS" \
|| exec /var/qmail/bin/qmail-smtpd' 2>&1Заренее благодаою за ответ.
up
>Привет нужна помощь с qmail.
>Локальные пользователи при попытке отправить почту получают сообщение Bad Reverse DNS.
>Подскажите пожалуйста, как указать tcpserver, что бы не производил обратный резолв для
>локальных пользователей? Хосты всех локальных юзеров прописывать в DNS не хочется.
>
>
>Содержимое tcp.smtp:
>127.0.0.1:allow,RELAYCLIENT=""
>192.168.0.:allow,RELAYCLIENT=""
>192.168.1.:allow,RELAYCLIENT=""
>192.168.2.:allow,RELAYCLIENT=""
>:allow,HELOCHECK="."
>
>qmail-smtpd запускаю так:
>#!/bin/sh
>QMAILDUID=`id -u qmaild`
>NOFILESGID=`id -g qmaild`
>exec /usr/local/bin/softlimit -m 2000000 \
> /usr/local/bin/tcpserver -v -p -x
>/etc/tcp.smtp.cdb \
> -u $QMAILDUID -g $NOFILESGID
>0 smtp \
> sh -c 'test -z
>"$TCPREMOTEHOST" \
> && echo "451 bad
>reverse DNS" \
> || exec /var/qmail/bin/qmail-smtpd' 2>&1
>
>Заренее благодаою за ответ.
Ну так в доке к tcpserver'у написано
-p: Paranoid. After looking up the remote host name in DNS, look up the IP addresses in DNS for that host name, and remove the environment variable $TCPREMOTEHOST if none of the addresses match the client's IP address.
-P: (Default.) Not paranoid.
>Ну так в доке к tcpserver'у написано
>-p: Paranoid. After looking up the remote host name in DNS, look
>up the IP addresses in DNS for that host name, and
>remove the environment variable $TCPREMOTEHOST if none of the addresses match
>the client's IP address.
>-P: (Default.) Not paranoid.Спасибо за внимание к моему вопросу!
-P тогда не будет осуществляться проверка на резолвинг и ремоут хосты,
а мне нужно что бы ремоут хосты проверялись, а локальные пользователи подсетей,
(те, что прописаны в tcp.smtp) как RELAYCLIENT:
127.0.0.1:allow,RELAYCLIENT=""
192.168.0.:allow,RELAYCLIENT=""
192.168.1.:allow,RELAYCLIENT=""
192.168.2.:allow,RELAYCLIENT=""
:allow,HELOCHECK="."
не проверялись на резолвинг. Вот в чем загвоздка.
У меня стоит немного другая система (шлюз и почта на разных серверах -> резолвится
шлюзовый адрес, с ним все ок)....
Поэтому просто как идея, а если на почтовом сервере указать в /etc/hosts
твои машины, т.е.
192.168.0.1 comp1
192.168.0.2 comp2
и т.д.
Т.е. чтобы резолвил по твоему hosts файлу. Попробуй! (хотя по большому
счету это залипуха :) )
В свое время в сети видел статейку по этому поводу.
Фокус был в том, что в tcp.smtp файл,
после 192.168.0.:allow,RELAYCLIENT="" дописывалась какая то опция,
которая игнорировала отсутсвие или не соответсвие A/PTR для relayclient.
Обыскал весь инет - хоть убей найти не могу, а по доке к tcpserver не врубаюсь...
>В свое время в сети видел статейку по этому поводу.
>Фокус был в том, что в tcp.smtp файл,
>после 192.168.0.:allow,RELAYCLIENT="" дописывалась какая то опция,
>которая игнорировала отсутсвие или не соответсвие A/PTR для relayclient.
>Обыскал весь инет - хоть убей найти не могу, а по доке
>к tcpserver не врубаюсь...смысл работы скрипта это проверка переменной TCPREMOTEHOST на пустоту
значит надо выставить эту переменную насильно вот так:192.168.0.:allow,RELAYCLIENT="",TCPREMOTEHOST="mydomen.ru"