Comunicação RDP de entrada Fordward (Porta 3389) para máquina LAN

Comunicação RDP de entrada Fordward (Porta 3389) para máquina LAN

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/24ou 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 DNATdentro 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

informação relacionada