Avertissement
Je rappel que les tutoriels présentés doivent permettre de créer une infrastructure web dans un environnement de test, le plus proche possible d’un serveur de production se rapprochant d’un serveur mutualisé chez un hébergeur comme 1&1.
Cette infrastructure présente les bases de la configuration et ne possède aucun moyen de défense contre d’éventuelles intrusions.
Par conséquent, vous êtes seul responsable si vous vous contentez de suivre ce tutoriel pour une mise en ligne d’un serveur web sur internet avec un accès public.
Vous voilà averti, passons aux choses sérieuses.
Introduction
Ce tuto fait parti d’un ensemble qui conduit à créer une infrastructure de serveurs web avec différents rôles en utilisant VirtualBox : “[Tuto – Infrastructure Web – Debian 8] – Présentation et objectifs”.
L’objectif est de mettre en place dans votre vlan un serveur virtuel avec Apache.
Vous devez avoir suivi le « [Tuto – Infrastructure Web – Debian 8] – Le serveur proxy et reverse proxy » pour y intégrer cette VM.
MySQL sera hébergé sur un autre serveur et donc ne sera pas installé sur cette VM.
Cloner la machine gabarit
Dans ce tutoriel, je vais la nommer « jbnet-web01 » et lui attribuer une ip 192.168.2.10.
Lors de la création du proxy, nous avions utilisé l’ip 192.168.2.1 pour la carte eth1.
Cette ip sera utilisée comme passerelle (gateway) dans la configuration de la carte eth0 du serveur web.
Il vous faut tout d’abord cloner et configurer la machine gabarit préparée dans “[Tuto – Infrastructure Web – Debian 8] – La machine gabarit” puis dans “[Tuto – Infrastructure Web – Debian 8] – Cloner et préparer la machine gabarit“.
Pour mémo, voici le fichier /etc/network/interface.d/eth0.conf
1 2 3 4 5 6 7 8 9 |
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.2.10 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.1 dns-nameservers 109.0.66.10 109.0.66.20 |
La ligne dns-nameservers est paramétrée avec les DNS de chez SFR, mon FAI.
Vous pouvez changer ces valeurs par les vôtres.
Configuration de la VM
Avant de démarrer la VM « jbnet-web01 », il faut faire quelques ajustements dans sa configuration.
Pour la mémoire, 1024 Mo suffisent largement pour commencer.
Si possible, modifier le nombre de processeurs à 2.
Vous pourrez ajuster en fonction des besoins.
Dans « Réseau », vous devez avoir le mode d’accès réseau de la carte 1 positionnée sur « Réseau interne ».
Connexion SSH
Étant donné que la VM n’est pas sur le même réseau que vous, vous devrez d’abord vous connecter en SSH sur le proxy.
Puis, à partir du proxy, vous pourrez vous connecter à la VM « jbnet-web01 »
Commande pour se connecter en SSH à partir de la VM proxy :
1 |
command ssh jbnet-user@192.168.2.10 |
A la première connexion, vous devrez confirmer
Il ne vous reste plus qu’à vous connecter avec root avec la commande « su -« .
Pour fermer la session, utilisez la combinaison de touche « Ctrl+D », plusieurs fois si nécessaire.
Installer le serveur Web
L’installation d’Apache est identique à l’installation décrite sur le « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« .
A quelques exceptions prés…
Apache
Utilisons Apache, un serveur web très répandu bien que Nginx commence à bien faire parler de lui.
Je vais installer Apache MPM ITK, une variante d’Apache qui est multi-thread et surtout permet d’utiliser des UID et GID différents pour plus de sécurité.
1 |
command apt-get install apache2-mpm-itk |
Une fois l’installation terminée, vous pouvez tester votre serveur.
Editez votre fichier hosts et ajoutez (ou modifiez) cette ligne :
1 |
10.0.0.100 test.jbnet.lan |
Ouvrez un navigateur web, et utilisez cette adresse : http://test.jbnet.lan.
Puisque aucun site web du nom de test.jbnet.lan n’est déclaré sur notre tout nouveau serveur Apache, c’est donc le site par défaut qui est renvoyé.
Quelques modules à activer :
1 2 |
command a2enmod rewrite command a2enmod headers |
PHP
Nous allons utiliser PHP5-FPM qui permet d’exécuter des threads php indépendant d’un site web à l’autre avec des utilisateurs différents.
Pour pouvoir utiliser cette version de php, il faut ajouter le module Apache fatcgi :
1 2 3 |
command apt-get install libapache2-mod-fastcgi command a2enmod actions fastcgi command service apache2 restart |
Puis installons PHP5-FPM avec déjà des modules utiles pour la plupart des sites web :
1 |
command apt-get install php5-fpm php5-mysql php5-mcrypt php5-curl php5-gd php5-xsl php5-xmlrpc php5-imagick libgd-tools libmcrypt-dev mcrypt php-pear libgd2-xpm-dev php5-dev |
PHP5-FPM fonctionne avec des fichiers pool qui contiennent la configuration de PHP5-FPM pour un site donné.
Il faut un pool par site web.
Par défaut, le pool www.conf est créé dans le répertoire /etc/php5/fpm/pool.d.
Créez un fichier /var/www/html/phpinfo.php :
1 |
<?php phpinfo(); ?> |
Pour le moment, Apache n’a pas encore les directives pour transférer les fichiers php à PHP5-FPM qui les interprétera.
Donc si vous appelez le fichier dans votre navigateur vous aurez une page vide.
Éditez le fichier /etc/apache2/sites-enabled/000-default.conf et ajoutez ces lignes après « DocumentRoot »
1 2 3 4 5 6 7 8 9 10 11 |
<IfModule mod_fastcgi.c> AddType application/x-httpd-fastphp5 .php Action application/x-httpd-fastphp5 /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -idle-timeout 3600 -socket /var/run/php5-fpm.sock -pass-header Authorization ### Apache 2.4+ ### <Directory /usr/lib/cgi-bin> Require all granted </Directory> ### </IfModule> |
Relancez Apache et PHP5-FPM :
1 2 |
service php5-fpm restart service apache2 restart |
Rafraichissez votre navigateur :
PHP5-FPM fonctionne et qu’il est exécuté à partir du serveur jbnet-web01.
vsFTPd
vsFTPd permet d’avoir accès à votre serveur web par FTP.
Son installation est strictement identique à celle décrite dans le « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« .
Créer un hébergement web
Pour la création d’un hébergement web, je vous renvoies sur le paragraphe « Créer un hébergement web » du chapitre « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« .
N’hésitez pas à également jeter un œil sur les bonus.
Bonjour,
Besoin d’une aide concernant les tutos « [Tuto – Infrastructure Web – Debian 8] – Le serveur proxy et reverse proxy. et [Tuto – Infrastructure Web – Debian 8] – Le serveur de bases de données
J’ai suivi à la lettre le premier concernant le serveur proxy et reverse proxy, puis je suis maintenant arrivé à « le serveur web » ou je rencontre un soucis, je vous explique :
J’ai configuré ma carte eth0 comme suit : (ça c’est pour le serveur web)
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.10
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
dns-nameservers 192.168.1.20
Le fichier hosts du serveur web :
127.0.0.1 localhost
192.168.1.49 myboxweb01.mybox.lan myboxweb01
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Ensuite les fichiers du proxy et reverse proxy
Les cartes reseau :
ETH0:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.49
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
ETH1:
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
Et le fichier Host :
127.0.0.1 localhost
192.168.2.10 myboxweb01.mybox.lan
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
J’ai intallé apache2-mpm-itk, et quand je me connecte à l’adresse myboxweb01.mybox.lan, l’adresse est introuvable. La VM contenant le proxy et reverse-proxy est bien déclaré dans bind.
Maintenant, le serveur LAMP réalisé plutôt dans votre tuto n’est plus car j’ai pensé que les 2 parties suivante du tuto etaient la même chose avec le proxy en plus.
Si toutefois vous auriez une piste…
Merci à vous
Christian
Bonjour,
Désolé du temps passé…
Juste une question, pourquoi dans un cas il y a cette ip dans le host :
192.168.1.49 myboxweb01.mybox.lan myboxweb01
Et dans un autre :
192.168.2.10 myboxweb01.mybox.lan
Est-ce qu’à partir du proxy, si vous utilisez « wget http://myboxweb01.mybox.lan« , le fichier enregistré est correct ?
Si ce n’est pas le cas, il y a un prb entre le proxy et le serveur web.
Sinon, c’est du coté du proxy qu’il faut chercher l’erreur…