COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM



Documents pareils
titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

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

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

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

Installer un domaine DNS

Administration UNIX. Le réseau

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Attribution dynamique des adresses IP

1 Configuration réseau des PC de la salle TP

INSTALLATION ET CONFIGURATION DE OPENLDAP

Ce TP consiste à installer, configurer et tester un serveur DNS sous Linux. Serveur open source : bind9 Distribution : Mandriva

Environnements informatiques

Table des matières Hakim Benameurlaine 1

I. Adresse IP et nom DNS

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

I. Présentation du serveur Samba

Résolution de nom avec Bind

DHCPD v3 Installation et configuration

Réaliser un inventaire Documentation utilisateur

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

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

Serveur DHCP et Relais DHCP (sous Linux)

titre : CENTOS_BIND_install&config Système : CentOS 5.7 Technologie : Bind 9.3 Auteur : Charles-Alban BENEZECH

Configuration réseau Basique

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

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4

CONFIGURATION DE OPENVPN AVEC CLIENT FEDORA ET CLIENT WINDOWS. Distribution : Fedora 14 Noyau GNU/Linux : Version document : 1

FILTRAGE de PAQUETS NetFilter

- FICHE DE PROCEDURE - Configurer un serveur DNS avec Bind9 sur Debian

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

machine.domaine

Aubert Coralie, Ruzand Brice GTR 2002 Bonvarlet Manuel, Desroches Alexandre, Magnin Cyril DRT Notice technique 1

M2-RADIS Rezo TP13 : VPN

Projet Semestre2-1SISR

Le système GNU/Linux DHCP

BIND : installer un serveur DNS

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

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

Département R&T, GRENOBLE TCP / IP

TP4 : Firewall IPTABLES

SSH, le shell sécurisé

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

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

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Domain Name System. F. Nolot

1 Configuration réseau des PC de la salle TP

Jeudis du libre, Samba ou comment donner le rythme aux stations Windows

TP : Introduction à TCP/IP sous UNIX

Installation et configuration de Vulture Lundi 2 février 2009

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Serveur de messagerie sous Debian 5.0

TP DNS Utilisation de BIND sous LINUX

Mise en œuvre de Rembo Toolkit

Étude de l application DNS (Domain Name System)

LINUX REMPLAÇANT WINDOWS NT

FreeNAS Shere. Par THOREZ Nicolas

COMMANDES RÉSEAUX TCP/IP WINDOWS.

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

Travaux pratiques : dépannage de la configuration et du placement des listes de contrôle d'accès Topologie

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

TP 1 : LES COMMANDES RESEAUX Matière: RESEAUX LOCAUX

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

Authentification des utilisateurs avec OpenLDAP

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

Bind, le serveur de noms sous Linux

PROXY SQUID-SQARD. procédure

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

TP SECU NAT ARS IRT ( CORRECTION )

Authentification des utilisateurs avec OpenLDAP et Samba 3.0

sshgate Patrick Guiran Chef de projet support

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

Méthode 1 : Mise en place IPSEC

Administration de Parc Informatique TP03 : Résolution de noms

(1) Network Camera

Les différentes méthodes pour se connecter

Administration réseau Résolution de noms et attribution d adresses IP

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Serveur d impression CUPS

Les réseaux des EPLEFPA. Guide «PfSense»

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

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

PARAMETRER SAMBA 2.2

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

DNS. Olivier Aubert 1/27

Travaux Pratiques Introduction aux réseaux IP

Domain Name System ot ol F. N 1

Dynamic Host Configuration Protocol

L annuaire et le Service DNS

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

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

Déploiement d'un serveur ENT

L3 informatique Réseaux : Configuration d une interface réseau

DNS et Mail. LDN 15 octobre DNS et Mail. Benjamin Bayart, Fédération FDN. DNS - fichier de zone. DNS - configuration

REPARTITION DE CHARGE LINUX

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

UE5A Administration Réseaux LP SIRI

Transcription:

I. Configuration DNS... 3 1. Fichier de Configuration DNS PRIMAIRE :... 3 2. Fichier de Zone Directe... 3 3. Ficher de Zone Secondaire... 4 4. Ficher de configuration DNS secondaire :... 4 5. Fichier Resolv.conf... 4 6. Videz la cache DNS :... 4 7. Définir l ordre de résolution dans le fichier host.conf... 4 8. Afficher tous les enregistrements du serveur bind.... 5 II. Configuration de la carte Reseau... 10 III. Configuration d un serveur DHCP :... 11 IV. Configuration d un serveur telnet... 13 V. Configuration d un serveur SAMBA... 14 VI. Configuration d un serveur SSH :... 16 VII. Configuration d un serveur VPN... 18 VIII. Configuration d un serveur NFS... 25 1. Installation de NFS... 25 2. Configuration de NFS coté serveur... 25 3. Configuration de NFS coté client... 25 WWW.COURSNET.COM 1

IX. Configuration d un serveur IPTABLE... 26 1. La table filter... 26 2. Configuration du pare-feu... 26 X. Configuration d un serveur APPATCH... 29 1. installer le paquage :... 29 2. configuration APPATCH... 29 3. Démarrage de http :... 29 4. Accéder au serveur http... 29 5. Sécuriser Apache avec TLS (SSL)... 29 XI. Configuration d un serveur FTP... 30 XII. Configuration d un serveur LDAP... 31 XIII. SCRIPT LINUX... 37 Script 1... 40 Script 2 :... 41 Script 3 :... 42 Script 4 :... 42 Script 5 : (Fichier accessible en lecture )... 43 Script 6 : (argument et paramètres )... 43 Script 7 : Nombre de processus... 43 Script 8 : (Les Jours > La date )... 44 Script 9: (Argument et paramètres )... 44 Script 10 : (Argument et paramètres )... 45 Script 11 : chaine de caractére «oui»... 45 Script 12 : basname et $ home... 45 Script 13 : N de la commande + PATH... 45 Script 14 : (Comparaison des arguments )... 46 Script 15 : Copier Fichier... 47 Script 16 : 2 Nbr (+-*/) avec while... 47 Script 17 : Factorielle d un argument... 47 Script 18 : PGCD d un argument... 48 Script 19 : Argument des noms de fichiers... 48 Script 20 : Mathématique... 49 Script 21 : Jeter la poubelle déplacer-vider... 49 Script 22: Argument Fichier exécutable.... 50 WWW.COURSNET.COM 2

Script 23: jour/mois > Case... 51 Script 24: Fichier accessible en écriture... 51 Script 25: Renommer les fichier d un rép... 51 Script 26 : Script Pratique 2013... 52 #!/bin/bash... 52 #!/bin/bash... 52 Cat/etc/passwd grep 500 > /etc/test.txt... 52 XIV. Quelque Commandes Linux... 52 I. Configuration DNS 1. Fichier de Configuration DNS PRIMAIRE : Options { listen-on port 53;{127.0.0.1;192.168.1.10 ;192.168.1.20;}; allow-query{127.0.0.1 ;192.168.1/24;} Zone ista.ma IN { Type master ; File directe.ma.db» ; Allow-update { none ;} ; Allow-transfer {192.168.1.20;} ;} Zone 1.168.192.in-addr.arpa IN { Type master; File inverse.ma.db ; Allow-transfer{192.168.1.20;}; Allow-update { none ;} ; 2. Fichier de Zone Directe @ IN SOA tri.ista.ma. root.ista.ma. ( 19990811 ; Serial number 3600 ; 1 hour refresh 300 ; 5 minutes retry 172800 ; 2 days expiry 43200 ) ; 12 hours minimum @ NS tri.ista.ma. tri.ista.ma. IN A 192.168.1.1 gopher IN CNAME mail.mydomain.name. ftp IN CNAME mail.mydomain.name. WWW.COURSNET.COM 3

www IN CNAME mail.mydomain.name. mail.net. IN MX 10 user.mail.net. superathlon IN HINFO "AMD Athlon 1Ghz" "Linux Mandrake 8.1" alien TXT "Alien Computer - ordinateur invite" www IN CNAME superathlon imap IN CNAME superathlon pop IN CNAME superathlon smtp IN CNAME superathlon ftp IN CNAME superathlon _sip._tcp.example.com. 86400 IN SRV 0 33 5060 serveursip1.example.com. 3. Ficher de Zone Secondaire @ IN SOA tri.ista.ma. root.ista.ma. ( 19990811 ; Serial number 3600 ; 1 hour refresh 300 ; 5 minutes retry 172800 ; 2 days expiry 43200 ) ; 12 hours minimum @ IN NS tri.ista.ma. 1 IN PTR tri.ista.ma. 4. Ficher de configuration DNS secondaire : Options { listen-on port 53;{127.0.0.1;192.168.1.10 ;192.168.1.20;}; allow-query{127.0.0.1 ;192.168.1/24;} Zone ista.ma.db IN { Type slave ; masters {192.168.1.1;} ; File direct.ma.db» ;}; Zone 1.168.192.in-addr.arpa IN Type slave; masters{192.168.1.1;}; File inverse.ma.db ;}; 5. Fichier Resolv.conf search axius-1.fr nameserver 172.16.11.1 6. Videz la cache DNS : /etc/rc.d/init.d/nscd restart 7. Définir l ordre de résolution dans le fichier host.conf Cela précise au résolveur de regarder d abord les entrées du fichier /etc/hosts et ensuite d utiliser le serveur précisé dans resolv.conf. WWW.COURSNET.COM 4

8. Afficher tous les enregistrements du serveur bind. La commande NSlookup query=any isgi.ma permet d afficher tous les enregistrements du serveur bind. 9. Configuration de rndc : BIND contient un utilitaire appelé rndc qui permet d'utiliser des lignes de commande pour administrer le démon named à partir de l'hôte local ou d'un hôte distant. Pour que rndc puisse se connecter à un service named, une déclaration controls doit être présente dans le fichier /etc/named.conf du serveur BIND. La déclaration controls montrée dans l'exemple qui suit, permet à rndc de se connecter à partir d'un hôte local. controls { inet 127.0.0.1 allow { localhost; } keys { <nom-clé>; }; WWW.COURSNET.COM 5

}; Cette déclaration indique à named de se mettre à l'écoute du port TCP 953 par défaut de l'adresse inversée et d'autoriser les commandes rndc provenant de l'hôte local, si la clé adéquate est présentée. Le <nom-clé> fait référence à la déclaration key, qui se trouve aussi dans le fichier /etc/named.conf. L'exemple suivant illustre une déclaration key. key "<nom-clé>" { algorithm secret hmac-md5; "<valeur-clé>"; }; Dans ce cas, la <valeur-clé> est une clé HMAC-MD5. Afin de créer des clés HMAC-MD5, utilisez la commande suivante : dnssec-keygen -a hmac-md5 -b <longueur-bits> -n HOST <nom-fichierclé> Configuration de /etc/rndc.conf La déclaration key représente la déclaration la plus importante contenue dans /etc/rndc.conf. key "<nom-clé>" { algorithm secret hmac-md5; "<valeur-clé>"; }; Pour faire correspondre les clés spécifiées dans le fichier /etc/named.conf du serveur cible, ajoutez les lignes suivantes au fichier /etc/rndc.conf. Options { default-server default-key }; localhost; "<nom-clé>"; La ligne de commande de rndc # rndc <options> <commande> <options-commande> Option : Halt : Arrêt du service named Querylog :Logging de toutes les requêtes Refresh :Rafraichissement de la base de données Reload : Recharge les fichiers de zone mais conserve toutes les réponses précédemment placées en cache. Stats : Evacue les statistiques courante de named vers le fichier /var/named/named.stats WWW.COURSNET.COM 6

Stop : Arrête le serveur de manière nette, en enregistrant préalablement toute mise à jour dynamique et donnée Incremental Zone Transfers (IXFR). -c <fichier- : Permet de selectionner le fichier de configuration a utiliser -p <numéro-port> : Permet de spécifier le numéro de port à utiliser -s <serveur> : Permet d'envoyer les instructions à un serveur spécifique -y <nom-clé> :Spécifie une clé autre rndc: connection issue (RESOLVED) rndc status rndc: connection to remote host closed This may indicate that * the remote server is using an older version of the command protocol, * this host is not authorized to connect, * the clocks are not synchronized, or * the key is invalid Verifier que /etc/rndc.conf et /etc/bind/rndc.key. en mm clé netstat -atpn grep -E ":953 :53" pkill named pkill lwresd /etc/init.d/bind9 start 10. Mise à jour du DNS via le serveur DHCP *- Modifications à apporter a /etc/named.conf : zone "ista.ma" { type master; file "/var/named/ ista.zone"; allow-update { 127.0.0.1; }; }; Zone"10.168.192.in-addr.arpa" { type master; file "/var/named/reverse.rev"; allow-update { 127.0.0.1; }; }; *- Modifications à apporter a /etc/named.conf : WWW.COURSNET.COM 7

ddns-update-style interim; # mise à jour autorisée ddns-update on; # mise à jour par le serveur DHCP forcée ignore client-updates; # la mise à jour des IP fixes forcée updatestatic-leases on ; # on définit également quel DNS doit être mis à jour pour ces zones : zon ista.ma. { primary 127.0.0.1; } zone 10.168.192.in-addr.arpa. { primary 127.0.0.1; } *- Modifications pour les clients Linux : Ajoutez la ligne suivante dans /etc/dhclient.conf : send host-name "lenomdelamachine"; *- Cas d'un serveur de cache : Pour ce type de serveur, un fichier /etc/named.conf suffit : 11. Commande pour vérifier la configuration DNS : #named-chekconf /etc/named.conf #named-checkzone ista.ma /var/named/zone.directe #named-checkzone ista.ma /var/named/zone.rev WWW.COURSNET.COM 8

12. CHEMIN des FICHIERS et Leurs Contenues : /etc/hosts Ce fichier contient toutes les adresses IP connues de l ordinateur local. Il permet de résoudre la correspondance entre les noms des ordinateurs et leurs adresses. # /etc/hosts # IP Ordinateur Alias 127.0.0.1 localhost 205.1.1.10 kermit.is-a-geek.net kermit 205.1.1.15 gonzo.is-a-geek.net gonzo www 205.1.2.15 tulipe.is-a-geek.net tulipe /etc/networks Ce fichier permet de résoudre la correspondance entre les noms des réseaux et les adresses réseau. # /etc/networks 127.0.0.0 loopback 205.1.1.0 is-a-geek.net 205.1.2.0 is-a-slow.net /etc/hosts.conf Ce fichier contient des paramètres nécessaires pour le pilotage de la bibliothèque de résolution des noms (Resolver). Lorsqu un ordinateur est appelé par son nom, la bibliothèque de résolution se charge de résoudre le nom de manière correcte pour l environnement de l ordinateur. Selon le cas, la résolution du nom sera réalisée à partir du fichier /etc/hosts de l ordinateur local, ou en interrogeant un serveur de nom (Name Server). L application qui est à l origine de la résolution du nom n est pas concernée par les différents processus. C est pourquoi le processus de résolution des noms est enregistré dans une bibliothèque externe. L un des fichiers de configuration de la bibliothèque de résolution est /etc/hosts.conf. # /etc/hosts.conf # order hosts, bind multi on nosproof on alert on/off trim ista.ma Order hosts, bind : Détermination de l ordre dans lequel les services de résolution de noms doivent être consultés. hosts analyse du fichier /etc/hosts de l ordinateur local.bind Interrogation WWW.COURSNET.COM 9

d un serveur de noms (DNS). Multi on : Un ordinateur enregistré dans le fichier /etc/hosts peut disposer de plusieurs adresses IP. nosproof on alert on/off : Protection contre le procédé Adress-Spoofing. Si le paramètre alert est activé, les attaques de ce type sont enregistrées dans un journal. trim <Nom_de_domaine> /etc/sysconfig/network Le fichier /etc/sysconfig/network précise les informations de routage et le nom de l hôte pour toutes les interfaces réseau. NETWORKING=yes HOSTNAME=machine GATEWAY=192.168.100.1 II. Configuration de la carte Reseau Le Chemin : /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes #Ce périphérique devrait être activé au démarrage BOOTPROTO=static #none/dhcp/bootp IPADDR=192.168.1.10 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.100 NETWORK=208.164.186.0 BROADCAST=192.168.1.255 USERCTL=no #Les utilisateurs autres que le super-utilisateur sont autorisés à contrôler ce périphérique Gérer la configuration dans le fichier interfaces : # cat /etc/network/interfaces # configuration de l interface lo (obligatoire) auto lo iface lo inet loopback # configuration de l interface eth0 auto eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0 WWW.COURSNET.COM 10

#POUR DHCP auto lo eth0 iface lo inet loopback iface eth0 inet dhcp #Pour une station WI-FI auto lo iface lo inet loopback # l interface eth1 correspond ici à la carte wifi auto eth1 iface eth1 inet dhcp wireless-essid mon_essid wireless-mode managed wireless-key AF32852BE7A39B522BG60C4353 III. Configuration d un serveur DHCP : ddns-domainname "ista.ma"; Nom du domaine DNS ddns-update-style none; style de mise à jour DNS ddns-updates off; Mise à jour non autorisée max-lease-time 604800; Durée de vie maximum du bail de 7J ignore client-updates; màjr Forcé par le serv DHCP update-static-leases on; Forçage de la mise à jour allow unknown-clients; Les clients seront tous reconnus sur le réseau subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option domain-name-servers 192.168.0.1; option domain-name "ista.ma."; range 192.168.0.1 192.168.0.254 ; default-lease-time 21600 ; max-lease-time 43200 ; # Reservation host pc1 { hardware ethernet 00:20:18:B8:A9:97; fixed-address 192.168.0.15; filename "/lts/vmlinuz-2.4.26-ltsp-2"; } Lancer la service dhcp au démmarage : chkconfig dhcpd on Nous allons par exemple déclarer une option serveur_ftp ayant pour code d'option 161 et une autre chemin_ftp avec le code 162. # Définition des options option serveur_ftp code 161 = string ; option chemin_ftp code 162 = string option serveur_ftp "10.1.1.12" ; option chemin_ftp "/pub/updates" ; WWW.COURSNET.COM 11

Déclaration d un réseau partagé shared-network name { option domain-name "test.redhat.com"; option domain-name-servers ns1.redhat.com, ns2.redhat.com; option routers 192.168.1.254; more parameters for EXAMPLE shared-network subnet 192.168.1.0 netmask 255.255.255.0 { parameters for subnet range 192.168.1.1 192.168.1.31; } subnet 192.168.1.32 netmask 255.255.255.0 { parameters for subnet range 192.168.1.33 192.168.1.63;}} Déclaration de groupe group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; }} Agent de Relais DHCP : Chemin : /etc/sysconfig/dhcrelay Démarrer l agent de relais dhcp : #service dhcrelay start Client DHCP LINUX : [root@localhost user]# dhclient Demander le bail DHCP root@localhost user]# dhclient -r Libéré le bail DHCP Fichier dhcpd.leases [root@localhost MAROUANE]# vi /etc/dhcpd.leases WWW.COURSNET.COM 12

lease 192.168.0.10 { starts 1 1999/05/20 22:15:21; ends 1 1999/05/20 22:15:38; hardware ethernet 00:40:21:3c:f2:dd; uid 01:00:40:21:3c:f2:dd; client-hostname "Client1"; } Vérifier l état de l attribution d'@ IP : [root@localhost MAROUANE]# /var/lib/dhcp/dhcpd.leases IV. Configuration d un serveur telnet 1. Installation TelNet : Rpm i telnet-server-0.17-31.el4.3.i386.rpm 2. Configuration TelNet: >Chemin de fichier : /etc/xinetd.d/telnet service telnet { disable = no instances = 60 flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID no_access = 10.0.1.0/24 log_on_success += PID HOST EXIT access_times = 09:45-16:15} instances : Détermine le nombre maximal de requêtes qu'un service xinetd peut gérer à un moment donné. log_on_failure - Configure xinetd de façon à ce qu'il effectue la journalisation si la connexion échoue ou si elle n'est pas autorisée. includedir /etc/xinetd.d/ - Inclut des options stipulées dans les fichiers de configuration spécifiques aux services qui se trouvent dans le répertoire /etc/xinetd.d/. WWW.COURSNET.COM 13

log_on_success - Configure xinetd de façon à ce qu'il effectue la journalisation si la connexion est établie avec succès. >Service Xinetd start >#user1# telnet -L user2 -a localhost TCP WRAPPER L'administrateur réseau va pouvoir utiliser 2 fichiers: /etc/hosts.allow et /etc/hosts.deny pour filtrer les accès à sa machine. /etc/hosts.deny: on indique dans ce fichier les services et les hôtes pour lesquels l'accès est interdit. /etc/hosts.allow: on indique dans ce fichier les services et les hôtes pour lesquels l'accès est autorisé. # Fichier /etc/hosts.deny # interdit tous les accès ftp à la machine in.ftpd:all # Fichier /etc/hosts.allow # autorise les accès ftp venant de cli1 in.ftpd :cli1.archinet.edu Extrait de /etc/syslog.conf: # Log anything (except mail) of level info or higher. # Don't log private authentication messages # The authpriv file has restricted access. authpriv.* auth,authpriv.none; /var/log/auth.log /var/log/syslog Extrait de /var/log/syslog Feb 3 18:02:52 ns1 ftpd[1051]: FTP session closed Feb 3 18:03:31 ns1 syslogd 1.3-3: restart. Feb 3 18:07:34 ns1 in.ftpd[1057]: refused connect from cli1.archinet.edu Feb 3 18:07:46 ns1 in.ftpd[1058]: connect from ns1.archinet.edu Feb 3 18:10:57 ns1 login[1063]: LOGIN ON ttyp3 BY mlx FROM puce V. Configuration d un serveur SAMBA Fichier de configuration : /etc/smb.conf Création d un compte SAMBA! WWW.COURSNET.COM 14

#smbpasswd -a MonCompte password Visualiser les fichier partagés d un serveur samba smbclient -L //@ip-du-serveur -U user [homes] # permet de partager le répertoire personnel de chaque utilisateur comment = Home Directories browseable = no writable = yes create mask = 0755 directory mask = 0755 [partage] comment = Ressource partagée #le répertoire /home/partage doit exister dans l'arborescence linux path=/home/partage browseable = yes writable = yes create mask = 0777 directory mask = 0777 [global] # même nom de groupe que celui sous Windows (Voisinage réseau) workgroup = nom de groupe guest account = nobody ; # accès multi-utilisateur share modes = yes ; # Adresse IP de la carte réseau du serveur # et masque de sous-réseau interfaces = 10.194.2.100/255.255.255.0 # emplacement du fichier printcap (imprimantes sur le serveur Linux) printcap = /etc/printcap # partage de toutes les imprimantes définies dans printcap load printers = yes # fichier journal de Samba log level = 1 log file = /var/log/samba/log.%m # mode de sécurité : (user / share / server) security = user # restreindre l'accès a certains sous-réseaux hosts allow = 15.144. 127. # empecher l'accès à certaines machines hosts allow = 15.144. EXCEPT 155.144.179. [Commerce] comment = Patrage Commerce path=/var/commerce browseable = yes # possibilité d'écrire sur la ressourc writable = yes create mask = 0777 directory mask = 0777 valid users = toto, webmaster public = no WWW.COURSNET.COM 15

-Avec l option public = no ou les options valid users =, les utilisateurs doivent s authentifier lors de la connexion aux ressources partagées. -Seuls les répertoires avec l option browsable = yes apparaissent dans l interface de l explorateur Windows. -Lancer Samba : /etc/init.d/samba start -Créer un groupe sambausers avec le RID 513 pour être en conformité avec la terminologie Windows :. #groupadd -g 513 sambausers // (RID=GID=513). VI. Configuration d un serveur SSH : 1. Installation de SSH Rpm i openssh-server-3.9p1-8.rhel4.12.i386.rpm 2. Configuration de SSH $ Cd /etc/ssh $ Vi sshd_config WWW.COURSNET.COM 16

$ Vi sshd_config 3. Connexion Client de SSH sous Linux Ssh user@ip-address-de-serveur-ssh 4. Génaration des clés RSA et DSA -Lancer la commande ssh-keygen -t dsa. Cette commande permet de générer une clé DSA par défaut de 1024 bits. La clé privée sera stockée dans ~/.ssh/id_dsa et la clé publique dans ~/.ssh/id_dsa.pub. ssh-keygen -t rsa Si vous voulez générer une clé RSA2. - Pour modifier votre "passphrase" sur une clé privée DSA, utilisez la commande : ssh-keygen -p -f ~/.ssh/id_dsa WWW.COURSNET.COM 17

- La clé publique, doit être copiée sur le serveur distant dans ~/.ssh/authorized_keys. La clé privée reste sur votre poste client. 5. L agent SSH L'utilisation d'un agent, évite d'avoir à retaper la "passphrase" à chaque fois que l'on sollicite l'utilisation de la clé privée. Un agent stocke en mémoire les clés privées. Voici comment activer un agent : -Lancer la commande ssh-agent -La commande met sur la sortie standard des variables environnement à déclarer et à exporter. Faites le. -exportez les clés. Cela consiste à les mettre dans le cache de l'agent avec la commande ssh-add. La commande demandera la "passphrase".. Pour supprimer une clé (ici RSA) de l'agent, utilisez l'option "-d" $ ssh-add -d ~/.ssh/id_rsa VII. Configuration d un serveur VPN 1. Installation VPN : 2. Génération des certificats d'authentification Nous allons sur ce point générer les certificats et les clés qui vont permettre aux clients et au serveur de s'authentifier mutuellement de telle sorte que personne d'autres que vous ne puisse se connecter au VPN. Pour ça nous allons se déplacer dans le répertoire easy-rsa d'openvpn : $ cd /usr/share/openvpn/easy-rsa/ WWW.COURSNET.COM 18

Voilà nous avons les outils nécessaires qui vont nous permettre de générer les clés et les certificats pour les clients et serveur. Première chose, nous allons modifier les valeurs des variables d'environnement afin de ne pas avoir à répéter les renseignements à fournir à la génération des clés, Pour cela nous allons éditer le fichier «vars» ci-dessus : Voici la liste des paramètres par défaut à modifier, ils sont généralement en bas du fichier sous fedora. export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain" Après sauvegarde du fichier, relancer la prise en charge de ces nouvelles variables : WWW.COURSNET.COM 19

Là il m'a créé un répertoire «keys» qui contiendra toutes nos clés. Vous pourrez vérifier qu'à présent ce répertoire ne contient que deux fichiers crées par le script build-all (index.txt et serial qui sont important pour la génération des certificats server et clients). 3. Création des certificats WWW.COURSNET.COM 20

Premièrement nous allons faire une autorité de certification. Voilà vous remarquerez que vous aviez déjà les valeurs mémorisées dans le fichier «vars». Il ne s'agira que de renseigner le nom de la CA (Certification Authority), pour les valeurs entre crochets appuyé sur Entrée et il prendra la valeur par défaut. A présent nous venons de créer l'autorité de certification qui est dans le répertoire «keys». Ce certificat est le certificat racine qui va ensuite nous permettre de créer le certificat serveur et les certificats clients. Donc la partie publique de ce certificat devrait être déposé au niveau des clients pour qu'ils puissent s'authentifier au niveau du serveur pour qu'ils reconnaissent tous les certificats qui seront créés à partir de cette autorité. Là nous allons créer le certificat pour le serveur (cette machine même que je dénomme bonal). Ce certificat nous allons l'appeler «srvrdimi», nous allons le signer nousmême et ensuite, nous allons le générer comme va le montrer cette manipulation. Nous n'allons pas donner un challenge password ni optional...pour la création des certificats. WWW.COURSNET.COM 21

Excellent nous voyons que la CA a été généré, la partie certificat server a été générée de même que la partie certificat client. A présent il ne nous reste qu'à créer les paramètres Diffie-helmann : Diffie-Hellma (D-H) est un algorithme à clé publique utilisé pour assurer un partage de clé secrètes Très bien, là nous avons l'ensemble des informations cryptographiques dont nous avions besoin pour configurer notre VPN. 4. Configuration et lancement du serveur Il nous reste à récupérer le fichier de configuration du serveur «server.conf» et le mettre dans lerépertoire /usr/share/openvpn/easyrsa/2.0/keys/ WWW.COURSNET.COM 22

Alors chez moi il est par défaut installé dans le répertoire /usr/share/doc/openvpn-2.1/sample-config-files Très bien là nous allons éditer ce fichier pour y positionner les variables qui vont nous intéresser pour la mise en place du vpn On édite le fichier server.conf WWW.COURSNET.COM 23

On sauvegarde et on lance le service par le script contenu dans /etc/init.d/ Parfait tout marche comme on veut c est vraiment informatique ça Excellent openvpn est au niveau des sockets démarrés. Il ne reste plus qu'à s'occuper des clients sous Windows maintenant. A noter également que nous pouvons avoir des clients Linux et c'est pratiquement la même manipulation. WWW.COURSNET.COM 24

VIII. Configuration d un serveur NFS 1. Installation de NFS Sur Fedora, normalement tous les utilitaires permettant la mise en place d'un réseau via nfs sont installés. On peut le vérifier avec la commande : $ rpm -qi nfs-utils Si vous obtenez en retour un message du type : «le paquetage nfs-utils n'est pas installé», vous pouvez installer nfs-utils avec la commande : # yum install nfs-utils 2. Configuration de NFS coté serveur Vous devez éditer le fichier /etc/exports, et y ajouter une ligne du type : /chemin/dossier-de-partage @ip-de-client(rw), @ipde-client2 exemple : /root/partage 192.168.1.10(rw). 3. Configuration de NFS coté client En premier lieu il vous faut créer un dossier qui va contenir le partage dans /mnt ou /media par exemple. Ensuite vous pouvez monter le dossier directement avec la commande : # mount -t nfs @_ip_serveur:/chemin/vers/partage /mnt/partage Il est aussi possible de le monter à chaque démarrage, pour celà il suffit d'éditer le fichier /etc/fstab, et d'y ajouter une ligne du type : @_ip_serveur:/chemin/vers/partage /mnt/partage nfs auto,user,rw 0 0 Une fois cette modification faite, vous pourrez monter toutes les partitions contenues dans fstab en tapant la commande : # mount -a Vous pouvez utiliser showmount pour lister les informations de montage d'un server NFS : $ showmount -e <IP_du_serveur_NFS> WWW.COURSNET.COM 25

Si vous souhaitez démarrer le serveur NFS au démarrage, utilisez : # chkconfig nfs on # chkconfig rpcbind on IX. Configuration d un serveur IPTABLE 1. La table filter Iptables fonctionne selon un système de tables, ces tables sont composées de chaîne. Dans le cadre de la configuration et de l'utilisation de Netfilter comme pare-feu, c'est la table Filter qui est utile, elle permet de filtrer les paquets réseaux. Tout paquet entrant est analysé afin de déterminer notamment sa source et sa destination. Elle est composée de trois sortes de chaîne : INPUT : Permet d'analyser les paquets entrants. Si le paquet est adressé au poste, il est confronté au filtre INPUT. FORWARD : Permet d'analyser et d'autoriser les trames à passer d'une interface à une autre, seulement dans le cadre d'une interface réseau servant de passerelle. OUTPUT : Permet d'analyser les paquets sortants. Si le paquet sort du poste, il passera par la chaîne OUTPUT. À cette table peut être affecté quatre politiques (policy) : DROP, LOG, ACCEPT et REJECT. 2. Configuration du pare-feu En tapant «sudo iptables -L», une liste de vos règles actuelles est affichée. Si vous (ou un logiciel) n'avez encore jamais touché à iptables, les chaines sont vides, et vous devriez voir : Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) WWW.COURSNET.COM 26

target prot opt source destination Si vous avez déjà modifié la configuration et que vous voulez la réinitialiser, tapez : sudo iptables -F sudo iptables -X Autoriser le trafic entrant d'une connexion déjà établie Pour permettre à une connexion déjà ouverte de recevoir du trafic : # iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT Si vous utilisez une ancienne version de iptables la commande ci-dessus peut ne pas fonctionner, dans ce cas utilisez celle-ci : # iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT Permettre le trafic entrant sur un port spécifique Pour permettre le trafic entrant sur le port 22 (traditionnellement utilisé par SSH, vous devrez indiquer à iptables tout le trafic TCP sur le port 22 de votre adaptateur réseau. # iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT Cette commande ajoute une règle (-A) à la chaine contrôlant le trafic entrant INPUT, pour autoriser le trafic (-j ACCEPT), vers l'interface (-i) eth0 et à destination du port (--dport) SSH (on aurait pu mettre 22). # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh Maintenant, acceptons tout le trafic web (www) entrant : # iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT Bloquer le trafic # iptables -P INPUT DROP # iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh WWW.COURSNET.COM 27

ACCEPT tcp -- anywhere anywhere tcp dpt:www Autoriser le trafic local Un p'tit problème de notre configuration est que même l'interface locale (loopback) est bloquée. Nous pourrions avoir écrit les règles de rejet seulement pour eth0 en spécifiant -i eth0, mais nous pouvons aussi ajouter une règle pour loopback. Par exemple, nous pourrions l'insérer en 2e position : # iptables -I INPUT 2 -i lo -j ACCEPT Pour lister les règles plus en détail. # iptables -L -v -n Autoriser les requêtes ICMP (ping) # On autorise le PC a faire des pings sur des IP externes et à répondre aux requêtes "ping" iptables -A OUTPUT -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT # Si vous utilisez une ancienne version de iptables la commande cidessus peut ne pas fonctionner, dans ce cas entrez la commande suivante : iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # On autorise les pings iptables -A INPUT -p icmp -j ACCEPT Supprimer une règle iptables -L --line-numbers Chain INPUT (policy DROP) num target prot opt source destination 1 DROP icmp -- anywhere anywhere 2 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh 3 ACCEPT tcp -- anywhere anywhere tcp dpt:www 4 ACCEPT tcp -- anywhere anywhere tcp dpt:webmin Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- anywhere anywhere tcp spt:www 2 ACCEPT tcp -- anywhere anywhere tcp spt:12345 WWW.COURSNET.COM 28

Sauvegarder vos règles sudo -s iptables-save -c X. Configuration d un serveur APPATCH 1. installer le paquage : yum install httpd 2. configuration APPATCH cd /var/www/html creel une page HTML nano /etc/conf/httpd.conf 3. Démarrage de http : désactiver le parfeu démmarer la carte réseau: service network retstart démarrer le service : service httpd restart ou cd /etc/rc.d/init.d/httpd restart 4. Accéder au serveur http trois maniéres pour accéder au serveur Apache : http:\\localhost\ - http:\\172.0.0.1 - l'adresse su serveur depuis le naviguateur 5. Sécuriser Apache avec TLS (SSL) Nous allons ensuite nous placer dans le répertoire d'apache 2 (/etc/apache2) pour générer lecertificat au bon endroit : #cd /etc/apache2 Création de la clé privée RSA : WWW.COURSNET.COM 29

Cette commande va vous permettre de générer une clé RSA : # openssl genrsa -out server.key 1024 A partir de la clé de tout à l'heure, vous allez pouvoir créer un certificat générique pour votre organisme : #openssl req -new -key server.key -out server.csr Enfin, vous allez pouvoir créer le certificat utilisable par les visiteurs au format x509 pour une certaine durée (dans cet exemple 1 an) : #openssl x509 -req -days 365 -in server.csr -signkey server.key - outserver.crt Vérifiez dans le fichier /etc/apache2/ports.conf si il existe le port 443 pour le module SSL. Si ce n'est pas le cas, vous pouvez ajouter une ligne : Listen 443 Après la création de site web, ouvrez le dans le navigateur en prenant à considération le protocole HTTPS, Vous devriez avoir un avertissement car ce certificat est auto-signé. Vérifiez le contenu du certificat. Vérifiez par une analyse de trame que les informations ne sont pas lisibles. XI. Configuration d un serveur FTP Fichier de configuration : # cd /etc/vsftpd/vsftpd.conf annonymous-enable=yes no (no pour se connecter avec un login et m.d.p) local_enable=yes write_enable=yes local_umask=022 les droits ftpd_banner=bienvenue # service vsftpd start # useradd client-1 # passwd client-1 # FTP { @ip de serveur FTP } sous dos ou taper @ ip de serveur FTP sur le navigateur WWW.COURSNET.COM 30

XII. Configuration d un serveur LDAP 1. Installation des packages : Yum install nss_ldap Yum install openldap Yum install openldap_servers Yum install openldap_clients Yum install openldap_devel 2. Création de mot de passe pour l admin : [root@serv-ldap ~]# slappasswd New password: Re-enter new password: {SSHA}MP0BeMJzmCoCi5olBhwcRDYJaGBFgN5K 3. Configuration du fichier slapd.conf : #ajouter les autorisations au debut: access to attrs=userpassword by self write by dn="cn=manager,dc=domain,dc=local" write by anonymous auth by * none access to * by dn="cn=manager,dc=domain,dc=local" write by self write by * read modifier : suffix "dc=domain,dc=local" rootdn "cn=manager,dc=domain,dc=local" rootpw {SSHA}WpQkjz32Ff+AuZF93ggxt2Vt/n+kHtMU (mot de passe generer au debut avec slappasswd) 4. Configurer le fichier ldap.conf (/etc/ldap.conf & /etc/openldap/ldap.conf): Editer le fichier ldap.conf [root@serv-ldap ~]# vi /etc/openldap/ldap.conf # LDAP Defaults # This file should be world readable but not world writable. # BASE dc=network,dc=ma WWW.COURSNET.COM 31

URI ldap://serv-ldap.network.ma #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never 5. Copier le fichier de la base de donée: Retour au terminal -> copiez un fichier appelé DB_CONFIG qui definit le cache : [root@serv-ldap ~]# cp /usr/share/doc/openldap-servers- */DB_CONFIG.example /var/lib/ldap/db_config [root@server ~]# chown -Rf ldap:ldap /var/lib/ldap/ 6. Tester de la configuration [root@serv-ldap ~]# slaptest -u config file testing succeeded 7. Utilisation de chiffrementtls [root@serv-ldap ~]# slaptest -u config file testing succeeded 4-Utilisation de chiffrementtls [root@serv-ldap ~]# vi /etc/sysconfig/ldap Définir le paramètre suivant : SLAPD_LDAPS=yes La génération et la configuration des clés : [root@server ~]# mkdir /etc/openldap/ssl/ [root@server ~]# openssl req -new -x509 -nodes -out /etc/openldap/ssl/slapdcert.pem -keyout /etc/openldap/ssl/slapdkey.pem -days 365 Generating a 2048 bit RSA private key...+++ writing new private key to '/etc/openldap/ssl/slapdkey.pem' ----- WWW.COURSNET.COM 32

You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: MA State or Province Name (full name) []: IMAD SAADI Locality Name (eg, city) [Default City]: RABAT Organization Name (eg, company) [Default Company Ltd]: ISTA Organizational Unit Name (eg, section) []: TRI2B Common Name (eg, your name or your server's hostname) []: Server.network.ma Email Address []: user@network.ma Cela va créer deux clés requises dans le répertoire / etc / openldap / ssl /, mais nous devons faire en sorte que l'utilisateur ldap puisse les lire. [root@serv-ldap ~]# chown -Rf root:ldap /etc/openldap/ssl [root@serv-ldap ~]# chmod -Rf 750 /etc/openldap/ssl 8. Demarrer le service ldap : [root@serv-ldap ~]# service slapd start [root@serv-ldap ~]# service slapd start 9. Créer la base de ldap: [root@serv-ldap ~]$ vi /etc/openldap/base.ldif Définir les paramètres suivants : dn: dc=network,dc=ma dc: network objectclass: top objectclass: domain dn: ou=people,dc=network,dc=ma ou: People objectclass: top objectclass: organizationalunit dn: ou=group,dc=network,dc=ma ou: Group objectclass: top objectclass: organizationalunit WWW.COURSNET.COM 33

Maintenant que nous avons les informations de base pour notre structure LDAP, nous pouvons les importés dans notre base de données LDAP, [root@serv-ldap ~]# ldapadd -x -W -D "cn=manager,dc=network,dc=ma" f /etc/openldap/base.ldif Enter LDAP Password: adding new entry "dc=network,dc=ma" adding new entry "ou=people,dc=network,dc=ma " adding new entry "ou=group, dc=network,dc=ma " 10. Ajouter les entrées a la base de ldap: ldapadd -h localhost -x -D "cn=manager,dc=domain,dc=local" -W - f base.ldif 11. Création d un utilisateur et des groupes sur LDAP : Nous allons utiliser le scripte migrationtools pour les créer : [root@serv-ldap ~]# vim /usr/share/migrationtools/migrate_common.ph Modifier les paramètres suivants : # Default DNS domain $DEFAULT_MAIL_DOMAIN = "network.ma"; # Default base $DEFAULT_BASE = "dc=network,dc=ma"; Créer les utilisateurs de votre base : [root@serv-ldap ~]# useradd p userpass user [root@serv-ldap ~]# useradd p user1pass user1 [root@serv-ldap ~]# grep user* /etc/passwd > users-list WWW.COURSNET.COM 34

Appliqué le scripte [root@serv-ldap ~]# /usr/share/migrationtools/migrate_passwd.pl /etc/openldap/users-list /etc/openldap/people.ldif Créer les groupes que vous voulez utiliser par la suite: [root@serv-ldap ~]# groupadd tri2b [root@serv-ldap ~]# grep tri2b /etc/group > group-list [root@serv-ldap ~]$ /usr/share/migrationtools/migrate_group.pl /etc/openldap/group-list /etc/openldap/group.ldif Accéder aux deux fichier et assurer vous que les gid sont tous identiques Dès qu on a les fichiers LDIF, nous allons les ajouter dans la base LDAP : [root@serv-ldap ~]$ ldapadd -x -W -D "cn=manager,dc=network,dc=ma" -f /etc/openldap/people.ldif [root@serv-ldap ~]$ ldapadd -x -W -D "cn=manager,dc=network,dc=ma -f /etc/openldap/group.ldif 12. Tester la base de données LDAP [root@serv-ldap ~]# ldapsearch -xwd cn=manager,dc=network,dc=ma -b dc=network,dc=ma cn=user # extended LDIF #... # user, Group, network.ma dn: cn=user,ou=group,dc=network,dc=ma objectclass: posixgroup objectclass: top cn: user userpassword: E2NyeXB0fXG= gidnumber: 500 # search result search: 2 result: 0 Success... La syntaxe pour ajouter un utilisateur ahmed [root@serv-ldap ~]# vi /etc/openldap/ahmed.ldif WWW.COURSNET.COM 35

Définir ces paramètres : dn: uid=ahmed,ou=people,dc=network,dc=ma uid: ahmed cn: Ahmed noure objectclass: person objectclass: posixaccount objectclass: top objectclass: shadowaccount userpassword: {crypt}$6$xemgnmmu9f3frfo/vt7uld/gucp/2n7/r.uw5sk. shadowlastchange: 14846 shadowmax: 99999 shadowwarning: 7 loginshell: /bin/bash uidnumber: 501 gidnumber: 501 homedirectory: /home/chris La syntaxe pour ajouter un group tri2a [root@serv-ldap ~]# vi /etc/openldap/tri2a.ldif Definir les paramètres : dn: cn=tri2a,ou=group,dc=network,dc=ma objectclass: posixgroup objectclass: top cn: tri2a userpassword: {crypt}x gidnumber: 501 Ajouter les fichiers dans la base : [root@server ~]# ldapadd -x -W -D "cn=manager,dc=network,dc=ma" -f /etc/openldap/ahmed.ldif Enter LDAP Password: adding new entry "uid=ahmed,ou=people,dc=network,dc=ma" [root@server ~]# ldapadd -x -W -D "cn=manager,dc=network,dc=ma" -f chris-group.ldif Enter LDAP Password: adding new entry "cn=tri2a,ou=people,dc=network,dc=ma" Redemarrer votre service ldap: [root@server ~]# service ldap restart La configuration au niveau de serveur est fini. WWW.COURSNET.COM 36

13. Configuration coté client Installer les paquets nécessaires : Nss_ldap openldap-clients openldap-devel Editer le fichier ldap.conf [root@cl-fed ~]# vi /etc/openldap/ldap.conf # LDAP Defaults # This file should be world readable but not world writable. # BASE dc=network,dc=ma URI ldap://192.168.2.1 --> ici vous tapez l@ de votre serv #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never XIII. SCRIPT LINUX Les Syntaxe: Boucle while #!/bin/bash While [ -eq -ne -gt - lt ] do Break ( pour stoper la boucle ) Done Case + boucle While [ true ] ; Do Echo entrer un nbr svp Read nbr case $nbr in Val1) Echo test1 break ;; Val2) Echo test2 break ;; WWW.COURSNET.COM 37

*) (ni val1 ni val2) Echo test3 Esac Done Case statement #!/bin/bash Echo entrer un nbr svp Read nbr case $nbr in Val1) Echo test1 ;; Val2) Echo test2 ;; *) (ni val1 ni val2) Echo test3 Esac 1. REGLES IMPORTANTES : Les Arguments : la commande set: permet d affecter des valeur à ces parametres la commande unset : permet la suppression des valeurs contenues dans ces paramètres. Exemple: set Maroc Espagne France echo $1 $2 $3 Maroc Espagne France ** Il existe deux autres variables automatiques: $# :qui est le nombre de paramètres ; $0 :qui est le nom du programme. $* L'ensembles des paramètres sous la forme d'un seul argument $@ L'ensemble des arguments, un argument par paramètre $? Le code retour de la dernière commande $$ Le PID su shell qui exécute le script $! Le PID du dernier processus lancé en arrière-plan ** Si on tappe la commande :./script.sh $2 La résultat est : Espagne Les Variables : Les Variables les plus utilies : WWW.COURSNET.COM 38

$HOME, $PATH, $USER, $SHELL, $ENV, $PWD, $HOSTNAME Exemple : Echo vous êtes connectez à la station $HOSTNAME, sous le nom $USER Commande Echo echo e : autoriser l interprétation des caractères spéciaux telles que: \n : saut de ligne; équivalent à echo n \c : éviter le saut de la ligne \t : Tabulation \b : retour arrière echo $ message et echo $ message Commande Read read p : permet d afficher un message avant d entrer un argument d une variable. readonly: Pour empêcher la modification d'une variable; read p Entrer message message Bonjour à tous! readonly message Echo $message Bonjour à tous! Chaine de caractères Longueur d'une chaîne de caractères : Si l'on veut obtenir la longueur d'une chaîne de caractères contenue dans une variable, on utilisera la syntaxe suivante : ${#variable} echo ${variable:5:2} extrait la sous chaine de longueur 2 à partir du 5ème caractère echo ${variable:20}: Extrait tous les caractères à partir du 20ème Les Préfixes : ${variable#préfixe} ou ${variable##préfixe} Exemple : WWW.COURSNET.COM 39

VAR = abbbc echo ${VAR#a*b} == bbc, (car le plus petit préfixe correspondant au motif a*b soit ab). echo ${VAR##a*b} == c (## utilisera le préfixe le plus long à savoir abbb). Les suffixes : Exemple : VAR=abbbc echo ${VAR%b*c} =========== abb echo ${VAR%%b*c} ========== a Substitution et remplacement : remplacer une chaîne de caractères contenues dans des variables : ${variable/motif/remplacement} Exemple : VAR= abab echo ${VAR/b/d} =========== adab. OU echo ${VAR//b/d} =========== adab. ( toutes les occurrences du motif soient remplacées ) TEST : Test r fichier Testez les fichiers qui possèdent le droit de lecture Test w fichier Test x fichier Test s fichier Testez les fichiers qui ont la taille sup à 0 Test d fichier Testez l existence des répertoire Test f fichier Testez les fichiers qui possèdent le droit d écriture Testez les fichiers qui possèdent le droit d exécution Testez les fichiers qui sont des fichiers ordinaire SCRIPT + CORRECTION : Script 1 Créer un script shell nommé "change" qui affichera la date de dernière modification d'un fichier puis la modifiera avec l'heure actuelle et enfin WWW.COURSNET.COM 40

réaffichera la date de dernière modification du fichier. Cette procédure acceptera 1 paramètre qui sera le nom du fichier. Lorsque vous exécuterez "change mon_fic", le 8 octobre à 15 heures 12 vous obtiendrez le résultat: avant : -r--r--r-- 1 user group 40 Fev 3 2001 mon_fic après : -r--r--r-- 1 user group 40 Oct 8 15:12 mon_fic AVANT=$(ls -l $1) touch $1 APRES=$(ls -l $1) echo "Avant : "$AVANT echo "Apres : "$APRES Script 2 : Créer un script shell nommé "nombrejours" qui affichera le nombre de jours du mois courant. "nombrejours" affichera pour février 2007 le message "28 jours en février 2007". MOIS=$(date +"%m") case $MOIS in 01) NOM="janvier";; 02) NOM="fevrier";; 03) NOM="mars";; 04) NOM="avril";; 05) NOM="mai";; 06) NOM="juin";; 07) NOM="juillet";; 08) NOM="aout";; 09) NOM="septembre";; 10) NOM="octobre";; 11) NOM="novembre";; 12) NOM="decembre";; esac ANNEE=$(date +"%Y") case $MOIS in 01 03 05 07 08 10 12) echo "31 jours en "$NOM" "$ANNEE;; 04 06 09 11) echo "30 jours en "$NOM" "$ANNEE;; 02) BISSEXTILITE=$(expr $ANNEE % 4) if [ $BISSEXTILITE!= 0 ] then echo "28 jours en "$NOM" "$ANNEE else BISSEXTILITE=$(expr $ANNEE % 100) WWW.COURSNET.COM 41

esac if [ $BISSEXTILITE!= 0 ] then echo "29 jours en "$NOM" "*ANNEE else BISSEXTILITE=$(expr $ANNEE % 400) if [ $BISSEXTILITE!= 0 ] then echo "28 jours en "$NOM" "$ANNEE else echo "29 jours en "$NOM" "$ANNEE fi fi fi;; Script 3 : Créer un script shell réalisant la création d'un répertoire "Exo3" contenant 10 fichiers nommés "Un" à "Dix". Chaque fichier contient une seule ligne: "Un" contient "Première ligne"" Deux" contient "Deuxième ligne" "Dix" contient "Dixième ligne Vérifier que le répertoire à créer n'existe pas déjà auquel cas il ne sera pas recréé mais les fichiers si. Script 4 : test -e Exo3 if [ $?!= 0 ] then mkdir Exo3 fi echo "Premiere ligne" >Exo3/Un echo "Deuxieme ligne" >Exo3/Deux echo "Troisieme ligne" >Exo3/Trois echo "Quatrieme ligne" >Exo3/Quatre echo "Cinquieme ligne" >Exo3/Cinq echo "Sixieme ligne" >Exo3/Six echo "Septieme ligne" >Exo3/Sept echo "Huitieme ligne" >Exo3/Huit echo "Neuvieme ligne" >Exo3/Neuf echo "Dixieme ligne" >Exo3/Dix Créer un script shell qui réalise les opérations suivantes: Création sous votre répertoire "TP2" d'un sous répertoire nommé "annéemoisjour" (20070202 pour le 2 février 2007). WWW.COURSNET.COM 42

Copie des fichiers de "Exo3" sous ce répertoire puis effacement de ces mêmes fichiers de "Exo3". Création de deux fichiers sous le répertoire d'accueil (HOME) de la personne qui a lancé le shell: o un fichier nommé "Gros_fichier.numero_du_shell" dans lequel se trouvera le contenu concaténé des fichiers traités o un fichier nommé "Nom_du_script.numero_du_shell" dans lequel se trouvera le nom des fichiers traités. i. Vérifier que le répertoire à créer n'existe pas déjà. REP=$(date +"%Y%m%d") test -e $REP if [ $?!= 0 ] then mkdir $REP fi cp Exo3/* $REP rm Exo3/* for file in $REP/* do cat $file >> ~/Gros_fichier.$$ echo $file >> ~/$0.$$ done Script 5 : (Fichier accessible en lecture ) Créer un script permettant d'afficher la liste des fichiers du répertoire /etc accessibles en lecture. for FILE in /etc/* do if test -r $FILE then echo $FILE fi done Script 6 : (argument et paramètres ) Ecrire un fichier de commande qui donne la liste de ses paramètres, le nombre de paramètres, le numéro du processus. echo $* $# $$ Script 7 : Nombre de processus ps grep "[0-9]" wc l WWW.COURSNET.COM 43

Script 8 : (Les Jours > La date ) A Partir de la commande date, écrire une commande qui donne la date en français set date case $1 in Mon) Jour=Lun;; Thu) Jour=Mar;; Wed) Jour=Mer;; Tue) Jour=Jeu;; Fri) Jour=Ven;; Sat) Jour=Sam;; Sun) Jour=Dim;; esac case $2 in Feb) Mois="Fev ";; Apr) Mois="Avr ";; May) Mois="Mai ";; Jun) Mois="Juin";; Jul) Mois="Juil";; Aug) Mois="Aout";; *) Mois="$2 " esac echo "$Jour $3 $Mois $6 $4" Script 9: (Argument et paramètres ) Ecrire une commande qui a comme argument une autre commande, qui exécute cette commande et envoie un message d erreur si le code de retour est différent de 0. if "$@" ;then echo "$1 correct" else echo "$1 incorrect" fi WWW.COURSNET.COM 44

Script 10 : (Argument et paramètres ) Ecrire une commande qui teste si elle est appelée avec trois paramètres, sinon lit au clavier trois chaînes et dans tous les cas teste si ces trois chaînes sont égales if [ $# -ne 3 ] then #il n y a pas trois arguments echo "entrez trois arguments:" read A B C; set "$A" "$B" "$C" fi if test "$1" = "$2" && test "$1" = "$3" then echo "les trois chaines sont egales" else echo "les trois chaines sont differentes" exit 2 fi Script 11 : chaine de caractére «oui» Ecrire une commande qui lit une chaine au clavier jusqu à ce que cette chaine soient oui. a=non while [ $a!= "oui" ] do echo entree une chaine, oui pour arreter read a done Script 12 : basname et $ home A utilisant la variable HOME et les commandes basename et dirname, écrire une commande qui affiche la suite des catalogues allant du catalogue privè au catalogue /, et le nom de login de l utilisateur. a=$home while [ "$a"!= / ] do echo $a a= dirname "$a" done echo / echo le nom de login est basename $HOME Script 13 : N de la commande + PATH Ecrire un fichier.profile qui donne au prompt le numéro de WWW.COURSNET.COM 45

la commande, initialise la variable HISTSIZE à 20, modifie la variable PATH afin que les commandes du catalogue privé et de travail puissent être lancées sans utiliser leurs références absolues. Comment tester que le.profile est correct sans se déloger? PS1="<\!> " HITSIZE=20; PATH="$PATH:$HOME:." alias h=history export PATH HISTSIZE Il faut executer.profile dans le shell courant: $..profile Script 14 : (Comparaison des arguments ) Ecrire une commande appelée avec deux arguments ref1 et ref2 qui vérifie que tous les fichiers de ref1 ont même nom et même contenu que ceux de ref2 (On vérifiera que ref1 et ref2 ne contiennent pas de catalogue if [ $#!= 2 ] then echo il faut 2 arguments; exit 1 fi if test -d $1 && test -d $2 then for i in ls $1 do if [ -d $1/$i ] then echo on ne veut pas de catalogue; exit 3 fi if [ -e $2/$i ] then if [ -d $2/$i ] then echo on ne veut pas de catalogue; exit 3 fi if diff $1/$i $2/$i >/dev/null then echo $1/$i et $2/$i sont identiques else echo $1/$i et $2/$i sont differents; exit 2 fi else echo $1/$i existe mais pas $2/$i ; exit 3 fi done # il faut tester qu il n y ait pas d autres fichiers dans $2 for i in ls $2 do if [ -e $1/$i ] then echo "">/dev/null else echo un fichier en plus dans $2 : $2/$i; exit 3 fi WWW.COURSNET.COM 46

done else echo il faut 2 catalogues en argument; exit 3; fi echo tous les fichiers sont identiques Script 15 : Copier Fichier Ecrire un script qui copie tous les fichiers d'extension.txt du repertoire courant en des fichiers de meme nom et d'extension.txt.archive (toujours dans le repertoire courant). #!/bin/bash for fichier in.* * do set `ls -idl $fichier` echo "$fichier $6" done Script 16 : 2 Nbr (+-*/) avec while Ecrire un script qui boucle en demandant a l'utilisateur de saisir deux variables, affiche leur somme, leur difference, leur produit et leur quotient. Le programme s'arrete lorsque l'utilisateur saisit un point. #!/bin/bash echo "Entrer deux entiers (point pour terminer)" read p1 while test "$p1"!= "." do read p2 echo `expr $p1 + $p2` echo `expr $p1 - $p2` echo `expr $p1 \* $p2` echo `expr $p1 / $p2` echo "Entrer deux entiers (point pour terminer)" read p1 done Script 17 : Factorielle d un argument Ecrire un script qui prend un argument et en affiche la factorielle. Verifier que le nombre de parametres est correct. #!/bin/bash if test $# -ne 1 then echo "il faut un argument" elif test $1 -eq 0 -o $1 -eq 1 then echo 1 else produit=2 WWW.COURSNET.COM 47

fi n=$1 while test $n -ne 2 do produit=`expr $produit \* $n` n=`expr $n - 1` done echo $produit Script 18 : PGCD d un argument Ecrire un script qui prend deux arguments et affiche leur pgcd. Vérifier que le nombre de paramètres est correct. Afficher un message specifique quand l'un des deux arguments. #!/bin/bash if test $# -ne 2 then echo "il faut deux arguments" elif test $1 -eq "0" -o $2 -eq "0" then echo "arguments nuls" else a=$1 b=$2 while test $a -ne $b do if test $a -gt $b then a=`expr $a - $b` else b=`expr $b - $a` fi done echo $a fi Script 19 : Argument des noms de fichiers Ecrire un script qui prend en argument des noms de fichiers. Une option -v peut egalement etre placee parmi les arguments. Si l'option est presente, la commande affiche les caracteristiques de chaque fichier et repertoire (format de ls l sans entrer afficher le contenu des repertoires). Si l'option n'est pas presente, la commande renomme chacun des fichiers (ou repertoires) en ajoutant l'extension.old. WWW.COURSNET.COM 48

#!/bin/bash para="" option="" while test "$1"!= "" do if test "$1" = "-v" then option="-v" else para="$para $1" fi shift done set $para if test "$option" = "-v" then while test "$1"!= "" do echo `ls -ld $1` shift done else while test "$1"!= "" do mv $1 ${1}.old shift done fi Script 20 : Mathématique Ecrire un script qui sort les valeurs successives de la suite définie par : u_n+1 = u_n /2 si u_n est pair, 3 * u_n +1 si u_n est impair. La valeur de u_0 est donnée en argument, le programme s'arrête lorsque la valeur à afficher est 1. #! /bin/bash u0=$1 un=$u0 while test $un -ne 1 do echo $un if test `expr $un % 2` -eq 0 then un=`expr $un / 2` else un=`expr \( $un \* 3 \) + 1` fi done echo $un Script 21 : Jeter la poubelle déplacer-vider. Ecrire une commande jeter qui permet de manipuler une poubelle WWW.COURSNET.COM 49

de fichiers -- un répertoire -- nommée poubelle et située à votre racine. La commande accepte a trois options : * jeter -l pour lister le contenu de la poubelle ; * jeter -r pour vider la poubelle ; * jeter fichier1 fichier2... pour déplacer les fichier considérés vers la poubelle. #! /bin/bash POUBELLE=$HOME/poubelle if test! -d $POUBELLE then mkdir $POUBELLE fi case $1 in -l) echo "$POUBELLE :" ls $POUBELLE;; -r) echo "la poubelle se vide..." rm -r $POUBELLE/*;; *) mv $@ $POUBELLE;; esac Script 22: Argument Fichier exécutable. Ecrire une commande qui prend en argument un nombre quelconque de noms de fichier et affiche pour chacun : - son nom si c'est un fichier regulier non executable suivi de la mention "est un fichier non executable", - son nom si c'est un fichier regulier executable suivi de la mention "est un fichier executable", - la liste de tous les fichiers réguliers executables d'extension ".truc" qu'il contient si c'est un repertoire #!/bin/bash while test "$1"!= "" do if test -x $1 -a -f $1 then echo $1 "est un fichier executable" elif test -f $1 then echo $1 "est un fichier non executable" elif test -d $1 then for f in `ls $1/*.truc` do if test -x $f -a -f $f then echo $f fi done fi shift done WWW.COURSNET.COM 50

Script 23: COURS ET FORMATIONS EN INFORMATIQUE : WWW.COURSNET.COM #!/bin/bash jour=$(date+"%d") mois=$(date+"%m") anne=$(date+"%y") jour/mois > Case Echo entrer un nombre entre 1 et 7 qui indique un jour Echo jour case $jour in 1) Jour=Lun;; 2) Jour=Mar;; 3) Jour=Mer;; 4) Jour=Jeu;; 5) Jour=Ven;; 6) Jour=Sam;; 7) Jour=Dim;; Esac Echo entrer un nombre entre 1 et 12 qui indique un jour Echo mois case $mois in 1) Mois="Fev ";; 2) Mois="Avr ";; 3) Mois="Mai ";; 4) Mois="Juin";; 5) Mois="Juil";; 6) Mois="Aout";; *) Mois="$2 " esac echo "$Jour / $Mois " Script 24: #!bin/bash fich=/etc for [ $fich in /etc/* ] do if test -w $fich then echo $fich fi done Script 25: Fichier accessible en écriture Renommer les fichier d un rép #!bin/bash fich = find /home/simo/bureau -name *.txt for [ $fich in /home/simo/bureau ] do mv /home/simo/bureau/$fich /home/simo/bureau/$fich.docx done WWW.COURSNET.COM 51

Script 26 : Script Pratique 2013 #!/bin/bash Echo les user qui ont des UID <= 400 sont : Cut d : f1,3 /etc/passwd grep w [0-3].. cut d :f1 #!/bin/bash Cat/etc/passwd grep 500 > /etc/test.txt Gawk F : { print $1 } /etc/test.txt XIV. Quelque Commandes Linux La commande arp : arp permet de visualiser ou modifier la table du cache ARP de l interface. Cette table peut être statique et (ou) dynamique. Elle donne la correspondance entre une adresse IP et une adresse MAC (Ethernet) farid@serveur:/etc$ arp -va? (192.168.226.2) at 00:50:56:e5:08:c4 [ether] on eth0? (192.168.226.254) at 00:50:56:e4:a2:03 [ether] on eth0 Entries: 2 Skip ped: 0 Found: La commande route : Le routage définit le chemin.emprunté par les paquets entre son point de départ et son point d arrivée. La commande route permet la configuration du routage sur un PC, switch ou routeur. farid@serveur:/etc$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.226.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0 0.0.0.0 192.168.226.2 0.0.0.0 UG 0 0 0 eth0 La Commande Netstat : permet de tester la configuration du réseau, visualiser l état des connexions, établir des statistiques, notamment pour surveiller les serveurs. farid@serveur:/etc$ netstat a Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 11774 /tmp/orbit-farid/linc-64f-0-7fdc879498989 WWW.COURSNET.COM 52

unix 2 [ ACC ] STREAM LISTENING 11792 /tmp/orbit-farid/linc-64c-0-411483fe46585 udp 0 0 Serveur.local:domain *:* udp 0 0 localhost:domain *:* tcp 0 0 Serveur.local:domain *:* LISTEN tcp 0 0 localhost:domain *:* LISTEN La commande netsat nr ou r permet aussi d affiche l état des tables de routage à l instar de la commande route -n. La Commande Traceroute : permet d afficher le chemin parcouru par un paquet pour arriver à destination. farid@serveur:/etc$ traceroute 192.168.1.1 traceroute to 192.168.1.1 (192.168.1.1), 30 hops max, 60 byte packets 1 192.168.226.2 (192.168.226.2) 0.437 ms 0.089 ms 0.081 ms 2 sagembox.home (192.168.1.1) 5.396 ms 6.799 ms 16.286 m La Commande Host : permet d'obtenir l'adresse IP d'un ordinateur. $ host www.google.com www.google.com is an alias for www.l.google.com. www.l.google.com has address 209.85.135.147 www.l.google.com has address 209.85.135.99 www.l.google.com has address 209.85.135.103 www.l.google.com has address 209.85.135.104 La Commande DIG : En interrogeant la branche com, on obtient la liste des serveurs DNS gérant les noms de domaines en.com $ dig com. NS... ;; ANSWER SECTION: com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net.... Les Commandes de routage : Une route au réseau 192.168.0.0/24 doit être définie sur la station 1. Pour cela, on peut utiliser la commande route : # route add -net 192.168.0.0/24 gw 112.65.123..3 WWW.COURSNET.COM 53

Commande CUT Aperçu du fichier à analyser : champ1 champ2 champ3 champ4 champ5 champ6 La ligne de commande sera : cut -d - -s -f2,4 monfichier.log > fichierresultat Analyse de la ligne de commande : option -d pour indiquer quel est le délimiteur option -s pour supprimer les lignes ne contenant pas le délimiteur option -f pour spécifier les champs à extraire monfichier.log : le fichier à analyser fichierresultat : fichier qui va contenir les champs extraits WWW.COURSNET.COM 54