Installation Hyperviseurs
parent
5d985073e3
commit
90ce3caebd
|
@ -22,9 +22,9 @@ charge de former leur successeurs.
|
|||
1. [Présentation du Projet](presentation_projet.md)
|
||||
2. [Proxmox](proxmox)
|
||||
1. [Introduction à la virtualisation](proxmox/introduction_a_la_virtualisation.md)
|
||||
2. [Installation des hyperviseurs](#)
|
||||
2. [Installation des hyperviseurs](proxmox/installation_hyperviseurs.md)
|
||||
3. [Systèmes de fichiers et sauvegardes](#)
|
||||
4. [Cluster](#)
|
||||
4. [Cluster](proxmox/cluster)
|
||||
5. [Haute Disponibilitée](#)
|
||||
6. [Gestion de l'authentification](#)
|
||||
3. [Réseau](reseau)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
Les services seront réparti en plusieurs zones à la manière du découpage du réseau. Il est donc recommandé d'avoir compris l'infrastructure réseau avant de lire cette partie.
|
||||
|
||||
|
||||
## Services Frontend
|
||||
## Services Frontend
|
||||
|
||||
Les services Frontend sont directement accessible depuis internet derrière OPNSense.
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
# Gestion du flux post-firewall
|
||||
# HAProxy
|
||||
Cela consiste en la gestion des flux post firewall.
|
||||
|
||||
## Présentation des containers
|
||||
|
||||
|
@ -10,7 +11,7 @@ L'option Firewall PVE des interfaces est désactivée
|
|||
## Objectifs et choix techniques
|
||||
|
||||
Trois objectifs pour la gestion du flux post-firewall
|
||||
- Redondance du proxy/load balancer entre les deux nodes.
|
||||
- Redondance du proxy/load balanceur entre les deux nodes.
|
||||
- Séparation des flux (reverse public et reverse ctf).
|
||||
- Load balancing entre deux reverse proxy Nginx public (un sur chaque nodes).
|
||||
- Connexion SSL entre l'utilisateur et le proxy.
|
||||
|
@ -116,8 +117,8 @@ frontend all-web-in
|
|||
bind *:443 interface eth0
|
||||
tcp-request inspect-delay 5s
|
||||
tcp-request content accept if { req_ssl_hello_type 1 }
|
||||
use_backend is-admin if { req_ssl_sni -i pve.sessionkrkn.fr }
|
||||
use_backend is-admin if { req_ssl_sni -i rspamd.sessionkrkn.fr }
|
||||
use_backend is-admin if { req_ssl_sni -i pve.krhacken.org }
|
||||
use_backend is-admin if { req_ssl_sni -i rspamd.krhacken.org }
|
||||
default_backend is-user
|
||||
|
||||
frontend user-web-in
|
||||
|
@ -126,10 +127,10 @@ frontend user-web-in
|
|||
bind abns@haproxy-user accept-proxy ssl accept-proxy no-sslv3 crt /etc/ssl/letsencrypt interface eth0
|
||||
acl host_letsencrypt path_beg /.well-known/acme-challenge
|
||||
acl authorized_host hdr_end(host) sessionkrkn.fr
|
||||
acl mail hdr_end(host) mail.sessionkrkn.fr
|
||||
acl mail hdr_end(host) mail.krhacken.org
|
||||
acl rspamd path_beg /rspamd/
|
||||
acl ctf_host hdr_end(host) ctf.sessionkrkn.fr
|
||||
acl ctf_host hdr_end(host) web.sessionkrkn.fr
|
||||
acl ctf_host hdr_end(host) ctf.krhacken.org
|
||||
acl ctf_host hdr_end(host) web.krhacken.org
|
||||
acl host_www hdr_beg(host) -i www.
|
||||
|
||||
reqirep ^Host:\ www.(.*)$ Host:\ \1 if host_www !host_letsencrypt !mail
|
||||
|
@ -146,8 +147,8 @@ frontend admin-in
|
|||
mode http
|
||||
bind abns@haproxy-admin accept-proxy ssl no-sslv3 crt /etc/ssl/letsencrypt ca-file /home/hasync/pve.crt verify required interface eth0
|
||||
acl is_auth ssl_c_s_dn(cn) -i -f /etc/haproxy/allowed_cn.txt
|
||||
acl pve hdr_end(host) pve.sessionkrkn.fr
|
||||
acl rspamd hdr_end(host) rspamd.sessionkrkn.fr
|
||||
acl pve hdr_end(host) pve.krhacken.org
|
||||
acl rspamd hdr_end(host) rspamd.krhacken.org
|
||||
use_backend reverse-nginx if { ssl_fc_has_crt } is_auth rspamd
|
||||
use_backend pve-interface if { ssl_fc_has_crt } is_auth pve
|
||||
default_backend drop-http
|
||||
|
@ -211,7 +212,7 @@ systemctl restart haproxy.service
|
|||
```
|
||||
### Obtention des premiers certificats et déploiement
|
||||
```
|
||||
certbot certonly --webroot -w /home/hasync/letsencrypt-requests/ -d sub.sessionkrkn.fr
|
||||
certbot certonly --webroot -w /home/hasync/letsencrypt-requests/ -d sub.krhacken.org
|
||||
```
|
||||
|
||||
Voici un script pour mettre en place les certificats Let's Encrypt au bon endroit qui s'occupe de propager les certificats sur l'autre container.
|
||||
|
@ -227,11 +228,11 @@ ssh root@10.0.0.3 'systemctl restart haproxy.service'
|
|||
service haproxy restart
|
||||
```
|
||||
|
||||
## Mise en place de la haute disponibilité du load balancer
|
||||
## Mise en place de la haute disponibilité du load balanceur
|
||||
Voilà la configuration que nous allons mettre en place,
|
||||
- Sur Alpha le container HAProxy aura comme IP 10.0.0.3
|
||||
- Sur Beta le container HAProxy aura comme IP 10.0.0.4
|
||||
- L'IP virtuelle 10.0.0.5 sera attribuée en fonction de la disponibilité des load balancer
|
||||
- L'IP virtuelle 10.0.0.5 sera attribuée en fonction de la disponibilité des load balanceur
|
||||
- La node Alpha sera le master et la node Beta sera le Slave
|
||||
|
||||
### Installation (commune au deux nodes)
|
||||
|
|
|
@ -3,8 +3,8 @@ Vous trouverez ici toute la documentation relative au déploiement de Proxmox.
|
|||
|
||||
# Table des matières
|
||||
1. [Introduction à la virtualisation](introduction_a_la_virtualisation.md)
|
||||
2. [Installation des hyperviseurs](#)
|
||||
2. [Installation des hyperviseurs](installation_hyperviseurs.md)
|
||||
3. [Systèmes de fichiers et sauvegardes](#)
|
||||
4. [Cluster](#)
|
||||
5. [Haute Disponibilitée](#)
|
||||
4. [Cluster](cluster)
|
||||
5. [Haute Disponibilité](#)
|
||||
6. [Gestion de l'authentification](#)
|
||||
|
|
|
@ -1,50 +1,13 @@
|
|||
# Mise en place du cluster entre nos deux nodes
|
||||
Nous avons déjà mis en place :
|
||||
- Proxmox VE 6 sur les deux nodes (Alpha et Beta)
|
||||
- Un RAID1 ZFS sur chacune des nodes
|
||||
Il faut avoir mis en place le réseau avant de mettre les deux nodes en cluster.
|
||||
|
||||
## Préparation des deux nodes
|
||||
Avant de monter le cluster, il faut permettre aux deux nodes de communiquer localement. Pour cela, nous allons rajouter une interface qui utilisera une carte réseau à part.
|
||||
|
||||
### /etc/network/interfaces
|
||||
L'interface eth0 est configurée pendant l'installation de Proxmox. Proxmox utilise la première carte réseau pour communiquer avec l'extérieur (eth0).
|
||||
On va mettre en place une interface supplémentaire directement reliée à l'autre node sur la seconde carte réseau (eth3) pour ne pas altérer le débit fourni par la première.
|
||||
*Pour avoir la liste des interfaces matérielles on utilise dmesg | grep eth*
|
||||
##### Depuis Alpha on ajoute
|
||||
Les nodes seront accessible grâce au DNS interne via
|
||||
```
|
||||
auto eth3
|
||||
iface eth3 inet static
|
||||
address 10.30.0.1
|
||||
netmask 255.255.255.0
|
||||
```
|
||||
##### Depuis Beta on ajoute
|
||||
```
|
||||
auto eth3
|
||||
iface eth3 inet static
|
||||
address 10.30.0.2
|
||||
netmask 255.255.255.0
|
||||
```
|
||||
Nous avons désormais un multicast en place entre Alpha et Beta. Ainsi les hyperviseurs dialogueront entre eux localement sur une interface et seront reliés au net sur une autre interface. Matériellement il faut un câble croisé entre les deux ports correspondant à eth3.
|
||||
|
||||
### /etc/hosts
|
||||
##### Depuis Alpha
|
||||
```
|
||||
127.0.0.1 localhost.localdomain localhost
|
||||
192.168.2.30 alpha.krhacken.org alpha pvelocalhost
|
||||
#Corosync
|
||||
10.30.0.1 alpha-corosync.krhacken.org alpha-corosync
|
||||
10.30.0.2 beta-corosync.krhacken.org beta-corosync
|
||||
alpha.krhacken.org
|
||||
beta.krhacken.org
|
||||
```
|
||||
|
||||
##### Depuis Beta
|
||||
```
|
||||
127.0.0.1 localhost.localdomain localhost
|
||||
192.168.2.31 beta.krhacken.org beta pvelocalhost
|
||||
#Corosync
|
||||
10.30.0.1 alpha-corosync.krhacken.org alpha-corosync
|
||||
10.30.0.2 beta-corosync.krhacken.org beta-corosync
|
||||
```
|
||||
Le multicast entre Alpha et Beta est désormais accessible via des hostnames.
|
||||
Un lien externalisé entre Alpha et Beta est déjà en place.
|
||||
|
||||
### Création du cluster
|
||||
Nous allons maintenant créer le cluster Sigma depuis Alpha,
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
# Installation des hyperviseurs
|
||||
|
||||
Proxmox étant un hyperviseur de type 1 il possède son propre OS, c'est donc ça que nous devons installer sur les deux nodes du serveur.
|
||||
|
||||
Pour cette installation nous partons du principe que les deux nodes on accès à internet soit via une IP publique soit via une réseau privée. Cela ne change rien car nous modifierons la configuration réseau par la suite.
|
||||
|
||||
Pour l'installation il faut
|
||||
- Une clé USB
|
||||
- Deux disques dur de même taille pour chaque node
|
||||
|
||||
## Installation de Proxmox
|
||||
Procurez-vous la dernière version de Proxmox, attention l'installation initiale à été faire sous Proxmox 6.
|
||||
|
||||
Voilà le [lien](https://www.proxmox.com/en/downloads/category/iso-images-pve) de l'installateur
|
||||
|
||||
A vous de rendre une clé bootable avec cet iso.
|
||||
|
||||
### Sur la première node (Alpha)
|
||||
Mettez la clé USB sur un des ports USB de la première nodes (celle de droite), branchez un clavier et un écran puis démarrer l'installation.
|
||||
|
||||
Choissisez Install Proxmox VE et acceptez l'EULA.
|
||||
#### Dans Proxmox Virtualization Environment
|
||||
|
||||
Target Harddisk -> Options
|
||||
- Filesystem -> zfs (RAID1)
|
||||
|
||||
Disk Setup
|
||||
|
||||
- Harddisk 0 -> Un des 2 disques
|
||||
- Harddisk 1 -> L'autre
|
||||
|
||||
#### Location and Time Zone selection
|
||||
- Contry -> France
|
||||
- Time zone -> Europe/Paris
|
||||
- Keyboard Layout -> French
|
||||
|
||||
#### Administration Password and E-Mail Address
|
||||
|
||||
- Password -> Celui du gestionnaire keepass adminsys
|
||||
- Confirm -> Pareil
|
||||
- Email -> adminsys@krhacken.org
|
||||
|
||||
#### Management Network Configuration
|
||||
- Hostname (FQDN) -> alpha.krhacken.org
|
||||
|
||||
Normalement un IP est automatiquement attribué. Si ce n'est pas le cas à vous de le faire.
|
||||
|
||||
#### Summary
|
||||
Vérifier la cohérence et lancer l'installation.
|
||||
|
||||
### Sur la deuxième node (Beta)
|
||||
Même procédure, il faut juste dans "Management Network Configuration" remplacer le Hostname par **beta.krhacken.org**
|
||||
|
||||
## Préparation des hyperviseurs
|
||||
La procédure est la même sur les deux nodes. Elle peux être faites via SSH (recommandé) ou sur l'interface d'administration **https://IP:8006**
|
||||
|
||||
### Mise à jour
|
||||
```
|
||||
apt-get update
|
||||
apt-get full-upgrade
|
||||
```
|
||||
|
||||
### Templates LXC
|
||||
Mise à jours de la liste
|
||||
```
|
||||
pveam update
|
||||
```
|
||||
Liste les templates disponible
|
||||
```
|
||||
pveam available
|
||||
```
|
||||
Téléchargement le la dernière debian system
|
||||
```
|
||||
pveam download local debian-10.0-standard_10.0-1_amd64.tar.gz
|
||||
```
|
||||
|
||||
### Images VM
|
||||
Nous aurons besoin de VM OPNSense (Pare-Feu) et de VM debian, il faut donc télécharger les derniers ISO disponible
|
||||
|
||||
#### OPNSense
|
||||
VM nécessaire car c'est une distribution Free-BSD
|
||||
|
||||
Obtention du lien de Téléchargement sur le [site officiel](https://opnsense.org/download/)
|
||||
|
||||
- Architecture -> amd64
|
||||
- Select the image type -> dvd
|
||||
- Mirror Location -> A vous de voir
|
||||
|
||||
Le lien donné sera utilisé par la suite
|
||||
|
||||
```
|
||||
wget -P /var/lib/vz/template/iso <lien_obtenu>
|
||||
```
|
||||
|
||||
#### Debian
|
||||
VM nécessaire pour faire tourner efficacement Docker
|
||||
|
||||
Obtention du lien de Téléchargement sur le [site officiel](https://www.debian.org/distrib/netinst)
|
||||
|
||||
- Architecture -> amd64
|
||||
|
||||
Le lien donné sera utilisé par la suite
|
||||
|
||||
```
|
||||
wget -P /var/lib/vz/template/iso <lien_obtenu>
|
||||
```
|
Loading…
Reference in New Issue