Désactiver l'accès root à distance sur macOS
Voici une astuce qui ne sera utile que dans certains cas très particulier.
Les attaques sur SSH portent à 99% du temps sur le compte root, pour se protéger le plus simple est de le désactiver, tout en conservant le compte sur une machine macOS (ou Linux) accessible en SSH.
Cette astuce vous sera inutile si :
- le compte root est désactivé,
- l'accès SSH est désactivé,
- si votre Mac n'est pas accessible depuis l'extérieur.
Voila ... comme je le disais, pour un nombre très limité de cas, mais cela peut cependant être utile pour les rares autres.
Il suffit d'éditer le fichier, en mode super-administrateur :
sudo emacs /etc/ssh/sshd_config
Sur des versions de macOS plus ancienne, il peut se trouver à la racine du dossier etc :
sudo emacs /etc/sshd_config
Pour les Macs en version 10.11 ou inférieur, il suffit de commenter la ligne :
PermitRootLogin yes
pour avoir le résultat
#PermitRootLogin yes
ou de mettre "no" à la place de "yes"
PermitRootLogin no
Pour Sierra, une nouvelle valeur, en plus de yes ou no, est indiquée par défaut.
Par contre, le l'accès est, de base, coupé.
#PermitRootLogin prohibit-password
Pour information la valeur prohibit-password, ou son équivalent without-password, permettent de se connecter en root, mais sans mot de passe, il faudra utiliser une autre méthode d'authentification.
Pour vérifier que l'accès est bien désactivé, le plus simple est de tester, en remplaçant "macpro.local" par le nom de votre machine (disponible dans Préférences Systèmes > Partage), son IP ou son DNS :
ssh root@macpro.local
Si l'insertion du mot de passe root échoue, c'est qu'il est bien désactivé.
Si l'accès root est bien désactivé, le compte, lui, ne l'est pas, et vous pouvez toujours vous connecter avec un compte personel, puis lancer les commandes en les préfixant de sudo pour qu'elles soient exécutées en mode root. Vous êtes ainsi protégé contre la majorité des attaques, et vous limiterez les bêtises faites directement avec le compte root.