Назад | Перейти на главную страницу

iptables Предварительная маршрутизация KVM SMTP

У меня есть хост-машина, которая должна управлять трафиком на порту 25 и маршрутизировать на порт 25 на машине KVM для postfix deamon, как эта схема:

WAN --> (25) HOST_MACHINE -->  (25) KVM_VM_WITH_POSTFIX_DOVECOT

Я уже открыл порт 25 (и другие) и добавил это правило в iptables:

iptables -t nat -A PREROUTING -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

Теперь с моего ноутбука я могу подключиться к серверу postfix и отправлять электронные письма, но машина KVM не может подключиться к другим почтовым серверам (время ожидания соединения истекло).

Итак, я попытался подключиться к другому почтовому серверу с машины KVM с помощью:

telnet mail.example.com 25

С включенным выше правилом iptables я не могу подключиться. Но если я отключу его из цепочки, я могу подключиться к внешнему серверу.

Где я не прав?

Ваш DNAT правило будет маршрутизировать весь TCP-трафик, полученный вашим хостом KVM через порт 25 гостевой системе KVM, независимо от интерфейса или места назначения. Вы должны добавить либо интерфейс, либо IP-адрес назначения (или оба) в этом DNAT:

iptables -t nat -A PREROUTING -i your_pub_if -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

или

iptables -t nat -A PREROUTING -d your_pub_IP/32 -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25

или

iptables -t nat -A PREROUTING -i your_pub_if -d your_pub_IP/32 -p TCP --dport 25 -j DNAT --to-destination 192.168.122.201:25