Je décris d'abord l'organisation de mon réseau local. J'ai 2 réseaux (schéma http://take.ms/s3CSy ) :
- 192.168.0.0 / 255.255.255.0, routeur ASUS RT-N65U avec IP interne 192.168.0.1, IP externe statique sans NAT : 1.2.3.4. Routeur exécutant un serveur VPN PPTP, plage d'IP LAN VPN 172.16.0.0/255.255.255.0, IP serveur VPN 172.16.0.1, MTU/MRU 1300. Mon ordinateur portable (ordinateur portable #1) dans ce réseau maintenant.
- 192.168.2.0 / 255.255.255.0, routeur ZyXEL Keenetic 4G avec IP interne 192.168.2.1, IP externe dynamique avec NAT : 10.0.0.1. Tous les clients sont connectés au commutateur Cisco sg200-26p.
Dans le deuxième réseau local, j'ai un serveur web avec Debian Linux et un client VPN PPTP installé. Le client PPTP est connecté au routeur du premier réseau local et obtient l'adresse IP 172.16.0.11. Immédiatement après la connexion, le client PPTP ajoute deux routes :
ip route add 172.16.0.0/24 dev ppp0
ip route add 192.168.0.0/24 dev ppp0
Donc table de route sur le client VPN (serveur Web) :
root@system:~# ip route
default via 192.168.2.1 dev eth0
1.2.3.4 via 192.168.2.1 dev eth0 src 192.168.2.3
172.16.0.0/24 dev ppp0 scope link
172.16.0.1 dev ppp0 proto kernel scope link src 172.16.0.11
192.168.0.0/24 dev ppp0 scope link
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.3
Sur le serveur web, "iptables -L -v -n" montre une table vide.
Table de route sur le serveur VPN (routeur ASUS RT-N65U) :
/home/root # ip route
default via 2.3.4.5 dev ppp0
2.3.4.5 dev ppp0 proto kernel scope link src 1.2.3.4
127.0.0.0/8 dev lo scope link
172.16.0.12 dev ppp10 proto kernel scope link src 172.16.0.1
192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.1
192.168.2.0/24 dev ppp10 scope link
Sur le routeur ASUS RT-N65U, j'ai également activé DynDNS, le domaine home.example.com et deux paramètres de transfert de port :
1. Synology NAS web remote access: Remote port 6667, local IP: 192.168.0.2, local port 5000, Protocol BOTH (TCP & UDP)
2. Web server remote access: Remote port 6668, local IP: 192.168.2.3, local port 80, Protocol BOTH (TCP & UDP)
Lorsque j'essaie d'accéder au serveur Web (URL http_//192.168.2.3:80) à partir de mon ordinateur portable dans le premier réseau local - aucun problème, tout fonctionne comme un charme.
Mais si j'essaie d'accéder depuis un autre ordinateur portable (ordinateur portable #2 sur le schéma) au serveur Web (URL http_//1.2.3.4:6668) - page non trouvée. Si j'essaie d'accéder au Synology - aucun problème.
J'ai installé tcpdump sur le serveur web et capturé des paquets :
- Accès depuis l'ordinateur portable sur le premier réseau, tout semble bon. Fichier PCAP https_//www.dropbox.com/s/pvg5rd4rw5omz9z/fromlan.pcap?dl=0 (remplacer _ par :)
- Accès à partir d'un hôte distant. Je constate que mon serveur web reçoit des paquets SYN, mais ne renvoie pas de paquets ACK au client. Fichier PCAP https_//www.dropbox.com/s/hxfxudtrre12i7s/fromremote.pcap?dl=0 (remplacer _ par :)
Sur le serveur web installé iptstate, qui montre la connexion du serveur distant :
Source Destination Prt State TTL
199.58.86.207:58540 192.168.2.3:80 tcp SYN_RECV 0:00:59
Où est le problème ?
Peut-être qu'il y a un problème de route, les paquets provenant du serveur distant arrivent par la route de la connexion VPN, mais sortent par la route par défaut (par 192.168.2.1) ?