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 !