Encaminhar porta da conexão externa para um computador na LAN (Ubuntu-iptables)

1

Eu tenho um problema, não consigo me conectar de fora da minha LAN a um computador Windows usando o Remote Desktop.

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

Estou tentando vários 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: sem cadeia / alvo / 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 eu estou perdendo?

Obrigado antecipadamente.

    
por Gabriel 13.10.2015 / 17:08

2 respostas

1

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 em seu terceiro exemplo) reescreve o endereço de destino do pacote quando ele entra. A segunda regra permite que o novo pacote reescrito seja encaminhado.

Eu removi todas as referências da interface de entrada, pois suponho que você queira que ele funcione mesmo se você estiver atrás do roteador (apenas por uma questão de consistência)

    
por 13.10.2015 / 17:43
0
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
    
por 13.10.2015 / 23:29