Tutoriels linux > Installer un Reverse Proxy >

Installer un Reverse Proxy


Description:

Dans cet article nous verrons comment ouvrir de façon sécurisé un serveur web interne.


Distribution: Debian Lenny

Proxy: Apache2

1. L'interêt du reverse proxy?

Imaginer dans votre LAN un serveur WEB, que vous désirez ouvrir à l'exterieur. Vous avez la possibilité de le déplacé dans une DMZ, mais, mieux vous pouvez le laisser en interne et  installer un Reverse Proxy qui permettra de faire l'intermédiaire entre votre LAN et Internet et que vous pourrez placer dans une DMZ. Le serveur ne fera qu'un relais des requetes http ou https, vers votre LAN. Cela peut être intérresant dans le cadre d'un webmail, par exemple.

Nous allons donc mettre en place une plateforme web sécurisée SSL, qui renverra vers un serveur web local.

 

 

Exemple d'architecture:

schéma

 

2. Installation

A) Configuration IP

# vim /etc/network/interfaces


Fichier: /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254


Une fois fichier renseigné, redemarré le serveur par la commande suivante:


# reboot


Vous pourrez vérifier le bon fonctionnement de vos modification avec la commande suivante:


# ifconfig

 

eth0      Link encap:Ethernet  HWaddr 00:0c:XX:4a:fe:XX

          inet adr:192.168.1.1  Bcast:192.168.1.1 Masque:255.255.255.0

 

B) Apache2

Téléchargement et installation 

# apt-get install apache2

Démarrage du serveur

# /etc/init.d/apache2 start

 

Starting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

 

Vérification, du lancement 

# ps -edf | grep apache2

 

root      2904     1  0 07:40 ?        00:00:03 /usr/sbin/apache2 -k start

www-data  2938  2904  0 07:40 ?        00:00:00 /usr/sbin/apache2 -k start

www-data  3699  2904  0 18:13 ?        00:00:00 /usr/sbin/apache2 -k start

root      3788  3695  0 18:21 pts/2    00:00:00 grep apache2

 

C) Installation des modules apache2

Quatre modules apache doivent être activés pour ce serveur:

# a2enmod proxy

 

Enabling module proxy.

Run '/etc/init.d/apache2 restart' to activate new configuration!

 

# a2enmod proxy_http

 

Enabling module proxy_http.

Run '/etc/init.d/apache2 restart' to activate new configuration!

 

# a2enmod ssl

 

Enabling module ssl.

See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates.

Run '/etc/init.d/apache2 restart' to activate new configuration!

 

# a2enmod rewrite

 

Enabling module rewrite.

Run '/etc/init.d/apache2 restart' to activate new configuration!

 

# /etc/init.d/apache2 restart

 

On peut vérifier l'installation des modules grâces à cette commande, on observe dans la liste le lien symbolique ssl proxy et proxy http

# ls /etc/apache2/mods-enables/

 

alias.conf            autoindex.conf  mime.conf         proxy.load

alias.load            autoindex.load  mime.load         python.load

auth_basic.load       cgi.load        negotiation.conf  setenvif.conf

authn_file.load       deflate.conf    negotiation.load  setenvif.load

authz_default.load    deflate.load    php5.conf         ssl.conf

authz_groupfile.load  dir.conf        php5.load         ssl.load

authz_host.load       dir.load        proxy.conf        status.conf

authz_user.load       env.load        proxy_http.load   status.load

 

2. Configuration du serveur

A) Le port d'écoute

Dans la mesure ou nous installons un serveur sécurisé, le port d'écoute doit être 443 (https), le port classique étant le 80 (http). 

vim /etc/apache2/ports.conf

.

Fichier: /etc/apache2/ports.conf

<IfModule mod_ssl.c>

    # SSL name based virtual hosts are not yet supported, therefore no

    # NameVirtualHost statement here

    Listen 80

    Listen 443

</IfModule>

B)  Nom du serveur

Si vous n'avez pas encore modifier le nom de la machine et le nom de domaine sur serveur, suivez le guide:

Regardons la configuration actuelle:

# hostname

debian

 On modifie le nom:

# vim /etc/hostname

 Fichier: /etc/hostname

webmail.domaine.fr

 On redémarre:

# reboot

 Après redémarrage on observe l'invite qui change avec le nouveau nom donner:

webmail:~#

 On modifie le nom apache:

# vim /etc/apache2/apache2.conf

 

On ajoute la ligne suivante

 

Fichier: /etc/apache2/sites-enabled/default. 

ServerName webmail.domaine.fr

 

C)  Les hôtes virtuels

De base apache2, propose deux configurations pré-conçues, avec SSL ou sans. Vous pourrez les visualiser via ces commandes:

# more /etc/apache2/sites-available/default

# more /etc/apache2/sites-available/default-ssl

 

Nous allons donc nous en insprirez pour configurer notre serveur. Supprimons d'abord les sites existans.

# rm /etc/apache2/sites-enables/*

 

Ensuite nous allons copier tous les sites disponible dans les sites activés.

# cp /etc/apache2/sites-available/* /etc/apache2/sites-enabled/

# ls /etc/apache2/sites-enabled/

default  default-ssl

 

D)  Configurations des hôtes virutels

Tout d'abord nous allons crée une redirection de toutes les requêtes, http vers du https. Pour cela éditons le fichier /etc/apache2/sites-enabled/default. 

# vim /etc/apache2/sites-enables/default

  • Supprimer l'ensemble de son contenu, la commande "dd" sous vi devient utile !

Fichier: /etc/apache2/sites-enabled/default. 

<VirtualHost *:80>

RewriteEngine On

RewriteRule ^/$ https://webmail.mondomaine.fr

</VirtualHost>


Ensuite passons au fichier default-ssl.

 

# vim /etc/apache2/sites-enables/default-ssl

 

Fichier: /etc/apache2/sites-enabled/default-ssl. 



Ce tutoriel vous à aider alors soutenez ce site en cliquant sur un publicité. Merci

Commentaires 2 | | Dernière modification : 17/04/2009

Commentaires


Écrit par yayabyby le 26/04/2011 à 00h32
Bonsoir , Merci pour le tuto mais je ne trouve pas le reste de la config :)

Écrit par FloX le 26/10/2008
Vous Pouvez ajouter des commentaires ici.


Pour ajouter un message connectez-vous ou, enregistrez-vous.