projet_serveur_krkn/applicatif/zone_ctf/nginx_ctf.md

1.7 KiB

Reverse proxy NGINX sur le réseau CTF

Spécification du conteneur

Ce service n'est pas redondé car non vital. Il portera le numéro 145 sur Beta.

Deux interfaces

  • eth0 : vmbr1 / VLAN 40 / IP 10.0.3.3 / GW 10.0.2.254
  • eth1 : vmbr2 / VLAN 100 / IP 10.1.0.145 / GW 10.1.0.254

Le proxy

/root/.wgetrc

http_proxy = http://10.0.0.252:3128/
https_proxy = http://10.0.0.252:3128/
use_proxy = on

/etc/apt/apt.conf.d/01proxy

Acquire::http {
 Proxy "http://10.0.0.252:9999";
};

Objectif

Il doit rediriger les requêtes arrivant de HAProxy vers le bon conteneur en fonction de l'hostname. Pour cela nous allons utiliser des serveurs web HTTP Nginx.

Installation de nginx et persistance,

apt-get update
apt-get install -y nginx
systemctl enable nginx.service
rm /etc/nginx/sites-enabled/default
rm /etc/nginx/sites-available/default

Mise en place d'un serveur faisant office de reverse proxy

On ajoute un serveur web dans /etc/nginx/sites-available avec un nom décrivant bien le service derrière ce serveur.

Voilà la template du serveur web,

server {
	listen 80;
	server_name address.fr;
	location / {
		proxy_pass http://ip_reseau_ctf/;
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	}
}

On active ce serveur web,

ln -s /etc/nginx/sites-available/<nom_serveur> /etc/nginx/sites-enabled
systemctl restart nginx

La procédure est tout le temps la méthode générale pour ajouter un serveur à Nginx. Elle est décrite ici. Cependant, dans certians cas, il peut être nécessaire d'enlever un ou plusieurs proxy_set_header dans la configuration du serveur Nginx.