Contents
- 1 Préambule
- 2 Première configuration
- 3 Autoriser les VM à accéder à internet
- 4 Permettre les connexions ssh sur les VM depuis internet
- 4.1 Les règles à mettre en place
- 4.2 Mise en place des règles
- 4.2.0.1 Etape 1 : Autoriser la redirection sur le port ssh de la VM.
- 4.2.0.2 Etape 2 : on redirige le port ssh et l’ip public vers le port ssh et l’ip locale de la VM
- 4.2.0.3 Etape 4 : On sauve les règles dans iptables-persistent
- 4.2.0.4 Etape 5 : On configure les interfaces réseau de la VM
- 4.2.0.5 Etape 6 : On configure putty pour se connecter au serveur
- 5 Pour aller plus loin
Préambule
But de cet article
Dans cette article nous allons mettre en place une solution basée sur iptables-persistent et fail2ban afin de sécuriser notre serveur.
A la fin de l’article :
- Notre serveur hôte :
- Bloquera les différentes attaques du grand internet. Il faut le reconnaître qu’elles viennent souvent de Chine, de Russie ou d’Inde.
- Fera du NAT pour permettre de se connecter aux VM via internet.
- Permettra aux VM de se connecter à internet pour les mises à jour.
- Permettra aux VM de communiquer entre elles.
- Les VM :
- Auront accès à internet.
- Accepteront les connexion SSH sur un pour dédié pour l’administration
Architecture mise en place
Nous avons besoin :
- D’un serveur avec
- Une IP publique
- Une ip locale (dans notre cas ce sera 192.168.122.1)
- Plusieurs VM avec :
- Une interface réseau pour le réseau local
- Une interface réseau pour l’accès internet
Plan d’adressage :
- Chaque vm aura 2 IP.
- Le port ssh sera défini par l’ip local de la VM . L’ip 192.168.122.XXX donnera le port SSH XXX22
Première configuration
Configuration de base iptables
Installation des outils complémentaires
iptables-persistent
Installation de iptables-persistent
A l’installation on vous demande d’activer ou pas IP V6.
ATTENTION : Depuis debian 8, les services sont gérés via systemctl et le nom du service change également.
Démarrage du service iptables-persistent
Sauvegarde des règles iptables de base
Autoriser les VM à accéder à internet
Présentation de la configuration Réseau
Afin de permettre aux VM de pouvoir communiquer avec le grand internet tout puissant :), Une interface virtuelle « bridgée » sur l’interface principale est créée, comme le montre la capture ci-dessous :
Comme indiqué en préambule de cet article nous souhaitons avoir un sous réseau pour nos VM. Pour ce faire nous allons créer une deuxieme interface virtuelle.
Création d’une interface virtuelle
Nous allons donc ajouter dans le fichier /etc/network/interfaces l’interface vmbr1 qui permettra aux VM de communiquer avec notre serveur proxmox via le sous réseau.
Une fois le fichier à jour il faut démarrer notre interface nouvellement créer. Notre réseau local aura donc une plage de 192.168.122.0/32.
Comme nous avons autorisé ICMP dans iptables, nous pouvons donc faire un ping sur notre nouvelle interface pour en vérifier son bon fonctionnement
Autoriser nos VM à se connecter à internet
Comme expliqué plus haut :
- L’ip publique, dont l’accès à internet se fait via l’interface réseau vmbr0
- L’ip locale de notre serveur est sur l’interface vmbr1
il faut donc autoriser notre plage d’ip locale à accéder à internet.
Etape 1 : on autorise les entrées et le transfert des paquets depuis l’interface vmbr0
Etape 2 : on fait du masquerade sur les interfaces et la plage d’adresse locale :
A partir de la nous pouvons tester un update sur une de nos VM pour contrôler que les paquets se mettent bien à jour.
Permettre les connexions ssh sur les VM depuis internet
Les règles à mettre en place
- Nous devons avoir un port ssh dédié pour chaque VM
- Le port dédié sera redirigé vers le port ssh de la VM
- Le port ssh de la VM devra répondre sur le port dédié du serveur hôte
- L’ip publique devra être « natée » vers l’ip locale de la VM
- Pour des raisons de commodité la plage réelle des VM commencera à 100 (La raison principale est ci-dessous).
- Le dernier digit de l’ip de la VM détermine le port ssh publique de la VM
- Donc la VM ayant l’adresse IP locale 192.168.122.100 aura comme port ssh publique 10022
Mise en place des règles
Etape 1 : Autoriser la redirection sur le port ssh de la VM.
Etape 2 : on redirige le port ssh et l’ip public vers le port ssh et l’ip locale de la VM
Etape 4 : On sauve les règles dans iptables-persistent
Etape 5 : On configure les interfaces réseau de la VM
Si vous n’avais pas configurer les 2 interfaces de votre VM vous devrais le faire manuellement
- interface eth0 en DHCP (nat vers vmbr0)
- interface eth1 en ipfixe (Bridge vers vmbr1)
Etape 6 : On configure putty pour se connecter au serveur
Les champs nécessaires :
- IP du serveur hôte
- port ssh publique
- identifiant de connexion
- mot de passe de connexion
Une fois la connexion établie la commande ifconfig nous confirmeras que l’interface avec l’ip locale est bien active
Pour aller plus loin
Nous venons de configurer les accès à notre serveur et à ses VM.
Nous pouvons aller plus loin en se protégeant des attaques du grand internet grace à fail2ban