Académique Documents
Professionnel Documents
Culture Documents
Auteur
Fabrice POET-BENEVENT
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2006
Lui écrire
Tous les projets de cet auteur
Le mini-CV de cet auteur
Resume
Ce mémoire d’étude à pour objectif d’établir une procédure aussi complète que simplifié
afin de mettre en production un serveur Linux en PME, regroupant tout les éléments
nécessaires au fonctionnement d’une entreprise : Contrôleur de domaine, serveur de
fichiers, serveur de messagerie, webmail, serveur Intranet, Internet, serveur base de
données, etc, ...
Sommaire
Introduction
1 Aide au choix de la distribution
2 Préparation
o 2.1 Gestionnaire de package
o 2.2 Archivage
o 2.3 Utilisation des services
o 2.3 VI
3 Réseau
o 3.1 Configuration
o 3.2 Service DHCP
o 3.3 Service DNS
4 LAMP
o 4.1 Apache
o 4.2 PHP
o 4.3 MySQL
5 Messagerie
o 5.1 POSTFIX
o 5.2 Dovecot
o 5.3 Spamassassin
o 5.4 SquirrelMail
6 Contrôleur de domaine
o 6.1 Primary AD
o 6.1 Connection des stations
o 6.3 ClamAV
7 Administration et télémaintenance
o 7.1 SSH
o 7.2 FTP
o 7.3 Webmin
o 7.4 PHPSysInfo
8 Mémo
o 8.1 Commandes de bases
o 8.2 Gestion des utilisateurs
o 8.3 Informations Diverses
o 8.4 Alias et Bash
o 8.5 Cron
o 8.6 Arborescence
Conclusion
Introduction
Il est indéniable que la part de marché de l’Open-Source demeure croissant
depuis quelques années déjà. Alors que la distribution française Mandriva
enregistre ces premiers bénéfices positifs, les magasines faisant louanges de
distributions de plus en plus conviviales développent un certain impact auprès du
grand publique, mais également auprès des artisans, commerçants, chefs
d’entreprises TPE, PME, …
Microsoft Windows garde un certain monopole sur les stations de travails. Bien
implanté dans les mœurs des utilisateurs finaux, et pas seulement des plus
réticents avec l’informatique, Windows offre un certain confort et point de
référence notamment avec la suite originelle Office. Sur le terrain des serveurs,
Linux se fait néanmoins, doucement mais sûrement, une place au sein des RSI et
SSII. Plus que de simples excuses de benchmark (une TPE n’ayant pas les mêmes
besoins qu’un FAI) c’est surtout le goût de la gratuité qui pousse une catégorie de
clientèle à franchir le pas.
L’économie engendré par les licences de serveurs, parfois multiples (serveur Exchange,
serveur AD, ...) et de licences connections (CAL), font de Linux un concurrent frontal de
Windows Server. Avec une certaine accoutumance de l’OS, le déploiement ne prend pas
plus de temps qu’un SBS et permet souvent de récupérer l’investissement « licences » ...
Fedora Core 5
+ simple, accessible et efficace.
+ sponsorisé par Red-Hat (code source et savoir-faire repris) mais garde une certaine
autonomie (contrairement à Open Suse et Open Solaris !).
+ entièrement gratuit et débridé, pas de version payante.
+ déjà présent sur le marché des serveurs libre en entreprise.
- orienté workstation / poste clients (version serveur = Red Hat).
Open Suse
+ simplicité à l’image de Fedora et Mandriva.
+ bonne image professionnel (Suse / Novell).
+ projet prometteur et grandissant.
- orienté workstation / poste clients (version serveur = Suse Entreprise).
- pas complète certaines fonctionnalités doivent être téléchargés manuellement (ftp).
- pas entièrement libre (par ex : gestionnaire de Packages Yast).
Open Solaris
+ Utilisation d’une grande partie du code source Solaris v10 et même noyau Sun OS.
+ Prestige et savoir-faire de Sun Microsystem.
+ Issu du monde Unix/BSD mais exécute les binaires Linux.
- Éloigné du monde Linux, risque de certaines incompatibilités.
- Licence CDDL au lieu de GNU/GPL (Sun garde le contrôle des sources).
- Exclusivement sur plate-forme x86 et SPARC.
La décision finale sera laissé à l’appréciation des intéressés et/ou décideurs !
2 Préparation
Une fois l’installation effectué, il convient de se familiariser avec le système et notamment avec les
deux méthodes d’installation sous linux : le gestionnaire de package (téléchargement ET
installation de façon automatisé) ou selon les envies, les commandes de désarchivage (manuel).
Elles permettrons d’installer en ligne de commande, et donc sur la majorité des distributions, les
services serveurs décrits dans ce document.
Exemple :
Avec pour les différents services désirés, comme httpd pour apache, smb pour samba, etc… Il est à
noter que les packages les plus courant sont sous format RPM (Redhat Package Manager) devenu
un standard sauf Debian (.deb). Il est également possible d’installer un package sans passer par le
gestionnaire, et donc après un téléchargement manuel :
2.2 Archivage
Moins assisté qu’avec les gestionnaires de package, le mode archivage requiert de télécharger le
module et de l’installer manuellement.
gzip -d save.gz décompression
Les levels ou « run level » correspondant aux différents mode de démarrage de Linux : 0 arrêt ; 1
singleuser ; 2 normal (multi-user sans nfs) ; 3 mode texte (multi avec nfs) ; 4 non used ; 5 mode
graphique ; 6 reboot.
Quelques commandes utiles :
2.3 VI
Beaucoup de fichiers, et particulièrement les .conf, devront être modifier à la main. Vi est un
éditeur certes un peu rebutant, mais qui possède le très gros avantage d’être universel
unix/linux/bsd installé par défaut sur toutes les distributions aussi archaïque que récente. Il est
idéal de savoir travailler en lignes de commandes afin de faire abstraction de la quantité
d’interfaces graphiques existantes. De ce faite, passer d’un AIX /370 à une Lycoris, ne posera
aucun problème :)
3 Réseau
La première des manipulations consiste à mettre le serveur en ip fixe, afin de lui appliquer une
politique de PAT.
3.1 Configuration
vi /etc/sysconfig/network-scripts/ifcfg-eth0 sous Fedora/RH
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.10
NETMASK=255.255.255.0
NETWORKING=yes
HOSTNAME=serveur_linux
GATEWAY=192.168.0.254
vi /etc/dhcpd.conf
host serveur1 # permet de définir une ip fixe d’après une adresse mac
cat /etc/dhcpd.leases visualisation des inscriptions (bail début, fin, mac, uid,
réseau, ..)
forwarders {
193.252.19.3;
193.252.19.4;
};
4 LAMP
Quatuor de choque, le couple Linux/Apache/PHP/MySQL répond à beaucoup de besoins, internet et
intranet. Voyons en détails comment faire fonctionner l’ensemble.
4.1 Apache
apt-get install httpd ou yum install httpd installe apache 2.0
Quelques retouches sont à effectuer sous le fichier de configuration, sur des paramètres qui existe
déjà (attention à ne pas créer de doublons)
vi /etc/httpd/conf/httpd.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Le répertoire contenant le site se trouve sous /var/www/html/ d’où il suffit de créer un fichier index
pour y accéder
touch /var/www/html/index.html
vi /var/www/html/index.html
le résultat sera visible sous un navigateur Internet en local (http://localhost/) ou sur le réseau
4.2 PHP
apt-get install php5 ou yum install php5 installe la dernière version de php
Le fichier de configuration d’apache réclame d’être modifier une nouvelle fois, ceci afin de déclarer
les module php dans le serveur web, et d’appliquer les extentions .php pouvant être index.
/etc/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .php5 .inc
La manipulation est après avoir recharger les changements /etc/init.d/httpd restart et créer un
fichier php
touch /var/www/html/index.php
4.3 MySQL
Il existe de nombreuse base de donnée, des plus impressionnante comme Oracle au plus futile.
Bien que PostgreSQL prenne de l’ampleur, MySQL deumeure un bon compromis, et reste
majoritairement utilisé par les webmasters.
Afin d’exploiter au mieux la base, PHPMyAdmin offre une souplesse captivante. Pour l’installer il
suffit de télécharger manuellement le tar.gz correspondant à la dernière version de sur
www.phpmyadmin.net , puis le décompressez dans le répertoire web :
Mettre en place le fichier php de configuration par défaut, puis changer le mot de passe admin
définit à l’intérieur :
cp /phpmyadmin/libraries/config.default.php /phpmyadmin/config.inc.php
/etc/init.d/mysqld start
/etc/init.d/httpd restart
5 Messagerie
Quelle entreprise pourrai aujourd’hui se passer d’emails ? Même s’il est tout à faire possible
d’implémenter le protocole IMAP comme dans Microsoft Exchange, nous viserons la simplicité avec
Dovecot en POP3. Mais commençons tout d’abord par mettre en place le MX SMTP :
5.1 POSTFIX
L’incontournable Postfix permet de d’envoyer, recevoir et relayer les mails. Avant de l’installer il est
préférable de s’assurer que sendmail est désactiver :
vi /etc/postfix/main.cf
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
net_interfaces = all
telnet <serveur> 25
helo <serveur>
mail from:toto@serveur
rcpt to:toto@serveur
data
quit
- « Bad adress Syntax » -> mettre l’adresse par nom d’hôte toto@serveur et non par ip
toto@192.168.0.10
- « Relay Denied » -> vérifier le champ mynetworks (autorisation des réseaux pour l’envoi)
- l’envoi marche en local mais pas vers en extérieur -> vérifier que myhostname != mydomain
5.2 Dovecot
Postfix gère la transaction des emails (envois, réception), il faut un service à part afin de checker
les mails, c’est le rôle de Dovecot.
Le fichier de conf se trouve sous /etc/ mais rien de particulier n’est à modifier sauf pour faire du
IMAP :
vi /etc/dovecot.conf
list
quit
. select inbox
. logout
A note que sur si boite est vide, Dovecot acceptera le login quelque soit le mot de passe ; Pour
remédier à ça il suffit d’envoyer un mail de bienvenue. Envoyer bien le mail à l’adresse
user@domain et non user@hostname, sinon le mail n’arrivera pas à destination. Enfin pour
reçevoir du mails d’internet, renseigner les DNS à l’adresse du fai et non du DNS local.
5.3 Spamassassin
Le Spam est devenu un tel fléau pour les utilisateurs qu’ils deviens indispensable de s’en protéger.
Spamassassin permet de filtrer le spam directement sur le serveur et évite le déploiement
d’antispam sur les stations. Après installation, il suffit de le lancer :
/etc/init.d/spamassassin start
Puis de le configurer :
vi /etc/mail/spamassassin/local.cf
whitelist_from ...
5.4 SquirrelMail
Pour une utilisation nomade, le webmail est un outil fort commode. SquirrelMail répond très
simplement et efficacement à cette demande :
cp -r /usr/share/squirrelmail/ /var/www/html/webmail/
cp -r /etc/squirrelmail/ /var/www/html/webmail/config/
lancer le script qui après configuration, un génère config.php valide. La configuration du script
(perl) se présente sous forme d’un menu de 10 commandes :
1) config du domaine
2) config du serveur
3) config smtp/imap
4) …
Pour le lancer :
cd /var/www/html/webmail/config/
/etc/init.d/httpd restart
http://serveur/webmail
6 Contrôleur de domaine
6.1 Primary AD
Installer samba par gestionnaire de package (yum, apt, ...), ou par compilation ..
cat /etc/passwd | mksmbpasswd.sh > smbpasswd création d’un fichier passwd pour
samba
useradd –g pcs –d /dev/null/ -s /dev/null PCADMIN$ ajout les machines, mdp vide
smbpasswd –a –m PCADMIN
éditer le .conf
vi /etc/samba/smb.conf
[global]
security = user
os level = 255
share modes = No
case sensitive = No
dns proxy = No
[netlogon]
path = /home/ad/netlogon
writable = No
browseable = No
[profile]
path = /home/ad/profile
browseable = No
writeable = Yes
##partages##
[homes]
browseable = No
writeable = Yes
[public]
path = /home/toto/partage
public = no
read only = no
writeable = yes
path = /var/www/html
public = no
read only = no
writeable = yes
guest ok = no
printable = no
Avant de lancer samba, il existe une commande afin de s’assurer que le fichier de configuration ne comporte pas
d’anomalies :
testparm
/etc/init.d/smb start
Propriété du « Poste de travail »
Rentrer les identifiants root de samba (mot de passe root du smbpasswd) et mettre le domaine du
serveur linux (paramètre workgroup dans smb.conf).
Une fois terminé, vous devez redémarrer votre ordinateur pour que les modifications soient prises
en compte. Il convient ensuite de créer d’autres comptes utilisateurs normaux.
smbpasswd –a webmaster
smbpasswd –a –m PCWEBMASTER
etc…
userdel toto
smbpasswd –x toto
Ensuite sur les stations correspondantes, pour cela au redémarrage de la station, se mettre en root
dans le domaine linux, puis « Gérer » sur Poste de travail. Allez dans Gestion de l’ordinateur (local)
> Outils système > Utilisateurs et groupes locaux > Groupes
Rentrer dans les propriétés du groupe Utilisateurs (ou Utilisateurs avec pouvoir)
Parcourir le domaine linux et ajouter les utilisateurs devants être connecté (normalement tous).
OK , Appliquer et Fermer
Remarques :
- Cela ne fonctionne qu’avec des stations NT4 SP4 mini, 2000 et XP (pas de 9x/Me).
- Lorsqu’un problème apparaît avec XP SP2 au momment de rentrer sur le domaine, modifier la clé
de registre avec regedit :
HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Services>Netlogon>Parameters
et mettre requiresignorseal à 0.
- Noter que si un utilisateur samba n’a pas de répertoire déclaré dans smb.conf, il tombe par
défaut sur son répertoire home.
- La gestion ici développé sous smbpasswd, peut-être plus poussé et utiliser des bases de données,
tdb, ldap, ...
6.3 ClamAV
Afin de chercher les bonnes mise à jours, modifier le fichier freshclam.conf ou clamd.conf (selon
la distribution) et mettre :
# DatabaseMirror db.XX.clamav.net
DatabaseMirror db.fr.clamav.net
Pour effectuer une mise à jour des définitions de virus :
freshclam
clamscan –r –i /home/user
7 Administration et télémaintenance
7.1 SSH
Remplaçant de l’historique Telnet, SSH offre une prise en main directe sur le serveur au moyen
d’un canal sécurisé. L’installer, si ce n’est pas déjà fait par défaut, se révèle extrêmement facile :
$login_de_lutilisateur
$motdepasse_de_lutilisateur
$exit
Résolutions de problèmes courants :
si un problème de type "erreur id" apparaît à la connexion faire un chmod a+r /etc/group
7.2 FTP
Spécialement étudier pour le transfert de fichier, FTP peut-être employer par les utilisateurs pour
travailler les gros fichiers entre différents sites.
/etc/init.d/vsftpd start démarrage
ftp> login_de_lutilisateur
motdepasse_de_lutilisateur
ftp>dir
ftp>bye
7.3 Webmin
Prérequis : apache et perl d’installés.
Webmin (port 10000) est une interface conviviale et pratique pour rapidement effectuer des
changements. Différents droits peuvent même être établis afin de définir plusieurs niveaux
d’administration à des utilisateurs (ou administrateurs).
7.4 PHPSysInfo
Prérequis : apache, php
Module php, qui affice une foule d’information sur l’état du système et de ses périphériques.
cp /var/www/html/phpsysinfo/config.php.new
/var/www/html/phpsysinfo/config.php
Donne l’affichage :
http://localhost/phpsysinfo
8 Mémo
8.1 Commandes de bases
ls -al affiche répertorie courant (-l info -a all)
mv <fichier> <fichier> renomme
find / -name <fichier> recherche d'un fichier à partir de la racine
xterm lance un terminal
/etc/group name:reserve:GID:menber
groupdel efface un groupe
whoami qui suis-je
id quel id et groupe
exit
date affiche la date
p='pwd'
redirection :
stdin « entrée » <
variable d’environnement :
export VARIABLE=moi créer une variable
Scripts :
touch /home/user/test_script.sh
#!/bin/bash
if [ ! -e "/oracle" ]
fi
read reponse
8.5 Cron
8.6 Arborescence
/ racine ou root
/tmp fichiers temporaires
|-> /usr/man manuels
Conclusion
Voici donc la fin de ce tutorial, certes non-exhaustif et volontairement limité à l’essentiel, mais
illustrés d’exemples concrets et de réelles problématiques résolues. Le domaine d’étude étant vaste
et les besoins parfois spécifiques, il est dure de tout prévoir dans une unique procédure pré-
formater.
Cependant démonstration est faite que le choix existe, seule la volonté du client, accompagné du
prestataire ou de sa DSI, le déterminera ; différentes technologies peuvent se superposer et
permettre une variété de solutions, même dans les plus petites entreprises.