Comment établir un accès sécurisé aux serveurs en mode distant



Ici, sur Habré, il y a déjà des dizaines d'articles racontant comment les gens ont vécu la transition vers un endroit éloigné, comment ils ont vécu les premiers jours d'un site éloigné, puis comment s'est déroulée la première semaine, etc. Parfois, certains conseils pratiques se glissaient entre la description des émotions. Nous, en tant que personnes ayant 12 ans d'expérience dans l'administration de serveurs distants, avons décidé de parler d'un outil sans lequel le serveur distant se transforme en un événement plutôt dangereux pour votre entreprise. Pourquoi? - Parce que les gens pensent à n'importe quoi (tout d'abord, bien sûr, aux maudites 40 minutes gratuites dans le «zoom»), mais pas à la sécurité. Plus précisément, bien sûr, vous avez pensé à cette question - mais nous parions qu'il n'était pas le premier en ligne?

Et la contre-question: je me demande à quoi vos pensées ont conduit. Après tout, vos collègues, assis dans des appartements et des maisons confortables, utilisent des équipements non protégés par des canaux non protégés et touchent littéralement tous les serveurs de l'entreprise ...

Nous voulons partager avec vous une version open-source de l'outil utilisé dans notre entreprise en tant que serveur bastion. Il est appelé le serveur d'authentification DevOpsProdigy Isolate .

Comment ça fonctionne


1. Isolate ajoute un mot de passe à usage unique et une authentification à deux facteurs à la connexion SSH. Vous pouvez utiliser l'équipement YubiKey ou l'application Google Authenticator pour cela . Même si un utilisateur a perdu le mot de passe de son compte, sans clé OTP, un attaquant ne peut pas l'utiliser et accéder au serveur Isolate. Pour implémenter l'authentification à deux facteurs, nous utilisons le module pam. Vous pouvez en savoir plus à ce sujet dans cet ancien article .

2. Les utilisateurs n'ont pas accès directement aux serveurs finaux - la connexion passe par le serveur Isolate et le système surveille et enregistre toute leur activité.

Toutes les actions de l'utilisateur se résument à l'utilisation de deux commandes:

s <search-str>- pour rechercher des informations par nom de projet ou nom de serveur, les informations sont stockées dans la base de données Redis intégrée, qui est fermée par autorisation.

g <ip-address> / g <project-name> <server-name>- un appel à cette commande démarre /usd/bin/ssh . Les arguments de l'appel (par exemple, nom d'utilisateur, adresse IP, port, proxy) sont extraits de la base de données.

3. Il est facile de gérer l'accès au serveur d'authentification - ajouter / supprimer des utilisateurs, etc. Vous pouvez trouver un grand nombre d'exemples sur l'utilisation des commandes dans le fichier Lisezmoi auth-add-user, auth-add-hostetc.

Techniquement, vous devez générer et mettre la clé de serveur Isolate sur les serveurs de destination, et vos utilisateurs doivent obtenir un accès régulier au serveur Isolate de sudo à ssh.

Et lorsqu'ils souhaitent se connecter au serveur de destination, le système exécute la commande ssh. Ensuite, le client ssh, lancé à partir d'un utilisateur privilégié, recevra une clé, à l'aide de laquelle le système, à son tour, aura accès au serveur souhaité.

C'est tout. Isolate s'exécute sur la configuration CentOS 7 / Ubuntu 16.04 / Debian 9 . Ansible 2.3+ est également nécessaire .

Je ne peux que noter que DevOpsProdigy IsolateIl est également utile en «temps de paix»: vous pouvez être calme avec vos serveurs, même si quelqu'un perd un ordinateur portable avec une clé SSH. Et lorsqu'un employé qui avait accès quitte l'entreprise, vous n'aurez pas à vous précipiter pour changer tous les mots de passe et les clés. Nous préparons maintenant une liste d'améliorations et de fonctionnalités pour la version actuelle de cet outil, qui sont implémentées dans notre système interne. Nous attendons les souhaits, les problèmes, les relations publiques dans notre référentiel github . Pour les discussions et les questions, il y a aussi un chat télégramme et un chat dans Slack .

Alors maintenant, le travail à distance dans votre entreprise peut devenir un peu plus facile. Et c'est sûr - beaucoup plus sûr. Bonne chance

All Articles