Pour notre exemple, l'ordinateur est un 486-DX66, 8~Mo de RAM, 500~Mo de partition Linux, avec une connexion PPP à son fournisseur internet par un modem 14,4~kbps. Cette configuration est votre machine Linux de base. Pour en faire un firewall, nous ajoutons une carte Ethernet NE2000. Il est alors connecté à trois PC sous Windows 3.1 avec Trumpet Winsock et deux Sun sous SunOS 4.1. Cette configuration a été choisie car elle est très classique et qu'elle comporte deux plate-formes qui me sont familières. J'imagine qu'une grande partie des éléments dont je parle est réalisable sur Mac, mais comme je n'utilise pas assez souvent ceux-ci, je ne sais pas vraiment.
Bien, vous avez une machine Linux connectée au réseau via une ligne PPP à 14,4~kbps. Vous avez ensuite un réseau Ethernet connecté à cette machine Linux et tous les autres ordinateurs. D'abord, vous devez recompiler le noyau Linux avec les options appropriées. A ce point, je vous renvoie au Kernel HOWTO, à l'Ethernet HOWTO et au NET-2 HOWTO. Ensuite, faites un "make config"~:
C'est la partie réellement intéressante. Puisque nous ne souhaitons pas laisser l'accès depuis internet, il n'est pas nécessaire d'utiliser des adresses réelles. Une bonne classe C à utiliser est 192.0.2.xxx qui a été conservée à part en tant que domaine de test "à blanc". Ainsi, personne ne l'utilise, et il n'entrera en conflit avec aucune requête vers l'extérieur. Ainsi, dans cette configuration, une seule adresse IP réelle est nécessaire. Les autres sont libres et n'affecteront pas du tout le réseau.
Assignez l'adresse IP réelle au port série utilisé pour PPP. Assignez 192.0.2.1 à la carte Ethernet du firewall. Assignez une adresse de ce dernier domaine à toutes les autres machines du réseau protégé.
Premièrement, essayez un ping sur l'internet depuis le firewall. J'avais l'habitude d'utiliser nic.ddn.mil comme point de test. C'est toujours un bon test, mais il a prouvé qu'il était moins fiable que je l'espérais. Si cela ne fonctionne pas dès l'abord, essayez un ping sur quelques autres endroits qui ne soient pas connectés à votre réseau local. Si cela ne fonctionne pas, alors votre PPP est mal configuré. Relisez le NET-2 HOWTO, et essayez à nouveau.
Maintenant, essayez des ping entre les machines du réseau protégé. Tous les ordinateurs doivent êtres capables d'atteindre tous les autres. Dans le cas contraire, repassez une couche de NET-2 HOWTO et retravaillez encore un peu votre réseau.
Puis, chaque machine du réseau protégé doit être capable d'atteindre le firewall par ping. Sinon, retournez une fois de plus en arrière. Rappelez-vous d'essayer sur l'adresse 192.0.2.1 et non sur l'adresse PPP.
Ensuite, essayez d'atteindre l'adresse PPP du firewall depuis l'intérieur du réseau protégé. Si vous le pouvez, c'est que vous n'avez pas désactivé la transmission IP et que vous devez recompiler le noyau. Le fait d'assigner le domaine 192.0.2.1 au réseau protégé indique qu'aucun paquet ne doit être transmis à ce domaine d'aucune manière, mais il est plus sûr, en tout cas, d'avoir désactivé la transmission IP malgré tout. Cela vous permet de conserver le contrôle, plutôt que de le laisser entre les mains de votre fournisseur PPP.
Finalement, essayez un ping sur chaque machine du réseau depuis le firewall. A cet instant, cela ne devrait poser aucun problème.
Maintenant, vous avez une configuration de base de votre firewall.
Le firewall n'est pas bon s'il reste ouvert aux attaques. Premièrement,
regardez le fichier /etc/inet.conf
. Ce fichier est ce qu'on
appelle un "super-serveur". Il lance un tas de démons serveurs sur demande.
Exemples~:
Il n'est pas nécessaire de tout désactiver. Faites-le au moins pour netstat,
systat, tftp, bootp et finger. Vous pouvez vouloir aussi inhiber telnet et
permettre seulement rlogin, ou vice-versa. Pour désactiver un service, placez
simplement un #
devant. Ensuite, envoyez un signal SIG-HUP
au
processus inetd, selon la syntaxe suivante~: kill -HUP <pid>
, où
pid
est le numéro du processus inetd.
Cela force inetd à relire son fichier de configuration (inetd.conf) et à
se relancer. Testez par telnet sur le port 15 du firewall, qui est le port
de netstat. Si vous obtenez une réponse de netstat, c'est que vous n'avez pas
relancé inetd correctement.
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre