Академический Документы
Профессиональный Документы
Культура Документы
com
IPTABLES
FIREWALL
Plan
Présentation générale
Présentation générale
Filtrage IP
Idée : contrôler les paquets IP autorisés à atteindre un hôte
Intérêt : sécuriser un hôte de façon globale (au niveau
réseau)
Complexe :
Connaissance nécessaire des protocoles
filtrés (TCP/IP, HTTP, … mais aussi FTP, SQL,
…)
IP Filter
Filtre de paquets fonctionnant sous Unix libres et
propriétaires
Intégré dans FreeBSD et NetBSD
Conçu et développé par Darren Reed
Packet Filter
Filtre de paquets dans OpenBSD (à partir de la version 3.0)
Conçu par Daniel Hartmeier
Filtrage IP standard
Critères
Interface réseau : entrée ou sortie
Adresses IP (source et destination) : hôte ou sous-réseau
Champs de l’en-tête IP :
Fragmentation
TOS et TTL
Options IP
Protocoles de niveau 4 : TCP, UDP et ICMP
Ports source et destination (TCP et UDP)
Drapeaux (TCP)
Types et codes (ICMP)
Actions
Laisser passer (ACCEPT)
Bloquer (DENY ou DROP)
Rejeter (REJECT) => message ICMP ou segment TCP avec
drapeau RST
Filtrage à états (statefull)
Principe :
Filtrage dynamique, en conservant des états pour les
connexions en cours
Seuls des paquets correspondants à un état pré-existant
sont acceptés
Intérêt :
Simplifie l’écriture des règles de filtrage
Améliore la sécurité, en n’autorisant que le trafic
effectivement licite
Protocoles :
TCP
Segments appartenant à une connexion TCP en cours
UDP
Datagrammes en réponse à un datagramme UDP émis
Messages ICMP d’erreur
ICMP
Messages ICMP en réponse à un message ICMP émis
Filtrage à états : mise en
oeuvre
Mise en œuvre :
Création d’un état lors de la traversée du premier paquet
Mémorisation de paramètres identifiant de façon unique une
connexion
Validation des paquets par comparaison des états courants
Expiration des états après un temps paramétrable
Paramètres conservés :
Adresses source et destination
Ports source et destination
Type, code, identifiant et numéro de séquence (ICMP)
TCP :
S’assurer que des segments TCP font partie d’une connexion en
cours est complexe
Real Stateful TCP Packet Filtering in IPFilter
=> http://home.iae.nl/users/guido/papers/tcp_filtering.ps.gz
Traduction d’adresses et de
ports (NAT)
Traduction d’adresses
Uni-directionnelle
Traduction en sortie d’adresses (typiquement) privées en adresse(s)
publique(s)
Possibilité de changer le port source
Bi-directionnelle
Traduction d’une adresse (typiquement) publique en une phrase
(typiquement) privée et réciproquement
Redirection de ports
Redirection d’un port en entrée vers un autre, en modifiant
l’adresse de destination ou non
Mise en oeuvre :
Fonctionnalités présentes dans Netfilter, IPFilter, Packet Filter
Ne sont pas détaillées ici
Partie 2
Présentation générale
Possibilités
Principe de base
Options
Mise en service
IPChains : possibilités
(1/2)
ipchains est l'un des systèmes de filtrage utilisable
sur les noyaux 2.2
Présentation générale
Définition
IPChains vs IPTables
Principe de base
Options
Nouveauté
Exemple
Définition:
IPTables est un outil Linux
(exclusivement) pour gérer le pare-feu qui
est intégré au noyau Linux 2.4 (et
supérieur). L'architecture du noyau pour le
système de pare-feu s'appelle 'netfilter'.
Netfilter a de très nombreuses
fonctionnalités: filtrage de paquets, suivi
de connexions, NAT1, ....
Le principe de fonctionnement est
simple, lorsque la carte réseau recoit un
paquet celui-ci est transmis à la partie
netfilter du noyau. Netfilter va ensuite
étudier ce paquet (les entêtes et le
contenu) et en se basant sur des règles
que l'administrateur aura défini, il va
choisir de laisser passer le paquet intact,
de modfier ce paquet, de le transmettre à
IPTables vs IPChains
Etats possibles :
NEW : compare les paquets n’appartenant à aucune connexion en cours
ESTABLISHED : compare les paquets appartenant à une connexion déjà ouverte
RELATED : compare les paquets qui appartiennent à une autre connexion, par
exemple les messages ICMP d’erreur, ou le trafic lié au fonctionnement d’un
protocole applicatif (ftp data => modes passif ou actif)…
INVALID : compare les paquets qui n’ont aucun sens dans le contexte de la
connexion existante, ou ceux qui n’ont pu être reçus pour une raison quelconque.
IPTables :
exemple
DEMONSTRATIONS
1er exemple:
L'objectif est d'obtenir une chaîne de machines de telle sorte que csci4
traverse csci3 puis csci2 puis csci1 avant que la connexion soit transmise
au routeur et que de l'extérieur seule csci1 soit visible.
Chaque machine sera donc une passerelle pour la machine voisine.
L'objectif est que tout le monde voit l'IP de csci1 sur la page http ://www-
fourier.ujf-grenoble.fr/~mmarcha/ip.php de son navigateur.
Commencez par tous redémarrer vos machines (pour nettoyer tous les
tests précédents).
- sur la machine csci1 :
Activez le forwarding puis activez la fonction de masquerading pour tout
le réseau :
# iptables -t nat -A POSTROUTING -s 193.54.241.0/24 -j
MASQUERADE
Rien d'autre à faire à votre niveau.
- Toutes les autres machines : Activez le forwarding puis activez la
fonction de masquerading.
Tuez ensuite le client DHCP qui prend les infos de connexion sur le
serveur DHCP
# killall dhclient
pour qu'il ne modfie pas les paramètres que vous allez mettre
DEMONSTRATIONS
5éme exemple:
Visite le site
www.udivers.com