Eu tenho as regras do iptables abaixo para encaminhar o tráfego ssh recebido na porta 2222 para uma máquina virtual em execução em uma rede vmware "vmnet" no mesmo host.
192.168.1.1 192.168.1.40
+---------+ +------+ +-----------------+
| network |---->| host |__ | virtual machine |
+---------+ +------+ \\__+-----------------+
192.168.2.1 \_____192.168.2.22
No auth.log da máquina virtual, o endereço IP de entrada para logons remotos é sempre o IP do host que encaminhou os pacotes. Como preservar as informações IP remotas?
*filter
:INPUT ACCEPT [593178:45807398]
:FORWARD ACCEPT [881:158378]
:OUTPUT ACCEPT [859348:1232593358]
-A FORWARD -d 192.168.2.22/32 -o vmnet99 -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [943:138565]
:INPUT ACCEPT [658:122878]
:OUTPUT ACCEPT [3266:229178]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.2.22:22
-A POSTROUTING -j MASQUERADE
COMMIT
-A POSTROUTING -o vmnet99 -j SNAT --to-source 192.168.1.40