Installer un Reverse Proxy
Posté par FloX |
Publié le 13/04/2009 | Note:7/10 | Version: 1.0 | Type:
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:

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
É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.
Visiteurs:46767 |
Membres:7060 |
Connectés:6