59
12/12/2002 Ciefa Poly-informatique Sécurité Linux

Sécurité Linux

Embed Size (px)

DESCRIPTION

Sécurité Linux. Plan du cours. Linux et la sécurité La sécurité du système La sécurité du noyau Linux La sécurité réseau Quelques conseils de sécurité. Partie 1. Linux et la sécurité La sécurité du système La sécurité du noyau Linux La sécurité réseau Quelques conseils de sécurité. - PowerPoint PPT Presentation

Citation preview

Page 1: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Sécurité Linux

Page 2: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Plan du cours Linux et la sécurité

La sécurité du système

La sécurité du noyau Linux

La sécurité réseau

Quelques conseils de sécurité

Page 3: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Partie 1 Linux et la sécurité

La sécurité du système

La sécurité du noyau Linux

La sécurité réseau

Quelques conseils de sécurité

Page 4: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La sécurité de Linux Sécurité au niveau du système

Tous les mécanismes de sécurité des Unix nouveaux

Sécurité au niveau du réseau Pile IP de qualité Rapidité de parution des correctifs Possibilité d'utiliser des logiciels connus

(Postfix, Bind, Apache, tcp_wrapper, etc.)

Sécurité de l'administration et de l'exploitation Administration sécurisée distante (SSH, SSF) Surveillance du système, scellement des fichiers (Tripwire) Gestion et centralisation simple de la journalisation

Système fiable qui permet la confiance

Page 5: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les applications de Linux pour la sécurité

Pour la sécurité du courrier électronique

Pour les passerelles de sécurité

Pour les administrateurs

Pour les réseaux bureautiques

Pour des postes de travail sécurisés

Page 6: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Application : la sécurité du courrier électronique

Serveurs de mail sous Linux Sendmail ( www.sendmail.org) Postfix : serveur de messagerie sécurisée ( www.postfix.org) Serveur POP3/APOP ou IMAP => ajout de SSL…

Clients sous Linux Gros volume (ex : centres d'appel) Traitement automatique : procmail et/ou scripts en perl Mutt ( www.mutt.org) = boite aux lettres customisable…

(Avec intégration de PGP www.pgpi.com)

Page 7: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Application : les passerelles de sécurité

Système de détection d'intrusion libres

BRO SHADOW (www.nswc.navy.mil/ISSEC/CID/) SNORT

commerciaux NFR

Supervision de réseau TRINUX

Mini distribution linux disposant d'outils de sécurité et de surveillance du réseau

Page 8: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Application : les administrateurs

Poste d'administration sécurisé

Utilisation de nessus ( www.nessus.org) pour audit du parc Faire régulièrement des tests de vulnérabilités

L'administrateur peut : Sécuriser (vraiment) une machine Automatiser de nombreuses tâches (mise à jour, ...) Gérer un grand parc de machines en toute sécurité et à distance : SSH ou

SSF (www.ssh.org et www.in2p3.fr/secur/ssf/)

Possibilité d'utiliser Linux pour gérer un parc de machines sous d'autres systèmes

Page 9: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Application : les réseaux bureautiques

=> SAMBA (www.samba.org) Serveur de fichiers Serveur d'impression

Très bonne intégration (partage de fichiers avec systèmes Windows) Serveur sécurisé et fiable Très bonnes performances

Au delà de 12 clients, il est préférable d'utiliser Linux Haute disponibilité (disques RAID)

Administration légère à distance SWAT = Samba Web Administration Tool

But : remplacer les PDC et BDC (PDC et BDC : contrôleurs principaux et secondaires de domaines

Windows NT)

Page 10: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Application : les postes de travail sécurisés

Linux peut être utilisé sur les postes de travail Un VRAI filtre IP par poste (Netfilter/iptables)

Sur les postes de développement Serveur CVS (Concurrent Version System) : permet de gérer toutes les

sources d'un projet. Sécurité et centralisation des sources (CVS + SSH)

Utilisation possible de PAM PAM : Pluggable Authentication Module

Peu de problèmes de virus

Bonne séparation utilisateur / administrateur

Page 11: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Partie 2 Linux et la sécurité

La sécurité du système

La sécurité du noyau Linux

La sécurité réseau

Quelques conseils de sécurité

Page 12: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Plan

Identification / Authentification

PAM (Pluggable Authentication Modules)

Droits d'accès aux ressources

Surveillance et journalisation

Page 13: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Identification / Authentification (1/2)

La liste des utilisateurs du système est généralement dans le fichier /etc/passwd accessible en lecture à tous les utilisateurs.

Le mot de passe chiffré est rangé dans le fichier /etc/shadow

Le fichier /etc/shadow ou son équivalent n'est pas accessible aux utilisateurs.

Le mot de passe même chiffré n'est plus accessible à la lecture.

Le changement de mot de passe s'effectue par la commande passwd (yppasswd dans le cas de NIS) qui demande l'ancien mot de passe avant de demander deux fois le nouveau.

Page 14: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Identification / Authentification (2/2)

Le mot de passe n'existe qu'en version chiffrée avec un algorithme non réversible.

Le chiffrement du mot de passe peut utiliser différents algorithmes : DES (Data Encryption Standard) modifié avec une graine de 2 caractères

et 25 iterations. les mots de passe sont limités à 8 caractères.

MD5 (Message Digest 5) avec une graine de 2 à 8 caractères et 32 itérations.

Durant la vérification du mot de passe, la comparaison s'effectue toujours sur le mot de passe chiffré.

Page 15: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

PAM (Pluggable Authentification Modules)

Historiquement, l'authentification des utilisateurs sous Unix se basait sur la saisie d'un mot de passe et sa vérification à partir du fichier /etc/passwd .

A chaque amélioration de ce schéma (/etc/shadow, One-Time-Passwords, etc…) tous les programmes (login, ftpd,...) devaient être réécrits pour supporter les nouvelles fonctionnalités.

PAM se veut un mécanisme flexible d'authentification des utilisateurs.

Les programmes supportant PAM doivent pouvoir se lier dynamiquement à des modules chargés d'effectuer l'authentification.

L'ordre d'attachement des modules et leurs configurations sont à la charge de l'administrateur système qui gère cela de façon centralisée.

Page 16: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

PAM (Configuration)

Chaque application PAM doit posséder un fichier de configuration dans le répertoire /etc/pam.d . Chacun de ces fichiers est composé de 4 colonnes :

type de module : auth : authentification de l'utilisateur (Unix, SMB, LDAP...) account : gestion des utilisateurs (ex : restrictions horaires) session : tâches à effectuer en début et fin de chaque session

ex : montage de répertoires, contrôle des ressources password : mise à jour du jeton d'authentification de l'utilisateur

contrôle de réussite : required : la réussite d'au moins un des modules required est nécessaire requisite : la réussite de tous les modules requisite est nécessaire sufficient : la réussite d'un seul module sufficient est suffisant optional : la réussite d'au moins un des modules required est nécessaire si aucun autre n'a réussi

chemin du module, en général dans /usr/lib/security . arguments optionnels.

Le fichier /etc/pam.d/other fournit les configurations par défaut pour tout type de module non spécifié dans le fichier de configuration de l'application.

Page 17: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

PAM (Quelques modules intéressants)

pam_cracklib : ce module utilise la bibliothèque cracklib pour vérifier la solidité d'un nouveau mot de passe. Il peut également vérifier que le nouveau mot de passe n'est pas construit à partir de l'ancien.

pam_limits : ce module permet de limiter les ressources accessibles à un utilisateur et/ou à un groupe comme le nombre de processus simultanés et leurs temps CPU, le nombre de fichiers ouverts simultanés et leurs tailles, le nombre de connexions simultanées, etc.La configuration se fait via le fichier /etc/security/limits.conf

pam_rootok : permet à root l'accès à un service sans avoir à rentrer de mot de passe.A n'utiliser qu'avec chfn ou chsh, surtout pas avec login.

pam_time : permet de limiter les horaires d'accès.La configuration se fait via le fichier /etc/security/time.conf

pam_wheel : ne permet l'accès au compte root qu'aux seuls membres du groupe wheel.A n'utiliser qu'avec su.

Page 18: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Droits d’accès aux ressources

Sur un système Unix, l'utilisateur possède : un login, un UID : numéro d'identification de l'utilisateur (compris entre 0 et 65535), un GID principal : numéro d'identification du groupe (aussi sur 16 bits). zéro, un ou plusieurs GID secondaires : numéros d'identification de groupe

Tout utilisateur d'UID 0 (zéro) est considéré comme administrateur et possède un accès sans restriction à l'ensemble du système. Les autres utilisateurs sont astreints aux contrôles d'accès.

La définition des droits d'accès pour un utilisateur repose essentiellement sur son UID et ses GID.

Il est possible de changer de groupe principal par la commande newgrp Il est possible de changer d'identité par la commande su

Page 19: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Permissions des fichiers

Les permissions permettent de contrôler l'accès aux fichiers Les permissions sont composées par :

un propriétaire un groupe un type d'objet les droits d'accès au propriétaire les droits d'accès au groupe les droits d'accès aux autres

un fichier peut être de type normal (-), répertoire (d), bloc (b), caractère (c), tube nommé (p), socket (s) ou lien symbolique (l)

les droits d'accès sont composés de 3 bits : lecture (r), écriture (w), exécution (x).Un quatrième bit peut être présent : s pour l'utilisateur et le groupe, t pour les autres.

Page 20: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La comptabilité Enregistrement automatique par le noyau des ressources utilisées par chaque

processus lors de leurs terminaisons : date de création utilisateur propriétaire nom de la commande utilisation de la mémoire terminal contrôlé temps processeur utilisé nombre d'entrées/sorties réalisées

Les utilitaires nécessaires à l'utilisation des données de comptabilités sont ceux édités par GNU < www.gnu.org> : acct-6.3.2.tar.gz

Cette archive renferme entre autres les utilitaires suivants : accton : active et désactive la comptabilité lastcomm : affiche des informations à propos des dernières commandes sa : résume les informations de comptabilité

Page 21: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La comptabilité : mise en route

Pré-requis : le support noyau doit être activé (sélectionner l'option "BSD Process Accounting" dans le menu "General setup")

La comptabilité est activée par la commande accton /var/account/pacct Le journal doit exister avant l'appel à cette commande,

Il peut être préférable de restreindre les droits d'accès au journal. Le comportement de la comptabilité peut être modifié via l'entrée

/proc/sys/kernel/acct qui contient 3 entrées : limite basse : espace libre nécessaire pour que la comptabilité reste active. limite haute : espace libre nécessaire pour que la comptabilité se réactive. Fréquence : temps en secondes entre deux vérifications de l'espace libre.

Page 22: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La comptabilité : statistiques

Les deux commandes suivantes permettent de synthétiser les données : sa : totalise pour chacune des commandes

Peut appliquer différents ordres de tris (entrées/sorties, temps processeurs et nombres d'appels).

Peut également totaliser les temps processeurs pour chacun des utilisateurs. lastcomm : affiche les dernières commandes exécutées

peut limiter l'affichage à un nom de commande, un nom d'utilisateur, un nom de terminal ou toute combinaison de plusieurs de ces trois précédents éléments.

La commande dump-acct /var/account/pacct exporte au format texte le contenu du fichier de comptabilité.

Il est ainsi possible de réaliser de façon simple ses propres statistiques avec des languages comme awk et perl.

Page 23: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La journalisation (TP) La journalisation est l'enregistrement des événements des applications via un

démon central : syslogd syslogd est configuré via le fichier /etc/syslogd.conf par la définition de

niveaux, de services et de destinations. Remarques :

il est important que tous les événements soient enregistrés, vérifier la présence d'une ligne analogue dans le fichier /etc/syslogd.conf :*.debug /var/log/full-log

les journaux doivent être tournés de façon périodique, les plus anciens étant effacés, afin que la journalisation ne soit en aucun cas interrompue

afin de pouvoir confronter les journaux de plusieurs systèmes, il est nécessaire que leurs horloges soient synchronisées (NTP).

Exception : les événements du noyau son récupérés par klogd et envoyés à syslogd

Page 24: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Partie 3 Linux et la sécurité

La sécurité du système

La sécurité du noyau Linux

La sécurité réseau

Quelques conseils de sécurité

Page 25: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Plan

Les privilèges (capabilities)

Les modules

Chiffrement de systèmes de fichiers

Page 26: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les privilèges (capabilities)

Définition

Les privilèges linux

Gestion des processus

Exemples de processus

Les privilèges des fichiers exécutables

Page 27: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les privilèges : définition

Sur un système Unix classique, le compte root (UID égal à 0) possède tous les droits.

Il peut ainsi lire tous les fichiers et tuer tous les processus. Si un programme a besoin d'un privilège alors le processus devra

avoir l'identité de root. Par exemple un programme de sauvegarde n'a besoin que de pouvoir

lire tous les fichiers. En s'exécutant en tant que root, il obtient le contrôle total du système et

peut donc tuer tous les processus. Les privilèges (capabilities) sont le partitionnement des privilèges du

compte root (UID = 0) en droits unitaires. Il est ainsi possible d'allouer à des processus les seuls droits dont ils ont

besoin.

Page 28: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les privilèges : Linux

Le système de privilèges utilisé est celui défini par le draft POSIX 1003.1e "POSIX capabilities"

Actuellement seuls les processus sont associés aux privilèges. Deux implémentations sont en cours de réalisation pour gérer les

privilèges au niveau des fichiers exécutables.

Chaque processus possède trois ensembles de privilèges : permitted(P) : les privilèges que le processus courant possède effective(E) : les privilèges que le processus courant peut exécuter inheritable(I) : les privilèges qui seront hérités par un processus fils

Page 29: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les privilèges : gestion des processus

Les deux utilitaires à connaître sont : execcap <caps> <command-path> command-args...

permet d'exécuter un programme avec des privilèges réduits

sucap <user> <group> <caps> <command-path> command-args...permet d'exécuter un programme avec des privilèges réduits en spécifiant l'utilisateur et le groupe d'exécution.

Note : utiliser les utilitaires fournis avec une version 1.92 ou plus récente de la bibliothèque libcap (voir ftp://ftp.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.3/)

Page 30: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les privilèges : exemples de processus

Dans les exemples ci-dessous, le programme lancé est un serveur de tamagoshi qui ouvrira une socket sur un port privilégié (999).

execcap cap_net_bind_service=eip /usr/local/bin/tama 999 Le processus est exécuté en tant que root mais ne possède que le droit d'ouvrir

des ports privilégiés. Si le programme possède une vulnérabilité, alors il pourra toujours être utilisé

pour accéder à des fichiers appartenant à root.

sucap tama tama cap_net_bind_service=eip /usr/local/bin/tama 999 Le processus est exécuté en tant que tama mais possède le privilège d'ouvrir

des ports privilégiés. Si le programme possède une vulnérabilité, alors il ne pourra être utilisé que

pour accéder à des fichiers appartenant à tama.

Page 31: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les privilèges : les fichiers exécutables

Deux implémentations sont en cours de développement :

fcaps : VFS layer patchs for capabilities Permet d'accorder à tout fichier exécutable des privilèges. L'ensemble de ces privilèges sont enregistrés au niveau du système de

fichiers.

elfcap : Elf capabilities hack http://atrey.karlin.mff.cuni.cz/~pavel/elfcap.html

Permet de retirer des privilèges à tout fichier exécutable au format elf. L'ensemble de ces privilèges sont enregistrés au niveau de l'en-tête

elf.

Page 32: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les modules

Définitions

Les risques

Avantages pour l'administrateur

Avantages pour les pirates

Page 33: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les modules : définitions

Un module est un morceau de code permettant d'ajouter des fonctionnalités au noyau : pilotes de périphériques matériels, protocoles réseaux, etc.

Il peut être chargé dynamiquement sans avoir besoin de recompiler le noyau ou de redémarrer le système.

Les modules sont exécutés dans l'espace mémoire du noyau : ils possèdent le contrôle total de la machine ils peuvent détourner ou créer un appel système

Page 34: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les modules : les risques

Les modules ne rentrent pas en jeu dans la sécurité d'un système

Les modules possèdent le contrôle total de la machine et peuvent :

permettre aux administrateurs d'améliorer la sécurité du système

permettre aux pirates d'affaiblir la sécurité du système.

Page 35: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les modules : avantages pour l’administrateur

Mettre à jour un pilote sans recompiler le noyau ni redémarrer le système.

Détourner certains appels systèmes pour surveiller l'activité du système :

rediriger ou journaliser les accès à certains fichiers ou fonctions soumises à l'authentification préalable de l'utilisateur.

journaliser les ajouts et les suppressions de modules

Page 36: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Les modules : avantages pour les pirates

Prendre le contrôle total de la machine en détournant des appels systèmes :

modifier la configuration apparente de la machine : mode promiscuous cacher des fichiers :

rendre invisible les fichiers commençant par un mot clé filtrer le contenu d'un fichier :

ôter des journaux, les lignes contenant l'adresse IP du pirate détourner les demandes de changement d'identité :

un compte utilisateur donné peut devenir administrateur sortir d'un environnement restreint (chroot) cacher un processus :

rendre invisible les processus commençant par un mot clé rediriger l'exécution de programmes :

installer des portes dérobées sans modifier les programmes originaux

Page 37: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Chiffrement des systèmes de fichiers

Fonctionnement

Notes

Algorithmes

Exemple

Page 38: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La commande losetup associe un loopback (périphérique virtuel) à une partition. Si un algorithme de chiffrement est sélectionné alors un mot de passe est demandé.

L'opération de montage de la partition se fait en indiquant le loopback associé à la partition désirée.

Toutes les données envoyées au loopback sont écrites chiffrées dans la partition. Lors d'une lecture dans le loopback, les données correspondantes sont lues dans la partition et déchiffrées en mémoire.

Chiffrement des systèmes de fichiers : fonctionnement

Page 39: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

les fonctionnalités de chiffrement de Linux ne sont pas incluses dans la distribution standard.Des patches officiels sont disponibles pour ajouter ces fonctions aux sources du noyau.Ces patches sont hébergés sur le site < www.kerneli.org> (actuellement en Norvège).

les commandes losetup, mount et umount doivent être patchées pour supporter ces fonctionnalités.Les patchs nécessaires sont fournis avec les patchs des sources du noyau.

un fichier peut être associé à un loopback. Cela permet : de créer de petites partitions chiffrées qui peuvent être montées

seulement lorsqu'elles sont nécessaires. de sauvegarder de façon sécurisée une partition vers un fichier chiffré.

Chiffrement des systèmes de fichiers : notes

Page 40: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Deux algorithmes ont été implémentés pour chiffrer des partitions : CAST-128 défini dans le RFC 2144;

voir www.entrust.com/downloads/pdf/cast-256.pdf et www.ietf.org/rfc/rfc2144.txtutilisé en mode ECB (Electronic Code Book = mode dictionnaire)

Twofish défini par Bruce Schneier, Doug Whiting, John Kelsey, Chris Hall et David Wagner; voir www.counterpane.com/twofish-paper.htmlutilisé en mode CBC (Cipher Block Chain = mode chaînage de blocs)

Une option permet d'utiliser en mode CBC n'importe lequel des sept algorithmes présents dans la bibliothèque pour chiffrer une partition.

Blowfish, DES, DFC, IDEA, MARS, RC6 et Serpent.

Chiffrement des systèmes de fichiers : algorithmes

Page 41: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Partie 3 Linux et la sécurité

La sécurité du système

La sécurité du noyau Linux

La sécurité réseau

Quelques conseils de sécurité

Page 42: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Plan

TCP/IP

Messagerie

tunnels (ssh, CIPE, IPsec)

Samba

NFS

Firewall avec IPTables (demain)

Page 43: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

TCP/IP Seuls les fichiers fondamentaux sont communs à toutes les implémentations Unix.

/etc/hosts : indique la correspondance nom de machine <-> numéro IP. /etc/inetd.conf : fichier de configuration des services TCP/IP gérés par le démon inetd, /etc/services : définit les ports utilisés par les services TCP et UDP /etc/rpc : définit les ports rpc utilisés par les services RPC /etc/securetty : interdit la connexion directe des administrateurs comme root par le

réseau sur les pseudos -tty non listés. /etc/ftpusers : interdit la connexion via ftp des utilisateurs listés. /etc/hosts.equiv : permet de rendre les machines équivalentes avec les R-commandes. $HOME/.rhosts : permet à un utilisateur de demander un service avec une R-commande

sans se ré-authentifier. $HOME/.netrc : permet à un utilisateur de demander un service ftp sur d'autres

machines avec une identification automatique. /etc/hosts.ldp : interdit les demandes d'impression depuis les adresses non listées. D'autres fichiers plus spécifiques à d'autres protocoles comme NIS, NFS, ftp, etc.

Page 44: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

TCP/IP

Chaque distribution utilise un fichier différent pour initialiser le système réseau :

redhat : /etc/rc.d/init.d/network et /etc/sysconfig/network-scripts slackware : /etc/rc.d/rc.inet1 et /etc/rc.d/rc.inet2 debian : /etc/init.d/network et /etc/init.d/netbase /etc/pcmcia/network.opts : les portables utilisant le système PCMCIA

Page 45: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

TCP/IP : TCP_Wrappers TCP_wrapper est un outil qui :

s'installe en frontal des démons TCP/IP lancés par inetd, ajoute les fonctionnalités de filtrage par adresse IP source, permet la journalisation des accès.

Les versions récentes de TCP Wrapper peuvent être récupérées sur le site de Wietse Venema : ftp://ftp.porcupine.org/pub/security/tcp_wrappers_7.6.tar.gz

Les services non internes à inetd sont lancés via /usr/local/sbin/tcpd en modifiant le fichier /etc/inetd.conf :

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

Les droits d'accès peuvent être configurés en mettant ALL:ALL dans /etc/hosts.deny et les autorisations dans /etc/hosts.allow : in.telnetd:127.0.0.1,192.168.1.1

Page 46: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

La messagerie

La messagerie internet est basée sur plusieurs protocoles : SMTP : Simple Mail Transfert Protocol

SMTP est le protocole d'échange de courrier électronique au-dessus de TCP/IPIl s'agit d'un protocole simple sans fonctionnalité de vérification d'authentification

ni du site émetteur ni de l'utilisateur émetteur

De nombreux logiciels de transferts existent : sendmail, postfix, qmail, mailx, etc. Il est important de garder sa version logicielle à jour afin de ne pas être victime d'attaques Il est important de mettre en place une gestion anti-relayage et anti-spam

POP (Post Office Protocol) et IMAP (Internet Message Access Protocol) Permettent à un utilisateur de récupérer ses messages. L'utilisateur est authentifié, le plus souvent en clair Possibilité d'encapsulation ssl, utiliser stunnel côté serveur.

Page 47: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Tunnels

Encapsulation de PPP dans SSH CIPE IPSec

=> Exemples:

Page 48: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Tunnels : PPP dans SSH - présentation

PPP = Protocole Point à Point Protocole de liaison de données assurant l'échange de données

sur une liaison point à point

Caractéristiques PPP Transport de données en provenance de plusieurs protocoles

(IP, IPX, etc.) Attribution dynamique d'une adresse IP

SSH = Secure Shell Remplaçant sécurisé de rlogin, rsh et rcp Authentification mutuelle de l'utilisateur et du serveur Chiffrement de l'ensemble de la session

Page 49: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Tunnels : PPP dans SSH – mise en place

Le poste nomade exécute un script qui, à l'aide d'une session SSH, lance PPP sur la passerelle et redirige les entrées / sorties de façon à faire passer PPP dans SSH

Les données à destination du réseau interne sont routées vers l'interface PPP résultante

La passerelle joue le rôle de proxy-ARP pour le nomade, qui semble ainsi appartenir au réseau interne

Page 50: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Tunnels : CIPE

Prévu pour la création de VPN avec Linux 2.x, simple et bien documenté

Chiffrement au niveau IP, encapsulation des paquets IP chiffrés dans des datagrammes UDP

Installation et configuration Génère deux composants : un module noyau qui se chargera du

chiffrement et un pilote Fichiers de configuration dans /etc/cipe

Utilisation Charger le module noyau Lancer le démon ciped, qui crée un périphérique spécial (même

principe que pppd) Site : inka.de/~bigred/devel/cipe.html

Page 51: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Tunnels : IPsec - présentation

Sécurisation des échanges au niveau IP : chaque paquet échangé est chiffré et / ou authentifié

Mis en oeuvre sur tout équipement ayant accès au réseau : routeur, serveur, station de travail...

Modes :

Transport : sécurisation de bout en bout, en-tête non modifiée

Tunnel : encapsulation dans un nouveau paquet IP

Page 52: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Tunnels : IPsec – FreeS/WAN

IPsec n'est pas disponible par défaut dans les piles TCP/IP, il faut ajouter un élément spécifique

FreeS/WAN : www.xs4all.nl/~freeswan Pour linux version >= 2.0.36 et 2.2.x Groupe de développeurs actif, nouvelles versions fréquentes

Etapes : Installation de FreeS/WAN sur les machines extrémités du

tunnel(nécessite une recompilation du noyau)

Configuration des paramètres du ou des tunnels

Transparent pour l'utilisateur une fois en place

Page 53: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Samba Samba est un ensemble de programmes qui implémentent le

protocole SMB (Server Message Block) pour des systèmes Unix : smbd fournit les services de partage de fichiers et d'impression nmbd fournit le service de noms NetBIOS smbclient : implémente un client à la ftp pour accéder à des partages SMB

et permet à un système Unix d'imprimer via n'importe quel serveur d'impression SMB

Samba peut jouer le rôle de PDC pour un domaine. Mais il ne peut pas (encore) se synchroniser avec un serveur Windows NT

Samba supporte les mots de passe chiffrés LanMan et NTLM Prochainement Samba :

permettra d'établir des relations de confiance supportera totalement les ACL Windows NT permettra les synchronisations BDC <=> PDC avec des serveurs Windows

NT Samba est disponible sur www.samba.org

Page 54: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

NFS

NFS est un protocole de gestion de fichiers répartis proposé par SUN.Il est devenu standard de par ses capacités de fonctionnement en milieu hétérogène.

Aucune authentification n'est possible. Par défaut, aucune sécurité n'est installée et il est nécessaire de

reconfigurer NFS via le fichier /etc/exports Limiter les adresses IP ayant accès à chaque export : adresse IP, sous-

réseau et noms de machine complètement qualifiés Limiter les accès privilégiés à chaque export

par défaut root est traduit en nobody mais il est préférable de restreindre :bin, daemon, adm, lp, mail, news, uucp, operator, man, postmaster, ftp, guest, ...

n'accorder l'accès root qu'à des machines sûres. Limiter les accès à la lecture seule si l'écriture n'est pas nécessaire.

Page 55: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Partie 4 Linux et la sécurité

La sécurité du système

La sécurité du noyau Linux

La sécurité réseau

Quelques conseils de sécurité

Page 56: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Amorçage et PAM

Mots de passe pour LILO et restrictions quant aux images pour l’amorçage établis

/etc/lilo.conf

Un groupe Wheel a été créé et sera activé en ce qui concerne la disponibilité de su

/etc/pam.d/*

L’autre authentification de PAM a été vérifiée en ce qui concerne la sécurité

/etc/pam.d/*

Mots de passe de qualité mis en vigueur, avec expiration périodique…

/etc/pam.d/*

Page 57: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Système et utilisateur

Consoles accessibles aux login du root minimisées /etc/securetty

Shells disponibles aux utilisateurs minimisés /etc/shells

Services inutiles desactivés /etc/rc.d/rcn.d

Mots de passe shadow installés

Utilisateurs ajoutés dans des groupes à utilisateur privé

Page 58: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Système de fichiers

Nœuds de périphériques de disques paramétrés avec permissions 0600 via chmod

Bits SUID et/ou SGID des binaires non souhaités désactivés

Modification sur le processus d’amorçage pour monter automatiquement le système de fichiers root en lecture seule

Liste de contrôle d’accès Posix pour Linux (patch)

Installation du TFCS (Transparent Cryptographic File System) réalisée et volumes chiffrés (via serveur NFS)

Page 59: Sécurité Linux

12/12/2002 Ciefa Poly-informatique

Réseau TCP/IP

Services non nécessaires normalement contrôlés par le démon Internet ont été désactivés

/etc/inetd.conf

TCP wrappers activés, et fichiers d’accès des hôtes configurés de manière sécuritaire

/etc/inetd.conf /etc/hosts.deny /etc/hosts.allow

Démon de journalisation du système configuré au niveau voulu, ainsi que l’emplacement des activités de journalisation

/etc/syslog.conf