LINUX.ORG.RU
решено ФорумAdmin

Zimbra -> NAT -> open relay

 ,


0

1
Привет сообщество!
Вообщем тестирую будущий почтовый сервер на zimbra, к слову, сервер находится в локальной сети за маршрутизатором.
dns настроил, пробрасываю порт 25 на локальный сервер с зимброй, и... в очереди каждую секунду начинаются сыпаться сотни писем рассылок. При этом нормальные письма принимаются и отсылаются.
прогоняю тест на open relay - оказывается мой сервак стал спам ботом.
Хорошо, начинаю копать интернет, нахожу совет людей, что надо править postconf mynetworks. Грубо говоря, на моем примере это рекомендуют сделать так:
mynetworks = 127.0.0.0/8 192.168.2.0/16
изменить на 
mynetworks = 127.0.0.0/8 192.168.2.255/16
т.е. просто вместо подсети прописать локальный адрес сервака.

Сделал, смотрю очередь - все тихо, начал было радоваться. Проверяю прием и отсылку писем - и тут печаль, при отправке и получении в логах сыпется ошибка:
451 4.3.0 Temporary lookup error
warning: non-null host address bits in «192.168.2.255/16», perhaps you should use «192.168.0.0/16» instead

Судя по всему у меня не едут лыжи, больше дельных советом я что-то не нашел, кроме как не пробрасывать за нат 25 порт %)

Есть у кого нибудь идеи?



пробрасываю порт 25 на локальный сервер с зимброй

Показывай как пробрасывал. Вывод iptables-save в студию.

Такой эффект как у тебя часто наблюдается если руки из жопы и вследствие этого поднят DNAT+SNAT для входящих вместо голимого DNAT для входящих и SNAT для исходящих.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

вот, лишнее удалил

# Generated by iptables-save v1.4.12 on Mon Mar 31 18:17:32 2014
*mangle
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Mon Mar 31 18:17:32 2014
# Generated by iptables-save v1.4.12 on Mon Mar 31 18:17:32 2014
*nat
-A PREROUTING -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.2.255:25
-A OUTPUT -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.2.255
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -d 192.168.2.255/32 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.168.2.1
COMMIT
# Completed on Mon Mar 31 18:17:32 2014
# Generated by iptables-save v1.4.12 on Mon Mar 31 18:17:32 2014
*filter
:INPUT ACCEPT [14333822:13532812546]
:FORWARD ACCEPT [10013556:4910085649]
:OUTPUT ACCEPT [11978565:13430588461]
:MINIUPNPD - [0:0]
-A FORWARD -d 192.168.2.255/32 -i ppp0 -o eth1 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -i eth2 -o ppp0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Mon Mar 31 18:17:32 2014
deny12rus
() автор топика
Ответ на: комментарий от deny12rus

Вот я о чем и говорил, руки из одного места :-)

-A PREROUTING -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.2.255:25
-A OUTPUT -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.2.255
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -d 192.168.2.255/32 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.168.2.1

Теперь смотри - первое правило в этом блоке маскарадит входящие входящие на 25 порт на внутренний сервер, а последнее - опять маскарадит, но на этот раз меняет отправителя пакета на IP раутера, который у тебя считается внутренним хостом по подсети 192.168.0.0/16

Убирай нафиг последнее правило, и всё должно начать работать нормально.

А для полной красоты ещё и предпоследнее поменяй прмиерно на следующее:

-A POSTROUTING -o ppp0 -s ! xx.xx.xx.xx/32 -j MASQUERADE

вместо xx.xx.xx.xx подставь свой внешний IP.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi
Спасибо за разъяснение моей кривожопости :)
Все заработало как и должно работать.
deny12rus
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.