UNIX /Linux Jean Michel Meulien Page 1

Dimension: px
Commencer à balayer dès la page:

Download "UNIX /Linux Jean Michel Meulien Page 1"

Transcription

1 I) Les fichiers II) Les variables systèmes ou d environnement III) Les commandes Unix IV) L éditeur VI V) Le Shell VI) La compilation VII) Le Ramdisk VIII) Le système de fichiers IX) Création d archives (les outils cpio et tar) X) La planification de taches (crontab) XI) Le démarrage (boot) XII) Le routage XIII) Le serveur Apache XIV) Le démon inetd XV) Le système NFS (Network File System) XVI) Le Proxy XVII) Samba XVIII) L optimisation du système XIX) Exemples de Shell XX) IPtables et Netfilters (avec le firewall UFW) XXI) Les Permissions Unix UNIX /Linux Jean Michel Meulien Page 1

2 I) Les fichiers Introduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Les différents types de fichiers Les fichiers physiques, enregistrés sur le disque dur. Il s'agit du fichier au sens où on l'entend généralement. Les répertoires sont des fichiers (nœuds) de l'arborescence pouvant contenir des fichiers ou d'autres répertoires. Un répertoire contient à minima un répertoire parent (noté..), correspondant au répertoire de plus haut niveau, et un répertoire courant (noté.), c'est-à-dire lui-même. Les liens sont des fichiers spéciaux permettant d'associer plusieurs noms (liens) à un seul et même fichier. Ce dispositif permet d'avoir plusieurs instances d'un même fichier en plusieurs endroits de l'arborescence sans nécessiter de copie, ce qui permet notamment d'assurer un maximum de cohérence et d'économiser de l'espace disque. On distingue deux types de liens : Les liens symboliques représentant des pointeurs virtuels (raccourcis) vers des fichiers réels. En cas de suppression du lien symbolique le fichier pointé n'est pas supprimé. Les liens symboliques sont créés à l'aide de la commande ln -s selon la syntaxe suivante : ln -s nom-du-fichier-réel nom-du-lien-symbolique Les liens physiques (aussi appelées liens durs ou en anglais hard links) représentent un nom alternatif pour un fichier. Ainsi, lorsqu'un fichier possède deux liens physiques, la suppression de l'un ou l'autre de ces liens n'entraine pas la suppression du fichier. Plus exactement, tant qu'il subsiste au minimum un lien physique, le fichier n'est pas effacé. En contrepartie lorsque l'ensemble des liens physiques d'un même fichier est supprimé le fichier l'est aussi. Il faut noter toutefois qu'il n'est possible de créer des liens physiques qu'au sein d'un seul et même système de fichiers. Les liens physiques sont créées à l'aide de la commande ln (sans l'option -n) selon la syntaxe suivante : ln nom-du-fichier-réel nom-du-lien-physique Les fichiers virtuels n'ayant pas de réelle existence physique car ils n'existent qu'en mémoire. Ces fichiers, situés notamment dans le répertoire /proc, contiennent des informations sur le système (processeur, mémoire, disques durs, processus, etc.). Les fichiers de périphériques, situés dans le répertoire /dev/, correspondent aux périphériques du système. Cette notion peut être déroutante pour un nouvel utilisateur dans un premier temps. UNIX /Linux Jean Michel Meulien Page 2

3 L arborescence des fichiers : / la racine, elle contient les répertoires principaux / bin exécutables /sbin exécutables systèmes /lib contient les bibliothèques standards partagées entre les différentes applications du système /mnt permet d'accueillir les points de montage des partitions temporaires (cd-rom, disquette) /home contient les répertoires personnels des utilisateurs /usr hiérarchie secondaire /usr/x11r6 ce répertoire est réservé au système X version 11 release 6 /usr/x386 utilisé avant par X version 5, c'est un lien symbolique vers /usr/x11r6 /usr/bin contient la majorité des fichiers binaires et commandes utilisateurs /usr/include contient les fichiers d'en-tête pour les programmes C et C++ /usr/lib contient la plupart des bibliothèques partagées du système /usr/local contient les données relatives aux programmes installés sur la machine locale par le root /usr/local/bin binaires des programmes locaux /usr/local/include fichiers d'en-tête C et C++ locaux /usr/local/lib bibliothèques partagées locales /usr/local/sbin binaires système locaux /usr/local/share hiérarchie indépendante /usr/local/src fichiers sources locaux /usr/sbin contient les fichiers binaires non essentiels au système réservés à l'administrateur système /usr/share réservé aux données non dépendantes de l'architecture /usr/src contient des fichiers de code source /proc regroupe un ensemble de fichiers virtuels permettant d'obtenir des informations sur le système ou les processus en cours d'exécution. UNIX /Linux Jean Michel Meulien Page 3

4 /dev contient les points d'entrée des périphériques. /opt données optionnelles /root répertoire personnel de l'administrateur root. Le répertoire personnel de l'administrateur est situé à part des autres répertoires personnels car il se trouve sur la partition racine, afin de pouvoir être chargé au démarrage, avant le montage de la partition /home. /etc contient les fichiers de configuration nécessaires à l'administration du système (fichiers passwd, group, inittab, ld.so.conf, lilo.conf). /var données variables (spooler, logs) /tmp fichiers temporaires /boot contient les fichiers de chargement du noyau, dont le chargeur d'amorce. Les principaux types de fichiers sous unix (résumé): Tout est fichier sous Unix. 1) Les fichiers ordinaires 2) Les fichiers répertoires 3) Les fichiers blocs 4) Les fichiers caractères 5) Les fichiers pipe nommés (redirection) 6) Les fichiers liens symboliques 7) Les fichiers virtuels 8) Les fichiers périphériques Notion de point de montage Les fichiers d'un système UNIX sont organisés dans une arborescence unique. Il est toutefois possible d'avoir plusieurs partitions grâce à un mécanisme appelé montage, permettant de raccorder une partition à un répertoire de l'arborescence principale. Ainsi le fait de monter une partition dans le répertoire /mnt/partition rendra l'ensemble des fichiers de la partition accessibles à partir de ce répertoire, appelé «point de montage». UNIX /Linux Jean Michel Meulien Page 4

5 II) Les variables systèmes ou d environnement Ce sont des variables définies par le système d exploitation. Elles définissent le chemin système afin de relier des informations entre une commande ou un programme se trouvant à des emplacements différents. La liste ci-dessous recense les variables système les plus fréquemment rencontrées : Variable Signification CDPATH En anglais change directory path, cette variable liste les répertoires ou sous-répertoires devant être parcourus si un nom de répertoire est saisi derrière la commande cd. HOME Contient le chemin d'accès absolu au répertoire courant. Il s'agit du répertoire dans lequel la commande cd vous fait arriver sans paramètre. Cette variable est importante pour le Shell ( fichier ${HOME}/.profile) et pour l'éditeur vi (fichier ${HOME}/.exrc). IFS En anglais Internal Field Separator, cette variable contient les caractères séparant les mots entre eux sur une ligne de saisie. Par défaut, il s'agit de l'espace, de la tabulation et du caractère de saut de ligne. LANG Cette variable permet de définir la langue que vous utilisez. Elle définit aussi le jeu de caractères utilisables. MAIL Cette variable contient le nom du fichier où le système ira regarder si vous avez reçu du courrier. Cette variable est utilisée par la commande mail. MAILCHECK Cette variable définit, en secondes, l'espace de temps entre lequel le système ira voir si vous avez reçu du courrier. Par défaut, la valeur standard est de 600 (5 minutes). Si vous indiquez 0, le système ira regarder votre boite à lettres après que vous ayez validé une commande. PATH Cette variable contient une liste de répertoires séparés les uns des autres par un double point. Si une commande est saisie et reconnue comme variable externe, le Shell parcourra ces différents répertoires pour trouver cette commande. UNIX /Linux Jean Michel Meulien Page 5

6 PS1 En anglais Prompt String, elle contient le texte standard que le Shell affiche à l'écran comme invite de saisie. PS2 Le Shell affiche le contenu de cette variable lorsque le contenu d'une ligne de saisie n'est pas conforme à la saisie attendue. Ceci peut arriver, par exemple, lorsque le nombre de guillemets n'est pas pair au moment où vous validez une ligne de saisie. SHELL Cette variable contient le chemin d'accès absolu au programme Shell. Cette variable est utilisée par l éditeur vi pour choisir le Shell qui traitera les commandes placées après le point d'exclamation. TERM Cette variable définit votre émulation de terminal c'est-à-dire les différentes fonctions de votre clavier (notamment les touches de fonction), le type d'affichage (interprétation des caractères reçus et émis, nombre de lignes, de colonnes, etc.). III) Les commandes Unix Le passage d'arguments aux commandes La plupart des commandes acceptent des arguments. On peut distinguer deux types d'arguments : Les options, qui sont en général précédées du caractère - pour leur forme courte ou des caractères -- pour leur forme longue, introduite par les outils GNU. Exemple : $> ls -l --color Cette commande affiche le contenu du répertoire courant de façon détaillée (-l) et en colorant les fichiers selon leur type (--color). Les chaînes de caractères qui peuvent représenter un fichier, une expression rationnelle, une commande interne, etc. Exemple : $> grep titi mon_fichier Cette commande recherche la chaîne titi dans le fichier mon_fichier. UNIX /Linux Jean Michel Meulien Page 6

7 Une fonctionnalité puissante de certaines commandes Unix est de pouvoir rediriger la sortie d'une première commande comme argument d'une seconde via le caractère pipe (tuyau en français). Exemple : $> ps ax grep init N'affichera que les lignes retournées par la commande ps ax qui contiennent la chaîne init. Il s'agit ici d'une redirection utilisant grep comme filtre. Aide info (GNU) : obtenir le manuel GNU info d'une commande. apropos : liste les pages de manuel contenant dans leur description le(s) mot(s) clé(s) recherché(s). man : obtenir le manuel d'une commande. help : obtenir de l'aide pour une commande interne du shell. which : où se trouve ce programme? whatis : liste quelles commandes sont en rapport avec un mot-clef. Commande --help : affiche une aide succincte et liste les arguments qui peuvent être passés à la Commande en question. Cette option est la forme longue de l'option Commande -h, des premiers systèmes UNIX. Commandes générales history : affiche l'historique des commandes. type : affiche le type de la commande (alias, exécutable, etc.) et précise sa nature. s'il s'agit d'un programme trouvé sur $PATH, il affiche le chemin absolu. (ex: type vi vs type vim) Communications mesg : contrôler l'accès à votre terminal par d'autres personnes (par write). talk : faire une conversation avec un autre utilisateur du système. wall : envoyer un message à tous les utilisateurs du système (Write ALL). write : envoyer un message à un utilisateur en particulier (voir mesg). Éditeurs de texte ed : éditeur de texte orienté ligne. (EDitor), éditeur standard d'unix (IEEE Std POSIX). emacs : éditeur de texte. nano : éditeur de texte. pico : éditeur de texte. vi : éditeur de texte présent dans presque tous les systèmes Unix. (Visual Interface) vim : voir vi (VI amélioré, ou VI improved). gedit : éditeur de texte. UNIX /Linux Jean Michel Meulien Page 7

8 Écran less (GNU) : visualise le contenu d'un fichier texte, avec une progression ligne par ligne ou page par page et la possibilité de retourner en arrière et d'effectuer une recherche. Etant beaucoup plus élaboré que son prédécesseur more, less en est son opposé (le nom de ce programme comporte une touche d'humour car less signifie moins, alors que more signifie plus). more : affiche le contenu d'un fichier texte, page par page (la page correspond à la taille du terminal). screen : permet d'ouvrir des programmes associés à des écrans virtuels desquels l'utilisateur peut se détacher et auxquels il peut de nouveau s'attacher plus tard. twin : simule en mode texte (ncurses) un écran graphique. Fichiers et répertoires cd : change le répertoire courant. (Change Directory) cp : copie un fichier (CoPy), peut copier une liste de fichiers dans un autre répertoire en conservant leur nom. dd : effectue une copie d'un fichier avec possibilité de conversion du format (Copy and Convert, mais cc étant déjà pris, les lettres suivantes de l'alphabet ont été choisies, soit dd). dir : equivalent à ls (DIRectory), n'existait pas à l'origine d'unix du : affiche l'utilisation du disque. (Disk Usage) df : affiche l'utilisation des disques. (Disk Free) file : affiche le type de fichier en lisant son en-tête. ln : crée un lien avec un autre dossier ou fichier. (LiNk) ls : affiche la liste des fichiers dans le dossier courant ou d'un autre dossier. (LiSt) mkdir : crée un ou plusieurs répertoires (MaKe DIRectory) mv : déplace (ou renomme) un fichier, y compris si c'est un répertoire (MoVe), peut déplacer une liste de fichiers dans un autre répertoire en conservant leur nom. pwd : affiche le chemin du dossier courant. (Print Working Directory) rm : supprime un/des fichier(s) ou des répertoires (avec l'option -r). (ReMove) rmdir : supprime un ou plusieurs répertoires (ReMove DIRectory) s'il est (ou s'ils sont) vide(s) touch : change la date de modification d'un fichier, en le créant s'il n'existait pas. lsof: affiche la liste des fichiers ouverts. (LiSt Open Files) Manipulations d'archives et compressions bzip2/bunzip2 : compresse et décompresse des fichiers cpio : copie de fichiers à partir de ou vers une archive cpio/tar gzip/gunzip : compresse et décompresse des fichiers. (Gnu ZIPper) pax : un outil qui rassemble les fonctions de tar et de cpio tar : archiveur, capable de fonctionner avec bzip2 ou gzip. (Tape ARchiver) zip/unzip : compresse et décompresse des fichiers. (ZIP) zcat : affiche un fichier compressé (comme cat, mais décompresse au passage) UNIX /Linux Jean Michel Meulien Page 8

9 Recherche find : recherche récursive, à partir d'un répertoire, de fichiers ayant des caractéristiques données. locate : recherche un fichier à partir de la dernière version de la base de données des fichiers (base généralement créée par updatedb). Beaucoup plus rapide que find, mais moins flexible. whereis : recherche une commande dans le PATH et les pages de man correspondants (éventuellement dans MANPATH) et retourne le ou les chemins d'accès complet(s). Si une commande existe avec plusieurs extensions différentes, il les liste toutes (exemple : whereis fsck listera non seulement le chemin complet de fsck, mais aussi celui de fsck.ext2). Il recherche aussi l'éventuelle présence des fichiers sources. which : retourne le chemin d'accès complet d'une commande. Gestion des disques/points de montage df : affiche l'espace libre sur les partitions (Disk Free) dump/restore : sauvegarde et restauration d'un système de fichiers. fsck : effectue une vérification du système de fichiers (FileSystem ChecK); en fonction du type de partition, il appelle l'utilitaire correspondant e2fsck (ou fsck.ext2) pour ext2 ou ext3 (fsck.ext2 et e2fsck sont identiques, il s'agit de deux liens vers le même fichier) reiserfsck pour ReiserFS cramfsck pour cramfs fsck.jfs pour JFS fsck.xfs pour XFS fsck.minix pour le système de fichier de minix fsck.xiafs pour Xiafs fsdb : débogueur de système de fichiers, pour les experts hdparm : tuning d'un disque IDE Sdparm : tuning d'un disque SCSI mkfs : crée un système de fichiers. (MaKe FileSystem) mount : attache un système de fichiers sur un point de montage. umount : détache un système de fichiers. (UnMOUNT). «unmount» reste autorisé. sync : pour imposer une écriture disque (par exemple, avant un arrêt électrique brutal) tune2fs : pour le paramétrage d'une partition ext2 ou ext3 cryptsetup : cryptage d'image disque transparent Manipulation de texte awk : effectue des opérations sur les fichiers (afficher une colonne, la traiter,..) (initiales de ses créateurs : Aho, Kernighan, Weinberger) cat : concatène des fichiers texte. Peut aussi servir à simplement afficher ou lire un fichier. (concatenate) cut : supprime une partie des lignes d'un fichier selon un critère. diff : affiche les différences entre deux fichiers. dos2unix : convertit les retours à la ligne d'un fichier pour qu'elles soient compatibles avec le monde Unix. echo : affiche une ligne de texte donnée en paramètre. UNIX /Linux Jean Michel Meulien Page 9

10 expr : évaluer une expression (mathématique ou sur une chaîne de caractères) fgrep : affiche les lignes qui contiennent une chaîne de caractères donnée (grep -f sous Linux). grep et egrep : affiche les lignes qui contiennent une expression régulière donnée, egrep (grep étendu) est plus riche en possibilités. head : affiche les premières lignes d'un fichier. (opposé de tail) join : fusionne les lignes de deux fichiers contenant un ou plusieurs champs identiques. nl : permet de numéroter les lignes d'un fichier. read : lit une chaîne de caractères à partir de l'entrée standard. sed : effectue des transformations sur un flux de texte (Stream EDitor) sort : trie les lignes d'un texte selon l'ordre alphabétique (ou numérique avec l'option - n). strings : affiche seulement les caractères imprimables (ASCII) d'un fichier binaire. tail : affiche les dernières lignes d'un fichier. (opposé de head) tee : copie de l'entrée standard sur la sortie standard et vers un fichier. (le nom vient de la forme de la lettre T, qui a aussi une «entrée» et deux «sorties») tr : transpose ou élimine des caractères dans une chaîne (TRanspose) uniq : recopie les données en entrée en ne conservant qu'un unique exemplaire de lignes identiques consécutives. unix2dos : convertit les retours à la ligne d'un fichier pour qu'elles soient compatibles avec le monde DOS. wc : permet de compter le nombre de caractères, de mots ou de lignes dans un fichier. Permissions chgrp : change le groupe propriétaire d'un fichier. (CHange GRouP) chmod : change les permissions en lecture, écriture et/ou exécution d'un fichier. (CHange MODes) chown : change le propriétaire d'un fichier. (CHange OWNer) getfacl, setfacl : respectivement, lister ou modifier les ACL de fichier (c'est l'équivalent du CACLS pour le NTFS de Windows) Processus bg : met en background un process en stand-by (quitté avec ctrl-z) comme s'il était lancé avec &. fg : reprend la main (foreground) d'un programme en background (ou quitté avec ctrl-z ou lancé avec &). free : affiche des informations sur l'utilisation de la mémoire. sleep : suspend l'exécution d'un processus pendant un intervalle de temps. fuser : affiche quel processus utilise le fichier donné en paramètre. kill : envoyer un message à un processus donné, généralement pour y mettre fin. Signal SIGTERM (15) par défaut : arrêter le processus proprement 63 signaux possibles de SIGHUP (1) à SIGRTMAX (63) Valeur la plus utilisée : SIGKILL (9), qui termine brutalement un processus killall : tue tous les processus d'un certain type, ou leur envoie un signal donné. killall5 : tue tous les processus. UNIX /Linux Jean Michel Meulien Page 10

11 nohup: permet de lancer un processus qui restera actif même après la déconnexion de l'utilisateur l'ayant initiée. nice : exécute une commande avec une priorité modifiée. pidof : donne le PID du processus spécifié. pkill : même commande que kill, mais par son nom au lieu de son numéro. ps : affiche les processus en cours d'exécution (Process Status) pstree : affiche l'arbre des processus en cours d'exécution. renice : modifie la priorité d'un processus. top : programme interactif qui affiche les processus les plus actifs selon un critère donné. xkill : permet de tuer une application lancée sous X. vmstat : affiche les statistiques systèmes (consommation CPU, mémoire virtuelle). Shells bash (GNU) : Shell compatible sh de GNU (Bourne Again Shell) sh : Shell standard (bourne Shell) csh : C-shell, sa syntaxe de commandes est proche du langage C tcsh : amélioration de csh ksh : Korn Shell, le plus répandu parmi les UNIX commerciaux zsh : Z Shell dash : Debian Almquist Shell Services et démarrage dmesg : affiche les messages apparus au démarrage du système et contrôle les tampons de messages du noyau. init : change le niveau d'exécution (runlevel) du système. runlevel : donne le niveau d'exécution en cours service : démarre, arrête ou redémarre un service, sur certaines distributions linux (Red Hat et ses cousins, mais pas sur Debian et ses dérivés) who who -r : pareil que runlevel who -b : date de dernier boot (basé sur /proc/uptime) who am I voir quel est le login initial whoami voir sous quel login on est connecté Réseaux curl : transfert des données de ou vers un serveur (supporte plusieurs protocoles parmi les plus courants). dhclient ou pump : permet à un client DHCP d'obtenir son adresse Internet Protocol. De façon plus détaillée, le client DHCP cherche un serveur DHCP, via plusieurs requêtes DHCPDISCOVER en BroadCast, puis si tout se passe bien, il fait un DHCPREQUEST adressé au serveur trouvé, il reçoit ensuite de ce serveur un DHCPACK qui lui donne un bail pour une adresse IP. Les ports utilisés sont 67 (BOOTP serveur) et 68 (BOOTP client) UNIX /Linux Jean Michel Meulien Page 11

12 ftp : Client FTP en ligne de commande. host : affiche le nom d'hôte ou l'adresse IP de la machine en argument. hostname : affiche ou modifie le nom d'hôte de la machine. ifconfig : configurer et afficher les paramètres d'une interface réseau La deuxième ligne contient l'adresse IP irssi : un client IRC en mode texte iwconfig pour les réseaux sans fil (affichage et configuration) links : navigateur web en mode texte lynx : navigateur web en mode texte mail : lire ou envoyer des courriels. nslookup : permet de connaître l'adresse IP d'un ordinateur, via un serveur DNS. ping : effectue un ping sur une machine distante, utilise ICMP. route : manipulation des tables de routage. rsh : Shell à distance (Remote SHell) (déprécié au profit de SSH qui apporte le chiffrement). rsync : synchronise un dossier entre deux machines distantes (Remote SYNChronization). sftp : client FTP en mode sécurisé, appelé SFTP. scp : copie distante sécurisée (Secure Copy). ssh : client SSH (Secure SHell). traceroute : trace la route vers une machine distante routeur par routeur, en utilisant le protocole ICMP. tnsping : vérifie si un service Oracle répond sur un serveur. w3m : encore un navigateur en mode texte wget : (Www GET) télécharge des fichiers via les protocoles HTTP, HTTPS et FTP. whois : informations sur les enregistrements de noms de domaine ou d'adresses IP. Utilisateurs chfn : modifie les informations finger de l'usager. (CHange FiNger) chsh : modifie le Shell par défaut de l'usager. (CHange SHell) finger : donne des renseignements sur l'utilisateur groupadd : ajoute un groupe d'utilisateurs. groupdel : supprime un groupe d'utilisateurs. su : commence un nouveau Shell ou une autre commande en changeant l'utilisateur. (Switch User) id : affiche l'identité de l'utilisateur. sudo : exécute un processus avec les droits d'un autre utilisateur selon les règles définies dans le fichier /etc/sudoers users : liste compacte des utilisateurs connectés dans le système (who est meilleur). useradd : ajoute un utilisateur au système. userdel : supprime un utilisateur du système. visudo : édite le fichier /etc/sudoers atomiquement, afin de donner des droits pour l'utilisation de la commande sudo w : affiche la liste des utilisateurs connectés et ce qu'ils sont en train de faire. who : affiche la liste des utilisateurs connectés au système. UNIX /Linux Jean Michel Meulien Page 12

13 whoami et who am i : savoir sous quel nom d'utilisateur (ou d'administrateur) on est connecté (en anglais Who am I?, «Qui suis-je?») ; whoami ne donne pas le même résultat que who am i si l'on est en cours de substitution d'utilisateur (su). Avec who am i, on obtient toujours l'identité de départ (par exemple, si l'utilisateur Jeanmichel adopte l'identité de root avec su, whoami retourne root tandis que who am i renvoie bien Jeanmichel). Commande pour X Window System (X11) startx pour lancer manuellement l'interface graphique lister des informations graphiques : xdpyinfo : informations générales sur le serveur graphique xwininfo : l'utilisateur lance cette commande, puis il clique sur la fenêtre qui l'intéresse et il obtient des informations très détaillées sur les caractéristiques graphiques de cette fenêtre editres : éditeur de ressources graphiques xev : crée une fenêtre et montre quels sont les évènements générés par les différentes actions sur cette fenêtre (MotionNotify, LeaveNotify, ButtonPress, VisibilityNotify, Expose...etc.) xhost : pour contrôler l'accès au serveur X Window System xmodmap : utilitaire pour clavier et souris (tend à disparaître) xrdb : utilitaire pour la base de données des ressources X Window System xset : paramétrer les préférences d'un utilisateur xvidtune : tuning de X Window System xwd : réalise une capture d'écran xeyes : ouvre une fenêtre contenant deux yeux qui suivent le pointeur de la souris, utile pour tester IV) L éditeur VI Unix propose un outil très puissant qui est un éditeur de texte appelé VI. C est un éditeur de type pleine page qui permet de visualiser plusieurs lignes à la fois. Modes opératoires : Mode de saisie : ce qui est tapé sera pris en compte en tant que texte à insérer dans le fichier. Attention, ce n est pas le mode par défaut. Mode commande : ce qui est tapé sera interprété comme une commande. Dans ce cas les caractères n apparaissent pas à l écran. C est le mode par défaut. Mode ex : ce qui est tapé est également interprété comme une commande. Mais cette fois les caractères sont affichés en bas d écran et l appui sur la touche entrée rend la commande effective. On y bascule depuis le mode commande en tapant «:», «/», «?» «!». Le mode commande UNIX /Linux Jean Michel Meulien Page 13

14 La syntaxe d une commande est la suivante : [n] verbe [objet]. Le nombre n permet de répéter la commande n fois. Le verbe matérialise l action. L objet est ce sur quoi la commande doit agir (un mot, une ligne ). Les commandes qui basculent en mode saisie pour l ajout de texte : a ajoute du texte après le curseur. A ajoute du texte en fin de ligne courante. i insert du texte avant le curseur. I insert du texte en début de ligne courante. o ouvre une ligne après la ligne courante. O ouvre une ligne avant la ligne courante. Déplacement de curseur : k d une ligne vers le haut. j d une ligne vers le bas. h d un caractère vers la gauche. I d un caractère vers la droite. G sur la dernière ligne. ng sur la ligne numéro n. w au début du mot suivant. b au début du mot précédent. e à la fin du mot suivant. $ à la fin de la ligne courante. O au début de la ligne courante. L sur la dernière ligne affichée à l écran. H en haut de l écran. Les principales commandes d affichage : CTRL + f affiche la page écran suivante. CTRL + b affiche la page écran précédente. Les principales commandes d effacement : x le caractère courant. dw à partir du curseur jusqu au début du mot suivant. dg jusqu à la fin du fichier. dd la ligne courante. d$ jusqu à la fin de la ligne courante. Pour agir sur un ensemble homogène, il suffit de donner un facteur de répétition. 3dw efface trois mots. Les principales commandes pour modification de texte : rx remplace le caractère courant par le caractère X. UNIX /Linux Jean Michel Meulien Page 14

15 R passe en mode refrappe (overwrite). cw change le mot. cc change la ligne courante. ZZ sortie de vi avec sauvegarde. u pour annuler la dernière commande On rencontre ici les limites du mode commande, si l on veut sortir sans sauvegarder, sauvegarder sous un autre nom, ou encore sauvegarder le fichier sans sortir, il est indispensable de passer en mode ex. Les manipulations de fichier en mode ex Les manipulations sur les fichiers : :q sort sans sauvegarde (ou :q! pour forcer la sortie si vi le demande). :wq(ou ZZ) sort et sauvegarde. :w sauvegarde (write) sans sortir. :r nom_fichier (read) insère le contenu de nom_fichier à partir du curseur. :e nom_fichier (edit) affiche un nouveau fichier en remplaçant le fichier courant. :n,mw nom_fichier écrit le bloc des lignes n à m du fichier courant dans nom_fichier. :w >> nom_fichier écrit le fichier courant à la fin de nom_fichier. Recherches et remplacements : /chaîne_car recherche la chaîne de caractère chaîne_car en balayant le texte vers la fin du fichier et en bouclant.?chaîne_car même principe avec un balayage du curseur vers le début du fichier. n permet d atteindre l occurrence suivante dans le sens de la recherche. N permet d atteindre l occurrence précédente en inversant le sens de la recherche. :s/ancien/nouveau/g substitue sur la ligne courante ancien par nouveau. :1,$s/ancien/nouveau/g même action sur le fichier entier. :n,ms/ancien/nouveau/g même action sur les lignes n à m. g permet de recommencer l opération si l occurrence apparaît plusieurs fois sur une même ligne. Pour rechercher du texte /texte_cherché Pour substituer du texte : ligne_début, ligne_fin/chaine1/chaine2/g substitue la chaine2 à la chaine1 entre les lignes ligne_début et ligne_fin sans demande de confirmation. UNIX /Linux Jean Michel Meulien Page 15

16 : ligne_début, ligne_fin/chaine1/chaine2/c substitue la chaine2 à la chaine1 entre les lignes ligne_début et ligne_fin avec demande de confirmation. Les expressions régulières Certains caractères spéciaux peuvent être utilisés dans les chaînes à rechercher (nommées aussi pattern). Ils vont faciliter les recherches et les remplacements en permettant par exemple de décrire plusieurs chaînes en une seule. Les chaînes de caractères composées de caractères spéciaux sont appelées expressions régulières. Caractères spéciaux utilisés : ^chaîne_car sélectionne chaîne_car si elle se trouve en début de ligne. chaîne_car$ sélectionne chaîne_car si elle se trouve en fin de ligne. [a-d A-D] sélectionne le caractère s il appartient à l ensemble entre crochets.. sélectionne tout caractère simple. X* sélectionne de zéro à plusieurs X. Exemples de combinaison de caractères spéciaux : /^[adj].* recherche toutes lignes commençant par la lettre a,d ou j et qui se poursuit par n importe quels caractères quelque soit leur nombre. /exo[0-1][0-9] recherche exo00 exo01.. exo19. Pour protéger un caractère spécial, c'est-à-dire ne pas l interpréter mais l inclure dans la chaine à rechercher, il faut précéder d un back slash. Couper, copier, coller Les tampons (buffers) : Lorsque l utilisateur coupe ou copie du texte, il est placé dans un tampon en mémoire. Le contenu du tampon peut être récupéré et collé ailleurs, et reste disponible jusqu à ce que l utilisateur coupe ou copie à nouveau. Chaque nouvelle mémorisation écrase la précédente : d objet : coupe (efface) l objet et le place dans le tampon. y objet : copie l objet dans le tampon. p : colle après le curseur. P : colle avant le curseur. La succession couper, coller correspond à un déplacement de texte. Quelques commandes pratiques. : Une action dans le texte doit être parfois effectuée plusieurs fois à des endroits différents. La commande. permet de répéter ailleurs le dernier changement intervenu sur le texte. UNIX /Linux Jean Michel Meulien Page 16

17 u, U (undo) : En cas d erreur, il est utile de pouvoir annuler la dernière commande. u permet d annuler le dernier changement et U permet d annuler ceux réalisés sur la ligne courante, à condition toutefois de ne pas avoir déplacé le curseur précédemment. J : permet de supprimer un retour ligne. Elle joint la suivante à la ligne courante. CTRL+ g : permet d afficher le nom du fichier ouvert, en bas de l écran. :!commande : exécute la commande Shell spécifiée avant de revenir à vi.!!commande : exécute la commande Shell spécifiée et intègre son résultat dans le texte. Un seul! apparaît en bas de l écran. Configuration de l éditeur Pour rendre l éditeur plus souple à l utilisation, le mode ex modifie la configuration d un certain nombre d options pour la session vi courante. Syntaxe de la commande set : : set all : affiche la configuration courante. :set option : active l option. :set nooption : désactive l option. Quelques options utiles : autoindent : conserve la dernière indentation utilisée d une ligne à l autre. CTRL + d replace le curseur à la marge au changement de ligne. number : le numéro de lignes s affiche tout à fait à gauche. tabstop=x : configure le nombre d espaces générés par l appui de la touche de tabulation. Par défaut X est égal à 8 espaces. redraw : rafraîchit l écran après chaque changement, ce mode est activé par défaut, selon le type de terminal utilisé, il peut être nécessaire de le désactiver. Dans ce cas, la mise à jour de l affichage s effectue par CTRL + r ou CTRL +1. showmode : en mode saisie, l indication INPUT MODE est affichée en bas d écran. Toutes ces options peuvent être configurées de manière permanente en entrant ces lignes (sans les deux points placés en première position) dans le fichier d initialisation de vi nommé «.exrc» stocké dans le répertoire d accueil de l utilisateur (HOME directory). UNIX /Linux Jean Michel Meulien Page 17

18 V) Le Shell Il y a plusieurs types de Shell, qui sont disponibles pour Unix/Linux. Les plus populaires sont : Bourne shell (sh) : C'est le Shell original d'unix, il est très classique, et dépassé. C shell (csh) : La syntaxe du csh est similaire à celle du langage C. TC shell (tcsh) : Ce Shell vient avec les caractéristiques du csh, mais avec le style emac pour l'edition {emac : un éditeur et...} Korn shell (ksh) : Il a les mêmes caractéristiques que le tcsh, mais sa syntaxe est similaire à celle du sh. Bourne Again SHell (bash) : C est le plus populaire, il est basé sur le sh, mais il a toutes les caractéristiques facilitant l'administration système. (Voir quelques exemples de Shell «chapitre XIX de ce fichier») Quelques commandes Shell intéressantes : $? : Valeur de retour de la dernière commande saisie. Attention : la valeur 0 retourne vraie, autres valeurs que 0 toujours fausses. $# : Nombre de paramètres d une commande. $* : Liste des paramètres d une commande. $0 ksh : Nom du programme. $$ : Le numéro du PID en cours. La commande «test» : 1) test sur les fichiers $ test f fich1 $ echo $? 0 Option Signification -b Le fichier est-il orienté bloc? -c Le fichier est-il orienté caractère? -d Le fichier représente t-il un répertoire? -f Le fichier est-il un fichier ordinaire? -h Le fichier possède-t-il un lien symbolique? UNIX /Linux Jean Michel Meulien Page 18

19 -p Le fichier est-il un «pipe nommé»? -r Le fichier est-il lisible pour l utilisateur? -s Le fichier a-t-il au moins un caractère? -w Le fichier peut-il être écrit par l utilisateur? -x Le fichier peut-il être exécuté par l utilisateur? 2) test sur les chaines de caractères $ test z variable Si la variable est une chaine de caractères vide, la commande retourne le code 0. $ test n variable Si la variable est une chaine de caractères non vide, la commande retourne le code 0. 3) test numérique $ a=10 $ test ${a} gt 8 Option -eq -ne -lt -gt -le -ge Signification égalité Différence Strictement inférieur Strictement supérieur Inférieur ou égal Supérieur ou égal Combinaison de test : Option Signification! Négation logique du test -a Combinaison de test par un ET logique -o Combinaison de test par un OU logique L expression «if» Syntaxe: if Commandes then Commandes fi Ou : UNIX /Linux Jean Michel Meulien Page 19

20 if Commandes then Commandes else Commandes fi L expression «case» Syntaxe: case valeur in choix 1) commandes ;; choix 2) commandes ;; esac L expression «select» On peut également entrer une valeur avec la commande select qui permet de présenter un menu suivant une valeur de choix. Syntaxe: select <variable> in <liste de choix> do commande 1 commande 2. done A noter que la commande select affiche une liste de choix numérotés, le numéro répondu se trouve dans la variable prédéfinie REPLY et le choix de la liste sera contenu dans <variable>. On peut sortir de la boucle avec la commande break. La boucle «for» Contrairement aux autres langages, elle n est pas utilisée pour du comptage. On ne peut pas fixer une valeur de départ et une valeur de fin. Syntaxe: for variable in liste do UNIX /Linux Jean Michel Meulien Page 20

21 commandes done La boucle «while» La boucle consiste à piloter l exécution d une commande en fonction du code de retour de la commande précédente. Aussi longtemps que la dernière commande de la série placée derrière le mot-clé «while» retourne la valeur de 0, la série de commandes placée entre les mots-clés do et done sera exécutée. Si cette valeur est différente de 0, la boucle sera interrompue. Syntaxe: while Suitedecommandes do Série de commandes done La boucle «until» Cette boucle inverse la logique de la boucle «while». Syntaxe: until Suitedecommandes do Série de commandes done La boucle «until» est exécutée jusqu à ce que la dernière commande de la suite de commandes placée derrière le mot-clé «until» renvoie une valeur de 0, UNIX /Linux Jean Michel Meulien Page 21

22 VI) La compilation La compilation des noyaux 2.4 Elle passe par trois étapes : génération des dépendances compilation du noyau compilation des modules # make dep (gestion des dépendances entre les modules) # make bzimage (noyau) # make modules (création des modules) La compilation des noyaux 2.6 # make Résumé : Etape Action Noyau 2.4 Action Noyau 2.6 Configuration Compilation Installation Edition du Makefile pour positionner l EXTRAVERSION make menuconfig make dep make bzimage make make modules cp arch/i386/boot/bzimage /boot/vmlinuz- VERSION[EXTRAVERSION] make modules_install mkinitrd /boot/initrd-version[extraversion].img VERSION[EXTRAVERSION] cp.config /boot/config-version[extraversion] cp System.map /boot/system.map- VERSION[EXTRAVERSION] Configuration du chargeur de démarrage Edition /etc/lilo.conf puis lilo ou Edition /boot/grub/menu.lst VII) Le ramdisk (initrd) Lorsqu un noyau Linux utilise des modules, certains pilotes nécessaires au démarrage de la machine peuvent se trouver compilés sous forme de modules et ainsi empêcher ce démarrage de s effectuer correctement (par exemple les pilotes des cartes SCSI, si le pilote n est pas chargé, le noyau ne pourra accéder aux disques durs qui contiennent les fichiers fournissant le ou les modules du pilote SCSI). Pour éviter cela, le noyau Linux utilise au démarrage un UNIX /Linux Jean Michel Meulien Page 22

23 mécanisme de ramdisk qui contient les pilotes nécessaires à accéder aux disques. Ce ramdisk est chargé en mémoire par le chargeur de démarrage. Lorsque le noyau s exécute, il utilise les pilotes contenus dans cet initrd. Le ramdisk se présente sous la forme d un fichier situé habituellement dans le répertoire /boot/initrd-version[extraversion].img. Une commande permet de créer l initrd, celle-ci s appelle mkinitrd. Elle prend en paramètre l emplacement du fichier à créer et le numéro de version (plus l extraversion) du noyau. Sa syntaxe peut légèrement varier selon les distributions Linux. Il est donc conseillé de vérifier cette syntaxe. Dans l exemple, la syntaxe correspond à une distribution Red Hat ou Mandrake : # mkinitrd /boot/initrd xeon-smp.img xeon-smp Le fichier généré ici s appellerait /boot/initrd xeon-smp.img. VIII) Le Système de fichiers Super bloc I-List Les informations du super bloc Blocs -taille du système de fichiers -nom du système de fichiers -taille de zone des inodes -taille d un bloc logique -liste des inodes libres -liste des blocs de données libres -nom du système de fichiers -taille du bloc 4k ou 8k -magic number -nombre total de blocs libres -nombre total d inodes libres -taille des blocs Inodes (information node) : nœud d informations. Les points de montage ont toujours un numéro d inodes égalent à 2. Pour formater il y a en principe deux choses a faire: 1) partitionner le disque en une ou plusieurs partitions, par exemple avec la commande: UNIX /Linux Jean Michel Meulien Page 23

24 fdisk /dev/hdb Dans l'hypothèse ou le disque serait /dev/hdb (2ème disque ide par exemple), on peut aussi avoir /dev/hda, /dev/hdc,... (1er, 3eme disque ide) ou /dev/sda, /dev/sdb pour de disques scsi, sata. A savoir les cdrom/graveurs ide peuvent aussi occuper un nom comme /dev/hdb et dans ce cas un 2ème disque serait plutôt /dev/hdc. Apres avoir lance fdisk on tape "m" pour avoir la liste de commandes (affichage du tableau des partitions, crée, détruire de partitions, changer l attribut d'une partition etc.). Si on a installe un disque tout neuf, il faut alors créer de partitions qui s'appellent alors /dev/hdb1, /dev/hdb2,... ou /dev/hdb5,... Il est possible que le disque soit déjà correctement partitionné et que l on souhaite simplement formater une des partitions. Dans ce cas passer à l'étape 2. 2) Une fois qu on a les partitions, on peut les formater, c.-a-d. créer un système de fichiers la dessus ("filesystem"). En Linux (Mandrake/Fedora) on utilise d'habitude un système de type ext3. Il y a aussi riser (typiquement dans Suse) et plein d'autres. Notamment il y a vfat (pour fat32, compatible avec Windows). Par exemple, pour créer un système de fichiers ext3 sur la 2eme partition d'un 2ème disque ide on pourrait faire: mkfs.ext /dev/hdb2 Ou mkfs.ext -c /dev/hdb2 Ou mkfs.ext -c -c /dev/hdb2 La première méthode est la plus rapide sans vérification, la 2ème (avec un "-c") fait un formatage avec une vérification simple en lecture des blocs et la 3ème (celle avec deux "-c") fait une vérification longue en lecture et écriture. Selon la taille du disque et vitesse du PC ca peut durer très longtemps (10 minutes, 30 minutes, des heures), notamment le truc avec "-c - c". Le mieux est certainement la vérification simple avec "-c". Pour créer un vfat, c'est pareil mais avec la commande mkfs.vfat (ou mkfs.msdos ou mkdosfs, tout marche). Cependant pour le vfat (fat32), on peut aussi passer par Windows pour formater, c'est peut-être mieux. Pour toutes les commandes les pages man ("man mkfs.ext3", "man fdisk" etc.) pour connaitre les autres options et leurs significations. Inutile de dire que tout ca, la création de partitions et aussi le formatage est hyper dangereux et très délicat. C'est très facile de détruire son système avec une mauvaise manipulation (par exemple confondre 1er disque /dev/hda et 2ème disque /dev/hdb). Utiliser l utilitaire LVM LVM (Logical Volume Manager) Installer lvm2 aptitude install lvm2 ensuite : UNIX /Linux Jean Michel Meulien Page 24

25 1) création des partitions lvcreate L 5G n home /dev/vg00 2) création d un système de fichier mkfs j /dev/vg00/home L home Création d un système de fichier en mode caractère mkfs j /dev/vg00/rhome L home 3) montage du système de fichiers sur le point de montage mount /dev/vg00/home / cible UNIX /Linux Jean Michel Meulien Page 25

26 IX) La création d archive Deux façons de procéder avec «cpio» ou avec «tar»: CPIO Création d archive ou sauvegarde : find. print cpio ocvb > /dev/rt0 B: bloc copié sur bande 512 MO Interrogation de la fiche archive: cpio icvbt < /dev/rt0 Restauration : cpio icvbdm < /dev/rt0 TAR (tape archiver) Création d archive ou sauvegarde : tar cvf /tmp/fichier.tar /home/fichier. Interrogation de la fiche archive: tar tvf /tmp/fichier.tar Restauration de la fiche archive: tar xvf /tmp/fichier.tar UNIX /Linux Jean Michel Meulien Page 26

27 X) La planification de taches (crontab) cron.allow cron.deny Créer un fichier de commande de cron «essai» dans : usr/spool/cron/crontabs * * * * * Minute heure jour du mois mois de l année jour de la semaine (0-59) (0-23) (1-31) (1-12) (0-6) Créer un Shell (sauve) cd find. print cpio ocvb > /tmp/ &logname.cpio rajouter cette ligne dans le fichier essai 0 21 * * 1-5 /users/dossier/sauve Exécuter: crontab essai crontab l (pour savoir si le fichier existe) crontab l > essai UNIX /Linux Jean Michel Meulien Page 27

28 XI) Le démarrage (boot) Le processus /etc/init lance le démarrage du système : boot chargement du noyau /etc/init lancement des commandes à l état sysinit lancement des commandes à l état boot lancement des commandes à l état bootwait lancement des commandes à l état wait. Le fichier initab : Champ 1 Champ 2 Champ 3 Champ 4 Identifiant de l entrée Run-Levels Action, condition Processus #Commentaires Le run level : champ 2 Niveau S,s : mode mono-utilisateur Niveau 0 : Arrêt machine. de lancement Niveau 1: Idem niveau s, avec en plus démontage des systèmes de fichiers. Niveau 2-5: Niveaux libres pour le fonctionnement du système. Niveau 6 : Arrêt machine puis reboot. L action : champ 3 off : La commande du dernier champ ne doit pas être exécutée, si un processus est actif, il est arrêté. respawn : Si la commande du dernier champ n a pas été lancée, un processus fils est crée en vue de son exécution. Il travaille de façon asynchrone. Dès qu il a fini son travail, un nouveau processus est mis en place. wait : Un processus fils est crée en vue de son exécution. Il travaille de façon synchrone et donc /etc/init attend la fin de son exécution avant de poursuivre l examen du fichier inittab. once: Identique à wait, mais sans synchronisation. boot: La commande correspondante ne sera lancée qu au démarrage du système. Pas d attente de la fin de son activité. bootwait: Comme boot, mais avec attente de la fin de son action. powerfail: Cette entrée et la commande correspondante ne sont traitées que si le processus /etc/init a reçu un signal SIGPWR. Ce signal est utilisé pour informer d une rupture de l alimentation électrique. UNIX /Linux Jean Michel Meulien Page 28

29 powerwait: Comme powerfail avec attente de fin d exécution. sysinit: Lors du lancement de la commande, la console devra être accédée de façon matérielle et non logique. initdefault: indique le run-level implicite du système. Exemple : /etc/rc.d/rc{runlevel}.d /etc/rc.d/rc0.d ou init 0 (arrêt de la machine) UNIX /Linux Jean Michel Meulien Page 29

30 XII) Le routage Lancer le service : /etc/init.d/network start (ou restart ou stop) vi /etc/hosts localhost SE PC SE PC10 vi /etc/networks vi /etc/networks (On décrit les réseaux) eth0_se eth0_se SE1 HP) route add net gateway SE1 Linux) route add -net netmask gw SE1 dev eth0 SE2 HP) route add net gateway SE2 Linux) route add -net netmask gw SE2 dev eth0 On peut également utiliser /etc/sysconfig/network et /etc/sysconfig/networkscripts/ifcfg-eth0 à la place de /etc/networks Une route par défaut (pas de Gateway) HP) route add default dev eth1 Linux) route add -net netmask dev eth1 Liaison point à point TCP/IP (routage host à host) Linux) route add hosts dev eth1 UNIX /Linux Jean Michel Meulien Page 30

31 XIII) Le serveur Apache 1) Vérification que le démon apache est installé ps ef grep apache ou httpd ou rpm qal grep httpd 2) Vérification du service réseau netstat antp grep more Lancer ou relancer le service : /etc/init.d/httpd start ou restart 3) Le «Document root» (faire une recherche dans le fichier httpd) DocumentRoot «/var/www/html»// ce chemin peut-être modifié. 4) Le «Virtual host» deux ou plusieurs sites sur le même serveur <VirtualHost * : 7500> DocumentRoot «/home/dossier» DirectoryIndex index.html <Directory «/home/dossier»> Order allow, deny allow from all </Directory> < /VirtualHost> 5) La clause Listen Le port d écoute sur lequel l application va s afficher : listen : 80 listen : 7500 (Ajouter une clause listen pour chaque site supplémentaire sur le serveur) 6) Les logs apache : cd var/log/httpd access_log, error_log, ssl_access_log, ssl_error_log, ssl_request_log. Les ouvrir avec head ou tail Exemple : head access_log ou tail f access_log La compression GZIP AddOutputFilterByType DEFLATE text/plain text/css application/x-javascript text/javascript text/xml text/html UNIX /Linux Jean Michel Meulien Page 31

32 Si vous utilisez GWT (Google Webmaster Tools), vous avez pu constater qu il donne des pistes d amélioration pour la performance des sites internet, j ai constaté pour un site un peu lent que GWT suggérait : Autoriser la compression à l aide de gzip Pour faire cela, il va falloir modifier les paramètres d Apache. Il faut tout d abord charger les modules deflate et headers, sur une configuration debian classique cela donne dans le fichier de configuration d Apache : LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so La configuration de deflate est gérée dans le fichier deflate.conf du répertoire modsavailable, il faut y ajouter : AddOutputFilterByType DEFLATE text/plain text/css application/x-javascript text/xml text/html Feedburner RSS htaccess Si vous avez en place un flux rss depuis un moment et que vous souhaitez obtenir des statistiques sur celui-ci, vous pouvez utiliser feedburner qui est fait pour ça. Un problème va cependant se poser, les utilisateurs qui auront déjà souscrit à votre flux ne seront pas comptabilisés dans ces statistiques. Vous pouvez alors effectuer une redirection htaccess (ou directement dans vos paramètres apache) de votre flux initial (disons vers Cependant attention aux règles que vous placez dans votre htaccess, car il faut que votre flux reste accessible au robot de feedburner, sinon, il ne pourra plus s afficher, vous pouvez faire ainsi : RewriteCond %{ HTTP_USER_AGENT}! FeedBurner RewriteRule ^/rss\.xml$ [L,R=302] Ainsi, le robot lira de manière normale votre flux et les utilisateurs de votre flux habituel seront redirigés vers sa réplique FeedBurner, ce qui permettra d intégrer les utilisateurs déjà inscrits à vos statistiques RSS. Forcer le téléchargement d un type de fichier sur Apache Pour forcer le téléchargement d un type de fichier, on peut utiliser plusieurs méthodes. Cela peut être utile si par exemple vous souhaitez que les fichiers pdf soient téléchargés et pas simplement affichés dans le navigateur. Nous utiliserons le fichier de configuration d apache : UNIX /Linux Jean Michel Meulien Page 32

33 AddType application/octet-stream.pdf.zip.rar Ainsi, les fichiers pdf zip et rar seront téléchargés. Autre méthode : <FilesMatch "\.(pdf zip rar)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch> Créer un fichier htpasswd Rien de plus simple avec la commande htpasswd de Linux. Utilisation : htpasswd -c.htpasswd demo L option -c sert à créer un nouveau fichier si besoin, demo correspond à l identifiant que l on souhaite, l invite de commande demandera ensuite un mot de passe et une confirmation de celui-ci. Voici un inventaire des options possibles : -c créer un nouveau fichier -n ne pas ajouter l'entrée, juste montrer le résultat dans la console -m force l'encryptage md5 du mot de passe. -d force encryptage du mot de passe. -p n'encrypte pas le mot de passe. -s force l'encryptage SHA du mot de passe. -D Supprime l'utilisateur du fichier. Domaine avec et sans www Cette partie est classée dans la catégorie apache, mais relève plus de la gestion des DNS et des serveurs de noms de domaine tel que Bind. Souvent, certains sites ne sont disponibles qu en tapant ou La bonne pratique voudrait que celui-ci soit disponible via les deux urls. Pour parvenir à cette fin, encore faut-il que Bind et Apache soient bien paramétrés. Configuration de Bind : le fichier d enregistrement devrait ressembler à peu près à ceci (hébergé par ovh) : $ttl jmm.net. IN SOA xxxx.ovh.com. sl.jmm.com. ( UNIX /Linux Jean Michel Meulien Page 33

34 IN NS xxxx.ovh.com. # DNS IN NS ns.ovh.com. #DNS secondaire IN CNAME IN A xxx.xxx.xxx.xxx #remplacer par votre IP (arobase) est un alias pour jmm.net, tout simplement. N oubliez pas d enregistrer un DNS secondaire, même pour les domaines en.com.net et consort, c est largement préférable. Ainsi, et jmm.net pointeront vers ma machine, merveilleusement illustrée par xxxx.ovh.com. Il reste maintenant à configurer le serveur Web Configuration de Apache Configuration du domaine dans le fichier de configuration de celui-ci : DocumentRoot /var/www/xxx ServerName jmm.net ServerAlias Le domaine principal est jmm.net et que est un alias de ce domaine. Rediriger le domaine avec www vers le domaine sans Les référenceurs sont très attachés à éviter au maximum ce qui s appelle duplicate content (page accessible à partir de plusieurs urls, ie et cet état de fait n est donc pas satisfaisant sur certains cahiers des charges. Nous pouvons résoudre ce problème grâce au mod_rewrite d apache en éditant le fichier.htaccess ou celui de configuration du site : RewriteEngine On RewriteCond %{HTTP_HOST}!^jmm\.net [NC] RewriteRule (.*) [QSA,R=301,L] Tous les sous domaines seront donc redirigés vers le domaine jmm.net. Notez la présence des flags en bout de ligne, pour en savoir plus là dessus vous pouvez consulter la documentation officielle des flags du module rewrite. Vite fait pour les flags utilisés ici : [L] : si la règle match, le serveur n ira pas plus loin [R=301] : effectue une redirection permanente [QSA] : par défaut, RewriteRule supprime les variables GET, le flag QSA permet de les conserver. [NC] : nocase => la règle sera insensible à la casse (n oubliez pas de redémarrer les services apache et bind ). UNIX /Linux Jean Michel Meulien Page 34

35 XIV) Le démon inetd On fait parfois référence à inetd comme étant le «super-serveur Internet» parce qu'il gère les connexions pour plusieurs services. Quand une connexion est reçue par inetd, ce dernier détermine à quel programme la connexion est destinée, invoque le processus en question et lui délègue la «socket» (le programme est invoqué avec la «socket» service comme entrée standard, sortie et descripteurs d'erreur). Exécuter inetd pour les serveurs qui ne sont pas utilisés intensément peut réduire la charge système globale quand on compare avec l'exécution de chaque «daemon» individuellement en mode autonome. inetd est utilisé pour invoquer d'autres «daemon», mais plusieurs protocoles triviaux sont gérés directement, comme chargen, auth, et daytime. Le fichier de configuration /etc/inetd.conf. inetd est initialisé par l'intermédiaire du système rc(8). L'option inetd_enable est positionnée à la valeur NO par défaut, mais peut être activée par sysinstall lors de l'installation en fonction de la configuration choisie par l'utilisateur. Placer inetd_enable="yes" ou inetd_enable="no" dans /etc/rc.conf activera ou désactivera le lancement d'inetd à la mise en route du système. La commande: # /etc/rc.d/inetd rcvar Peut être lancée pour afficher le paramétrage en vigueur. De plus, différentes options de ligne de commande peuvent être passées à inetd par l'intermédiaire de l'option inetd_flags. XV) NFS (Network File System) Le processus démon ps ef grep nfsd Sinon, démarrer le service /etc/init.d/nfsd start ou # service nfs start ou # service portmap start Le service réseau netstat antp grep portmap Sur le serveur nfs : déclarer les répertoires dans le fichier exports vi /etc/exports /users/fichier (rw) UNIX /Linux Jean Michel Meulien Page 35

36 Exécuter : exportfs av Sur le client nfs (réaliser un ordre de montage) cd /home mkdir rep chmod 777 rep mount t /home/rep XVI) Le serveur Proxy C est un service réseau (processus + IP + n port). 1) Il permet la sécurisation des accès (filtrages sur les adresses sources et les adresses de destination) 2) Il optimise les flux réseaux en utilisant le stockage des pages statiques (pages, images).c est un mécanisme de cache. Installer la plateforme d administration webmin Vérification de son exécution /etc/rc.d/init.d/webmin start N processus /var/run/squid.pid Se connecter à l adresse suivante: Le fichier de configuration /etc/squid/squid.conf Le cache /var/spool/squid Les journaux /var/log/squid access.log, error.log, cache.log Les ACL (Access Control List) sont des règles qui permettent le filtrage par plages d adresses IP ou de ports. On peut administrer ces règles avec webmin. UNIX /Linux Jean Michel Meulien Page 36

37 XVII) Samba Démarrer le service /etc/init.d/smbd start Le fichier de configuration /etc/samba/smb.conf XVIII) L optimisation du système sar (system audit ou accounted report) sar a est utile pour le suivi des opérations d accès sur les fichiers sar b est utile pour le suivi activité-buffer sar c est utile pour le suivi des appels systèmes sar d pour le suivi de l activité des périphériques sar m pour le suivi des communications interprocessus (semaphores) sar q pour le suivi des files d attente sar u utilisation du CPU sar v pour le suivi des entrées de tables allouées dans le noyau sar p pour le suivi de la pagination sar r pour le suivi du nombre de pages mémoire et fichiers swap sar y pour le suivi des terminaux UNIX /Linux Jean Michel Meulien Page 37

38 XIX) Exemples de Shell : Pour exécuter un Shell, il faut le taper dans un fichier et ensuite dans la console taper./nom_du_fichier.sh Paramétres du programme (./nom.sh var1 var2 var3 var4 var5) #!/bin/bash echo "Le nom du programme est $0" echo "le nombre de paramètres est $#" echo "la liste des paramètres est $*" let som=$1+$2+$3+$4+$5 echo "La somme est égale à $som" Sélection de boisssons #!/bin/bash echo "Entrer le numéro de votre commande" echo "Que désirez-vous boire?" select boisson in "Non rien merci" "Gueuze" "MUTZIG" "1664" "Jus de fruit" "Eau minérale" "Thé" "Café" do echo "Vous avez fait le choix numéro $REPLY" if test "$REPLY" -eq 1 then echo "Au revoir! " break else echo "Votre $boisson est servi(e)" fi done Vérification de savoir si c est un fichier ou un répertoire ou autre #!bin/bash UNIX /Linux Jean Michel Meulien Page 38

39 echo "donner un nom de fichier" read nom if test -f $nom then echo "c'est un fichier ordinaire" elif test -d $nom then echo "c'est un répertoire" else echo "c'est un autre type de fichier" fi Affichage de différentes informations machine #!/bin/bash while true do echo "entrer un chiffre de 1 à 5" read a case $a in 1)hostname;; 2)df;; 3)ifconfig eth0;; 4)echo "bonjour";; 5)exit;; esac done Calcul avec boucle #!/bin/bash UNIX /Linux Jean Michel Meulien Page 39

40 i=0 while test $i -ne 100 do let i=$i+1 echo $i done Calcul avec boucle #!/bin/bash i=1 while test $i -le 100 do let i=$i*2 echo $i done Affichage de la date et de l heure (en français) #!/bin/bash #affichage de la date jours=`date cut -f1 -d" "` jourm=`date cut -f2 -d" "` mois=`date cut -f3 -d" "` annee=`date cut -f4 -d" "` heures=`date cut -f5 -d" "` hh=`date cut -f5 -d" " cut -f1 -d":"` mm=`date cut -f5 -d" " cut -f2 -d":"` sec=`date cut -f5 -d" " cut -f3 -d":"` echo " nous sommes le $jours $jourm du mois de $mois de l'année $annee " echo "il est $heures" UNIX /Linux Jean Michel Meulien Page 40

41 echo "Il est $hh heures, $mm minutes et $sec secondes" Faire un menu avec boucle et afficher : L adresse IP de la machine Liste des fichiers de l'arborescence Liste des utilisateurs connectés L'état du spooler Le nom de la machine Réponse : while true do cd echo «L'adresse IP de la machine taper 1» echo «Liste des fichiers de l'arborescence taper 2» echo «Liste des utilisateurs connectés taper 3» echo «L état du spooler taper 4» echo «Le nom de la machine taper 5» echo «Quitter taper Fin» read CHOIX case $CHOIX in 1) /etc/ifconfig lan0;; 2) cd ; ls ;; 3)who ;; 4)lpstat t ;; 5) hostname ;; Fin) exit ;; esac done Autre Shell : Demande un nombre et affiche bonjour un (nombre-1) de fois Réponse : cd clear echo «saisissez un nombre» read nombre i=1 while [$i le $nombre] do echo bonjour i = `expr $i + 1` UNIX /Linux Jean Michel Meulien Page 41

42 done Autre Shell : Afficher la date et l heure (version anglaise) Réponse: cd clear JJ=`date cut f3 d ` JOUR=`date cut -f1 d ` AAAA=`date cut f6 d ` MM=`date cut f2 d ` HH= `date cut f4 d cut -f1 d : ` MIN= `date cut f4 -d cut f2 -d : ` SEC= `date cut f4 d cut f3 -d : ` echo Bonjour nous sommes le $JJ $JOUR du mois de $MM de l année $AAAA echo «et il est $HH heures $MIN minutes $SEC secondes» Autre Shell : Créer une archive : Sauvegarde, interrogation et extraction de l archive. Réponse : cd clear while true do echo «sauvegarde taper 1» echo «interrogation taper 2» echo «restauration taper 3» echo «sortie taper 4» read CHOIX case $CHOIX in UNIX /Linux Jean Michel Meulien Page 42

43 1) tar cvf /tmp/$logname.tar. [ $? ne 0] && echo «problème» && exit ;; 2) tar tvf /tmp/$logname.tar [ $? ne 0] && echo «problème fichier» && exit ;; 3) tar xvf /tmp/$logname.tar ;; 4) exit ;; esac done Autre Shell : Créer une archive (méthode différente): Sauvegarde, interrogation et extraction de l archive. Réponse : cd clear while true do echo «sauvegarde de l arborescence : taper 1» echo «interrogation de l archive : taper 2» echo «restauration de l arborescence : taper 3» echo «sortie taper F» echo \t saisir votre choix :» read CH case $CH in 1) echo «création sauvegarde..» find. print cpio ocvb > /tmp/$logname.cpio if [ $? ne 0] then echo «échec sauvegarde. EXIT!!!» pause 3 exit fi ;; 2) echo «interrogation fichier archive.» UNIX /Linux Jean Michel Meulien Page 43

44 cpio icvbt < /tmp/$logname.cpio if [ $? ne 0] then echo «problème lecture sur fichier archive» ;; exit 2 pause 3 fi pause 3 3) echo «restauration de mon répertoire.» cd cpio icvbd < /tmp/$logname.cpio ;; F f) break ;; *) echo erreur de saisie esac done Autre Shell : ;; Faire un menu avec boucle et afficher : Afficher le fichier hosts Afficher les utilisateurs Afficher le nom de la machine Afficher l adresse IP de la machine Afficher le programme Réponse : while true do cd echo «choix 1 : Affichage du fichier hosts» echo «choix 2 : Affichage des utilisateurs» echo «choix 3 : Affichage du nom de la machine» echo «choix 4 : Affichage de l adresse IP de la machine» echo «choix 5 : Affichage du programme» echo «Quitter taper Fin» read CHOIX case $CHOIX in UNIX /Linux Jean Michel Meulien Page 44

45 1) cat /etc/hosts ;; 2) who ;; 3) hostname;; 4) /etc/ifconfig lan0;; 5) break ;; Fin) exit ;; esac done Autre Shell : Vérifier l existence du fichier «chiffre» : Réponse : if test f chiffre then echo le fichier chiffre existe action de sauvegarde» cp chiffre sauv.chiffre fi while true do echo \t\t MENU echo «Veuillez indiquer un nombre compris entre 1 et 99 ou Fin pour sortir» read NBRE case $NBRE in [1-9] [1-9] [0-9] ) echo $NBRE >>chiffre ;; Fin fin) break ;; *) echo erreur de choix ;; esac done echo «affichage du fichier» cat chiffre Autre Shell : Nombre total de fichiers et nombre de fichiers répertoire et ordinaires : Réponse : clear cd UNIX /Linux Jean Michel Meulien Page 45

46 ORD =0 TOT =0 REP =0 for NOM in `find. print` do TOT=`expr $TOT + 1` if test f $NOM then ORD=`expr $ORD + 1` echo $NOM est un fichier ordinaire» fi if test d $NOM then REP=`expr $REP + 1` echo $NOM est un fichier répertoire» fi done echo «le nombre de fichiers total est $TOT» echo «le nombre de fichiers répertoire est $REP» echo «le nombre de fichiers ordinaires est $ORD» Autre Shell : Affichage Adresse IP et Arborescence Réponse : cd clear who > liste cp /etc/hosts fichier1 UNIX /Linux Jean Michel Meulien Page 46

47 mkdir rep1 rep2 cd rep1 env > environnement cd.. /rep2 cat /etc/passwd grep «$LOGNAME» > extrait ln extrait../lien cd echo «Affichage de l adresse IP» /etc/ifconfig lan0 echo «Affichage de l arborescence» ll R Autre Shell : Nom du programme, nombre et liste de paramètres : (On lance le TP avec 4 paramètres par ex : tp ) Réponse : echo «le nom du programme est $0» echo «le nombre de paramètres est $#» echo «la liste des paramètres est $*» SOM= ` expr $1 + $2 + $3 + $4 ` echo «la somme est égale à $SOM» NBRE =`expr $SOM :.* ` echo «le nombre de caractères de la somme est $NBRE» Autre Shell : Indiquer le type de fichiers parmi une liste: Réponse : cd clear echo «\t\t Indiquer un nom de fichier parmi la liste suivante» ll UNIX /Linux Jean Michel Meulien Page 47

48 read NOM if test f $NOM then echo «$NOM est un fichier ordinaire» if test r $NOM then echo «$NOM est un fichier ordinaire lisible» cat $NOM else echo «$NOM est un fichier ordinaire non lisible» fi else if test d $NOM then echo «$NOM est un fichier répertoire» cd $NOM ll else echo $NOM n est ni un fichier répertoire ni un fichier ordinaire» fi fi UNIX /Linux Jean Michel Meulien Page 48

49 Autre Shell : Création de routes réseaux: Réponse : case «$1» in start) route add default dev eth0 ;; stop) route del default ;; restart) $0 stop $0 start ;; *) gprintf Usage : %s { start stop status restart condrestart } \n $0 esac exit 1 ;; exit 0 XX) NetFilter et IPtables Préambule On peut parler à l'infini des avantages comparés de Linux face aux systèmes Microsoft et réciproquement, il y a tout de même un domaine où la discussion est impossible, sauf peut être avec une mauvaise foi extrême, c'est celui de la gestion des réseaux. Même si Windows 2000 est en très net progrès par rapport à Windows NT4 (nous parlons ici des versions server), Les noyaux Linux 2.6.x avec IPTables et IPRoute2 disposent, à mon sens, d'une très confortable avance. Ces versions 2.6 du noyau Linux sont particulièrement riches dans ce domaine et il devient sans doute possible de réaliser avec ce système des passerelles et des firewalls aussi performants sinon plus, que certains matériels spécialisés. Iproute2 constitue une nouvelle approche de la gestion des routes inter réseaux. Iproute2 mériterait à lui seul un chapitre complet. Nous ne ferons ici que l'évoquer. Netfilter permet de faire beaucoup plus de choses en matière de filtrage de paquets et de translation d'adresses que ses prédécesseurs, ce qui fait de Linux 2.6 un outil de choix pour la réalisation de passerelles entre réseaux privés et l'internet. Ce chapitre a pour but de présenter succinctement l'architecture et les principales fonctionnalités de Netfilter, dans le cadre d'un réseau domestique connecté au net par une ligne à haut débit type câble ou ADSL. Architecture Avant propos Avertissement important à ceux qui maîtrisent IPchains NetFilter avec IPtables n'a pas du tout la même architecture, le fonctionnement est différent, même si la syntaxe d'iptables peut paraître proche de celle d'ipchains. En particulier, les chaînes INPUT et OUTPUT ne contrôlent pas tout ce qui entre et sort de la passerelle, routage compris, mais uniquement ce qui entre en direction de la passerelle elle même et sort de la passerelle elle même. Entendez par là que tout le trafic entre le réseau privé UNIX /Linux Jean Michel Meulien Page 49

50 masqué par le NAT et l'internet ne sera aucunement influencé par ces deux chaînes. Nous verrons en détail plus loin pourquoi et comment. Avertissement aux utilisateurs exclusifs des interfaces graphiques Avec les versions 2.2.x, nous avions l'excellent outil gfcc qui permettait de faire à peu près tout ce qu'il était possible de faire avec IPchains. Malheureusement, avec IPtables, je n'ai pas encore trouvé d'outil équivalent à l'heure où j'écris ces lignes. Essayez de voir avec knetfilter, mais ce n'est pas du tout la même chose. Position du problème Comme d'habitude sur ce site, l'exposé s'appuie sur une passerelle Linux mettant en relation un réseau privé avec le net, au moyen d'une liaison haut débit et permanente de type câble ou ADSL. Topologie de la machine Linux La machine Linux dispose de deux interfaces Ethernet. Ici: Réseau Privé Internet Eth0 Eth1 Passerelle Linux 2.4.x Eth0 sur le réseau local (privé) Eth1 sur l'internet via le modem câble du fournisseur d'accès. Cette interface, le plus souvent, sert de support à PPPoE. Il faut bien comprendre qu'à priori, il peut entrer et sortir des données de chaque interface. Il peut entrer et sortir des données par Eth0, parce qu'un client du réseau local établit une connexion avec un service installé sur la passerelle, Samba par exemple, pour le partage de fichiers avec Windows. Il peut entrer et sortir des données par Eth1 (ou la connexion ppp qui y est associée) parce qu'un client situé sur le Net établit une connexion avec un service installé sur la passerelle, une session ssh ou telnet par exemple (ssh, c'est mieux ). Il peut se faire aussi que cette connexion s'établisse à votre insu, parce qu'un pirate est en train de prendre possession de votre machine (mais ceci est une autre histoire, développée au chapitre de la sécurité). Il peut se faire également qu'une connexion s'établisse entre un poste du réseau privé et un serveur situé sur le net. Dans ce cas, les paquets entreront par une interface et sortiront par l'autre. En toute rigueur, il est également possible qu'une connexion s'établisse entre un client situé sur le net et un serveur situé sur votre réseau privé (si si, c'est possible aussi, bien que dans le cadre d'un réseau domestique, ce ne soit pas nécessaire, ni même souhaitable). Là aussi, les paquets qui entrent par une interface sortiront par l'autre. Quel que soit le cas de figure vu plus haut, dans ce qui suit, nous ne ferons pas de ségrégation sur l'interface UNIX /Linux Jean Michel Meulien Page 50

51 par laquelle les paquets entrent ni l'interface par laquelle les paquets sortent. Cette ségrégation interviendra éventuellement dans les règles que nous écrirons avec IPtables. Netfilter dans la pile IP En tout état de cause, dans l'explication qui suit, quelles que soient l'origine et la destination des paquets, ils vont entrer dans la pile de protocoles IP par le même point et en sortir par le même autre point. Netfilter se présente comme une série de 5 hooks (points d'accrochage), sur lesquels des modules de traitement des paquets vont se greffer. 1 NF_IP_PRE_ROUTING Décision de routage NF_IP_LOCAL_IN NF_IP_FORWARD 2 3 Process Local 5 NF_IP_LOCAL_OUT Routage 4 NF_IP_POST_ROUTING Ces points sont: NF_IP_PRE_ROUTING NF_IP_LOCAL_IN NF_IP_FORWARD NF_IP_POSTROUTING NF_IP_LOCAL_OUT La branche gauche représente le trajet des paquets qui entrent et qui sortent vers et depuis un processus local (SMB, FTP, http, etc.) La branche de droite représente le trajet des paquets qui traversent notre passerelle dans sa fonction de routeur. Que l'on peut représenter autrement ainsi : UNIX /Linux Jean Michel Meulien Page 51

52 NF_IP_PREROUTING Point d entrée Point de sortie NF_IP_FORWARD NF_IP_POSTROUTING NF_IP_LOCAL_IN NF_IP_LOCAL_OUT PROCESSUS LOCAUX Attention toutefois, ces diagrammes sont faux, dans la mesure où ils sont largement simplifiés. Leur but est uniquement de montrer où Netfilter vient interagir avec la pile IP, en En aucun cas, il ne représente l'architecture complète de la pile IP. Ce que sait faire Netfilter A travers ces cinq points d'insertion, Netfilter va être capable : d'effectuer des filtrages de paquets, principalement pour assurer des fonctions de Firewall. On pourra par exemple interdire à tous les paquets venant de l'internet et s'adressant au port 80 (HTTP) de passer. Notre serveur APACHE est un serveur Intranet et ne doit pas être accessible depuis l'extérieur. d'effectuer des opérations de NAT (Network Address Translation). Ces fonctions sont particulièrement utiles lorsque l'on veut faire communiquer tout ou partie d'un réseau privé, monté avec des adresses IP privées ( x.x par exemple) avec l'internet. d'effectuer des opérations de marquage des paquets, pour leur appliquer un traitement spécial. Ces fonctionnalités sont particulièrement intéressantes sur une passerelle de réseau d'entreprise, un peu moins pour notre cas de réseau domestique. Comment Netfilter sait le faire Netfilter dispose d'une commande à tout faire : IPtables. Cette commande va permettre, entre autres, d'écrire des chaînes de règles dans des tables. Il y a dans Netfilter trois tables qui correspondent aux trois principales fonctions vues plus haut: Les tables et leurs chaînes Il existe trois tables qui vont servir à contenir des règles de filtrage UNIX /Linux Jean Michel Meulien Page 52

53 FILTER INPUT OUTPUT FORWARD NAT PREROUTING POSTROUTING OUTPUT IPTABLES MANGLE PREROUTING OUTPUT La table «Filter» Cette table va contenir toutes les règles qui permettront de filtrer les paquets. Cette table contient trois chaînes : la chaîne INPUT. Cette chaîne décidera du sort des paquets entrant localement sur l'hôte. la chaîne OUTPUT. Ici, ce ne sont que les paquets émis par l'hôte local qui seront filtrés. la chaîne FORWARD. Enfin, les paquets qui traversent l'hôte, suivant les routes implantées, seront filtrés ici. La table NAT Cette table permet d'effectuer toutes les translations d'adresses nécessaires. La chaîne PREROUTING. Permet de faire de la translation d'adresse de destination. Cette méthode est intéressante si l'on veut faire croire au monde extérieur, par exemple, qu'il y a un serveur WEB sur le port 80 de la passerelle, alors que celui-ci est hébergé par un hôte du réseau privé, sur le port La chaîne POSTROUTING. Elle permet de faire de la translation d'adresse de la source, comme du masquage d'adresse, la méthode classique pour connecter un réseau privé comme client de l'internet, avec une seule adresse IP publique. La chaîne OUTPUT. Celle-ci va permettre de modifier la destination de paquets générés localement (par la passerelle elle-même). La table MANGLE Cette table permet le marquage des paquets entrants (PREROUTING) et générés localement (OUTPUT). Le marquage de paquets va permettre un traitement spécifique des paquets marqués dans les tables de routage avec IPROUTE 2. Depuis la version du noyau, d'autres tables ont été rajoutées sur tous les hooks. Nous avons ainsi à notre disposition les tables supplémentaires INPUT, POSTROUTING et FORWARD Les chaînes Les chaînes sont des ensembles de règles que nous allons écrire dans chaque table. Ces chaînes vont permettre d'identifier des paquets qui correspondent à certains critères. UNIX /Linux Jean Michel Meulien Page 53

54 Les cibles Les cibles enfin sont des sortes d'aiguillage qui dirigeront les paquets satisfaisant aux critères. Les cibles préconstruites sont : ACCEPT Les paquets qui satisfont aux critères sont acceptés, ils continuent leur chemin dans la pile, DROP Les paquets qui satisfont aux critères sont rejetés, on les oublie, on n'envoie même pas de message ICMP. Un trou noir, quoi. LOG C'est une cible particulière qui permet de tracer au moyen de syslog les paquets qui satisfont aux critères. Suivant les contextes, d'autres cibles deviennent accessibles, comme REJECT (similaire à DROP, mais avec envoi d'un message d'erreur ICMP à la source du paquet rejeté), RETURN, REDIRECT, SNAT, DNAT, MASQUERADE. En français, nous pourrons faire des choses de ce genre : par défaut, tous les paquets qui entrent sont rejetés (DROP) les paquets qui entrent par le port 80 sur l'interface eth0 sont acceptés les paquets qui sortent par le port 80 sur l'interface eth0 sont acceptés etc. Nous verrons cela plus en détail dans les divers exemples. La commande «IPtables» IPtables est en quelques sortes l'interface utilisateur de Netfilter. Dans sa partie visible, tout ceci ressemble aux bonnes vieilles IPchains (noyaux 2.2), mais ici, ce n'est qu'une interface de commande de Netfilter. La syntaxe est plus complète et plus rigoureuse. Conntrack Le suivi de connexion Le suivi de connexion est un concept essentiel dans Netfilter. C'est une sorte d'intelligence artificielle qui permet d'établir des liens de cause à effet entre les paquets qui passent dans la pile. Il faut, à un moment donné, dire quelques mots à propos de ce suivi de connexion. Comme c'est une notion qui va intervenir aussi bien dans le filtrage que dans la traduction d'adresses, autant en parler tout de suite. Expérience préliminaire Le principe du suivi de connexion permet de réaliser un «firewall statefull», c'est à dire qu'il va réagir intelligemment sur une connexion donnée, suivant son état. Voyez éventuellement à ce propos le chapitre sur la sécurité. Comme ce n'est pas très simple d'expliquer cela, nous allons observer un exemple sur le terrain. Nous allons établir une connexion TCP à partir du protocole HTTP : No. Time Source Destination Protocol Info TCP 4252 > http [SYN] TCP http > 4252 [SYN, ACK] UNIX /Linux Jean Michel Meulien Page 54

55 TCP 4252 > http [ACK] HTTP GET / HTTP/1.1 L'établissement d'une connexion TCP suit un protocole strict : Une requête de synchronisation [SYN] de la part de l'initiateur du dialogue (le client), une réponse d'accusé réception de la synchronisation [SYN, ACK] de la part du serveur, un accusé réception du client [ACK] Observons également les sockets. Trame n 10: Le client [ ] s'adresse au serveur [ ] sur le port http (80). Il attend une réponse sur le port C'est un numéro pris plus ou moins au hasard. A priori, personne ne peut le deviner à l'avance. Trame n 11: Le serveur, bien élevé, répond au client sur le port demandé (4252) La même chose, mais plus détaillée, ce qui donne l'occasion de voir l'ensemble des «flags» exploitables au niveau TCP : Frame 10 (62 bytes on wire, 62 bytes captured)... Transmission Control Protocol Source port: 4252 (4252) Destination port: http (80) Sequence number: Header length: 28 bytes Flags: 0x0002 (SYN) = Congestion Window Reduced (CWR): Not set = ECN-Echo: Not set = Urgent: Not set = Acknowledgment: Not set = Push: Not set = Reset: Not set = Syn: Set = Fin: Not set... Frame 11 (62 bytes on wire, 62 bytes captured)... Transmission Control Protocol Source port: http (80) Destination port: 4252 (4252) Sequence number: Acknowledgement number: Header length: 28 bytes Flags: 0x0012 (SYN, ACK) = Congestion Window Reduced (CWR): Not set = ECN-Echo: Not set = Urgent: Not set = Acknowledgment: Set UNIX /Linux Jean Michel Meulien Page 55

56 = Push: Not set = Reset: Not set = Syn: Set = Fin: Not set... Frame 12 (54 bytes on wire, 54 bytes captured)... Transmission Control Protocol Source port: 4252 (4252) Destination port: http (80) Sequence number: Acknowledgement number: Header length: 20 bytes Flags: 0x0010 (ACK) = Congestion Window Reduced (CWR): Not set = ECN-Echo: Not set = Urgent: Not set = Acknowledgment: Set = Push: Not set = Reset: Not set = Syn: Not set = Fin: Not set Window size: Checksum: 0xe79b (correct) De ces premières observations, nous pouvons déduire quelques choses intéressantes. En considérant des échanges TCP entre deux sockets toujours les mêmes : lorsqu'un paquet TCP contient le flag SYN, c'est que c'est une nouvelle connexion qui commence. lorsqu'un paquet TCP contient les flags SYN et ACK, c'est que la connexion est acceptée, elle est donc établie. lorsqu'un paquet ne contient que le flag ACK, c'est que la connexion se continue. Mais voyons un peu plus loin No. Time Source Destination Protocol Info TCP 4252 > http [ACK] TCP span class="bhly">4253 > http span class="bhly">[syn] TCP http > 4253 [SYN, ACK] TCP 4253 > http [ACK] HTTP GET /images/titre.gif HTTP/ TCP 4252 > http [FIN, ACK] Ce que nous observons ici, c'est l'établissement d'une nouvelle connexion TCP entre les mêmes protagonistes. Bien entendu pour éviter les mélanges, le port du client n'est plus le même. C'est cette fois-ci UNIX /Linux Jean Michel Meulien Page 56

57 Autrement dit, le même client ( ) ouvre une nouvelle connexion TCP sur le même serveur ( ), toujours sur le port 80, mais attend les réponses sur un nouveau port, alors que la connexion précédente existe toujours. Le client met fin à la précédente (trame 34) avec le flag [FIN] une fois seulement que la seconde connexion est établie. Dans ces conditions, il est pertinent de penser que cette nouvelle connexion est en relation directe avec la première. Nous dirons que c'est une connexion en relation avec la première. Premières déductions Si l'on met en place un système capable de mémoriser ce qu'il se passe sur la couche TCP, alors il va devenir possible de savoir si une connexion est dans l'un de ces états : NEW nouvelle connexion (elle contient le flag SYN) ESTABLISHED connexion déjà établie, elle ne devrait pas contenir de SYN ni de FIN RELATED la connexion présente une relation directe avec une connexion déjà établie INVALID la connexion n'est pas conforme, contient un jeu de flags anormal, n'est pas classable dans l'une des trois catégories précédentes. Ceci est intéressant, parce que l'on pourra interdire à priori à toute connexion NEW d'entrer dans notre installation, il n'y a aucune raison qu'il en rentre si nous n'avons pas de serveur. Eventuellement, nous pourrons par exemple créer des exceptions pour les ports ssh, si nous souhaitons accéder à notre machine depuis le net. En revanche, toute connexion ESTABLISHED ou RELATED devra pouvoir entrer depuis le net. Dans l'autre sens, du LAN vers le net, les paquets NEW doivent pouvoir passer, de même, bien entendu que les ESTABLISHED et les RELATED. Les paquets INVALID pourront éventuellement être tracés dans les logs. UNIX /Linux Jean Michel Meulien Page 57

58 Décision de routage INPUT FORWARD PROCESS LOCAL OUTPUT Et pour l'udp Là, c'est plus délicat puisqu'il n'y a justement pas de connexion. Il sera donc impossible de définir de façon précise l'état d'un échange UDP. Ce que l'on pourra faire, c'est mettre en place un «timer» pour décider de l'état d'un paquet UDP. Nous pouvons prendre l'exemple simple d'une requête DNS depuis notre réseau privé. le premier paquet UDP sort de notre réseau, sur un port connu et identifié (53) vers un serveur DNS. Nous pouvons décider de le laisser passer et nous le qualifions de NEW. Il déclenche un timer. si avant expiration du «timer», nous recevons un paquet UDP dudit serveur DNS, nous considèrerons que c'est un paquet ESTABLISHED. Dans la pratique Un module principal de suivi de connexion est chargé dynamiquement en cas de besoin, il s'agit du module ip_conntrack. Cependant tout n'est pas toujours si simple et ce module peut montrer ses limites sur des protocoles particulièrement complexes, comme par exemple FTP. ip_conntrack ne pourra assurer qu'une connexion FTP de type passive. Si l'on souhaite assurer le suivi de connexion sur du FTP en mode actif, il faudra avoir recours au module spécialisé ip_conntrack_ftp. Mais celui-ci ne se chargera pas dynamiquement, vous aurez à le charger vous-même. Nous aurons aussi besoin dans ce cas de ip_nat_ftp; si notre passerelle fait du NAT. UNIX /Linux Jean Michel Meulien Page 58

59 Filter La table de filtrage C'est la table qui va permettre de filtrer tous les paquets qui entrent et sortent de notre machine. Il n'y a ici aucune modification de ces paquets, ils seront comparés à des critères définis dans la table Filter. Dans notre cas, il peut se passer deux choses différentes: un paquet qui entre est destiné à un processus de l'hôte (serveur HTTP, FTP). un paquet qui entre est destiné à un autre réseau, c'est alors une fonction de routage. Un paquet entre dans notre machine. Peu importe par quelle interface il entre, il peut venir aussi bien du réseau local que de l'internet. Il passe d'abord par la fonction de décision de routage. C'est elle qui va déterminer si le paquet est destiné à un processus local de l'hôte ou à un hôte sur un autre réseau. Si le paquet est destiné à l'hôte local: il traverse la chaîne INPUT. s'il n'est pas rejeté, il est transmis au processus impliqué. Ce processus va donc le traiter et éventuellement émettre un nouveau paquet en réponse ; ce nouveau paquet traverse la chaîne OUTPUT. s'il n'est pas rejeté, il va vers la sortie. Si le paquet est destiné à un hôte d'un autre réseau: il traverse la chaîne FORWARD. s'il n'est pas rejeté, il poursuit alors sa route. Une autre façon de représenter graphiquement tout ça serait la suivante : NF_IP_PREROUTING Point d entrée Point de sortie NF_IP_FORWARD NF_IP_POSTROUTING FORWARD NF_IP_LOCAL_IN INPUT NF_IP_LOCAL_OUT OUTPUT la chaîne INPUT sera raccrochée au hook PROCESSUS NF_IP_LOCAL_IN LOCAUX la chaîne OUTPUT au hook NF_IP_LOCAL_OUT la chaîne FORWARD à NF_IP_FORWARD. Rappel d'avertissement important : Pour ceux qui ont travaillé avec IPchains, notez que la démarche est ici différente et ça va peut-être vous poser pas mal de problèmes. Avec IPChains Avec IPTables Tous les paquets entrants passaient par les chaînes INPUT qu'ils soient destinés à un Seuls les paquets destinés à un process local traversent la chaîne INPUT. Seuls les UNIX /Linux Jean Michel Meulien Page 59

60 process local où au routage. Tous les paquets sortants passaient par la chaîne OUTPUT, qu'ils soient issus d'un processus local ou destinés au routage. paquets issus d'un process local traversent la chaîne OUTPUT Seuls les paquets destinés au routage traversent la chaîne FORWARD L'illustration ci-dessus le montre bien, et ceci va conduire à d'énormes erreurs, si l'on se contente de traduire les anciennes règles IPChains en règles IPtables, sans précautions particulières. Faites la manipulation suivante. Sur votre passerelle Linux 2.6.x : Initialisation de NetFilter taper successivement les commandes suivantes pour initialiser votre système: iptables -F iptables -X iptables -t nat -F iptables -t nat -X De cette manière, vous avez toutes vos chaînes vides, avec par défaut la règle ACCEPT iptables -L L'affichage va vous assurer que les trois chaînes INPUT, FORWARD et OUTPUT sont vides et ont bien la règle par défaut ACCEPT iptables -t nat -L L'affichage va vous assurer que les trois chaînes PREROUTING, POSTROUTING et OUTPUT sont vides et ont bien la règle par défaut ACCEPT. Mise en place de Masquerade Taper maintenant les commandes suivantes: iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE Où ppp0 représente l'interface connectée à l'internet. Remplacez éventuellement, si votre configuration est différente. Ceci signifie en gros: Tout ce qui sort du routage (-A POSTROUTING) et qui doit passer vers l'internet (-o ppp0) doit subir un masquage d'adresse (-j MASQUERADE) echo 1 > /proc/sys/net/ipv4/ip_forward Ceci pour être certain que votre noyau autorise le routage. Vous n'en avez pas besoin, si votre machine est configurée par défaut pour assurer le routage. Voilà. Votre passerelle entre le réseau privé et Internet doit être opérationnelle. vérifiez que, depuis votre passerelle Linux, vous avez bien accès au net. vérifiez que, depuis un poste de votre réseau privé, vous avez bien accès au net. Attention, dans cet état, vous n'avez rigoureusement aucune défense contre d'éventuelles intrusions. Passez rapidement à la suite. UNIX /Linux Jean Michel Meulien Page 60

61 Et maintenant, la manipulation décisive. Pour bien montrer que les chaînes INPUT et OUTPUT n'interviennent pas dans le routage, nous allons tout simplement leur mettre DROP comme règle par défaut. Attention, il faut que vos clients utilisent un DNS situé ailleurs que sur votre passerelle Linux, sinon, ça ne fonctionnera pas à cause du DNS. Taper les commandes suivantes: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -L (Pour vérifier qu INPUT et OUTPUT «droppent» bien tout ce qui passe). Vérifiez que, depuis votre passerelle Linux, vous n'avez plus accès au net (ni à votre réseau privé d'ailleurs). Vérifiez que, depuis un poste de votre réseau privé, vous avez toujours l'accès au net. INPUT et OUTPUT n'interviennent absolument pas dans le routage. Toutes les règles que vous pourrez y mettre ne concerneront que la sécurité de la passerelle elle-même, mais pas de votre réseau privé. La table de translation d'adresses Remarques importantes La traduction d'adresse (NAT comme Network Address Translation) est à prendre ici au sens le plus large, puisque cette table permet non seulement de faire de la translation stricte d'adresses, mais également de la translation de ports et un mélange des deux, dont le masquage d'adresse est une forme particulière. Mais qu'est-ce que c'est exactement? Dans un datagramme, en plus des données, on trouve également quelques informations concernant le protocole utilisé et des identificateurs de l'émetteur et du destinataire. Ce sont ces identificateurs qui nous intéressent: l'adresse IP du destinataire. le port du service utilisé sur le destinataire. Ces informations constituent un «socket», elles sont indispensables pour arriver à joindre le bon service sur le bon serveur, par exemple le service HTTP du serveur grenouille.com. l'adresse IP de l'émetteur. le port de réponse. Ces informations constituent un autre «socket», elles sont indispensables pour que l'émetteur d'un paquet puisse espérer recevoir une réponse. Avec les fonctions NAT de Netfilter, lorsqu'un paquet transite par notre passerelle, nous allons pouvoir bricoler ces sockets absolument comme on le désire. Par exemple, nous pourrons changer l'adresse de l'émetteur ou le port de l'émetteur ou les deux. Nous pouvons aussi changer l'adresse du destinataire, ou le port du destinataire, ou les deux. Cela sert à quoi. Ca sert à une quasi infinité de choses. Parmi les plus intéressantes, citons: UNIX /Linux Jean Michel Meulien Page 61

62 Le masquage d'adresse C'est une fonction fondamentale lorsque l'on souhaite connecter un réseau privé à l'internet lorsque l'on ne dispose que d'une seule IP valide sur le net, même si celle-ci est dynamique, ce qui est le cas qui nous intéresse le plus. Les clients sont sur le réseau privé et les serveurs sont sur le net. C'est une forme particulière de SNAT (Source NAT). C'est ce que sont capables de faire tous les routeurs SOHO (Small Office, Home Office) qui permettent de relier un petit réseau local à l'internet, lorsque l'on ne dispose que d'un accès RTC, NUMERIS, Câble, ADSL. Un simple (très) vieux PC (un 486 suffit) équipé d'un Linux 2.6.x permet de le faire aussi bien sinon mieux. Le NAT de destination Ici, c'est pour résoudre les problèmes qui apparaissent dans l'autre sens. Les clients sont sur le net et les serveurs sont sur le réseau privé. Serveur HTTP Réseau Privé Serveur FTP Serveur SMTP/POP Routeur NAT Vers Internet Imaginons que nous n'ayons qu'une seule IP valide sur le net et que nous voulions tout de même offrir des services tels que HTTP, FTP, SMTP, POP et peut-être d'autres encore. La réponse triviale consiste à dire: J'ai droit à une seule IP, donc je place tous ces serveurs sur la même machine, celle qui a la seule IP à laquelle j'ai droit. Oui, mais la démarche est simpliste: comment assurer un minimum de sécurité sur une machine ouverte de tous les côtés? comment faire pour assurer une disponibilité suffisante à chaque service dans les montées en charge? Cette solution ne parait finalement pas très acceptable, mais comment faire autrement? Tout simplement avec NAT. La machine frontale sera un simple routeur NAT. Côté Internet, elle possède la seule IP valide disponible, elle va faire croire que tous les services sont dessus, mais en réalité, lorsqu'elle va recevoir un paquet dont le socket de destination est :80, elle va remplacer ça vite fait par :80 et router le paquet vers le UNIX /Linux Jean Michel Meulien Page 62

63 serveur HTTP. Lorsque la réponse du serveur va lui parvenir, elle remplacera le socket de l'émetteur ( :80) par :80 et enverra ça sur le net. Tout le monde n'y verra que du feu. Bien entendu, le routeur NAT est capable de faire ça pour chacun des autres serveurs: ce qui lui arrivera sur les ports 20 et 21 sera redirigé sur le serveur FTP (en réalité, le cas du FTP est bien plus difficile à résoudre que ça. ce qui lui arrivera sur le port 25 sera redirigé sur le serveur SMTP/POP3 service SMTP ce qui lui arrivera sur le port 110 sera redirigé sur le serveur SMTP/POP3 service POP3 Le cas du proxy transparent PREROUTING Décision de routage Process Local OUTPUT POSTROUTING Bien qu'à priori, cette possibilité soit sans intérêt sur un réseau domestique, je préfère en parler parce que ce sujet peut revêtir une certaine gravité quant aux atteintes aux libertés individuelles. Tout le monde sait ce qu'est un proxy (serveur mandataire, en français). C'est un serveur auquel on s'adresse pour qu'il nous fournisse des informations situées sur un autre serveur, sur les protocoles HTTP et FTP essentiellement.. Le principal avantage d'un proxy est qu'il garde en mémoire dans un cache toutes les informations qu'il est déjà allé chercher. Si, sur un réseau privé, dix personnes cherchent la même information, elle ne sera téléchargée qu'une fois sur le Net. L'avantage évident est l'optimisation de la bande passante sur le lien Internet, lorsque le réseau privé est un peu conséquent. L'autre avantage, c'est que l'on peut réaliser un «firewall applicatif» pour le protocole HTTP. Dans ce cas, on n'utilisera plus seulement un filtrage de paquets, mais également un filtrage sur le protocole lui-même, ce qui permet, par exemple, de faire du contrôle parental ou du contrôle de trafic web tout court. Face à cet avantage, il y a pas mal d'inconvénients, dus à tous les effets pervers des fonctionnalités que l'on peut ajouter à un proxy. Parmi les inconvénients les plus graves: la durée de vie du cache peut être mal paramétrée, la vérification de validité du contenu également et le proxy peut fournir des informations qui ne sont plus à jour. UNIX /Linux Jean Michel Meulien Page 63

64 les proxys ont souvent des fonctions de restriction d'accès qui peuvent aboutir à un régime franchement totalitaire. (contrôle parental chez AOL, par exemple, mais ce n'est pas forcément vous qui choisissez les filtrages). les fonctions de traçage ne manquent pas non plus, ce qui permet d'espionner de façon très efficace ce que les utilisateurs de votre réseau font sur le net. Normalement, le navigateur Internet doit être paramétré pour utiliser un serveur proxy (outils/options Internet/Connexions/Paramètres LAN dans Internet Explorer). Si l'installation est faite proprement, l'utilisateur devrait pouvoir choisir d'utiliser le proxy ou non. Souvent cependant, l'administrateur du réseau va bloquer le passage direct sur le port 80, obligeant les utilisateurs à passer par le proxy. Là encore, au moins, les utilisateurs sont avertis. Le proxy transparent est beaucoup plus pernicieux, parce qu'il ne nécessite aucun paramétrage du navigateur et l'utilisateur ne sait pas qu'il passe par un proxy. Le principe est simple, il suffit de rediriger tous les paquets dont le port de destination est 80 vers le proxy transparent, qui peut être placé sur la passerelle elle même. Ceux qui disposent d'une passerelle Linux peuvent assez facilement monter la manip en installant le proxy SQUID (configuré convenablement pour faire un proxy transparent) et en utilisant iptables pour faire de la redirection sur le service squid local. Ce ne sont pas les seules manipulations possibles, mais ce sont celles qui paraissent les plus souvent utilisées. Comment çela marche La table NAT est organisée comme ci-contre: Comme son nom l'indique, la chaîne PREROUTING va bricoler les sockets avant les décisions de routage. Nous nous en servirons pour faire du DNAT (Destination NAT), autrement dit, pour modifier la «socket» du destinataire. la chaîne POSTROUTING intervient à la sortie du routeur. Elle servira à faire du SNAT (Source NAT) dont par exemple, le masquage d'adresse. la chaîne OUTPUT, quant-à elle, permet de modifier le socket de destination d'un paquet issu d'un processus local. L'utilité de cette chaîne n'est pas évidente, dans la mesure où, normalement, les paquets sortant d'un processus local devraient aussi passer par POSTROUTING. La seule possibilité supplémentaire est de pouvoir rediriger les paquets qui sortent d'un processus local à destination d'une cible extérieure, vers un autre processus local ( ). Là encore, nous pouvons l'illustrer de façon différente : NF_IP_PREROUTING PREROUTING Point d entrée Point de sortie NF_IP_FORWARD NF_IP_POSTROUTING POSTROUTING NF_IP_LOCAL_IN NF_IP_LOCAL_OUT OUTPUT PROCESSUS LOCAUX UNIX /Linux Jean Michel Meulien Page 64

65 Les possibilités offertes par le NAT sont quasiment infinies. Nous avons vu les plus fréquentes : masquage d'adresse, pour permettre à tout un réseau privé d'accéder au net lorsque l'on ne dispose que d'une seule adresse IP valide sur le net. redirection d'un service serveur adressé sur la passerelle vers un serveur situé dans le réseau privé, ça peut être utile pour les joueurs en réseau, mais aussi pour des applications plus professionnelles. Pour que tout cela fonctionne correctement, le système s'appuie sur le suivi de connexion. Nous pouvons donc nous attendre à trouver des modules spécialisés pour certains protocoles, dont le FTP, toujours lui. Ainsi, le module ip_nat_ftp sera nécessaire si vous voulez travailler proprement en FTP. NetFilter permet encore d'autres choses, qui sortent plus ou moins du cadre de cet exposé. Mangle Nous n'avons pas parlé de la table Mangle. Cette table permet d'effectuer un marquage des paquets. NF_IP_PREROUTING PREROUTING Point d entrée Point de sortie NF_IP_FORWARD NF_IP_POSTROUTING FORWARD POSTROUTING NF_IP_LOCAL_IN NF_IP_LOCAL_OUT INPUT OUTPUT Nous pouvions, avec les premières versions de Netfilter, marquer les paquets en PREROUTING ou en OUTPUT pour les sorties d'un processus local (en rouge sur l'illustration). Notez que depuis la version PROCESSUS du noyau, LOCAUX le système a été étendu à tous les hooks. L'intérêt de ce marquage, qui n'est visible que dans la pile de la machine, est de pouvoir être relu par d'autres fonctions comme iproute ou la gestion de la qualité de service (QoS). Ainsi, nous pouvons disposer de toute la puissance de Netfilter pour la sélection de divers types de paquets, et utiliser ensuite ce marquage pour le routage ou les priorités de passage. Donner ici des exemples précis nous mènerait trop loin parce qu'il faudrait étudier en détail IProute2 et les fonctions de QoS des noyaux 2.6. Voici tout de même un cas de figure qui serait gérable par ce système : Nous disposons de deux liens sur le net : l'un, très rapide et très fiable, mais très cher et facturé au volume de données ; l'autre, classique, comme une connexion ADSL, avec les limites que nous leurs connaissons. Nous souhaitons exploiter au mieux ces deux connexions, par exemple de la façon suivante : UNIX /Linux Jean Michel Meulien Page 65

66 nous devons mettre à jour le contenu d'un serveur distant. Il faut le faire de façon rapide et sûre. Il n'y a pas forcément beaucoup de données à transmettre, mais il est impératif que ce soit fait le plus rapidement et le plus sûrement possible. Nous devons assurer un accès au net pour les utilisateurs du réseau local, mais avec une qualité de service plus faible. Avec le marquage de paquets associé à IProute, nous pourrons arriver à faire passer les mises à jour du serveur sur le lien rapide mais cher et tout le reste sur le lien ADSL. Nous disposons d'une connexion ADSL et il arrive très souvent que certains utilisateurs fassent du téléchargement FTP sur des serveurs rapides. Chaque fois qu'un téléchargement est lancé, toute la bande passante download est utilisée et les autres utilisateurs ne peuvent plus surfer dans de bonnes conditions. En exploitant le marquage de paquets associé aux fonctions de QoS, nous pourrons restreindre la bande passante exploitée par le download FTP afin de laisser un peu d'espace pour les autres activités. Ceci peut aussi être appliqué aux transferts peer-to-peer, qui ont l'inconvénient de monopoliser le peu de bande passante upload dont on dispose sur des connexions asymétriques comme ADSL ou câble. Les logs Netfilter propose un système de log puissant. Il ne s'agit pas ici d'une table, mais d'une cible. Nous verrons plus en détail dans la suite ce que sont les cibles, disons pour le moment qu'il en existe deux qui sont particulières. La cible LOG Elle permet de remonter vers le démon syslog, avec par défaut, le niveau warning, des messages décrivant les paquets qui satisfont à la règle qui pointe vers LOG. Dans une distribution Debian, nous retrouverons donc leur trace dans /var/log/syslog. Juste un exemple trivial, pour voir ce que cela donne : iptables -A INPUT -i eth0 -p icmp -j LOG Ce qui veut dire en français : Ajouter à la chaîne INPUT la règle suivante : envoyer vers la cible LOG tout paquet ICMP qui entre par eth0 La machine dont l'ip d eth0 est envoie un ping sur la machine ping -n Nous allons tracer la réponse au ping (INPUT). Nous récupérons cette trace dans /var/log/syslog : Dec 1 22:40:11 linux kernel: IN=eth0 OUT= MAC=00:00:b4:bb:5d:ee:00:20:18:29:11:31:08:00 SRC= DST= LEN=84 TOS=0x00 PREC=0x00 UNIX /Linux Jean Michel Meulien Page 66

67 TTL=255 ID=4938 PROTO=ICMP TYPE=0 CODE=0 ID=53771 SEQ=256 Ce qui est surligné en jaune correspond à la machine qui trace, c'est à dire celle qui envoie le ping et attend la réponse (qui est tracée). Ce qui est surligné en vert correspond à la cible du ping qui répond. C'est un bon moyen pour se faire de la lecture facile. Si la commande ping est écrite de la façon suivante : ping -n Nous génèrerons 100 fois une trace similaire à celle que nous venons de voir. Pour éviter que les logs n'arrivent à remplir votre disque dur, il existe la directive limit qui permet, comme son nom l'indique, de limiter l'envoi vers la cible de paquets satisfaisant à la règle. Cette directive à elle seule mériterait toute une page d'explications. La cible ULOG Plutôt que d'utiliser syslog, cette cible permet d'envoyer les paquets à un démon spécialisé : ulogd. Ce démon permet d'obtenir des logs plus présentables, voire stockés dans une base de données comme MySQL. Iptables Encore une fois, il n'est pas question de reprendre toute la documentation d'iptables. Nous allons simplement examiner quelques règles simples d'un usage courant. Pour étudier la syntaxe, consulter: les pages man (man iptables) Rusty's Remarkably Unreliable Guides Les pages de man, bien que pas toujours très agréables à lire, sont essentielles, pour la simple raison que Netfilter/IPtables sont des outils en pleine évolution et que d'une version à l'autre, de nouvelles fonctionnalités peuvent apparaître. Manipulations diverses Pour ce qui suit, nous allons faire de la pratique (Debian Etch montée en passerelle). Il s'agit de masquer tous les clients d'un réseau privé (par exemple ) derrière l'unique adresse officielle attribuée par le fournisseur d'accès, et d'assurer un minimum de sécurité sur la totalité de l'installation. UNIX /Linux Jean Michel Meulien Page 67

68 Poste Poste Poste eth0 Passerelle ppp Modem Câble ou ADSL Initialisation des tables Pour commencer, nous allons tout fermer au niveau de la passerelle dans la table filter. Nous vidons les chaînes : iptables -F Nous supprimons d'éventuelles chaînes personnelles : iptables -X Nous les faisons pointer par défaut sur DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP Nous faisons de même avec toutes les autres tables, à savoir nat et mangle, mais en les faisant pointer par défaut sur ACCEPT. Ca ne pose pas de problèmes puisque tout est bloqué au niveau filter : iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -F iptables -t mangle -X iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT Notez que dans tout cela, on n'a pas changé grand chose par rapport à l'état de ces tables tel qu'on le trouve après un boot de la machine, sans modifications particulières des scripts de UNIX /Linux Jean Michel Meulien Page 68

69 démarrage, hormis la cible par défaut des règles de la table filter que l'on a passé à DROP. Tout de même, cette manipulation préliminaire a eu pour conséquences : que l'on est parfaitement sûr de l'état de Netfilter. que l'on a commencé à se familiariser un peu avec le langage IPTables. Où en sommes-nous? Normalement, plus rien ne doit passer nulle part. Essayez des pings dans tous les sens, entre la passerelle et votre réseau privé ou vers le net, entre un poste de votre réseau privé et la passerelle, rien ne devrait passer. Ouvrons quelques portes Nous considérons que la machine elle même est sûre et que les processus locaux peuvent communiquer entre eux via l'interface locale : iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT Nous considérons que notre réseau local est également sûr (ce qui n'est pas forcément vrai, d'ailleurs). iptables -A INPUT -i eth0 -j ACCEPT iptables -A OUTPUT -o eth0 -j ACCEPT A ce stade, nous avons la situation suivante : si, sur votre passerelle, vous faites ping , cela répond. si, sur votre passerelle, vous faites un ping sur un hôte du réseau privé, cela répond. si, sur un hôte du réseau privé, vous faites un ping sur la passerelle, cela répond aussi. Mais : si, depuis la passerelle, on fait des pings n'importe où sur le net, cela ne répondra pas, à cause du DROP sur OUTPUT par défaut. si, depuis n'importe où sur le net, on fait des pings sur votre passerelle, ça ne répondra pas non plus, à cause du DROP sur INPUT par défaut. si, depuis un hôte de votre réseau, on fait un ping n'importe où sur le net, ça ne répondra encore pas, pour deux raisons : nous n'avons pas placé de règle de NAT entre le réseau local et le net. FORWARD fait DROP sur tout ce qui passe. UNIX /Linux Jean Michel Meulien Page 69

Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs.

Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs. Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs. Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence : Creative Commons BY-NC-SA 2.0 La copie de cet ouvrage

Plus en détail

Des informations supplémentaires sur chacune de ces commandes peuvent être trouvées dans leurs pages respectives du manuel UNIX.

Des informations supplémentaires sur chacune de ces commandes peuvent être trouvées dans leurs pages respectives du manuel UNIX. Commandes Unix Les systèmes d'exploitation de type UNIX offrent à leurs utilisateurs des centaines de commandes qui font de la console un outil pratique et extrêmement puissant. Certaines d'entre elles

Plus en détail

Initiation à Unix. Cours 1 - Présentation

Initiation à Unix. Cours 1 - Présentation Initiation à Unix Cours 1 - Présentation Université Henri Poincaré Master Génomique et Informatique Automne 2008 1/ 41 Plan Introduction Introduction L interpréteur de commande Le système de fichiers Les

Plus en détail

ubuntu Carte de référence GNU / Linux Ce document peut être distribué librement www.ubuntu-fr.org Version : juillet 2006

ubuntu Carte de référence GNU / Linux Ce document peut être distribué librement www.ubuntu-fr.org Version : juillet 2006 Carte de référence ubuntu GNU / Linux Version : juillet 2006 Ce document peut être distribué librement contact : henri.cecconi@laposte.net www.ubuntu-fr.org SOMMAIRE Obtenir de l'aide Se déplacer dans

Plus en détail

Commandes et scripts Bash. 1 Commandes de gestion des fichiers et répertoires

Commandes et scripts Bash. 1 Commandes de gestion des fichiers et répertoires Commandes et scripts Bash Seules certaines options sont indiquées. Pour plus de détails voir les pages de manuel (cf commande man). Si une commande est indiquée comme étant interne, cela signifie qu elle

Plus en détail

Introduction à la ligne de commande

Introduction à la ligne de commande Introduction à la ligne de commande Xerox Park 1981 Apple Macintosh 1984 Last login: Mon Nov 15 20:16:58 on ttys000 computer:~ jerome$ Last login: Mon Nov 15 20:16:58 on ttys000 computer:~ jerome$ Archaïque?

Plus en détail

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre 2010 http://www.loligrub.be

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre 2010 http://www.loligrub.be Linux et le Shell Francois BAYART Atelier du samedi 20 Novembre 2010 http://www.loligrub.be 1 Le «système» 2 FHS http://fr.wikipedia.org/wiki/filesystem_hierarchy_standard Filesystem Hierarchy Standard

Plus en détail

Formation Root de base

Formation Root de base 2 octobre 2010 Sommaire 1 Présentation Les commandes 2 Vaincre l autisme. Opérations de bases sur les fichiers Éditer un fichier Se documenter Raccourcis utiles 3 vim aptitude ssh screen irssi 4 Présentation

Plus en détail

Le Shell. Chapitre 3. 3.1.1 Conventions typographiques

Le Shell. Chapitre 3. 3.1.1 Conventions typographiques Chapitre 3 Le Shell 3.1 Généralités 3.1.1 Conventions typographiques Dans ce chapitre, les noms des fichiers et des commandes UNIX seront écrits dans la fonte que voici. Lorque cette même fonte sera utilisée

Plus en détail

TP 1 Linux : Commandes de base & utilitaires. I. Introduction : Rappel & révision

TP 1 Linux : Commandes de base & utilitaires. I. Introduction : Rappel & révision TP 1 Linux : s de base & utilitaires I. Introduction : Rappel & révision Nous prenons l'exemple du système d'exploitation Linux pour s'initier aux tâches d'administration système. Un des atouts de ce système

Plus en détail

Ligne de commandes sous Linux Effrayant? Non, Indispensable!

Ligne de commandes sous Linux Effrayant? Non, Indispensable! Ligne de commandes sous Linux Effrayant? Non, Indispensable! Pascal MARTIN SQLI Forum PHP 2010, Paris Ligne de Commandes sous Linux : indispensable! Pascal MARTIN 2 { A Propos Pascal MARTIN Expert Technique

Plus en détail

Initiation à Unix/Linux

Initiation à Unix/Linux Initiation à Unix/Linux Octobre 2007 Nicolas.Grima@univ brest.fr Bât F 3ième étage bureau F301bis (Ingénieur de Recherche au CNRS LPO) A qui s'adresse ce cours Objectifs Personnes qui ne connaissent pas

Plus en détail

Présentation du cours Linux / Shell. Inf7212 Introduction aux systèmes informatiques Alix Boc Automne 2013

Présentation du cours Linux / Shell. Inf7212 Introduction aux systèmes informatiques Alix Boc Automne 2013 Présentation du cours Linux / Shell Inf7212 Introduction aux systèmes informatiques Alix Boc Automne 2013 2 Plan Présentation du cours / Syllabus Questionnaire sur vos connaissances L ordinateur Introduction

Plus en détail

TD d'initiation à la ligne de commande Unix

TD d'initiation à la ligne de commande Unix TD d'initiation à la ligne de commande Unix Stéphane Salès s.sales@tuxz.org dérnières modifications : 20 oct. 2003 Table des matières 1.Nomenclature...2 1.1.Deux premières bonnes habitudes à prendre...2

Plus en détail

NIMBUS TRAINING. Unix, Linux mise en oeuvre. Déscription : Objectifs. Publics. Durée. Pré-requis. Programme de cette formation

NIMBUS TRAINING. Unix, Linux mise en oeuvre. Déscription : Objectifs. Publics. Durée. Pré-requis. Programme de cette formation Unix, Linux mise en oeuvre Déscription : Découvrir Linux de façon progressive et efficace. Cette approche originale présente une sélection rigoureuse mais néanmoins complète des connaissances essentielles

Plus en détail

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

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT Commandes Linux Gestion des fichiers et des répertoires Lister les fichiers Lister les fichiers cachés Lister les répertoires d un répertoire Lister les fichiers par date Les droits Types de fichier Supprimer

Plus en détail

Introduction aux commandes de base sous UNIX

Introduction aux commandes de base sous UNIX Introduction aux commandes de base sous UNIX -- Atelier DNS AfTLD Yaoundé 2004 - Exemple d un session (se logger, exécuter des commandes, se délogger) - Les commandes de base 1. Une session avec un "shell"

Plus en détail

TP 2 (Bash) ============ Intro ------

TP 2 (Bash) ============ Intro ------ TP 2 (Bash) ============ Intro ------ Le but de cette séance est de vous familiariser avec l utilisation de l interpréteur de commande, ou shell, sous Unix. C est l équivalent de "l'invite de commandes

Plus en détail

Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn

Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn maxime.boissonneault@calculquebec.ca U. Laval - Mars 2013 1 2 Plan de la présentation 1.Accéder à une grappe 2.Fichiers

Plus en détail

Unix Administration du système (AIX, HP-UX, Solaris, Linux) (2ième édition)

Unix Administration du système (AIX, HP-UX, Solaris, Linux) (2ième édition) Avant-propos 1. Objectif de ce livre 9 2. Présentation de l'ouvrage 10 Introduction 1. Principales utilisations professionnelles d'unix 11 1.1 Particularité des serveurs dédiés 12 1.2 Caractéristiques

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

variables du "shell" variables d environnement ...> rename orig dest

variables du shell variables d environnement ...> rename orig dest C. Les scripts en Unix 1 Qu'est-ce qu'un "shell"? Un "shell" est un programme permettant d'isoler l'utilisateur des commandes internes du système d'exploitation. Nous donnerons une description des principales

Plus en détail

Environnements informatiques

Environnements informatiques Environnements informatiques Premiers pas sous Linux (seconde partie) 26 septembre 2008 blansche@dpt-info.u-strasbg.fr 1 /12 Administration sous Linux 2 /12 Démarrage Démarrage de Linux Niveaux de démarrage

Plus en détail

Les noms et adresses IP des différentes machines sur le réseau 192.168.0.0/24 de la salle C309 seront définis comme suit :

Les noms et adresses IP des différentes machines sur le réseau 192.168.0.0/24 de la salle C309 seront définis comme suit : T.P. n 1 Réseau local sous Linux Binôme Authentification NIS Partages NFS Groupe 1 Introduction Ce TP consiste à configurer un petit réseau local de plusieurs machines sous Linux Fedora 14 (14 clients

Plus en détail

NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE OBJET : ÉVOLUTIONS ENTRE LES RELEASES 5.0 UX ET 5.0 LX DE SWINST, LINUX, CHORUS, NETADMIN

NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE OBJET : ÉVOLUTIONS ENTRE LES RELEASES 5.0 UX ET 5.0 LX DE SWINST, LINUX, CHORUS, NETADMIN COMMUNICATION TECHNIQUE N TC0443 Ed. 01 OmniPCX Enterprise Nb de pages : 7 Date : 25-04-2003 URGENTE (FLASH PRODUIT) NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE OBJET : ÉVOLUTIONS ENTRE LES RELEASES

Plus en détail

Licence Professionnelle GSIE - Auxerre Linux (partie 3)

Licence Professionnelle GSIE - Auxerre Linux (partie 3) Licence Professionnelle GSIE - Auxerre Linux (partie 3) Marie-Noëlle Terrasse Département IEM, Université de Bourgogne 6 janvier 2005 1 TP noté Exercice 1- Programme de création de comptes Vous devez noter

Plus en détail

Activité - Serveur sous Linux Suse

Activité - Serveur sous Linux Suse Activité - Serveur sous Linux Suse Configuration de services réseaux Problématique : Configurer les services réseaux (DHCP, SAMBA, APACHE2) sur un serveur afin de répondre au besoin des postes clients

Plus en détail

FORMATION - FEDORA ET VMWARE

FORMATION - FEDORA ET VMWARE FORMATION - FEDORA ET VMWARE Par Pierre-Luc Delisle 1 VMWARE WORKSTATION Le meilleur outil de virtualisation desktop sur le marché 2 CRÉATION D UNE MACHINE VIRTUELLE Création d une machine virtuelle avec

Plus en détail

M1101a Cours. Shell, Gestion de fichiers. Département Informatique IUT2, UPMF 2015/2016

M1101a Cours. Shell, Gestion de fichiers. Département Informatique IUT2, UPMF 2015/2016 M1101a Cours Shell, Gestion de fichiers Département Informatique IUT2, UPMF 2015/2016 Département Informatique (IUT2, UPMF) M1101a Cours 2015/2016 1 / 41 Plan du cours 1 Shell 2 Système de fichiers 3 Documentation

Plus en détail

CH2 Administration UNIX. Introduction

CH2 Administration UNIX. Introduction CH2 Administration UNIX Introduction UNIX, Linux,... Source: Wikipedia Particularités Ecrit en C, sources disponibles Fortement scriptable La plupart des outils de gestion de services et de démarrage sont

Plus en détail

Informatique tronc commun TP 02

Informatique tronc commun TP 02 Informatique tronc commun TP 02 15 septembre 2015 NB : 1. Lisez attentivement tout l énoncé avant de commencer. 2. Après la séance, vous devez rédiger un compte-rendu de TP et l envoyer au format électronique

Plus en détail

Utilisateurs et Groupe

Utilisateurs et Groupe 1 Gestion des utilisateurs Unix 1.1 Super-utilisateur Utilisateurs et Groupe Linux est un système multiutilisateurs (plusieurs utilisateurs peuvent travailler sur la même machine) et sécurisé. Chaque utilisateur,

Plus en détail

Aide-Mémoire unix. 9 février 2009

Aide-Mémoire unix. 9 février 2009 Aide-Mémoire unix Nicolas Kielbasiewicz 9 février 2009 Le système d exploitation unix est de plus en plus présent aujourd hui. Comme tous les projets Open Source, on le trouve sous différentes formes :

Plus en détail

Le cours. I. Introduction aux OS II. III. Utiliser linux

Le cours. I. Introduction aux OS II. III. Utiliser linux I. Introduction aux OS Un OS exploite une machine pour faire interagir un ensemble de programme, il fait la liaison entre les ressources matérielles et les applications de la machine. Il dirige le fonctionnement

Plus en détail

Aspects de zsh liés à une utilisation interactive

Aspects de zsh liés à une utilisation interactive Université de Nice-Sophia Antipolis Semestre 2 Licence Mathématiques-Informatique Semaine du 19 mars 2007 Systèmes Informatiques Travaux Pratiques Séance n 8 Généralités L interface de connexion textuelle

Plus en détail

Administration de Parc Informatique TP08 : Installation de Linux Debian

Administration de Parc Informatique TP08 : Installation de Linux Debian Institut Galilée L2 Info S1 Année 2011 2012 1 Une machine virtuelle Administration de Parc Informatique TP08 : Installation de Linux Debian Le but du TP est d installer Linux (en l occurrence la distribution

Plus en détail

2011 Hakim Benameurlaine 1 1.7.1 LIEN PHYSIQUE (HARD)... 16 1.7.2 LIEN SYMBOLIQUE... 18

2011 Hakim Benameurlaine 1 1.7.1 LIEN PHYSIQUE (HARD)... 16 1.7.2 LIEN SYMBOLIQUE... 18 Table des matières 1 GESTION DES FICHIERS ET RÉPERTOIRES... 2 1.1 Une image plus large du système de fichiers... 2 1.2 Répertoires de système... 3 1.3 Utilisation des disquettes... 4 1.4 Utilisation du

Plus en détail

Aperçu sur UNIX/ Linux

Aperçu sur UNIX/ Linux Aperçu sur UNIX/ Linux Historique sur UNIX EVOLUTION DES DISTRIBUTIONS UNIX DANS LE TEMPS Image courtesy of Wikipedia COMPARAISON UNIX / LINUX Sont-ils les mêmes? Oui, du moins en termes d'interfaces du

Plus en détail

[Math-L312] TP 0 : Présentation rapide de UNIX, Linux et de gcc

[Math-L312] TP 0 : Présentation rapide de UNIX, Linux et de gcc [Math-L312] TP 0 : Présentation rapide de UNIX, Linux et de gcc Adrien Semin adrien.semin@math.u-psud.fr 1 UNIX et Linux Linux est un système d exploitation de type UNIX (ce qui signifie qu il est à la

Plus en détail

Cours de Systèmes d'exploitation (Unix)

Cours de Systèmes d'exploitation (Unix) Cours de Systèmes d'exploitation (Unix) H.Bourzoufi Université de Valenciennes - ISTV -1- H.Bourzoufi Caractéristiques d'unix q Portabilité (écrit en C) q Multi-utilisteurs Plusieurs utilisateurs peuvent

Plus en détail

Cloner un disque dur

Cloner un disque dur Cloner un disque dur Préambule: J'ai testé beaucoup d'outils disponibles sur le Web, pour cloner des disques dur et/ou des partitions, dans de nombreux cas et sur de nombreuses machines, et avec de nombreux

Plus en détail

installation et configuration de systèmes TR ACADÉMIE D ORLÉANS-TOURS

installation et configuration de systèmes TR ACADÉMIE D ORLÉANS-TOURS LP CHATEAU BLANC 45 CHALETTE/LOING BAC PRO SEN TR THÈME : CONFIGURATION D UN SERVEUR TP N 4 LINUX A DISTANCE ACADÉMIE D ORLÉANS-TOURS NOM : CI 11 : INSTALLATION ET CONFIGURATION DE SYSTEMES TR OBJECTIFS

Plus en détail

TP N o 2 - Configuration Linux : services, processus

TP N o 2 - Configuration Linux : services, processus IUT de Villetaneuse E. Viennet R&T Module I-C1 Système d exploitation 7/12/05 TP N o 2 - Configuration Linux : services, processus Ce TP se déroulera avec Linux Red Hat 9 (image GTR 4), en salle de TP

Plus en détail

Bon ben voilà c est fait!

Bon ben voilà c est fait! Bon ben voilà c est fait! Au programme : - Exploration de l arborescence et informations systèmes - Action sur les dossiers et fichiers - Gestion des autorisations - Conversion pdf en text - Connexion

Plus en détail

Exercices d'introduction à Unix (1)

Exercices d'introduction à Unix (1) Exercices d'introduction à Unix (1) 1) Première connexion 1. connectez vous à une session Unix en indiquant votre identifiant (login) et votre mot de passe (Password). 2. changer votre mot de passe avec

Plus en détail

Il est courant de souhaiter conserver à

Il est courant de souhaiter conserver à Il est courant de souhaiter conserver à la fois Linux et Windows sur un même ordinateur, en particulier pour découvrir Linux, pour garder un filet de sécurité, ou pour continuer à jouer à des jeux récents

Plus en détail

UE GLSE 301 Outils informatique

UE GLSE 301 Outils informatique UE GLSE 301 Outils informatique Responsable : Andrea CHERUBINI andrea.cherubini@univ-montp2.fr 1 Présentation générale But Ce module vous permettra de vous perfectionner sur les différents logiciels que

Plus en détail

Projet Avancé. LINUX WIFI Embarqué

Projet Avancé. LINUX WIFI Embarqué Projet Avancé LINUX WIFI Embarqué Semestre 5-2004/2005 Guillaume GUINDE Xavier NOURISSON Amélie GUION Adrien ZANCAN ENSEIRB Linux WIFI embarqué SOMMAIRE INTRODUCTION...3 TP1 MISE EN ŒUVRE DE LINUX...4

Plus en détail

/boot/system.map Fichier système contenant la liste des symboles du noyau. Ce fichier est utilisé par certains programmes donnant des renseignements

/boot/system.map Fichier système contenant la liste des symboles du noyau. Ce fichier est utilisé par certains programmes donnant des renseignements INITIATION A LINUX FEDORA 10 ( PARTIE A ) Réduire la partition Windows... formatée en FAT 16 ou FAT 32 Je vous conseille d utiliser le programme GPL Fips. Téléchargez le fichier fips20.zip (ftp://ftp.fr.debian.org/debian/tools/fips20.zip)

Plus en détail

TP2 Unix / Linux. Par contre, l'outil d'administration Yast est spécifique à la distribution Suse Yast 1 = Yet another Setup Tool. Table des matières

TP2 Unix / Linux. Par contre, l'outil d'administration Yast est spécifique à la distribution Suse Yast 1 = Yet another Setup Tool. Table des matières TP2 Unix / Linux Redirection des entrées/sorties Commandes find, grep, sort, wc, head, tail, less Gestion des Processus et communications par signaux Session utilisateur : variables d'environnement et

Plus en détail

Premiers pas en Linux

Premiers pas en Linux Premiers pas en Linux 1 Bref historique Linux Système d'exploitation créé en 1991. Par Linus Torvalds un étudiant nlandais. Développé et amélioré par des centaines de spécialistes dans le monde. Particularité

Plus en détail

Chapitre VII : Les sauvegardes

Chapitre VII : Les sauvegardes Chapitre VII : Les sauvegardes Eric Leclercq & Marinette Savonnet Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 16 mars 2012 Principes et outils Médias disponibles

Plus en détail

David.parize@wanadoo.fr Page 1

David.parize@wanadoo.fr Page 1 I. David.parize@wanadoo.fr Page 1 TABLE DES MATIERES I. Démarrage...3 II. Partitionnement...3 A. Partition primaire & étendue...3 B. Partition logique...3 C. Système de fichiers...4 III. Choix des paquetages...4

Plus en détail

Administration de Parc Informatique TP 05 Installation de Linux Debian

Administration de Parc Informatique TP 05 Installation de Linux Debian Institut Galilée L2 info S1 Année 2008-2009 Administration de Parc Informatique TP 05 Installation de Linux Debian 1 Une machine virtuelle Sur les machines du Sercal, nous ne pouvons pas manipuler les

Plus en détail

Table des matières Préface... xix Installer et gérer des logiciels sur des systèmes à base de RPM...1

Table des matières Préface... xix Installer et gérer des logiciels sur des systèmes à base de RPM...1 Préface... xix 1. Installer et gérer des logiciels sur des systèmes à base de RPM...1 1.1 Introduction... 1 1.2 Installer des RPM... 2 1.3 Mettre à jour des RPM... 3 1.4 Supprimer des RPM... 4 1.5 Obtenir

Plus en détail

Procédure d installation. du serveur Big Brother 1.9c. sous Linux

Procédure d installation. du serveur Big Brother 1.9c. sous Linux CHAMBREUIL Maxime Procédure d installation du serveur Big Brother 1.9c sous Linux Juillet / Août 2002 I. Installation Voici les pré-conditions de l installation du serveur BB sous Linux : Vous devez connaître

Plus en détail

TP n 1 : Installation et configuration d un serveur Web Apache

TP n 1 : Installation et configuration d un serveur Web Apache TP n 1 : Installation et configuration d un serveur Web Apache Objectifs du TP Configurer, lancer et administrer le serveur Web Apache sous Linux Machines sous Linux Fedora 14 Fichiers de configuration

Plus en détail

ASR1 - Systèmes d exploitation

ASR1 - Systèmes d exploitation ASR1 - Systèmes d exploitation Semestre 1, année 2011-2011 Département d informatique IUT Bordeaux 1 Janvier 2012 q 1 / 1 1. Introduction aux Systèmes d exploitation Contenu à quoi ça sert grandes fonctions

Plus en détail

Commandes Unix / Linux. cd /ls /cp /rm - rmdir /mkdir / mv /find / Autres commandes

Commandes Unix / Linux. cd /ls /cp /rm - rmdir /mkdir / mv /find / Autres commandes Commandes Unix / Linux cd /ls /cp /rm - rmdir /mkdir / mv /find / Autres commandes Commande d'administration Commandes Administration Messages Système La gestion des processus Éditer un fichier avec VI

Plus en détail

JEAN-FRANÇOIS BOUCHAUDY GILLES GOUBET. Linux. Administration

JEAN-FRANÇOIS BOUCHAUDY GILLES GOUBET. Linux. Administration est f o E Y R O L L E S JEAN-FRANÇOIS BOUCHAUDY GILLES GOUBET Linux Administration PRÉAMBULE...P-1 Progression pédagogique... P-2 MODULE 1 : INTRODUCTION... 1-1 Les caractéristiques d UNIX...1-2 L historique

Plus en détail

C.M. 1 & 2 : Prise en main de Linux

C.M. 1 & 2 : Prise en main de Linux Grégory Bonnet gregory.bonnet@unicaen.fr GREYC Université Caen Basse Normandie Diaporama original : Jean-Philippe Métivier - Boris Lesner But de cet enseignement 1 - Apprendre à manipuler un système Unix/Linux

Plus en détail

FreeNAS 0.7.1 Shere. Par THOREZ Nicolas

FreeNAS 0.7.1 Shere. Par THOREZ Nicolas FreeNAS 0.7.1 Shere Par THOREZ Nicolas I Introduction FreeNAS est un OS basé sur FreeBSD et destiné à mettre en œuvre un NAS, système de partage de stockage. Pour faire simple, un NAS est une zone de stockage

Plus en détail

TP 1 Prise en main de l environnement Unix

TP 1 Prise en main de l environnement Unix Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session

Plus en détail

Administration de Parc Informatique TP07 : Installation de Linux Debian

Administration de Parc Informatique TP07 : Installation de Linux Debian Institut Galilée L2 Info S1 Année 2012 2013 1 Une machine virtuelle Administration de Parc Informatique TP07 : Installation de Linux Debian Le but du TP est d installer Linux (en l occurrence la distribution

Plus en détail

Ftp : H:\Mes Documents\ecole\cours\Os_sept_02\commandes Ftp.doc

Ftp : H:\Mes Documents\ecole\cours\Os_sept_02\commandes Ftp.doc Ftp : Transfère les fichiers de/vers un système utilisant un service serveur FTP (parfois appelé daemon ou démon). Ftp peut être utilisée de manière interactive. Cette commande est disponible uniquement

Plus en détail

Licence d Informatique Module 3I015 année 2015 2016. Principes et pratiques de l administration des. Module 3I015. Semaine 5

Licence d Informatique Module 3I015 année 2015 2016. Principes et pratiques de l administration des. Module 3I015. Semaine 5 Licence d Informatique Module 3I015 année 2015 2016 Principes et pratiques de l administration des systèmes Module 3I015 Semaine 5 page 2 1. Sauvegardes des comptes utilisateurs avec rsync 1. Sauvegardes

Plus en détail

Bienvenue à la FORMATION LINUX

Bienvenue à la FORMATION LINUX Bienvenue à la FORMATION LINUX - ADMINISTRATION D UN SERVEUR SOUS LINUX CENT OS : les bases - INFOMA NANCY du 07 au 11 avril 2014 (formateur : Frédéric DAVAL) Administration d'un serveur sous Linux CentOS

Plus en détail

Programmation Shell. Table des matières. Programmation Shell

Programmation Shell. Table des matières. Programmation Shell Programmation Shell Table des matières Programmation Shell...1 I- Introduction...2 Shell?...2 Le Bash...2 II- Premiers scripts Shell...3 Syntaxe des scripts Shell...3 Bonjour!...3 Exécuter un script...3

Plus en détail

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Un système d exploitation (SE, en anglais Operating System ou OS) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d un ordinateur et les

Plus en détail

102.1. Schémas de partitionnement

102.1. Schémas de partitionnement Préparation LPI Exam 101 102.1. Schémas de partitionnement Document sous licence Creative commons «by nc sa» http://creativecommons.org/licenses/by nc sa/2.0/fr/ Sommaire Partitionnement LVM Points de

Plus en détail

Formation Root de Base

Formation Root de Base VIA Centrale Réseaux 2011-2012 3 octobre 2011 De quoi va-t-on parler ce soir? 1 Quels outils utilisera-t-on? 2 3 4 5 Plan de cette formation La distribution Debian Une machine pour s (auto)former : metamorph

Plus en détail

Introduction au système d exploitation Linux Linux / Emacs / Scilab / L A TEX

Introduction au système d exploitation Linux Linux / Emacs / Scilab / L A TEX Introduction au système d exploitation Linux Linux / Emacs / Scilab / L A TEX Jean-Philippe Chancelier et Michel De Lara 7 septembre 2009 Table des matières 1 Introduction 2 2 Le système de fichiers 3

Plus en détail

Récupération d'une installation ne s'amorcant plus. jean-luc.anthoine@iut-bm.univ-fcomte.fr

Récupération d'une installation ne s'amorcant plus. jean-luc.anthoine@iut-bm.univ-fcomte.fr Récupération d'une installation ne s'amorcant plus 1 Le système ne s'amorce plus : le secteur d'amorcage est détruit ou endommagé le menu de grub a été effacé ou est incorrect le chargement du système

Plus en détail

Réseau. 1. Commandes réseaux, découverte environnement. TP1 - Connaissances de base, SSH

Réseau. 1. Commandes réseaux, découverte environnement. TP1 - Connaissances de base, SSH 1 sur 7 06/09/2012 09:32 Réseau TP1 - Connaissances de base, SSH Contenu de la Page 1. Commandes réseaux, découverte environnement 2. Ecriture d'un petit Shell script 3. Organisation de son Arborescence

Plus en détail

La ligne de commande sous Windows Server. dir mp3 /p. A. Introduction. B. Les unités logiques. C. Commandes de gestion des dossiers et des fichiers

La ligne de commande sous Windows Server. dir mp3 /p. A. Introduction. B. Les unités logiques. C. Commandes de gestion des dossiers et des fichiers La ligne de commande sous Windows Server A. Introduction 1. Notion de ligne de commande Une interface en ligne de commande est une interface homme machine dans laquelle la communication entre l'utilisateur

Plus en détail

Module 8 : Partage de fichier sous Linux. Table des matières

Module 8 : Partage de fichier sous Linux. Table des matières Module 8 : Partage de fichier sous Linux Objectifs Pouvoir effectuer le partage de fichier sur un réseau Linux. Table des matières... 1 Partage de fichier entre machine Linux (NFS)... 2 Introduction...

Plus en détail

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

TP réseaux 4 : Installation et configuration d'un serveur Web Apache TP réseaux 4 : Installation et configuration d'un serveur Web Apache Objectifs Installer, configurer, lancer et administrer le serveur Web Apache sous Linux Données de base machine fonctionnant sous Linux

Plus en détail

Installation Serveur. R.C. Electronic 53 rue Victor Hugo 84100 Orange info@rcelectronic.com 04 90 34 60 23. Orange : 7 mai 2014. Matériel vendu par :

Installation Serveur. R.C. Electronic 53 rue Victor Hugo 84100 Orange info@rcelectronic.com 04 90 34 60 23. Orange : 7 mai 2014. Matériel vendu par : Orange : 7 mai 2014 Installation Serveur Matériel vendu par : R.C. Electronic 53 rue Victor Hugo 84100 Orange info@rcelectronic.com 04 90 34 60 23 Page : 1 / 10 Table des matières Configuration serveur...3

Plus en détail

Administration de Parc Informatique TP09 : aptitude, administration de comptes utilisateurs et retour sur marionnet

Administration de Parc Informatique TP09 : aptitude, administration de comptes utilisateurs et retour sur marionnet Institut Galilée L2 Info S1 Année 2011 2012 Administration de Parc Informatique TP09 : aptitude, administration de comptes utilisateurs et retour sur marionnet 1 Introduction Pendant la première partie

Plus en détail

Administration d'une station Linux

Administration d'une station Linux Administration d'une station Linux Le démarrage F. Nolot Master 2 STIC-Informatique 1 Les init? Linux utilise un service de démarrage spécial nommé SysVinit qui est basé sur un concept de niveaux d'exécution

Plus en détail

Plan du cours. 12. Gestion des processus. 12.1 Notions théoriques 12.2 Lancement d'une commande 12.3 Identifier et controler un processus

Plan du cours. 12. Gestion des processus. 12.1 Notions théoriques 12.2 Lancement d'une commande 12.3 Identifier et controler un processus Plan du cours 12.1 Notions théoriques 12.2 Lancement d'une commande 12.3 Identifier et controler un processus PS, KILL 12.4 Exercices Olivier HUBERT LGEP/CNRS 1 Plan du cours 12.1 Notions théoriques 12.1.1

Plus en détail

«Astrophysique et instrumentations associées» Cours UNIX. 2006 Benoît Semelin

«Astrophysique et instrumentations associées» Cours UNIX. 2006 Benoît Semelin M2 «Astrophysique et instrumentations associées» Cours UNIX 2006 Benoît Semelin Les OS OS = Operating System : Programme de base qui assure la gestion du matériel (clavier, écran, disque dur...), du système

Plus en détail

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim 01/03/2013 Le rôle de Serveur Web (IIS) dans Windows Server 2008 R2 vous permet de partager des informations avec des utilisateurs sur Internet, sur un intranet ou un extranet. Windows Server 2008 R2 met

Plus en détail

Installation d un serveur AmonEcole 2.3

Installation d un serveur AmonEcole 2.3 Installation d un serveur AmonEcole 2.3 Pour les écoles de la Charente 13/01/2014 EoleNG 2.3.9/11 Préalable Penser à brancher souris, clavier, écran puis les câbles réseau dans les interfaces correspondantes.

Plus en détail

Projet Semestre2-1SISR

Projet Semestre2-1SISR Table des matières 1 Ressources... 2 2 Récupération des sources Samba... 2 3 Préparation du serveur... 2 4 Vérification et Compilation de SAMBA4... 3 5 Préparation du controleur de domaine... 3 6 Test

Plus en détail

1 Démarrage de Marionnet

1 Démarrage de Marionnet Institut Galilée Administration Système Année 2011-2012 INFO 2ème année Master Info 1 Master Image & Réseau 1 T.P. 1 Administration Système Le logiciel Marionnet (www.marionnet.org) offre la possibilité

Plus en détail

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5 Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 La Sauvegarde...4 Les différents types...4 Planification...4 Les outils...5 Quelques commandes...5 La commande tar...5 La

Plus en détail

TP1 Master2SE OS Embarqué

TP1 Master2SE OS Embarqué TP1 Master2SE OS Embarqué La hiérarchie des répertoires sous Linux Dans un système Linux, les fichiers sont organisés selon une arborescence bien précise. Elle suit effectivement le standard FHS (File

Plus en détail

Parcours IT Projet réseaux informatiques Christophe DOIGNON

Parcours IT Projet réseaux informatiques Christophe DOIGNON FORMATION INGENIEURS ENSPS EN PARTENARIAT (2008-2009) MODULE MI6 DU PARCOURS INFORMATIQUE ET TELECOMMUNICATIONS MISE EN OEUVRE D'UN RESEAU INFORMATIQUE LOCAL EMULE ROUTAGE SOUS LINUX 1. Introduction La

Plus en détail

Principales commandes UNIX

Principales commandes UNIX 1 Principales commandes UNIX 1. Format des commandes... 1 2. Commandes utilitaires... 1 3. Fichiers... 2 4. Filtres évolués... 3 5. Droits d'accès aux fichiers... 4 6. Processus... 5 7. Compression, archivage...

Plus en détail

Introduction 2 Environnement de travail... 2 Groupement de commandes... 2 Caractères spéciaux... 2

Introduction 2 Environnement de travail... 2 Groupement de commandes... 2 Caractères spéciaux... 2 TP OS n 5 2012 tv - v.1.0 Sommaire Introduction 2 Environnement de travail....................................... 2 Groupement de commandes..................................... 2 Caractères

Plus en détail

FICHE n 1 : Configuration des paramètres IP sous Linux SUSE 11.2

FICHE n 1 : Configuration des paramètres IP sous Linux SUSE 11.2 FICHE n 1 : Configuration des paramètres IP sous Linux SUSE 11.2 Cliquer sur «Ordinateur» puis «Yast», pour ouvrir le centre de contrôle YaST du serveur. Cliquer sur «Périphérique réseau» puis «Paramètres

Plus en détail

TP : installation de services

TP : installation de services TP : installation de services Ce TP a été rédigé rapidement. Il ne donne certainement pas toutes les explications nécessaires à la compréhension des manipulations. Assurez vous de bien comprendre ce que

Plus en détail

UTILISATION DE LINUX UBUNTU

UTILISATION DE LINUX UBUNTU Lycée Felix Le Dantec - Lannion NOM : PRÉNOM : UTILISATION DE LINUX UBUNTU TP1-2h TSTI2D 2014/2015 CLASSE : Condition : Travail individuel ; durée 2 heures Matériel : un ordinateur avec Linux Ubuntu 12.04

Plus en détail

CLIENTS LÉGERS SOUS LINUX DEBIAN

CLIENTS LÉGERS SOUS LINUX DEBIAN CLIENTS LÉGERS SOUS LINUX DEBIAN I MATÉRIELS ET LOGICIELS NECÉSSAIRES Ce TP s effectue par groupe de deux élèves. Il faut deux machines, un serveur Linux sous Knoppix et un poste client (micro-ordinateur

Plus en détail

Personnes ressources Tice. Académie de Rouen

Personnes ressources Tice. Académie de Rouen Personnes ressources Tice Académie de Rouen Objectifs Acquérir les connaissances de base concernant Linux Découvrir la solution technique SambaEdu3 : serveur de fichiers sous Linux Mettre en oeuvre cette

Plus en détail

TD séance n 5 Répertoires et Fichiers sous Windows

TD séance n 5 Répertoires et Fichiers sous Windows 1 Environnement de travail 1.1 Interpréteur de commandes Sous Windows, vous disposez d outils pour manipuler graphiquement les éléments de votre ordinateur. Mais comme sous Linux, vous disposez aussi d

Plus en détail