Grub : édition des lignes de démarrage : 1 taper e sur une des lignes. 2 modification de ces paramètres : 3 appuyer sur entrée puis sur b pour booter

Documents pareils
Préparation LPI. Exam Securité. Document sous licence Creative commons «by nc sa» nc sa/2.

FILTRAGE de PAQUETS NetFilter

Sécurité des réseaux Firewalls

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Conférence Starinux Introduction à IPTABLES

Environnements informatiques

TP : Introduction à TCP/IP sous UNIX

Administration réseau Firewall

Netfilter & Iptables. Théorie Firewall. Autoriser le trafic entrant d'une connexion déjà établie. Permettre le trafic entrant sur un port spécifique

Formation Iptables : Correction TP

Fonctionnement de Iptables. Exercices sécurité. Exercice 1

Licence 3 Systèmes et Réseaux II. Chapitre V : Filtrage

Administration UNIX. Le réseau

Linux Firewalling - IPTABLES

TP4 : Firewall IPTABLES

Service FTP. Stéphane Gill. Introduction 2

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

Administration Réseaux

TP Linux : Firewall. Conditions de réalisation : travail en binôme. Fonctionnement du parefeu Netfilter. I Qu est ce qu'un firewall?

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Sécurité et Firewall

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

pare - feu généralités et iptables

Les différentes méthodes pour se connecter

Couche application. La couche application est la plus élevée du modèle de référence.

SSH, le shell sécurisé

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

avec Netfilter et GNU/Linux

Les firewalls libres : netfilter, IP Filter et Packet Filter

Sécurité GNU/Linux. Iptables : passerelle

FTP-SSH-RSYNC-SCREEN au plus simple

Atelier : Virtualisation avec Xen

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Devoir Surveillé de Sécurité des Réseaux

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

Sécurité des systèmes d exploitation

SECURITE. Figure 1. Incident réseau, source CERT. Nombre. Sécurité

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

TP SECU NAT ARS IRT ( CORRECTION )

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

1 Configuration réseau des PC de la salle TP

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

VoD ( Video on Demand ) avec VLC

Iptables. Table of Contents

Imprimantes et partage réseau sous Samba avec authentification Active Directory

Réalisation d un portail captif d accès authentifié à Internet

Filtrage IP MacOS X, Windows NT/2000/XP et Unix

TP 3 Réseaux : Subnetting IP et Firewall

Sauvegardes par Internet avec Rsync

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Sécurité des réseaux Les attaques

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

Installation de Smokeping sur Debian

ATELIER NETFILTER : LE FIREWALL LINUX EN ACTION

Figure 1a. Réseau intranet avec pare feu et NAT.

Introduction. Adresses

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Les commandes relatives aux réseaux

MISE EN PLACE DU FIREWALL SHOREWALL

Cours de sécurité. Pare-feux ( Firewalls ) Gérard Florin -CNAM - - Laboratoire CEDRIC -

Installation et mise en œuvre de OpenSSH sous AIX 5L

Réseau - VirtualBox. Sommaire

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Alexis Lechervy Université de Caen. M1 Informatique. Réseaux. Filtrage. Bureau S3-203

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

INFO-F-404 : Techniques avancées de systèmes d exploitation

Amiens Métier 39 : Gestion des réseaux informatiques. Jour 2, première partie. Durée : 3 heures

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Département R&T, GRENOBLE TCP / IP

Administration de Parc Informatique TP07 : Installation de Linux Debian

Chapitre VIII : Journalisation des événements

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Proxy SQUID sous Debian

Administration Linux - FTP

Documentation technique OpenVPN

Guide Installation Serveur Extensive Testing

Dans le cadre de SECURIDAY Et sous le thème de Computer Forensics Investigation SECURINETS. Analyse des fichiers LOG. Tarek LABIDI (RT3)

Chapitre IX : Virtualisation

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Comment surfer tranquille au bureau

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

LINUX REDHAT, SERVICES RÉSEAUX/INTERNET

UE5A Administration Réseaux LP SIRI

Guide Installation Serveur Extensive Testing

LAB : Schéma. Compagnie C / /24 NETASQ

Description : Les candidats doivent être capables de conserver l'heure système et synchroniser l'horloge via le protocole NTP

Le protocole FTP (File Transfert Protocol,

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

M2-RADIS Rezo TP13 : VPN

Liste des ports. 1 sur 6

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Le filtrage de niveau IP

Transcription:

Principes fondamentaux Cours 5 : Sécurité minimale sous Unix Principes Empêcher toute intrusion = impossible Rendre le travail nécessaire à l intrusion > gain qu on en tire Christophe Gonzales 3I015 Principes et pratiques de l administration des systèmes Identifier l ennemi Intrusion locale : accès physique à la machine protéger le bios protéger la séquence de démarrage droits d accès des fichiers (de configuration) Intrusion distante : accès par le réseau réduire l ouverture des ports protéger les démons Protection locale (1/7) BIOS = démarrage de la machine sur CD-ROM install de linux à partir d un CD-ROM = root : ALT-F2 pendant l install = console root lancer le CD avec linux rescue = console root contre-mesures BIOS : interdire le boot sur CD / disquette Interdire l édition du bios = mot de passe Cours 5 : Sécurité minimale sous Unix 2/43 Protection locale (2/7) Grub : édition des lignes de démarrage : 1 taper e sur une des lignes = accès aux options de démarrage = choix du runlevel d init 2 modification de ces paramètres : kernel /boot/vmlinuz ro root=/dev/sda6 1 3 appuyer sur entrée puis sur b pour booter Grub contient une interface avec ligne de commande ( c ) root (hd0,0) cat /etc/passwd cat /etc/shadow = mot de passe pour accéder aux commandes de Grub Cours 5 : Sécurité minimale sous Unix 3/43 Cours 5 : Sécurité minimale sous Unix 4/43

Protection locale (3/7) contre-mesure pour grub (version 1) 1 rajouter un mot de passe crypté dans /etc/grub.conf : 1 générer un mot de passe crypté : grub-md5-crypt Password : ********** Encrypted : $1$o1T6t1$BjWjEcQwH5Ll7IaGEI2iW1 2 éditer /etc/grub.conf et rajouter une ligne : password --md5 $1$o1T6t1$BjWjEcQwH5Ll7IaGEI2iW1 2 interdire l exécution de certaines lignes sans entrer de mot de passe : mots clés password et lock 3 interdire en lecture /etc/grub.conf à quiconque sauf root 4 exécuter grub-install pour que grub prenne en compte vos modifications Cours 5 : Sécurité minimale sous Unix 5/43 Protection locale : grub2 (5/7) /boot/grub/grub.cfg : fichier de configuration exploité par grub au boot fichier généré par update-grub /etc/default/grub : configuration générale de grub (hors règles spécifiques aux OS) /etc/grub.d/ : répertoire des scripts utilisés pour générer grub.cfg 00 header 10 linux 20 memtest86+ 40 custom 05 debian theme 20 linux xen 30 os-prober 41 custom Exemple de /etc/grub.conf (4/7) # grub.conf default=0 timeout=10 splashimage=(hd0,5)/boot/grub/splash2.xpm.gz password --md5 $1$o1T6t1$BjWjEcQwH5Ll7IaGEI2iW1 title Fedora Core securisée root (hd0,5) kernel /boot/myvmlinuz ro root=/dev/sda6 3 initrd /boot/myinitrd.img title Fedora Core non securisée lock root (hd0,5) kernel /boot/myvmlinuz ro root=/dev/sda6 1 initrd /boot/myinitrd.img title Fedora Core non securisée avec nouveau pass root (hd0,5) password --md5 $1$HgW6t1$Q11dB7bXdNuS5o71J9qs41 kernel /boot/myvmlinuz ro root=/dev/sda6 1 initrd /boot/myinitrd.img Cours 5 : Sécurité minimale sous Unix 6/43 Protection locale : grub2 (6/7) contre-mesure 1 rajouter un mot de passe dans /etc/default/grub : 1 générer un mot de passe crypté : grub-mkpasswd-pbkdf2 Enter password : ********** Your PBKDF2 is grub.pbkdf2.sha512.1000.bcf6f9bc 2 éditer /etc/grub.d/40 custom et rajouter les lignes : cat <<EOF set superusers="root" password pbkdf2 root grub.pbkdf2.sha512.1000.bcf6f9bc EOF 2 éditer /etc/grub.d/10 linux et remplacer : CLASS="--class gnu-linux --class gnu --class os" par CLASS="--class gnu-linux --class gnu --class os --users \"\"" 3 exécuter update-grub 4 interdire en lecture /boot/grub/grub.cfg et /etc/default/grub à quiconque sauf root Cours 5 : Sécurité minimale sous Unix 7/43 Cours 5 : Sécuritécf. minimale [https ://help.ubuntu.com/community/grub2/passwords] sous Unix 8/43

Exemple de /boot/grub/grub.cfg (7/7) ### BEGIN /etc/grub.d/10 linux ### menuentry Ubuntu, with Linux 2.6.35-31-generic --class ubuntu --class gnu-linux --class gnu --class os --users "" { recordfail insmod part msdos insmod ext2 set root= (hd0,msdos1) search --no-floppy --fs-uuid --set 1187ab9d-a203-4dde linux /vmlinuz-2.6.35-31-generic root=uuid=628d80b2 ro quiet splash initrd /initrd.img-2.6.35-31-generic } Quelques pistes pour la sécurité locale (1/2) 1 droits d accès des fichiers : éviter les droits en lecture : /etc/grub.conf, /etc/shadow... faire la chasse aux fichiers SUID/SGID : find / -type f \( -perm -04000 -o -perm -02000 \) aux fichiers en écriture pour tout le monde : find / -perm -2! -type 1 -ls aux fichiers sans propriétaire : find / \( -nouser -o -nogroup \) aux.rhosts : find /home -name.rhosts -print 2 choix judicieux des passwords : utiliser crack et John the ripper 3 utiliser un système testant l intégrité du système (ex : tripwire) Cours 5 : Sécurité minimale sous Unix 9/43 Quelques pistes pour la sécurité locale (2/2) Cours 5 : Sécurité minimale sous Unix 10/43 4 utiliser un emplacement sécurisé pour les logs : (syslog peut envoyer les logs vers un serveur dédié) 5 utiliser les bonnes options dans /etc/fstab : nosuid pour les partitions en écriture pour d autres que root nodev dans les home directories nodev et noexec dans /var, /tmp... Sécurité distante 6 update régulière des logiciels et packages = supprime les trous de sécurité 7 ne pas rajouter de chemin au PATH par défaut de root commandes = taper tout le chemin à partir de la racine / Cours 5 : Sécurité minimale sous Unix 11/43 Cours 5 : Sécurité minimale sous Unix 12/43

Accès internet et conséquences Limitation des connexions (1/2) Accès à internet = problèmes de sécurité services exécutés au démarrage = la plupart des problèmes chevaux de Troie sniffer : fuite de mots de passe exploits : trous de sécurité dans des applications = vulnérabilité de root déni de service : application = incapable de répondre aux requêtes des utilisateurs (e.g., saturation)... Solution : limiter les accès de et vers internet root@msldap:~# systemctl --type=service UNIT LOAD ACTIVE SUB DESCRIPTION 3i015.service loaded active running service de test 3i015 acpid.service loaded active running ACPI event daemon anacron.service loaded active running Run anacron jobs apache2.service loaded active running LSB: Apache2 web server atd.service loaded active running Deferred execution scheduler avahi-daemon.service loaded active running Avahi mdns/dns-sd Stack console-setup.service loaded active exited LSB: Set console font and keymap cron.service loaded active running Regular background program processing dbus.service loaded active running D-Bus System Message Bus getty@tty1.service loaded active running Getty on tty1 hddtemp.service loaded active exited LSB: disk temperature monitoring daemo kbd.service loaded active exited LSB: Prepare console keyboard-setup.service loaded active exited LSB: Set preliminary keymap lightdm.service loaded active running Light Display Manager Cours 5 : Sécurité minimale sous Unix 13/43 Limitation des connexions (2/2) Cours 5 : Sécurité minimale sous Unix 14/43 Les iptables limiter les accès vers les services avant connexion : utilisation des iptables utilisation de xinet et des tcp wrappers limiter les accès vers les services après connexion : utilisation des pluggable authentication modules (PAM) fichiers de configuration IP tables IP table = filtre de paquets = examine les en-têtes des paquets transitant par une machine et décide quoi faire avec (accepter le paquet, le supprimer, etc) 1994 : 1ère génération ipfw porté de BSD à linux 1998 : 2ème génération ipchains 1999 : 3ème génération iptables 2014 : 4ème génération nftables encore en développement IP table = module du noyau linux Cours 5 : Sécurité minimale sous Unix 15/43 Cours 5 : Sécurité minimale sous Unix 16/43

Principe des iptables Traversée des filtres IP tables = ensemble de règles indiquant le sort des paquets entrée routage FORWARD sortie Organisation hiérarchique : IP Tables Tables Chaînes Règle n 1 Règle n 2...... Règle par défaut Tables : filter, nat, mangle, etc. 3 chaînes par défaut : INPUT, OUTPUT et FORWARD entrée routage INPUT FORWARD process locaux sortie OUTPUT Cours 5 : Sécurité minimale sous Unix 17/43 Principe des iptables INPUT process locaux OUTPUT 1 1 paquet arrive = le noyau regarde sa destination (routage) 2 Si paquet destiné à la machine = transmis à la chaîne INPUT 3 Sinon : si noyau linux non configuré en mode forwarding ou si on ne sait comment faire le forward : alors détruire le paquet sinon si paquet destiné à une autre interface réseau : alors transmettre le paquet à la chaîne FORWARD Si celle-ci l accepte, envoyer le paquet en sortie 4 1 logiciel tournant sur la machine peut envoyer des paquets transmettre ceux-ci à la chaîne OUTPUT Cours 5 : Sécurité minimale sous Unix 18/43 Exemple d utilisation (1/6) Le noyau démarre avec 3 listes (chaînes) : INPUT, OUTPUT et FORWARD entrée routage FORWARD sortie Configuration du parc informatique : Poste 1 192.168.2.1 Poste 2 192.168.2.2 Poste 3 192.168.2.3 INPUT process locaux OUTPUT paquet arrive sur chaîne = celle-ci décide de son sort : DROP : le paquet est détruit ACCEPT : le paquet continue sa traversée dans le diagramme chaîne = liste de règles : règle = si en-tête du paquet a telle forme alors faire... si une règle ne matche pas, on passe à la suivante s il n y a plus de règles, on applique la politique de la chaîne Eth0 192.168.2.254 passerelle Eth1 132.227.203.24 Fichier de configuration : mis où on veut (par exemple /etc/iptables) Iptables : application de règles / remise à zéro : iptables-restore < /etc/iptables iptables -F Voir la configuration des iptables : iptables -L Ici, on va configurer la passerelle internet Cours 5 : Sécurité minimale sous Unix 19/43 Cours 5 : Sécurité minimale sous Unix 20/43

Anatomie d une iptable Contenu des iptables sur vos machines : *filter :INPUT ACCEPT :FORWARD ACCEPT :OUTPUT ACCEPT COMMIT *filter : table concernée par les prochaines règles (existe aussi *nat, *mangle, etc.) :INPUT ACCEPT : politique par défaut de la chaîne INPUT COMMIT : obligatoire, applique les règles de la table Cours 5 : Sécurité minimale sous Unix 21/43 Exemple d utilisation (3/6) Exemple d utilisation (2/6) Poste 1 192.168.2.1 Eth0 192.168.2.254 passerelle Poste 2 192.168.2.2 Eth1 132.227.203.24 1 Remise à zéro des iptables : on part d un fichier vide 2 Faire pointer les politiques des chaînes sur DROP : *filter :INPUT DROP :OUTPUT DROP :FORWARD DROP COMMIT = aucun paquet ne passe plus nulle part : pings réseau privé passerelle (INPUT) pings passerelle réseau privé (OUPUT) pings réseau privé internet (FORWARD) Poste 3 192.168.2.3 internet Cours 5 : Sécurité minimale sous Unix 22/43 Exemple d utilisation (4/6) Poste 1 192.168.2.1 Poste 2 192.168.2.2 Poste 3 192.168.2.3 Poste 1 192.168.2.1 Poste 2 192.168.2.2 Poste 3 192.168.2.3 Eth0 192.168.2.254 passerelle Eth1 132.227.203.24 internet Eth0 192.168.2.254 passerelle Eth1 132.227.203.24 internet notre machine = sûre = process communiquent via le loopback -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT action réponse cause ping passerelle 127.0.0.1 INPUT : lo = ACCEPT ping réseau privé passerelle INPUT : DROP par défaut ping internet passerelle INPUT : DROP par défaut ping passerelle réseau privé OUTPUT : DROP par défaut ping passerelle internet OUTPUT : DROP par défaut ping réseau privé internet FORWARD : DROP par défaut Cours 5 : Sécurité minimale sous Unix 23/43 le réseau local est sûr : -A INPUT -i eth0 -j ACCEPT -A OUTPUT -o eth0 -j ACCEPT action réponse cause ping passerelle 127.0.0.1 INPUT : lo = ACCEPT ping réseau privé passerelle INPUT : eth0 = ACCEPT ping internet passerelle INPUT : DROP par défaut ping passerelle réseau privé OUTPUT : eth0 = ACCEPT ping passerelle internet OUTPUT : DROP par défaut ping réseau privé internet FORWARD : DROP par défaut Cours 5 : Sécurité minimale sous Unix 24/43

État actuel de /etc/iptables *filter :INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A INPUT -i eth0 -j ACCEPT -A OUTPUT -o eth0 -j ACCEPT COMMIT action réponse cause ping passerelle 127.0.0.1 INPUT : lo = ACCEPT ping réseau privé passerelle INPUT : eth0 = ACCEPT ping internet passerelle INPUT : DROP par défaut ping passerelle réseau privé OUTPUT : eth0 = ACCEPT ping passerelle internet OUTPUT : DROP par défaut ping réseau privé internet FORWARD : DROP par défaut Cours 5 : Sécurité minimale sous Unix 25/43 Exemple d utilisation (6/6) Exemple d utilisation (5/6) Poste 1 192.168.2.1 Eth0 192.168.2.254 passerelle Poste 2 192.168.2.2 Eth1 132.227.203.24 accepter les connexions réseau privé internet : -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT écriture équivalente : -A FORWARD -i eth0 -o eth1 -m state --state! INVALID -j ACCEPT internet réseau privé : accepter seulement les connexions déjà établies ou en connexion avec elles : -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT Poste 3 192.168.2.3 internet Cours 5 : Sécurité minimale sous Unix 26/43 Comment connaître les ports utilisés? Installation d un serveur DNS sur la passerelle = devra pouvoir envoyer ses requêtes sur internet : Votre serveur : envoie requêtes UDP port 53 d un serveur DNS attend réponses venant d un port 53 port > 1024 = Rajouter les règles suivantes : -A OUTPUT -o eth1 -p udp --sport 1024: --dport 53 -m state --state! INVALID -j ACCEPT -A INPUT -i eth1 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT Fichier /etc/services : ftp-data 20/tcp ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp telnet 23/tcp smtp 25/tcp mail domain 53/tcp # Domain Name Server domain 53/udp http 80/tcp www # WorldWideWeb HTTP sunrpc 111/tcp rpcbind # RPC 4.0 portmapper TCP sunrpc 111/udp rpcbind # RPC 4.0 portmapper UDP nfs 2049/tcp # Network File System nfs 2049/udp # Network File System amanda 10080/tcp # amanda backup services amanda 10080/udp Cours 5 : Sécurité minimale sous Unix 27/43 Cours 5 : Sécurité minimale sous Unix 28/43

Comment connaître les ports utilisés? Pour les services s appuyant sur RPC : [root@msldap yp]# rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100011 1 udp 875 rquotad 100011 1 tcp 875 rquotad 100021 4 udp 32769 nlockmgr 100021 4 tcp 32803 nlockmgr 100003 4 tcp 2049 nfs 100003 4 udp 2049 nfs 100005 3 udp 892 mountd 100005 3 tcp 892 mountd 100004 2 udp 8343 ypserv 100004 2 tcp 8343 ypserv 600100069 1 udp 8353 fypxfrd 600100069 1 tcp 8353 fypxfrd Cours 5 : Sécurité minimale sous Unix 29/43 Xinetd et les tcp wrappers Comment connaître les ports utilisés? Rajouter des instructions de log dans les iptables : # logs -A INPUT -s 192.168.1.1 -j LOG -A OUTPUT -d 192.168.1.1 -j LOG = Fichier /var/log/kern.log : Jan 25 13:10:29 msldap kernel: [ 7521.487541] IN=eth0 OUT= MAC=08:00:27:59:2e:c8:08:00:27:86:5b:51:08:00 SRC=192.168.1.2 DST=192.168.1.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=25888 DF PROTO=TCP SPT=943 DPT=2049 WINDOW=5840 RES=0x00 SYN URGP=0 Jan 25 13:10:32 msldap kernel: [ 7524.493154] IN=eth0 OUT= MAC=08:00:27:59:2e:c8:08:00:27:86:5b:51:08:00 SRC=192.168.1.2 DST=192.168.1.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=25889 DF PROTO=TCP SPT=943 DPT=2049 WINDOW=5840 RES=0x00 SYN URGP=0 Cours 5 : Sécurité minimale sous Unix 30/43 fonctionnement de xinetd 2 moyens d exécuter les services : les lancer à la main (les scripts systemctl...) les lancer quand un client les demande = xinetd /usr/sbin/xinetd : le lanceur de services Attend et prend en compte des requêtes pour des services Pour certaines, les sous-traite (création de processus, activation de serveurs : /usr/sbin/in.ftpd, etc.) Services en charge définis dans : /etc/xinetd.conf Arguments transmissibles lors de l activation du serveur Effective user précisé pour l activation du serveur Cours 5 : Sécurité minimale sous Unix 31/43 Cours 5 : Sécurité minimale sous Unix 32/43

Configuration de xinetd (1/4) $ more /etc/xinetd.conf # Simple configuration file for xinetd # Some defaults, and include /etc/xinetd.d/ defaults { instances = 60 log_type log_on_success = SYSLOG authpriv = HOST PID log_on_failure = HOST cps = 25 30 } includedir /etc/xinetd.d $ ls -l /etc/xinetd.d total 88 -rw-r--r-- 1 root root 295 Jul 5 2002 daytime -rw-r--r-- 1 root root 315 Jul 5 2002 daytime-udp -rw-r--r-- -rw-r--r-- 1 root 1 root root root 287 Jul 306 Jul 5 5 2002 echo 2002 echo-udp -rw-r--r-- 1 root root 317 Jul 5 2002 finger -rw-r--r-- -rw-r--r-- 1 root 1 root root root 359 Jul 376 Jul 5 5 2002 rexec 2002 rlogin -rw-r--r-- 1 root root 478 Jul 5 2002 rsh -rw-r--r-- 1 root root 317 Jul 5 2002 rsync Cours 5 : Sécurité minimale sous Unix 33/43 Configuration de xinetd (3/4) /etc/xinetd.d/finger : # default: on # description: The finger server answers finger requests. # Finger is a protocol that allows remote users # to see information such as login name and last login # time for local users. service finger { disable = yes socket_type = stream wait = no user = nobody server = /usr/sbin/in.fingerd } Configuration de xinetd (2/4) $ more /etc/xinetd.d/* # extraits /etc/xinetd.d/daytime : # default: off # description: A daytime server. This is the tcp version. service daytime { disable = yes type = INTERNAL id = daytime-stream socket_type = stream protocol = tcp user = root wait = no } Cours 5 : Sécurité minimale sous Unix 34/43 Configuration de xinetd (4/4) /etc/xinetd.d/rsync # default: off # description: The rsync server is a good addition to an # ftp server, as it allows crc checksumming etc. service rsync { disable = yes socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } Intérêt de xinetd : l utilisation du démon tcpd Cours 5 : Sécurité minimale sous Unix 35/43 Cours 5 : Sécurité minimale sous Unix 36/43

Le démon /usr/sbin/tcpd (TCP wrapper) Historiquement, en complément de inetd, contrôle d accès aux services réseaux règles d accès dans : /etc/hosts.allow et /etc/hosts.deny Cf. man tcpd man 5 hosts.allow man 5 hosts.deny man portmap Le démon /usr/sbin/tcpd (2/2) Syntaxe des fichiers : service : host [ : Shell command ] service = un ou plusieurs noms ou les mots clés ALL, ALL EXCEPT? host = un ou plusieurs noms ou adresses IP d hôte ou de réseau ou un nom de fichier (/xxx) contenant ces éléments, ou les mots clés ALL, LOCAL (noms d hôtes sans. ), UNKNOWN, PARANOID (échec de la recherche d adresse IP), ALL EXCEPT?, ALL EXCEPT LOCAL commande = actions à effectuer 1 lecture fichier hosts.allow = potentiel succès 2 sinon lecture fichier hosts.deny = potentiel échec 3 Sinon succès succès = le serveur est activé écriture possible dans des fichiers de log Cours 5 : Sécurité minimale sous Unix 37/43 Le fichier hosts.allow Cours 5 : Sécurité minimale sous Unix 38/43 Le fichier hosts.deny $ more /etc/hosts.allow # hosts.allow This file describes the names of the hosts # which are allowed to use the local INET services, # as decided by the /usr/sbin/tcpd server. portmap : 172.17.116.0/255.255.255.0, \ 172.27.94.128/255.255.255.128 : ALLOW in.telnetd : 132.227.60.30 : ALLOW sshd : ALL : ALLOW in.ftpd : LOCAL : ALLOW in.rshd : ALL except 132.227.203.45 : ALLOW $ more /etc/hosts.deny # hosts.deny This file describes the names of the hosts # which are *not* allowed to use the local INET services, # as decided by the /usr/sbin/tcpd server. The portmap # line is redundant, but it is left to remind you that the # new secure portmap uses hosts.deny and hosts.allow. # In particular you should know that NFS uses portmap! in.telnetd : ALL : spawn (/usr/sbin/safe_finger -l @%h \ /bin/mail -s %d-%h root)& : DENY in.ftpd : ALL : spawn (/usr/sbin/safe_finger -l @%h \ /bin/mail -s %d-%h root)& : DENY ALL:ALL@ALL Cours 5 : Sécurité minimale sous Unix 39/43 Cours 5 : Sécurité minimale sous Unix 40/43

Quelques pistes pour la sécurité distante supprimer tous les services non strictement nécessaires supprimer les r-commandes (rlogin, rexec, rsh) : les mots de passe circulent en clair sur le réseau supprimer les.rhosts et /etc/hosts.equiv Faire du monitoring : vérifier les logs (logs manquants, incomplets ou avec des droits d accès étranges, redémarrages de la machine ou de services, entrées de su ou de logins curieux,... ) Les logs se trouvent dans /var/log exécuter régulièrement des logiciels testant la fiabilité de votre machine : nagios, ganglia, nessus, etc. bien éditer les fichiers de configuration Cours 5 : Sécurité minimale sous Unix 41/43 Quelques lectures... Exemple de fichier de configuration $cat /etc/ssh/sshd config Port 22 Protocol 2 # Logging # obsoletes QuietMode and FascistLogging #SyslogFacility AUTH SyslogFacility AUTHPRIV #LogLevel INFO #LoginGraceTime 2m PermitRootLogin no #StrictModes yes #MaxAuthTries 6 # To disable tunneled clear text passwords, change to no here! #PermitEmptyPasswords no PasswordAuthentication yes AllowTcpForwarding yes GatewayPorts no X11Forwarding yes #UseLogin no #UsePrivilegeSeparation yes Cours 5 : Sécurité minimale sous Unix 42/43 L administration système en général pour Unix : Jean-Michel Moreno (2003) Unix administration : Systèmes et réseaux, 3ème édition, Dunod. http ://casteyde.christian.free.fr/ system/linux/guide/online/book1.html La sécurité sous Linux en général : http ://www.linuxsecurity.com/ http ://www.linuxtopia.org/online books/ linux administrators security guide/ PAM pour Linux : http ://www.kernel.org/pub/linux/libs/pam/ Cours 5 : Sécurité minimale sous Unix 43/43