Une chose à garder à l'esprit lors de la disposition de vos partitions sont les modes de défaillance. Cette question est généralement de la forme: "Que se passe-t-il lorsque la partition x se remplit?" Dearest voretaq7 a soulevé la situation avec un plein /
causant un certain nombre de problèmes difficiles à diagnostiquer. Regardons quelques situations plus spécifiques.
Que se passe-t-il si votre partition contenant des journaux est pleine? Vous perdez des données d'audit / de rapport et est parfois utilisé par des attaquants pour masquer leur activité. Dans certains cas, votre système n'authentifiera pas les nouveaux utilisateurs s'il ne peut pas enregistrer leur événement de connexion.
Que se passe-t-il sur un système basé sur RPM lorsqu'il /var
est plein? Le gestionnaire de packages n'installe ni ne met à jour les packages et, selon votre configuration, peut échouer en silence.
Remplir une partition est facile, surtout lorsqu'un utilisateur est capable d'y écrire. Pour le plaisir, exécutez cette commande et voir comment vous pouvez rapidement créer un fichier assez grand: cat /dev/zero > zerofile
.
Cela va au-delà du remplissage des partitions également, lorsque vous placez des emplacements sur différents points de montage, vous pouvez également personnaliser leurs options de montage.
Que se passe-t-il lorsque /dev/
n'est pas monté avec noexec
? Comme il /dev
est généralement supposé être maintenu par le système d'exploitation et ne contenir que des périphériques, il était fréquemment (et parfois encore) utilisé pour masquer les programmes malveillants. Le fait de quitter noexec
permet de lancer des fichiers binaires qui y sont stockés.
Pour toutes ces raisons, et plus encore, de nombreux guides de durcissement discuteront du partitionnement comme l'une des premières étapes à effectuer. En fait, si vous construisez un nouveau serveur, la façon de partitionner le disque est presque exactement la première chose que vous devez décider, et souvent la plus difficile à modifier ultérieurement. Il existe un groupe appelé Center for Internet Security qui produit des tas de guides de configuration faciles à lire. Vous pouvez probablement trouver un guide pour votre système d'exploitation spécifique et voir les détails qu'ils pourraient dire.
Si nous regardons RedHat Enterprise Linux 6, le schéma de partitionnement recommandé est le suivant:
# Mount point Mount options
/tmp nodev,nosuid,noexec
/var
/var/tmp bind (/tmp)
/var/log
/var/log/audit
/home nodev
/dev/shm nodev,nosuid,noexec
Le principe derrière toutes ces modifications est de les empêcher de se toucher et / ou de limiter ce qui peut être fait sur une partition spécifique. Prenez /tmp
par exemple les options . Cela signifie qu'aucun nœud de périphérique ne peut y être créé, aucun programme ne peut être exécuté à partir de là, et le bit set-uid ne peut être défini sur rien. De par sa nature même, il /tmp
est presque toujours accessible en écriture dans le monde entier et est souvent un type spécial de système de fichiers qui n'existe qu'en mémoire. Cela signifie qu'un attaquant pourrait l'utiliser comme un point de transfert facile pour supprimer et exécuter du code malveillant, puis planter (ou simplement redémarrer) le système effacera toutes les preuves. Étant donné que la fonctionnalité de /tmp
ne nécessite aucune de ces fonctionnalités, nous pouvons facilement désactiver les fonctionnalités et éviter cette situation.
Les lieux de stockage des journaux, /var/log
et /var/log/audit
sont cloisonner le tampon pour les aider à l' épuisement des ressources. De plus, auditd peut effectuer certaines tâches spéciales (généralement dans des environnements à sécurité élevée) lorsque son stockage de journaux commence à se remplir. En le plaçant sur sa partition, cette détection de ressources fonctionne mieux.
Pour être plus verbeux et citer mount(8)
, c'est exactement ce que sont les options utilisées ci-dessus:
noexec Ne pas autoriser l'exécution directe de fichiers binaires sur le système de fichiers monté. (Jusqu'à récemment, il était de toute façon possible d'exécuter des binaires en utilisant une commande comme /lib/ld*.so / mnt / binary. Cette astuce échoue depuis Linux 2.4.25 / 2.6.0.)
nodev N'interprète pas les caractères et ne bloque pas les périphériques spéciaux du système de fichiers.
nosuid Ne permet pas aux bits set-user-identifier ou set-group-identifier de prendre effet. (Cela semble sûr, mais est en fait plutôt dangereux si suidperl (1) est installé.)
Du point de vue de la sécurité, ce sont de très bonnes options à connaître car elles vous permettront de mettre des protections sur le système de fichiers lui-même. Dans un environnement hautement sécurisé, vous pouvez même ajouter l' noexec
option à /home
. Il sera plus difficile pour votre utilisateur standard d'écrire des scripts shell pour le traitement des données, par exemple l'analyse des fichiers journaux, mais cela les empêchera également d'exécuter un binaire qui élèvera les privilèges.
N'oubliez pas non plus que le répertoire de base par défaut de l'utilisateur root est /root
. Cela signifie qu'il sera dans le /
système de fichiers, pas dans /home
.
Le montant exact que vous donnez à chaque partition peut varier considérablement en fonction de la charge de travail du système. Un serveur typique que j'ai géré nécessitera rarement une interaction avec une personne et, en tant que tel, la /home
partition n'a pas besoin d'être très grande du tout. La même chose s'applique /var
car elle a tendance à stocker des données plutôt éphémères qui sont créées et supprimées fréquemment. Cependant, un serveur Web utilise généralement /var/www
comme terrain de jeu, ce qui signifie que celui-ci doit également être sur une partition distincte ou /var/
doit être agrandi.
Dans le passé, j'ai recommandé ce qui suit comme références.
# Mount Point Min Size (MB) Max Size (MB)
/ 4000 8000
/home 1000 4000
/tmp 1000 2000
/var 2000 4000
swap 1000 2000
/var/log/audit 250
Ceux-ci doivent être examinés et ajustés en fonction de l'objectif du système et du fonctionnement de votre environnement. Je recommanderais également d'utiliser LVM et de ne pas allouer l'intégralité du disque. Cela vous permettra d'agrandir ou d'ajouter facilement des partitions si de telles choses sont nécessaires.