Bonjour,
je possède un serveur sous Fedora 16 qui me sert de serveur wifi avec portail captif Coovachilli.
J'ai 3 interfaces réseaux :
- em1 : 10.0.0.100/24 (qui sert à aller sur Internet)
- em2 : 192.168.120.1/16 (sur le réseau wifi)
- tun0 : 192.168.120.1/16 (interface virtuelle crée et utilisée par Coovachilli pour dialoguer avec les machines du réseau wifi)
Dans le réseau wifi, je dispose d'un PC en : 192.168.254.250/16, gw 192.168.120.1
Je souhaite pouvoir accéder à ce PC depuis INTERNET via VNC (port 5900).
Je dois faire rediriger les paquets en provenance et à destination du port 5900
vers l'interface em2 uniquement. Sinon, l'utilisation du bureau à distance est pratiquement impossible car beaucoup trop saccadée!
Aussi voilà la solution que j'ai mise en place mais qui ne me convient que partiellement :
- Création d'une nouvelle table de routage :
echo -e "100 \t natvnc" >> /etc/iproute2/rt_tables
- On définit la route spécifique que le port 5900 doit emprunter pour aller au PC :
Ip route add default dev em2 table 100
- On ajoute la règle ip rule ("Les paquets marqués 200 doivent utiliser la table de routage 100") :
Ip rule add fwmark 200 table 100
- Modification des règles iptables :
- Dans la table *nat :
-A PREROUTING -i em1 -p tcp -m tcp -d 10.0.0.100 --dport 5900 -j DNAT --to 192.168.254.250:5900
-A POSTROUTING -p tcp -d 192.168.254.250 --dport 5900 -j SNAT --to-source 192.168.120.1
- Dans la table *mangle on marque les paquets à destination du port 5900 :
-A OUTPUT -p tcp --dport 5900 -j MARK --set-mark 200
- Désactivation de la protection anti ip-spoofing :
dans /etc/sysctl.conf :
net.ipv4.conf.default.rp_filter = 0
Comme je l'ai dit, cette solution fonctionne mais ne me paraît pas "propre" et présente des bugs. En effet, avec la désactivation du rp_filter, quand je ping une machine du réseau wifi, j'ai des "DUP!" qui apparaissent (car je pense que la réponse revient par les interface em2 + tun0). De plus, VNC me retourne souvent un message d'erreur "Too many security failures" quand j’essaie de me connecter au PC, ce qui m'oblige à redémarrer le serveur VNC du poste.
Merci d'avance pour votre aide! 🙂