J'ai un serveur. Mon serveur est sécurisé, mais imaginons un bon pirate qui entre. Il peut maintenant regarder dans /etc/passwd
et /etc/shadow
. Je voudrais renommer ces fichiers /etc/passwd
en quelque chose comme /etc/xxanoda
.
Je pensais pouvoir faire un lien, mais pour un pirate, ce sera facile à faire ls -l
.
Il est possible de renommer ces fichiers et d'avoir toujours un système d'exploitation en cours d'exécution, sans problèmes de compatibilité, ou est-il complètement inutile? Juste pour la recherche de connaissances.
Réponses:
La norme de hiérarchie du système de fichiers pour les systèmes de type Unix inclut
/etc/passwd
à un emplacement fixe, et les outils sont donc généralement codés en dur pour y rechercher. Alors qu'en théorie, vous pouvez recompiler tous les utilitaires pertinents pour rechercher dans un nouvel emplacement, tout attaquant peut toujours simplement rechercher des chaînes dans ces fichiers binaires pour localiser le nouveau fichier, ou utiliser des expressions régulières pour rechercher des fichiers avec unpasswd
contenu similaire.Le
shadow
fichier ne doit être lisible que parroot
(et éventuellement par un groupe appeléshadow
). Si un attaquant a réussi à obtenir un accès root sur votre système, il a un contrôle complet et s’il peut ou non lire vos fichiers passwd / shadow n’est pas pertinent à ce stade.Il y a peut-être quelques situations où avoir des fichiers qui ne se trouvent pas aux endroits attendus pourrait aider, par exemple si vous avez un serveur Web mal configuré qui permet à quelqu'un de demander
http://myserver/../../etc/passwd
, mais en général ce type d'indirection nécessitera beaucoup de travail pour un bénéfice de sécurité minimal.la source
/etc/passwd
toute façon , non?La meilleure chose qui serait est "complètement inutile" comme vous dites. (Cela ne constitue pas un obstacle supplémentaire pour un intrus)
/etc/passwd
contient des noms de compte, mais toute personne ayant un accès shell au système pourra les trouver./etc/shadow
contient des informations sensibles (le mot de passe haché) mais il est lisible pour root uniquement. Si un intrus a réussi à obtenir les privilèges root - eh bien, comment épeler un désastre ?la source
Dans les Unices modernes (et Unix-like, y compris Ubuntu),
/etc/passwd
ne contient aucun secret. Le renommer serait plus difficile qu'il ne le vaut, étant donné le nombre d'utilitaires qui devraient être reconstruits pour le rechercher dans son nouvel emplacement./etc/shadow
est une autre affaire, car il y a des secrets dans ce fichier, mais le renommer ne sera pas utile. Il est uniquement lisible par root, donc même si un pirate pénètre dans le système en tant qu'autre utilisateur, cela ne suffit pas pour accéder au fichier. C'est pourquoi les mots de passe ont été supprimés/etc/passwd
en premier lieu: tout le monde doit pouvoir lire/etc/passwd
, mais seul root doit pouvoir accéder aux mots de passe réels, de sorte que les mots de passe ont été déplacés vers un fichier que seul root pouvait lire.Si le pirate ne se racine, puis un changement de nom ne vous sauvera pas. Une simple récursivité
grep
pourrait donner au pirate une liste de fichiers dans un/etc/shadow
format similaire, puis le pirate n'a qu'à les parcourir pour trouver les données qu'il souhaite. Vous l'avez retardé de quelques heures tout au plus, et probablement moins: encore une fois, cela ne vaut pas le temps qu'il faudrait pour modifier et recompiler tous les utilitaires qui dépendent de/etc/shadow
l'emplacement de.la source
su
au compte de son choix ou modifier le mot de passe de n'importe quel utilisateur du système. Et s'il veut vraiment avoir les mots de passe (juste au cas où les utilisateurs réutilisent leurs mots de passe ailleurs), il peut télécharger unlogin
binaire modifié ou ajouter unpam
module qui intercepte les tentatives d'authentification et lui relaie les combinaisons nom d'utilisateur / mot de passe.Vous ne pouvez pas simplement renommer ces fichiers. De nombreux processus et programmes les rechercheront, car il s'agit d'une norme dans les systèmes Linux. Ce que vous pouvez faire est de sécuriser votre serveur de manière appropriée.
la source
Bien qu'il ne soit probablement pas utile de renommer les fichiers
/etc/passwd
et/etc/shadow
, si vous voulez plus de sécurité, vous pouvez regarder PAM (modules d'authentification enfichables) et NSS (Name Service Switch). Comme ici.PAM peut être utilisé pour ajouter des modules d'authentification qui, à la place, lisent leur authentification en cas de normalisation à partir des fichiers standard, la lisent à partir d'une autre source, comme de ldap ou d'une base de données. L'utiliser signifierait que le
/etc/shadow
bidon serait presque complètement éliminé.NSS complète PAM en rendant une partie de la résolution de noms (comme les groupes auxquels cet utilisateur appartient) indépendante des fichiers standard (
/etc/passwd
,/etc/groups
). Son utilisation signifierait que votre fichier passwd ne contiendrait potentiellement qu'une option de secours pour root, et rien de plus. L'utilisation de clés SSH pour valider la connexion root éliminerait également la nécessité d'avoir un mot de passe root dans le fichier fantôme (bien que cela puisse être souhaité si la connexion SSH est interrompue).Alternativement, si vous ne voulez pas authentifier vos utilisateurs via une base de données ou un hôte LDAP séparé, vous pouvez également créer vos propres modules PAM et NSS, qui lisent leurs données à partir d'un fichier non standard, bien que je ne recommanderais pas cette option.
Lorsque vous voulez essayer de les utiliser, n'oubliez jamais de garder une sorte de secours sur une couche d'authentification connue et fonctionnelle, sinon vous pouvez vous verrouiller hors du système, même avec root.
Notez que toutes les applications ne prennent pas en charge PAM (beaucoup le font cependant). NSS peut cependant être utilisé pour implémenter l'authentification pour les applications qui ne prennent pas en charge PAM, et certains sites que j'ai lus sur NSS suggèrent en fait cette approche. Cela signifie cependant que le module NSS fournira le mot de passe (potentiellement) haché à toute personne qui peut accéder à la couche d'authentification NSS, ce qui est presque toujours quelque chose que vous voulez éviter (c'est fondamentalement la même chose que donner un accès en lecture non root au fichier fantôme )! Donc, si vous optez pour cette approche, assurez-vous toujours que NSS est uniquement utilisé pour fournir à l'utilisateur les données de base (comme le contenu de
/etc/passwd
) et que PAM est utilisé comme couche d'authentification.la source