%20%D1%81%20%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BE%D0%BC%20LAN.png)
Никакого внешнего трафика (выхода в Интернет) не будет, весь трафик будет внутренним.
Я пытаюсь добиться того, чтобы 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