Académique Documents
Professionnel Documents
Culture Documents
sécurité
Introduction 4
II - Activité d'auto-évaluation 1 7
IV - Activité d'auto-évaluation 2 11
3
Introduction
Sécurité du serveur
Lorsqu'un système est utilisé comme un serveur sur un réseau public, il devient la cible d'attaques. Il est
donc primordial pour l'administrateur système d'endurcir le système et de verrouiller les services.
Avant de vous lancer dans des questions spécifiques, vous devriez revoir les conseils généraux suivants
pour améliorer la sécurité du serveur :
• Garder tous les services à jour pour les protéger contre les derniers dangers.
• Servir un seul type de service réseau par machine autant que possible.
• Contrôler avec attention tous les serveurs contre toute activité soupçonneuse.
4
Sécurisation de services avec les enveloppeurs TCP et xinetd
Sécurisation de services
avec les enveloppeurs I
TCP et xinetd
Les avantages offerts par les enveloppeurs TCP sont augmentés avec l'utilisation de la commande
xinetd, un super service offrant plus de possibilités en matière d'accès, de journalisation, de liaison,
de redirection et de contrôle de l'utilisation des ressources.
Cet exemple implémente une bannière pour vsftpd. Pour commencer, vous devez créer un fichier de
bannière. Il peut se trouver n'importe où sur le système, mais il doit porter le même nom que le
démon. Dans cet exemple, nous appellerons le fichier /etc/banners/vsftpd.
220-Hello, %c
5
Enveloppeurs TCP et avertissement d'attaques
Le mot-clé %c fournit diverses informations sur le client, comme le nom d'utilisateur et le nom
d'hôte, ou le nom d'utilisateur et l'adresse IP, pour rendre la connexion encore plus intimidante. Le
Guide de référence de Red Hat Enterprise Linux contient une liste de mots-clés disponibles pour les
enveloppeurs TCP.
Pour que cette bannière soit présentée aux connexions entrantes, ajoutez la ligne suivante dans le
fichier /etc/hosts.allow :
Dans cet exemple, supposez qu'un craqueur provenant du réseau 206.182.68.0/24 a été arrêté en
essayant d'attaquer le serveur. En ajoutant la ligne suivante dans le fichier /etc/hosts.deny, l'essai de
connexion sera refusé et enregistré dans un fichier spécial :
Pour autoriser la connexion et l'enregistrer, ajoutez la directive spawn dans le fichier /etc/hosts.allow.
Dans cet exemple, supposez que toutes les personnes qui essaient de se connecter au port 23 (le port
Telnet) sur un serveur FTP sont des craqueurs. Pour démontrer cela, ajoutez un indicateur emerg dans
les fichiers journaux à la place de l'indicateur par défaut, info, et refusez la connexion.
Cela utilisera l'option de journalisation authpriv par défaut, mais augmentera la priorité de la valeur
par défaut de info à emerg, qui envoie les messages de journalisation directement sur la console.
6
Activité d'auto-évaluation 1
Activité d'auto-
évaluation 1 II
Si certains types de font l'objet d'une plus grande inquiétude que d'autres, le niveau
de peut être élevé pour ce grâce à l'option .
Dans cet exemple, supposez que toutes les personnes qui essaient de se connecter au
23 (le port Telnet) sur un FTP sont des . Pour démontrer cela, ajoutez
un emerg dans les fichiers à la place de l'indicateur par
, info, et refusez la connexion.
7
Amélioration de la sécurité avec xinetd
Amélioration de la
sécurité avec xinetd III
2. Préparer un piège
Une caractéristique importante de xinetd repose dans sa capacité d'ajouter des hôtes sur une liste
no_access globale. Les hôtes sur cette liste sont déniés toute connexion aux services gérés par xinetd
pour une durée de temps spécifiée ou jusqu'à ce que xinetd soit redémarré. Cela est accompli à l'aide
de l'attribut SENSOR. Cette technique est un moyen facile pour bloquer les hôtes qui essaient de
scanner les ports du serveur.
La première étape de la configuration d'un SENSOR est de choisir un service que vous n'utiliserez
pas. Dans cet exemple, nous utiliserons Telnet.
flags = SENSOR
deny_time = 30
Ce faisant, l'hôte ayant essayé de se connecter au port sera interdit pendant 30 minutes. Il existe
d'autres valeurs possibles pour l'attribut deny_time, telles que FOREVER, qui permet de maintenir
l'interdiction jusqu'à ce que xinetd soit relancé et NEVER, qui autorise la connexion et l'enregistre.
disable = no
Alors que l'utilisation de SENSOR est une bonne manière de détecter et d'arrêter des connexions
venant d'hôtes malintentionnés, elle a deux inconvénients :
8
Contrôle des ressources de serveur
• Un agresseur sachant que vous exécutez SENSOR peut organiser une attaque par déni de service
contre des hôtes spécifiques en falsifiant leurs adresses IP et en se connectant au port interdit.
rlimit_as = <number[K|M]> — Stipule la quantité d'espace d'adressage que le service peut occuper en
mémoire, et ce, en kilo-octets ou méga-octets. Cette directive accepte aussi bien une valeur entière
que la valeur UNLIMITED.
L'utilisation de ces directives peut permettre d'éviter que tout service xinetd ne submerge le système,
entraînant par là-même un déni de service.
4. Sécurisation de portmap
Le service portmap correspond à un démon assignant les ports de manière dynamique pour les
services RPC tels que NIS et NFS. Il a de faibles mécanismes d'authentification et a la capacité
d'attribuer une vaste gamme de ports aux services qu'il contrôle. Pour cette raison, il est très difficile
de le sécuriser.
La sécurisation de portmap affecte uniquement les implémentations NFSv2 et NFSv3, vu que NFSv4
n'en a plus besoin. Si vous planifiez d'implémenter un serveur NFSv2 ou NFSv3, portmap est alors
requis et la section suivante s'applique.
Si vous exécutez des services RPC, vous devriez suivre ces règles élémentaires.
9
Protection de portmap avec IPTables
De plus, utilisez seulement des adresses IP lors de la restriction de l'accès au service. Évitez d'utiliser
les noms d'hôtes car ils peuvent être falsifiés par empoisonnement DNS ou autres méthodes.
Ci-dessous figurent deux exemples de commandes IPTables autorisant les connexions TCP au service
portmap (en attente de requêtes sur le port 111) à partir du réseau 192.168.0/24 et de l'hôte local (qui
est nécessaire pour le service sgi_fam utilisé par Nautilus). Tous les autres paquets sont ignorés.
10
Activité d'auto-évaluation 2
Activité d'auto-
évaluation 2 IV
Pour restreindre encore plus l'accès au service , il est bon d'ajouter des règles
IPTables au et de limiter l'accès à des réseaux spécifiques.
Préparer un piège
Une caractéristique importante de repose dans sa capacité d'ajouter des hôtes sur une
liste no_access globale. Les hôtes sur cette liste sont déniés toute aux services gérés
par pour une durée de temps spécifiée ou jusqu'à ce que soit
redémarré. Cela est accompli à l'aide de l'attribut SENSOR. Cette technique est un moyen facile
pour bloquer les hôtes qui essaient de scanner les ports du .
11
Solutions des exercices
Si certains types de connexion font l'objet d'une plus grande inquiétude que d'autres, le niveau de
journalisation peut être élevé pour ce service grâce à l'option severity.
Dans cet exemple, supposez que toutes les personnes qui essaient de se connecter au port 23 (le port
Telnet) sur un serveur FTP sont des craqueurs. Pour démontrer cela, ajoutez un indicateur
emerg dans les fichiers journaux à la place de l'indicateur par défaut, info, et refusez la connexion.
Lors de la connexion d'un client sur un service, l'envoi d'une bannière intimidante est un bon
moyen pour cacher le système utilisé par le serveur tout en avertissant l'agresseur que
l'administrateur système est vigilant. Pour implémenter une bannière d'enveloppeurs TCP pour un
service, utilisez l'option banner.
Pour restreindre encore plus l'accès au service portmap, il est bon d'ajouter des règles IPTables au
serveur et de limiter l'accès à des réseaux spécifiques.
Ci-dessous figurent deux exemples de commandes IPTables autorisant les connexions TCP au service
portmap (en attente de requêtes sur le port 111) à partir du réseau 192.168.0/24 et de l'hôte local (qui
est nécessaire pour le service sgi_fam utilisé par Nautilus). Tous les autres paquets sont ignorés.
12
Solutions des exercices
Préparer un piège
Une caractéristique importante de xinetd repose dans sa capacité d'ajouter des hôtes sur une liste
no_access globale. Les hôtes sur cette liste sont déniés toute connexion aux services gérés par xinetd
pour une durée de temps spécifiée ou jusqu'à ce que xinetd soit redémarré. Cela est accompli à l'aide
de l'attribut SENSOR. Cette technique est un moyen facile pour bloquer les hôtes qui essaient de scanner
les ports du serveur.
13