administration système et réseaux avec linux/debianramat/downloads/asr-intro.pdf · – dhcp, dns...

Post on 16-Sep-2018

233 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Administration Système et Réseaux avec Linux/Debian

E. RAMATE. RAMATramat@lisic.univ-littoral.frramat@lisic.univ-littoral.fr

Admin. Système et Réseaux 2

Mode de travail● 5h de cours

– introduction à Linux– le langage Perl

● 15 séances de 3h de travaux pratiques– installation et compilation d'un noyau Linux/Debian

– scripts système en Perl

– ProFTP, HTTP et Apache

– DHCP, DNS

– routage, supervision et visualisation du trafic / arp / ssl

– VPN et introduction à iptables

– proxy et squid

● note du module = (examen + moyenne des TP)/2

Admin. Système et Réseaux 3

Plan

● Introduction au système Linux● Debian● Le système de fichiers (FileSystem)

– init– boot– architecture du FileSystem

● Le langage PERL

● Le système d'exploitation Unix a été conçu et développé dans les années 1960 et la première version opérationnelle apparaît en 1970

● Sa grande disponibilité et sa portabilité lui a permis d'être largement adpoté, copié et modifié par des institutions académiques et commerciales

● Le projet GNU, démarré en 1984, avait pour objectif de créér un "système d'exploitation compatible Unix complet” à partir de logiciels entièrement libre

Introduction

Introduction

Richard Stallman

Développeur d'emacs, compilateur C, gdb, …Fondateur du projet GNU

Militant pour le logiciel libre

IntroductionProjet GNU

● Principe de base : le libre accès au code source accélère le progrès en matière d'informatique car l'innovation dépend de la diffusion du code source

● La liberté au sens GNU est définie selon quatre principes :

– liberté d'exécuter le programme, pour tous les usages

– liberté d'étudier le fonctionnement du programme, de l'adapter à ses besoins

– liberté de redistribuer des copies

– liberté d'améliorer le programme et de publier ses améliorations, pour en faire profiter toute la communauté

IntroductionLicence GPL

● Autorise l'utilisateur à copier et distribuer à volonté le logiciel qu'elle protège, pourvu qu'il n'interdise pas à ses pairs de le faire aussi

● Requiert aussi que tout dérivé d'un travail placé sous sa protection soit lui aussi protégé par elle (licence contaminante)

● Quand la GPL évoque les logiciels libre, elle traite de liberté et non de gratuité (un logiciel GPL peut être vendu)

● Remarque : en anglais « free » mélange gratuité et liberté

IntroductionCopyleft

● Créé par Stallman en 1984

● Garantit les 4 libertés fondamentales pour tous les utilisateurs (artiste, informaticien, ou quiconque produit un travail soumis au droit d'auteur)

● Évite de mettre les logiciels GNU dans le domaine public (pas de protection)

● Spécifie que quiconque redistribue le logiciel, avec ou sans modifications, doit aussi transmettre la liberté de les copier et de les modifier

● Encourage et aide les programmeurs (entreprises, universités) qui veulent ajouter et/ou contribuer à des améliorations des logiciels libres.

● Un logiciel copyleft est d'abord déclaré sous copyright, puis on ajoute les conditions de distribution et les libertés légalement indissociables.

Développeur du noyau Linux depuis 1991et de git (gestionnaire de versions)

Linus Torvalds

Introduction

● Principalement connu pour son utilisation serveur● Soutenu par de nombreuses sociétés telles que

Dell, Hewlett-Packard, IBM, Novell, Oracle Corporation, Red Hat et Sun Microsystems

● Aujourd'hui, utilisé comme système d'exploitation dans une grande variété de matériels informatiques : PC de bureau, serveurs, super-calculateurs, routeurs, consoles de jeu, mobiles, …

Introduction

● Linux est très utilisé pour l'installation des serveurs

● Le 22 janvier 2012 : 63,5 % des serveurs sous “Linux” et incluant BSD

● Un exemple : le package LAMP (Linux, Apache, MySQL, Perl/PHP/Python)

Introduction

Introduction

● Linux est un système d'exploitation modulaire● Il utilise un noyau monolithique, le noyau

Linux, qui gère le contrôle des processus, le réseau, les périphériques et les accès au système de fichiers

Introduction

Introduction

Noyau monolithique

Linux = monolitihique modulaire

Introduction

● Création des processus via fork/exec● Multi-threading● Nombreuses piles réseau (IPv4, IPv6,

Ethernet, ...)● Organisation des fichiers arborescente à partir

de la racine (/), montage et démontage logique (mount)

● Notion de super-utilisateur (root), groupes, et utilisateurs

Introduction

● Les éléments fondamentaux :

– Le noyau: en théorie, interface unique avec le matériel, API de programmation spécifique(modules Linux)

– Le «root filesystem» (root-fs): les commandes et fichiers système, communs à (presque) toutes les versions d'UNIX (API standard => POSIX)

– Un système Linux est obligatoirement l'association noyau + root-fs

● Linux peut être controlé :– en mode texte “command line interface” (CLI)– en mode graphique “graphical user interface”

(GUI) (sur les postes clients)– via des contrôles spécifiques au dispositif (en

particulier, sur les systèmes embarqués)● Sur les postes clients, KDE, GNOME et Xfce

sont les interfaces utilisateurs les plus utilisées

Introduction

Noyau Linux + applicationsGNU =

complet, libre, “UNIX-like” SE

Introduction

Philosophie Unix● (presque) Tout est fichier ● Construire des petits programmes qui

réalisent très bien une fonction précise– Simplicité, modularité, respect

des standards, ouverture

● Tous les programmes autorise les entrées depuis stdin, les sorties sur stdout et les erreurs sur stderr

Thompson et Ritchie, les créateurs d'UNIX

Introduction

Introduction

● La notion de pipeline (Pipe) pour connecter les E/S des programmes (data flow)

● Séparation stricte (mémoire) entre le mode noyau (manager) et le mode utilisateur

● Linux et les applications suivent la plupart des standards :– POSIX, ANSI C, divers IEEE, ANSI, W3C– IETF RFCs (par exemple, mail, web,

routage, dns)– FHS (Filesystem Hierarchy

Standard), et LSB (Linux Standard Base)

– CORBA, SQL, ...– i18n – Internationalisation

Introduction

Introduction

POSIX.1(1988, IEEE)

[POSIX 1003.1]

POSIX.1(1990, ISO)

XPG3(1989)

XPG4(1992)

POSIX.1(1996, ISO)

ANSI C(1989)

[C89, ISO C 90]

XPG4v2(1994)

[SUS, UNIX 95, Spec 1170]

SUSv2(1997)

[UNIX 98, XPG5]

POSIX.1b(1993)

Realtime

POSIX.2(1992)

Shell & utilities

POSIX.1g(2000)

Sockets

POSIX.1c(1995)

Threads

XNS(4, 5, 5.2)

POSIX.1-2001 / SUSv3(2001, Austin CSRG)

[UNIX 03]

POSIX.1d(1999)

Additional real-time extensions

POSIX.1j(2000)

Advanced real-time extensions

ISO C 99(1999)

POSIX.1-2008 / SUSv4(2008, Austin CSRG)

Historique dustandardPOSIX

● Distribution = – Noyau + applications + “une image de

marque“

– Sélection d'applications compilées sous forme de paquets (package)

– Testé (plus ou moins selon les distrib)– Un installeur (text/GUI)– Un support technique (hotline, email, web)

● Differences entre distribs: packaging, support, prix, architectures supportées, clients ciblés

Introduction

● Distributions les plus populaires:– Debian (et les dérivés : Knoppix,

(k)ubuntu, Linux Mint, ...)– RedHat (Fedora, CentOS)– SUSE (OpenSUSE)– Mandriva– Slackware– Gentoo– Linux embarqués : uCLinux, OpenWRT,

Angström, … et Android

Introduction

Debian

Debian

● Créée en 1993 par Ian Murdock avec le soutien de la FSF (Free Software Foundation)

● Première vraie version (1.0) en 1996● Objectif : construire une distribution composée

uniquement de logiciels libres● Deux textes piliers de Debian :

– Le contrat social

– Les principes du logiciel libre

DebianLe contrat social

● Debian est et restera un ensemble logiciel totalement libre

● Debian donnera en retour à la communauté des logiciels libres

– Tous les logiciels développés par Debian seront libres

– Les auteurs de logiciel seront informés des bogues signalés par les utilisateurs, recevront les correctifs disponibles, etc.

● Les problèmes ne seront pas dissimulés

– Le système de suivi des bogues est public● Les priorités de Debian sont ses utilisateurs et le logiciel libre

– Existence de non-free et contrib comme service aux utilisateurs

DebianLes principes du logiciel libre

● Redistribution libre et gratuite

● Code source : diffusion du code source

● Applications dérivées : modifications autorisées des applications

● Intégrité du code source de l'auteur : distribution du code source originel + modifications

● Aucune discrimination de personne ou de groupe

● Aucune discrimination de champ d'application

● Distribution de licence : la licence originelle s'applique toujours

● La licence ne doit pas être spécifique à Debian.

● La licence ne doit pas contaminer d'autres logiciels

● Exemples de licence : GPL, BSD, ...

Debianen chiffres

● Environ 37500 paquets

● 323 millions de lignes de code pour les packages et 68 millions de lignes de code pour le code de base pour la version Lenny (5.0)

● Des dizaines de serveurs (toutes architectures confondues) sur Internet

● Un réseau de plus d’une centaine de miroirs à travers le monde

– En France : ens-cachan, LIP6, lille, nancy, reims, nantes, pau, strasbourg, ...

● 11 architectures : i386, AMD64, PowerPC, SPARC, DEC Alpha, ARM, MIPS, PA-RISC, S390, IA-64

● Des milliers de petits contributeurs (qui testent, signalent des bogues, envoient des patchs, ...)

● Plus de 1000 développeurs officiels répartis sur toute la planète

DebianVersions

Aujourd'hui, stable = wheezy; testing = jessie; unstable = sid

Debian

DebianPackage management

● Résout automatiquement les problèmes de dépendances entre paquets

● Tient à jour les listes des installés et des paquets disponibles

● Gère la liste des sources d'installation

● Une commande et un outil :

– dpkg : outil d'installation de paquets SANS gestion des dépendances

– apt : outil de gestion des paquets AVEC gestion des dépendances

DebianPackage management

● apt se base sur la définition des dépôts (/etc/apt/source.list)

deb http://ftp.fr.debian.org/debian/ stable main

deb-src http://ftp.fr.debian.org/debian/ stable main

● La déclaration deb et deb-serc permet de spécifier :

– Le serveur de paquets binaires ou de source

– La version

– Le nom du dépôt (main, contrib, non-free)

DebianPackage management

● apt-get install paquet ... : installation des paquets

● apt-get remove paquet ... : désinstallation des paquets

● apt-get update : récupère la liste des paquets disponibles en utilisant les sources mentionnées dans le fichier sources.list

● apt-get upgrade : mise à jour des paquets● apt-get clean : supprime les fichiers présents

dans /var/cache/apt/archives

« File System »

« Filesystem »

● Linux respecte une organisation du système de fichier, quelle que soit la distribution.

● Les dossiers sont séparés par le caractère /● Existence d'une racine du système de fichiers

appelée / = point de départ de toute arborescence.

« Filesystem »

– /bin contient les programmes nécessaires pour démarrer le système en mode mono-utilisateur

« Filesystem »Boot

– /boot contient les fichiers utiles pour le chargeur (ou boot loader)

– Ce répertoire ne contient que les fichiers nécessaires au boot :

• vmlinuz-2.6.32-xxx

• initrd.img-2.6.32-xxx

• config-2.6.32-xxx

• System.map-2.6.32-xxx

• et les fichiers de configuration du bootloader

« Filesystem »Boot

● vmlinuz :

– Fichier exécutable linké statiquement (les librairies sont inclus à l'exécution) et compressé (zip)

– Contient le noyau Linux

● initrd :

– Système minimal de fichiers

– Chargé en mémoire au boot

« Filesystem »Boot

● System.map :

– Table des symboles du noyau

– Correspondance entre nom et adresse mémoire des fonctions du noyau

● Config : fichier de configuration du noyau

« Filesystem »Boot

● Au boot, le BIOS exécute le MBR (Master Boot Reccord) situé sur le premier secteur (512 octets) du support bootable choisi (disque, CD, clef USB, ...)

● Boot en 4 étapes :

– Chargement du bootloader qui charge le noyau Linux

– Le noyau Linux initialise les périphériques

– Le noyau monte le root-fs et exécute /sbin/init

– Le processus init (PID=1) lit /etc/inittab et exécute le script (shell) de démarrage des services «user-space» (rc= run command)

« Filesystem »Boot

● Sur x86, le BIOS démarre un bootloader comme GRUB ou LILO

● Pour les autres architectures, le bootloader fait office de BIOS : U-Boot, par exemple

● Le bootloader démarre le noyau Linux (partie statique)

« Filesystem »Boot

● Chargement de la partie statique du noyau :

– vmlinuz

– zImage/bzImage

– uImage (U-Boot)

● Initialisation du CPU et services fondamentaux (ordonnanceur, gestion mémoire, disque, flash, ...)

● Montage du root-fs sur « / »● Exécution du premier processus (init, PID=1)

correspondant au fichier /sbin/init

● Le fichier texte /etc/inittab :– Description des processus lancés au boot

– La liste des processus est fonction du runlevel

– Par exemple,

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

lancement de la commande shutdown en cas d'appui sur CTRL+ALT+DEL

« Filesystem »init

« Filesystem »init

● Il y a 7 runlevels différents sous Linux :

– 0 : arrêt de la machine

– 1 : mode maintenance (mono-utilisateur en ligne de commande)

– 2 à 5 : mode multi-utilisateur complet avec serveur graphique si installé

– 6 : Redémarrage de la machine

● Par défaut, runlevel 2● Indiqué dans le fichier inittab :

id:2:initdefault:

« Filesystem »● Selon le runlevel choisi :

– Lancement de processus des répertoires /etc/rcX.d où X est le runlevel

– Les répertoires /etc/rcX.d contiennent des liens symboliques vers /etc/init.d avec la syntaxe suivante :

Xxxservice -> ../init.d/service

– Où :

• X = S (start) ou K (stop)

• xx la priorité (le plus petit = le plus priorité)

• service correspond au nom du service lancé (ou arrêté)

– Exemple : démarrage d'un serveur PostgreSQL

S20postgresql -> ../init.d/postgresql

« Filesystem »

● Le répertoire /etc/init.d contient tous les scripts de gestion des services

● Tous les scripts admettent un paramètre :

– start : démarre le service

– stop : arrête le service

– restart : redémarre le service

– reload : force la relecture du fichier de configuration sans arrêter le service

– status : affiche l'état actuel du service (démarré, éteint, ...)

« Filesystem »

– /etc contient les fichiers de configuration dont les divers programmes se servent pour avoir des informations sur la configuration du système.

– /etc/X11 idem, mais spécifique au système Xwindow.

● /etc/fstab contient les informations sur les différents systèmes de fichiers et les points de montage (cdrom/dvdrom, ...)

● /etc/passwd contient les informations liées aux comptes utilisateurs.

« Filesystem »

« Filesystem »– /lib contient les bibliothèques (shared libraries, .so)

nécessaires aux programmes de démarrage (principalement des programmes placés dans /bin et /sbin).

– /mnt contient des répertoires utilisés comme points de montage pour les périphériques en mode block. Habituellement, on y trouve cdrom et floppy, respectivement utilisés pour le lecteur de CD-Rom et le lecteur de disquettes.

« Filesystem »

– /dev contient des fichiers spéciaux (device files) qui sont des points d'entrées vers des périphériques physiques.

– Exemples :

• le premier port usb correspond au fichier /dev/bus/usb/001/001

• le premier disque dur sata : sda avec ses partitions sda1, sda2, ...

« Filesystem »

– /proc contient des informations sur l'état du système et les différents processus en fonction (remplacé maintenant par /sys)

– Exemples :

• /proc/cpuinfo pour les informations sur les processeurs du système

• /proc/mounts pour les points de montage

« Filesystem »

– /sbin contient les programmes nécessaires au fonctionnement du système. Les commandes placées dans /sbin (et dans /bin) ne sont en général pas exécutées par les utilisateurs.

– /tmp contient tous les fichiers temporaires générés par le système ou les processus en cours.

« Filesystem »

– /usr contient une arborescence complète pour les données que les utilisateurs peuvent se partager. En principe, le répertoire /usr est le point de montage d'une partition ou d'un disque autre que celui utilisé pour le répertoire racine. Il est monté en lecture seule au démarrage et peut être partagé entre plusieurs machines.

– /var contient des fichiers qui sont susceptibles de changer fréquemment, comme les logs ou les files d'attentes pour les impressions

« Filesystem »● Principaux sous-répertoires de /usr:

– /usr/bin est le répertoire général pour les programmes utilisables sur le système.

– /usr/lib contient les bibliothèques utilisées par les programmes des utilisateurs. Dans /usr/lib figurent également divers programmes qui ne sont jamais lancés directement par les utilisateurs.

« Filesystem »– /usr/local contient une arborescence utilisée pour

stocker les programmes (/usr/local/bin), les bibliothèques (/usr/local/lib), les documentations (/usr/local/doc), etc... qui sont spécifiques à la machine ou au site.

– /usr/man contient les pages de manuel.

– /usr/src est un emplacement contenant les sources des diverses applications installées sur le système. /usr/src/linux contient les sources du noyau.

« Filesystem »● Principaux sous-répertoires de /var:

– /var/lock contient les "fichiers de verrouillage". Par convention, le nom des fichiers est toujours LCK.<périphérique> où <périphérique> est un nom de périphérique.

– /var/log est utilisé pour stocker les divers journaux du système. Ces fichiers journaux sont très utiles pour diagnostiquer un problème

« Filesystem »

– /var/spool contient les files d'attentes pour les impressions et les fichiers.

● /home contient les données propres à chaque utilisateur. La structure interne du répertoire /home est laissée au bon vouloir de l'administrateur système

● /root : c'est le répertoire du superutilisateur. A ne pas confondre avec le répertoire racine (/) du système !

« Filesystem »

● /lost+found– Répertoire contenant les fichiers qui seront

restaurés suite à un plantage du système ou suite à un problème de montage

« Filesystem »

top related