Входящая связь Fordward RDP (порт 3389) с компьютером LAN

Входящая связь Fordward RDP (порт 3389) с компьютером LAN

Никакого внешнего трафика (выхода в Интернет) не будет, весь трафик будет внутренним.

Я пытаюсь добиться того, чтобы RDP-трафик с WINDOWS PC 1 маскировался под IP-адрес Linux SERVERS (10.0.2.5) и оттуда передавался на целевой WINDOWS PC 2.

Вот картинка для дополнительной иллюстрации:

    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)

ЧТО Я ПРОБОВАЛ

  • Я включил переадресацию портов в ядре:sysctl net.ipv4.ip_forward=1
  • Я уже перепробовал несколько ответов со многих форумов, но все равно безрезультатно:

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

  • Я посмотрел счетчики iptables и не увидел никакой активности:watch 'iptables -vL'

решение1

Ну, после прочтения вашего комментария, кажется, что эти два ПК являются частью одного и того жеЛокальная вычислительная сеть (LAN). Вот почему вы не можете видеть трафик с вашего Linux Box.

Этот урокнаучит вас основам LAN, но сделает это простым:

  • Эти компьютеры будут знать друг друга черезАРП;
  • Они «увидят», что принадлежат к одной локальной сети, и будут общаться напрямую.
  • Если ваш Linux-компьютер является шлюзом, он будет использоваться только для маршрутизации трафика, который НЕ принадлежит этой локальной сети (вне 10.0.2.0/24или вне любой другой маски, которую вы определили)

тл,др: Эти компьютеры находятся в одной локальной сети, поэтому, чтобы увидеть трафик с вашего компьютера Linux (и вы не сможете его «перехватить/искажать», а только увидеть»), вам придется перевести вашу сетевую карту Linux в режим promisc:ip link set dev eth0 promisc on

Хорошо. Пропуская все эти теоретические рассуждения, когда вы делаете DNATвнутри той же LAN, вам придется "насильно" вернуть пакет к его источникам с помощью SNAT. Это особый случай, когда у вас есть 2 компьютера в одной LAN при выполнении 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

Таким образом, вы обеспечите, чтобы при возвращении пакета на ваш Linux-компьютер, был выполнен Source NAT10.0.2.122

Другие альтернативы:

ДелатьRDP-прокси с HA-проксии поместить эти хосты в отдельные сети. Это излишество (создание баланса прокси-сервера rdp с одним участником), но это альтернатива.

решение2

Решение HAProxy

Ср.Балансировка нагрузки служб удаленных рабочих столов 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

Связанный контент