* *

  La liberté n'est valable que tant que l'on a la force d'en faire usage.
   Annemarie Schwarzenbach

* *
* *
Réflexions
+ Objectif 2007
+ Politique de mise à jour de Mandriva
+ Questions-Réponses
+ Services du Club
+ Simplifier l'installation
+ Sondages
* *
* *
Mandriva Linux 2006
+ 01. Quelle version choisir?
+ 02. Installer Mandriva Linux
+ 03. Centre de Contrôle Mandriva Linux
+ 04. Mettre à jour son système
+ 05. Installer un logiciel
+ Administration
+ Matériel
+ Multimédia
 -  Sécurité
+ Tips
* *
* *
A voir !
* *
* *
Blog Blogons !
* *
* *
Votez !
Les compteurs GuppY ont été remis à 0 au 1er janvier. Alors un nouveau p'tit clic siouplait...
GuppYTop







DistroWatch
* *
* *
Sécurité - P4. Un script iptables comme pare-feu

Un script iptables comme pare-feu ?

Pour réaliser un pare-feu pour un PC connecté à Internet via l'ADSL, iptables n'est pas si compliqué que ça à manipuler. Je vous propose donc un script (cf. section Téléchargement) pour protéger votre machine. Ce script permet de filtrer les connexions dans les 2 sens, à savoir d'Internet vers sa machine et de sa machine vers Internet.

Note : si vous voulez utiliser un script iptables comme pare-feu, il est nécessaire de désactiver le pare-feu Mandriva et d'arrêter le service Shorewall.

Que fait ce script ?

La stratégie est simple : on interdit tout par défaut puis on autorise ce qui nous intéresse, c'est à dire :

  1. l'interface locale (lo) à dialoguer avec elle-même (c'est la moindre des choses)
  2. le trafic du PC vers Internet pour les services que nous avons décidé d'utiliser
  3. le trafic d'Internet vers le PC pour les connexions initiées par le PC
  4. le trafic d'Internet vers le PC pour les services que nous laissons ouverts
  5. les demandes de connexions refusées sont tracées dans /var/log/messages
Le filtrage n'est basé que sur les numéros de ports. Il est évidemment possible d'enrichir le script pour filtrer sur des adresses précises.

La configuration par défaut du script est la suivante :
  1. aucun service du PC n'est accessible depuis Internet
  2. l'accès aux services les plus courants est possible depuis le PC vers l'extérieur
En voici la liste :
FTP pour le transfert de fichiers
POP3, IMAP pour le rapatriement des mails
SMTP pour envoyer des mails
DNS, HTTP, HTTPS, WEBCACHE, SQUID pour surfer sans contrainte
SSH pour accéder à des serveurs distants via le protocole SecureShell
RTSP pour écouter des sources RealAudio
NNTP pour accéder aux forums Usenet
DHCP pour pouvoir obtenir une adresse IP dynamique au démarrage de la machine
L'ICMP Echo Request est aussi autorisé pour tester la présence d'une machine sur le réseau


Comment modifier ce script ?

Il suffit d'utiliser un éditeur de texte wink

  • Désactiver une règle
Il suffit d'ajouter le caractère # en début de la ligne qui représente la règle (ou de supprimer la ligne), puis de relancer l'exécution du script.

  • Activer une règle
Il suffit de supprimer le caractère # en début de la ligne qui représente la règle puis de relancer l'exécution du script.

  • Créer une nouvelle règle
Le comportement par défaut est de refuser l'établissement d'une connexion mais d'accepter tout le trafic sur une connexion déjà établie.
Des règles ont été ajoutées pour autoriser l'établissement de connexions pour les services les plus utilisés (cf. liste plus haut).

Il est possible de créer de nouvelles règles ayant des critères plus riches comme le port source et/ou le port destination (ou une plage de ports), l'adresse source et/ou destination pour un protocole particulier ou tous les protocoles.

La syntaxe d'une règle pour autoriser une connexion a la forme
iptables -A OUTPUT|INPUT -m state --state NEW -p tcp -s adresseIPsource -sport portSource -d adresseIPdestination --dport portDestination -j ACCEPT

Par exemple, pour n'autoriser que la machine 78.92.2.2 à se connecter sur son serveur Web
Pensez à désactiver la ligne qui autorise tout le monde à se connecter en HTTP
#iptables -A INPUT -m state --state NEW -p tcp --dport http -j ACCEPT

Créez la règle spécifique qui n'autorise que la machine 78.92.2.2 à se connecter en HTTP
iptables -A INPUT -m state --state NEW -p tcp -s 78.92.2.2 --dport http -j ACCEPT

Conseil : ajoutez la nouvelle règle dans le script où toutes les règles entrantes sont définies.


Activer le pare-feu

Exécuter le script active la fonction de pare-feu. Il faut exécuter le script après chaque modification.
Pour cela, ouvrir une console, se connecter sous root et exécuter le script via la commande sh.

$­­­­­­­­­­­­ su -
Password:
# cd /répertoire_d_accès_au_script
# sh ./firewall_desktop.sh [nom_de_l'interface]

Si l'interface d'accès au réseau n'est pas eth0, vous devez la préciser sur la ligne de commande.
Par exemple, si vous accédez à Internet via un modem ADSL l'interface est sûrement ppp0 ou ppp1. Si vous accéder à Internet via une Freebox, l'interface est sûrement eth0 ou eth1.
Pour connaître le nom de l'interface utilisée, ouvrez une console et tapez la commande ifconfig -a sous root, puis recherchez l'interface où il y a du trafic.


InterfaceReseauActive.png
Surfez un peu puis regardez laligne RX bytes/TX bytes.


Les règles créées par ce script seront automatiquement rechargées au démarrage de la machine si le service iptables est actif (il doit l'être avant l'exécution du script). Ce qui permettra de protéger la machine dès son démarrage. (Pour info, en fin de script la commande "service iptables save" force la sauvegarde des règles).

Cas du FTP

Si vous voulez réaliser des transferts de fichiers par FTP, il faudra évidemment activer les règles concernant ce protocole, mais il faudra aussi ajouter dans le fichier /etc/modprobe.preload les 2 lignes suivantes afin de charger au démarrage du PC les modules qui permettent à Netfilter de suivre les connexions FTP (le protocole FTP a un fonctionnement un peu particulier et nécessite des modules Netfilter spécifiques) :

ip_conntrack_ftp
ip_nat_ftp

En effet, ces 2 modules sont indispensables pour utiliser FTP avec des règles iptables mais ne sont pas automatiquement chargés au démarrage du PC.

Note 11 avril 2006 : le script desktop-firewall.sh proposé en section Téléchargement ajoute désormais automatiquement ces deux lignes.


Pour aller plus loin avec iptables

Je vous conseille la lecture du site de Christian Caleca.


Date de création : 06/11/2005 @ 10:30
Dernière modification : 12/04/2006 @ 08:08
Catégorie : Sécurité
Page lue 9131 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page

* *
* *
react.gifRéactions à cet article


Réaction n°4 

par esfa le 20/12/2005 @ 15:16

Dis donc Chty garnement, tu n'as pas lu toute la série d'articles Sécurité (numérotés P1 à P4) wink
Le pare-feu Mandriva ne permet pas de filtrer les flux sortants. C'est pour cela qu'il faut trouver une autre solution.
Il y a Shorewall certes mais il faut se palucher sa doc. Or pour un pare-feu personnel, les règles iptables sont simples à mettre en place.


Réaction n°3 

par Chty le 20/12/2005 @ 13:51

et donc pourquoi faire un script iptable ? pour plus de securite ? ou... ?


Réaction n°2 

par esfa le 20/12/2005 @ 13:46

j'ai ajouté une Note au début de l'article pour répondre à ta question


Réaction n°1 

par Chty le 20/12/2005 @ 13:07

quelle est la difference avec shorewall ? est ce necessaire ou shorewall est suffisant ?


* *
* *
Sondage
Quel processeur dans votre PC Linux à la maison ?
 
AMD 32 bits Desktop
AMD 32 bits Portable
AMD 64 bits Desktop
AMD 64 bits Portable
Intel Pentium
Intel Pentium M
Intel Centrino
Intel Core Duo
Intel Core 2 Duo
Autre
Résultats
* *
* *
Préférences

 Nombre de membres 495 membres


Utilisateurs en ligne

( personne )
* *
* *
Recherche




* *
* *
Flux RSS
* *
* *
Calendrier

* *
^ Haut ^
* *
diazepam overnight where can i buy generic ambien diazepam drug order fioricet online generic adipex tramadol ultram meridia 10mg valium no presciptions cheapest rates on adipex amoxicillin price overnight phentermine diet tramadol hcl discount order viagra best price cialis discount ultram order fioricet alprazolam price diazepam online without rx xanax online ordering ambien cod non prescription adipex how much grapefruit levitra propecia with an online prescription buy amoxicillin online tadalafil 350 carisoprodol mg tab order meridia online no prescription valium soma prescriptions phentermine online prescription buy tramadol online without perscription canadian pharmacy viagra cialis cheap buy ultram without a prescription fioricet with codeine alprazolam online pharmacy buy diazepam online without prescription buy xanax online without a prescription drug ambien prescription cheapest rates on adipex cheapest levitra propecia without a prescription amoxicillin 500 capsule tadalafil india online pharmacies cheap carisoprodol meridia price list on line pharmacies valium buy watson brand soma phentermine hcl 30mg order tramadol fedex buy viagra online prescription for cialis buy ultram online fast order fioricet overnight alprazolam 0.25 mg diazepam online without rx 2mg xanax order buy ambien from mexico adipex without prescription levitra reviews propecia for prostate health amoxicillin 250mg buy tadalafil carisoprodol discount meridia 10mg valium without prescription soma carisoprodol purchase phentermine with no prescription pharmacy no prescripition tramadol canadian pharmacy viagra cialis made in the usa buy ultram without a prescription buy cheap fioricet alprazolam overnight buy diazepam online buy xanax online without prescription ambien cr no rx mastercard adipex p cheap 20mg generic levitra order online propecia length of prescription amoxicillin 500 capsule tadalafil alternative carisoprodol prescription buy meridia 15mg without prescription valium without a prescription soma 350mg phentermine cheap cheap tramadol discount best price viagra buy cialis ordering ultram online what is fioricet alprazolam without prescription buy diazepam xanax without prescription purchase ambien online adipex p diet pill levitra for women propecia generic amoxicillin herbal tadalafil cheap carisoprodol meridia success stories valium without a prescription buy cheap soma online
GuppY - http://www.freeguppy.org/
  Site créé avec GuppY v4.5.12 © 2004-2005 - Licence Libre CeCILL
* *