У меня есть хост-машина, которая должна управлять трафиком на порту 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