Всем привет. недавно заменил модемный шлюз на шлюз Linux CentOS+Iptables. Все рассказывать не буду, опишу проблему. У меня в локальной сети стоит почтарь Postfix. В нем есть правило для всей фильтрации permit_mynetworks. а на шлюзе Linux CentOS+Iptables такое правило в фаерволе, для проброса порта
EXT_IP=88.4.6.2 #IP интернет карты
INT_IP=192.168.112.21 #IP локальной сетевой карты
EXT_IF=enp4s0 # Внешний интерфейс.
INT_IF=enp2s0 # Внутренний интерфейс.
MAILIP=192.168.112.1 #IP mail сервера
MAILPORT=80,25,110,995,443 #Пробрасываемый порт на маилсервер
#Пробрасываем порты в локальную сеть на сервер mail
iptables -t nat -A PREROUTING --dst ${EXT_IP} -p tcp -m multiport --dports ${MAILPORT} -j DNAT --to-destination ${MAILIP}
iptables -t nat -A POSTROUTING --dst ${MAILIP} -p tcp -m multiport --dports ${MAILPORT} -j SNAT --to-source ${INT_IP}
iptables -t nat -A OUTPUT --dst ${EXT_IP} -p tcp -m multiport --dports ${MAILPORT} -j DNAT --to-destination ${MAILIP}
iptables -I FORWARD 1 -i ${EXT_IF} -o ${INT_IF} -d ${MAILIP} -p tcp -m tcp -m multiport --dports ${MAILPORT} -j ACCEPT
Привел кусок iptables который относиться к проблеме.
Собственно в логах Postfix теперь входящая почта с внешки определяется локальным IP шлюза, 192.168.112.21. таким образом срабатывает правило permit_mynetworks и мой почтарь работает как openrelay. За выходные 1000 писем в очереди, жесть просто, почта встала.
с iptables знаком недавно, в данный момент нет времени разбираться почему так происходит. Мне нужно что бы ip источника не заменялся на адрес шлюза. Тогда правило permit_mynetworks не будет отрабатывать и openrelay закроется.
Помогите пожалуйста решить проблему
А что конкретно непонятно? Всё работало ровно так, как описывало это правило. Чего именно Вы хотели им добиться - можно только гадать. Возможно, Вам был нужен SNAT в обратном направлении?
А что конкретно непонятно? Всё работало ровно так, как описывало это правило. Чего именно Вы хотели им добиться - можно только гадать. Возможно, Вам был нужен SNAT в обратном направлении?
Ну как я понял, SNAT заменяет адрес источника. DNAT по всей видимости не заменяет. Вот хотел узнать правильно я мыслю?
как я понял, SNAT заменяет адрес источника. DNAT по всей видимости не заменяет. Вот хотел узнать правильно я мыслю?
Как Вам сказать... Правильно, но не с той стороны.
SNAT == source NAT
DNAT == destination NAT
Казалось бы, должно быть очевидно, какой адрес кто из них заменяет, нет?