1

У меня есть несколько хостов Ubuntu, каждый с большим количеством виртуальных машин Ubuntu. Одной из виртуальных машин является наш SMTP-сервер. На хосте виртуальной машины SMTP все SMTP-вызовы перенаправляются на виртуальную машину SMTP с использованием rinetd со следующей конфигурацией:

aa.bb.cc.dd   25              172.16.1.5      25
aa.bb.cc.dd   465             172.16.1.5      465
aa.bb.cc.dd   587             172.16.1.5      587
aa.bb.cc.dd   993             172.16.1.5      993

aa.bb.cc.dd - это публичный IP-адрес хоста, на котором находится виртуальная машина SMTP. 172.16.1.5 - внутренний адрес виртуальной машины SMTP.

Моя проблема в том, что я не могу настроить ретрансляцию на SMTP VM, потому что постфиксный сервер на SMTP VM получает каждый вызов с aa.bb.cc.dd в качестве исходного IP-адреса, поэтому я не могу установить какую-либо фильтрацию для ретрансляции, но Я хочу включить ретрансляцию только для пары IP-адресов (для других наших хостов).

Есть ли возможность перенаправлять SMTP-вызовы на виртуальную машину SMTP1, чтобы сохранить IP-адрес отправителя?

1 ответ1

0

Вы должны изучить использование iptables и пакета iptables-persistent - это позволит вам использовать NAT, а не просто «перенаправлять» соединения, создавая новый сокет.

Ваша конфигурация будет выглядеть примерно так:

-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 25  -j DNAT --to-destination 172.16.1.5:25
-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 465 -j DNAT --to-destination 172.16.1.5:465
-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 587 -j DNAT --to-destination 172.16.1.5:587
-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 993 -j DNAT --to-destination 172.16.1.5:993

Вам также необходимо включить ip_forward . Установите следующее в /etc/sysctl.conf:

net.ipv4.ip_forward=1

Ваш хост-компьютер будет работать как маршрутизатор, предоставляя доступ гостям, сохраняя истинный IP-адрес источника.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .