外部トラフィック(インターネット接続)はなく、すべてのトラフィックは内部トラフィックです。
私が達成したいのは、WINDOWS PC 1でRDPを実行し、WINDOWS PC 1からLinuxサーバーのIPアドレス(10.0.2.5)にRDPトラフィックをなりすまし、そこからターゲット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
あなたのコメントを読んでみると、この2台のコンピュータが同じコンピュータの一部であるようです。LAN(ローカルエリアネットワーク)。これがLinux Boxからのトラフィックが表示されない理由です。
このチュートリアルLANの基本を教えてくれますが、簡単に説明します。
- これらのコンピュータは、以下を介してお互いについて学習します。ARP;
- 彼らは同じLAN上にあることを「確認」して直接話します。
- Linuxボックスがゲートウェイの場合は、そのLANに属していないトラフィックをルーティングするためにのみ使用されます(
10.0.2.0/24
定義したマスクを超えて)
タイ博士:このコンピュータは同じLAN上にあるため、Linuxコンピュータの一部のトラフィックを表示するには(「傍受/中断」することはできず、表示するだけです)、Linuxネットワークカードをpromiscモードに設定する必要があります。ip link set dev eth0 promisc on
わかりました、これらすべての理論的知識に基づいて同じLAN内に内部を作成するときは、DNAT
SNATを使用してパケットを元の場所に「強制」する必要があります。これは、NATを実行するときに同じLANに2台のコンピュータがある特別な場合です。
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 natが強制されます。10.0.2.122
他の選択肢:
何かを作るHAプロキシを含むRDPプロキシそして、これらのホストを別のネットワークに配置します。これは過度の操作です(単一メンバーの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