Dans quelle mesure est-il sûr de rendre le point de terminaison Powershell distant (aussi appelé PSRemoting) d’un serveur de production accessible depuis Internet?
Nous ne sommes pas une banque ou quoi que ce soit, mais le serveur contient des données d'entreprise sensibles.
J'ai l'intention de le sécuriser par:
- Utiliser le filtrage IP pour n'accepter que les connexions de notre propre plage IP publique, afin que nous puissions le gérer à partir d'une autre partie de notre réseau.
- Avoir le terminal accepte uniquement les connexions SSL
- Autoriser uniquement les connexions d'un nombre limité d'utilisateurs avec un mot de passe complexe (entropie de 150 bits environ)
- Utilisation d'une configuration PSSessionConfiguration
LanguageMode
définie surNoLanguage
, de sorte que seuls les scripts puissent être exécutés - Exiger que tous les scripts Powershell exécutés de cette manière soient signés (
Set-ExecutionPolicy RemoteSigned
)
D'autre part:
- Les scripts distants seront exécutés sous un compte administrateur local
- sans restrictions sur les Cmdlets / Modules qu’il peut invoquer.
- Je soupçonne que le service WinRM (qui rend PSRemoting possible) est suffisamment sûr pour être exposé à Internet (les ordinateurs virtuels Azure l'ont par défaut), mais je n'ai aucune preuve de cela.
Donc, je suppose que ma question est la suivante: est-ce "sûr" ou existe-t-il des vecteurs d'attaque qui me manquent ici?
En passant, la plupart de mes informations proviennent de la télécommande gratuite eBook Secrets of Powershell .