J'ai une machine Linux et une machine Windows derrière un routeur qui implémente le NAT (le diagramme peut être exagéré, mais c'était le plaisir de faire ):
Je fais suivre le port RDP (3389) sur le routeur à la machine Linux parce que je veux auditer les connexions RDP. Pour que la machine Linux fasse suivre le trafic RDP, j'ai écrit ces règles iptables :
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination win-box
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
Le port est en écoute sur la machine Windows :
C:\Users\nimmy>netstat -a
Active Connections
Proto Local Address Foreign Address State
(..snip..)
TCP 0.0.0.0:3389 WIN-BOX:0 LISTENING
(..snip..)
Et le port est transféré sur la machine Linux :
# tcpdump port 3389
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
01:33:11.451663 IP shieldsup.grc.com.56387 > linux-box.myapt.lan.ms-wbt-server: Flags [S], seq 94663035, win 8192, options [mss 1460], length 0
01:33:11.451846 IP shieldsup.grc.com.56387 > win-box.myapt.lan.ms-wbt-server: Flags [S], seq 94663035, win 8192, options [mss 1460], length 0
Cependant, je n'obtiens aucune connexion RDP réussie depuis l'extérieur. Le port ne répond même pas :
C:\Users\outside-nimmy>telnet example.com 3389
Connecting To example.com...Could not open connection to the host, on port 3389: Connect failed
Des idées ?
Mise à jour
Par @Zhiqiang Ma, j'ai regardé nf_conntrack
proc pendant une tentative de connexion et voici ce que je vois (192.168.3.1 = linux-box, 192.168.3.5 = win-box) :
# cat /proc/net/nf_conntrack | grep 3389
ipv4 2 tcp 6 118 SYN_SENT src=4.79.142.206 dst=192.168.3.1 sport=43142 dport=3389 packets=6 bytes=264 [UNREPLIED] src=192.168.3.5 dst=4.79.142.206 sport=3389 dport=43142 packets=0 bytes=0 mark=0 secmark=0 zone=0 use=2
2ème mise à jour
J'ai trouvé tcpdump
sur le routeur et il semble que win-box envoie un paquet RST :
21:20:24.767792 IP shieldsup.grc.com.45349 > linux-box.myapt.lan.3389: S 19088743:19088743(0) win 8192 <mss 1460>
21:20:24.768038 IP shieldsup.grc.com.45349 > win-box.myapt.lan.3389: S 19088743:19088743(0) win 8192 <mss 1460>
21:20:24.770674 IP win-box.myapt.lan.3389 > shieldsup.grc.com.45349: R 721745706:721745706(0) ack 755785049 win 0
Pourquoi Windows ferait-il cela ?