  Adaptation franaise Bernard Choppy, choppy@imaginet.fr
  7 dcembre 1999 Le HOWTO du pare-feu et des serveurs man
  dataires
  Mark Grennan mark@grenna.com
  v0.67, 26 septembre 1999 -

  Ce document est destin  enseigner les bases des systmes pare-feux
  ainsi que pour donner quelques dtails 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 matires




















































  1. Introduction

     1.1 Ractions
     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 scurit
     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 Matriel ncessaire
     4.2 Logiciel ncessaire
        4.2.1 Pare-feu filtrant
        4.2.2 Serveur mandataire

  5. Prparer le systme Linux

     5.1 Compiler le noyau
     5.2 Configurer deux cartes rseau
     5.3 Configurer les adresses rseau
     5.4 Tester votre rseau
     5.5 Scuriser 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'accs
        11.2.2 Le fichier de routage
        11.2.3 DNS depuis l'arrire 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 Inconvnients des serveurs mandataire

  12. Configurations avances

     12.1 Un grand rseau avec scurit renforce
        12.1.1 La configuration du rseau
        12.1.2 La configuration du bastion

  13. Simplifier l'administration

  14. Outrepasser un pare-feu mandataire



  ______________________________________________________________________

  11..  IInnttrroodduuccttiioonn

  David Rudder drig@execpc.com.  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 trs populaires en tant que "nec plus
  ultra" de la scurit sur Internet.  Comme de nombreuses choses dont
  la renomme grandit, une certaine incomprhension s'y est jointe.  Ce
  HOWTO prsente les bases de la dfinition d'un pare-feu et la manire
  d'en configurer un.

  J'utilise un noyau 2.2.15 et RedHat 6.0 pour dvelopper ce howto,
  ainsi les exemples ci-dessous sont fonds sur cette distribution.  Si
  vous trouvez des diffrences dans votre distribution, envoyez-moi un
  courriel et je mettrai  jour ce howto.

  NdT : Diverses traductions ont t proposes 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.


  11..11..  RRaaccttiioonnss

  Toute raction est la bienvenue.  SSIIGGNNAALLEEZZ TTOOUUTTEE IINNEEXXAACCTTIITTUUDDEE DDAANNSS CCEETT
  AARRTTIICCLLEE SS''IILL VVOOUUSS PPLLAAIITT !!  Je suis humain, et donc sujet aux erreurs.
  Si vous trouvez une correction, envoyez-la moi.  Je tenterai de
  rpondre  tout courriel, mais je suis trs 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_.


  11..22..  AAvveerrttiisssseemmeenntt

  JJEE NNEE SSUUIISS RREESSPPOONNSSAABBLLEE DD''AAUUCCUUNN DDOOMMMMAAGGEE RREESSUULLTTAANNTT DD''AACCTTIIOONNSS FFOONNDDEEEESS SSUURR
  LLEE PPRREESSEENNTT DDOOCCUUMMEENNTT..  Ce document est conu comme une introduction au
  fonctionnement des pare-feux et des serveurs mandataires.  Je ne suis,
  ni ne prtends tre un expert s scurit. ;-) Je suis simplement un
  individu qui a trop lu et qui apprcie les ordinateurs plus que ce
  n'est le cas pour beaucoup.  Considrez que j'cris ceci pour
  familiariser les gens avec ce sujet, et que je ne suis pas prt 
  perdre ma jeunesse dans l'exactitude de ce qui s'y trouve.

  NdT : Pour sa part, le traducteur met les mmes rserves que celles
  de l'auteur.


  11..33..  DDrrooiitt dd''aauutteeuurr

  Sauf mention contraire, les documents Linux HOWTO sont la proprit de
  leurs auteurs respectifs.  Les documents Linux HOWTO peuvent tre
  reproduits et distribus en totalit ou en partie, sur tout support
  physique ou lectronique, tant que cette notice de droit d'auteur est
  prsente sur chaque copie.  La redistribution commerciale est
  autorise et encourage ; nammoins, l'auteur souhaite tre inform de
  toute distribution de ce genre.

  Toute traduction, travail driv, ou agrgat incorporant tout ou
  partie d'un ou plusieurs documents Linux HOWTO doit tre couvert par
  ce mme droit d'auteur.  Ce qui veut dire que vous ne pouvez produire
  un travail driv d'un HOWTO et imposer des restrictions
  supplmentaires concernant sa distribution.  Des exceptions  ces
  rgles peuvent tre dlivres sous certaines conditions ; contactez le
  coordinateur des Linux HOWTO.

  En bref, nous souhaitons promouvoir la dissmination de cette
  information  travers autant de canaux que possible.  Nammoins, nous
  souhaitons conserver un droit d'auteur sur les documents HOWTO, et
  tre aviss 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 rpondre 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 : choppy@imaginet.fr


  11..44..  LLeess rraaiissoonnss qquuii mmee ppoouusssseenntt  ccrriirree cceeccii

  Il y a quelques annes, 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 manire de faire en sorte
  que cela puisse arriver tait d'utiliser le plus possible de logiciel
  libre et de matriel de rcupration.  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 considre quasiment comme secret-dfense.
  J'ai dcouvert que la cration d'un pare-feu de mon cru tait  peu
  prs impossible.

  Dans mon travail suivant, il m'a t demand de mettre en place un
  pare-feu.  Linux venait d'intgrer 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.



  11..55..  AAuuttrreess ssoouurrcceess dd''iinnffoorrmmaattiioonn


    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
  scurit en gnral.


    _S_e_c_u_r_e _L_i_n_u_x_.

  Il s'agit de mon propre site de scurit sur lequel j'ai rassembl des
  livres blancs, de la documentation et des programmes concourant  la
  scurisation de systmes Unix.

  [ D'autres URL viendront ici ]


  22..  CCoommpprreennddrree lleess ppaarree--ffeeuuxx

  Un pare-feu est une structure destine  empcher un feu de la
  traverser.  Dans un immeuble, il s'agit d'un mur qui divise
  compltement des parties de celui-ci.  Dans une voiture, un pare-feu
  est une pice mtallique qui spare le moteur du compartiment
  passagers.

  Les pare-feux Internet sont conus pour isoler votre rseau local
  priv des flammes de l'Internet, ou de protger la puret des membres
  de votre rseau local en leur interdisant l'accs aux tentations
  dmoniaques de l'Internet. ;-)

  Le premier pare-feu informatique tait une machine Unix sans routage
  avec deux connexions  deux rseaux diffrents.  Une carte rseau
  tait connecte  Internet et l'autre au rseau priv.

  Pour atteindre Internet depuis le rseau priv, il fallait se loger
  sur le pare-feu (Unix).  Ensuite, on utilisait les ressources de ce
  systme pour accder  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 accs aux deux rseaux.

  Cette sorte de hte  double rseau (un systme  deux connexions
  rseau) est bien si l'on peut faire confiance  TOUS les utilisateurs.
  On peut configurer simplement un systme Linux et y crer un compte
  pour tout utilisateur souhaitant un accs  Internet.  Avec cette
  configuration, le seul ordinateur du rseau priv qui connaisse
  quelque chose du monde extrieur est le pare-feu proprement dit.
  Personne ne peut tlcharger directement sur un poste de travail
  personnelle  il faut d'abord tlcharger un fichier sur le pare-feu,
  puis transfrer celui-ci du pare-feu au poste de travail.

  NOTE IMPORTANTE : 99% des intrusions commencent par l'obtention d'un
  accs utilisateur sur le systme attaqu.  Pour cette raison, je ne
  recommande pas ce type de pare-feu.  De plus, il est aussi extrmement
  limit.



  22..11..  PPoolliittiiqquueess ddee ssccuurriitt

  Il ne faut pas croire qu'un pare-feu soit la panace.  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 utiliss dans deux buts :


  1. pour maintenir des gens (intrus, vandales...) dehors ;

  2. pour maintenir des gens (employs, 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 employs qu' maintenir les intrus hors
  de ses rseaux.

  Au moins dans mon tat (l'Oklahoma), les employeurs ont le droit de
  surveiller les appels tlphoniques et l'activit Internet  condition
  d'informer pralablement les employs de cette surveillance (NdT : la
  lgislation franaise est identique de ce point de vue).

  Big Brother n'est pas le gouvernement.  Big Brother est le Big
  Businness.

  Ne me mjugez 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.  Nanmoins, j'ai aussi observ que certains types de
  directions se trouvent aussi les principaux transgresseurs des rgles
  qu'ils ont eux-mmes dictes.  J'ai vu des vacataires rprimands car
  ils avaient utilis Internet pour chercher le trajet de bus pour venir
  au travail alos que le mme directeur passait des heures au travail 
  chercher de bons restaurants et botes 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 scurit peut tre difficile.  Si vous tes
  gestionnaire de pare-feux, surveillez vos arrires.


  22..22..  TTyyppeess ddee ppaarree--ffeeuuxx

  Il y a deux types de pare-feux :


  1. pare-feux IP ou filtrants - ils bloquent tout le trafic sauf celui
     slectionn ;

  2. serveurs mandataires (parfois appels bastions) - ils ralisent les
     connexions rseau pour vous.


  22..22..11..  PPaarree--ffeeuuxx ffiillttrraannttss

  Le filtrage de paquets est le type de pare-feu inclus dans le noyau
  Linux.


  Un pare-feu filtrant fonctionne au niveau du rseau.  Les donnes ne
  sont autorises  quitter le systme que si les rgles du pare-feu le
  permettent.  Lorsque les paquets arrivent, ils sont filtrs en
  fonction de leurs type, origine, destination et port qui sont dcrits
  dans chacun de ceux-ci.

  De nombreux routeurs comportent un certain nombre de services de type
  pare-feu.  Les pare-feux filtrants peuvent tre penss comme des types
  particuliers de routeurs.  Pour cette raison, il faut une profonde
  comprhension de la structure des paquets IP pour travailler avec l'un
  d'eux.

  Puisque trs peu de donnes sont analyses et traces, les pare-feux
  filtrants consomment peu de temps processeur et crent moins de
  latence sur un rseau.

  Les pare-feux filtrants ne fournissent pas de contrle 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 problme lorsqu'on souhaite utiliser DHCP
  (assignation dynamique d'adresses IP).  En effet, les rgles tant
  fondes sur les adresses IP, il faut ajuster celles-ci  chaque fois
  que de nouvelles adresses sont assignes.  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 rgles dans leurs
  applications pour utiliser Internet.  Ce n'est pas vrai avec la
  plupart des serveurs mandataires.


  22..33..  SSeerrvveeuurrss mmaannddaattaaiirreess

  Le meilleur exemple du fonctionnement de ceux-ci est celui d'une
  personne se connectant  un systme 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'extrieur, 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'extrieur) et vous renvoie les donnes reues.  NdT : en
  franais, on utilise souvent le terme "bastion" pour dsigner un
  serveur mandataire situ entre le rseau local interne et l'extrieur.
  Dans le prsent document, on utilisera plutt le terme bastion pour
  dsigner la machine qui porte le serveur mandataire.

  Puisque les serveurs mandataires grent 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
  tlcharg.  Ils peuvent mme expurger les mots "inappropris" des
  sites que vous visitez ou analyser la prsence de virus.

  Les serveurs mandataires d'applications peuvent authentifier des
  utilisateurs.  Avant qu'une connexion soit ralise vers l'extrieur,
  le serveur peut demander  l'utilisateur de se connecter
  pralablement.  Pour un utilisateur web, cela fonctionnera comme si
  chaque site requrait une connexion.


  22..33..11..  MMaannddaattaaiirree SSOOCCKKSS

  Un mandataire SOCKS ressemble beaucoup  un vieux central tlphonique
   fiches.  Il interconnecte simplement une machine interne  une autre
  externe.

  De nombreux serveurs SOCKS fonctionnent uniquement avec les connexions
  de type TCP.  De mme, 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.


  33..  AArrcchhiitteeccttuurree ddee ppaarree--ffeeuu

  Il existe de nombreuses manires de structurer un rseau pour protger
  des systmes  l'aide d'un pare-feu.

  Si l'on dispose de connexions ddies  Internet par un routeur, on
  peut connecter directement celui-ci au systme pare-feu.  Au
  contraire, on peut passer par un hub pour permettre un accs complet
  aux serveurs  l'extrieur du pare-feu.


  On peut configurer un certain nombre de rgles de filtrage matrielles
  dans le routeur.  Nanmoins, ce routeur peut tre la proprit d'un
  FAI (fournisseur d'accs Internet), auquel cas on ne dispose pas du
  contrle 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 troisime carte rseau pour crer une DMZ
  (De-Militarized Zone, ou "zone dmilitarise") filtre.  Cela donne un
  contrle total sur les services Internet et maintient la sparation
  avec le rseau local normal.


                              __________
                _/\__/\_      |          |          ___________
               |        |     | Systeme  |  (LAN)  | Postes de |
              / Internet \----| pare-feu |--(HUB)--|  travail  |
              \_  _  _  _/    |__________|         |___________|
                \/ \/ \/           |
                                 (DMZ)
                                 (HUB)



  Si l'on ne fournit pas soi-mme des services Internet mais que l'on
  souhaite surveiller o vont les utilisateurs, on voudra utiliser un
  serveur mandataire (bastion).  Cela peut tre intrgr dans le pare-
  feu.


                               __________
                _/\__/\_      | Systeme  |          ___________
               |        |     | pare-feu/|  (LAN)  | Postes de |
              / Internet \----| bastion  |--(HUB)--|  travail  |
              \_  _  _  _/    |__________|         |___________|
                \/ \/ \/



  On peut aussi placer le serveur mandataire sur le rseau local.  Dans
  ce cas, les rgles du pare-feu ne doivent autoriser que le bastion 
  se connecter  Internet pour les services que celui-ci fournit.  Ainsi
  les utilisateurs ne peuvent accder  Internet que par le mandataire.











                              __________
               _/\__/\_      |          |          ___________
              |        |     | Systeme  |  (LAN)  | Postes de |
             / Internet \----| pare-feu |--(HUB)--|  travail  |
             \_  _  _  _/    |__________|    |    |___________|
               \/ \/ \/                      |     ____________
                                             |    |  Serveur   |
                                             +----| mandataire |
                                                  |____________|



  Si l'on souhaite raliser un service comme ceux de Yahoo! ou peut-tre
  SlashDot, on peut souhaiter raliser 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 crer 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 rseau local.  Il faut conserver
  le contrle de chaque connexion.  Il suffit d'un utilisateur avec un
  modem pour compromettre tout un rseau local.


  44..  CCoonnffiigguurreerr llee ppaarree--ffeeuu ffiillttrraanntt LLiinnuuxx

  44..11..  MMaattrriieell nncceessssaaiirree

  Les pare-feux filtrants ne ncessitent pas de matriel 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 mmoire vive ;

  2. un disque dur de 200 Mo (500 Mo sont tout de mme recommands) ;

  3. des connexions rseau (cartes Ethernet, ports srie, connexions
     sans fil ?) ;

  4. un moniteur et un clavier.

  Avec certains systmes, on peut mme liminer le moniteur et le
  clavier en utilisant une console sur port srie.


  Si l'on a besoin d'un serveur mandataire qui doive grer un fort
  trafic, il faut prendre le systme le plus puissant qui soit possible.
  En effet, pour chaque utilisateur qui se connectera par le bastion, il
  se crera un nouveau processus.  Si l'on a 50 utilisateurs simultans
  ou plus, je pense qu'il faut :


  1. un Pentium II avec 64 Mo de mmoire vive ;

  2. un disque dur de 2 Go pour contenir toutes les traces ;

  3. deux connexions rseau  ;

  4. un moniteur et un clavier.

  Les connexions rseau peuvent tre de n'importe quel type (cartes NIC,
  RNIS ou mme des modems).


  44..22..  LLooggiicciieell nncceessssaaiirree

  44..22..11..  PPaarree--ffeeuu ffiillttrraanntt

  Pour crer un pare-feu filtrant, aucun logiciel spcifique n'est
  ncessaire.  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 rcent, car ces noyaux sont obsoltes, 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 rcent, il faut utiliser un
  ipchaining comme par exemple celui dvelopp par
  http://www.rustcorp.com/linux/ipchains/.


  44..22..22..  SSeerrvveeuurr mmaannddaattaaiirree


  Si l'on veut configurer un serveur mandataire, il faut l'un des
  paquetages suivants :


    Squid ;

    la bote  outils TIS Firewall (FWTK) ;

    SOCKS.


  Squid est un beau paquetage et fonctionne avec la fonctionnalit de
  Linux de mandataire transparent.  Je vais dcrire 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 bote  outils TIS est toujours
  disponible sur : http://www.tis.com/research/software/.

  Trusted Information System fournit une collection de programmes conue
  pour faciliter la gestion de pare-feux.  Avec cette bote  outils, on
  configure un daemon pour chaque service (web, telnet, etc.) qui sera
  utilis.

  55..  PPrrppaarreerr llee ssyyssttmmee LLiinnuuxx

  55..11..  CCoommppiilleerr llee nnooyyaauu

  Commencez avec une installation minimale propre de votre distribution
  Linux.  Moins vous installez de logiciels, moins votre systme aura de
  trous de scurit, portes drobes et/ou bogues susceptibles d'induire
  des problmes de scurit dans votre systme.

  Prenez un noyau stable.  J'utilise le noyau Linux 2.2.9 ou plus pour
  mon systme.  La documentation est donc fonde sur ces paramtres.

  Vous devez recompiler le noyau Linux avec les options appropries.  Si
  vous n'avez jamais recompil de noyau, je vous renvoie au Kernel
  HOWTO,  l'Ethernet HOWTO et au NET-3 HOWTO.

  Voici les paramtres rseau 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  --->




  Aprs avoir ralis toute la configuration qu'il vous faut vous devez
  recompiler, rinstaller 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.


  55..22..  CCoonnffiigguurreerr ddeeuuxx ccaarrtteess rrsseeaauu

  Si vous avez deux cartes rseau dans votre ordinateur, vous devrez
  trs certainement ajouter un paramtre "append" dans votre fichier
  /etc/lilo.conf pour dcrire les IRQ et adresses des deux cartes.  Le
  mien se prsente ainsi :


  append="ether=12,0x300,eth0 ether=15,0x340,eth1"




  55..33..  CCoonnffiigguurreerr lleess aaddrreesssseess rrsseeaauu

  Nous arrivons  la partie amusante de notre configuration.  Je ne vais
  pas entrer trs profondment dans les dtails de mise en place d'un
  rseau local.  Pour rsoudre vos problmes  ce niveau, vous pouvez
  vous reporter au Networking-HOWTO.

  Votre but est de fournir deux connexions rseau  votre systme pare-
  feu filtrant : l'une est Internet (ct dangereux) et l'autre est le
  rseau local (ct scuris).

  Dans tous les cas, vous devez prendre quelques dcisions :


  1. utiliserez-vous des adresses IP relles ou non pour votre rseau
     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 accder au rseau
  priv, il n'est pas ncessaire d'utiliser des adresses "relles".  On
  peut toujours choisir des adresse arbitraires pour un reau priv,
  mais ce n'est pas recommand : au cas o des donnes seraient routes
  en-dehors de celui-ci, elles pourraient arriver sur un autre systme.

  Un certain nombre de plages d'adresses Internet ont t laisses de
  ct pour les rseaux privs.  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
  "relles" pour leur permettre de voyager sur Internet.

  L'utilisation de ces adresses IP non routables rend le rseau priv
  plus sr, 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 "relle"  la carte rseau du ct
  Internet.  Cette adresse peut vous tre assigne de manire permanente
  (comme adresse IP statique) ou  chaque connexion par le processus
  PPP.

  Vous assignez vos numros IP internes, comme 192.168.2.1 pour la carte
  Ethernet du reau 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 rseau protg (soit 192.168.2.2 
  192.168.2.254).

  J'utilise Linux RedHat.  Pour configurer le rseau lors du dmarrage,
  j'ai ajout un fichier "ifcfg-eth1" dans le rpertoire
  /etc/sysconfig/network-scripts.  On peut aussi trouver des fichiers
  ifcfg-ppp0 ou ifcfg-tr0 dans ce rpertoire.  Ces fichiers "ifcfg-"
  sont utiliss par RedHat pour configurer et activer les priphriques
  rseau lors du dmarrage.  Leur nom est fonction du type de connexion.

  Voici l'allure du fichier ifcfg-eth1 (deuxime 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 commute, vous devrez consulter les
  fichiers ifcfg-ppp0 et chat-ppp0 qui contrlent 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"




  55..44..  TTeesstteerr vvoottrree rrsseeaauu

  Commencer en utilisant les commandes ifconfig et route.  Si vous avez
  deux cartes rseau, 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 ct Internet du pare-feu et
  192.168.2.0 celle du ct priv (rseau local).

  Vous devez commencer par vous assurer que chaque ordinateur de votre
  rseau 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 rseau.

  Ensuite, essayez d'atteindre un systme 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 problme 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 vrifier la configuration de votre passerelle par dfaut.
  Si vous utilisez une connexion commute, recontrlez 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 extrieure du pare-feu
  (199.1.2.10 dans notre exemple) depuis une machine du rseau local.
  Cela ne doit pas fonctionner.  Dans le cas contraire, le masquage IP
  ou la transmission IP sont activs ou vous avez dj une sorte de
  filtrage de paquet positionne.  Dsactivez-les et ressayez.  Vous
  devez savoir si le filtrage est en place.

  Pour les noyaux postrieurs 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 dsactivant la transmission IP (IP
  forwarding, mais mettez plutt votre noyau  jour).

  Essayez  nouveau d'atteindre l'adresse extrieure du pare-feu
  (199.1.2.10 dans notre exemple) depuis une machine du rseau local.
  Cela ne doit pas fonctionner.

  Maintenant, activez la transmission IP et/ou le masquage IP.  Vous
  devez tre  mme d'atteindre n'importe quel point d'Internet depuis
  n'importe quelle machine de votre rseau local.


      echo "0" > /proc/sys/net/ipv4/ip_forward



  Note importante : Si vous utilisez des adresses IP "relles" sur votre
  rseau local (et non 192.168.xxx.yyy) et que vous ne puissisez
  atteindre Internet, mais que vous puissiez atteindre le ct extrieur
  de votre pare-feu, vrifiez que votre FAI route correctement les
  paquets depuis l'adresse de votre rseau priv.

  Un test de ce problme est de connatre quelqu'un d'autre sur Internet
  (un ami utilisant un fournisseur local, par exemple) et de lui
  demander d'effectuer un traceroute vers votre rseau.  Si la trace
  s'arrte 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. :-)


  55..55..  SSccuurriisseerr llee ppaarree--ffeeuu

  Le pare-feu n'est d'aucune utilit s'il reste largement ouvert aux
  attaques.  Un "mchant" pourrait obtenir l'accs au pare-feu et le
  modifier pour ses desseins personnels.  Vous devez dsactiver tous les
  services inutiliss.


  Regardez dans votre fichier /etc/inetd.conf.  Ce fichier contrle
  inetd qu'on appelle aussi "super-serveur".  Il contrle un tas de
  daemons serveurs et les excute  la demande,  partir des paquets qui
  arrivent sur un port "bien connu" (well known port).

  Vous devez dsactiver 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
  possdez un.

  Pour dsactiver un service, placez simplement un "#" (dize) devant.
  Ensuite, envoyez un signal SIG-HUP au processus inetd, selon la
  syntaxe suivante :


  kill -HUP <pid>



  o "pid" est le numro du processus inetd.  Cela force inetd  relire
  son fichier de configuration (inetd.conf) et  se relancer sans
  arrter votre systme.

  Testez le rsultat par telnet sur le port 15 (netstat) du pare-feu.
  Si vous obtenez une rponse de netstat, c'est que vous n'avez pas
  arrt ces services correctement.


  telnet localhost 15



  Vous pouvez aussi crer 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 refuse.  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 priphriques
  indiqus dans /etc/securetty.  Les checs seront tracs par la
  facilit syslog.  Avec ces deux contrles actifs, la seule manire de
  se connecter sur le pare-feu est de se prsenter comme root sur la
  console.


  66..  CCoonnffiigguurraattiioonn dduu ffiillttrraaggee IIPP ((IIPPFFWWAADDMM))

  Si vous utilisez un noyau 2.1.102 ou suprieur, passez directement 
  la section suivante sur IPCHAINS.

  Dans les anciens noyaux, la transmission IP est active par dfaut.
  Pour cette raison, votre rseau doit commencer par refuser l'accs 
  tout et vider toutes les rgles de transmission (ipfw) en place depuis
  le dernier lancement.  Le fragment de script suivant doit se trouver
  dans votre script de lancement rseau (en gnral,
  /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 crer 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 rseau local  accder aux serveurs web
  externes ainsi qu'aux serveurs DNS.

  Cet exemple n'est pas parfaitement scuris.  Puisque le port 80 n'est
  pas obligatoirement utilis comme port web, un intrus rus pourrait
  utiliser celui-ci pour crer un rseau 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 rseau local devront alors
  passer par le mandataire pour atteindre les serveurs web extrieurs.

  On peut aussi s'intresser  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 systme 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 arrter ici.  Testez-le et amusez-vous bien :-)


  77..  CCoonnffiigguurraattiioonn dduu ffiillttrraaggee IIPP ((IIPPcchhaaiinnss))

  Les ipchains Linux sont une rcriture du code pare-feu IPv4 de Linux
  (en grande partie inspir de BSD) ainsi que de ipfwadm qui tait lui-
  mme une rcriture 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 gre pas les fragments, a des compteurs sur 32 bits
  (sur Intel en tout cas), ne permet aucune autre spcification de
  protocole que TCP, UDP ou ICMP, ne peut raliser de vastes
  modifications de manire atomique, ne peut spcifier de rgles
  inverses, a quelques dfauts et peut se rvler dur  administrer (ce
  qui le rend vulnrable aux erreurs d'utilisation).  Ou du moins c'est
  ce qu'en dit l'auteur.

  Je ne vais pas entrer en dtail sur la manire de contrler 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 chanes par noms.  Il existe au dbut trois
  chanes prdfinies input, output et forward, qu'il est impossible de
  supprimer.  On peut crer des chanes personnelles.  Des rgles
  peuvent ensuite tre ajoutes et supprimes de ces ensembles de
  rgles.

  Les oprations ncessaires pour travailler sur les chanes sont les
  suivantes :


  1. cration d'une nouvelle chane (-N) ;

  2. suppression d'une chane vide (-X) ;

  3. modification de la spcification pour une chane prdfinie (-P)

  4. liste des rgles d'une chane (-F) ;

  5. remise  zro des compteurs de paquets et d'octets de toutes les
     rgles d'une chane (-Z).

  Il existe diffrentes mthodes pour manipuler les rgles  l'intrieur
  des chanes :


  1. ajout d'une nouvelle rgle dans une chane (-A) ;

  2. insertion d'une nouvelle rgle  une position donne d'une chane
     (-I) ;

  3. remplacement d'une rgle  une position donne d'une chane (-R) ;

  4. suppression d'une rgle  une position donne d'une chane (-D) ;

  5. suppression de la premire rgle correspondante dans une chane
     (-D).

  Il existe quelques oprations pour le masquage qui se trouvent dans
  ipchains dans l'attente d'un bon emplacement pour les placer :


  1. liste des connexions actuellement masques (-M -L) ;

  2. positionnement du temps d'expiration du masquage (-M -S).

  Il y a quelques dtails de chronologie qui interviennent dans la
  modification des rgles 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



  ... ralisation 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 rgles de pare-feu qui prcdent 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'extrieur
    /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'extrieur
    /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'arrter l.  Ce n'est pas un pare-feu trs puissant
  et je suis sr qu'il y a d'autres services que vous souhaiteriez
  fournir.   nouveau, lisez le IPCHAINS-HOWTO.


  88..  RReennddrree llee ttoouutt pplluuss ssiimmppllee

  Il existe des interfaces graphiques ou fondes sur le web dveloppes
  pour fonctionner avec les rgles de filtrage Linux.  Un certain nombre
  d'entreprises ont mme cr des pare-feux commerciaux fonds sur Linux
  en le plaant dans leur propre machine avec leur propre code de
  management (joli).

  gfcc (GTK+ Firewall Control Center) est une application GTK+ capable
  de contrler les principes et rgles de filtrage de Linux, fonde 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
  gnration 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


  99..  IInnssttaalllleerr uunn mmaannddaattaaiirree SSqquuiidd ttrraannssppaarreenntt

  Le mandataire squid est disponible sur http://squid.nlanr.net/.

  Les dveloppeurs de squid fournissent des paquetages aux formats
  RedHat et Debian.  Si vous le pouvez, il vaut mieux utiliser l'un
  d'entre eux.


  1100..  IInnssttaalllleerr llee sseerrvveeuurr mmaannddaattaaiirree TTIISS

  1100..11..  TTrroouuvveerr llee llooggiicciieell

  Le TIS fwtk est disponible  http://www.tis.com/research/software/.

  NNee ccoommmmeetttteezz ppaass ll''eerrrreeuurr qquuee jj''aaii ccoommmmiissee :: lorsque vous tlchargez
  les fichiers de TIS, LISEZ LES README.  Le TIS fwtk est verrouill
  dans un rpertoire cach sur leur serveur.

  TIS impose que vous lisiez leur accord 

  http://www.tis.com/research/software/fwtk_readme.html, puis que vous
  eennvvooyyiieezz uunn ccoouurrrriieell  ffwwttkk--rreeqquueesstt@@ttiissllaabbss..ccoomm avec le seul mot
  aacccceepptteedd dans le corps du message pour connatre le nom de ce
  rpertoire cach.  Aucun sujet n'est ncessaire pour ce message.  Leur
  systme vous enverra en retour le nom du rpertoire par courriel
  (valaple 12 heures) pour charger le source.

  A l'instant o j'cris, la version  jour du FWTK est 2.1.


  1100..22..  CCoommppiillaattiioonn dduu FFWWTTKK TTIISS

  La version 2.1 du FWTK se compile beaucoup plus facilement que les
  prcdentes.

  EXPLIQUER ICI !!!

  Maintenant, lancez mmaakkee.


  1100..33..  IInnssttaallllaattiioonn dduu FFWWTTKK TTIISS

  Lancez mmaakkee iinnssttaallll.

  Le rpertoire d'installation par dfaut est /usr/local/etc.  Il est
  possible de changer cela (ce que je n'ai pas fait) vers un rpertoire
  plus sr.  J'ai choisi de changer l'accs  ce rpertoire pour le mode
  "0700".

  Tout ce qu'il reste  faire maintenant est de configurer le pare-feu.


  1100..44..  CCoonnffiigguurraattiioonn dduu FFWWTTKK TTIISS

  Maintenant, le plaisir commence vraiment.  Nous devons enseigner au
  systme  appeler ces nouveaux services et crer les tables pour les
  contrler.

  Je ne suis pas en train de r-crire le manuel de TIS fwtk ici.  Je
  vais montrer les paramtres que j'ai fait fonctionner et expliquer les
  problmes que j'ai rencontrs et comment je les ai contourns.

  Trois fichiers dfinissent ces contrles :




    /etc/services : indique au systme 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'accs 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 systme
  inaccessible.


  1100..44..11..  LLee ffiicchhiieerr nneettppeerrmm--ttaabbllee

  Ce fichier contrle qui a accs aux services de TIS FWTK.  Vous devez
  penser au trafic qui passe par le pare-feu depuis les deux cts.  Les
  gens de l'extrieur de votre rseau doivent s'identifier avant
  d'obtenir l'accs, mais ceux de l'intrieur doivent tre autoriss
  simplement  passer au-travers.

  Afin que les gens puissent s'identifier, le pare-feu utilise un
  programme appel aauutthhssrrvv pour maintenir une base des noms et mots de
  passe.  La section authentification de netperm-table contrle
  l'emplacement et l'accs  la base.

  J'ai eu quelques difficults  fermer l'accs  ce service.  Notez que
  la ligne permit-hosts que je montre utilise un "*" pour donner l'accs
   tout le monde.  Le paramtrage 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 ..//aauutthhssrrvv dans le
  rpertoire /var/local/etc pour crer l'enregistrement de l'utilisateur
  d'administration.

  La documentation de FWTK indique la manire 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 contrles de la passerelle telnet (tn-gw) vont de soi et sont la
  premire chose que vous deviez configurer.

  Dans mon exemple, j'autorise une machine du rseau 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 systme (192.1.2.202)  accder 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 utilises.

  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 mme manire 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 accs 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 rseau
  protg  accder librement  InterNet et tous les autres utilisateurs
  doivent s'authentifier.  J'ai ajout la trace de chaque fichier envoy
  et reu dans mes contrles (-log { retr stor }).

  Le timeout FTP contrle 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 contrls par le
  http-gw.  Les deux premires lignes crent un rpertoire pour stocker
  les documents ftp et web lorsqu'ils passent au-travers du pare-feu.
  Je rends root propritaire de ces fichiers et je les place dans un
  rpertoire accessible seulement par root.

  La connexion web doit tre maintenue courte.  Elle contrle 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 "gruyre".  Faites-y attention.
  Dans cet exemple, j'autorise quiconque depuis le rseau protg  se
  connecter en-dehors du rseau 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 rseau protg  se connecter seulement  un
  systme et seulement sur son port de nouvelles.

  La seconde ligne permet au serveur de renvoyer ses donnes au rseau
  protg.

  Puisque de nombreux clients s'attendent  rester connects 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 rseau protg
  doit se connecter d'abord, puis nous l'autorisons  utiliser le
  programme finger du pare-feu.  Tout autre reoit 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.


  1100..44..22..  LLee ffiicchhiieerr //eettcc//sseerrvviicceess

  C'est l que tout commence.  Lorsqu'un client se connecte sur le pare-
  feu, il le fait sur un port connu (infrieur  1024).  Par exemple,
  telnet se connecte sur le port 23.  Le daemon inetd dtecte 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 crons 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 paramtrez votre netperm-table comme je
  l'ai fait, vous serez seulement capable de faire cela depuis un
  systme situ  l'intrieur du rseau protg.



          telnet-a   24/tcp
          ftp-gw     21/tcp          # ce nom est modifie
          auth       113/tcp  ident  # Verification utilisateur
          ssl-gw     443/tcp





  1111..  LLee sseerrvveeuurr mmaannddaattaaiirree SSOOCCKKSS

  1111..11..  IInnssttaallllaattiioonn dduu sseerrvveeuurr mmaannddaattaaiirree

  Le serveur mandataire SOCKS est disponible sur :
  http://www.socks.nec.com/.

  Dcompressez et "d-tarez" les fichiers dans un rpertoire de votre
  systme, et suivez les instructions pour le confectionner.  J'ai eu
  quelques problmes pour le raliser.  Vrifiez 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'excuter sur demande.


  1111..22..  CCoonnffiigguurraattiioonn dduu sseerrvveeuurr mmaannddaattaaiirree

  Le programme de connexion ncessite deux fichiers de configuration
  distincts : l'un pour indiquer les accs autoriss, l'autre pour
  rediriger les requtes vers le serveur mandataire appropri.  Le
  fichier d'autorisations d'accs 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.


  1111..22..11..  LLee ffiicchhiieerr dd''aaccccss

  Avec socks4.2 bta, le fichier d'accs s'appelle "sockd.conf".  Il
  doit contenir deux lignes : une ligne d'autorisations et une ligne
  d'interdictions.  Chaque ligne prsente 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 rseau.
  Reprsentez-vous ce nombre sur 32 bits.  Si un bit est  1, le bit
  correspondant de l'adresse qu'il contrle 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 spcifier 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 trs 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 reprsentent la norme, car
  c'est facile  crire.

  On peut utiliser plusieurs lignes de chaque type.

  Des utilisateurs spcifiques peuvent aussi se voir accorder ou refuser
  l'accs.  Cela est ralis par l'authentification d'identit.  Tous
  les systmes ne supportent pas le systme ident, y compris Trumpet
  Winsock, donc nous n'irons pas plus loin en ce qui concerne cela.  La
  documentation de socks est tout  fait adquate sur ce sujet.


  1111..22..22..  LLee ffiicchhiieerr ddee rroouuttaaggee

  Le fichier de routage de socks est btement nomm "socks.conf".  Je
  dis "btement", car il est si proche du nom du fichier d'accs qu'il
  est ais de les confondre.

  Le fichier de routage sert  indiquer aux clients de socks quand il
  est ncessaire de l'utiliser et quand ce n'est pas le cas.  Par
  exemple, dans notre rseau, 192.168.2.3 ne ncessite pas l'usage de
  socks pour communiquer avec le pare-feu 192.168.2.1.  Il a une
  connection directe Ethernet.  Il dfinit 127.0.0.1, le port de
  bouclage, automatiquement.  Evidemment, il n'est  pas ncessaire
  d'utiliser socks pour vous parler  vous-mme.

  Il y a trois entres :


    deny ;

    direct ;

    sockd.

  L'entre "deny" indique  socks quand rejeter une requte.  Cette
  entre a les trois mmes champs que ceux de sockd.conf :
  identificateur, adresse et modificateur.  Gnralement, puisqu'il est
  aussi manipul par sockd.file, le fichier d'accs, le champ
  modificateur est positionn  0.0.0.0.  Si vous voulez vous interdire
  tout appel vers l'extrieur, vous pouvez le raliser ici.

  L'entre "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'accs direct pour toute machine de notre rseau
  protg.

  L'entre "sockd" indique  l'ordinateur l'emplacement du dmon serveur
  de socks.

  La syntaxe est la suivante :


          sockd @=<liste de serveurs> <adresse IP> <modificateur>



  Notez l'entre @=.  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 tolrance aux
  pannes.

  Les champs adresse IP et modificateur fonctionnent exactement comme
  dans les autres exemples.  Vous spcifiez ainsi o va quelle adresse.


  1111..22..33..  DDNNSS ddeeppuuiiss ll''aarrrriirree dd''uunn ppaarree--ffeeuu

  Configurer un service de noms de domaines depuis l'arrire d'un pare-
  feu est une tche relativement simple.  En gros, il vous faut
  configurer le DNS sur la machine pare-feu.  Ensuite, indiquez  chaque
  machine derire le pare-feu d'utiliser celui-ci.


  1111..33..  TTrraavvaaiilllleerr aavveecc uunn sseerrvveeuurr mmaannddaattaaiirree



  1111..33..11..  UUnniixx

  Pour faire fonctionner vos applications avec un serveur mandataire,
  celles-ci doivent tre "SOCK-ifies".  Il vous faudra deux telnet
  diffrents : 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-ifis.  Si vous utilisez la version SOCK-ifie
  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 rseau protg et les remplacer
  par leur version SOCK-ifie.  "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-
  mmes.  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 intresse) dans le champ SOCKs sous
  Proxies.  Chaque application ncessite au moins un petit coup d'oeil,
  quelle que soit son attitude vis--vis d'un serveur mandataire.


  1111..33..22..  MMSS WWiinnddoowwss aavveecc TTrruummppeett WWiinnssoocckk

  Trumpet Winsock contient des fonctionnalits 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 dbrouillera alors avec tous les paquets sortants.  NdT : Trumpet
  Winsock est une couche IP destine  MS-Windows 3.  Depuis la version
  3.11 de Windows, Microsoft fournit une couche IP dont les
  fonctionnalits sont trs diffrentes.


  1111..44..  FFaaiirree ffoonnccttiioonnnneerr llee sseerrvveeuurr mmaannddaattaaiirree aavveecc lleess ppaaqquueettss UUDDPP

  Le paquetage SOCKS fonctionne seulement avec les paquets TCP, pas avec
  les UDP.  Cela le rend quelque peu moins utile.  De nombreux
  programmes trs utiles, comme talk et Archie, utilisent UDP.  Il
  existe un paquetage prvu pour tre utilis comme serveur mandataire
  pour les paquets UDP appel UDPrelay, de Tom Fitzgerald fitz@wang.com.
  Malheureusement,  l'heure o ces lignes sont crites, il n'est pas
  compatible avec Linux.


  1111..55..  IInnccoonnvvnniieennttss ddeess sseerrvveeuurrss mmaannddaattaaiirree

  Le serveur mandataire est, avant tout, un systme de scurit.  Son
  utilisation pour augmenter le nombre d'accs Internet avec un nombre
  limit d'adresses aura de nombreux inconvnients.  Un serveur
  mandataire autorisera un plus grand accs de l'intrieur du rseau
  protg vers l'extrieur, mais laissera l'intrieur totalement
  inaccessible de l'extrieur.  Ce qui implique aucun serveur, aucune
  connexion talk ni Archie, ni courriel direct vers les ordinateurs de
  l'intrieur.  Ces inconvnients peuvent sembler lgers, mais regardez-
  les sous l'angle suivant :

    Vous avez laiss un document en cours sur votre ordinateur 
     l'intrieur du rseau protg.  Vous tes  la maison, et dcidez
     que vous voulez retravailler celui-ci.  Vous ne le pouvez pas.
     Vous ne pouvez atteindre votre ordinateur, car il est derrire le
     pare-feu.  Vous essayez de vous loger d'abord sur le pare-feu, mais
     comme tout le monde a accs au serveur mandataire, personne ne vous
     a cr de compte dessus.


    Votre fille va  l'universit.  Vous souhaitez lui envoyer un
     courriel.  Vous avez diffrents choses de caractre priv 
     discuter, et prfreriez recevoir directement votre courrier sur
     votre machine.  Vous avez pleine confiance dans votre
     administrateur rseau, mais, malgr tout, il s'agit de courrier
     priv.

    L'impossibilit d'utiliser les paquets UDP reprsente un gros
     inconvnient avec les serveurs mandataire.  Je pense que les
     fonctionnalits UDP arriveront sous peu.

  FTP cause un autre problme avec les serveurs mandataire : Lorsque FTP
  rcupre 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
  dgradation du rapport information/protocole, n'importe quel autre
  moyen d'obtenir cet accs sera plus rapide.

  En rsum, si vous avez les adresses IP ncessaires, et que la
  scurit ne soit pas un impratif pour vous, n'utilisez ni un pare-feu
  ni un serveur mandataire.  Si vous n'avez pas suffisamment d'adresses
  IP, mais que, de mme, la scurit 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 accs suprieur  l'intrieur
  du rseau depuis InterNet.  Les serveurs mandataires sont utiles pour
  ce genre de rseaux qui comportent de nombreuses machines qui se
  connectent au vol  InterNet, avec une configuration et peu de travail
  ensuite.


  1122..  CCoonnffiigguurraattiioonnss aavvaanncceess

  Je voudrais aborder une configuration particulire avant de refermer
  ce document.  Celle que j'ai souligne prcdemment suffira
  probablement pour de nombreux cas.  Nammoins, je pense que la
  situation suivante montrera une configuration plus avance qui
  claircira certains points d'ombre.  S'il vous reste des questions
  aprs ce que je viens de dcrire, ou simplement que l'adaptabilit des
  serveurs mandataires et des pare-feux vous intresse, lisez encore.


  1122..11..  UUnn ggrraanndd rrsseeaauu aavveecc ssccuurriitt rreennffoorrccee

  Disons, par exemple, que vous tes le gourou de la secte de la 23me
  Cabale de la Discorde de Milwaukee.  Vous souhaitez mettre votre site
  en rseau.  Vous avez cinquante ordinateurs et un sous-rseau de
  trente-deux adresses IP (sur cinq bits).  Vous avez diffrents niveaux
  d'accs parce que vous dites  vos disciples diffrentes choses en
  fonction de leur niveau.  C'est pourquoi vous devez protger certaines
  parties du rseau du reste.

  (NdT : Le traducteur a conserv la 23me Cabale de la Discorde de
  Milwaukee, issue du texte initial, contrairement  ce que contiennent
  les nouvelles versions (millisha : version militarise) qui serait
  moins explicite du principe pour un public francophone).

  Les niveaux sont les suivants :

  1. Le niveau extrieur.  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 extrieur.
     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 rel.  Dans ce niveau sont
     stockes toutes les informations sur la manire dont la secte des
     Discordiens prendra le pouvoir sur le monde,  l'aide d'un plan
     dviationniste, mais humoristique, impliquant PetitMou, HAL, R2D2,
     Nounours et cinq cents cristaux, tous marqus "80585,9999999997"
     par erreur.


  1122..11..11..  LLaa ccoonnffiigguurraattiioonn dduu rrsseeaauu

  Les numros IP sont arrangs ainsi :


    l'adresse 192.168.2.255 est l'adresse de diffusion, et n'est pas
     disponible ;

    23 des 32 adresses IP sont alloues  23 machines qui seront
     accessibles depuis InterNet ;

    Une adresse IP supplmentaire va  une machine Linux sur ce
     rseau ;

    Une autre va  une autre machine Linux de ce rseau ;

    2 numros IP vont au routeur ;

    4 sont laisses libres, mais recoivent les noms de domaine paul,
     ringo, george et john, juste pour compliquer un peu les choses ;

    Les rseaux protgs ont tous deux des adresses 192.168.2.xxx.

  Puis, deux rseaux spars sont construits, chacun dans une pice
  diffrente.  Ils sont routs par Ethernet infrarouge pour les rendre
  compltement invisibles de la pice extrieure.  Par chance,
  l'Ethernet infrarouge fonctionne tout  fait comme l'Ethernet normal,
  donc il nous suffit de les considrer comme normaux.

  Ces rseaux sont connects chacun  sa machine Linux avec une adresse
  IP supplmentaire.

  Un serveur de fichiers relie les deux rseaux protgs.  C'est parce
  que les plans pour prendre le pouvoir sur le monde prennent en compte
  certains des sages les plus levs.  Le serveur de fichiers a les
  adresses 192.168.2.17 pour le rseau des sages et 192.168.2.23 pour le
  rseau des adeptes.  Il doit avoir des adresses IP diffrentes, car il
  doit avoir deux cartes Ethernet diffrentes.  La transmission IP y est
  dsactive.

  La transmission IP est aussi dsactive sur les deux machines Linux.
  Le routeur ne transmettra pas les paquets destins  192.168.2.xxx
  sauf si on lui demande explicitement de le faire, donc InterNet ne
  pourra pas entrer.  La raison de la dsactivation de la transmission
  IP ici est d'empcher les paquets du rseau des sages d'atteindre le
  rseau des adeptes, et vice versa.

  Le serveur NFS peut aussi tre configur pour prsenter diffrents
  fichiers aux diffrents rseaux.  Cela peut devenir pratique, et assez
  astucieux d'utiliser les liens symboliques pour partager les fichiers
  communs.  Cette configuration associe  une autre carte Ethernet peut
  ainsi permettre l'usage d'un seul serveur de fichiers pour les trois
  rseaux.


  1122..11..22..  LLaa ccoonnffiigguurraattiioonn dduu bbaassttiioonn

  Maintenant, puisque les trois niveaux doivent tre capables de piloter
  le rseau pour leurs propres besoins dviationnistes, tous les trois
  ont besoin d'un accs InterNet.  Le rseau extrieur est connect
  directement  celui-ci, donc nous n'avons pas  nous proccuper d'un
  serveur mandataire ici.  Les rseaux des sages et des adeptes sont
  derrire des pare-feux, il est donc ncessaire de leur configurer des
  serveurs mandataires.

  Les deux rseaux seront configurs de manire similaire.  Tous deux
  ont les mmes adresses IP assignes.  Je vais ajouter quelques
  paramtres, afin de rendre les choses encore plus intressantes :


  1. Personne ne peut utiliser le serveur de fichiers pour l'accs
     Internet.  Cela exposerait le serveur de fichiers aux virus et
     autres choses dsagrables, et il est trs important, donc il est
     derrire les limites ;

  2. Nous ne voulons pas donner aux sages l'accs au web.  Il sont
     encore en entranement, et cette puissance de recherche
     d'informations peut se rvler 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'accs pour toutes les machines tentant
  d'accder au port 80, le port http.  Cela laisse l'accs  tous les
  autres services, et interdit juste l'accs Web.

  Ensuite, les deux fichiers auront :


          permit 192.168.2.0 255.255.255.0



  pour permettre  tous les ordinateurs du rseau 192.168.2.xxx
  d'utiliser ce serveur mandataire sauf pour ceux  qui cela a dj t
  interdit (i.e. le serveur de fichiers et l'accs Web pour le rseau
  des sages).


  Le fichier sockd.conf du rseau 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 rseau est isol comme
  il faut, avec le niveau d'interaction appropri.  Chacun peut tre
  heureux.  Maintenant, prenez le pouvoir sur le monde !


  1133..  SSiimmpplliiffiieerr ll''aaddmmiinniissttrraattiioonn

  Un certain nombre de paquetages peuvent rendre l'administration de
  votre pare-feu plus simple :


    Webmin http://www.webmin.com/.

  [ Lister les URL ICI ]


  1144..  OOuuttrreeppaasssseerr uunn ppaarree--ffeeuu mmaannddaattaaiirree

  Juste pour vous gcher la journe et vous maintenir dans l'esprit de
  scurit, je vais dcrire combien il est facile d'outrepasser un pare-
  feu mandataire.

  Imaginons que vous ayez ralis tout ce qui se trouve dans le prsent
  document et que vous disposiez d'un rseau et d'un serveur trs
  scuriss.  Vous disposez d'une zone dmilitarise, personne ne peut
  entrer dans votre rseau et vous tracez chaque connexion ralise vers
  le monde extrieur.  Vous obligez tous vos utilisateurs  passer par
  un mandataire et le seul service que vous autorisiez directement vers
  l'extrieur 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 rseau.  Un bon choix pourrait tre une machine personnelle
  connecte  Internet par un modem-cble.

  Demandez trois adresses IP  votre FAI.  De nombreuses entreprises en
  fournissent jusqu' trois.

  Sur cette machine, vous devez installer la partie client d'un rseau
  priv virtuel (VPN).  Cherchez sur http://sunsite.auc.dk/vpnd/.

  Maintenant, configurez le ct 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 inutilise
  (obtenue de votre FAI) sur son port rseau local.

  Finalement, sur un poste du rseau priv, changez la passerelle par
  dfaut afin qu'elle pointe sur le serveur du VPN et ajoutez la
  troisime adresse IP sur son port rseau local.

  Maintenant, depuis ce poste, vous pouvez aller n'importe o.  La seule
  chose que l'administrateur voie est une recherche DNS particulirement
  longue.

  Maintenant, prenez le pouvoir sur le monde !



























































