Avant de sécuriser votre système, vous devez connaître trois aspects élémentaires de la sécurité des hôtes : les autorisations, l'authentification et l'intégrité.
-
Une autorisation donne droit à un utilisateur d'accéder aux données.
-
L'authentification est la vérification de l'identité de l'utilisateur autorisé.
-
Maintenir l'intégrité d'un fichier est le fait de garder les données correctes et utilisables.
Même si vous ne détenez aucun secret nucléaire sur votre système Linux; vous ne voulez pas perdre votre travail. Pour cela une seule consigne, empêcher toutes personnes étrangères d'accéder à root.
Les daemons
Les daemons sont des processus séparés, exécutés en tâche de fond et le plus souvent par root. Vous ne contrôlez pas les daemons puisqu'ils sont exécutés en tâche de fond et non directement sur le terminal.
La stratégie élémentaire de défense contre les programmes prenant les daemons de réseau pour cible consiste à n'exécuter que les services réseaux et les daemons strictement nécessaires, examinez donc la liste de daemons que procure la commande ps.
Citons entre autres les daemons, pppd, kflushd, inetd, nfsd, mountd et sshd. La plupart des daemons sont exécutables simultanément ; vous aurez autant de processus incontrolés que de daemons. Vous n'avez pas à vous soucier des daemons, mais vous devez veiller à leur maintenance.
Attention, le daemon NFS est connu pour permettre à un hacker de parvenir à root ; limitez donc au strict minimum le nombre d'hôtes de confiance pouvant accéder au protocole NFS.
Daemon |
Actions |
| crond |
Ordonnancement des travaux |
| kswapd |
Configuration de la zone swap |
| syslogd |
Exécution de l'ouverture de session du système |
| klogd |
Exécution de l'ouverture de session du noyau |
| inetd |
Exécution de tous les services réseau (super daemon) |
| sendmail |
Mise en file d'attente et transmission des messages |
| httpd |
Daemon du server Web Apache |
| in.telnetd |
Daemon telnet (pour les connexions entrantes) |
| ftpd |
Daemon ftp (pour les connexions entrantes) |
| sshd |
Deamon Secure Shell (pour les connexions entrantes) |
| popd |
Pour les connexions pop3 (accès à un courrier électronique distant) |
| imapd |
Pour les connexions IMAO (accès à un courrier électronique distant) |
| ipd |
impression réseau |
| named |
Server de noms de domaine |
| xntpd |
Protocole NTP (Network Time Prtotocol) |
| pppd |
Protocole point-to-point |
| rpc.mountd |
Montage de système de fichiers distants |
L'analyse des ports
Les hackers peuvent également accéder à votre système par l'analyse des ports. Il existe plusieurs utilitaires, ici nous vous proposons nmap qui fonctionne bien sur les systèmes Linux et vous permet de contrôler les ports de votre système.
La désactivation d'applications étrangères
En plus de limiter le nombre de daemons exécutés, vous pouvez réduire les applications réseaux selon la règle simple : rien d'étranger. Par exemple, n'exécutez pas le daemon server Web sur un server de courrier. La fonction du server est de transmettre du courrier et non des pages HTML. L'exécution du daemon server Web vous exposerait à une attaque "refus de service" et à d'éventuelles infiltrations de programmes.
Provoquer un dépassement des tampons donne un moyen d'accès à root de votre système. Incitez les utilisateurs à ne pas installer des applications inutiles envoyées par courrier électronique.
La désactivation des applications non sûres connues
Les commandes remote (r) de Berkley sont encore utilisées, par exemple rsh, rlogin et rcp. Il n'y a aucune raison de garder des commandes r sur votre système, car elles peuvent être remplacées par de nombreux logiciels gratuits, en particulier Secure Shell. Que vous le croyez ou non, certains produits de garde-barrière, dont Checkpoint Firewall-1, peuvent être configurés pour activer la commande rlogin. A cause des fichiers .rhosts et /etc/hosts.equiv, il est facile de faire croire aux commandes r qu'un hôte est autorisé...
Le contrôle des autorisations
Vous devez tout particulièrement faire attention aux autorisations d'accès. De nombreux outils (COPS et TAMU Tiger, par exemple) peuvent percer la sécurité du système si vos autorisations d'accès sont trop souples. Pour les renforcer, vous pouvez créer un script cherchant tous les fichiers dont le bit SUID est activé.
Voici l'exemple d'une commande find permettant de rechercher le bit SUID :
find / ( -perm -0 -perm -2000 ) -type f -exec 1s -1 [ ] :
Vous pouvez exécuter ce script dans une commande cron pour chercher les fichiers douteux et les autorisations d'accès suspectes en même temps.
Vous devez également vérifier les autorisations d'accès en écriture aux périphériques de root. Toute personne pouvant écrire sur une console ou un terminal root peut transmettre des commandes en tant que root sans être root. N'autorisez pas root à être propriétaire de fichiers ayant les autorisations "groupe" et "autres utilisateurs" en écriture. Des hackers peuvent utiliser ces autorisations pour explorer des commandes de root.
Le contrôle d'applications et de l'intégrité des fichiers
Les signatures numériques et les algorithmes d'aperçu de messages sont excellents pour vérifier l'intégrité des données ; en particulier, Tripwire est un bon programme vérificateur. Installer Tripwire au cours de la première installation de votre système vous donnera un système sûr. L'intégrité des données est le premier objectif de sécurité, indépendamment du nombre de ports fermés et du nombre de corrections appliquées.
Tripwire est la meilleure solution si vous l'utilisez efficacement. Le programme compare les résumés de chaque fichier et parcourt les fichiers si les résumés ont été modifiés. MD5 génère un nombre de 128 bits unique pour chaque fichier qui ne peut pas être dupliqué. Vous pouvez obtenir l'exécutable de résumés de messages MD5 en plus de TRipwire.