Porta de encaminhamento de conexão externa para um computador em LAN (Ubuntu-iptables)

Porta de encaminhamento de conexão externa para um computador em LAN (Ubuntu-iptables)

estou com um problema, não consigo me conectar de fora da minha LAN a um computador Windows usando a Área de Trabalho Remota.

Estou usando o Ubuntu 14.04, iptables.

External Inferface: eth1
LAN Intergace: eth2
Windows IP: 192.168.1.100
Serverlinux LAN IP: 192.168.1.2
Serverlinux External IP: 186.xxx.xxx.xxx

Configuração real do iptables:

iptables-restore <<-EOF
*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT
EOF

Eu tentei muitos exemplos, mas sem sorte.

Exemplo 1:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.100
iptables -t nat -A POSTROUTING -s 192.168.1.100 -p tcp --sport 3389 -j SNAT --to 192.168.1.2
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Exemplo 2:

iptables -A INPUT -i eth1 -p tcp --destination-port 3389 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT 192.168.1.100:3389
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Exemplo 3: Erro (iptables: Nenhuma cadeia/destino/correspondência com esse nome.)

iptables -A PREROUTING -d 186.xxx.xxx.xxx -p tcp -m tcp --dport 3386 -j DNAT --to-destination 192.168.1.100:3399 
iptables -A FORWARD -i eth1 -o eth2 -d 192.168.1.100 -p tcp -m tcp --dport 3399 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

O que estou perdendo?

Desde já, obrigado.

Responder1

O seguinte encaminha a porta 1337 do endereço IP externo para a porta 3389 no endereço IP interno:

iptables -t nat -I PREROUTING -d 186.xxx.xxx.xxx -p tcp --dport 1337 -j DNAT --to-destination 192.168.1.100:3389
iptables -I FORWARD -o eth2 -d 192.168.1.100 -p tcp --dport 3389 -j ACCEPT

A primeira regra (na tabela nat, que você perdeu no terceiro exemplo) reescreve o endereço de destino do pacote quando ele chega. A segunda regra permite que o pacote recém-reescrito seja encaminhado.

Removi todas as referências da interface de entrada, pois presumo que você deseja que ela funcione mesmo se estiver atrás do roteador (apenas por uma questão de consistência)

Responder2

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 1337 -j DNAT --to-destination 192.168.1.100:3389

iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 3389 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

informação relacionada