Configuration des services web sous CentOS
Transcript of Configuration des services web sous CentOS
1
Table des matières Liste des abréviations .............................................................................................................................. 3
Introduction ............................................................................................................................................. 4
I. Présentation de CentOS ................................................................................................................... 5
1. Les avantages de CentOS .......................................................................................................... 5
2. Les inconvénients de CentOS .................................................................................................. 5
II. Configuration des services ............................................................................................................... 6
1. Apache ........................................................................................................................................ 6
Installation d’apache ............................................................................................................. 6
Configuration ......................................................................................................................... 7
2. MySQL ....................................................................................................................................... 9
Instalation MySQL ............................................................................................................... 9
Configuration ....................................................................................................................... 10
3. PHP ........................................................................................................................................... 12
Installation de PHP ............................................................................................................. 12
Test ........................................................................................................................................ 13
4. Phpmyadmin ............................................................................................................................ 14
Installation de phpmyadmin ............................................................................................... 14
Test ........................................................................................................................................ 15
5. Webmin .................................................................................................................................... 16
Installation de webmin ....................................................................................................... 16
Test ........................................................................................................................................ 16
6. FTP ........................................................................................................................................... 17
Installation VSFTPD .......................................................................................................... 17
Configuration ....................................................................................................................... 18
Test ........................................................................................................................................ 18
7. DNS ........................................................................................................................................... 19
Installation de DNS ............................................................................................................. 19
Configuration ....................................................................................................................... 19
8. SSH ........................................................................................................................................... 24
Installation de OpenSSH ..................................................................................................... 24
2
Configuration ....................................................................................................................... 25
9. Pop Imap .................................................................................................................................. 27
Installation dovecot ............................................................................................................ 27
Configuration ....................................................................................................................... 28
Test ........................................................................................................................................ 28
10. Postfix ................................................................................................................................... 29
Installation de postfix ......................................................................................................... 30
Configuration ....................................................................................................................... 30
11. Htaccess ................................................................................................................................ 31
12. Les captures du site web ..................................................................................................... 35
Conclusion.............................................................................................................................................. 36
3
Liste des abréviations
PHP: Personal Home Page (Hypertext Preprocessor)
RHEL: Red Hat Enterprise Linux
RHN: Red Hat Network
SELinux: Security-Enhaced Linux
RPM: Red Hat Package Manager
HTTP: Hypertext Transfer Protocol
RFC: Requests For Comments
API: Application Programming Interface
SQL: Structured Query Language
CGI: Common Gateway Interface
ASP: Active Server Page de Microsoft
FTP: File Transfer Protocol
BSD: Berkeley Software Distribution
DNS: Domain Name System
SSH: Secure Shell
POP: Post Office Protocol
IMAP: Internet Message Access Protocol
4
Introduction
Pour compléter notre formation en première année cycle ingénieur et pour clôturer le module
« Technologies web » il nous a été attribué de configurer les différents services du système
d’exploitation CentOS et la réalisation d’un site web en php sous Linux; pour une liaison
entre le système d’exploitation et la programmation web.
CentOS a un grand nombre d'avantages par rapport aux autres systèmes d'exploitation, surtout
en ce qui concerne la facilité de la configuration des services, puisque la documentation et les
tutoriaux sont disponibles que ce soit sur internet ou en bouquin.
Dans ce rapport, on présentera une vision sur le projet effectué et plus de détails à propos des
tâches effectuées.
5
I. Présentation de CentOS
CentOS(abréviation de Système
communautaire d'exploitation d'entreprise)
de la distribution Linux est une entreprise
de qualité, librement disponible, le système
d'exploitation open source qui est dérivé du
code source de Red Hat Enterprise Linux
(RHEL) et développé et maintenu par le
projet CentOS.
Le projet CentOS est plus que juste une distribution Linux. Les membres du projet travaillent
à fournir un appui, du matériel de formation, et, dans l'avenir, même des certifications. Bien
qu'à sa base, le projet CentOS englobe tout un écosystème de logiciels, développeurs, et des
projets. i
1. Les avantages de CentOS
Support gratuit, mises à jour applicatives et les patchs de sécurité réguliers.
Stabilité quasi-équivalente à la distribution Red Hat utilisé dans de gros
environnements de production.
Cycle de développement suivant celui de Red Hat (7ans pour une release).
L'outil "YUM" facilitant l'exploitation et la gestion des paquets au format RPM.
Arrivée du projet Spacewalk (dérivé de RHN Satellite) offert par Red Hat à la
communauté.
Nombreux manuels en ligne (en anglais et en français) de Red Hat, 100% compatibles
CentOS Linux.
SELinux pour les contraintes de sécurité.ii
2. Les inconvénients de CentOS
Absence des supports applicatifs de la part des gros fabricants de matériels.
Limite au niveau des dépôts standards fournissant les paquets RPM.
Difficulté de création de ses propres paquets RPM.
6
II. Configuration des services
Apache
Apache est le serveur web le plus répandu sur
Internet (50% des serveurs en sont équipés1). Il
s'agit d'un programme qui tourne sur une machine
(un serveur ou sur un poste en local) qui permet à
des clients d'accéder à des pages web, ou tout autre
fichier présent sur le serveur à partir d'un navigateur
ou tout autre programme supportant le protocole
HTTP.
Apache dispose de nombreuses fonctionnalités, il permet l'utilisation de modules, la
possibilité de définir une configuration spécifique pour chaque répertoire partagé, des
restrictions, ... Il est souvent utilisé avec des modules comme Perl et/ou PHP afin de rendre le
contenu des pages dynamiques.
• C'est un serveur web HTTP aussi flexible que puissant
• Il implémente les derniers protocoles, HTTP/1.1 (RFC2616) inclus
• Il supporte des modules externes 100% configurables
• Il peut être personnalisé en écrivant soi-même ses propres modules en utilisant l'API
Apache
• Son code source est disponible et est accompagné d'une licence non restrictive
• Il peut tourner sous la plupart des plateformes existantes (autant à base UNIX que
NT)
• Il est souvent mis à jour par une équipe très active
• Il est testé en permanence, et les bugs sont corrigés rapidement.iii
Installation d’apache
Avec ligne de commande :
- yum install httpd
11
Netcraft en date de janvier 2008
7
Configuration
8
- Nous avons créé une page index.html dans le répertoire /var/www/html
L’exécution du programme
9
MySQL
MySQL, le plus populaire des serveurs de
bases de données SQL Open Source, est
développé, distribué et supporté
par MySQL AB. MySQL AB est une
société commerciale, fondée par les
développeurs de MySQL, qui développent
leur activité en fournissant des services
autour de MySQL.
- MySQL est un système de gestion de bases de données.
- MySQL est un serveur de bases de données relationnelles.
- MySQL est Open Source.
- Le serveur de bases de données MySQL est très rapide, fiable et facile à utiliser
- MySQL Server fonctionne en mode client/serveur ou en système embarqué.iv
Instalation MySQL v
10
- Yum install mysql mysql-server
Configuration
11
12
PHP
PHP, (Personal Home Page) est un
langage de programmation complet, assez
proche du C. Il fournit :
des structures de données.
des structures de contrôle.
des instructions de gestion des
entrées/sorties.
Il est diffusé également sous licence libre.
Il permet la création de pages web
dynamiques.
Il est considéré comme une alternative à
CGI, Perl, ASP (Active Server Page de Microsoft).
Développé à l'origine pour Linux, il est maintenant portable sur plusieurs environnements
(Windows 9.x, NT).vi
Installation de PHP
- Yum install php
13
Test
Programme de la page php
14
Sous Windows
Phpmyadmin
Installation de phpmyadmin
On télécharge les sources depuis le site officiel vii
wget http://surfnet.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-3.1.1-all-
languages.tar.gz
15
Puis on extrait le tout dans notre répertoire web (on dira ici que c’est /var/www/)
cd /var/www/
tar xvzf phpMyAdmin-3.1.1-all-languages.tar.gz
On va utiliser leur fichier exemple comme fichier de configuration
Mv phpMyAdmin-3.1.1-all-languages phpmyadmin
cd phpmyadmin
cp config.sample.inc.php config.inc.php
vi !$
Ce qui est nécessaire dans ce fichier?
$cfg['blowfish_secret'] = '2454kndfjn0987'; //entrer ici une suite de caracteres
alphanumerique au hasard
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
Test
16
Webmin
Webmin est un programme qui simplifie
l’administration des systèmes Linux ou
Unix. En effet pour créer des comptes,
installer un serveur web ou configurer un
serveur de messagerie, il faut généralement
éditer à la main les fichiers de
configuration ou exécuter des commandes.
Webmin permet de réaliser ces tâches via
une interface web en mettant à jour toute la
configuration nécessaire. Le travail
d’administration système se trouve alors
grandement simplifié.viii
Installation de webmin ix
Pour installer le webmin on télécharge le paquet suivant :
- wget http://prdownloads.sourceforge.net/webadmin/webmin-1.400-1.noarch.rpm
- rpm -ivh webmin-1.400-1.noarch.rpm
Test
17
FTP
Le serveur FTP (File Transfer Protocol)
permet, comme son nom l'indique de
transférer des fichiers par Internet ou par le
biais d'un réseau informatique local
(intranet). Si vous en avez l'autorisation,
vous pouvez télécharger et envoyer des
fichiers sur un ordinateur distant faisant
fonctionner un tel serveur.
Le port par défaut et le plus souvent utilisé
est le port 21.
On trouve de nombreux serveurs FTP pour
Linux/Unix/BSD comme :
ProFTPd.
Pure-FTP.
VsFTPd.x
Installation VSFTPD xi
Yum install vsftpd
18
Configuration
Dans le fichier /etc/vsftpd/vsftpd.conf :
anonymous_enable=NO, Puis on autorise au utilisateur locaux du système à se connecter au
serveur ftp par dé commenter la ligne suivante :
local_enable=YES
Pour autoriser aux utilisateurs d'uploader des fichiers sur le serveur:
write_enable =YES
Test
19
DNS
DNS (Domain Name System) est un
système d’appellation d’ordinateurs et de
services réseau organisé selon une
hiérarchie de domaines. L’attribution de
noms DNS est utilisée sur les réseaux
TCP/IP tels qu’Internet afin de localiser les
ordinateurs et les services au moyen de
noms conviviaux. Lorsqu’un utilisateur
entre un nom DNS dans une application,
les services DNS peuvent résoudre ce nom
en une autre information qui lui est
associée, par exemple une adresse IP. xii
Installation de DNS
yum install bind-chroot
Configuration
Pour la configuration du DNS on a utilisé webmin
20
Démerrer le dns
Service bind start
21
Adresse
Serveur
Alias
22
23
- Test
Pour vérifier le fonctionnement de notre serveur DNS, on va le tester avec « nslookup » et
host.
Sous windows
24
SSH
SSH est un shell sécurisé (Secure SHell)
qui vous permet de vous connectez à une
machine distante à travers le réseau, cela
peut être une machine de votre réseau local
mais également une machine située à
Londres, Madrid ou New York ! En outre,
il vous permet de lancer des applications
sur la machine distante. Vous pouvez
également effectuer des transferts de votre
machine locale sur le serveur et
inversement tout cela de manière sécurisée.
SSH permet d’établir un canal de
communication sécurisée et de
s’authentifier de manière forte (mise en
place de paire de clés) sur le serveur
distant.xiii
Installation de OpenSSHxiv
- Yum install openssh
25
Configuration
26
27
Pop Imap
- Le protocole POP
Ce protocole est conçu pour un traitement des emails en mode "non-connecté" : tous les
emails sont téléchargés sur le poste de l'utilisateur par le logiciel de messagerie et peuvent être
supprimés du serveur. La connexion n'est alors plus nécessaire que pour vérifier la présence
de nouveaux messages.
- Le protocole IMAP
Avec ce protocole, les messages ne sont pas supprimés lors de la récupération, mais toutes les
modifications apportées sur votre compte (déplacement, marquage, suppression) sont
également appliquées coté serveur.
- Dovecot
Un serveur de boîte à lettre sécurisé, qui prend en charge les services POP et IMAP, et les
boîtes aux lettres au format mbox ou Maildir.
Installation dovecot xv
Yum install dovecot
28
Configuration
Dans le fichier /etc/dovecol.conf
Protocoles: spécifie les protocoles disponibles aux utilisateurs d'accéder à leur
messagerie. Dovecot supporte imap (s) et POP3 (s), le tout ou partie peut être utilisée.
Mail_location: spécifie le format et l'emplacement de chaque boîte à lettre des
utilisateurs. Ici, nous voyons que nous utilisons le format maildir et chaque utilisateur a sa
propre boîte à lettres située à ~ / Maildir .On peut trouver des exemples de format mbox
sont fournis dans le fichier de configuration
Login_process_size: Les notes de version de CentOS 5.1 indiquent que "le paquet
dovecot sur les noyaux x86_64 nécessite le paramètre "login_process_size = 64" pour être
ajouté au fichier / etc / dovecot.conf après une mise à niveau vers CentOS 5.1 ". 32-Bit
installations ne sont pas affectées et ne nécessitent pas de paramètre.
Test
29
Postfix
Postfix est un serveur de messagerie
électronique et un logiciel libre développé
par Wietse Venema et plusieurs
contributeurs. Il se charge de la livraison
de courriers électroniques(courriels) et a
été conçu comme une alternative plus
rapide, plus facile à administrer et plus
sécurisée que l'historique Sendmail. xvi
30
Installation de postfix xvii
Yum install postfix
Configuration
Postfix fichiers de configuration sont stockés dans / etc / postfix . Les deux principaux fichiers
de configuration de Postfix sont master.cf et main.cf , bien que nous ne serons
traitant main.cf ici. D'abord nous allons faire quelques ajouts ou des modifications
aux main.cf fichier de configuration. Les lignes suivantes doivent être ajoutées, modifiées ou
non commentée:
myhostname = www.lsi.ma
mydomain = lsi.ma
myorigin = $ mydomain
inet_interfaces = all
mydestination = $ myhostname, localhost. $ mydomain, localhost, $ mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0 / 8
relay_domains =
home_mailbox = Maildir /
myhostname: Le nom d'hôte du système (par exemple, le système est appelé mail ou
mail.example.com).
mydomain: Le nom de domaine pour le serveur de messagerie (il peut être un nom de
domaine vrais ou faux).
myorigin: Le nom de domaine d’où provient le courrier électronique localement posté.
inet_interfaces: Définit les interfaces réseau où Postfix peut recevoir les
courriers. Celles-ci doivent inclure au moins localhost et le domaine local.
31
mydestination: C'est la liste des domaines qui seront livrés.
mynetworks: Une liste des adresses IP de confiance qui peut envoyer des messages via le
serveur. Si les utilisateurs essayant d'envoyer des courriels via le serveur provenant d'une
adresse IP ne figure pas ici sera rejetée.
home_mailbox: Définit le chemin de la boîte à lettre relatif au répertoire home de
l'utilisateur et spécifie également le style de la boîte à lettre pour être utilisé. Postfix
supporte deux formats Maildir et mbox.
Test
Htaccess
Les fichiers .htaccess peuvent être utilisés dans n'importe quel répertoire virtuel ou sous-
répertoire.
Les principales raisons d'utilisation des fichiers .htaccess sont :
Gérer l'accès à certains fichiers.
32
Ajouter un mime-type.
Protéger l'accès à un répertoire par un mot de passe.
Protéger l'accès à un fichier par un mot de passe.
Définir des pages d'erreurs personnalisées.
Il s'agit d'une des applications les plus utiles du fichier .htaccess car elle permet de définir de
façon sûre (à l'aide d'un login et d'un mot de passe) les droits d'accès à des fichiers par
certains utilisateurs.
La syntaxe est la suivante :
AuthUserFile {emplacement du fichier de mot de passe}
AuthGroupFile {emplacement du fichier de groupe}
AuthName "Accès protégé"
AuthType Basic
Require valid-user
La commande AuthUserFile permet de définir l'emplacement du fichier contenant les logins et
les mots de passe des utilisateurs autorisés à accéder à une ressource donnée.
La commande AuthGroupFile permet de définir l'emplacement du fichier contenant les
groupes d'utilisateurs autorisés à s'identifier. Il est possible d'outrepasser cette déclaration en
déclarant le fichier suivant : /dev/null.
33
Sous Windows
Dossier personnel
Mkdir /home/samia/public_html
Chown samia:samia /home/samia/public_html
Chcon –R –t httpd_sys_content_t /home/samia
Chmod 711 /home/samia/public_html
34
35
Les captures du site web
On a réalisé une application de gestion du personnel à l’aide de l’outil PHP et en utilisant une
base de données MySQL.
Ce site sera utile dans les services ressources humaines des entreprises. Il gère tout ce qui a
une relation avec le personnel de l’administration(congés, récupérations, situation familiale,
saliare…)
36
Conclusion
Au terme de ce projet d’études consacré à la configuration des services sous CentOS, on
possède une très bonne vue d’ensemble sur le sujet grâce à la lecture d’une quantité
volumineuse d’articles, de tutoriaux et de livres. Nous connaissons maintenant comment
utiliser le système d’exploitation CentOS et comment y configurer des services web. Nous
savons aussi à quoi sert chaque service et comment l’exploiter dans nos sites PHP.
Espérant que ce projet a atteint les objectifs demandés.
37
Références
i The Definitive Guide to CentOS Peter Membrey, Tim Verhoeven and Ralph Angenendt edition Apress.
ii http://www.centosadmin.net/pourquoi-centos.html
iii
http://apache.developpez.com/faq/faq-apache.pdf
iv http://dev.mysql.com/doc/refman/5.0/fr/what-is.html
v http://www.cyberciti.biz/faq/how-to-install-mysql-under-rhel/
vi http://www.linux-france.org/prj/edu/archinet/systeme/ch42s06.html
vii
http://www.aoddy.com/2007/12/12/how-to-install-phpmyadmin-2113-on-centos-5/
viii
http://www-igm.univ-mlv.fr/~dr/XPOSE2006/Charles_Daniel/presentation.html
ix
http://thedaneshproject.com/posts/how-to-install-webmin-on-centos-4/
x http://fr.wikipedia.org/wiki/Serveur_FTP
xi
http://www.cyberciti.biz/faq/rhel-centos-linux-install-ftp-server/
xii
http://technet.microsoft.com/fr-fr/library/cc730775.aspx
xiii
http://www.math-linux.com/spip.php?article17
xiv
http://www.croc-informatique.fr/2009/11/installer-openssh-v5-sur-centos-5/
xv http://wiki.brossault.org/doku.php/services/imap_pop/dovecot
xvi http://fr.wikipedia.org/wiki/Postfix
xvii
http://wiki.centos.org/HowTos/postfix