Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2872 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  [résolu] [iptables] forward pour VNC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] [iptables] forward pour VNC

n°659177
nagadoudi
T nagadoudi, rentre ta finette
Posté le 05-04-2005 à 19:23:16  profilanswer
 

Bonjour,
 
je désire utiliser VNC sur le port 5800 (avec un navigateur et Java) depuis l'extérieur vers mon ordi qui se trouve dans un réseau local, derrière un serveur. J'essaie donc d'atteindre mon ordi en passant par le serveur : http://1.2.3.4:5800/ .
 
Pour que le serveur transmette les paquets vers mon ordi, je lui ai donné, entre autres, ces règles iptables :
 

# on accepte de transmettre les connexions du net vers le LAN (si deja etablies)
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
 
# nouvelles connexions net->LAN sur ports prédéfinis
iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW -p tcp --dport 5800 -j ACCEPT
 
*nat
# acces VNC depuis l'universite : on définit quoi forwarder
iptables -t nat -A PREROUTING -p tcp --dport 5800 -i eth1 -j DNAT --to-destination 10.0.0.3:5800


 
Pourtant, cela ne fonctionne pas. Le navigateur me dit "Connexion refusée lors de la tentative de contact de 1.2.3.4:5800".
 
Info :
IP publique du serveur (mdk10) : 1.2.3.4
IP privée de mon ordi : 10.0.0.3
UltraVNC est bien configuré pcq l'accès direct depuis un autre PC du réseau local fonctionne ( http://10.0.0.3:5800/ ).

 
edit : résolu


Message édité par nagadoudi le 07-04-2005 à 22:13:03
mood
Publicité
Posté le 05-04-2005 à 19:23:16  profilanswer
 

n°659214
nobody13
Posté le 05-04-2005 à 20:57:34  profilanswer
 

Tu n'as pas d'autres règles de DROP perdus dans ton script ?
Tu autorises bien le forwarding ?
 
Si oui, postes le résultat de la sortie d'un sniffer que tu auras lancé sur ton firewall :
# tethereal -i any host 1.2.3.4 and host 10.0.0.3
 
Si trop de connections viennent te parasiter la sortie, affines la un peu :
par exemple pour virer les traces SSH
# tethereal -i any host 1.2.3.4 and host 10.0.0.3 and not port 22
 
Ensuite lances ta connection VNC, normalement tu devrais voir ce qui te bloque.
Pour une connection réussie, passant par les 2 interfaces, tu devrais voir tous tes paquets en double.

n°659389
[Albator]
MDK un jour, MDK toujours !
Posté le 06-04-2005 à 11:22:21  profilanswer
 

Il manque une règle SNAT pour les paquets sortants de VNC.

n°659998
nagadoudi
T nagadoudi, rentre ta finette
Posté le 07-04-2005 à 16:25:07  profilanswer
 

Citation :

Tu n'as pas d'autres règles de DROP perdus dans ton script ?


Par défaut, je fais pointer les chaines de la table filter par defaut sur DROP. Mais par après, je les autorise une à une.
 

Citation :

Tu autorises bien le forwarding ?


Oui, avec ces règles :
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW -p tcp --dport 5800 -j ACCEPT
Les tables mangle et nat sont par défaut sur accept.
 

Citation :

Il manque une règle SNAT pour les paquets sortants de VNC.


Comment procéder ? SNAT modifie les paquets pour indiquer une nouvelle IP source : dans quel sens l'utiliser ?
 
Je vais tenter avec le sniffer... :(


Message édité par nagadoudi le 07-04-2005 à 16:29:27
n°660030
nagadoudi
T nagadoudi, rentre ta finette
Posté le 07-04-2005 à 17:13:42  profilanswer
 

Petite expérience : depuis la station 10.0.0.6, je lance une requête HTTP vers le serveur 10.0.0.1:5800. Normalement, iptables devrait rediriger les paquets vers 10.0.0.3 de façon transparente, mais cela ne marche pas.
 
Voici le résultat du sniffer :

# tethereal -i eth0 not port 22
 
Capturing on eth0
  0.000000     10.0.0.6 -> Broadcast    ARP Who has 10.0.0.3?  Tell 10.0.0.6
 
 
  0.000000 216.239.59.99 -> 10.0.0.3     TCP http > 3619 [FIN, ACK] Seq=0 Ack=0 Win=8190 Len=0
  0.001736     10.0.0.3 -> 216.239.59.99 TCP 3619 > http [ACK] Seq=0 Ack=1 Win=64952 Len=0
  2.723826     10.0.0.6 -> Broadcast    ARP Who has 10.0.0.1?  Tell 10.0.0.6
  2.723926     10.0.0.1 -> 10.0.0.6     ARP 10.0.0.1 is at 00:04:ac:e3:fa:55
  2.724805     10.0.0.6 -> 10.0.0.1     TCP 3866 > 5800 [SYN] Seq=0 Ack=0 Win=64240 Len=0 MSS=1460
  2.725017     10.0.0.1 -> 10.0.0.6     TCP [TCP ZeroWindow] 5800 > 3866 [RST, ACK] Seq=0 Ack=0 Win=0 Len=0
  3.133940     10.0.0.6 -> 10.0.0.1     TCP 3866 > 5800 [SYN] Seq=0 Ack=0 Win=64240 Len=0 MSS=1460
  3.134092     10.0.0.1 -> 10.0.0.6     TCP [TCP ZeroWindow] 5800 > 3866 [RST, ACK] Seq=0 Ack=1 Win=0 Len=0
  3.636915     10.0.0.6 -> 10.0.0.1     TCP 3866 > 5800 [SYN] Seq=0 Ack=0 Win=64240 Len=0 MSS=1460
  3.637076     10.0.0.1 -> 10.0.0.6     TCP [TCP ZeroWindow] 5800 > 3866 [RST, ACK] Seq=0 Ack=1 Win=0 Len=0
  6.826898     10.0.0.3 -> 216.239.59.99 TCP 3619 > http [FIN, ACK] Seq=0 Ack=1 Win=64952 Len=0
  6.942066 216.239.59.99 -> 10.0.0.3     TCP http > 3619 [ACK] Seq=1 Ack=1 Win=8190 Len=0
  7.724146     10.0.0.1 -> 10.0.0.6     ARP Who has 10.0.0.6?  Tell 10.0.0.1
  7.724776     10.0.0.6 -> 10.0.0.1     ARP 10.0.0.6 is at 00:e0:18:f1:8e:83


 
Je ne sais pas analyser les résultats. Quelqu'un peut-il m'aider et me dire pourquoi le forwarding des paquets ne se fait pas ?
 
edit: l'IP 216.239.59.99 correspond à Google. Ne me demandez pas qu'est-ce qu'elle vient faire là.


Message édité par nagadoudi le 07-04-2005 à 17:17:22
n°660037
l0ky
Posté le 07-04-2005 à 17:22:33  profilanswer
 

iptables -t nat -A PREROUTING -p tcp --dport 5800 -i eth1 -j DNAT --to-destination 10.0.0.3:5800
 
Question: est ce que les interfaces sont correctes dans tes regles. Si tu as mis -i eth1 dans ta regle et que tu attaques le FW sur l'interfaces eth0 (ou autre)... ca marchera pas


Message édité par l0ky le 07-04-2005 à 17:23:14
n°660232
nagadoudi
T nagadoudi, rentre ta finette
Posté le 07-04-2005 à 22:12:35  profilanswer
 

Il fallait remplacer

iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW -p tcp --dport 5800 -j ACCEPT


par

iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED -p tcp -j ACCEPT


 
A ce stade, on affiche la page de connexion sur le poste client. Pour se connecter, il faut aussi forwarder sur le port 5900 (config par défaut de VNC serveur : port principal=5900, port http=5800) :

iptables -t nat -A PREROUTING -p tcp --dport 5900 -i eth1 -j DNAT --to-destination 10.0.0.3:5900


 
Merci à tous pour votre aide. :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  [résolu] [iptables] forward pour VNC

 

Sujets relatifs
Probleme: "Error: Can't open display" (resolu)[resolu][Carte son Aureon 5.1 Fun] son 5.1 et sortie SPDIF ?
[Résolu]Problème d'accés au routeur depuis Linux[résolu] problème à la compil de vdr
Epson RX 425 et Mandrake 10.1 [résolu][Résolu] Démarrer une applis au démarage:xinitrc oui mais!
[resolu] pb acces fichiers sur app. photo usbLire un flux audio avec MPlayer [résolu]
[Résolu][Debian] Server X[resolu]please HELP urgent ! probleme install mandrake 10.0
Plus de sujets relatifs à : [résolu] [iptables] forward pour VNC


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR