WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:revproxy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
wiki:services:revproxy [2016/04/04 23:36]
manwefm
wiki:services:revproxy [2017/01/22 15:33] (Version actuelle)
varens
Ligne 1: Ligne 1:
 +====== Reverse proxy ======
 +
 +Ce service sert d'​intermédaire entre les sites webs de MiNET et internet.
 +
 +Il est un intermédiaire de sécurité : le reverse proxy protège les serveurs Web des attaques provenant de l'​extérieur. La ré-écriture programmable des URL permet de masquer et de contrôler, par exemple, l'​architecture d'un site web interne. Mais cette architecture permet surtout le filtrage en un point unique des accès aux ressources Web.
 +
 +Un deuxième avantage à MiNET est que cela nous permet d'​économiser nos ips publiques et de ne pas demander des ouvertures de ports tous les 4 matins à la DISI. Il nous permet de rendre accessible des sites webs hébergés dans des vlans privés.
 +
 +D'​autres possibilités existent : l'​utilisation de mémoire cache afin de décharger les serveurs webs situé derrière, par exemple.
 +
 +Nous utilisons **nginx** comme reverse proxy.
 +
 +==== Ajouter un site ====
 +
 +Rien de plus simple : c'est exactement le même principe que pour les virtual hosts d'​apache. Par exemple pour bidon.fr :
 +
 +  * Éditez le fichier **/​etc/​nginx/​sites-available/​bidon.fr** pour qu'il ressemble vaguement à ceci : 
 +
 +<​code>​
 +server {
 +        listen ​         80;
 +        listen ​         [::]:80;
 +        listen ​         443;
 +        listen ​         [::]:443;
 +        server_name ​    ​bidon.fr
 +
 +        access_log ​     /​var/​log/​nginx/​bidon.access.log;​
 +        error_log ​      /​var/​log/​nginx/​bidon.error.log;​
 +
 +        location / {
 +                proxy_pass ​     http://​192.168.102.105/;​
 +
 +                allow           ​157.159.40.0/​21;​
 +                deny            all;
 +        }
 +}
 +</​code>​
 +
 +Ainsi, je peux définir le fichier de log, qui y a accès (ici uniquement l'int. Pour corriger ceci si tel est votre souhait, remplacez les lignes allow et deny par allow all), qui est le serveur ciblé, avec son ip, et les ports sur lesquels on écoute.
 +
 +  * On édite maintenant un lien entre **/​etc/​nginx/​sites-available/​bidon.fr** et **etc/​nginx/​sites-enabled/​bidon.fr** :
 +
 +<​code>​
 +cd /​etc/​nginx/​sites-enabled
 +ln -s ../​sites-available/​bidon.fr
 +</​code>​
 +
 +  * on recharge la configuration nginx :
 +
 +<​code>​
 +/​etc/​init.d/​nginx reload
 +</​code>​
 +
 +Et voilà, ça marche !
 +
 +===== Le https =====
 +
 +Le concept ici est de faire du https entre l'​extérieur et *nginx*, afin de sécuriser le tout, et du http entre *nginx* :
 +
 +{{:​wiki:​services:​https.png?​400|}}
 +
 +Il va donc nous falloir les certificats : ''/​etc/​nginx/​certs/​minet.crt''​ et ''/​etc/​nginx/​certs/​minet.key''​
 +
 +Ensuite, éditez la configuration du site dans sites-available :
 +
 +  * Vous redirigez le http vers le https :
 +
 +<​code>​
 +server {
 +        listen ​         80;
 +        listen ​         [::]:80;
 +        server_name ​    ​site.minet.net;​
 +
 +        rewrite ​        ​^(.*)$ https://​$host$1 permanent;
 +}
 +</​code>​
 +
 +  * Vous configurez ensuite le https pour avoir accès au site :
 +
 +<​code>​
 +server {
 +        listen ​         443;
 +        listen ​         [::]:443;
 +        server_name ​    ​site.minet.net;​
 +
 +        access_log ​     /​var/​log/​nginx/​site.access.log;​
 +        error_log ​      /​var/​log/​nginx/​site.error.log;​
 +
 +        location / {
 +                proxy_pass ​     http://<​ip_site>/;​
 +        }
 +}
 +</​code>​
 +
 +Pour le owncloud, il faut augmenter la taille maximale des fichiers upload dans /​etc/​php5/​fpm/​php.ini :
 +<​code>​
 +post_max_size = 1G
 +upload_max_filesize = 1G
 +</​code>​
 +
 +et dans /​etc/​nginx/​nginx.conf
 +<​code>​
 +client_max_body_size 1G
 +</​code>​
  
wiki/services/revproxy.txt · Dernière modification: 2017/01/22 15:33 par varens