%20para%20m%C3%A1quina%20LAN.png)
Nenhum tráfego será externo (voltado para a Internet), todo o tráfego será interno.
O que estou tentando alcançar é fazer o RDP do WINDOWS PC 1, fazer com que o tráfego RDP do WINDOWS PC 1 seja mascarado como o endereço IP dos SERVIDORES Linux (10.0.2.5) e, a partir daí, continuar até o destino WINDOWS PC 2.
Aqui está uma imagem para ilustrar melhor:
WINDOWS PC 1 (10.0.2.122)
|
[RDP]
|
V
LINUX SERVER (10.0.2.5)
|
[FW 3389]
|
V
WINDOWS PC 2 (10.0.2.188)
O QUE EU TENTEI
- Habilitei o encaminhamento de porta no kernel:
sysctl net.ipv4.ip_forward=1
- Já tentei várias respostas em muitos fóruns, mas ainda não consegui:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 10.0.2.188:3389
iptables -A FORWARD -p tcp --dport 3389 -d 10.0.2.188 -j ACCEPT
- Observei os contadores do iptables e não vi nenhuma atividade:
watch 'iptables -vL'
Responder1
Bem, depois de ler o seu comentário, parece que esses 2 PCs fazem parte do mesmoRede Local (LAN). Esta é a razão pela qual você não consegue ver o tráfego da sua caixa Linux.
Este tutorialensinará o básico da LAN, mas de forma simples:
- Esses computadores se conhecerão atravésARP;
- Eles "verão" que pertencem à mesma LAN e falarão diretamente
- Se a sua caixa Linux for o gateway, ela será usada apenas para rotear o tráfego que NÃO pertence a essa LAN (fora de
10.0.2.0/24
ou qualquer máscara que você tenha definido)
tl, dr.: Esses computadores estão na mesma LAN, então, para ver algum tráfego da sua máquina Linux (e você não será capaz de "interceptar/mangle", basta ver") você terá que colocar sua nic Linux no modo promisc:ip link set dev eth0 promisc on
OK. Passando todo esse material teórico, quando você estiver fazendo um DNAT
dentro da mesma lan, você terá que fazer o pacote VOLTAR às suas origens "forçadamente" usando um SNAT. Este é um caso especial em que você tem 2 computadores na mesma LAN enquanto faz um NAT.
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 10.0.2.188:3389
iptables -t nat -A POSTROUTING -p tcp -d 10.0.2.188 --dport 3389 -j SNAT --to-source 10.0.2.122
Desta forma você irá garantir que, quando um pacote voltar para sua caixa Linux, um Source nat será feito para10.0.2.122
Outras alternativas:
Faça umProxy RDP com proxy HAe coloque esses hosts em redes separadas. Isso é um exagero (criar um saldo de proxy RDP de membro único), mas é uma alternativa.
Responder2
Solução HAProxy
Cf.Balanceamento de carga dos serviços de área de trabalho remota da Microsoft (RDS)
sudo apt install haproxy
cat << EOF | sudo tee -a /etc/haproxy/haproxy.cfg
frontend ft_rdp
mode tcp
bind :3389 name rdp
timeout client 1h
log global
option tcplog
tcp-request inspect-delay 2s
tcp-request content accept if RDP_COOKIE
default_backend bk_rdp
backend bk_rdp
mode tcp
balance leastconn
persist rdp-cookie
timeout server 1h
timeout connect 4s
log global
option tcp-check
tcp-check connect port 3389 ssl
default-server inter 3s rise 2 fall 3
server windows_pc_2 10.0.2.188:3389 weight 10 verify none
EOF
sudo systemctl restart haproxy
systemctl list-units | grep haproxy