NIS / LDAP
Virtualisation
Apache – serveurs virtuels
- Luiz Angelo STEFFENEL -
ASI – Master M2 ASR
Organisation des Cours
Mécanismes d'authentification centralisée
NIS LDAP
La Virtualisation
Configuration de serveurs virtuels avec Apache
Organisation des Cours
Mécanismes d'authentification centralisée
NIS LDAP
La Virtualisation
Configuration de serveurs virtuels avec Apache
Les Serveurs NIS
Base de données
Inventé par Sun Microsystems en 1985 Commune à un réseau
Dépendant d’un domaine NIS ( ≠ domaine DNS ) Organisée en « cartes » ( maps )
Ensembles thématiques 1 ligne 1 entrée 1 clé
Accès au service :
Utilise les RPC
Principalement sous Unix
Configuration du NIS
Les démons nécessaires :
ypbind yptools
Le fichier /etc/yp.conf
# Valid entries are
#
#domain NISDOMAIN server HOSTNAME
# Use server HOSTNAME for the domain NISDOMAIN.
#domain NISDOMAIN broadcast
# Use broadcast on the local net for domain NISDOMAIN
#ypserver HOSTNAME
# Use server HOSTNAME for the local domain. The
# IP-address of server must be listed in /etc/hosts.
#
domain urca broadcast
Configuration du serveur
Les démons nécessaires :
ypserv : le serveur NIS
ypxfrd : transfère les infos à un serveur miroir (ypxfr) yppush : transfère les infos à tous les serveurs miroirs
Lecture de fichiers du serveur
Au format DBM
Dans un répertoire spécial
/var/yp/nom_de_domaine/
/etc/yp/nom_de_domaine/
…
1 carte Plusieurs fichiers créés par makedbm Carte.dbm : l’index de la carte (binaire)
Carte.dir : les clés contenues dans la carte
Carte.pag : les endroits où sont stockés les données
Cartes disponibles En général
hosts : Liste de machines
IP nom_long nom_court
aliases : Liste de publipostage
Format dépend du logiciel de courrier
passwd : Liste d’informations utilisateurs
login:mot_de_passe:UID:GID:nom_complet:home_directory:shell login : identifiant UNIX
mot_de_passe : sous forme criptée
UID,GID : Numéros d’utilisateur et de groupe nom_complet : ex « Pierre Petit »
home_directory : chemin UNIX du répertoire personnel shell : chemin UNIX du shell utilisé par défaut
Les commandes NIS
ypwhich
Affiche le nom du domaine NIS
ypcat
-x : Affiche la liste des cartes disponibles
<nom> : Affiche le contenu de la carte <nom>
ypmatch
-x : Affiche la liste des cartes disponibles
<clé> <carte> : Affiche l’entrée <clé> de la carte <carte>
Exemple :
ypcat –x
Use "ethers" for map "ethers.byname"
Use "aliases" for map "mail.aliases"
Use "services" for map "services.byname"
Use "protocols" for map "protocols.bynumber"
Use "hosts" for map "hosts.byname"
Use "networks" for map "networks.byaddr"
Use "group" for map "group.byname"
Use "passwd" for map "passwd.byname"
Exemple 2
ypcat protocols
udp 17 UDP pup 12 PUP igp 9 IGP egp 8 EFG tcp 6 TCP ipinip 4 IPinIP ggp 3 GGP igmp 2 IGMP icmp 1 ICMP ip 0 IP
ypcat services
rqlaser 15000/tcp
compost 6604/tcp
minitel 4147/tcp
sbatchd 3882/tcp
pop3s 995/udp pop3
imaps 993/tcp
DAServer 987/tcp
remotefs 556/tcp rfs_server
new-rwho 550/udp new-who
talk 517/udp
netbios-ns 137/udp
nntp 119/tcp usenet
pop3 110/tcp postoffice
hostnames 101/tcp hostname
http 80/tcp
ftp 21/tcp
…
Exemple 3
ypcat ethers
08:00:20:21:a2:02 doggett.maboite.fr 00:02:a5:fc:cf:e7 mulder.maboite.fr 00:b0:d0:15:26:2d monica.maboite.fr 00:02:a5:a9:8f:95 skinner.maboite.fr 00:80:c8:4c:90:f1 scully.maboite.fr
…
ypcat passwd | grep damaris
damaris:ErkrA6BpYm1OU:32817:129:Damaris K P:/users/maia/damaris:/bin/tcsh
Organisation des Cours
Mécanismes d'authentification centralisée
NIS LDAP
La Virtualisation
Configuration de serveurs virtuels avec Apache
Historique
●
Annuaire : ouvrage publié chaque année, donnant la liste de membres d'une profession, des abonnés à un service, etc.
●
ex : Annuaire téléphonique
●
Annuaire éléctronique
●
liste d'informations stockés dans un type de base de données
●
organisation hiérarchique
●
mécanismes simples de recherche et de tri selon des critères variables
●
ex : annuaire de l'université
Historique
●
Le service d'annuaire X.500
●
conçu en 1988 par des opérateurs télécom
●
objectif : interconnecter et unifier tout type d'annuaire
●
protocole DAP (Directory Access Protocol)
●
problème : X.500 basé sur protocoles OSI (!!!)
●
1993 : version plus légère du protocole DAP adaptée aux réseaux TCP/IP
●
LDAP (Lightweight Directory Access Protocol)
Caractéristiques des Annuaires Électroniques
Dynamisme – mises à jour simples et quotidiennes
les utilisateurs peuvent mettre à jour leurs propres données
Souplesse – l'organisation des entrées permet l'indexation avec des critères multiples
Sûreté – les annuaires en ligne disposent de mécanismes d'authentification et de règles d'accès
limite la portée des modifications des utilisateurs
réglemente l'interconnexion avec d'autres annuaires
Répartition – les annuaires peuvent être utilisés seuls
(standalone) ou liés dans une arbre global
Annuaires vs. Bases de Données
Annuaire
système léger
optimisé pour la lecture organisation en arbre
services spécifiques pour la recherche
d'informations
permet la répartition et la coopération entre
différents annuaires
Base de Données
système complet
optimisation dynamique organisation relationnelle (tabulaire)
ensemble complet de services pour la gestion des données généralement centralisé
Le Protocole LDAP
Protocole d'accès à un annuaire
Norme qui définit l'échange de données entre clients et serveur
modèle d'information modèle de nommage modèle fonctionnel (API)
modèle de sécurité (crypto SSL ou TLS, auth. SASL, ...)
Définit aussi l'échange de données entre serveurs qui coopèrent
duplication/synchronisation hiérarchie de serveurs
Le serveur open source OpenLDAP
Contient :
Serveur indépendant (slapd) et serveur de réplication (slurpd) Bibliothèques de connexion (libldap, liblber)
Commandes LDAP (ldapsearch, ldapadd, ldapmodify, ldapdelete, …) Commandes de gestion du contenu (slapadd, slapcat, slapindex, …) API (C, C++, TCL, Java)
Supporte :
LDAPv2 et LDAPv3
Réplication complète et différentielle Délégation d’authentification
Internationalisation UTF-8 via Unicode
Le modèle d'information
Le modèle d'information LDAP définit le type de données qui peuvent être stockés dans l'annuaire LDAP (le schéma)
il définit aussi les règles pour comparer les attributs
Chaque entrée correspond à un objet (abstrait ou réel)
une entrée est composée par plusieurs objets
Exemple
Type d'attribut valeur de l'attribut
cn: Yves Martin
uid: ymartin
telephonenumber: 326000000
mail: ymartin@mail.com
Le modèle d'information
Les types de donnée
binary – données binaires (images, video, fichiers, ...) boolean – attribut constitué d'un bit (vrai ou faux)
integer – valeur entier
directory string – chaîne de caractères
dn – pointeur vers un objet de l'annuaire (distinguished name)
Quelques règles de comparaison
cis (caseIgnoreMatch) – attribut texte non sensible à la casse
ces (caseExactMatch) – attribut texte sensible à la casse dn (distinguishedName) – compare deux entrées
Le modèle d'information
Heureusement, il y a une liste d'attributs utilisateurs déjà établie (définie dans des schémas)
c – code du pays (en deux lettres) o – organisation
ou – unité organisationnelle (section, département, ...) cn – nom de l'objet (common name, nom d'usage)
givenName – prénom sn – nom de famille
uid – identifiant unique de l'objet mail – adresse email
...
Le modèle d'information
Les classes d'objets - possibilité d'établir une structure commune pour les objets
classes abstraites – classes qui peuvent uniquement être hérités
classes structurelles – classes instanciables
classes auxiliaires – classes qui permettent l'ajout d'attributs facultatifs aux classes structurelles
Exemple : les attributs sont définis par
un nom unique - un indicateur d'usage un Object Identifier unique - un format ou limite de taille
une syntaxe et des règles de comparaison
Le format d'échange de données LDIF
Les données dans LDAP sont stockés dans un format « non texte »
Afin de rendre plus facile l'échange de données, LDAP définit un format texte pour l'import/l'export des données
la syntaxe est la suivante : [<id>]
dn: <distinguished name>
<attribut> : <valeur>
<attribut> : <valeur>
...
Le modèle de nommage
Les objets LDAP sont classés hiérarchiquement Les entrées sont classées dans un arbre
Il existe un objet particulier (rootDSE) qui décrit l'arbre
FR
sociétéA sociétéB
Direction Département1 Département1
division1 division2 division1
personne1 personne2 personne1 personne2 (C)
(O) (OU1) (OU2) (CN)
La localisation des entrées
Un objet peut être adressé de deux façons :
par son nom rélatif (RDN – Relative Distinguished Name) par son nom absolu (DN – Distinguished Name)
Le nom relatif est composé d'un ou plusieurs paires clé/valeur
un objet ne doit posséder qu'un seul RDN
le RDN doit être un nom unique dans la branche de l'objet un RDN peut être multivalué (plusieurs paires clé/valeur)
Il est important de rendre les attributs d'un RDN obligatoires
La localisation des entrées
Le DN contient le RDN d'un objet associé à l'ensemble des noms relatifs des entrées parentes
Un DN permet de repérer une entrée de manière unique Exemple :
uid (user id)
o (organization)
ou (organization unit) cn (common name) mail
...
DN - uid=steff01,cn=steffenel,o=univ-reims, mail=xxx@xxxx
RDN - uid=steffe01
Le modèle fonctionnel
LDAP proose une API avec des fonctions pour l'accès et la modification des entrées dans la base
Bind/Unbind – connexion/déconnexion d'une session LDAP Add – ajoute une entrée au répertoire
Delete – supprime une entrée
Rename – modifie le nom d'une entrée Search – effectue une recherche
Compare – compare les entrées selon des critères
Abandon – abandonne l'opération précédemment envoyé
Modes d'installation
Depuis les paquets de la distribution Linux :
RedHat, Fedora Core et RHES :
Obligatoires : openldap-2.3.X.rpm (librairies obligatoires)
À installer : openldap-servers-2.3.X.rpm et openldap-clients-2.3.X.rpm
Debian, Ubuntu :
Obligatoires : libldap2
À installer : slapd, ldap-utils
Toutefois les choix de compilation sont imposés ce qui peut ne pas convenir à la maîtrise nécessaire à ce type de composant essentiel !
Depuis les sources :
Besoin des outils de compilation C (autoconf, make, gcc) Besoin des bibliothèques (fichiers .h) des produits tiers
Pré-requis à l'installation
Avant de lancer la configuration des sources, il faut déterminer :
Le format de stockage (backend) Les fonctionnalités (overlays)
Le modèle de sécurité (SSL/TLS, SASL)
L’architecture des annuaires (classique ou multimaîtres)
Et pré-installer les bibliothèques correspondantes :
SASL : cyrus-sasl
SSL/TLS : OpenSSL ou GnuTLS
Backend BDB, HDB : BerkeleyDB 4.2, 4.4 ou 4.5 (pas la 4.3 !) Backend SQL : UnixODBC
Installation de BerkeleyDB par les sources
Télécharger une version de BerkeleyDB depuis le site et les correctifs associés :
http://www.oracle.com/technology/software/products/berkeley- db/index.html
Désarchiver et appliquer les correctifs
Détermination automatique de la configuration locale :
cd db-4.x.y/build_unix ../dist/configure
Calcul des dépendances, compilation et installation :
make depend && make sudo make install
Le répertoire d’installation par défaut est :
Installation d'OpenLDAP par les sources
Télécharger la dernière version depuis le site :
wget –c ftp://ftp.openldap.org/pub/OpenLDAP/openldap- release/openldap-2.3.35.tgz
Désarchiver : tar xzf openldap-2.3.35.tgz Regarder les options disponibles :
cd openldap-2.3.35/
./configure --help
Si besoin, indiquer l'emplacement des produits tiers :
export CPPFLAGS=‘‘-I/usr/local/BerkeleyDB.4.x/include’’
export LDFLAGS=‘‘-L/usr/local/BerkeleyDB.4.x/lib -R /usr/local/BerkeleyDB.4.x/lib’’
export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.4.x/lib
Installation d'OpenLDAP par les sources
Indiquer les options (dont le répertoire d'installation) :
./configure --enable-bdb --with-tls --without-cyrus-sasl -- prefix=/opt/openldap --enable-monitor --enable-overlays
Calcul des dépendances et compilation :
make depend && make
Passage des tests (optionnel) :
make test
Installation :
sudo make install
Installation sous Debian
Utilisation du serveur OpenLDAP Installation des packages Debian
apt-get install slapd ldap-utils
Configuration du serveur
éditer le fichier /etc/ldap/slapd.conf
choisir le système de base de données à utiliser
database bdb
définir la racine de l'arbre
suffix "dc=mondomaine,dc=org"
Installation sous Debian
créer « l'objet » administrateur et son mot de passe rootdn "cn=admin,dc=mondomaine,dc=org"
rootpw secret
–
astuce : utiliser
slappasswdpour créer un mot de passe chiffré
●
ex:
$ slappasswdNew password: *******
Re-enter new password: *******
{SSHA}5R8i8cDhTs+UsIEmyYED11AoG64x6MQ4
–
modifier toute autre ligne « dn » qui définit les droits de l'administrateur de la base
–
reinitialiser ldap -> /etc/init.d/slapd restart
Fichiers de configuration
Fichier principal de configuration du serveur :
$prefix/etc/openldap/slapd.conf
Configuration (optimisation) de BerkeleyDB :
$prefix/var/openldap-data/DB_CONFIG
Fichier de configuration des clients :
$prefix/etc/openldap/ldap.conf
Localisation des fichiers schémas :
$prefix/etc/openldap/schema/
Manuel intégré :
man -M $prefix/man slapd.conf
Création d'un carnet d'adresses
Pour créer une base, il faut définir la structure de la base Nous allons utiliser un fichier texte (ossature.ldif) dans le format LDIF
Le fichier LDIF doit définir la racine de l'arbre
# D'abord, la racine de la base LDAP dn: dc=mondomaine,dc=org
objectClass: top
objectClass: dcObject objectClass: organization dc: mondomaine
o: mondomaine
description: mon carnet d'adresses
Création d'un carnet d'adresses
Ensuite, l'arborescence de l'arbre
# La structure où je trouve mes contacts dn: ou=contacts,dc=mondomaine,dc=org ou: contacts
objectClass: top
objectClass: organizationalUnit
description: La structure où je trouve mes contacts
Finalement, l'administrateur
#La definition de l'administrateur
dn: cn=admin,dc=mondomaine,dc=org objectClass: organizationalRole
objectClass: simpleSecurityObject cn: admin
description: administrateur LDAP
Remplir la base de données
Dans le cas de notre carnet d'adresses, nous allons utiliser les attributs définis par défaut dans le fichier
/etc/ldap/slapd.conf
include /etc/ldap/schema/xxxx.schema
Nous allons utiliser, par exemple, les champs suivants :
sn – nom de famille (surname) gn – prénom (given name)
o – organisation telephoneNumber postalAddress
postalCode mail
Remplir la base de données
Créer un fichier contacts.ldif
dn: cn=Florent Pepin,dc=mondomaine,dc=org objectClass: top
objectClass: person
objectClass: organizationalPerson objectClass: inetOrgPerson
cn: Florent Pepin gn: Florent
sn: Pepin
o: Université de Paris XXV
telephoneNumber: 0101010101 postalAddress: 10 rue des Pepins postalCode: 75999
mail: fpepin@paris15.fr
description: un collègue à Paris
Rajouter tout à la base
Procédure « standard »
ldapadd -x -W -D "cn=admin,dc=mondomaine,dc=org" -f fichiers.ldif
rédemarrer la base de données
/etc/init.d/slapd restart
vérifier les entrées
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts liste tous les objets dans la base
ldapsearch -x -b 'dc=mondomaine,dc=org' '(objectclass=*)' liste tous les objets appartenant à la branche
mondomaine.org
Quelques clients LDAP
ldapsearch
déjà utilisé pour vérifier la base
gq
outil linux pour naviguer l'arbre LDAP
phpLDAPadmin
interface php pour naviguer
votre messagerie favourite
thunderbird, exchange
OpenOffice
Exemples d'utilisation
Carnet d'adresses (bien sûr)
Contrôle du parc informatique (MACs, IPs, etc.)
Authentification unique dans un réseau Linux+Windows
remplace NIS
à faire avec beaucoup de précaution
incompatibilités au niveau des algorithmes de crypto modification des chemins de recherche et des services d'authentification (PAM)
http://www.openldap.org/doc/admin23/quickstart.html http://home.subnet.at/~max/ldap
http://moduli.net/sysadmin/sarge-ldap-auth-howto.html
Organisation des Cours
Mécanismes d'authentification centralisée
NIS LDAP
La Virtualisation
Configuration de serveurs virtuels avec Apache
En informatique, on appelle virtualisation l'ensemble des
techniques matérielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine plusieurs systèmes
d'exploitation et/ou plusieurs applications, séparément les uns des autres, comme s'ils fonctionnaient sur des machines physiques
distinctes
Principe : Abstraction des ressources matérielles
Virtualisation Partielle Virtualisation Totale
Virtualisation au niveau du système d'exploitation Virtualisation des Applications (Émulation)
Virtualisation
Processeurs en général sous utilisés :
Charge moyenne d'un processeur comprise entre 9 et 12%, peu d’IO sur les services
Banalisation des processeurs dual-core et quadri-core et des unités multiprocesseurs
Partage du matériel d'une machine par plusieurs systèmes d’exploitation indépendants (isolés, encapsulés)
Répondre aux contraintes de sécurité (séparation des services, isolation)
Répondre aux « nouveaux » besoins de maintenance (administration, déploiement, amélioration de la qualité)
Répondre aux besoins de tests, expérimentations, délégation
Tout en stabilisant ta taille du parc informatique et les coûts associés.
Virtualisation
• Simulation partielle d'une partie du matériel
• Approche différente de la virtualisation actuelle
• Des limitations pour l'exécution des logiciels ont conduit à des approches de Virtualisation Totale
Virtualisation Partielle
Implementée la première fois en 1967 - IBM CP40(VM) Simulation totale du matériel d'un hôte
Impossible de différentier par rapport à une machine réelle
Originalement dédiée à la création de terminaux avec séparation des environnements
Sur les plate-forme x86, on n'atteigne la virtualisation totale qu'au milieu de l'année 2006
Tous les “standards” actuels pour la virtualisation suivent l'approche de la virtualisation totale
les machines virtuelles par définition ne peuvent pas rompre l'isolation de la machine virtuelle
Virtualisation Totale
Création de “Conteneurs”
Permettent l'isolation d'une partie du système
Exemples
Chroot linux) OpenVZ
Parallels Virtuozzo FreeBSD Jail
Virtualisation au niveau du système d'exploitation
Probablement la virtualisation la plus connue
Environnements développés pour exécuter des applications appartenant à d'autres plate-formes (jeux d'instruction)
Exemples
jouer à des ROMs Super Nintendo sur un PC jouer à des jeux Atari sur la Wii
Emulation
Exemples
Parallels Desktop for Mac Parallels Workstation
VMware Fusion
VMware Player/Workstation Installer VMWare sur votre machine :
http://cosy.univ-reims.fr/
~lsteffenel/
Virtualisation des Desktops
Organisation des Cours
Mécanismes d'authentification centralisée
NIS LDAP
La Virtualisation
Configuration de serveurs virtuels avec Apache
Motivations
●
Pourquoi Apache est devenu un standard ?
●
Coût nul
●
Code source disponible et modifiable
●
www.apache.org
●
Structuration modulaire
●
modules pour php, LDAP, sécurité, authentification, etc.
●
Stabilité et performance
●
la moitié des sites internet utilise Apache
●
Autre avantage : gestion des hôtes virtuels
Exigences
Le type d'ordinateur (puissance) dépend surtout du type de page- web qui sera hébergée
Exigences conséquentes de mémoire et vitesse d'accès au disque pour rendre l'accès aux pages plus rapide
Une bonne connexion internet
Une machine dédiée « SERVEUR INTERNET »
LE PLUS IMPORTANT !
Sécurité -> une machine ouverte sur l'Internet est très exposée à des attaques
Performance -> le partage avec d'autres applications et utilisateurs peut conduire à des pertes de performance
APACHE
Le serveur Apache 2 répond actuellement pour environ 50% des sites web existants (les valeurs varient selon les sources)
Serveur web de code source ouvert (open source)
opérations très optimisées
intégration facile de modules divers (php, ajax, tomcat) sécurité : les failles sont corrigées très rapidement
Trois modes « multiprocessus »
prefork – non threadé worker – threadé
répond à la charge en variant le nombre de processus
perchild – threadé
APACHE – Installation sous Ubuntu
apt-get install apache2-mpm-prefork
ou apt-get install apache2-mpm-worker ou apt-get install apache2-mpm-perchild
daemon : apache2
port 80 (http) port 443 (https)
script de démarrage : apache2
/etc/init.d/apache2 start
Configuration de Base
Lancer le serveur Apache
/etc/init.d/apache2 start
Vérifier que Apache tourne correctement
ps -aux | grep httpd (vérifie si le serveur a été chargé)
naviguer sur http://localhost (affiche une page si correct) le répertoire par défaut des fichiers est /var/www/
Recharger les fichiers de configuration (après modification)
/etc/init.d/apache2 reload
Arrêter le serveur
Configuration
/etc/apache2/apache2.conf
Autres fichiers et répertoires utilisés (sous /etc/apache2)
httpd.conf ports.conf conf.d/
mods-available mods-enabled/
sites-available/
sites-enabled/
proxy-conf
Édition du fichier apache2.conf
À l'aide de votre éditeur préféré (vi, nano, etc.), ouvrir le fichier /etc/apache2/apache2.conf
On y trouve notamment :
utilisateur et groupe qui « tournent » le serveur apache
User www-data Group www-data
les fichiers par défaut (chargés sans qu'on donne leurs noms) DirectoryIndex index.html index.php index.xhtml
le répertoire par défaut des pages des utilisateurs (décommenter)
# UserDir public_html
Édition du fichier apache2.conf
Le journal des erreurs
ErrorLog /var/log/apache2/error.log
Le fichier à afficher en cas d'erreur
ErrorDocument
Une sortie formatée des connections
CustomLog
Le fichier où sont définies les portes d'écoute
# Include ports listing
Include /etc/apache2/ports.conf
Les Serveurs
Virtuels
Motivation
Il est courant d'héberger des dizaines de sites dans un seul serveur. Parfois, ces sites ont des adresses différents (site-1.cpnv.com, mars.ouaga.fr, ...)
Lorsque les requêtes HTTP atteignent notre serveur http, celui-ci va regarder dans ses règles afin de trouver dans quel répertoire il doit se diriger. C'est là que la gestion des virtualhosts va intervenir.
Également, la réponse doit inclure dans l'en-tête http l'adresse virtuelle initialement demandée.
En conséquence, nous créerons une entrée pour chaque
site hébergé sur notre serveur. Cette entrée contiendra le
domaine prévu, et le répertoire de redirection.
Configuration
Prenons par exemple deux sites, test1.com et test2.com Nous alons créer un répertoire pour chaque site sous /var/www
/var/www/test1 /var/www/test2
Pour chaque site nous allons créer un fichier de
configuration sous le répertoire /etc/apache2/sites-
available
Fichier de configuration pour test1.com
<VirtualHost *>
ServerAdmin postmaster@test1.com ServerName www.test1.com
ServerAlias test1.com *.test1.com DocumentRoot /var/www/test1/page <Directory /var/www/test1/page>
Options -Indexes FollowSymLinks MultiViews AllowOverride All
</Directory>
ErrorLog /var/www/test1/error.log
ErrorDocument 404 /var/www/test1/erreur.html LogLevel warn
CustomLog /var/www/test1/logs/access.log combined ServerSignature Off
</VirtualHost>
Configuration
On sauvegarde et on ferme les fichiers.
Pour disponibiliser le domaine nous faisons un lien symbolique dans le répertoire sites-enabled :
ln -s /etc/apache2/sites-available/test1.com /etc/apache2/sites-enabled/test1.com
On redémare apache2 :
/etc/init.d/apache2 restart
Et on peut accéder à notre répertoire :
http://www.test1.com/