EDIT 2018 : Retrouvez cette série de tuto dans une grosse mise à jour ici : Xen et OpenVswitch sont dans une Debian 9 – V.2018
Quatrième partie du tutoriel sur la virtualisation « Xen et OpenVswitch sont dans une Debian« .
Dans la partie précédente, nous avons mis en place notre réseau de trois VMs et configuré le tout.
Nous allons maintenant nous occuper de mettre en place les firewalls sur les deux machines exposées au net : le Dom0 et le routeur.
I – DOM0
Dans un fichier /etc/init.d/firewall, mettez cela :
#!/bin/bash # On purge iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X # Interdire toute connexion entrante, sortante ou forwardee iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Autoriser loopback iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # Autoriser ping iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Autoriser les connexions deja effectuees et les retours. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Autoriser le port 23 (notre port ssh) en entrée iptables -t filter -A INPUT -p tcp --dport 23 -j ACCEPT # Autoriser le dom0 a faire des requetes DNS, HTTP, NTP iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 123 -j ACCEPT # Autoriser les Domus a demander le ntp iptables -t filter -A INPUT -p udp -s 10.99.1.0/24 --dport 123 -j ACCEPT iptables -t filter -A INPUT -p tcp -s 10.99.1.0/24 --dport 123 -j ACCEPT # Autoriser le ssh depuis le dom0 vers les domus iptables -t filter -A OUTPUT -d 10.99.1.0/24 -p tcp --dport 22 -j ACCEPT echo - OK
Puis :
dom0# chmod +x /etc/init.d/firewall dom0# insserv firewall
On exécute pour l’appliquer de suite :
dom0# /etc/init.d/firewall
Voila qui configure un firewall simple mais efficace (on l’améliorera dans de futurs tutoriels)
II – VM Routeur
Un peu sur le même principe, avec les règles de forward déjà saisies avant.
dom0# ssh 10.99.1.2
Dans un fichier /etc/init.d/firewall, mettez cela :
#!/bin/bash # On purge iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X # Interdire toute connexion entrante, sortante ou forwardee iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Autoriser les connexions deja effectuees et les retours. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT # Autoriser loopback iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # Autoriser ping iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # Autoriser la connexion ssh depuis le dom0 iptables -t filter -A INPUT -p tcp -s 10.99.1.1 --dport 22 -j ACCEPT # Autoriser le routeur a faire des requetes DNS, HTTP, NTP (uniquement vers le dom0) iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d 10.99.1.1 --dport 123 -j ACCEPT # Autoriser les pings VM->EXT iptables -t filter -A FORWARD -p icmp -s 10.2.1.0/24 -j ACCEPT iptables -t filter -A FORWARD -p icmp -s 10.10.1.0/24 -j ACCEPT # Autoriser les requetes DNS VM->EXT iptables -t filter -A FORWARD -p udp -s 10.2.1.0/24 --dport 53 -j ACCEPT iptables -t filter -A FORWARD -p udp -s 10.10.1.0/24 --dport 53 -j ACCEPT # Autoriser les requetes HTTP VM->EXT iptables -t filter -A FORWARD -p tcp -s 10.2.1.0/24 --dport 80 -j ACCEPT iptables -t filter -A FORWARD -p tcp -s 10.10.1.0/24 --dport 80 -j ACCEPT # Transfert du port 80 vers 10.10.1.10 et autorisation iptables -t nat -A PREROUTING -i eth0 -d IPFAILOVER -p tcp --dport 80 -j DNAT --to-destination 10.10.1.10 iptables -t filter -A FORWARD -p tcp -d 10.10.1.10 --dport 80 -j ACCEPT # Tout ce qui vient des VMS et est autorise est POSTROUTE pour sortir iptables -t nat -A POSTROUTING -o eth0 -s 10.2.1.0/24 -j SNAT --to IPFAILOVER iptables -t nat -A POSTROUTING -o eth0 -s 10.10.1.0/24 -j SNAT --to IPFAILOVER
echo - OK
Puis :
routeur# chmod +x /etc/init.d/firewall routeur# insserv firewall
On exécute pour l’appliquer de suite :
routeur# /etc/init.d/firewall
On pourrait s’attarder aussi sur les autres VMs, mais ce n’est pas une priorité. On va déjà mettre en place nos différents services.
De plus, ces deux Firewalls seront retouchés. On reviendra donc la dessus plus tard, mais on a déjà une protection basique en place.
Mais avant tout, on va se replonger dans notre architecture dans la Partie V : Un nouveau VLAN.