Linux-Mandrake: |
Guide de l'utilisateur |
et Manuel de référence |
MandrakeSoft
Janvier 2000 http://www.linux-mandrake.com
La rapide pénétration de Linux pour des applications de plus en plus diverses, depuis le travail de bureau de base jusqu'aux serveurs à haute disponibilité, a fait surgir le besoin pour des niveaux de sécurité différents. Il est évident que les contraintes inhérentes aux serveurs de haute sécurité ne conviennent absolument pas aux besoins d'une secrétaire. De même, un serveur public à lourde charge est plus exposé à des gens mal intentionnés que ma station de travail isolée.
C'est avec cette idée en tête qu'a été construit le paquetage MSEC. Il est composé de deux parties:
Notez que l'administrateur pourra définir son propre niveau de sécurité en ajustant les paramètres à ses propres besoins.
MSEC est un RPM de base. Si vous avez déjà installé Linux-Mandrake, MSEC est donc déjà présent sur votre système.
Lorsque vous installerez le paquetage MSEC, cela créera un
répertoire msec
dans /etc/security
, qui contient tous les
scripts nécessaires à la sécurisation de votre système.
Entrez sur le système en tant que root
et tapez la commande
/etc/security/msec/init.sh x
, x
étant le niveau de
sécurité désiré, ou bien custom
(« personnalisé »), pour créer votre propre niveau. Le
script commencera alors à supprimer les modifications apportées par un
précédent changement de niveau, et appliquera les caractérisriques du
nouveau niveau de sécurité à votre système. Si vous avez choisi
custom
, alors il vous sera demandé une série de questions
pour chacun des points de sécurité que MSEC propose. À la fin,
ces caractéristiques seront appliqués à votre système.
Notez que quel que soit le niveau de sécurité choisi, votre configuration sera enregistrée dans
/etc/security/msec/security.conf
.
Ce niveau doit être utilisé en connaissance de cause. Il rend votre
système plus facile à utiliser, mais aussi très sensible. En
particulier, vous ne devriez pas utiliser ce niveau sans sécurité
si vous répondez oui
à au moins l'une des questions suivantes:
Comme vous le voyez, ce niveau de sécurité ne devrait pas être activé par défaut, car cela pourrait causer des problèmes à vos données.
La principale amélioration de la sécurité par rapport au premier niveau, est que désormais, l'accès au données d'un utilisateur se fait par nom d'utilisateur et mot de passe. L'ordinateur peut ainsi être utilisé par plusieurs personnes, et il est moins sensible à de fausses manoeuvres. Néammoins, ce niveau ne devrait pas être utilisé sur un ordinateur connecté par modem ou à un réseau local.
Peu d'améliorations pour ce niveau de sécurité, sinon que plus de vérifications et d'avertissements sur la sécurité deu système sont générés. Il est aussi plus sécurisé pour une utilisation multi-utilisateurs.
Ceci est le niveau de sécurité standard recommandé pour un ordinateur connecté à l'Internet en tant que client. La plupart des vérifications de sécurité sont régulièrement effectuées, notamment celle qui scrute les ports ouverts du système. Néammoins, ces ports sont laissés ouverts, et leur accès est autorisé à tous.
Du point de vue de l'utilisateur, le système est désormais un petit peu plus fermé, et des connaissances de base du système Linux seront nécessaires pour mener à bien certaines opérations. La sécurité proposée ici est celle d'une distribution standard Red Hat ou de l'une des précédentes distributions de Linux-Mandrake.
Avec ce niveau de sécurité, l'utilisation du système en tant que serveur devient possible. La sécurité est suffisante pour que le système puisse accepter des connecxons de plusieurs clients. Seules les connexions depuis le système lui-même seront autorisées par défaut. De même, les services avancés ont été désactivés, et l'administrateur système devra activer ceux qu'il désire à la main. Il devra également définir les machines depuis lesquelles les connexions seront acceptées.
Les vérifications de sécurité avertiront l'administrateur système de possibles trous de sécurité ou d'intrusions sur le système.
On reprend les caractéristiques du niveau 4, mais désormais, le système est entièrement fermé. Les options de sécurité sont au maximum. L'administrateur système doit ouvrir les ports et donner à d'autres ordinateurs l'accès aux services offert sur la machine.
Voici la description des différents points de sécurité gérés par les niveaux de sécurité. Ces points sont de natures diverses:
root
, inscriptibles (sur
lesquels on peut écrire), sans propriétaire,
Niveau de | 0 | 1 | 2 | 3 | 4 | 5 |
Optionssécurité | ||||||
vérifications de | oui | oui | oui | oui | oui | |
sécurité globales | ||||||
umask pour les | 002 | 002 | 022 | 022 | 077 | 077 |
utilisateurs | ||||||
umask pour | 002 | 002 | 022 | 022 | 022 | 077 |
shell sans | oui | |||||
mot de passe | ||||||
sont autorisés | ||||||
à se connecter | tous | local | local | aucun | aucun | aucun |
au serveur X | ||||||
utilisateurs dans | oui | oui | oui | |||
le groupe audio | ||||||
| oui | oui | ||||
avertissements dans | oui | oui | oui | oui | oui | |
/var/log/security.log | ||||||
avertissements | ||||||
directement | oui | oui | ||||
sur la console | ||||||
avertissements | oui | oui | oui | oui | ||
dans syslog | ||||||
avertissements | ||||||
envoyés par | oui | oui | oui | |||
e-mail à root | ||||||
vérification des | ||||||
fichiers suid | oui | oui | oui | oui | ||
root | ||||||
vérification de la | ||||||
signature MD5 des | oui | oui | oui | oui | ||
fichiers suid root | ||||||
vérification des | ||||||
fichiers | oui | oui | oui | oui | ||
inscriptibles | ||||||
vérification des | ||||||
permissions | oui | oui | oui | |||
vérification des | ||||||
fichiers suid | oui | oui | oui | |||
groupe | ||||||
vérification des | oui | oui | ||||
fichiers sans | ||||||
propriétaire | ||||||
vérification de type | oui | oui | ||||
"promiscuous" | ||||||
vérification des | oui | oui | oui | |||
ports ouverts | ||||||
vérification de | ||||||
l'intégrité du | oui | oui | oui | |||
du fichier de mots | ||||||
de passe | ||||||
vérification de | ||||||
l'intégrité du | oui | oui | oui | |||
du fichier shadow | ||||||
vérifications de | ||||||
sécurité du | oui | oui | oui | |||
système tous les | ||||||
jours à minuit | ||||||
tous les événements | ||||||
du système sont | oui | oui | ||||
dirigés vers | ||||||
/dev/tty12 | ||||||
services avancés | oui | oui | ||||
désactivés | ||||||
mot de passe de | oui | oui | ||||
démarrage (LILO) | ||||||
permettre l'accès à | tous | tous | tous | tous | local | aucun |
Remarque: six des dix vérifications périodiques peuvent détecter des
modifications dans votre système. Elles sauvegardent la configuration
antérieure du système (un jour plus tôt) dans le répertoire
/var/log/security/
et vous avertissent des changements qui
auraient pu intervenir dans l'intervalle. Ces vérifications sont:
root
root
nosuid
»:
(« montages par NFS sans l'option nosuid
»),
ces systèmes de fichiers sont exportés dans l'option nosuid
,
ce qui interdit aux programmes suid de fonctionner sur la machine.
+
sign »:
(« les fichiers de « confiance » de l'hôte
contiennent le signe +
») cela signifie que l'un des fichiers
/etc/hosts.equiv
, /etc/shosts.equiv
, /etc/hosts.lpd
référence un hôte autorisé à se connecter sans authentification
préalable.
/etc/aliases
ou /etc/postfix/aliases
contient un alias redirigeant vers un programme.Indique le umask qui sera utilisé pour les utilisateurs normaux du système suivant le niveau de sécurité.
root
»La même chose, mais pour root
.
L'accès à la console est permis sans mot de passe.
tous
: n'importe qui connecté depuis n'importe où peut
ouvrir une fenêtre X sur votre écran
local
: seules les personnes connectées sur votre
système pourront y ouvrir une fenêtre X.
aucun
: personne ne peut faire cela.audio
»Chaque utilisateur du système est automatiquement membre des groupes
audio
, urpmi
et cdrom
. Cela signifie que tous
les utilisateurs obtiendront des privilèges particuliers pour utiliser
la carte son, les paquetages, etc.
.
dans '$PATH'
»L'entrée .
est ajoutée à la variable d'environnement
'$PATH'
, ce qui permet d'exécuter facilement des programmes se
trouvant dans le répertoire courant (c'est aussi, d'une certaine
manière, une faille de sécurité).
/var/log/security.log
»Chaque avertissement généré par MSEC est archivé dans le fichier
/var/log/security.log
.
Chaque avertissement généré par MSEC est affiché directement sur la console.
Les avertissement générés par MSEC sont adressés au service syslog.
root
»Les avertissement engendrés par MSEC sont également adressés à
root
par courrier électronique.
root
»Recherche les ajouts ou suppressions de fichiers suid
root
sur le système. S'il y en a eu, une liste des
exécutables concernés est retournée en avertissement.
root
»Vérifie la signature MD5 de chaque fichier suid
root
du système. Si la signature a changé, cela signifie qu'une
modification a été apportée à ce programme, ce qui peut être le signe
d'une intrusion. Un avertissement est alors engendré.
Cherche les fichiers qui sont inscriptibles par tout le monde sur le système. Une éventuelle liste de tels fichiers est alors engendrée en avertissement.
Celui-là vérifie les permissions de certains fichiers tels que
.netrc
ou les fichiers de configuration et les répertoires des
utilisateurs. Si leurs permissions sont trop larges ou les
propriétaires anormaux, un avertissement est engendré.
Recherche les ajouts ou suppressions de fichiers suid groupe sur le système. S'il y en a eu, une liste des exécutables concernés est retournée en avertissement.
Cette vérification recherche les fichiers appartenant à des
utilisateurs inconnus du système. Si de tels fichiers sont trouvés, le
propriétaire en devient automatiquement nobody
.
Ce test vérifie chaque carte Ethernet pour déterminer si elle se trouve en mode "promiscuous". Ce mode permet à une carte d'intercepter tous les paquets reçus par la carte, même ceux qui ne lui sont pas destinés. Cela peut signifier qu'un sniffer (« reniffleur ») fonctionne sur votre système. Cette vérification est effectuée toutes les minutes.
Génere un avertissement contenant la liste des ports ouverts.
Vérifie que chaque utilisateur a un mot de passe (non vide et non facile
à trouver) et qu'il se trouve dans le fichier shadow
.
shadow
»Vérifie que chaque utilisateur a un mot de passe (non vide et non facile
à trouver) dans le fichier shadow
.
Toutes les vérifications précédentes seront effectuées chaque jour à
minuit. Cela repose sur l'ajout d'un script cron dans le fichier
crontab
.
Tout service absent de
/etc/security/msec/init-sh/server.4
pour le niveau 4 ou
server.5
pour le niveau 5 sera désactivé. Il n'est pas
effacé, mais simplement non démarré lors d'un changement de
runlevel. Si vous avez besoin de certains de ces services,
ajoutez-les à nouveau à l'aide de l'utilitaire chkconfig (vous
aurez sans doute aussi besoin de les démarrer avec les scripts de
démarrage d'init
dans /etc/rc.d/init.d
).
Vous permet de définir un mot de passe pour LILO. Empêche les personnes non expérimentées de redémarrer la machine, mais en revanche la machine ne pourra pas redémarrer toute seule en cas de problème.
tous
: tous les ordinateurs peuvent se connecter aux
ports ouverts.
local
: seul le système peut se connecter à ses propres
ports.
aucun
: aucun ordinateur ne peut se connecter.