analyse en profondeur du pare-feu Linux



La recherche sur l'analyse de la sécurité réseau, pare-feu (Firewall) sont souvent l'accent, la fonction essentielle est de le filtrer et bloquer le réseau local ou une certaine partie du réseau et des données Internet de transfert entre les données par paquets (). Est en fait une section du paquet de données, qui comprend également utilisé pour les envoyer à leur destination par les informations requises.

Vous pouvez penser à un paquet de paquets de données: les paquets de données en paquets de données elle-même, alors que les enveloppes sont utilisées pour envoyer ces informations à des machines à droite et la procédure à la lettre la hausse, il contient également un renseignements concernant l'adresse de retour. Travail dans leur processus de filtrage spécifiques, le pare-feu prendra le relais avant que l'accès interne et de l'accès au réseau Internet et un réseau interne à partir d'Internet paramètres d'acheminement.

Notre impression est que le pare-feu précédents conçu pour filtrer des paquets illégaux, ou pourquoi l'un d'un type connu en tant que pare-feu de filtrage de paquets avec elle? Développement au présent, sa fonction est croissante, non seulement à filtrer les paquets de données, traduction d'adresse réseau peut être faite pour les agents, etc. Linux kernel 2.4 la mise en oeuvre de pare-feu Netfilter est comme ça.

Regardons l'emplacement du pare-feu, je crois comprendre que soit il est installé dans une machine à faire un pare-feu personnels, ou installé dans une machine à une fonctionnalité de passerelle de réseau local, puis genre de situation se présente comme indiqué ci-dessous :






diagramme Pair résume les Netfilter installé dans la porte de la structure du châssis, on peut voir de la figure d'un paquet peut passer par le chemin, qui utilisent [] prolongée jusqu'à l'Est, connue sous le nom point de contrôle, lorsque les paquets de données arrivent à la point, il faut arrêter et certains contrôles. Voici le nom du point de contrôle est utilisé dans le nom d'iptables, spécifiques à la Netfilter peut venir avec le crochet que l'on appelle (Hook) de la fonction.

Netfilter résumer, il a les trois fonctions de base suivantes:

1, le filtrage des données (table filter)

2, la traduction d'adresse réseau (NAT table)

3, le traitement des paquets de données (table mangle)

Selon ces trois fonctions, les plus de cinq points de contrôle ont été classées par fonction. Comme chaque fonction correspond à une table dans Netfilter dans, et chaque point de contrôle il ya un certain nombre de règles de correspondance, ces règles forment une chaîne, il n'y a donc fait la déclaration suivante: "Netfilter est le tableau contenant, le tableau est un conteneur de chaîne, la règle du conteneur "

Une chaîne (chaîne) est en fait un certain nombre de règles (règles) dans une liste de vérification (check-list). Chaque chaîne peut avoir une ou plusieurs règles, chacun étant défini par une règle de ce genre, «Si la ligne d'en-tête avec ces conditions, si le traitement du paquet." Quand un paquet arrive sur une chaîne, le système démarrera à partir du contrôle première règle pour voir si elle répond aux conditions définies par les règles: si le système sera basé sur les méthodes définies par processus de réglementation du paquet de données; s'il n'est pas satisfait a continué de vérifier la règle suivante. Enfin, si le paquet ne répond à aucun de la règle de la chaîne, le système sera pré-définis en fonction de la stratégie de la chaîne (la politique) pour gérer le paquet.

Et une commande iptables, qui se compose essentiellement de cinq parties: vous voulez travailler dans ce formulaire, qui espère utiliser la chaîne de table, ont mené l'opération (insérer, ajouter, supprimer, modifier), les objectifs des règles spécifiques correspondent aux mouvements de paquets et les conditions .

La syntaxe de base: iptables-t match table opération cible chaîne J (s) (la table par défaut du système pour le «filtre»)

Le fonctionnement de base est la suivante:

-A la queue pour ajouter une règle dans la chaîne

-Je insérer la règle

règle-D supprimer

règle de substitution-R

-L énumère les règles

Basic action objective, qui s'applique à tous les liens:

ACCEPTER le paquet reçu

Jeter le paquet DROP

QUEUE file d'attente le paquet vers l'espace utilisateur

RETURN pour revenir à l'appel précédent de la chaîne

foobar chaîne définie par l'utilisateur

De base correspondant à l'état, qui s'applique à tous les liens:

-P spécifier le protocole (TCP / ICMP / UDP /...)

-L 'adresse source (adresse IP / masklen)

-D adresse de destination (adresse IP / masklen)

-Je l'interface d'entrée de paquets

-O interface de sortie de paquets

Étendue des conditions correspondant à:

options TCP ----- port source correspondant, port de destination, et toute combinaison de tcp tcp tag.

UPD ----- match le port source et port de destination

ICMP ICMP de type Match ----

MAC ----- recevoir des données correspondant à l'adresse mac

nfmark MARK ---- match

Owne ---- (s'applique uniquement aux paquets générés localement) pour correspondre à l'ID utilisateur, ID du groupe, ID du processus et l'ID de session

LIMITE --- paquets correspondant à une période spécifique de contraintes de temps. Cette expansion correspond au flux de données pour la restriction est très utile attaque DoS.

ETAT --- correspondent à l'état particulier de paquets (sous-système de suivi de connexion déterminé par l'état), les états possibles:

Invalide (ne correspond à aucun de connexion)

CRÉÉ (appartenant à un lien a été établi paquets)

NEW (le paquet de connexion de données)

Connexe (et une connexion déjà établie avec certains paquets de données connexes, comme un message d'erreur ICMP ou ftp données de connexion)

TOS - correspondre à la valeur en-tête IP champ TOS.