Contexte
Nous avons notre propre centre de données qui héberge des environnements spécifiques aux plates-formes et chaque environnement est isolé. Chaque environnement comprend également 3 niveaux (serveurs Web, serveurs d'applications et magasin de données). Nous prévoyons également d'introduire un cadre d'automatisation (environnement) qui doit communiquer avec les hôtes des environnements spécifiques à la plate-forme.
Résea
private datacenter [Automation environment Host runs commands ----> <ssh> ---> platform hosts]
Préoccupation
Certains membres de l'équipe ont soulevé cette question comme un problème de sécurité. Un accès spécialement ssh aux serveurs de base de données dans le niveau 3. Maintenant, je suis plus un développeur qu'un gars d'opérations, donc j'aimerais obtenir une explication plus approfondie sur les raisons pour lesquelles cela pourrait être trop risqué.
Quelqu'un peut-il indiquer clairement pourquoi cela n'est pas recommandé? ou peut-être que ce n'est pas un risque, et si oui, pouvez-vous s'il vous plaît souligner les considérations pour le mettre en œuvre.
Merci.
Quelqu'un peut-il indiquer clairement pourquoi cela n'est pas recommandé?
Parce que tout service en cours d'exécution augmente votre surface d'attaque. Surtout avec les services réseau, vous êtes toujours exposé au danger. Je ne pense pas que quiconque puisse vous donner une réponse plus précise que cela, car les implémentations SSH tendance pour être tout à fait correct du point de vue de la sécurité. Néanmoins, il y a toujours la possibilité qu'un exploit soit découvert, accordant à quiconque envoie les bons paquets à votre accès serveur ou que vous ayez mal configuré vos serveurs.
Mais, même si vous supposez que le logiciel lui-même est parfait, il y a plusieurs raisons pour lesquelles vous voudrez peut-être repenser votre approche. Évidemment, vous ne nous avez pas donné de détails sur votre configuration, mais dans la gestion des clés du monde réel, les pistes d'audit et le pare-feu sont toujours un problème. Viser une autre approche pourrait donc être une bonne idée.
En fin de compte, vous avez besoin d'un accès à distance à vos serveurs, mais vous pouvez faire certaines choses pour empêcher les méchants de pénétrer.
Ne lancez pas Internet face à SSH sur une IP utilisée par l'application. Idéalement, utilisez un hôte dédié agissant comme une boîte de saut. Utilisez le port frappé. Utilisez des paires de clés. Utilisez fail2ban. N'autorisez pas les connexions root. Restreindre l'accès à un groupe nommé. N'utilisez pas de connexions partagées. N'autorisez pas l'accès direct en dessous du niveau de présentation.