Nous avons le choix entre les systèmes Windows ou Linux que nous comparons dans le tableau ci-dessous.
Windows (7) | Linux (Debian Jessie) | |
---|---|---|
Processeur | 1 GHz | 1 GHz |
Mémoire Vive (RAM) | 2 Go | 512 Mo |
Espace disque | 20 Go | 2 Go |
Pour sa légèreté et le contrôle total sur le système, nous avons choisi d’utiliser une distribution Linux. Notre choix s’est porté sur Debian pour sa stabilité et sa communauté très active.
Une fois notre système d’exploitation installé sur notre machine physique, nous procédons à la sélection du logiciel tenant le rôle de pare-feu. Parmi les sélectionner, nous trouvons : IPCop, IPTables, pfSense et Shorewall.
Nous avons retenu les critères suivant : les performances du système, la facilité de prise en main et la présence d’une communauté. Chaque critère est évalué sur 10 points.
IPCop | IPTables | pfSense | Shorewall | |
---|---|---|---|---|
Performance | 7 | 10 | 8 | 7 |
Prise en main | 8 | 7 | 9 | 7 |
Communauté | 7 | 10 | 7 | 9 |
Moyenne | 7 | 9 | 8 | 8 |
IPTables obtient la moyenne la plus haute de notre comparatif. Il fonctionne directement sur le noyau du système lui permettant d’obtenir des performances imbattable. De plus, il est dépourvu d’options supplémentaire pouvant venir surcharger le programme. Malgré tout, il reste plus complexe à prendre en main, il se gère intégralement en ligne de commande et il est nécessaire de connaître une syntaxe particulière pour accepter les commandes et atteindre l’objectif souhaité.
IPTables étant pré-installé sur notre distribution, nous pouvons procéder directement à sa configuration. Nous mettons les règles de bases de notre IPTables :
# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT # iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # iptables -A INPUT -j DROP
# iptables -I FORWARD 1 -n conntrack --ctstate RELATED,ESTABLISHED
-n conntrack permet de suivre l'état d'une connexion
–ctstate permet de vérifier l’état de la connexion
On active l'IP Forwarding de manière permanente et on ajoute le NAT sur l’interface de sortie (eth2) pour masquer les IPs de notre réseau local :
# sed -i 's,net.ipv4.ip_forward=0,net.ipv4.ip_forward=1,g' /etc/sysctl.conf # sysctl -p /etc/sysctl.conf # iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
En plus des règles par défaut, on ajoute les routes nécessaires au bon fonctionnement de notre réseau :
route add -net 172.25.0.0 netmask 255.255.255.0 gw 172.31.2.2 route add -net 192.168.0.0 netmask 255.255.0.0 gw 172.31.2.2
⇒ Configuration des interfaces
⇒ Configuration des règles IPTables