Y a-t-il un inconvénient à installer VNC?

20

Nous avons un Intel NUC dans le département de langue de mon université qui hébergera bientôt une application Web utilisée par les professeurs et les étudiants du département. Le NUC exécute Ubuntu (14.10).

Je suis à l'aise avec le terminal et SSH-ing dans le serveur, mais je trouve que beaucoup de tâches que je dois faire sont tellement plus faciles grâce au partage d'écran (VNC).

J'ai suggéré à notre nouveau directeur technique que nous installions VNC sur ce serveur pour me faciliter la vie (en fait, il avait installé VNC avant son embauche, puis il l'a désinstallé). Cependant, il a répondu avec le commentaire suivant:

Je préférerais de loin ne pas exécuter X ou VNC sur le serveur si nous pouvons nous en tirer. C'est un serveur après tout.

Je ne comprends vraiment pas cette logique. Il n'est pas connecté à un moniteur; le seul accès via SSH. Y a-t-il un inconvénient miraculeux à avoir un accès VNC à un serveur que je ne connais pas?

Évidemment, vous ouvrez un autre port pour un attaquant; réfutation: nous sommes derrière deux pare-feu universitaires (le principal pare-feu du réseau universitaire ainsi que le pare-feu spécial de notre sous-réseau). VNC ne pourrait être accompli qu'à l'intérieur de notre sous-réseau, donc je ne sais pas pourquoi ce serait un problème autre que "c'est un autre paquet à maintenir", et avec le aptgestionnaire de paquets d'Ubuntu qui devient un non-problème.

Quels sont les inconvénients de l'installation de VNC sur un serveur?

Edit : ce n'est pas seulement un serveur web. Il héberge un certain nombre d'autres applications. Je ne sais pas si cela fait une différence.

Chris Cirefice
la source
21
Je ne peux pas imaginer quoi que ce soit que vous pourriez avoir besoin de faire avec un serveur Web qui serait plus facile à utiliser une interface graphique. Vous devriez peut-être également vous demander s'il existe une meilleure façon d'effectuer les tâches que vous souhaitez effectuer.
Michael Hampton
3
Quoi qu'il en soit, c'est l'occasion d'apprendre quelque chose de nouveau.
Michael Hampton
9
Il s'agit de limiter la surface. Avec plus de services, plus peuvent mal tourner et plus peuvent être piratés. Certes, vous avez dit cela, mais cela reste vrai. Personnellement, je déteste VNC. Qu'en est-il du transfert X11 via SSH?
Michael Bailey
1
Alors pourquoi avez-vous besoin d'utiliser ces outils sur un serveur? L'utilisation d'un navigateur sans interface graphique sera inutile dans la plupart des cas - mais vous n'envisageriez pas d'exécuter votre navigateur sur un serveur. Quel que soit l'outil que vous utilisez, installez-le sur votre client et accédez à toutes les données dont vous avez besoin sur le serveur, de préférence via ssh. Peut-être jetez un œil à sshfs
Ben
7
Je ne veux pas poster ceci comme réponse, car il ne répond pas à la question "Quels sont les inconvénients de VNC", mais pour développer le commentaire de @MichaelBailey: Vous n'avez pas besoin de X ou VNC sur le serveur . SSH vers le serveur avec le transfert X permet aux programmes graphiques de s'exécuter réellement sur le serveur tout en affichant les fenêtres sur un serveur X11 exécuté sur votre machine locale . Vous n'avez besoin que de bibliothèques X11 partagées sur le serveur qui ne gaspillent pas les ressources tant que vous n'avez pas de programme en cours d'exécution qui les utilise. OMI un bon compromis.
Gerald Schneider

Réponses:

42

Les raisons sont nombreuses:

  • Surface d'attaque: plus de programmes, en particulier ceux en réseau, signifie plus de possibilités pour quelqu'un de trouver un bogue et d'entrer.

  • Surface défectueuse: comme ci-dessus, mais remplacez «quelqu'un» par « Murphy » et «entrez» par «ruinez votre journée». En fait, "ruiner votre journée" s'applique probablement aussi au point précédent.

  • Efficacité du système: X11, et les environnements GUI que les gens ont tendance à utiliser, consomment une quantité décente de RAM, en particulier sur un système à ressources limitées comme un NUC. Ne pas les exécuter signifie plus de ressources pour effectuer un travail utile.

  • Efficacité de l'opérateur: les GUI ne se prêtent pas aux scripts et autres formes d'automatisation. Cliquer sur des choses semble productif, mais c'est en fait la pire façon de faire quelque chose de profondément technique. Vous trouverez également vos possibilités d'emploi futures très limitées si vous ne pouvez pas créer de script et automatiser votre travail - le secteur s'éloigne des outils d'administration de l'interface graphique. Heck, même le serveur Windows peut être installé sans interface graphique ces jours-ci, et si cela ne vous fait pas penser aux avantages relatifs de ne savoir que cliquer sur des choses, je ne sais vraiment pas quoi vous dire.

womble
la source
1
Dang it womble .. vous m'avez battu au coup de poing comme 30 secondes à nouveau. :) Très bonne réponse.
Tim Brigham
3
Beaucoup de temps passé avec Mavis Beacon dans ma jeunesse doit avoir quelques avantages ... <grin>
womble
6
@ChrisCirefice alors je vous suggère de demander à quelqu'un de faire les choses correctement au lieu de compromettre la sécurité des serveurs de production pour une toute petite facilité d'utilisation.
André Borie
8
C'est un peu dur, André. J'aimerais penser que Chris a une compréhension un peu meilleure des implications de ses préférences maintenant, pas besoin de se battre pour lui.
womble
4
@ChrisCirefice soyez très prudent en pensant à des choses comme "aucune information super précieuse" et "derrière des pare-feu". La valeur des données est dans l'œil du spectateur et le rôle des systèmes peut subtilement changer au fil du temps, de sorte que des données plus précieuses (pour un attaquant) finissent lentement par s'accumuler sur un système que tout le monde pense ne pas valoir. . et puis vous vous retrouvez sur la première page de chaque site d'actualités parce que quelque chose d'embarrassant a été divulgué.
womble
15

Le problème n'est pas VNC - ne vous méprenez pas, VNC est un protocole horrible et a de nombreux défauts (le plus important étant le manque de prise en charge du cryptage, donc tout passe sur le réseau en texte brut), mais ce n'est pas le principal raison pour laquelle son utilisation n'est pas recommandée sur les serveurs.

Vous allez installer VNC pour accéder à quoi, un écran noir? Non, vous vouliez accéder à un environnement de bureau entier, et c'est le vrai problème.

Une fois que vous avez installé tous ces logiciels Gnome de bureau (ou similaires), vous pouvez déjà considérer votre serveur comme compromis, car il reste tellement de bogues à exploiter dans cette horrible et énorme collection d'applications (en plus du fait qu'il n'est pas conçu pour la productivité et utilise une tonne de ressources). L'une des autres raisons pour lesquelles je ne recommande pas ce logiciel et la plupart des environnements de bureau Linux est qu'ils prennent le contrôle de l'ensemble du système presque comme un rootkit et implémentent leurs propres versions de tout (authentification? Plus d'utilisateurs et de groupes solides) , exécutons ce non-sens de Policykit en tant que root qui donne des autorisations basées sur des fichiers XML obscurs et illisibles ... configuration? Qui a besoin de fichiers de configuration lisibles par l'homme? Stockons tout dans des bases de données binaires que vous pouvez "

Essayer d'installer un environnement de bureau Gnome sur mon serveur Archlinux me dit "Taille totale installée: 1370,86 Mio". C'est énorme, imaginez la surface d'attaque supplémentaire que cet ancien serveur aura une fois installé. Les autres environnements de bureau ne sont pas beaucoup mieux.

André Borie
la source
"VNC est un protocole horrible et comporte de nombreux défauts (le plus important étant le manque de cryptage ...)" Dans les situations où l'on avait besoin de VNC, pas d'un environnement de serveur, votre problème est évité en tunnelant vos sessions VNC via ssh.
Keith Reynolds
@KeithReynolds oui, mais il devrait être intégré en particulier lorsque vous le comparez à ses concurrents comme le RDP plus "à jour" qui est chiffré tout de suite (sûr tant que vous faites confiance au certificat du serveur).
André Borie
7
Une philosophie de conception consiste à intégrer toutes les solutions possibles (généralement typiques des développeurs MS), et l'autre consiste à reconstituer ce dont vous avez besoin (généralement typique des développeurs Linux). Concernant VNC: Lorsque la sécurité est nécessaire sur un réseau ssh non approuvé, nécessite un compte et fournit un chiffrement. Lorsque la sécurité n'est pas un problème, le partage de votre bureau ne nécessite pas de compte système ni de surcharge de cryptage.
Keith Reynolds
2
@KeithReynolds un autre problème de VNC est qu'il envoie des bitmaps purs au lieu de commandes de dessin qui sont dessinées côté client comme RDP. Cela rend VNC horrible à utiliser sur autre chose qu'un réseau local tandis que RDP reste bien même sur les réseaux mobiles de merde.
André Borie
9

Évidemment, vous ouvrez un autre port pour un attaquant; réfutation: nous sommes derrière deux pare-feu universitaires (le principal pare-feu du réseau universitaire ainsi que le pare-feu spécial de notre sous-réseau). VNC ne pourrait être accompli qu'à l'intérieur de notre sous-réseau, donc je suis à perte ...

Ne présumez jamais que parce que votre système est derrière un pare-feu, sur un réseau privé, vous n'avez pas à vous soucier de la sécurité. Beaucoup, sinon la plupart, des intrusions réussies sont effectuées par des initiés (employés, étudiants, etc.) qui ont accès auxdits réseaux.

Gène
la source
-8

Essayez ceci pour garder le directeur technique heureux:

  • Installez VNC et le bureau que vous aimez

  • N'installez PAS d'économiseur d'écran d'aucune sorte. Pourquoi? Vous n'avez pas d'écran, et un bureau assis juste là ne consomme pas beaucoup de ressources.

  • Ne transférez PAS le port VNC. Si vous devez l'utiliser, tunnelez le port VNC (5900) via SSH (port 22) et connectez-vous de cette façon.

Ce processus vous obtient le cryptage et toute la sécurité de SSH, qui est déjà ouvert. Vous n'ajoutez aucun problème de sécurité que vous n'aviez pas auparavant.

Je le fais déjà sur mon propre serveur, il n'y a pas de retard supplémentaire notable dans le processus VNC par rapport à une connexion directe.

Paul
la source
9
« Vous n'ajoutez pas de problèmes de sécurité , vous ne pas avoir déjà avant » est même pas près de vrai. L'installation de code supplémentaire - et Andre B ci-dessus vous donne une idée de la quantité de code supplémentaire dont nous parlons - donne plus de possibilités d'escalade de privilèges par les utilisateurs locaux (ssh'ed-in).
MadHatter prend en charge Monica
4
Je suis d'accord que la sécurité est un acte d'équilibrage, mais prétendre que les actes (installation de logiciels supplémentaires) qui font partie du compromis n'ont aucun inconvénient est fallacieux. Dire qu'il y a peu de ssh'ed chez les utilisateurs est également trompeur: l'auteur de la question dit qu'il ssh'es en ce moment, et nous n'avons aucun moyen de savoir combien d'autres le font.
MadHatter prend en charge Monica
4
" OP a déterminé que SSH est suffisamment sécurisé ". La sécurité n'est pas une propriété que vous possédez ou non; c'est un degré de préparation à un modèle de menace donné. Si le modèle de menace est " un accès non autorisé par un utilisateur distant ", alors oui, sshc'est une bonne défense. Si le modèle de menace est " une élévation de privilèges par un utilisateur local autorisé" , il sshn'y a pas de défense, et l'installation de tonnes de code supplémentaire sur le serveur augmente considérablement la surface d'attaque. Womble est un administrateur système expérimenté avec environ soixante-dix mille fois votre réputation sur ce site, donc vous voudrez peut-être aller doucement sur les insultes.
MadHatter prend en charge Monica
1
@paul Non, ma principale préoccupation n'était pas le manque de cryptage de VNC (il peut être atténué en utilisant le tunneling SSH), le principal problème est l'énorme surface d'attaque de tout environnement de bureau.
André Borie
3
@paul: tu as raison, je n'ai absolument aucun sens de l'équilibre. Je ne suis pas Fox News: je n'ai pas besoin d'être "juste et équilibré". Je suis un administrateur système: j'ai besoin d'avoir raison .
womble