|
Line 0
Link Here
|
|
|
1 |
<!-- |
| 2 |
The FreeBSD Project - http://www.FreeBSD.org |
| 3 |
The FreeBSD French Documentation Project |
| 4 |
|
| 5 |
$FreeBSD$ |
| 6 |
$Id$ |
| 7 |
Original revision: 1.10 |
| 8 |
--> |
| 9 |
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ |
| 10 |
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> |
| 11 |
%man; |
| 12 |
<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; |
| 13 |
<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; |
| 14 |
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; |
| 15 |
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> |
| 16 |
%man; |
| 17 |
]> |
| 18 |
|
| 19 |
<article> |
| 20 |
<articleinfo> |
| 21 |
<title>Ponts filtrants</title> |
| 22 |
|
| 23 |
<authorgroup> |
| 24 |
<author> |
| 25 |
<firstname>Alex</firstname> |
| 26 |
<surname>Dupre</surname> |
| 27 |
<affiliation> |
| 28 |
<address><email>sysadmin@alexdupre.com</email></address> |
| 29 |
</affiliation> |
| 30 |
</author> |
| 31 |
</authorgroup> |
| 32 |
|
| 33 |
<pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/filtering-bridges/article.sgml,v 1.10 2002/06/05 22:09:07 keramida Exp $</pubdate> |
| 34 |
|
| 35 |
<abstract> |
| 36 |
<para>Souvent il est utile de diviser un réseau physique (comme un |
| 37 |
réseau Ethernet) en deux segments séparés sans |
| 38 |
avoir a créer des sous-réseaux, et utiliser de routeur |
| 39 |
pour les relier ensemble. Le dispositif qui connecte les deux |
| 40 |
réseaux de cette manière est |
| 41 |
appelé un pont. Un système FreeBSD avec deux cartes |
| 42 |
réseau est suffisant pour jouer le rôle d'un pont.</para> |
| 43 |
|
| 44 |
<para>Un pont fonctionne en scannant les adresses au niveau |
| 45 |
<acronym>MAC</acronym> (adresses Ethernet) des cartes connectées |
| 46 |
à chacune de ses interfaces réseau et puis |
| 47 |
transfère le trafic entre les deux réseaux si la |
| 48 |
source et la destination sont situés sur un segment |
| 49 |
différent. Sous beaucoup de points de vue |
| 50 |
un pont est similaire à un commutateur (switch) Ethernet avec |
| 51 |
uniquement deux ports.</para> |
| 52 |
&abstract.license; |
| 53 |
&abstract.disclaimer; |
| 54 |
&trans.a.fonvieille; |
| 55 |
</abstract> |
| 56 |
</articleinfo> |
| 57 |
|
| 58 |
<sect1 id="filtering-bridges-why"> |
| 59 |
<title>Pourquoi utiliser un pont filtrant?</title> |
| 60 |
|
| 61 |
<para>De plus en plus fréquemment, grâce à la |
| 62 |
baisse des coûts des connexions Internet haut débit |
| 63 |
(xDSL) et aussi en raison de la réduction des adresses |
| 64 |
IPv4 disponibles, beaucoup de compagnies |
| 65 |
sont connectées à l'Internet 24 heures sur 24 et |
| 66 |
avec peu (parfois même pas une puissance de 2) d'adresses IP. |
| 67 |
Dans ces situations il est souvent désirable d'avoir un |
| 68 |
coupe-feu qui filtre le trafic |
| 69 |
entrant et sortant depuis et vers l'Internet, mais la solution |
| 70 |
d'un filtrage de paquet basé sur un routeur peut ne pas |
| 71 |
être applicable, soit en raison de problèmes de |
| 72 |
sous-réseau, le routeur appartient au fournisseur |
| 73 |
d'accès (<acronym>ISP</acronym>), ou |
| 74 |
parce qu'il ne supporte pas une telle fonction. Dans ces |
| 75 |
scénarios l'utilisation d'un pont filtrant est fortement |
| 76 |
conseillée.</para> |
| 77 |
|
| 78 |
<para>Un coupe-feu basé sur un pont peut être |
| 79 |
configuré et inséré |
| 80 |
entre le routeur xDSL et votre concentrateur/commutateur Ethernet |
| 81 |
sans aucun problème d'adresse d'IP.</para> |
| 82 |
</sect1> |
| 83 |
|
| 84 |
<sect1 id="filtering-bridges-how"> |
| 85 |
<title>Comment l'installer</title> |
| 86 |
|
| 87 |
<para>Ajouter les fonctions de pont à un système |
| 88 |
FreeBSD n'est pas difficile. Depuis la 4.5-RELEASE il est possible |
| 89 |
de charger de telles fonctionnalités sous forme de module |
| 90 |
au lieu d'avoir à recompiler le noyau, simplifiant |
| 91 |
énormément la procédure. Dans |
| 92 |
les sous-sections suivantes j'expliquerai les deux méthodes |
| 93 |
d'installation.</para> |
| 94 |
|
| 95 |
<important> |
| 96 |
<para><emphasis>Ne pas</emphasis> suivre les deux méthodes: une |
| 97 |
procédure <emphasis>exclue</emphasis> l'autre. Choisissez la |
| 98 |
meilleure en fonction de vos besoins et capacités.</para> |
| 99 |
</important> |
| 100 |
|
| 101 |
<para>Avant d'aller plus loin, soyez sûr de disposer deux cartes |
| 102 |
Ethernet qui supportent le mode promiscuous pour la réception et |
| 103 |
la transmission, comme elles doivent être capable d'envoyer des |
| 104 |
paquets Ethernet avec n'importe quelle adresse, et non pas juste |
| 105 |
pour la leur. De plus, pour avoir de bonnes performances, les |
| 106 |
cartes devront être capable contrôler le bus |
| 107 |
PCI (PCI bus mastering). Les meilleurs choix sont toujours |
| 108 |
l'Intel EtherExpress Pro, suivie de la série 3c9xx de chez 3Com. |
| 109 |
Pour simplifier la configuration il peut être utile d'avoir deux |
| 110 |
cartes de différents constructeurs (utilisant un pilote de |
| 111 |
périphérique différent) afin de distinguer |
| 112 |
clairement quelle interface est connectée au routeur et |
| 113 |
quelle autre est connectée au réseau.</para> |
| 114 |
|
| 115 |
<sect2 id="filtering-bridges-kernel"> |
| 116 |
<title>Configuration du noyau</title> |
| 117 |
|
| 118 |
<para>Donc vous avez décidé d'utiliser la bonne |
| 119 |
vieille méthode d'installation. Pour commencer, vous |
| 120 |
devez ajouter les lignes suivantes à votre fichier de |
| 121 |
configuration du noyau:</para> |
| 122 |
|
| 123 |
<programlisting>options BRIDGE |
| 124 |
options IPFIREWALL |
| 125 |
options IPFIREWALL_VERBOSE</programlisting> |
| 126 |
|
| 127 |
<para>La première ligne est pour compiler le support du pont, la |
| 128 |
seconde est le coupe-feu et la troisième sont les fonctions de |
| 129 |
traces du coupe-feu.</para> |
| 130 |
|
| 131 |
<para>Maintenant il est nécessaire de compiler et d'installer le |
| 132 |
nouveau noyau. Vous pourrez trouver des instructions |
| 133 |
détaillée dans la section <ulink |
| 134 |
url="../../books/handbook/kernelconfig-building.html">Compiler |
| 135 |
et installer un noyau sur mesures</ulink> du Manuel de |
| 136 |
FreeBSD.</para> |
| 137 |
</sect2> |
| 138 |
|
| 139 |
<sect2 id="filtering-bridges-modules"> |
| 140 |
<title>Le chargement de modules</title> |
| 141 |
|
| 142 |
<para>Si vous avez choisi d'employer cette méthode nouvelle et |
| 143 |
plus simple; la seule chose à faire maintenant est d'ajouter la |
| 144 |
ligne suivante au fichier |
| 145 |
<filename>/boot/loader.conf</filename>:</para> |
| 146 |
|
| 147 |
<programlisting>bridge_load="YES"</programlisting> |
| 148 |
|
| 149 |
<para>De cette façon, durant le démarrage du |
| 150 |
système le module <filename>bridge.ko</filename> sera |
| 151 |
chargé avec le noyau. Il n'est pas nécessaire |
| 152 |
de rajouter une ligne pour le module |
| 153 |
<filename>ipfw.ko</filename>, étant donné qu'il |
| 154 |
sera chargé automatiquement après |
| 155 |
l'exécution des étapes présentées dans la |
| 156 |
section suivante.</para> |
| 157 |
</sect2> |
| 158 |
</sect1> |
| 159 |
|
| 160 |
<sect1 id="filtering-bridges-finalprep"> |
| 161 |
<title>Dernière préparation</title> |
| 162 |
|
| 163 |
<para>Avant de redémarrer afin de charger le nouveau noyau ou les |
| 164 |
modules nécessaires (selon la méthode d'installation |
| 165 |
précédemment retenue), vous devez faire quelques |
| 166 |
modifications dans le fichier |
| 167 |
de configuration <filename>/etc/rc.conf</filename>. La règle de |
| 168 |
défaut du coupe-feu est de rejeter tous les paquets IP. Au |
| 169 |
départ nous configurerons un coupe-feu “ouvert”, afin |
| 170 |
de vérifier son fonctionnement sans problème relatif au |
| 171 |
filtrage de paquet (dans le cas où vous faite cela à |
| 172 |
distance, une telle configuration vous évitera de rester |
| 173 |
isolé du réseau). Ajoutez les lignes suivantes dans |
| 174 |
<filename>/etc/rc.conf</filename>:</para> |
| 175 |
|
| 176 |
<programlisting>firewall_enable="YES" |
| 177 |
firewall_type="open" |
| 178 |
firewall_quiet="YES" |
| 179 |
firewall_logging="YES"</programlisting> |
| 180 |
|
| 181 |
<para>La première ligne activera le coupe-feu (et chargera le module |
| 182 |
<filename>ipfw.ko</filename> s'il n'est pas compilé dans le |
| 183 |
noyau), la seconde le configurera dans le mode |
| 184 |
“ouvert” (comme expliqué dans |
| 185 |
<filename>/etc/rc.firewall</filename>), la troisième ligne rendra |
| 186 |
le chargement des règles silencieux (sans affichage) et la |
| 187 |
quatrième activera le support de trace d'activité |
| 188 |
du coupe-feu.</para> |
| 189 |
|
| 190 |
<para>Au sujet de la configuration des interfaces réseau, la |
| 191 |
méthode la plus utilisée est d'assigner une adresse |
| 192 |
IP à une seul des cartes réseau, mais le pont |
| 193 |
fonctionnera à l'identique si les deux |
| 194 |
interfaces ou aucune n'ont d'adresse IP configurée. Dans le |
| 195 |
dernier cas (sans adresse IP) la machine faisant office de pont |
| 196 |
sera toujours cachée et inaccessible depuis le réseau: |
| 197 |
pour la configurer, vous devez vous attacher depuis la console ou |
| 198 |
à travers une troisième interface réseau |
| 199 |
séparée du pont. Parfois, durant |
| 200 |
le démarrage du système, certains programmes ont |
| 201 |
besoin d'accéder au réseau, par exemple pour la |
| 202 |
résolution de noms: dans ce cas il |
| 203 |
est nécessaire d'assigner une adresse IP à |
| 204 |
l'interface externe (celle connectée à l'Internet |
| 205 |
où le serveur <acronym>DNS</acronym> |
| 206 |
réside), puisque le pont sera activé à la |
| 207 |
fin de la procédure de démarrage. Cela signifie que |
| 208 |
l'interface <devicename>fxp0</devicename> (dans notre cas) doit |
| 209 |
être mentionnée dans la section concernant ifconfig |
| 210 |
du fichier <filename>/etc/rc.conf</filename>, mais pas |
| 211 |
<devicename>xl0</devicename>. Assigner une adresse IP aux deux |
| 212 |
cartes réseau n'a pas beaucoup de sens, à moins que, |
| 213 |
durant la procédure de démarrage, des applications |
| 214 |
devront accéder à des |
| 215 |
services sur les deux segments Ethernet.</para> |
| 216 |
|
| 217 |
<para>Il y a une autre chose importante à savoir. Quand on utilise |
| 218 |
l'IP sur Ethernet, il y a en fait deux protocoles Ethernet |
| 219 |
utilisés: l'un est l'IP, l'autre est l'<acronym>ARP</acronym>. |
| 220 |
<acronym>ARP</acronym> effectue la conversion de l'adresse IP d'un |
| 221 |
hôte en son adresse Ethernet (couche <acronym>MAC</acronym>). |
| 222 |
Afin d'autoriser la communication entre deux hôtes |
| 223 |
séparés par le |
| 224 |
pont, il est nécessaire que le pont transmette les paquets |
| 225 |
<acronym>ARP</acronym>. Un tel protocole n'est pas inclut dans la |
| 226 |
couche IP, puisque qu'il n'apparaît qu'avec l'utilisation de l'IP |
| 227 |
sur Ethernet. Le coupe-feu de FreeBSD filtre exclusivement la |
| 228 |
couche IP et donc tous les paquets non-IP (<acronym>ARP</acronym> |
| 229 |
compris) seront transmis sans être filtrés, même |
| 230 |
si le coupe-feu est configuré pour ne rien laisser passer.</para> |
| 231 |
|
| 232 |
<para>Il est maintenant temps de redémarrer le système et de |
| 233 |
l'utiliser comme auparavant: il y aura de nouveau messages |
| 234 |
concernant le pont et le coupe-feu, mais le pont ne sera pas |
| 235 |
activé et le coupe-feu, étant en mode “ouvert”, |
| 236 |
n'interdira aucune opération.</para> |
| 237 |
|
| 238 |
<para>Si il y a un quelconque problème, vous devriez le corriger |
| 239 |
maintenant avant de continuer.</para> |
| 240 |
</sect1> |
| 241 |
|
| 242 |
<sect1 id="filtering-bridges-enabling"> |
| 243 |
<title>Activer le pont</title> |
| 244 |
|
| 245 |
<para>A ce point, pour activer le pont, vous devez exécuter les |
| 246 |
commandes suivantes (en pensant bien de remplacer les noms des deux |
| 247 |
interfaces réseau <devicename>fxp0</devicename> et |
| 248 |
<devicename>xl0</devicename> avec les vôtres):</para> |
| 249 |
|
| 250 |
<screen>&prompt.root; <userinput>sysctl net.link.ether.bridge_cfg=fxp0:0,xl0:0</userinput> |
| 251 |
&prompt.root; <userinput>sysctl net.link.ether.bridge_ipfw=1</userinput> |
| 252 |
&prompt.root; <userinput>sysctl net.link.ether.bridge=1</userinput></screen> |
| 253 |
|
| 254 |
<para>La première ligne spécifie quelles interfaces |
| 255 |
devront être activées par le pont, la seconde |
| 256 |
activera le coupe-feu sur le pont |
| 257 |
et enfin la troisième activera le pont.</para> |
| 258 |
|
| 259 |
<para>A ce moment là, vous devriez être en mesure |
| 260 |
d'insérer la machine entre deux ensembles d'hôtes |
| 261 |
sans compromettre de capacités de communication entre eux. |
| 262 |
Ensuite, l'étape suivante est d'ajouter les parties |
| 263 |
<literal>net.link.ether.<replaceable>[bla]</replaceable>=<replaceable>[bla]</replaceable></literal> |
| 264 |
de ces lignes dans le fichier |
| 265 |
<filename>/etc/sysctl.conf</filename> afin de les exécuter au |
| 266 |
démarrage.</para> |
| 267 |
</sect1> |
| 268 |
|
| 269 |
<sect1 id="filtering-bridges-ipfirewall"> |
| 270 |
<title>Configurer le coupe-feu</title> |
| 271 |
|
| 272 |
<para>Il est maintenant temps de créer votre propre fichier de |
| 273 |
règle personnalisé pour le coupe-feu, afin de |
| 274 |
sécuriser le réseau |
| 275 |
interne. Il y aura quelques complication à faire cela parce que |
| 276 |
toute les fonctionnalités du coupe-feu ne sont pas disponibles sur |
| 277 |
un pont. En outre, il y a une différence entre les paquets qui |
| 278 |
sont en cours de transmission et les paquets qui sont reçus par la |
| 279 |
machine locale. En général, les paquets entrants |
| 280 |
traversent le coupe-feu une seule fois, et pas deux comme c'est |
| 281 |
normalement le cas; en fait ils sont filtrés à la |
| 282 |
réception, aussi les règles qui |
| 283 |
utilisent “out” ou “xmit” n'agirons |
| 284 |
jamais. Personnellement, j'utilise “in via” qui est |
| 285 |
une ancienne syntaxe, mais qui a un sens quand vous la lisez. Une |
| 286 |
autre limitation est que vous êtes réduit à |
| 287 |
l'utilisation seulement des commandes “pass” ou |
| 288 |
“drop” pour les paquets filtrés par un pont. |
| 289 |
Les choses sophistiquées comme “divert”, |
| 290 |
“forward” ou “reject” ne sont pas |
| 291 |
disponibles. De telles options peuvent toujours être |
| 292 |
utilisées, mais uniquement sur le trafic à |
| 293 |
destination ou depuis le pont lui-même (s'il possède |
| 294 |
une adresse IP).</para> |
| 295 |
|
| 296 |
<para>Une nouveauté de FreeBSD 4.0, est le concept de filtrage avec |
| 297 |
gestion des états (stateful). C'est une grande |
| 298 |
amélioration pour le trafic <acronym>UDP</acronym>, qui |
| 299 |
typiquement est une requête de sortie, suivie peu de temps |
| 300 |
après par une réponse avec le même ensemble |
| 301 |
d'adresses IP et de numéro de ports (mais avec |
| 302 |
une source et une destination réservée, bien sûr). |
| 303 |
Pour les coupe-feux qui n'ont pas de gestion des états, |
| 304 |
il n'y a presque pas de possibilité de gérer ce type |
| 305 |
de trafic en une seule session. Mais avec un coupe-feu qui peut se |
| 306 |
“souvenir” d'un paquet <acronym>UDP</acronym> sortant et |
| 307 |
qui, pour quelques minutes, autorise une réponse, la gestion |
| 308 |
des services <acronym>UDP</acronym> est triviale. L'exemple suivant |
| 309 |
montre comment le faire. Il est possible de faire la même |
| 310 |
chose avec les paquets <acronym>TCP</acronym>. Cela vous permet |
| 311 |
d'éviter certaines attaques par refus de service et autres |
| 312 |
désagréables problèmes, mais augmente |
| 313 |
également rapidement la taille de votre |
| 314 |
table des états.</para> |
| 315 |
|
| 316 |
<para>Regardons un exemple de configuration. Notez tout d'abord |
| 317 |
qu'au début du fichier <filename>/etc/rc.firewall</filename> |
| 318 |
il y a déjà des règles standards pour |
| 319 |
l'interface de boucle locale |
| 320 |
<devicename>lo0</devicename>, aussi nous ne devrions pas y faire |
| 321 |
attention. Les règles personnalisées devraient |
| 322 |
être placées dans un fichier séparé (disons |
| 323 |
<filename>/etc/rc.firewall.local</filename>) et chargées au |
| 324 |
démarrage du système, en modifiant la ligne de |
| 325 |
<filename>/etc/rc.conf</filename> où nous avions défini le |
| 326 |
coupe-feu “ouvert”:</para> |
| 327 |
|
| 328 |
<programlisting>firewall_type="/etc/rc.firewall.local"</programlisting> |
| 329 |
|
| 330 |
<important> |
| 331 |
<para>Vous devez préciser le chemin <emphasis>complet</emphasis>, |
| 332 |
sinon il ne sera pas chargé avec le risque de rester |
| 333 |
isolé du réseau.</para> |
| 334 |
</important> |
| 335 |
|
| 336 |
<para>Pour notre exemple imaginez que nous avons l'interface |
| 337 |
<devicename>fxp0</devicename> connectée vers l'extérieur |
| 338 |
(Internet) et l'interface <devicename>xl0</devicename> vers |
| 339 |
l'intérieur (<acronym>LAN</acronym>). Le pont possède |
| 340 |
une adresse IP <hostid role="ipaddr">1.2.3.4</hostid> (il n'est pas |
| 341 |
possible que votre fournisseur d'accès puisse vous donner une |
| 342 |
adresse de classe A comme celle-ci, mais pour cet exemple cela |
| 343 |
ira).</para> |
| 344 |
|
| 345 |
<programlisting># Les choses dont nous avons gardé l'état avant de |
| 346 |
continuer |
| 347 |
add check-state |
| 348 |
|
| 349 |
# Rejeter les réseaux RFC 1918 |
| 350 |
add drop all from 10.0.0.0/8 to any in via fxp0 |
| 351 |
add drop all from 172.16.0.0/12 to any in via fxp0 |
| 352 |
add drop all from 192.68.0.0/16 to any in via fxp0 |
| 353 |
|
| 354 |
# Autorise la machine pont à communiquer si elle le désire |
| 355 |
# (si la machine est sans adresse IP, ne pas inclure ces lignes) |
| 356 |
add pass tcp from 1.2.3.4 to any setup keep-state |
| 357 |
add pass udp from 1.2.3.4 to any keep-state |
| 358 |
add pass ip from 1.2.3.4 to any |
| 359 |
|
| 360 |
# Autorise les hôtes internes à communiquer |
| 361 |
add pass tcp from any to any in via xl0 setup keep-state |
| 362 |
add pass udp from any to any in via xl0 keep-state |
| 363 |
add pass ip from any to any in via xl0 |
| 364 |
|
| 365 |
# Section TCP |
| 366 |
# Autoriser SSH |
| 367 |
add pass tcp from any to any 22 in via fxp0 setup keep-state |
| 368 |
# Autoriser SMTP seulement vers le serveur de courrier |
| 369 |
add pass tcp from any to relay 25 in via fxp0 setup keep-state |
| 370 |
# Autoriser le transfert de zone seulement par le serveur de noms esclave [dns2.nic.it] |
| 371 |
add pass tcp from 193.205.245.8 to ns 53 in via fxp0 setup keep-state |
| 372 |
# Laisser passer les sondes d'ident. C'est préférable plutôt que d'attendre |
| 373 |
# qu'elles s'arrêtent |
| 374 |
add pass tcp from any to any 113 in via fxp0 setup keep-state |
| 375 |
# Laisser passer la zone de "quarantaine" |
| 376 |
add pass tcp from any to any 49152-65535 in via fxp0 setup keep-state |
| 377 |
|
| 378 |
# Section UDP |
| 379 |
# Autorise le DNS seulement vers le serveur de noms |
| 380 |
add pass udp from any to ns 53 in via fxp0 keep-state |
| 381 |
# Laisser passer la zone de "quarantaine" |
| 382 |
add pass udp from any to any 49152-65535 in via fxp0 keep-state |
| 383 |
|
| 384 |
# Section ICMP |
| 385 |
# Laisser passer 'ping' |
| 386 |
add pass icmp from any to any icmptypes 8 keep-state |
| 387 |
# Laisser passer les messages d'erreurs générés par 'traceroute' |
| 388 |
add pass icmp from any to any icmptypes 3 |
| 389 |
add pass icmp from any to any icmptypes 11 |
| 390 |
|
| 391 |
# Tout le reste est suspect |
| 392 |
add drop log all from any to any</programlisting> |
| 393 |
|
| 394 |
<para>Ceux qui parmi vous ont déjà installé |
| 395 |
des coupe-feux auparavant pourront noter l'absence de certaines |
| 396 |
choses. En particulier, il n'y a pas de règles contre le |
| 397 |
forgeage d'adresses, en fait nous n'avons <emphasis>pas</emphasis> |
| 398 |
ajouté:</para> |
| 399 |
|
| 400 |
<programlisting>add deny all from 1.2.3.4/8 to any in via fxp0</programlisting> |
| 401 |
|
| 402 |
<para>Cela, bloque les paquets provenant de l'extérieur et clamant |
| 403 |
être en provenance de votre réseau. C'est quelque chose |
| 404 |
que vous devriez habituellement faire pour être sûr que |
| 405 |
personne n'essaie de passer outre votre filtre de paquet, en |
| 406 |
générant d'infames paquets qui sont comme s'il venaient |
| 407 |
de l'intérieur. Le problème |
| 408 |
avec cela est qu'il y a <emphasis>au moins</emphasis> un hôte de |
| 409 |
l'extérieur que vous ne voulez pas ignorer: le routeur. Mais |
| 410 |
habituellement, les fournisseurs d'accès contrent le forgeage sur |
| 411 |
leur routeur, aussi nous ne devons pas nous en préoccuper plus que |
| 412 |
cela.</para> |
| 413 |
|
| 414 |
<para>La dernière règle semble être une copie |
| 415 |
conforme de la règle par défaut, qui ne laisse passer |
| 416 |
rien de ce qui n'est pas spécifiquement autorisé. Mais |
| 417 |
il y a une différence: tout le |
| 418 |
trafic suspect sera tracé.</para> |
| 419 |
|
| 420 |
<para>Il y a deux règles pour faire passer le trafic |
| 421 |
<acronym>SMTP</acronym> et <acronym>DNS</acronym> vers le serveur |
| 422 |
de courrier et le serveur de noms, si vous en avez. Evidemment |
| 423 |
l'ensemble du jeu de règle devra être arrangé |
| 424 |
selon vos goûts |
| 425 |
personnels, c'est juste un exemple particulier (le format des |
| 426 |
règles est décrit précisément dans la |
| 427 |
page de manuel &man.ipfw.8;). Notez qu'afin que “relay” et |
| 428 |
“ns” puissent fonctionner, les services de résolution |
| 429 |
de nom doivent fonctionner <emphasis>avant</emphasis> que le pont |
| 430 |
soit activé. C'est un exemple pour être sûr que |
| 431 |
vous avez configuré l'adresse IP sur la bonne carte |
| 432 |
réseau. Alternativement |
| 433 |
il est possible de spécifier l'adresse IP au lieu du nom |
| 434 |
(nécessaire si la machine est sans adresse IP).</para> |
| 435 |
|
| 436 |
<para>Les personnes qui ont l'habitude de configurer des coupe-feux |
| 437 |
ont probablement également utilisé soit une règle |
| 438 |
“reset” soit une règle “forward” pour les |
| 439 |
paquets ident (<acronym>TCP</acronym> port 113). Malheureusement, |
| 440 |
ce n'est pas une option applicable avec un pont, aussi la |
| 441 |
meilleure solution est de laisser les passer vers leur |
| 442 |
destination. Aussi longtemps que la machine de destination de |
| 443 |
fait pas tourner un daemon d'ident, cela est relativement |
| 444 |
inoffensif. L'alternative est de bloquer les connexions sur le |
| 445 |
port 113, ce qui pose problème avec des services comme |
| 446 |
l'<acronym>IRC</acronym> (la sonde d'ident doit s'arrêter).</para> |
| 447 |
|
| 448 |
<para>La seule autre chose qui est un peu étrange que vous avez |
| 449 |
peut-être noté est qu'il y a une règle pour |
| 450 |
laisser le pont communiquer, et une autre pour les hôtes |
| 451 |
internes. Rappelez-vous que c'est parce que les deux ensembles de |
| 452 |
trafic prendront un chemin différent à travers le noyau |
| 453 |
et dans le filtre de paquet. Le réseau interne ira à |
| 454 |
travers le pont, alors que la machine |
| 455 |
locale utilisera la pile IP normale pour communiquer. Ainsi les |
| 456 |
deux règles s'occupent de cas différents. La |
| 457 |
règle “in via <devicename>fxp0</devicename>” |
| 458 |
fonctionne pour les deux chemins. En général, si |
| 459 |
vous employez des règles “in via” dans tous le |
| 460 |
filtre, vous devrez faire une exception pour les paquets |
| 461 |
générés localement, parce qu'ils ne sont pas |
| 462 |
passés par une de nos interfaces.</para> |
| 463 |
</sect1> |
| 464 |
|
| 465 |
<sect1 id="filtering-bridges-contributors"> |
| 466 |
<title>Participants</title> |
| 467 |
|
| 468 |
<para>Plusieurs parties de cet article proviennent, et furent mises |
| 469 |
à jour et adaptées d'un vieux texte sur les ponts, |
| 470 |
écrit par Nick Sayer. Cet article est également |
| 471 |
inspiré d'une introduction sur les ponts |
| 472 |
de Steve Peterson.</para> |
| 473 |
|
| 474 |
<para>Un grand merci à Luigi Rizzo pour l'implémentation |
| 475 |
du code de pont dans FreeBSD et pour le temps qu'il a passé |
| 476 |
à répondre à toutes |
| 477 |
mes questions à ce sujet.</para> |
| 478 |
|
| 479 |
<para>Un remerciement également à Tom Rhodes qui a |
| 480 |
supervisé mon travail de traduction de l'Italien (langue |
| 481 |
d'origine de cet article) à l'Anglais.</para> |
| 482 |
</sect1> |
| 483 |
</article> |