Échec de l'authentification VNC

8

J'essaie de me connecter à mon serveur vnc fonctionnant sur CentOs à partir d'un ordinateur personnel, derrière un pare-feu. J'ai installé Win7 et Ubuntu sur cette machine. J'ai une erreur:

Échec de la connexion VNC: vncserver trop de défaillances de sécurité

même lorsque je me connecte avec les bonnes informations d'identification (je réinitialise passwd sur CentOs), j'obtiens: échec de l'authentification.

J'observe que je dois attendre une journée entière pour pouvoir me reconnecter.

Est-ce quelque chose que j'essaie en tant que root? Je pense qu'il est également important que je doive me connecter à Centos distant via le port 6050 - aucun autre port ne fonctionne pour moi. Dois-je faire quelque chose avec d'autres ports? Je vois que vncserver écoute sur 5901, 5902 si un autre est ajouté - et je considère que la connexion est établie car de temps en temps (longtemps) l'invite passwd apparaît, ... non?

J'ai créé user1 supplémentaire, mot de passe pour lui à CentOS et à VNC, également user2. Je fais:

service vncserver start

et deux serveurs démarrent, un: 1 et deuxième sur: 2. Lorsque j'essaie de me connecter à vncserverIP: 1, j'obtiens ce qui est décrit ci-dessus, mais lorsque j'essaie de me connecter à vncserverIP: 2, cela indique que l'essai a échoué.

s'il vous plaît aider, que faire?

en outre: comment désactiver ce verrouillage à des fins de test?

4pie0
la source

Réponses:

12

VNC utilise un système de mot de passe distinct. Il ne vérifie pas les mots de passe par rapport à / etc / passwd mais plutôt par rapport à ~ / .vnc / passwd, qui contient un seul mot de passe principal et éventuellement un mot de passe secondaire qui permet uniquement de visualiser l'écran.

Pour définir votre ou vos mots de passe VNC, utilisez la commande vncpasswd . Les mots de passe VNC doivent comprendre entre cinq et huit caractères - les caractères au-delà du huitième sont ignorés en silence. Donc, si vous utilisez VNC sur Internet, choisissez un mot de passe fort et aléatoire , car les attaquants peuvent utiliser des botnets qui ont de nombreuses adresses IP pour contourner le verrouillage tout en déchiffrant votre mot de passe.

Si vous devez utiliser VNC sur Internet, exécutez-le sur un numéro de port choisi au hasard (pas 5900) pour éviter la détection dans les analyses de port qui couvrent uniquement les ports communs. De préférence, tunnelez votre connexion VNC sur SSH pour vous protéger contre les écoutes et les attaques de l'homme du milieu. Si vous procédez ainsi, vous devez définir vncserver pour qu'il n'accepte pas les connexions Internet, désactiver l'authentification par mot de passe uniquement sur le service SSH et utiliser l'authentification par clé publique pour se protéger contre les tentatives courantes de craquage de mot de passe par force brute.

Le redémarrage de vncserver devrait réinitialiser le verrouillage. La page de manuel ne mentionne aucun moyen de désactiver complètement le verrouillage (déjà inadéquat?).

Veuillez vous lever
la source
merci, comme je l'ai dit, j'ai créé des utilisateurs et leur ai défini un mot de passe sur le terminal (passwd) et VNC (vncpasswd) afin que les mots de passe soient déjà définis. mais j'ai choisi des mots de passe de 9 lettres. vous avez dit que VNC ignore alors la dernière lettre, mais le visualiseur VNC l'ignore-t-il également lorsque je mets des mots de passe longs de 9 lettres lors de la connexion? redémarrage par: le service vncserver restart ne supprime pas le verrouillage: il y a toujours un échec d'authentification sans option de connexion. alors, dois-je essayer de me connecter (quand il le permet à nouveau) en utilisant les mots de passe tronqués (ne prendre que les 8 premières lettres) ou dois-je le redéfinir?
4pie0
une autre question: comment se connecter en tant que root? c'est possible? lors de la connexion, on vous demande uniquement l'adresse IP et le mot de passe, alors comment vous connecter en tant que root pour voir la session root?
4pie0
@ cf16: La réponse simple (à "comment se connecter en tant que root?") est d'exécuter vncserver en tant que root. Si vous souhaitez vous connecter à plusieurs comptes d'utilisateurs différents sans avoir à utiliser su ou sudo, vous devez configurer un gestionnaire d'affichage X tel que LightDM.
PleaseStand
J'ai commencé en tant que root, donc cela me dit que des serveurs pour user1 et user2 ont été créés. la demande de mot de passe n'apparaît que lorsque vous essayez IP: 1, lorsque vous essayez de vous connecter à IP: 2, il ne se connecte pas du tout.
4pie0
@ cf16: Essayez IP: 0. Cela devrait se connecter au port 5900.
PleaseStand
0

J'ai eu ce problème de verrouillage VNC. Je l'ai résolu en installant le pare-feu gufw .

H2ONaCl
la source
1
Pouvez-vous m'en dire plus sur la configuration de ce pare-feu? Merci.
zeflex
J'ai également besoin d'une solution pour ce verrouillage VNC
créateur
Installez simplement gufw et ajoutez des entrées pour les ports que vous souhaitez utiliser. Par exemple pour SSH, ajoutez une entrée pour le port 22.
H2ONaCl
0

Ajout aux réponses déjà données:

Vous ne le mentionnez pas explicitement dans votre message, mais la description de votre problème implique que vous avez été bloqué après trop de tentatives de connexion infructueuses. J'ai rencontré ce problème récemment lorsqu'un collègue ne pouvait pas se connecter après avoir essayé un mot de passe incorrect trop de fois. Je suis tombé sur ce post à SOLVEOPTIMIZED qui explique comment le résoudre.

Vous devez définir vos règles de pare-feu pour autoriser les connexions entrantes sur le port utilisé par le serveur VNC. Le serveur VNC utilise le port 5900 + N où N représente chaque nouvelle instance. Supposons donc que votre instance de serveur VNC s'exécute sur le port 5901, vous devez autoriser les connexions entrantes à ce port dans vos paramètres de pare-feu. Vous pouvez trouver les numéros de port pour toutes les instances avec

$ vncserver -l

Après avoir modifié vos règles de pare-feu, il vous suffit d'attendre la fin du délai d'expiration du serveur et vous pourrez vous reconnecter.

Alternativement, si vous ne voulez pas attendre ou si vous ne voulez pas jouer avec vos paramètres de pare-feu, vous pouvez redémarrer le serveur VNC en supprimant toutes ses instances. C'est différent de redémarrer le service comme vous l'avez fait. Vous faites un redémarrage difficile en commençant par chercher le PID de VNC

$ pgrep vnc

puis tuer tous les cas avec

$ kill pid

Assurez-vous de réellement tuer toutes les instances si pgrep renvoie plusieurs PID.

jono3030
la source