PROJET EVOLUTION GMSI-30 CAROVAN Julien CARRERA Hugo ROLAND Florian VAN DE WINCKELE
SOMMAIRE : I) INTRODUCTION a. Présentation de l entreprise b. Cahier des charges c. Devis d. Organisation des travaux II) LE RESEAU a. Présentation globale des serveurs b. Windows Serveur 2008 c. Serveur Linux d. Stratégie de sécurité et GPO III) OUTILS DE GESTION DU PARC a. Présentation b. PHPMYADMIN c. Développement HTML et PHP IV) CONCLUSION 2
I) INTRODUCTION a. PRÉSENTATION DE L ENTREPRISE: La société CAROVAN est une PME avec 90 salariés spécialisées dans la Production de produit industriels dans le bâtiment. Créée en 2009 par monsieur DELAND, elle s est peu à peu développée et souhaite aujourd hui mettre en place des serveurs et ainsi améliorer les modes opératoires quant à l utilisation du parc informatique. ORGANIGRAME : 3
b. CAHIER DES CHARGES Le Directeur administratif et financier nous à fournis un cahier des charges précis qui nous impose les conditions suivantes : Délai de mise en place du projet = 6 mois Organiser les interventions sur le parc informatique en listant l ensemble du matériel (PC, imprimantes, type de machines, nom d hôtes, etc ) Gérer les droits des utilisateurs Mettre en place un serveur FTP de manière à ce que le siège social puisse y récupérer des fichiers. Implémenter un Active Directory dans l entreprise Tenir informer la direction de notre avancement en faisant un rapport détaillé chaque mois sur l organisation, les décisions majeure d orientation du projet avec évidement, une justification de nos choix, et les coûts nécessaires à la bonne réalisation. 4
c. DEVIS : 5
6
7
d. ORGANISATION DES TRAVAUX Afin d être le plus efficace possible nous nous sommes répartis les tâches en suivant le tableau ci-dessous. Hugo Avancement Julien Avancement Florian Avancement heures heures heuresheures heuresheures Répartition des tâches Tableau de suivi 1 1 100% Charte graphique/logo 1 1 100% Serveur Windows 2008 (DNS, AD,DHCP) 3 2 67% 6 4 67% 10 10 100% Serveur Linux (Samba,FTP,MySQL/PHP) 10 11 110% 3 2 67% 3 2 67% Devis 2 2 100% 2 2 100% 2 2 100% Redaction Projet EVOLUTION 3 2 67% 5 6 120% 3 3 100% PowerPoint Projet EVOLUTION 2 1 50% 2 2 100% 2 1 50% Total des heures réeles par salarié 20 18 90% 20 18 90% 20 18 90% Total des heures estimées Total des heures réeles 60 54 90% Nombre de jour à travailler (journée de 7H) 9 8
II) LE RESEAU a. PRESENTATION GLOBALE DES SERVEURS Pour l ensemble du projet, nous avons choisi d utiliser 3 serveurs ; l architecture réseaux concernant les serveurs se présente comme suit : - Un contrôleur de domaine principal gérant l'active Directory, le rôle DNS et le rôle DHCP. - Un contrôleur de domaine secondaire (répliquât) pour répartir la charge des rôles DNS et DHCP et prendre le relais en cas de panne du contrôleur de domaine principal. Ces deux serveurs sont en RAID 1 (Les données sont copiées en même temps sur deux disques durs) pour éviter, en cas de perte d'un disque dur, la perte de configuration du serveur. La configuration de ces serveurs offre la possibilité de faire évoluer les rôles dont ils ont la charge. - 1 serveur Linux supportant l'espace de données, le service FTP anonyme sécurisé, la base de données relationnelle de gestion du parc informatique de l'entreprise et la sauvegarde. Ce serveur fonctionne en RAID 1 (Les données sont copiées en même temps sur deux disques durs) pour éviter, en cas de perte d'un disque dur, la perte de configuration du serveur et des données vitales à l'entreprise. 9
b. WINDOWS SERVEUR 2008 Nous avons choisi de mettre 2 serveurs 2008 en place au sein de l entreprise, ces serveurs seront en redondances. Voici la liste des rôles installés sur chaque serveur : Serveur principal : - Active Directory - DNS - DHCP - Serveur d impression - Serveur de fichiers / DFS Serveur secondaire (Redondant) : - Active Directory - DNS - DHCP - Serveur de fichiers / DFS 1) Active Directory et DNS Le nom de notre domaine est : Carovan.evolution.lan Le serveur principal se nomme : Evolution1 Le serveur secondaire se nomme : Evolution2 Notre réseau ne dispose que d un site DNS 10
2) DHCP et adressages Notre réseau est un réseau avec des IP en IPV4, de classe C : 192.168.10.0 /24 Rangement des adresses : - 192.168.10.1 à 192.168.10.9 adresses disponibles switchs/routeurs - 192.168.10.10 à 192.168.10.19 adresses disponibles pour tout serveur - 192.168.10.20 à 192.168.10.29 adresses disponibles pour imprimantes réseau - 192.168.10.30 à 192.168.10.49 adresses disponibles pour toute extension - 192.168.10.50 à 192.168.10.254 adresses disponibles pour machines utilisateurs Adresses utilisées : - Serveur principal : 192.168.10.10 - Serveur secondaire : 192.168.10.11 - Serveur Linux : 192.168.10.12 - Imprimante Service Informatique : 192.168.10.20 - Imprimante Service Direction : 192.168.10.21 - Imprimante Service SAV : 192.168.10.22 11
- Imprimante Service Produit1 : 192.168.10.23 - Imprimante Service Produit2 : 192.168.10.24 - Imprimante Service Administratif : 192.168.10.25 - Imprimante Général : 192.168.10.26 Plages d adresses DHCP : Chaque serveur à sa plage d adresses approprié, une redondance est assurée en cas de crash du serveur principal. Le serveur principal a une plage allant de : 192.168.10.50 à 192.168.10.150 Le serveur secondaire a lui une plage allant de : 192.168.10.151 à 192.168.10.254 Serveur d impression Le serveur d impression est installé sur le serveur principal. Nous avons 7 imprimantes, une par service et une imprimante générale : - Imprimante Service Informatique - Imprimante Service Direction - Imprimante Service SAV - Imprimante Service Produit1 - Imprimante Service Produit2 - Imprimante Service Administratif - Imprimante Général 12
Chaque service doit avoir accès à son imprimante, le directeur doit avoir accès et la priorité à toutes les imprimantes et d autres règles selon les utilisateurs ou services sont en places via un script. Afin que le directeur puisse avoir accès et la priorité à chaque imprimante, au niveau du serveur d impression il a fallu doubler toutes les imprimantes, au final cela nous donne ceci : - PrintGeneral - PrintGeneralPrio - PrintServiceAdministratif - PrintServiceAdministratifPrio - PrintServiceDirection - PrintServiceDirectionPrio - PrintServiceInformatique - PrintServiceInformatiquePrio - PrintServiceProduit1 - PrintServiceProduit1Prio - PrintServiceProduit2 - PrintServiceProduit2Prio - PrintServiceSAV - PrintServiceSAVPrio Il à donc fallu affecter (par script) le directeur à toutes les imprimantes dites «Prio», et les autres services aux imprimantes «normales». Au niveau de la configuration l imprimante «Prio» et la même que la «normale», il suffit juste de modifier l option «Priorité». 13
Serveur de fichier / DFS Nous avons créé un espace de noms DFS, redondant entre les 2 serveurs. L espace de nom se nomme : \\Carovan.evolution.lan\Evolution Cet espace de noms est utilisé pour l accès à nos données utilisateurs. Nous avons deux disques de 500Go, un pour les dossiers utilisateurs et l autre pour les données communes ou services. Ces deux disques sont répliqués entre les deux serveurs et pointent les deux sur le DFS, ce qui permet d avoir des données doublées donc toujours accessibles en cas de crash de l un ou l autre serveur. C est à partir de ce DFS que nous créons nos lecteurs réseaux, nous avons un lecteur réseau qui pointe sur un dossier personnel par utilisateurs, et un autre lecteur qui va sur un dossier par service. Tous ces lecteurs seront montés par GPO. 14
c. SERVEUR LINUX Le serveur linux dans ce projet joue un rôle important : il héberge la base de données relationnelle des effectifs du parc informatique et fait office de serveur de sauvegarde. De plus, il à aussi le rôle de serveur de fichier, c'est-à-dire qu il héberge des fichiers accessibles depuis le réseau, téléchargeables par le protocole FTP (File Transfer Protocol). Il à été choisi d intégrer le serveur Linux au domaine. Architecture du server Linux : Matériel : Ce serveur est un Dell Power Edge R310. Il à un processeur Intel Xeon X3470, a 4 cœurs, cadencés à 2.93GHz. Il dispose de 4 Go (4 x 1 Go) de mémoire vive DDR3 à 1333MHz. En termes de stockage il accueille 2 disques durs d un TB, en SATA, tournants à 7200 tours/minutes, connectables à chaud. Ses disques durs fonctionnent en RAID 1 avec une carte SAS 6iR Adapter Internal RAID Controller avec câbles permettant le branchement à chaud de disques. Il dispose également d une carte réseau Intel Gigabit à deux ports Ethernet. 15
Logique : L espace RAID est découpé en plusieurs parties : 3 partitions primaires. La première est l espace de Swap (2 Go) la seconde est la partition d amorçage ( boot, 1Go ) et la troisième est la partition principale (/, 997Go) dans laquelle sont stockées toutes les données. Le système d exploitation du serveur est Debian 6.0 (Squeeze). Les principales applications installées : OpenSSH, serveur Apache, MySQL, Samba, Winbind, Kerberos, ProFTPd. La sauvegarde : Pour effectuer la sauvegarde quotidienne ( planifiée à 1h du matin ), nous avons du mettre en place un partage Samba sur le serveur Linux. La copie des données est ensuite planifiée sur le server Linux. 16
Installation et configuration du serveur : Note : Cette procédure décrit l installation et la configuration de LA MAQUETTE DU SERVER LINUX). Sur le serveur physique, le RAID étant déjà configuré, on n aura qu un espace à partitionner. On peut alors sauter l étape de configuration du RAID et considérer le partitionnement de l espace RAID comme le partitionnement de l espace déjà existant On branche les deux interfaces du serveur au réseau. On utilise le CD d installation debian-6.0.0-amd64 -i386-netinst (installation via le réseau, c'est-à-dire que l on télécharge les paquets choisis directement pendant l installation). Disponible sur http://www.debian.org/distrib/netinst. Lors du boot, l on choisi «64-bit Install». L on sélectionne le langage français, l emplacement géographique ainsi que la disposition du clavier (fr-latin9). Sélection de l interface utilisée pour l installation : on sélectionne l interface secondaire ( on considère que c est celle disposant d un accès WAN ). On nomme le server, dans notre cas : debian1 On rentre le nom de domaine, ici : CAROVAN.EVOLUTION.LAN Mot de passe du super administrateur (root), puis confirmation. 17
Nom complet du nouvel utilisateur : debian, login debian puis mot de passe. Le server récupère ensuite l heure depuis un serveur de temps. Partitionnement : on fait une table de partitionnement par disque. Ensuite on crée 3 partitions par disque : une partition de 100 Mb, une de 2 Gb, et une de 997,9 Gb. On les utilise toutes comme volume physique pour RAID. Il faut sélectionner «présent» pour l indicateur d amorçage sur les 2 partitions de 100 Mb, puisque ces partitions serons le /boot. Celle de 2 Gb étant le futur SWAP, je préfère la définir comme partition logique. L on choisi ensuite «Configurer le RAID avec gestion logicielle», on applique les changements sur les disques dur et l on crée un périphérique multi-disques. Type de RAID : RAID 1. Nombre de périphériques 2, nombre de périphériques de réserve 0. L on sélectionne ensuite les partitions à utiliser pour le RAID. On répète la manipulation de création de périphérique multi-disques ne faisant correspondre, à chaque fois : sda1 à sdb1, sda5 à sdb5 et sda3 à sdb3. On se retrouve donc avec 3 périphériques RAID logiciels. Sur le périphérique de 100 Mb, on monte le /boot en ext3, sur le périphérique de 2.0 Gb on montera le SWAP et sur celui de 997 Mb on monte le / en ext3 là aussi. On sélectionne ensuite «terminer le partitionnement et appliquer les changements». 18
On sélectionne le pays du miroir de l archive Debian : France, puis le miroir en question : ftp.fr.debian.org. On arrive ensuite à la sélection des logiciels à installer. On sélectionne serveur SSH, serveur apache et serveur SQL (ainsi que utilitaires standards du système). Une fois les paquets installées on installe le programme de démarrage GRUB sur le secteur d amorçage. L installation est terminée. Configuration : Intégration au domaine : Pour l étape de configuration, on se logue avec le super administrateur root. Dans un premier temps on configure les interfaces de la carte Ethernet. L on peut lister les interfaces avec /sbin/ifconfig Pour cela on édite le fichier de configuration des interfaces : nano /etc/network/interfaces de manière à ce qu il contienne : auto eth0 allow-hotplug eth0 iface eth0 inet static 19
Auto eth1 Address 192.168.10.12 netmask 255.255.255.0 Network 192.168.10.0 Broadcast 192.168.10.255 Gateway 192.168.10.10 Allow-hotplug eth1 iface eth1 inet dhcp eth0 est l interface Ethernet principale (configurée en ip fixe)et eth1 est l interface Ethernet secondaire (configurée en client dhcp). On récupère le script d intégration au domaine avec la commande wget : wget http://www.idum.fr/telechargements/script/sambaad/script_v11.sh Ce script à été écrit par N.Salmon (www.idum.fr). Pour l executer: bash script_v11.sh On répond aux questions du script. Les étape que ce script réalise pour nous : il installe et configure Samba, winbind et kerberos avec les réponse que l on donne au questions. Il insère également dans les fichier /etc/pam.d/ commonauth,account,session les informations nécessaires au serveur pour pouvoir s authentifier via l annuaire Active Directory des serveurs 20
Windows. Vous trouverez en pièce jointe la procédure d installation de Samba et d intégration au domaine réalisée par N.Salmon. Script de sauvegarde : On crée un répertoire dédié à la sauvegarde : mkdir /root/adbackup/ Puis par serveur, un répertoire dans lequel on trouvera un répertoire /mnt pour monter les répertoires à sauvegarder sur les serveurs et un répertoire /save pour la copie des données. mkdir /root/adbackup/evolution1 mkdir /root/adbackup/evolution1/mnt/ mkdir /root/adbackup/evolution1/mnt/d$ mkdir /root/adbackup/evolution1/mnt/e$ mkdir /root/adbackup/evolution1/save/ mkdir /root/adbackup/evolution1/save/d$ mkdir /root/adbackup/evolution1/save/e$ mkdir /root/adbackup/evolution2 mkdir /root/adbackup/evolution2/mnt/ mkdir /root/adbackup/evolution2/mnt/d$ 21
mkdir /root/adbackup/evolution2/mnt/e$ mkdir /root/adbackup/evolution2/save/ mkdir /root/adbackup/evolution2/save/d$ mkdir /root/adbackup/evolution2/save/e$ On crée un répertoire dédié aux scripts : mkdir /root/scripts On écrit le script de sauvegarde : nano /root/scripts/save mount t cifs //evolution1/d$ /root/adbackup/evolution1/mnt/d$ -o username=administrateur,password= @dmin2011 mount t cifs //evolution1/e$ /root/adbackup/evolution1/mnt/e$ -o username=administrateur,password= @dmin2011 mount t cifs //evolution2/d$ /root/adbackup/evolution1/mnt/d$ -o username=administrateur,password= @dmin2011 mount t cifs //evolution2/e$ /root/adbackup/evolution1/mnt/e$ -o username=administrateur,password= @dmin2011 cp R /root/adbackup/evolution1/mnt/e$ /root/adbackup/evolution1/save/e$ cp R /root/adbackup/evolution1/mnt/d$ /root/adbackup/evolution1/save/d$ 22
cp R /root/adbackup/evolution2/mnt/d$ /root/adbackup/evolution2/save/d$ cp R /root/adbackup/evolution2/mnt/e$ root/adbackup/evolution2/save/e$ On ajoute un script d obtention de tickets Kerberos (on peut réaliser la sauvegarde sans, mais si on créait sur l AD un utilisateur dédié à la sauvegarde, il faudrait pouvoir s authentifier avec sur le serveur Linux) : nano /root/scripts/kinit kinit administrateur@carovan.evolution.lan < kinitpwd nano /root/scripts/kinitpwd @dmin2011 On les rend exécutables : chmod +x /root/scripts/kinit chmod +x /root/scripts/save On les ajoute au taches planifiées : crontab e 0 1 * * * /root/scripts/kinit 10 1 * * * /root/scripts/save 23
Serveur FTP sécurisé: Pour installer le serveur FTP : apt-get install proftpd Lors de l assistant de l installation de proftpd on sélectionne le mode «standalone», cela signifie que le serveur FTP est tout le temps en train de fonctionner et n attend pas de demande de connexion entrante. Pour le configurer : nano /etc/proftpd/proftpd.conf On dé-commente la ligne Include /etc/proftpd/tls.conf. Cette ligne permet de sécuriser le serveur FTP avec le protocole TLS. On dé-commente la section <Anonymous> du fichier proftpd.conf de manière à autoriser les utilisateurs anonymes à se connecter au FTP On dé-commente ces lignes dans le fichier /etc/proftpd/tls.conf : TLSEngine on TLSLog TLSProtocol /var/log/proftpd/tls.log SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key 24
TLSRequired on On crée ensuite le certificat qui permettra la sécurisation du serveur FTP : openssl req x509 newkey rsa :1024 keyout /etc/ssl/private/proftpd.key out /etc/ssl/certs/proftpd.crt nodes days 365 On fait en sorte que la clef privée ne soit lisible que par l utilisateur root : chmod 600 /etc/ssl/private/proftpd.conf chmod 640 /etc/private/proftpd.conf On peut maintenant redémarrer le serveur pour charger la configuration modifiée : /etc/init.d/proftpd restart 25
d. STRATEGIE DE SECURITE ET GPO Notre AD est composé de plusieurs O.U (Unités d organisations), plusieurs utilisateurs ainsi que plusieurs groupes de filtrage auxquels nous appliquons des GPO (Group Policy Organization). Nous avons donc une O.U «Utilisateurs» dans laquelle nous avons une O.U par service : - ServiceDirection - ServiceInformatique - ServiceSAV - ServiceProduit 1 - ServiceProduit 2 - ServiceAdministratif Une autre O.U «Groupes» dans laquelle nous avons tous nos groupes de filtrages, qui sont tous nommer avec la même stratégie (exemple : _GroupeServiceAdministratif) : Nous avons donc les groupes de services : - _GroupeServiceDirection - _GroupeServiceInformatique - _GroupeServiceSAV - _GroupeServiceProduit1 - _GroupeServiceProduit2 - _GroupeServiceAdministratif Les groupes d imprimantes : 26
- _GroupeImprimanteDirection - _GroupeImprimanteInformatique - _GroupeImprimanteSAV - _GroupeImprimanteProduit1 - _GroupeImprimanteProduit2 - _GroupeImprimanteAdministratif - _GroupeImprimanteGeneral Les groupes pour les GPO : - _GroupeGpoLecteursDésactivés - _GroupeGpoInterdictionInstallation - _GroupeGpoFermetureSession - _GroupeGpoBloquerOuvertureDossierLecteur Fonctionnement de l architecture : Chaque utilisateur est membre du groupe de son service. Chaque «GroupeService» ou utilisateur est membre du groupe de son imprimante et de l imprimante générale Chaque «GroupeService» ou utilisateur est membre du groupe des GPO leur correspondant. Chaque GPO que l on crée est affectée à un «GroupeGPO» du même nom. Exemple : Mlle Laura ADA l assistante du directeur est membre du service Direction, à toutes les mêmes réglementations que son service mais 27
elle doit aussi pouvoir imprimer sur l imprimante des services informatiques, produit1 et produit2. Le compte utilisateur ADA Laura est donc membre du groupe de filtrage «_GroupeServiceDirection», afin d être affecter à son service et d avoir les mêmes règlementations. Le compte est aussi affecté au groupe de filtrage «_GroupeImprimanteInformatique», «_GroupeImprimanteProduit1», «_GroupeImprimanteProduit2» afin de pouvoir imprimer sur chaque service. III) OUTILS DE GESTION DE PARC a. Présentation Afin de répondre au mieux à la demande du DAF concernant l organisation du matériel sur le parc informatique, nous avons décidé de concevoir un outils de gestion de parc avec une base de donnée accessible en interne par HTML sur le serveur linux. L objectif de cet outil est de faciliter la gestion tout en garantissant une certaine sécurité. En effet, l interface sera accessible sous deux profils bien distincts. D une part en mode administration, avec des options de création, modification ou suppression. D autre part en mode consultation pour les salariés non habilités. 28
b. PHPMYADMIN La base de données : On installe phpmyadmin sur le serveur : Apt-get install php-my-admin On se connecte au serveur via l interface de phpmyadmin en utilisant un navigateur web. Pour cela on tape dans l url : http://192.168.10.12/phpmyadmin Ensuite nous avons conçu un dictionnaire de la base de données : Nom ID Type Taille iduser iduser AUTO_INCREMENT 0 nomuser nomuser VARCHAR 50 prenomuser prenomuser VARCHAR 50 codesalle codesalle AUTO_INCREMENT 0 numsalle numsalle INTEGER 0 codeimprimante codeimprimante AUTO_INCREMENT 0 typeimprimante typeimprimante VARCHAR 50 nomimprimante nomimprimante VARCHAR 50 codeuc codeuc AUTO_INCREMENT 0 nomuc nomuc VARCHAR 50 codecara codecara AUTO_INCREMENT 0 qteddcara qteddcara VARCHAR 50 qteramcara qteramcara VARCHAR 50 codeecran codeecran AUTO_INCREMENT 0 typeecran typeecran VARCHAR 50 29
Les valeurs de type AUTO_INCREMENT ne seront pas visibles pour tous le monde lors de la consultation de cette base. Elles ne servent qu à la base en interne. Les valeurs de type VARCHAR acceptent toute entrée alphanumérique d une taille maximum de 50 caractères. La valeur INTEGER accepte un nombre entier. Ce type de valeur concerne le numéro de salle. Voici le Modèle Conceptuel de Données : 30
Voici l explication du schéma : L utilisateur (user) utilise une et une seule salle. Une salle peut être utilisée par plusieurs utilisateurs. L utilisateur se sert d imprimantes. Les imprimantes sont utilisables par tous les utilisateurs. Un utilisateur peut posséder plusieurs UC (dans le cas ou une UC est HS ) mais une UC ne peut être possédée que par un et un seul utilisateur. Une UC est définie par une et une seule caractéristique. Une caractéristique peut définir plusieurs UC. Une UC peut être associée à plusieurs écrans mais un écran peut être associé à une et une seule UC. On y importe le script de la base de données réalisé avec «analyse- SI», le logiciel permettant de réaliser le script sql de la base. Une fois le script importé, on n a plus qu a mettre nos pages.php sur le serveur dans le répertoire /var/www/ (pour cela on utilise FileZilla) On peut ensuite se connecter au serveur http://192.168.10.12/ ou encore http://debian1/. 31
La base de données : Le serveur Linux, comme dit précédemment héberge le système de gestion de bases de données relationnelles. Nous avons fait le choix d utiliser un serveur MySQL car nous en maitrisons l installation, l utilisation et l intégration dans un parc informatique. La base de données relationnelle à été importée dans le server MySQL via phpmyadmin, un module de gestion de server MySQL. Nous avons ensuite réalisé les pages en langage PHP (en utilisant du langage PHP et HTML) avec notepad++, elles ont ensuite été placées sur le server apache. 32
c. DEVELOPPEMENT HTML ET PHP Le serveur est sécurisé : il ne permet la consultation que si l on est authentifié et l administration que si l on est authentifié et que l on à le statut d administrateur. Le serveur est sécurisé avec un système de sessions : toute modification ou consultation est impossible si l on pas été authentifié, même en tapant directement l url d une page. Structure : - Une page d index - Une page de recherche multicritères - 52 pages pour afficher, modifier, supprimer, mettre à jour toutes les tables (sauf celle qui gère les autorisations) - Une page qui gère les fonctions (pour simplifier et alléger les pages de code PHP) - Une page de feuille de style pour mettre en forme le site Vous trouverez en annexe une page commentée pour comprendre le site (la page d affiche des caractéristiques). 33
IV) CONCLUSION Dans le carde de ce projet nous avons effectué toutes les missions demandées en respectant le cahier des charges et les contraintes imposées. Durant l avancée du projet nous avons acquis des connaissances diverses sur l installation de serveurs en entreprise, grâce aux formations et aux recherches que nous avons effectuées Grace à ces connaissances, nous avons pu installer du matériel performant et évolutif en vue du prochain agrandissement de l infrastructure du réseau comme par exemple l ajout de rôle sur les serveurs 34
GLOSSAIRE : Active directory : (AD) est la mise en œuvre par Microsoft des services d'annuaire pour les systèmes d'exploitation Windows. DNS : Le Domain Name System est un service permettant d'établir une correspondance entre une adresse IP et un nom de domaine. HTML/PHP : Langage de programmation orienté web. PHPMYADMIN : (PMA) est une application Web de gestion pour les systèmes de gestion de base de données MySQL réalisée en PHP et distribuée sous licence GNU GPL DHCP : Dynamic Host Configuration Protocol est un protocole réseau dont le rôle est d assurer la configuration automatique des paramètres IP d une station, notamment en lui affectant automatiquement une adresse IP et un masque de sous-réseau VBS : (diminutif de Microsoft Visual Basic Scripting Edition) est un sous-ensemble de Visual Basic utilisé en tant que langage de script d'usage général. GPO : Les stratégies de groupe (ou Group Policy Object) sont des fonctions de gestion centralisée de la famille Microsoft Windows. 35
ANNEXE Voici une page de programmation html et PHP type <?php //On ouvre la balise php session_start(); //On importe la variable de session pour restreindre ou non les accès au fonctions qui suivent include("fonctions.php"); //On inclut la page fonctions.php qui permettra la connexion à la base de donnés plus bas dans la page if($_session['admin']<1) // Si l on est pas administrateur ou visiteur, la page renvoit sur l index { header("location: index.php"); }?> //On ferme la balise php <html> //On commence le code en html <head> //Les informations de la page (titre, liens vers feuilles de style etc ) </head> <title>afficher les Caracteristiques</title> <link rel="stylesheet" href="style.css" /> <body> //Le contenu html <h1>affichage des caracteristiques</h1> //le titre <?php // code php pour afficher le menu 36
if($_session['admin']==1) //Si l on est admin { echo ' //Alors on à accès à l intégralité du menu <div id="menu"> <h2>menu</h2> <ul> <li><a href="ucsearchform.php">recherche multi- <li><a href="ucaffiche.php">visualiser les unités <li><a href="useraffiche.php">visualiser les <li><a href="caracteristiqueaffiche.php">visualiser <li><a href="ecranaffiche.php">visualiser les <li><a href="imprimanteaffiche.php">visualiser les critères</a></li> centrales</a></li> utilisateurs</a></li> les caractèristiques</a></li> écrans</a></li> imprimantes</a></li> <br/> utilisateur</a></li> écran</a></li> UC</a></li> une caractèristique</a></li> une imprimante</a></li> <li><a href="userforminsere.php">ajouter un <li><a href="ecranforminsere.php">ajouter un <li><a href="ucforminsere.php">ajouter une <li><a href="caracteristiqueforminsere.php">ajoutez <li><a href="imprimanteforminsere.php">ajouter 37
<br/> utilisateur</a></li> écran</a></li> UC</a></li> <li><a href="userformsuppr.php">supprimer un <li><a href="ecranformsuppr.php">supprimer un <li><a href="ucformsuppr.php">supprimer une <li><a href="caracteristiqueformsuppr.php">supprimer une caractèristique</a></li> une imprimante</a></li> <li><a href="imprimanteformsuppr.php">supprimer <br/> utilisateur</a></li> écran</a></li> UC</a></li> <li><a href="userformupdate.php">modifier un <li><a href="ecranformupdate.php">modifier un <li><a href="ucformupdate.php">modifier une <li><a href="caracteristiqueformupdate.php">modifier une caractèristique</a></li> une imprimante</a></li> <li><a href="imprimanteformupdate.php">modifier <br/> imprimante à un utilisateur</a></li> imprimante</a></li> <li><a href="sertforminsere.php">associer une <li><a href="sertformsuppr.php">desassocier une </ul> </div> 38
'; } else if($_session['admin']==2) //Si l on est visiteur, alors on a accès à un menu réduit { echo ' <div id="menu"> <h2>menu</h2> <ul> centrales</a></li> utilisateurs</a></li> les caractèristiques</a></li> écrans</a></li> imprimantes</a></li> <li><a href="ucaffiche.php">visualiser les unités <li><a href="useraffiche.php">visualiser les <li><a href="caracteristiqueaffiche.php">visualiser <li><a href="ecranaffiche.php">visualiser les <li><a href="imprimanteaffiche.php">visualiser les </ul> </div> '; } else { header("location: index.php"); 39
}?> //Fin de la balise php <div id="content"> //La balise div permet de simplifier la mise en forme vis-à-vis de la page css <h2>caractéristiques</h2> //Titre du tableau <table border="1" cellpadding="3" cellspacing="3"> //On défini le tableau (en Mo)</th></thead> <thead><th>capacité Disque Dur (en Go)</th><th>Quantité Memoire Vive // Les titres du tableau <tbody> //Contenu du tableau <?php connect(); // requête sql $sql="select * FROM caracteristique"; //on envoie la requête et on récupere un paquet $paquet=mysql_query($sql) or die("requete '$sql'!"); // boucle : tant qu'on a encore une ligne ( dans le paquet ) while($ligne=mysql_fetch_array($paquet)) { // on explose la ligne en variables extract($ligne); // on affiche les variables dans une ligne html echo "<tr> <td><center>$qteddcara</center></td> 40
}?> </tr>"; <td><center>$qteramcara</center></td> </tbody> //Fin du contenu du tableau </table> <br/> </div> </body> </html> // On ferme les balises 41
Voici le script d intégration du serveur linux au domaine : Intégration de Samba dans un Active Directory >>> Debian & Microsoft Windows server 2008 R2 Français Dans ce cours nous allons apprendre à installer SSH et à le configurer pour qu il utilise des clefs RSA à la place des mots de passe. L utilisation de clef RSA vous permet d augmenter la sécurité au niveau de l administration à distance de vos serveurs. Quelques informations : Adresse IP du serveur samba : 192.168.1.2 Adresse IP du serveur DNS + AD : 192.168.1.3 Nom du serveur samba : Fraise Nom du serveur DNS + AD : Cerise Nom du domaine : dumca.eu Nom NETBIOS : DUMCA Sommaire I) Installation et Configuration du serveur de fichiers 1 Configuration du serveur 42
2 Création des dossiers partagés 3 Installation et Configuration de Samba 4 Installation de Winbind 5 Installation et configuration de Kerberos 6 Configuration de "nsswitch.conf" 7 Intégrations du serveur dans le domaine Active Directory 8 Configuration de "Pam.d" II) Installation avec le script 1 Récupération du script 2 Exécution du script I) Installation et Configuration du serveur de fichiers 1 Configuration du serveur Commencez par vérifier si votre configuration IP est statique : cat /etc/network/interfaces Ensuite configurez votre fichier resolv.conf pour ajouter le serveur DNS local : vim /etc/resolv.conf Votre fichier resolv.conf doit ressembler à ça : search dumca.eu domain dumca.eu 43
Maintenant mettons le serveur à jour : aptitude update nameserver 192.168.1.3 nameserver 8.8.8.8 aptitude -y safe-upgrade On met le serveur à l heure via un serveur NTP, sinon le serveur AD va nous refuser. aptitude install -y ntpdate ntpdate pool.ntp.org Et pour finir la préparation du serveur nous allons modifier le fichier /etc/hosts : vim /etc/hosts A la première et deuxième ligne du fichier on doit trouver ceci : 127.0.0.1 localhost On configure aussi le fichier /etc/hostname Pour obtenir ceci : Pour finir tapez cette commande : 192.168.1.2 fraise.dumca.eu fraise vim /etc/hostname fraise hostname fraise On vérifie que la configuration du Hostname est correcte : Vous devez obtenir ceci : hostname -f fraise.dumca.eu 44
2 Création des dossiers partagé Nous allons créer deux répertoires, un répertoire pour tous les utilisateurs de l Active Directory puis un deuxième répertoire contenant tous les répertoires personnels. Ce dossier devra porter le nom NetBIOS en majuscule. mkdir /home/partage Puis on attribut les droits 777 aux répertoires : chmod 777 /home/partage mkdir /home/dumca chmod 777 /home/dumca 3 Installation et Configuration de Samba On commence par installer samba : aptitude install samba Et on sauvegarde le fichier de configuration : cp /etc/samba/smb.conf /etc/samba/smb.conf.old Pour finir on configure le fichier smb.conf : [global] NetBIOS name = fraise server string = Serveur de fichiers socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384 idmap uid = 10000-20000 idmap gid = 10000-20000 workgroup = DUMCA os level = 20 45
preferred master = no max log size = 50 log file = /var/log/samba3/log.%m encrypt passwords = yes dns proxy = no realm = DUMCA.EU security = ADS obey pam restrictions = yes winbind use default domain = yes winbind enum groups = yes winbind enum users = yes winbind gid = 10000-20000 winbind separator = + winbind cache time = 10 template shell = /bin/bash template homedir = /home/%d/%u invalid users = root [partage] comment = Dossier pour les utilisateurs du domaine path = /home/partage browseable = yes writeable = yes create mask = 700 46
directory mask = 700 valid users = @\"DUMCA+utilisateurs du domaine\" [homes] comment = Home Directories browseable = no writeable = yes Voilà la configuration de samba est faite, mais on va quand même expliquer un peu. NetBIOS name : Nom de la machine samba. server string : Description du serveur samba. Workgroup : Correspond au nom NetBIOS du domaine (n oubliez pas de l écrire en MAJUSCULE). realm : Nom du domaine (n oubliez pas de l écrire en MAJUSCULE). security : ce paramètre permet de déterminer quel type de sécurité samba doit appliquer sur les partages, nous avons mis ADS pour Active Directory Security. obey pam restrictions = yes : Permet d intégrer les comptes AD dans Pam. invalid users = root : Pour plus de sécurité nous interdisons les connexions avec l utilisateur root. [partage] : Nom du dossier qui sera affiché sur le réseau. comment : Description du dossier. path : Désigne le chemin du dossier partagé. browseable : Permet d afficher ou de cacher le dossier sur le réseau. writeable : Permet d autoriser l écriture dans le dossier. 47
valid users : Désigne les utilisateurs ou les groupes autorisés à accéder au répertoire. [homes] : homes est un nom spécial, car il va afficher sur le réseau un dossier au nom du login. (exemple : nom de login : lrattif, le dossier lrattif sera affiché sur le réseau. 4 Installation de Winbind Winbind est un logiciel permettant de faire la liaison entre le monde Unix et le monde Microsoft. Nous avons juste besoin de l installer : aptitude install winbind Winbind n a pas de fichier de configuration à lui, il se rajoute dans les fichiers de configuration des autres logiciels. 5 Installation et configuration de Kerberos Comme toujours on commence par installer avant de configurer : aptitude install -y krb5-user L installation faite, passons à la sauvegarde du fichier de configuration : cp /etc/krb5.conf /etc/krb5.conf.old Enfin nous passons à la configuration : Configurez votre fichier comme ceci : vim /etc/krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log 48
[libdefaults] default_realm = DUMCA.EU dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes [realms] DUMCA.EU = { kdc = cerise.dumca.eu admin_server = cerise.dumca.eu default_domain = dumca.eu } [domain_realm].kerberos.server = DUMCA.EU.dumca.eu = DUMCA.EU dumca.eu = DUMCA.EU [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 49
renew_lifetime = 36000 forwardable = true krb4_convert = false } Respectez bien les minuscules et les MAJUSCULES c est important. 6 Configuration de "nsswitch.conf Commençons par la sauvegarde du fichier : cp /etc/nsswitch.conf /etc/nsswitch.conf.old Nous éditons le fichier : vim /etc/nsswitch.conf Recopiez ceci : passwd: files winbind shadow: files winbind group: files winbind #hosts: db files nisplus nis dns hosts: files dns wins # Example - obey only what nisplus tells us... #services: nisplus [NOTFOUND=return] files #networks: nisplus [NOTFOUND=return] files #protocols: nisplus [NOTFOUND=return] files #rpc: nisplus [NOTFOUND=return] 50
files #ethers: nisplus [NOTFOUND=return] files #netmasks: nisplus [NOTFOUND=return] files bootparams: nisplus [NOTFOUND=return] files ethers: db files netmasks: files networks: files dns protocols: db files rpc: files services: files netgroup: files publickey: nisplus automount: files aliases: files nisplus 7 Intégrations du serveur dans le domaine Active Directory Nous redémarrons les différents services que nous avons configurés ci-dessus. /etc/init.d/samba restart /etc/init.d/winbind restart 51
Ensuite on fait une requête de jetons Kerberos : kinit Administrateur Administrateur : Correspond au nom du compte administrateur du domaine. On vérifie que nous avons bien récupéré un ticket valide klist les informations suivantes devraient s afficher : Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Administrateur@DUMCA.EU Valid starting Expires Service principal 08/25/10 19:34:14 08/26/10 05:36:04 krbtgt/dumca.eu@dumca.eu renew until 08/26/10 19:34:14 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached Maintenant que nous avons le ticket Kerberos nous pouvons faire une demande pour joindre le serveur Active Directory. Le message suivant devrait s afficher : net join -U Administrateur Using short domain name -- DUMCA Joined 'HOLA' to realm 'dumca.eu' 8 Configuration de "Pam.d" 52
La configuration suivante n est pas obligatoire pour le fonctionnement de samba, sauf si vous voulez utiliser les comptes AD pour se connecter sur le serveur Samba. Elles vont permettre aussi de créer automatiquement un dossier personnel lors de la première connexion de l utilisateur AD au serveur, ou lors du premier accès au fichier partagé. Commençons par sauvegarder les fichiers configurations : cp /etc/pam.d/common-account /etc/pam.d/common-account.old On édite le fichier "common-account" : Pour mettre ceci : On édite le fichier "common-auth" : Pour mettre ceci : cp /etc/pam.d/common-auth /etc/pam.d/common-auth.old cp /etc/pam.d/common-session /etc/pam.d/common-session.old vim /etc/pam.d/common-account account sufficient pam_winbind.so account required pam_unix.so vim /etc/pam.d/common-auth auth sufficient pam_winbind.so Pour finir on édite le fichier "common-session" : Pour mettre ceci : auth required pam_unix.so use_first_pass nullok_secure vim /etc/pam.d/common-session session required pam_mkhomedir.so skel=/etc/skel/ umask=0066 53
session sufficient pam_winbind.so session required pam_unix.so II) Installation avec le script Pour simplifier l intégration du serveur de fichiers (samba) dans un domaine active directory, j ai réalisé ce petit script en BASH. Ce script reprend toutes les étapes cidessus. Pour récupérer mon script, faite : 1 Récupération du script Une fois téléchargé, lancez le script : wget http://www.idum.fr/telechargements/ Script/SambaAD/script_v11.sh 2 Exécution du script #bash script_v10.sh (La commande "bash" permet de lancer le script sans attribuer les droits d exécutions) Le script s exécute, Il commence par vous poser quelques questions : le nom de votre domaine le nom de la machine samba l adresse IP du serveur samba le nom de votre serveur Active Directory l adresse IP de votre serveur DNS local 54
l adresse d un serveur DNS public le login de l administrateur du domaine la description du serveur Samba le nom du dossier partage la langue de votre Active directory est en Français ou en Anglais. Au cours de l installation le script vous affichera trois écrans bleus, faite "Entrée" directement. A la fin de la configuration le script vous demandera deux fois le mot de passe de votre compte administrateur, puis votre serveur va redémarrer pour prendre en compte toutes les modifications. 26 août 2010 -- N.Salmon Commentaires : Répondre à cet article 55