Obligement - L'Amiga au maximum

Mercredi 18 octobre 2017 - 13:12  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


En pratique : Pare-feu et filtrage d'adresses sur AmigaOS 4.0
(Article écrit par Philippe Ferrucci et Olaf Barthel et extrait d'Amiga Power - octobre 2006)


Introduction : au feu, au feu !

Quand on connecte un ordinateur à un réseau, on peut échanger des informations avec d'autres personnes. La transmission des données se fait d'un ordinateur à l'autre par la pile TCP/IP de chacun. Plus précisément, le transfert s'effectue à travers des "portes" numérotées qu'on nomme les ports. Je ne parle pas du jeu Ports Of Call mais en prenant un exemple vous allez comprendre.

Vous ne le voyez pas mais quand vous utilisez votre navigateur Internet favori, vous vous connectez à un site sur son port 80. Il s'agit du port par défaut pour transmettre les données avec le protocole HTTP. Pour vous en convaincre, vous pouvez essayer de forcer l'accès sur un port en le précisant juste après l'adresse voulue. Tapez "http://amigapower.free.fr:80" et vous verrez que vous accédez quand même au site Internet. En fait, le port 80 étant celui par défaut, on ne le précise pas à chaque fois et le navigateur Internet s'occupe tout seul de le renseigner.

De même, si vous essayez d'accéder à un autre port, en tapant "http://amigapower.free.fr:81", vous aurez une erreur. Ce port 81 n'étant pas prévu sur le site "free.fr" pour accepter des connexions entrantes et envoyer en retour des pages HTML.

Les deux mots-clés dans cette dernière phrase sont "accepter" et "entrante". En effet, il est possible d'ouvrir des ports et donc de permettre aux données de circuler à travers, ou au contraire de fermer un port pour éviter toute transmission de donnée. Les connexions peuvent être soit entrantes, des données venant de l'extérieur arrivent sur votre ordinateur, soit sortantes, vous envoyez des données vers l'extérieur.

Le système qui permet ainsi la gestion des ouvertures/fermetures des ports s'appelle un pare-feu ("firewall" en anglais).

Pour information, Roadshow, la pile TCP/IP d'AmigaOS 4, garde tous ses ports fermés par défaut. Les ports sont ouverts à la demande. Par exemple, si vous installez le serveur Web Apache, le port 80 sera ouvert automatiquement au lancement de ce programme.

La translation d'adresses

En plus de la fonction de pare-feu, la pile TCP/IP d'AmigaOS 4 permet de faire de la translation d'adresses vous permettant ainsi de transformer votre AmigaOS 4 en passerelle. Ce type d'utilisation un peu plus technique s'utilise, par exemple, quand on veut que plusieurs ordinateurs partagent la même connexion. Ou encore, on peut configurer la translation d'adresses pour qu'une requête entrante atteigne un ordinateur plutôt qu'un autre sur le réseau local.

Prenons l'exemple d'un utilisateur qui possède un seul modem (RTC ou ADSL) et deux ordinateurs. Le modem étant connecté à un ordinateur, seul celui-ci peut réaliser la connexion au fournisseur d'accès Internet. Donc pour pouvoir accéder au réseau à partir des deux ordinateurs, soit il faut déplacer le modem d'une machine à l'autre, soit il faut transformer en passerelle, l'ordinateur avec le modem. Ainsi il sera possible d'utiliser le deuxième ordinateur pour se connecter à Internet à travers la connexion du premier.

Supposons toujours que le réseau local soit composé de deux ordinateurs. Si VNC fonctionne sur l'un deux, quand on voudra se connecter depuis l'extérieur (depuis Internet), la pile TCP/IP devra savoir si les requêtes VNC doivent être acheminées vers l'ordinateur 1 ou l'ordinateur 2. Des règles NAT traitant les paquets entrants sur le port 5900 qu'utilise VNC, permettront d'atteindre cet ordinateur depuis l'extérieur.

La translation d'adresses est plus compliquée à mettre en place. De plus, avec les modems routeurs d'aujourd'hui, ces règles sont mises en place sur ces périphériques. Peu d'utilisateurs auront donc à réaliser ce type de configuration sur Roadshow. En conséquence, je n'aborderai pas plus ce sujet ici.

Pare-feu en pratique

Maintenant que nous avons vu les différentes possibilités de la pile TCP/IP, mettons-les en pratique. Pour cela, nous avons deux commandes Shell à notre disposition : "ipf" et "ipnat". Et oui, Roadshow ne disposant pas d'interface graphique pour la gestion des ports, il va falloir user d'huile de coude.

Deux fichiers de configuration vont nous permettre de paramétrer notre système : ipf.règles et ipnat.règles. Plaçons-les tout naturellement dans le répertoire "Devs:Internet". Dans ces deux fichiers, nous allons écrire des règles qui suivent une syntaxe bien précise et, je vous le dit tout de suite, qui n'est pas facile à comprendre.

Mais avant d'étudier ces règles, commençons par les commandes de base.

Désactiver les règles du pare-feu :

Shell> ipf -DFa

Cette commande désactive le filtrage des paquets (-D) et enlève toutes les règles de filtrage en utilisation (-Fa).

Activer des règles :

Shell> ipf -f DEVS:Internet/ipf.règles -E

Cette commande lit le fichier "DEVS:Internet/ipf.règles" (-f) et active le filtrage (-E) avec les règles qu'il contient.

Tester le fichier de configuration :

Shell> ipf -f DEVS:Internet/ipf.règles -n

Si vous faites une erreur au milieu de votre fichier de configuration, la commande "ipf" interrompra son travail en rencontrant l'erreur, mais les règles parcourues jusque là seront quand même activées. Cela peut mettre en péril la sécurité de votre système (si tous les ports restent ouverts par exemple).

Cette commande permet de parcourir le fichier de règles mais ne les active pas (-n).

Règles de filtrage des paquets

Voici le plus difficile, mettre en place des règles de filtrage. Les possibilités sont tellement nombreuses qu'il faudrait la totalité du magazine pour les expliquer. Je n'en donnerai donc que quelques-unes. Avec quelques recherches sur Internet, vous trouverez des documentations donnant d'autres explications et d'autres exemples.

Avant de commencer, il faut garder à l'esprit comment sont interprétées les règles que nous allons placer dans le fichier ipf.règles. Celles-ci sont activées dans l'ordre d'apparition dans le fichier de configuration. De ce fait, les règles en fin de fichier peuvent redéfinir des règles qui se trouvent au début du fichier.

En fait, c'est généralement comme cela que les règles sont définies dans un pare-feu. On utilise tout d'abord des règles très générales, du genre "on accepte tous les paquets entrants et sortants". Ensuite, on précise mieux ce qu'on veut faire comme "on bloque les paquets qui viennent d'Internet".

Les règles se définissent en anglais avec une action (bloquer/laisser passer/...), la direction des paquets qu'on veut contrôler (entrant/sortant) et une source/destination (selon qu'on traite des paquets entrants ou sortants).

Voici tout de suite un exemple :

block in all

Cette règle va bloquer les paquets (block) entrants (in) sans restriction (all). Si on veut laisser passer tous les paquets sortants il faut utiliser :

pass out all

Supposons maintenant que nous voulions bloquer un type particulier de paquet. Si nous voulons éviter qu'un ordinateur puisse faire un "ping" de notre Amiga (pour voir s'il est allumé par exemple), il faudra bloquer les paquets entrants de type icmp. Pour cela, il faut une règle du type :

block in proto icmp all

Imaginons maintenant que nous ayons deux connexions sur notre Amiga : une connexion à Internet par un modem et une connexion à un réseau local par un câble Ethernet. C'est une configuration qui pourra nous donner envie plus tard de configurer l'Amiga pour qu'il soit une passerelle.

Chacune de ces connexions nécessite une interface que vous retrouverez dans "Devs:NetInterfaces". Appelons-les "Modem" et "Ethernet".

Il est très utile de pouvoir déclarer une règle pour qu'elle n'ait un effet que sur les paquets traversant une interface précise. Avec le blocage ci-dessus, tous les "ping" seront impossibles, même ceux depuis d'autres ordinateurs du réseau local. C'est gênant car on ne peut plus vérifier si deux ordinateurs du réseau local se "voient" bien. Il suffit alors de préciser l'interface sur laquelle la règle s'appliquera :

block in on Modem proto icmp all

De cette façon, seuls les "ping" effectués depuis Internet seront bloqués.

Toutes les règles que nous avons vu agissaient sur des paquets venant de n'importe quelle source et allant vers n'importe quelle destination. De ce fait, le mot-clé "all" était utilisé.

Mais il est possible de restreindre notre règle à un seul ordinateur ou à un sous-réseau en précisant la source/destination des paquets. La règle "block in all" vue plus haut peut aussi s'écrire :

block in from any to any

Évidemment, cet exemple ne casse pas des briques. Cela devient intéressant quand on définit une règle qui aura un effet uniquement sur les paquets venants ou partants d'un seul ordinateur du réseau local.

block out on Modem proto icmp from ordi1 to any

Cette règle bloquera les "pings" effectués depuis l'ordinateur "ordi1" du réseau local à direction de n'importe quel ordinateur sur Internet.

Il est aussi possible de ne laisser passer que les paquets sur un port donné. Prenons l'exemple d'un serveur Web installé sur un ordinateur de votre réseau local. Si vous voulez y accéder depuis Internet, il faut configurer le pare-feu pour laisser passer les paquets sur le port 80. Cela peut se faire avec la règle :

pass in on Modem proto tcp from any to nom-serveur port = www

"nom-serveur" est le nom de l'ordinateur sur lequel le serveur Web est installé. Vous voyez qu'il est possible d'utiliser le nom du service, ici "www", au lieu du numéro de port.

Pour finir, voici un exemple de règles fourni par Olaf Barthel, l'auteur de Roadshow. Ces règles vous permettent d'établir un pare-feu qui protège votre réseau local.

pass out from any to any
pass in from any to any
pass out proto tcp all keep state

Ces règles indiquent que les paquets qui ne seront pas traités par les règles suivantes, seront acheminés sans aucun changement.

block in quick on Modem proto icmp from any to any icmp-type redir
block in quick on Modem proto tcp/udp all with short
block in quick on Modem from any to any with ipopts

Les paquets mal formés seront bloqués par ces règles. Il s'agit par exemple de paquets TCP et UDP qui sont trop courts pour contenir des informations utilisables. Ces règles feront en sorte de ne pas alourdir votre réseau.

block in quick on Modem from 192.168.0.0/24 to any
block in quick on Modem from localhost to any
block in quick on Modem from 0.0.0.0/32 to any
block in quick on Modem from 255.255.255.255/32 to any

Ces règles bloquent les paquets qui semblent venir du réseau local alors qu'ils viennent d'Internet.

block in on Modem proto udp from any to any
pass in on Modem proto udp from any to any port = domain

Ici sont bloqués tous les paquets UDP envoyés depuis Internet, sauf ceux envoyés par les serveurs DNS en réponse à des requêtes.

block return-rst in on Modem proto tcp from any to any flags S/SA

Cette dernière règle bloque toutes les requêtes émises depuis Internet pour établir une connexion sur l'Amiga.

Voilà, vous avez maintenant les bases pour protéger encore plus votre AmigaOS 4. Les liens ci-dessous pourront vous être utiles si vous voulez approfondir le sujet.


[Retour en haut] / [Retour aux articles]