У меня проблема с SMTP в моем контейнере OpenVZ.
Я создал контейнер OpenVZ от Proxmox на выделенном сервере в OVH. Этот контейнер будет служить почтовым сервером. Итак, я создаю правила "материнского сервера" для передачи портов в контейнер (IP: 192.168.0.100):
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 192.168.0.100:25
iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 192.168.0.100:587
iptables -t nat -A PREROUTING -p tcp --dport 110 -j DNAT --to-destination 192.168.0.100:110
iptables -t nat -A PREROUTING -p tcp --dport 143 -j DNAT --to-destination 192.168.0.100:143
iptables -t nat -A PREROUTING -p tcp --dport 995 -j DNAT --to-destination 192.168.0.100:995
iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to-destination 192.168.0.100:993
iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
Я могу получать письма, но не могу отправлять. Могу отправлять только на локальный домен - для теста использую calcparty.com.
В /etc/postfix/main.cf я установил:
inet_interfaces = all
Я могу сделать telnet localhost 25, но не могу сделать telnet smtp.gmail.com. С "материнского сервера" могу сделать telnet smtp.gmail.com 25.
Что я делаю не так?
root@mail:~# telnet smtp.gmail.com 25
Trying 64.233.166.108...
Trying 64.233.166.109...
Trying 2a00:1450:400c:c09::6d...
telnet: Unable to connect to remote host: Connection timed out
Файл - /etc/resolv.conf:
search mail.calcparty.com
nameserver 8.8.4.4
nameserver 8.8.8.8
nameserver 213.186.33.99
Правило маскарада неверно:
iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
Он говорит, что пакеты идут вне интерфейс vmbr0 и из 192.168.0.0/24 следует замаскировать.
Но никакие пакеты никогда не будут соответствовать этому, потому что они не идут вне интерфейс vmbr0! Вместо этого они выходят из вашего физический интерфейс.
Измените это, чтобы вместо этого относиться к пакетам, выходящим через физический интерфейс, например:
iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o enp3s0f0 -j MASQUERADE