Adaptation fran�aise Bernard Choppy,
[email protected]
7 d�cembre 1999 Le HOWTO du pare-feu et des serveurs man�
dataires
Mark Grennan
[email protected]
v0.67, 26 septembre 1999 -
Ce document est destin� � enseigner les bases des syst�mes pare-feux
ainsi que pour donner quelques d�tails sur la configuration d'un pare-
feu aussi bien filtrant que serveur mandataire avec un PC sous Linux.
Une version HTML de la version originale en anglais de ce document est
disponible �
http://www.grennan.com/Firewall-HOWTO.html.
______________________________________________________________________
Table des mati�res
1. Introduction
1.1 R�actions
1.2 Avertissement
1.3 Droit d'auteur
1.4 Les raisons qui me poussent � �crire ceci
1.5 Autres sources d'information
2. Comprendre les pare-feux
2.1 Politiques de s�curit�
2.2 Types de pare-feux
2.2.1 Pare-feux filtrants
2.3 Serveurs mandataires
2.3.1 Mandataire SOCKS
3. Architecture de pare-feu
4. Configurer le pare-feu filtrant Linux
4.1 Mat�riel n�cessaire
4.2 Logiciel n�cessaire
4.2.1 Pare-feu filtrant
4.2.2 Serveur mandataire
5. Pr�parer le syst�me Linux
5.1 Compiler le noyau
5.2 Configurer deux cartes r�seau
5.3 Configurer les adresses r�seau
5.4 Tester votre r�seau
5.5 S�curiser le pare-feu
6. Configuration du filtrage IP (IPFWADM)
7. Configuration du filtrage IP (IPchains)
8. Rendre le tout plus simple
9. Installer un mandataire Squid transparent
10. Installer le serveur mandataire TIS
10.1 Trouver le logiciel
10.2 Compilation du FWTK TIS
10.3 Installation du FWTK TIS
10.4 Configuration du FWTK TIS
10.4.1 Le fichier netperm-table
10.4.2 Le fichier /etc/services
11. Le serveur mandataire SOCKS
11.1 Installation du serveur mandataire
11.2 Configuration du serveur mandataire
11.2.1 Le fichier d'acc�s
11.2.2 Le fichier de routage
11.2.3 DNS depuis l'arri�re d'un pare-feu
11.3 Travailler avec un serveur mandataire
11.3.1 Unix
11.3.2 MS Windows avec Trumpet Winsock
11.4 Faire fonctionner le serveur mandataire avec les paquets UDP
11.5 Inconv�nients des serveurs mandataire
12. Configurations avanc�es
12.1 Un grand r�seau avec s�curit� renforc�e
12.1.1 La configuration du r�seau
12.1.2 La configuration du bastion
13. Simplifier l'administration
14. Outrepasser un pare-feu mandataire
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
David Rudder
[email protected]. est l'auteur de la version d'origine de
ce Firewall-HOWTO, il y a de si nombreux mois, et je voudrais encore
le remercier pour m'avoir autoris� � mettre son travail � jour.
Les pare-feux sont devenus tr�s populaires en tant que "nec plus
ultra" de la s�curit� sur Internet. Comme de nombreuses choses dont
la renomm�e grandit, une certaine incompr�hension s'y est jointe. Ce
HOWTO pr�sente les bases de la d�finition d'un pare-feu et la mani�re
d'en configurer un.
J'utilise un noyau 2.2.15 et RedHat 6.0 pour d�velopper ce howto,
ainsi les exemples ci-dessous sont fond�s sur cette distribution. Si
vous trouvez des diff�rences dans votre distribution, envoyez-moi un
courriel et je mettrai � jour ce howto.
NdT : Diverses traductions ont �t� propos�es pour le terme _f_i_r_e_w_a_l_l,
dont pare-feu, coupe-feu, mur anti-feu, etc. Le traducteur a adopt�
"pare-feu", qui semble actuellement le terme le plus couramment admis.
11..11.. RR��aaccttiioonnss
Toute r�action est la bienvenue. SSIIGGNNAALLEEZZ TTOOUUTTEE IINNEEXXAACCTTIITTUUDDEE DDAANNSS CCEETT
AARRTTIICCLLEE SS''IILL VVOOUUSS PPLLAAIITT !! Je suis humain, et donc sujet aux erreurs.
Si vous trouvez une correction, envoyez-la moi. Je tenterai de
r�pondre � tout courriel, mais je suis tr�s occup�, donc ne m'en
veuillez pas si je ne le fais pas.
_M_o_n _a_d_r_e_s_s_e _c_o_u_r_r_i_e_l _e_s_t _: _m_a_r_k_@_g_r_e_n_n_a_n_._c_o_m_.
11..22.. AAvveerrttiisssseemmeenntt
JJEE NNEE SSUUIISS RREESSPPOONNSSAABBLLEE DD''AAUUCCUUNN DDOOMMMMAAGGEE RREESSUULLTTAANNTT DD''AACCTTIIOONNSS FFOONNDDEEEESS SSUURR
LLEE PPRREESSEENNTT DDOOCCUUMMEENNTT.. Ce document est con�u comme une introduction au
fonctionnement des pare-feux et des serveurs mandataires. Je ne suis,
ni ne pr�tends �tre un expert �s s�curit�. ;-) Je suis simplement un
individu qui a trop lu et qui appr�cie les ordinateurs plus que ce
n'est le cas pour beaucoup. Consid�rez que j'�cris ceci pour
familiariser les gens avec ce sujet, et que je ne suis pas pr�t �
perdre ma jeunesse dans l'exactitude de ce qui s'y trouve.
NdT : Pour sa part, le traducteur �met les m�mes r�serves que celles
de l'auteur.
11..33.. DDrrooiitt dd''aauutteeuurr
Sauf mention contraire, les documents Linux HOWTO sont la propri�t� de
leurs auteurs respectifs. Les documents Linux HOWTO peuvent �tre
reproduits et distribu�s en totalit� ou en partie, sur tout support
physique ou �lectronique, tant que cette notice de droit d'auteur est
pr�sente sur chaque copie. La redistribution commerciale est
autoris�e et encourag�e ; n�ammoins, l'auteur souhaite �tre inform� de
toute distribution de ce genre.
Toute traduction, travail d�riv�, ou agr�gat incorporant tout ou
partie d'un ou plusieurs documents Linux HOWTO doit �tre couvert par
ce m�me droit d'auteur. Ce qui veut dire que vous ne pouvez produire
un travail d�riv� d'un HOWTO et imposer des restrictions
suppl�mentaires concernant sa distribution. Des exceptions � ces
r�gles peuvent �tre d�livr�es sous certaines conditions ; contactez le
coordinateur des Linux HOWTO.
En bref, nous souhaitons promouvoir la diss�mination de cette
information � travers autant de canaux que possible. N�ammoins, nous
souhaitons conserver un droit d'auteur sur les documents HOWTO, et
�tre avis�s de tout plan de distribution les concernant.
Si vous avez des questions, veuillez me contacter (_c_f_. _s_u_p_r_a).
NdT : Le traducteur (Bernard Choppy) se met aussi � disposition, soit
pour r�pondre directement, dans la mesure de ses faibles moyens, �
toute question, soit pour transmettre et traduire, entre l'auteur et
l'interlocuteur francophone. Son adresse est :
[email protected]
11..44.. LLeess rraaiissoonnss qquuii mmee ppoouusssseenntt �� ��ccrriirree cceeccii
Il y a quelques ann�es, alors que je travaillais pour l'�tat de
l'Oklahoma en tant qu'"administrateur Internet", il me fut demand� de
"mettre l'�tat sur Internet", sans m'allouer de budget (note : il
n'existait pas de titre de ce genre � l'�poque. J'�tais juste le type
qui faisait tout le travail). La meilleure mani�re de faire en sorte
que cela puisse arriver �tait d'utiliser le plus possible de logiciel
libre et de mat�riel de r�cup�ration. Linux et un tas de vieux 486
�taient tout ce que j'avais pour travailler.
Les pare-feux du commerce sont hors de prix et la documentation sur
leur fonctionnement est consid�r�e quasiment comme secret-d�fense.
J'ai d�couvert que la cr�ation d'un pare-feu de mon cru �tait � peu
pr�s impossible.
Dans mon travail suivant, il m'a �t� demand� de mettre en place un
pare-feu. Linux venait d'int�grer le code correspondant. � nouveau
sans budget, j'ai commenc� � monter un pare-feu avec Linux. Six mois
plus tard, mon pare-feu �tait en place et ce document mis � jour.
11..55.. AAuuttrreess ssoouurrcceess dd''iinnffoorrmmaattiioonn
� The Linux Networking Overview HOWTO ;
� The Ethernet HOWTO ;
� IPchains Firewalling made Easy! ;
� Linux Network Address Translation ;
� The Net-3 HOWTO ;
� The NET-PPP HOWTO ;
� TCP/IP Network Administrator's Guide aux �ditions O'Reilly and
Associates ;
� The Documentation for the TIS Firewall Toolkit .
Ces sites web sont des sources d'informations sur le sujet de la
s�curit� en g�n�ral.
� _S_e_c_u_r_e _L_i_n_u_x_.
Il s'agit de mon propre site de s�curit� sur lequel j'ai rassembl� des
livres blancs, de la documentation et des programmes concourant � la
s�curisation de syst�mes Unix.
[ D'autres URL viendront ici ]
22.. CCoommpprreennddrree lleess ppaarree--ffeeuuxx
Un pare-feu est une structure destin�e � emp�cher un feu de la
traverser. Dans un immeuble, il s'agit d'un mur qui divise
compl�tement des parties de celui-ci. Dans une voiture, un pare-feu
est une pi�ce m�tallique qui s�pare le moteur du compartiment
passagers.
Les pare-feux Internet sont con�us pour isoler votre r�seau local
priv� des flammes de l'Internet, ou de prot�ger la puret� des membres
de votre r�seau local en leur interdisant l'acc�s aux tentations
d�moniaques de l'Internet. ;-)
Le premier pare-feu informatique �tait une machine Unix sans routage
avec deux connexions � deux r�seaux diff�rents. Une carte r�seau
�tait connect�e � Internet et l'autre au r�seau priv�.
Pour atteindre Internet depuis le r�seau priv�, il fallait se loger
sur le pare-feu (Unix). Ensuite, on utilisait les ressources de ce
syst�me pour acc�der � Internet. Par exemple, on pouvait utiliser X-
Window pour lancer le navigateur Netscape sur le pare-feu et en avoir
l'affichage sur sa station de travail. Si le navigateur tourne sur le
pare-feu, il a acc�s aux deux r�seaux.
Cette sorte de h�te � double r�seau (un syst�me � deux connexions
r�seau) est bien si l'on peut faire confiance � TOUS les utilisateurs.
On peut configurer simplement un syst�me Linux et y cr�er un compte
pour tout utilisateur souhaitant un acc�s � Internet. Avec cette
configuration, le seul ordinateur du r�seau priv� qui connaisse
quelque chose du monde ext�rieur est le pare-feu proprement dit.
Personne ne peut t�l�charger directement sur un poste de travail
personnelle il faut d'abord t�l�charger un fichier sur le pare-feu,
puis transf�rer celui-ci du pare-feu au poste de travail.
NOTE IMPORTANTE : 99% des intrusions commencent par l'obtention d'un
acc�s utilisateur sur le syst�me attaqu�. Pour cette raison, je ne
recommande pas ce type de pare-feu. De plus, il est aussi extr�mement
limit�.
22..11.. PPoolliittiiqquueess ddee ss��ccuurriitt��
Il ne faut pas croire qu'un pare-feu soit la panac�e. Il faut _t_o_u_t
_d_'_a_b_o_r_d _d_�_f_i_n_i_r _u_n_e _p_o_l_i_t_i_q_u_e _d_e _s_�_c_u_r_i_t_�.
Les pare-feux sont utilis�s dans deux buts :
1. pour maintenir des gens (intrus, vandales...) dehors ;
2. pour maintenir des gens (employ�s, enfants...) dedans.
Lorsque j'ai commenc� � travailler sur les pare-feux, j'ai �t� surpris
d'apprendre que l'entreprise pour laquelle je travaillais cherchait
plus � "espionner" ses propres employ�s qu'� maintenir les intrus hors
de ses r�seaux.
Au moins dans mon �tat (l'Oklahoma), les employeurs ont le droit de
surveiller les appels t�l�phoniques et l'activit� Internet � condition
d'informer pr�alablement les employ�s de cette surveillance (NdT : la
l�gislation fran�aise est identique de ce point de vue).
Big Brother n'est pas le gouvernement. Big Brother est le Big
Businness.
Ne me m�jugez pas : les gens sont au travail pour travailler, non pour
jouer. Et il me semble que l'�thique du travail est en train de
s'�roder. N�anmoins, j'ai aussi observ� que certains types de
directions se trouvent aussi les principaux transgresseurs des r�gles
qu'ils ont eux-m�mes �dict�es. J'ai vu des vacataires r�primand�s car
ils avaient utilis� Internet pour chercher le trajet de bus pour venir
au travail alos que le m�me directeur passait des heures au travail �
chercher de bons restaurants et bo�tes de nuit pour y trouver des
clients potentiels.
Mon correctif de ce genre d'abus est de publier les traces du pare-feu
sur une page web accessible � tout un chacun.
Le travail dans la s�curit� peut �tre difficile. Si vous �tes
gestionnaire de pare-feux, surveillez vos arri�res.
22..22.. TTyyppeess ddee ppaarree--ffeeuuxx
Il y a deux types de pare-feux :
1. pare-feux IP ou filtrants - ils bloquent tout le trafic sauf celui
s�lectionn� ;
2. serveurs mandataires (parfois appel�s bastions) - ils r�alisent les
connexions r�seau pour vous.
22..22..11.. PPaarree--ffeeuuxx ffiillttrraannttss
Le filtrage de paquets est le type de pare-feu inclus dans le noyau
Linux.
Un pare-feu filtrant fonctionne au niveau du r�seau. Les donn�es ne
sont autoris�es � quitter le syst�me que si les r�gles du pare-feu le
permettent. Lorsque les paquets arrivent, ils sont filtr�s en
fonction de leurs type, origine, destination et port qui sont d�crits
dans chacun de ceux-ci.
De nombreux routeurs comportent un certain nombre de services de type
pare-feu. Les pare-feux filtrants peuvent �tre pens�s comme des types
particuliers de routeurs. Pour cette raison, il faut une profonde
compr�hension de la structure des paquets IP pour travailler avec l'un
d'eux.
Puisque tr�s peu de donn�es sont analys�es et trac�es, les pare-feux
filtrants consomment peu de temps processeur et cr�ent moins de
latence sur un r�seau.
Les pare-feux filtrants ne fournissent pas de contr�le par mot de
passe. Un utilisateur ne peut s'identifier en tant que tel. La seule
identit� connue pour un utilisateur est l'adresse IP de son poste de
travail. Cela peut �tre un probl�me lorsqu'on souhaite utiliser DHCP
(assignation dynamique d'adresses IP). En effet, les r�gles �tant
fond�es sur les adresses IP, il faut ajuster celles-ci � chaque fois
que de nouvelles adresses sont assign�es. Je ne sais pas comment
automatiser ce processus.
Les pare-feux filtrants sont plus transparents pour les utilisateurs.
Ceux-ci n'ont en effet pas � configurer des r�gles dans leurs
applications pour utiliser Internet. Ce n'est pas vrai avec la
plupart des serveurs mandataires.
22..33.. SSeerrvveeuurrss mmaannddaattaaiirreess
Le meilleur exemple du fonctionnement de ceux-ci est celui d'une
personne se connectant � un syst�me puis, depuis celui-ci, au reste du
monde. C'est seulement avec un serveur mandataire que ce processus
est automatique. Lorsque vous vous connectez � l'ext�rieur, le
logiciel client vous connecte en fait d'abord au serveur mandataire.
Le serveur mandataire se connecte alors au serveur que vous cherchez �
atteindre (l'ext�rieur) et vous renvoie les donn�es re�ues. NdT : en
fran�ais, on utilise souvent le terme "bastion" pour d�signer un
serveur mandataire situ� entre le r�seau local interne et l'ext�rieur.
Dans le pr�sent document, on utilisera plut�t le terme bastion pour
d�signer la machine qui porte le serveur mandataire.
Puisque les serveurs mandataires g�rent toutes les communications, ils
peuvent enregistrer tout ce qu'ils font (donc ce que vous faites).
Pour les mandataires HTTP (web), cela comprend les URL que vous
demandez. Pour les mandataires FTP, cela inclut chaque fichier
t�l�charg�. Ils peuvent m�me expurger les mots "inappropri�s" des
sites que vous visitez ou analyser la pr�sence de virus.
Les serveurs mandataires d'applications peuvent authentifier des
utilisateurs. Avant qu'une connexion soit r�alis�e vers l'ext�rieur,
le serveur peut demander � l'utilisateur de se connecter
pr�alablement. Pour un utilisateur web, cela fonctionnera comme si
chaque site requ�rait une connexion.
22..33..11.. MMaannddaattaaiirree SSOOCCKKSS
Un mandataire SOCKS ressemble beaucoup � un vieux central t�l�phonique
� fiches. Il interconnecte simplement une machine interne � une autre
externe.
De nombreux serveurs SOCKS fonctionnent uniquement avec les connexions
de type TCP. De m�me, comme les pare-feux filtrants, il ne permettent
pas l'authentification d'utilisateurs. En revanche, ils peuvent
enregistrer la destination de la connexion de chaque utilisateur.
33.. AArrcchhiitteeccttuurree ddee ppaarree--ffeeuu
Il existe de nombreuses mani�res de structurer un r�seau pour prot�ger
des syst�mes � l'aide d'un pare-feu.
Si l'on dispose de connexions d�di�es � Internet par un routeur, on
peut connecter directement celui-ci au syst�me pare-feu. Au
contraire, on peut passer par un hub pour permettre un acc�s complet
aux serveurs � l'ext�rieur du pare-feu.
On peut configurer un certain nombre de r�gles de filtrage mat�rielles
dans le routeur. N�anmoins, ce routeur peut �tre la propri�t� d'un
FAI (fournisseur d'acc�s Internet), auquel cas on ne dispose pas du
contr�le de celui-ci. Il faut demander au FAI d'y inclure des filtres
(NdT : et avoir pleine confiance dans son FAI !).
_________ __________
_/\__/\_ | Routeur | | | ___________
| | | sans | (DMZ) | Systeme | (LAN) | Postes de |
/ Internet \----| filtre |--(HUB)--| pare-feu |--(HUB)--| travail |
\_ _ _ _/ |_________| | |__________| |___________|
\/ \/ \/ |
(Serveur pour)
(l'exterieur)
On peut aussi utiliser un service commut� comme une ligne RNIS. Dans
ce cas on peut utiliser une troisi�me carte r�seau pour cr�er une DMZ
(De-Militarized Zone, ou "zone d�militaris�e") filtr�e. Cela donne un
contr�le total sur les services Internet et maintient la s�paration
avec le r�seau local normal.
__________
_/\__/\_ | | ___________
| | | Systeme | (LAN) | Postes de |
/ Internet \----| pare-feu |--(HUB)--| travail |
\_ _ _ _/ |__________| |___________|
\/ \/ \/ |
(DMZ)
(HUB)
Si l'on ne fournit pas soi-m�me des services Internet mais que l'on
souhaite surveiller o� vont les utilisateurs, on voudra utiliser un
serveur mandataire (bastion). Cela peut �tre intr�gr� dans le pare-
feu.
__________
_/\__/\_ | Systeme | ___________
| | | pare-feu/| (LAN) | Postes de |
/ Internet \----| bastion |--(HUB)--| travail |
\_ _ _ _/ |__________| |___________|
\/ \/ \/
On peut aussi placer le serveur mandataire sur le r�seau local. Dans
ce cas, les r�gles du pare-feu ne doivent autoriser que le bastion �
se connecter � Internet pour les services que celui-ci fournit. Ainsi
les utilisateurs ne peuvent acc�der � Internet que par le mandataire.
__________
_/\__/\_ | | ___________
| | | Systeme | (LAN) | Postes de |
/ Internet \----| pare-feu |--(HUB)--| travail |
\_ _ _ _/ |__________| | |___________|
\/ \/ \/ | ____________
| | Serveur |
+----| mandataire |
|____________|
Si l'on souhaite r�aliser un service comme ceux de Yahoo! ou peut-�tre
SlashDot, on peut souhaiter r�aliser une architecture redondante de
routeurs et pare-feux (_c_f_. High Availability HOWTO).
En utilisant une technique de DNS � jeton tournant ou � l'aide de
serveurs d'application � �quilibrage de charge, on peut cr�er un
service � 100% de disponibilit�.
_/\__/\_ _/\__/\__/\
| | | |
/ FAI No 1 \______ (WAN)_____/ Partenaires \
\_ _ _ _/ | (HUB) \_ _ _ _ _/
\/ \/ \/ | ___|____ \/ \/ \/ \/
__|____ |_______ |
_/\__/\_ |______ | | || ______
| | | || (DMZ) |Systeme || (LAN) | |
/ FAI No 2 \--|Routeur||--(HUB)--|pare-feu||--(HUB)--|Postes|
\_ _ _ _/ |_______| | |________| | |______|
\/ \/ \/ | | | ______
(Serveur) (Serveur) | |Manda-|
(exterieur) (commun) +----|taire |
|______|
Il est facile de voir corrompre son r�seau local. Il faut conserver
le contr�le de chaque connexion. Il suffit d'un utilisateur avec un
modem pour compromettre tout un r�seau local.
44.. CCoonnffiigguurreerr llee ppaarree--ffeeuu ffiillttrraanntt LLiinnuuxx
44..11.. MMaatt��rriieell nn��cceessssaaiirree
Les pare-feux filtrants ne n�cessitent pas de mat�riel haut de gamme.
Ils ne sont pas grand'chose de plus que de simples routeurs.
Tout ce qu'il faut est :
1. un 486-DX66 avec 16 Mo de m�moire vive ;
2. un disque dur de 200 Mo (500 Mo sont tout de m�me recommand�s) ;
3. des connexions r�seau (cartes Ethernet, ports s�rie, connexions
sans fil ?) ;
4. un moniteur et un clavier.
Avec certains syst�mes, on peut m�me �liminer le moniteur et le
clavier en utilisant une console sur port s�rie.
Si l'on a besoin d'un serveur mandataire qui doive g�rer un fort
trafic, il faut prendre le syst�me le plus puissant qui soit possible.
En effet, pour chaque utilisateur qui se connectera par le bastion, il
se cr�era un nouveau processus. Si l'on a 50 utilisateurs simultan�s
ou plus, je pense qu'il faut :
1. un Pentium II avec 64 Mo de m�moire vive ;
2. un disque dur de 2 Go pour contenir toutes les traces ;
3. deux connexions r�seau ;
4. un moniteur et un clavier.
Les connexions r�seau peuvent �tre de n'importe quel type (cartes NIC,
RNIS ou m�me des modems).
44..22.. LLooggiicciieell nn��cceessssaaiirree
44..22..11.. PPaarree--ffeeuu ffiillttrraanntt
Pour cr�er un pare-feu filtrant, aucun logiciel sp�cifique n'est
n�cessaire. Linux suffit.
Si l'on utilise un _TRES_ vieux noyau Linux (1.0.x ou plus ancien), il
faut une copie de ipfwadm (NdT : il faut surtout passer � un noyau
plus r�cent, car ces noyaux sont obsol�tes, et risquent de plus de
contenir des points faibles dont il sera difficile de retrouver
trace).
Si l'on utilise un noyau 2.1.102 ou plus r�cent, il faut utiliser un
ipchaining comme par exemple celui d�velopp� par
http://www.rustcorp.com/linux/ipchains/.
44..22..22.. SSeerrvveeuurr mmaannddaattaaiirree
Si l'on veut configurer un serveur mandataire, il faut l'un des
paquetages suivants :
� Squid ;
� la bo�te � outils TIS Firewall (FWTK) ;
� SOCKS.
Squid est un beau paquetage et fonctionne avec la fonctionnalit� de
Linux de mandataire transparent. Je vais d�crire comment configurer
ce serveur.
� l'heure o� j'�cris ces lignes, Network Associates et Trusted
Information System's (TIS) ont fusionn�. Il faut donc continuer �
consulter leurs sites web pour toute information sur les
modifications. Dans l'intervalle, la bo�te � outils TIS est toujours
disponible sur :
http://www.tis.com/research/software/.
Trusted Information System fournit une collection de programmes con�ue
pour faciliter la gestion de pare-feux. Avec cette bo�te � outils, on
configure un daemon pour chaque service (web, telnet, etc.) qui sera
utilis�.
55.. PPrr��ppaarreerr llee ssyysstt��mmee LLiinnuuxx
55..11.. CCoommppiilleerr llee nnooyyaauu
Commencez avec une installation minimale propre de votre distribution
Linux. Moins vous installez de logiciels, moins votre syst�me aura de
trous de s�curit�, portes d�rob�es et/ou bogues susceptibles d'induire
des probl�mes de s�curit� dans votre syst�me.
Prenez un noyau stable. J'utilise le noyau Linux 2.2.9 ou plus pour
mon syst�me. La documentation est donc fond�e sur ces param�tres.
Vous devez recompiler le noyau Linux avec les options appropri�es. Si
vous n'avez jamais recompil� de noyau, je vous renvoie au Kernel
HOWTO, � l'Ethernet HOWTO et au NET-3 HOWTO.
Voici les param�tres r�seau que je sais correspondre � quelque chose
qui fonctionne. J'en ai signal� quelques-uns avec un "?". Si l'on
souhaite utiliser cette fonctionnalit�, il faut aussi l'activer.
J'utilise "make menuconfig" pour �diter ma configuration de noyau.
<*> Packet socket
[ ] Kernel/User netlink socket
[*] Network firewalls
[ ] Socket Filtering
<*> Unix domain sockets
[*] TCP/IP networking
[ ] IP: multicasting
[*] IP: advanced router
[ ] IP: kernel level autoconfiguration
[*] IP: firewalling
[?] IP: always defragment (required for masquerading)
[?] IP: transparent proxy support
[?] IP: masquerading
--- Protocol-specific masquerading support will be built as modules.
[?] IP: ICMP masquerading
--- Protocol-specific masquerading support will be built as modules.
[ ] IP: masquerading special modules support
[*] IP: optimize as router not host
< > IP: tunneling
< > IP: GRE tunnels over IP
[?] IP: aliasing support
[*] IP: TCP syncookie support (not enabled per default)
--- (it is safe to leave these untouched)
< > IP: Reverse ARP
[*] IP: Allow large windows (not recommended if <16Mb of memory)
< > The IPv6 protocol (EXPERIMENTAL)
---
< > The IPX protocol
< > Appletalk DDP
< > CCITT X.25 Packet Layer (EXPERIMENTAL)
< > LAPB Data Link Driver (EXPERIMENTAL)
[ ] Bridging (EXPERIMENTAL)
[ ] 802.2 LLC (EXPERIMENTAL)
< > Acorn Econet/AUN protocols (EXPERIMENTAL)
< > WAN router
[ ] Fast switching (read help!)
[ ] Forwarding between high speed interfaces
[ ] PU is too slow to handle full bandwidth
QoS and/or fair queueing --->
Apr�s avoir r�alis� toute la configuration qu'il vous faut vous devez
recompiler, r�installer le noyau et rebouter.
J'utilise la commande :
make dep;make clean;make bzlilo;make modules;make modules_install;init 6
pour accomplir tout cela en une �tape.
55..22.. CCoonnffiigguurreerr ddeeuuxx ccaarrtteess rr��sseeaauu
Si vous avez deux cartes r�seau dans votre ordinateur, vous devrez
tr�s certainement ajouter un param�tre "append" dans votre fichier
/etc/lilo.conf pour d�crire les IRQ et adresses des deux cartes. Le
mien se pr�sente ainsi :
append="ether=12,0x300,eth0 ether=15,0x340,eth1"
55..33.. CCoonnffiigguurreerr lleess aaddrreesssseess rr��sseeaauu
Nous arrivons � la partie amusante de notre configuration. Je ne vais
pas entrer tr�s profond�ment dans les d�tails de mise en place d'un
r�seau local. Pour r�soudre vos probl�mes � ce niveau, vous pouvez
vous reporter au Networking-HOWTO.
Votre but est de fournir deux connexions r�seau � votre syst�me pare-
feu filtrant : l'une est Internet (c�t� dangereux) et l'autre est le
r�seau local (c�t� s�curis�).
Dans tous les cas, vous devez prendre quelques d�cisions :
1. utiliserez-vous des adresses IP r�elles ou non pour votre r�seau
local ?
2. votre FAI vous assigne-t'il une adresse IP ou utilisez-vous des
adresses IP statiques ?
Puisque nous ne souhaitons pas laisser InterNet acc�der au r�seau
priv�, il n'est pas n�cessaire d'utiliser des adresses "r�elles". On
peut toujours choisir des adresse arbitraires pour un r�eau priv�,
mais ce n'est pas recommand� : au cas o� des donn�es seraient rout�es
en-dehors de celui-ci, elles pourraient arriver sur un autre syst�me.
Un certain nombre de plages d'adresses Internet ont �t� laiss�es de
c�t� pour les r�seaux priv�s. Parmi celles-ci, nous utiliserons
celles de 192.168.2.xxx pour nos exemples.
Il vous faudra utiliser le masquage IP (IP masquerading) pour
permettre � cela de fonctionner. Dans ce mode de fonctionnement, le
pare-feu transmet les paquets en les traduisant en adresses IP
"r�elles" pour leur permettre de voyager sur Internet.
L'utilisation de ces adresses IP non routables rend le r�seau priv�
plus s�r, car les routeurs Internet ne transmettront pas les paquets
porteurs de ces adresses.
Il peut �tre judicieux maintenant de lire le IP Masquerading HOWTO.
199.1.2.10 __________ 192.168.2.1
_ __ _ \ | | / ___________
| \/ \/ | \| Systeme |/ | Postes de |
/ InterNet \--------| pare-feu |------------| travail |
\_/\_/\_/\_/ |__________| |___________|
Vous devez assigner l'adresse IP "r�elle" � la carte r�seau du c�t�
Internet. Cette adresse peut vous �tre assign�e de mani�re permanente
(comme adresse IP statique) ou � chaque connexion par le processus
PPP.
Vous assignez vos num�ros IP internes, comme 192.168.2.1 pour la carte
Ethernet du r�eau local. Il s'agira de votre adresse de passerelle.
Vous pouvez assigner une adresse de la plage 192.168.2.xxx � toutes
les autres machines du r�seau prot�g� (soit 192.168.2.2 �
192.168.2.254).
J'utilise Linux RedHat. Pour configurer le r�seau lors du d�marrage,
j'ai ajout� un fichier "ifcfg-eth1" dans le r�pertoire
/etc/sysconfig/network-scripts. On peut aussi trouver des fichiers
ifcfg-ppp0 ou ifcfg-tr0 dans ce r�pertoire. Ces fichiers "ifcfg-"
sont utilis�s par RedHat pour configurer et activer les p�riph�riques
r�seau lors du d�marrage. Leur nom est fonction du type de connexion.
Voici l'allure du fichier ifcfg-eth1 (deuxi�me carte Ethernet) de
notre exemple :
DEVICE=eth1
IPADDR=192.168.2.1
NETMASK=255.255.255.0
NETWORK=192.168.2.0
BROADCAST=192.168.2.255
GATEWAY=199.1.2.10
ONBOOT=yes
Si vous utilisez une connexion commut�e, vous devrez consulter les
fichiers ifcfg-ppp0 et chat-ppp0 qui contr�lent votre connexion PPP.
Ce fichier ifcfg peut avoir l'allure suivante :
DEVICE="ppp0"
ONBOOT="yes"
USERCTL="no"
MODEMPORT="dev/modem"
LINESPEED="115200"
PERSIST="yes"
DEFABORT="yes"
DEBUG="yes"
INITSTRING="ATZ"
DEFROUTE="yes"
HARDFLOWCTL="yes"
ESCAPECHARS="no"
PPPOPTIONS=""
PAPNAME="LoginID"
REMIP=""
NETMASK=""
IPADDR=""
MRU=""
MTU=""
DISCONNECTTIMEOUT=""
RETRYTIMEOUT="5"
BOOTPROTO="none"
55..44.. TTeesstteerr vvoottrree rr��sseeaauu
Commencer en utilisant les commandes ifconfig et route. Si vous avez
deux cartes r�seau, votre ifconfig doit ressembler � :
#ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.0 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:1620 errors:0 dropped:0 overruns:0
TX packets:1620 errors:0 dropped:0 overruns:0
eth0 Link encap:10Mbps Ethernet HWaddr 00:00:09:85:AC:55
inet addr:199.1.2.10 Bcast:199.1.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
Interrupt:12 Base address:0x310
eth1 Link encap:10Mbps Ethernet HWaddr 00:00:09:80:1E:D7
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
Interrupt:15 Base address:0x350
et votre table de routage :
#route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
199.1.2.0 * 255.255.255.0 U 1500 0 15 eth0
192.168.2.0 * 255.255.255.0 U 1500 0 0 eth1
127.0.0.0 * 255.0.0.0 U 3584 0 2 lo
default 199.1.2.10 * UG 1500 0 72 eth0
Note : 199.1.2.0 est l'adresse du c�t� Internet du pare-feu et
192.168.2.0 celle du c�t� priv� (r�seau local).
Vous devez commencer par vous assurer que chaque ordinateur de votre
r�seau local puisse atteindre l'adresse de votre pare-feu (192.168.2.2
dans cet exemple) par ping. Dans le cas contraire, replongez-vous
dans le NET-3 HOWTO et retravaillez un peu votre r�seau.
Ensuite, essayez d'atteindre un syst�me Internet depuis le pare-feu.
J'utilise personnellement l'adresse www.internic.net pour mes tests.
Si cela ne fonctionne pas, essayez un serveur de votre FAI. Si cela
ne fonctionne toujours pas, il y a un probl�me quelque part dans la
configuration de votre connexion Internet. Vous devriez pouvoir
atteindre n'importe quel point d'Internet depuis votre pare-feu.
Essayez de v�rifier la configuration de votre passerelle par d�faut.
Si vous utilisez une connexion commut�e, recontr�lez votre nom
d'utilisateur et votre mot de passe. Replongez--vous dans le NET-3
HOWTO et essayez encore.
Maintenant, essayez d'atteindre l'adresse ext�rieure du pare-feu
(199.1.2.10 dans notre exemple) depuis une machine du r�seau local.
Cela ne doit pas fonctionner. Dans le cas contraire, le masquage IP
ou la transmission IP sont activ�s ou vous avez d�j� une sorte de
filtrage de paquet positionn�e. D�sactivez-les et r�essayez. Vous
devez savoir si le filtrage est en place.
Pour les noyaux post�rieurs au 2.1.102, vous pouvez utiliser la
commande :
echo "0" > /proc/sys/net/ipv4/ip_forward
Si, en revanche, vous utilisez un noyau plus ancien (pourquoi ?), vous
devrez recompiler celui-ci en d�sactivant la transmission IP (IP
forwarding, mais mettez plut�t votre noyau � jour).
Essayez � nouveau d'atteindre l'adresse ext�rieure du pare-feu
(199.1.2.10 dans notre exemple) depuis une machine du r�seau local.
Cela ne doit pas fonctionner.
Maintenant, activez la transmission IP et/ou le masquage IP. Vous
devez �tre � m�me d'atteindre n'importe quel point d'Internet depuis
n'importe quelle machine de votre r�seau local.
echo "0" > /proc/sys/net/ipv4/ip_forward
Note importante : Si vous utilisez des adresses IP "r�elles" sur votre
r�seau local (et non 192.168.xxx.yyy) et que vous ne puissisez
atteindre Internet, mais que vous puissiez atteindre le c�t� ext�rieur
de votre pare-feu, v�rifiez que votre FAI route correctement les
paquets depuis l'adresse de votre r�seau priv�.
Un test de ce probl�me est de conna�tre quelqu'un d'autre sur Internet
(un ami utilisant un fournisseur local, par exemple) et de lui
demander d'effectuer un traceroute vers votre r�seau. Si la trace
s'arr�te sur le routeur de votre fournisseur, c'est qu'il ne transmet
pas votre trafic.
�a fonctionne ? Bien. La partie la plus difficile est faite. :-)
55..55.. SS��ccuurriisseerr llee ppaarree--ffeeuu
Le pare-feu n'est d'aucune utilit� s'il reste largement ouvert aux
attaques. Un "m�chant" pourrait obtenir l'acc�s au pare-feu et le
modifier pour ses desseins personnels. Vous devez d�sactiver tous les
services inutilis�s.
Regardez dans votre fichier /etc/inetd.conf. Ce fichier contr�le
inetd qu'on appelle aussi "super-serveur". Il contr�le un tas de
daemons serveurs et les ex�cute � la demande, � partir des paquets qui
arrivent sur un port "bien connu" (well known port).
Vous devez d�sactiver echo, discard, daytime, chargen, ftp, gopher,
shell, login, exec, talk, ntalk, pop-2, pop-3, netstat, systat, tftp,
bootp, finger, cfinger, time, swat ainsi que linuxconfig si vous en
poss�dez un.
Pour d�sactiver un service, placez simplement un "#" (di�ze) 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 sans
arr�ter votre syst�me.
Testez le r�sultat par telnet sur le port 15 (netstat) du pare-feu.
Si vous obtenez une r�ponse de netstat, c'est que vous n'avez pas
arr�t� ces services correctement.
telnet localhost 15
Vous pouvez aussi cr�er le fichier /etc/nologin. Placez-y quelques
mots (comme "CONNEXION STOPPEE"). Lorsque ce fichier existe, login
n'autorise pas de connexion d'utilisateur. Ceux-ci verront simplement
le contenu de ce fichier et leur connexion sera refus�e. Seul root
peut alors se loger.
Vous pouvez encore �diter le fichier /etc/securetty. Si l'utilisateur
est root, la connexion doit s'effectuer depuis l'un des p�riph�riques
indiqu�s dans /etc/securetty. Les �checs seront trac�s par la
facilit� syslog. Avec ces deux contr�les actifs, la seule mani�re de
se connecter sur le pare-feu est de se pr�senter comme root sur la
console.
66.. CCoonnffiigguurraattiioonn dduu ffiillttrraaggee IIPP ((IIPPFFWWAADDMM))
Si vous utilisez un noyau 2.1.102 ou sup�rieur, passez directement �
la section suivante sur IPCHAINS.
Dans les anciens noyaux, la transmission IP est activ�e par d�faut.
Pour cette raison, votre r�seau doit commencer par refuser l'acc�s �
tout et vider toutes les r�gles de transmission (ipfw) en place depuis
le dernier lancement. Le fragment de script suivant doit se trouver
dans votre script de lancement r�seau (en g�n�ral,
/etc/rc.d/init.d/network) :
#
# configuration de la transmission IP et
# de la trace
#
# Transmission
#
# Par defaut INTERDIRE tous les services
ipfwadm -F -p deny
# Vider toutes les regles de trace
ipfwadm -F -f
ipfwadm -I -f
ipfwadm -O -f
Maintenant, nous avons un pare-feu absolu. Rien ne peut passer au
travers.
Maintenant, on peut cr�er le fichier /etc/rc.d/rc.firewall. Ce script
doit autoriser le passage des trafics courrier, web et DNS. ;-)
#!/bin/sh
#
# rc.firewall
#
# Lancement de la bibliotheque de fonctions
. /etc/rc.d/init.d/functions
# Lecture de la configuration
. /etc/sysconfig/network
# On controle que le reseau soit actif
if [ $NETWORKING = "no" ]
then
exit 0
fi
case "$1" in
start)
echo -n "Lancement des services du pare-feu : "
# Autorise le courriel a arriver au serveur
/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25
# Autorise les connexions aux serveurs courriel externes
/sbin/ipfwadm -F -a accept -b -P tcp -S 192.1.2.10 25 -D 0.0.0.0/0 1024:65535
# Autorise les connexions a notre serveur web
/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.11 80
# Autorise les connexions aux serveurs web externes
/sbin/ipfwadm -F -a accept -b -P tcp -S 192.1.2.* 80 -D 0.0.0.0/0 1024:65535
# Autorise le trafic DNS
/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 192.1.2.0/24
;;
stop)
echo -n "Arret des services du pare-feu : "
ipfwadm -F -p deny
;;
status)
echo -n "Montrez-vous les statistiques du pare-feu ?"
;;
restart|reload)
$0 stop
$0 start
;;
*)
echo "Usage: firewall {start|stop|status|restart|reload}"
exit 1
esac
Note : Dans cet exemple, nous avons un serveur courriel (SMTP) qui
tourne sur 192.1.2.10 qui doit �tre capable d'envoyer et recevoir des
paquets sur le port 25. Le serveur web tourne sur 192.1.2.11. Nous
autorisons quiconque sur le r�seau local � acc�der aux serveurs web
externes ainsi qu'aux serveurs DNS.
Cet exemple n'est pas parfaitement s�curis�. Puisque le port 80 n'est
pas obligatoirement utilis� comme port web, un intrus rus� pourrait
utiliser celui-ci pour cr�er un r�seau priv� virtuel (VPN : virtual
private network) au-travers du pare-feu. Pour contourner cela, il
faut configurer un mandataire web, et n'autoriser que celui-ci �
traverser le pare-feu. Les utilisateurs du r�seau local devront alors
passer par le mandataire pour atteindre les serveurs web ext�rieurs.
On peut aussi s'int�resser � la surveillance du trafic qui passe au-
travers du pare-feu. Le script qui suit compte chaque paquet. On
peut ajouter une ou deux lignes pour compter les paquets qui vont vers
un syst�me particulier.
# Flush the current accounting rules
ipfwadm -A -f
# Accounting
/sbin/ipfwadm -A -f
/sbin/ipfwadm -A out -i -S 192.1.2.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 192.1.2.0/24
/sbin/ipfwadm -A in -i -S 192.1.2.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 192.1.2.0/24
Si tout ce que vous cherchez est un pare-feu filtrant, vous pouvez
vous arr�ter ici. Testez-le et amusez-vous bien :-)
77.. CCoonnffiigguurraattiioonn dduu ffiillttrraaggee IIPP ((IIPPcchhaaiinnss))
Les ipchains Linux sont une r��criture du code pare-feu IPv4 de Linux
(en grande partie inspir� de BSD) ainsi que de ipfwadm qui �tait lui-
m�me une r��criture du ipfw de BSD, je crois. Il est indispensable
d'administrer les filtres de paquets IP dans les noyaux Linux versions
2.1.102 et au-del�.
L'ancien code ne g�re pas les fragments, a des compteurs sur 32 bits
(sur Intel en tout cas), ne permet aucune autre sp�cification de
protocole que TCP, UDP ou ICMP, ne peut r�aliser de vastes
modifications de mani�re atomique, ne peut sp�cifier de r�gles
invers�es, a quelques d�fauts et peut se r�v�ler dur � administrer (ce
qui le rend vuln�rable aux erreurs d'utilisation). Ou du moins c'est
ce qu'en dit l'auteur.
Je ne vais pas entrer en d�tail sur la mani�re de contr�ler un pare-
feu IPchains, car il existe un _BON !!_ HOWTO qui en parle sur
http://www.rustcorp.com/linux/ipchains/HOWTO.html. Je finirais juste
par le recopier ici. En voici les bases.
On travaille avec les cha�nes par noms. Il existe au d�but trois
cha�nes pr�d�finies input, output et forward, qu'il est impossible de
supprimer. On peut cr�er des cha�nes personnelles. Des r�gles
peuvent ensuite �tre ajout�es et supprim�es de ces ensembles de
r�gles.
Les op�rations n�cessaires pour travailler sur les cha�nes sont les
suivantes :
1. cr�ation d'une nouvelle cha�ne (-N) ;
2. suppression d'une cha�ne vide (-X) ;
3. modification de la sp�cification pour une cha�ne pr�d�finie (-P)
4. liste des r�gles d'une cha�ne (-F) ;
5. remise � z�ro des compteurs de paquets et d'octets de toutes les
r�gles d'une cha�ne (-Z).
Il existe diff�rentes m�thodes pour manipuler les r�gles � l'int�rieur
des cha�nes :
1. ajout d'une nouvelle r�gle dans une cha�ne (-A) ;
2. insertion d'une nouvelle r�gle � une position donn�e d'une cha�ne
(-I) ;
3. remplacement d'une r�gle � une position donn�e d'une cha�ne (-R) ;
4. suppression d'une r�gle � une position donn�e d'une cha�ne (-D) ;
5. suppression de la premi�re r�gle correspondante dans une cha�ne
(-D).
Il existe quelques op�rations pour le masquage qui se trouvent dans
ipchains dans l'attente d'un bon emplacement pour les placer :
1. liste des connexions actuellement masqu�es (-M -L) ;
2. positionnement du temps d'expiration du masquage (-M -S).
Il y a quelques d�tails de chronologie qui interviennent dans la
modification des r�gles de pare-feu. Si l'on n'est pas suffisamment
prudent, il est possible de laisser passer quelques paquets pendant la
mise en place des modifications. Une approche simpliste est la
suivante :
# ipchains -I input 1 -j DENY
# ipchains -I output 1 -j DENY
# ipchains -I forward 1 -j DENY
... r�alisation des modification ...
# ipchains -D input 1
# ipchains -D output 1
# ipchains -D forward 1
#
Cela interdit tout passage de paquet durant les modifications.
Voici une copie des r�gles de pare-feu qui pr�c�dent dans IPChains :
#!/bin/sh
#
# rc.firewall
#
## Tout vider et repartir du debut
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward
## Redirection pour le mandatement transparent de HTTP
#$IPCHAINS -A input -p tcp -s 192.1.2.0/24 -d 0/0 80 -j REDIRECT 8080
## Creation de nos propres chaines
/sbin/ipchains -N ma-chaine
# On autorise le courriel entrant vers le serveur
/sbin/ipchains -A ma-chaine -s 0.0.0.0/0 smtp -d 192.1.2.10 1024:-j ACCEPT
# On autorise les connexions courriel vers l'ext�rieur
/sbin/ipchains -A ma-chaine -s 192.1.2.10 -d 0.0.0.0/0 smtp -j ACCEPT
# On autorise les connexions web entrantes vers le serveur
/sbin/ipchains -A ma-chaine -s 0.0.0.0/0 www -d 192.1.2.11 1024: -j ACCEPT
# On autorise les connexions web vers l'ext�rieur
/sbin/ipchains -A ma-chaine -s 192.1.2.0/24 1024: -d 0.0.0.0/0 www -j ACCEPT
# On autorise le trafic DNS
/sbin/ipchains -A ma-chaine -p UDP -s 0.0.0.0/0 dns -d 192.1.2.0/24 -j ACCEPT
## Si on utilise le masquage
# On ne masque pas le trafic interne
/sbin/ipchains -A forward -s 192.1.2.0/24 -d 192.1.2.0/24 -j ACCEPT
# On ne masque pas l'interface externe directe
/sbin/ipchains -A forward -s 199.1.2.0/24 -d 0/0 -j ACCEPT
# On masque tout paquet interne qui sort
/sbin/ipchains -A forward -s 192.1.2.0/24 -d 0/0 -j MASQ
## On interdit tout le reste
/sbin/ipchains -P my-chains input DENY
Il ne faut pas s'arr�ter l�. Ce n'est pas un pare-feu tr�s puissant
et je suis s�r qu'il y a d'autres services que vous souhaiteriez
fournir. � nouveau, lisez le IPCHAINS-HOWTO.
88.. RReennddrree llee ttoouutt pplluuss ssiimmppllee
Il existe des interfaces graphiques ou fond�es sur le web d�velopp�es
pour fonctionner avec les r�gles de filtrage Linux. Un certain nombre
d'entreprises ont m�me cr�� des pare-feux commerciaux fond�s sur Linux
en le pla�ant dans leur propre machine avec leur propre code de
management (joli).
gfcc (GTK+ Firewall Control Center) est une application GTK+ capable
de contr�ler les principes et r�gles de filtrage de Linux, fond�e sur
le paquetage ipchains. Rendez-vous sur
http://megaman.ypsilonia.net/kfirewall/.
FCT est un outil HTML de configuration de pare-feu. Il permet la
g�n�ration automatique de scripts de commandes de filtrage IP
(ipfwadm) sur un pare-feu pour des interfaces multiples et tout
service internet
http://www.fen.baynet.de/~ft114/FCT/firewall.htm
99.. IInnssttaalllleerr uunn mmaannddaattaaiirree SSqquuiidd ttrraannssppaarreenntt
Le mandataire squid est disponible sur
http://squid.nlanr.net/.
Les d�veloppeurs de squid fournissent des paquetages aux formats
RedHat et Debian. Si vous le pouvez, il vaut mieux utiliser l'un
d'entre eux.
1100.. IInnssttaalllleerr llee sseerrvveeuurr mmaannddaattaaiirree TTIISS
1100..11.. TTrroouuvveerr llee llooggiicciieell
Le TIS fwtk est disponible �
http://www.tis.com/research/software/.
NNee ccoommmmeetttteezz ppaass ll''eerrrreeuurr qquuee jj''aaii ccoommmmiissee :: lorsque vous t�l�chargez
les fichiers de TIS, LISEZ LES README. Le TIS fwtk est verrouill�
dans un r�pertoire cach� sur leur serveur.
TIS impose que vous lisiez leur accord �
http://www.tis.com/research/software/fwtk_readme.html, puis que vous
eennvvooyyiieezz uunn ccoouurrrriieell �� ffwwttkk--rreeqquueesstt@@ttiissllaabbss..ccoomm avec le seul mot
aacccceepptteedd dans le corps du message pour conna�tre le nom de ce
r�pertoire cach�. Aucun sujet n'est n�cessaire pour ce message. Leur
syst�me vous enverra en retour le nom du r�pertoire par courriel
(valaple 12 heures) pour charger le source.
A l'instant o� j'�cris, la version � jour du FWTK est 2.1.
1100..22.. CCoommppiillaattiioonn dduu FFWWTTKK TTIISS
La version 2.1 du FWTK se compile beaucoup plus facilement que les
pr�c�dentes.
EXPLIQUER ICI !!!
Maintenant, lancez mmaakkee.
1100..33.. IInnssttaallllaattiioonn dduu FFWWTTKK TTIISS
Lancez mmaakkee iinnssttaallll.
Le r�pertoire d'installation par d�faut est /usr/local/etc. Il est
possible de changer cela (ce que je n'ai pas fait) vers un r�pertoire
plus s�r. J'ai choisi de changer l'acc�s � ce r�pertoire pour le mode
"0700".
Tout ce qu'il reste � faire maintenant est de configurer le pare-feu.
1100..44.. CCoonnffiigguurraattiioonn dduu FFWWTTKK TTIISS
Maintenant, le plaisir commence vraiment. Nous devons enseigner au
syst�me � appeler ces nouveaux services et cr�er les tables pour les
contr�ler.
Je ne suis pas en train de r�-�crire le manuel de TIS fwtk ici. Je
vais montrer les param�tres que j'ai fait fonctionner et expliquer les
probl�mes que j'ai rencontr�s et comment je les ai contourn�s.
Trois fichiers d�finissent ces contr�les :
� /etc/services : indique au syst�me sur quel port se trouve un
service ;
� /etc/inetd.conf : indique � inetd le programme � lancer lorsque
quelqu'un appelle un port de service ;
� /usr/local/etc/netperm-table : indique aux services fwtk � qui
autoriser ou interdire l'acc�s au service.
Pour faire fonctionner fwtk, vous devez �diter ces fichiers de bas en
haut. Editer le fichier des services sans que les fichiers inetd.conf
ou netperm-table soient corrects peut rendre votre syst�me
inaccessible.
1100..44..11.. LLee ffiicchhiieerr nneettppeerrmm--ttaabbllee
Ce fichier contr�le qui a acc�s aux services de TIS FWTK. Vous devez
penser au trafic qui passe par le pare-feu depuis les deux c�t�s. Les
gens de l'ext�rieur de votre r�seau doivent s'identifier avant
d'obtenir l'acc�s, mais ceux de l'int�rieur doivent �tre autoris�s
simplement � passer au-travers.
Afin que les gens puissent s'identifier, le pare-feu utilise un
programme appel� aauutthhssrrvv pour maintenir une base des noms et mots de
passe. La section authentification de netperm-table contr�le
l'emplacement et l'acc�s � la base.
J'ai eu quelques difficult�s � fermer l'acc�s � ce service. Notez que
la ligne permit-hosts que je montre utilise un "*" pour donner l'acc�s
� tout le monde. Le param�trage correct de cette ligne est : authsrv:
permit-hosts localhost, si vous arrivez � la faire fonctionner.
#
# Table de configuration du mandataire
#
# Regles d'authentification client et serveur
authsrv: database /usr/local/etc/fw-authdb
authsrv: permit-hosts *
authsrv: badsleep 1200
authsrv: nobogus true
# Applications client utilisant le serveur d'authentification
*: authserver 127.0.0.1 114
Pour initialiser la base, passez root et lancez ..//aauutthhssrrvv dans le
r�pertoire /var/local/etc pour cr�er l'enregistrement de l'utilisateur
d'administration.
La documentation de FWTK indique la mani�re d'ajouter des utilisateurs
et des groupes.
Voici un exemple de session :
#
# authsrv
authsrv# list
authsrv# adduser admin "Auth DB admin"
ok - user added initially disabled
authsrv# ena admin
enabled
authsrv# proto admin pass
changed
authsrv# pass admin "plugh"
Password changed.
authsrv# superwiz admin
set wizard
authsrv# list
Report for users in database
user group longname ok? proto last
------ ------ ------------------ ----- ------ -----
admin Auth DB admin ena passw never
authsrv# display admin
Report for user admin (Auth DB admin)
Authentication protocol: password
Flags: WIZARD
authsrv# ^D
EOT
#
Les contr�les de la passerelle telnet (tn-gw) vont de soi et sont la
premi�re chose que vous deviez configurer.
Dans mon exemple, j'autorise une machine du r�seau priv� � passer sans
s'authentifier (permit-hosts 19961.2.* -passok). En revanche, tout
autre utilisateur doit entrer ses nom et mot de passe pour utiliser le
mandataire (permit-hosts * -auth).
J'autorise aussi un autre syst�me (192.1.2.202) � acc�der au pare-feu
directement sans passer du tout par celui-ci. Les deux lignes
inetacl-in.telnetd font cela. J'expliquerai plus loin comment ces
lignes sont utilis�es.
Le timeout de telnet doit rester court :
# regles de passerelle telnet :
tn-gw: denial-msg /usr/local/etc/tn-deny.txt
tn-gw: welcome-msg /usr/local/etc/tn-welcome.txt
tn-gw: help-msg /usr/local/etc/tn-help.txt
tn-gw: timeout 90
tn-gw: permit-hosts 192.1.2.* -passok -xok
tn-gw: permit-hosts * -auth
# Seul l'administrateur peut telneter directement le pare-feu
# sur le port 24
netacl-in.telnetd: permit-hosts 192.1.2.202 -exec /usr/sbin/in.telnetd
Les commandes "r-" fonctionnent de la m�me mani�re que telnet :
# regles de passerelle rlogin :
rlogin-gw: denial-msg /usr/local/etc/rlogin-deny.txt
rlogin-gw: welcome-msg /usr/local/etc/rlogin-welcome.txt
rlogin-gw: help-msg /usr/local/etc/rlogin-help.txt
rlogin-gw: timeout 90
rlogin-gw: permit-hosts 192.1.2.* -passok -xok
rlogin-gw: permit-hosts * -auth -xok
# Seul l'administrateur peut telneter directement le pare-feu
# sur le port
netacl-rlogind: permit-hosts 192.1.2.202 -exec /usr/libexec/rlogind -a
Personne ne devrait avoir acc�s directement au pare-feu, et cela
inclut FTP, donc ne placez pas de serveur FTP sur votre pare-feu.
� nouveau, la ligne permit-hosts autorise quiconque depuis le r�seau
prot�g� � acc�der librement � InterNet et tous les autres utilisateurs
doivent s'authentifier. J'ai ajout� la trace de chaque fichier envoy�
et re�u dans mes contr�les (-log { retr stor }).
Le timeout FTP contr�le le temps mis � fermer une mauvaise connexion,
ainsi que le temps d'inactivit� maximal d'une session ouverte :
# regles de passerelle ftp :
ftp-gw: denial-msg /usr/local/etc/ftp-deny.txt
ftp-gw: welcome-msg /usr/local/etc/ftp-welcome.txt
ftp-gw: help-msg /usr/local/etc/ftp-help.txt
ftp-gw: timeout 300
ftp-gw: permit-hosts 192.1.2.* -log { retr stor }
ftp-gw: permit-hosts * -authall -log { retr stor }
Le web, gopher et le ftp fond� sur un butineur sont contr�l�s par le
http-gw. Les deux premi�res lignes cr�ent un r�pertoire pour stocker
les documents ftp et web lorsqu'ils passent au-travers du pare-feu.
Je rends root propri�taire de ces fichiers et je les place dans un
r�pertoire accessible seulement par root.
La connexion web doit �tre maintenue courte. Elle contr�le le temps
durant lequel un utilisateur attendra lors d'une mauvaise connexion :
# regles de passerelle www et gopher :
http-gw: userid root
http-gw: directory /jail
http-gw: timeout 90
http-gw: default-httpd www.afs.net
http-gw: hosts 192.1.2.* -log { read write ftp }
http-gw: deny-hosts *
Le ssl-gw est juste une passerelle "gruy�re". Faites-y attention.
Dans cet exemple, j'autorise quiconque depuis le r�seau prot�g� � se
connecter en-dehors du r�seau sauf les adresses 127.0.0.* et
192.1.1.*, puis seulement sur les ports 443 � 563. Ces derniers sont
les ports SSL connus :
# Regles de passerelle SSL :
ssl-gw: timeout 300
ssl-gw: hosts 192.1.2.* -dest { !127.0.0.* !192.1.1.* *:443:563 }
ssl-gw: deny-hosts *
Voici un exemple d'utilisation de plug-gw pour autoriser des
connexions � un serveur de nouvelles. Dans cet exemple j'autorise
quiconque depuis le r�seau prot�g� � se connecter seulement � un
syst�me et seulement sur son port de nouvelles.
La seconde ligne permet au serveur de renvoyer ses donn�es au r�seau
prot�g�.
Puisque de nombreux clients s'attendent � rester connect�s pendant que
l'utilisateur lit les nouvelles, le timeout pour un serveur de
nouvelles doit �tre long :
# passerelle plug-in pour les nouvelles :
plug-gw: timeout 3600
plug-gw: port nntp 192.1.2.* -plug-to 199.5.175.22 -port nntp
plug-gw: port nntp 199.5.175.22 -plug-to 192.1.2.* -port nntp
La passerelle finger est simple. Quiconque depuis le r�seau prot�g�
doit se connecter d'abord, puis nous l'autorisons � utiliser le
programme finger du pare-feu. Tout autre re�oit simplement un
message :
# Autorise le service finger :
netacl-fingerd: permit-hosts 192.1.2.* -exec /usr/libexec/fingerd
netacl-fingerd: permit-hosts * -exec /bin/cat /usr/local/etc/finger.txt
Je n'ai pas configur� les services courriel ni X-Window, donc je
n'inclus pas les exemples. Si quelqu'un dispose d'un exemple qui
fonctionne, qu'il me l'envoie par courriel.
1100..44..22.. LLee ffiicchhiieerr //eettcc//sseerrvviicceess
C'est l� que tout commence. Lorsqu'un client se connecte sur le pare-
feu, il le fait sur un port connu (inf�rieur � 1024). Par exemple,
telnet se connecte sur le port 23. Le daemon inetd d�tecte cette
connexion et cherche le nom du service dans le fichier /etc/services.
Ensuite, il lance le programme assign� au nom dans le fichier
/etc/inetd.conf.
Certains des services que nous cr�ons ne sont pas normalement dans le
fichier /etc/services. Vous pouvez assigner � certains d'entre eux le
port que vous souhaitez. Par exemple, j'ai assign� le port telnet de
l'administrateur (telnet-a) sur le port 24. Pous pouvez l'assigner au
port 2323 si vous voulez. Pour que l'administrateur (VOUS) se
connecte directement sur le pare-feu, il doit utiliser telnet sur le
port 24 et non 23 et si vous param�trez votre netperm-table comme je
l'ai fait, vous serez seulement capable de faire cela depuis un
syst�me situ� � l'int�rieur du r�seau prot�g�.
telnet-a 24/tcp
ftp-gw 21/tcp # ce nom est modifie
auth 113/tcp ident # Verification utilisateur
ssl-gw 443/tcp
1111.. LLee sseerrvveeuurr mmaannddaattaaiirree SSOOCCKKSS
1111..11.. IInnssttaallllaattiioonn dduu sseerrvveeuurr mmaannddaattaaiirree
Le serveur mandataire SOCKS est disponible sur :
http://www.socks.nec.com/.
D�compressez et "d�-tarez" les fichiers dans un r�pertoire de votre
syst�me, et suivez les instructions pour le confectionner. J'ai eu
quelques probl�mes pour le r�aliser. V�rifiez que vos Makefiles
soient corrects.
Une chose importante est que le serveur mandataire doit �tre ajout�
dans /etc/inetd.conf. Vous devez ajouter une ligne :
socks stream tcp nowait nobody /usr/local/etc/sockd sockd
pour indiquer au serveur de s'ex�cuter sur demande.
1111..22.. CCoonnffiigguurraattiioonn dduu sseerrvveeuurr mmaannddaattaaiirree
Le programme de connexion n�cessite deux fichiers de configuration
distincts : l'un pour indiquer les acc�s autoris�s, l'autre pour
rediriger les requ�tes vers le serveur mandataire appropri�. Le
fichier d'autorisations d'acc�s doit se trouver sur le serveur. Le
fichier de routage peut �tre plac� sur n'importe quelle machine Unix.
Les ordinateurs DOS et, je pense, les Macintosh font leur propre
routage.
1111..22..11.. LLee ffiicchhiieerr dd''aacccc��ss
Avec socks4.2 b�ta, le fichier d'acc�s s'appelle "sockd.conf". Il
doit contenir deux lignes : une ligne d'autorisations et une ligne
d'interdictions. Chaque ligne pr�sente trois champs :
� l'identificateur (permit ou deny) ;
� l'adresse IP ;
� le modificateur d'adresse.
L'identificateur est soit permit, soit deny. Vous devez avoir aussi
bien une ligne permit qu'une ligne deny.
L'adresse IP contient une adresse � quatre octets en notation
classique IP, soit, par exemple, 192.168.2.0.
Le masque de modification d'adresse est aussi une adresse � quatre
octets en notation classique IP, et fonctionne comme un masque r�seau.
Repr�sentez-vous ce nombre sur 32 bits. Si un bit est � 1, le bit
correspondant de l'adresse qu'il contr�le doit concorder avec le bit
correspondant du champ de l'adresse IP.
Par exemple, une ligne :
permit 192.168.2.23 255.255.255.255
autorisera seulement l'adresse dont chaque bit correspond �
192.168.2.23, donc seulement 192.168.2.23.
Tandis que la ligne :
permit 192.168.2.0 255.255.255.0
autorisera toute adresse du groupe 192.168.2.0 � 192.168.2.255, soit
tout le domaine de la classe C.
Il ne faut pas sp�cifier la ligne :
permit 192.168.2.0 0.0.0.0
qui autoriserait toute adresse, sans distinction.
Aisni, autorisez toute adresse que vous souhaitez, puis interdisez le
reste. Pour autoriser quiconque dans le domaine 192.168.2.xxx, les
lignes :
permit 192.168.2.0 255.255.255.0
deny 0.0.0.0 0.0.0.0
fonctionneront tr�s bien. Notez le premier "0.0.0.0" dans la ligne
"deny". Avec un modificateur de 0.0.0.0, le champ adresse IP n'a
aucune importance. Tous les champs � 0 repr�sentent la norme, car
c'est facile � �crire.
On peut utiliser plusieurs lignes de chaque type.
Des utilisateurs sp�cifiques peuvent aussi se voir accorder ou refuser
l'acc�s. Cela est r�alis� par l'authentification d'identit�. Tous
les syst�mes ne supportent pas le syst�me ident, y compris Trumpet
Winsock, donc nous n'irons pas plus loin en ce qui concerne cela. La
documentation de socks est tout � fait ad�quate sur ce sujet.
1111..22..22.. LLee ffiicchhiieerr ddee rroouuttaaggee
Le fichier de routage de socks est b�tement nomm� "socks.conf". Je
dis "b�tement", car il est si proche du nom du fichier d'acc�s qu'il
est ais� de les confondre.
Le fichier de routage sert � indiquer aux clients de socks quand il
est n�cessaire de l'utiliser et quand ce n'est pas le cas. Par
exemple, dans notre r�seau, 192.168.2.3 ne n�cessite pas l'usage de
socks pour communiquer avec le pare-feu 192.168.2.1. Il a une
connection directe Ethernet. Il d�finit 127.0.0.1, le port de
bouclage, automatiquement. Evidemment, il n'est pas n�cessaire
d'utiliser socks pour vous parler � vous-m�me.
Il y a trois entr�es :
� deny ;
� direct ;
� sockd.
L'entr�e "deny" indique � socks quand rejeter une requ�te. Cette
entr�e a les trois m�mes champs que ceux de sockd.conf :
identificateur, adresse et modificateur. G�n�ralement, puisqu'il est
aussi manipul� par sockd.file, le fichier d'acc�s, le champ
modificateur est positionn� � 0.0.0.0. Si vous voulez vous interdire
tout appel vers l'ext�rieur, vous pouvez le r�aliser ici.
L'entr�e "direct" indique pour quelles adresses ne pas utiliser socks.
Il s'agit des adresses pouvant �tre atteintes sans le serveur
mandataire. A nouveau, nous avons les trois champs identificateur,
adresse et modificateur.
Dans notre exemple, nous aurions :
direct 192.168.2.0 255.255.255.0
donnant ainsi l'acc�s direct pour toute machine de notre r�seau
prot�g�.
L'entr�e "sockd" indique � l'ordinateur l'emplacement du d�mon serveur
de socks.
La syntaxe est la suivante :
sockd @=<liste de serveurs> <adresse IP> <modificateur>
Notez l'entr�e @=. Elle vous permet de configurer les adresses IP de
plusieurs serveurs mandataires. Dans notre exemple, nous utilisons un
seul serveur mandataire, mais vous pouvez en avoir plusieurs pour
permettre un plus grand trafic et pour assurer une tol�rance aux
pannes.
Les champs adresse IP et modificateur fonctionnent exactement comme
dans les autres exemples. Vous sp�cifiez ainsi o� va quelle adresse.
1111..22..33.. DDNNSS ddeeppuuiiss ll''aarrrrii��rree dd''uunn ppaarree--ffeeuu
Configurer un service de noms de domaines depuis l'arri�re d'un pare-
feu est une t�che relativement simple. En gros, il vous faut
configurer le DNS sur la machine pare-feu. Ensuite, indiquez � chaque
machine deri�re le pare-feu d'utiliser celui-ci.
1111..33.. TTrraavvaaiilllleerr aavveecc uunn sseerrvveeuurr mmaannddaattaaiirree
1111..33..11.. UUnniixx
Pour faire fonctionner vos applications avec un serveur mandataire,
celles-ci doivent �tre "SOCK-ifi�es". Il vous faudra deux telnet
diff�rents : un pour la communication directe, et un autre pour celle
avec le serveur mandataire. Le paquetage socks contient des
indications pour SOCK-ifier un programme, ainsi qu'un certain nombre
de programmes pr�-SOCK-ifi�s. Si vous utilisez la version SOCK-ifi�e
pour aller � un emplacement direct, socks basculera automatiquement
sur la version directe pour vous. Pour cette raison, il nous faut
renommer tous les programmes sur notre r�seau prot�g� et les remplacer
par leur version SOCK-ifi�e. "finger" devient "finger.orig", "telnet"
devient "telnet.orig", etc. Vous devez indiquer chacun d'eux � socks
� l'aide du fichier include/socks.
Certains programmes traitent le routage et la SOCK-ification eux-
m�mes. Netscape est l'un d'entre eux. Vous pouvez utiliser un
serveur mandataire sous Netscape en donnant l'adresse du serveur
(192.168.2.1 dans le cas qui nous int�resse) dans le champ SOCKs sous
Proxies. Chaque application n�cessite au moins un petit coup d'oeil,
quelle que soit son attitude vis-�-vis d'un serveur mandataire.
1111..33..22.. MMSS WWiinnddoowwss aavveecc TTrruummppeett WWiinnssoocckk
Trumpet Winsock contient des fonctionnalit�s de serveur mandataire
incluses. Dans le menu "setup", donnez l'adresse IP du serveur, ainsi
que celles de tous les ordinateurs directement accessibles. Trumpet
se d�brouillera alors avec tous les paquets sortants. NdT : Trumpet
Winsock est une couche IP destin�e � MS-Windows 3. Depuis la version
3.11 de Windows, Microsoft fournit une couche IP dont les
fonctionnalit�s sont tr�s diff�rentes.
1111..44.. FFaaiirree ffoonnccttiioonnnneerr llee sseerrvveeuurr mmaannddaattaaiirree aavveecc lleess ppaaqquueettss UUDDPP
Le paquetage SOCKS fonctionne seulement avec les paquets TCP, pas avec
les UDP. Cela le rend quelque peu moins utile. De nombreux
programmes tr�s utiles, comme talk et Archie, utilisent UDP. Il
existe un paquetage pr�vu pour �tre utilis� comme serveur mandataire
pour les paquets UDP appel� UDPrelay, de Tom Fitzgerald
[email protected].
Malheureusement, � l'heure o� ces lignes sont �crites, il n'est pas
compatible avec Linux.
1111..55.. IInnccoonnvv��nniieennttss ddeess sseerrvveeuurrss mmaannddaattaaiirree
Le serveur mandataire est, avant tout, un syst�me de s�curit�. Son
utilisation pour augmenter le nombre d'acc�s Internet avec un nombre
limit� d'adresses aura de nombreux inconv�nients. Un serveur
mandataire autorisera un plus grand acc�s de l'int�rieur du r�seau
prot�g� vers l'ext�rieur, mais laissera l'int�rieur totalement
inaccessible de l'ext�rieur. Ce qui implique aucun serveur, aucune
connexion talk ni Archie, ni courriel direct vers les ordinateurs de
l'int�rieur. Ces inconv�nients peuvent sembler l�gers, mais regardez-
les sous l'angle suivant :
� Vous avez laiss� un document en cours sur votre ordinateur �
l'int�rieur du r�seau prot�g�. Vous �tes � la maison, et d�cidez
que vous voulez retravailler celui-ci. Vous ne le pouvez pas.
Vous ne pouvez atteindre votre ordinateur, car il est derri�re le
pare-feu. Vous essayez de vous loger d'abord sur le pare-feu, mais
comme tout le monde a acc�s au serveur mandataire, personne ne vous
a cr�� de compte dessus.
� Votre fille va � l'universit�. Vous souhaitez lui envoyer un
courriel. Vous avez diff�rents choses de caract�re priv� �
discuter, et pr�f�reriez recevoir directement votre courrier sur
votre machine. Vous avez pleine confiance dans votre
administrateur r�seau, mais, malgr� tout, il s'agit de courrier
priv�.
� L'impossibilit� d'utiliser les paquets UDP repr�sente un gros
inconv�nient avec les serveurs mandataire. Je pense que les
fonctionnalit�s UDP arriveront sous peu.
FTP cause un autre probl�me avec les serveurs mandataire : Lorsque FTP
r�cup�re une liste de fichiers, le serveur ouvre une socket sur la
machine client pour lui envoyer les informations. Un serveur
mandataire ne permettra pas cela, donc FTP en particulier ne
fonctionne pas.
De plus, les serveurs mandataires sont lents. A cause de la
d�gradation du rapport information/protocole, n'importe quel autre
moyen d'obtenir cet acc�s sera plus rapide.
En r�sum�, si vous avez les adresses IP n�cessaires, et que la
s�curit� ne soit pas un imp�ratif pour vous, n'utilisez ni un pare-feu
ni un serveur mandataire. Si vous n'avez pas suffisamment d'adresses
IP, mais que, de m�me, la s�curit� n'est pas fondamentale, vous pouvez
jeter un coup d'oeil aux �mulateurs IP, comme Term, Slirp ou TIA.
Term est disponible sur
ftp://sunsite.unc.edu, Slirp est disponible
sur
ftp://blitzen.canberra.edu.au/pub/slirp et TIA est disponible sur
marketplace.com. Ces paquetages iront plus vite, permettront de
meilleures connexions, et fourniront un acc�s sup�rieur � l'int�rieur
du r�seau depuis InterNet. Les serveurs mandataires sont utiles pour
ce genre de r�seaux qui comportent de nombreuses machines qui se
connectent au vol � InterNet, avec une configuration et peu de travail
ensuite.
1122.. CCoonnffiigguurraattiioonnss aavvaanncc��eess
Je voudrais aborder une configuration particuli�re avant de refermer
ce document. Celle que j'ai soulign�e pr�c�demment suffira
probablement pour de nombreux cas. N�ammoins, je pense que la
situation suivante montrera une configuration plus avanc�e qui
�claircira certains points d'ombre. S'il vous reste des questions
apr�s ce que je viens de d�crire, ou simplement que l'adaptabilit� des
serveurs mandataires et des pare-feux vous int�resse, lisez encore.
1122..11.. UUnn ggrraanndd rr��sseeaauu aavveecc ss��ccuurriitt�� rreennffoorrcc��ee
Disons, par exemple, que vous �tes le gourou de la secte de la 23�me
Cabale de la Discorde de Milwaukee. Vous souhaitez mettre votre site
en r�seau. Vous avez cinquante ordinateurs et un sous-r�seau de
trente-deux adresses IP (sur cinq bits). Vous avez diff�rents niveaux
d'acc�s parce que vous dites � vos disciples diff�rentes choses en
fonction de leur niveau. C'est pourquoi vous devez prot�ger certaines
parties du r�seau du reste.
(NdT : Le traducteur a conserv� la 23�me Cabale de la Discorde de
Milwaukee, issue du texte initial, contrairement � ce que contiennent
les nouvelles versions (millisha : version militaris�e) qui serait
moins explicite du principe pour un public francophone).
Les niveaux sont les suivants :
1. Le niveau ext�rieur. C'est celui qui est montr� � tout un chacun.
En gros, c'est l'histoire et les ragots sur Eris, la divinit� de la
Discorde, et tout le reste du dogme ;
2. Sage. C'est le niveau des gens qui ont pass� le niveau ext�rieur.
C'est l� que vous leur dites que la discorde et la structure ne
font qu'un, et qu'Eris est aussi le Dieu tout-puissant ;
3. Adepte. C'est l� que se trouve le plan r�el. Dans ce niveau sont
stock�es toutes les informations sur la mani�re dont la secte des
Discordiens prendra le pouvoir sur le monde, � l'aide d'un plan
d�viationniste, mais humoristique, impliquant PetitMou, HAL, R2D2,
Nounours et cinq cents cristaux, tous marqu�s "80585,9999999997"
par erreur.
1122..11..11.. LLaa ccoonnffiigguurraattiioonn dduu rr��sseeaauu
Les num�ros IP sont arrang�s ainsi :
� l'adresse 192.168.2.255 est l'adresse de diffusion, et n'est pas
disponible ;
� 23 des 32 adresses IP sont allou�es � 23 machines qui seront
accessibles depuis InterNet ;
� Une adresse IP suppl�mentaire va � une machine Linux sur ce
r�seau ;
� Une autre va � une autre machine Linux de ce r�seau ;
� 2 num�ros IP vont au routeur ;
� 4 sont laiss�es libres, mais recoivent les noms de domaine paul,
ringo, george et john, juste pour compliquer un peu les choses ;
� Les r�seaux prot�g�s ont tous deux des adresses 192.168.2.xxx.
Puis, deux r�seaux s�par�s sont construits, chacun dans une pi�ce
diff�rente. Ils sont rout�s par Ethernet infrarouge pour les rendre
compl�tement invisibles de la pi�ce ext�rieure. Par chance,
l'Ethernet infrarouge fonctionne tout � fait comme l'Ethernet normal,
donc il nous suffit de les consid�rer comme normaux.
Ces r�seaux sont connect�s chacun � sa machine Linux avec une adresse
IP suppl�mentaire.
Un serveur de fichiers relie les deux r�seaux prot�g�s. C'est parce
que les plans pour prendre le pouvoir sur le monde prennent en compte
certains des sages les plus �lev�s. Le serveur de fichiers a les
adresses 192.168.2.17 pour le r�seau des sages et 192.168.2.23 pour le
r�seau des adeptes. Il doit avoir des adresses IP diff�rentes, car il
doit avoir deux cartes Ethernet diff�rentes. La transmission IP y est
d�sactiv�e.
La transmission IP est aussi d�sactiv�e sur les deux machines Linux.
Le routeur ne transmettra pas les paquets destin�s � 192.168.2.xxx
sauf si on lui demande explicitement de le faire, donc InterNet ne
pourra pas entrer. La raison de la d�sactivation de la transmission
IP ici est d'emp�cher les paquets du r�seau des sages d'atteindre le
r�seau des adeptes, et vice versa.
Le serveur NFS peut aussi �tre configur� pour pr�senter diff�rents
fichiers aux diff�rents r�seaux. Cela peut devenir pratique, et assez
astucieux d'utiliser les liens symboliques pour partager les fichiers
communs. Cette configuration associ�e � une autre carte Ethernet peut
ainsi permettre l'usage d'un seul serveur de fichiers pour les trois
r�seaux.
1122..11..22.. LLaa ccoonnffiigguurraattiioonn dduu bbaassttiioonn
Maintenant, puisque les trois niveaux doivent �tre capables de piloter
le r�seau pour leurs propres besoins d�viationnistes, tous les trois
ont besoin d'un acc�s InterNet. Le r�seau ext�rieur est connect�
directement � celui-ci, donc nous n'avons pas � nous pr�occuper d'un
serveur mandataire ici. Les r�seaux des sages et des adeptes sont
derri�re des pare-feux, il est donc n�cessaire de leur configurer des
serveurs mandataires.
Les deux r�seaux seront configur�s de mani�re similaire. Tous deux
ont les m�mes adresses IP assign�es. Je vais ajouter quelques
param�tres, afin de rendre les choses encore plus int�ressantes :
1. Personne ne peut utiliser le serveur de fichiers pour l'acc�s
Internet. Cela exposerait le serveur de fichiers aux virus et
autres choses d�sagr�ables, et il est tr�s important, donc il est
derri�re les limites ;
2. Nous ne voulons pas donner aux sages l'acc�s au web. Il sont
encore en entra�nement, et cette puissance de recherche
d'informations peut se r�v�ler dangereuse.
Ainsi, le fichier sockd.conf de la machine Linux des sages contiendra
cette ligne :
deny 192.168.2.17 255.255.255.255
Et sur la machine des adeptes :
deny 192.168.2.23 255.255.255.255
Et la machine Linux des sages contiendra cette ligne :
deny 0.0.0.0 0.0.0.0 eq 80
Cela indique l'interdiction d'acc�s pour toutes les machines tentant
d'acc�der au port 80, le port http. Cela laisse l'acc�s � tous les
autres services, et interdit juste l'acc�s Web.
Ensuite, les deux fichiers auront :
permit 192.168.2.0 255.255.255.0
pour permettre � tous les ordinateurs du r�seau 192.168.2.xxx
d'utiliser ce serveur mandataire sauf pour ceux � qui cela a d�j� �t�
interdit (i.e. le serveur de fichiers et l'acc�s Web pour le r�seau
des sages).
Le fichier sockd.conf du r�seau des sages aura l'allure suivante :
deny 192.168.2.17 255.255.255.255
deny 0.0.0.0 0.0.0.0 eq 80
permit 192.168.2.0 255.255.255.0
et le fichier des adeptes aura celle-ci :
deny 192.168.2.23 255.255.255.255
permit 192.168.2.0 255.255.255.0
Cela doit tout configurer correctement. Chaque r�seau est isol� comme
il faut, avec le niveau d'interaction appropri�. Chacun peut �tre
heureux. Maintenant, prenez le pouvoir sur le monde !
1133.. SSiimmpplliiffiieerr ll''aaddmmiinniissttrraattiioonn
Un certain nombre de paquetages peuvent rendre l'administration de
votre pare-feu plus simple :
� Webmin
http://www.webmin.com/.
[ Lister les URL ICI ]
1144.. OOuuttrreeppaasssseerr uunn ppaarree--ffeeuu mmaannddaattaaiirree
Juste pour vous g�cher la journ�e et vous maintenir dans l'esprit de
s�curit�, je vais d�crire combien il est facile d'outrepasser un pare-
feu mandataire.
Imaginons que vous ayez r�alis� tout ce qui se trouve dans le pr�sent
document et que vous disposiez d'un r�seau et d'un serveur tr�s
s�curis�s. Vous disposez d'une zone d�militaris�e, personne ne peut
entrer dans votre r�seau et vous tracez chaque connexion r�alis�e vers
le monde ext�rieur. Vous obligez tous vos utilisateurs � passer par
un mandataire et le seul service que vous autorisiez directement vers
l'ext�rieur est le DNS (port 53).
Un port, c'est tout ce qu'il faut pour rendre un pare-feu inutile.
Voici comment cela se passe :
Commencez par configurer une machine Linux quelque part en-dehors de
votre r�seau. Un bon choix pourrait �tre une machine personnelle
connect�e � Internet par un modem-c�ble.
Demandez trois adresses IP � votre FAI. De nombreuses entreprises en
fournissent jusqu'� trois.
Sur cette machine, vous devez installer la partie client d'un r�seau
priv� virtuel (VPN). Cherchez sur
http://sunsite.auc.dk/vpnd/.
Maintenant, configurez le c�t� serveur du VPN sur une autre machine
Linux. Connectez ce serveur � son client par le port 53. Activez le
routage et la transmission IP et placez une adresse IP inutilis�e
(obtenue de votre FAI) sur son port r�seau local.
Finalement, sur un poste du r�seau priv�, changez la passerelle par
d�faut afin qu'elle pointe sur le serveur du VPN et ajoutez la
troisi�me adresse IP sur son port r�seau local.
Maintenant, depuis ce poste, vous pouvez aller n'importe o�. La seule
chose que l'administrateur voie est une recherche DNS particuli�rement
longue.
Maintenant, prenez le pouvoir sur le monde !