
Il s'agit d'un mini-pare-feu qui isole complètement un appareil cible du réseau local.
Ceci est un mini-firewall qui isole complètement un appareil cible du réseau local. Il permet aux machines infectées d'accéder à Internet, sans pour autant mettre en danger le réseau local.
Ce projet dépend de libpcap, et bien sûr d'un compilateur C.
Sous Debian, ce qui suit devrait fonctionner :
# apt-get install git gcc make libpcap-dev
# git clone https://github.com/robertdavidgraham/isowall
# cd isowall
# make
Cela placera le binaire isowall dans le répertoire local isowall/bin.
Cela devrait également fonctionner sous Windows, Mac OS X, xBSD, et pratiquement tout système d'exploitation prenant en charge libpcap.
Commencez par configurer une machine avec trois interfaces réseau.
La première interface réseau (comme eth0) sera configurée normalement, avec une pile TCP/IP,
afin que vous puissiez vous y connecter en SSH.
Les deux autres interfaces réseau ne doivent avoir ni pile TCP/IP, ni adresse IP, ni rien d'autre. C'est l'étape de configuration la plus importante, et celle que vous aurez le plus de chances de rater. Par exemple, le logiciel DHCP de la machine peut être configuré pour envoyer automatiquement des requêtes DHCP sur ces interfaces supplémentaires. Vous devez corriger cela afin que rien ne soit lié à ces interfaces.
Pour l'exécuter, tapez simplement :
# ./bin/isowall --internal eth1 --external eth2 -c xxxx.conf
où xxxx.conf contient votre configuration, décrite ci-dessous.
Ce qui suit montre un fichier de configuration typique
internal = eth1
internal.target.ip = 10.0.0.129
internal.target.mac = 02:60:8c:37:87:f3
external = eth2
external.router.ip = 10.0.0.1
external.router.mac = 66:55:44:33:22:11
allow = 0.0.0.0/0
block = 192.168.0.0/16
block = 10.0.0.0/8
block = 224.0.0.0-255.255.255.255
L'appareil cible que nous isolons possède l'adresse IP et l'adresse MAC indiquées.
Seuls les paquets IPv4 et ARP sont transmis.
Les paquets sortants doivent satisfaire les conditions suivantes :
internal.target.macexternal.router.macinternal.target.ipallow, mais pas dans une plage blockexternal.router.ipLes paquets entrants doivent satisfaire les conditions suivantes :
internal.target.macexternal.router.macinternal.target.ipallow, mais pas dans une plage blockexternal.router.ipIl n'y a aucune garantie, bien sûr, mais ce programme offre une assez bonne sécurité.
La sécurité repose sur le fait qu'aucune pile IP n'est liée aux adaptateurs.
Cela signifie que la cible infectée ne peut pas toucher la machine du firewall
d'aucune façon, sauf dans les limites autorisées par la fonction is_allowed().
Cette fonction représente la majeure partie de la surface d'attaque de la machine du firewall.
Et, comme vous pouvez le constater en lisant la fonction, elle ne contient presque
aucune fonctionnalité, ce qui signifie que la surface d'attaque est en réalité très réduite.
Il existe quelques attaques théoriques qui pourraient se produire au niveau de la couche physique, mais dans l'ensemble, nous n'avons pas à nous en soucier.