Proxmox 6.0 sur un serveur dédié (3/3) : Ajout d’un conteneur LXC faisant office de Routeur/Firewall
Maintenant que nous avons installé, configuré et sécurisé Proxmox, nous devons mettre en place une machine qui fera office routeur/ firewall (passerelle) afin de sécuriser les machines qui seront derrières. Nous allons mettre en place un conteneur LXC. C’est un système de virtualisation léger permettant de faire fonctionner des environnements Linux isolés les uns des autres, tout en utilisant le même noyau Linux.
Création du conteneur
Avant de pouvoir créer un conteneur, nous devons récupérer l’image qui servira à la création de ce dernier. Pour cela dans un premier temps, nous allons mettre à jour la liste des images disponibles :
|
|
Nous pouvons maintenant afficher la liste des images systèmes disponibles :
|
|
Nous allons télécharger l’image CentOS 7. Pour cela, on tape la commande suivante :
|
|
Nous pouvons nous assurez que le template est bien présent, via la commande suivante :
|
|
Maintenant que nous avons télécharger le template, nous allons pouvoir créer le conteneur. Pour cela on tape la commande suivante :
|
|
Maintenant que nous avons créer notre conteneur LXC, je vais vous expliquer à quoi correspondent les différentes options :
- –100 : Correspond à l’ID du conteneur. Celui-ci doit-être unique
- proxmox:vztmpl/centos-7-default_20171212_amd64.tar.xz : Correspond à l’ID du stockage ou se trouve le template ainsi que le nom du template à utiliser séparé par « : »
- –hostname Firewall : Nom du conteneur LXC (/etc/hostname). Il servira aussi à identifier le conteneur dans l’interface web de Proxmox
- –cores 1 : Indique le nombre de cœur qui sera alloué au conteneur
- –memory 512 : Indique la quantité de mémoire vive allouée au conteneur. La taille doit être indiquée en MB
- –swap 512 : Indique la quantité de mémoire swap allouée au conteneur. La taille doit être indiquée en MB
- –rootfs proxmox:5 : Correspond à l’ID du stockage ou se sera créé le disque dur conteneur ainsi que la taille de ce dernier séparé par « : ». La taille doit être indiquée en GB
- –net0 name=eth0,bridge=vmbr1,ip=10.0.0.2/30,gw=10.0.0.1 : Correspond à la configuration réseau du conteneur. Dans notre cas l’interface eth0 sera connecté au bridge vmbr1, aura pour adresse IP 10.0.0.1 avec un masque de sous réseau autorisant 2 ip et comme passerelle 10.0.0.1
- –net1 name=eth1,bridge=vmbr2,ip=192.168.0.2/24 : Nous configurons une seconde interface réseau « eth1 » qui aura pour adresse IP 192.168.0.2 avec un masque de sous réseau autorisant 254 IPs
- –onboot 1 : On indique à Proxmox qu’il faudra démarrer automatiquement le conteneur une fois que le système aura démarré pour ne pas avoir à le faire manuellement
- –startup ‘order=1,up=5,down=5’ : On indique l’ordre de démarrage du conteneur ainsi que le temps à observer entre chaque démarrage ou extinction de conteneur
Notre conteneur étant créé, nous allons maintenant le démarrer. Pour cela, on tape la commande suivante :
|
|
Nous pouvons nous assurer que notre conteneur est bien démarré en tapant la commande suivante :
|
|
Nous allons maintenant nous connecter au conteneur pour ajouter les scripts contenant les règles iptables pour le routage des paquets et du firewall. Pour cela, on tape la commande suivante :
|
|
Nous sommes maintenant dans le conteneur. La première chose que nous allons faire, c’est de mettre à jour le système. Pour cela, on tape les commandes suivantes :
|
|
Nous allons créer un script qui sera exécuté lorsque que l’interface sera monté. Pour cela, on tape les commandes suivantes :
|
|
Voici le contenu du scripts :
|
|
Maintenant, on le rend executable via la commande suivante :
|
|
Sur CentOS, nous ne pouvons pas procéder de la même façon que sur Debian. Nous devons installer le package « iptables-services » afin de pouvoir lancer iptables au démarrage du conteneur. Pour cela, on tape la commande suivante :
|
|
Nous devons lancer une première fois le script contenant nos règles pour le sauvegarder à l’aide de la commande « iptables-save ». Pour cela, on tape les commandes suivantes :
|
|
Maintenant que nous avons sauvegardé les règles iptables, nous devons activer et démarrer le service iptables pour qu’il se lance au démarrage de la machine. Pour cela, on tape les commandes suivantes :
|
|
Lors du démarrage du conteneur, le service iptables ira lire les règles contenu dans le fichier /etc/sysconfig/iptables et les exécutera. Si vous éditez son contenu, vous vous apercevrez que c’est beaucoup moins lisible que le script que je vous ai fourni Vous pouvez maintenant créer un conteneur LXC ou une machine virtuelle. Ils devront avoir :
- une adresse IP : de 192.168.0.3 à 192.168.0.254
- un masque de sous réseau : 255.255.255.0
- une passerelle : 192.168.0.2