Le guide du débutant sur les tables IP
IPTables est le nom d'un système de pare-feu qui fonctionne via la ligne de commande sous Linux. Ce programme est principalement disponible en tant qu'utilitaire par défaut surUbuntu. Les administrateurs utilisent souvent le pare-feu IPTables pour autoriser ou bloquer le trafic sur leurs réseaux. Si vous êtes nouveau sur IPTables, l'une des premières choses que vous devez faire est de le mettre à jour ou de l'installer à l'aide de la commande suivante :
|_+_|Alors que les utilisateurs qui débutent avec les interfaces de ligne de commande constatent qu'il existe une courbe d'apprentissage liée à IPTables, l'utilitaire lui-même est assez simple à utiliser. Il existe une gamme de commandes de base qui vous servent de pain et de beurre pour contrôler le trafic. Cela étant dit, vous devez être très prudent lorsque vous modifiez les règles IPTables. Entrer une mauvaise commande peut vous empêcher complètement d'accéder à IPTables jusqu'à ce que vous résolviez le problème au sein de la machine physique.
Dans cet article, nous allons vous fournir un guide de base sur les IPTables et vous présenter les principes fondamentaux. Avant d'entrer dans le vif du sujet IPTables, vous devez vous assurer que vous disposez d'unVPN exécutant Ubuntu16.04 et unmachine locale avec un client SSH. Si vous les possédez déjà, il est temps de commencer.
Tutoriel IPTables : Chaînes
L'un des concepts fondamentaux à maîtriser dans IPTables est celui des chaînes. Une chaîne est essentiellement une règle. Les tables du filtre comportent trois chaînes que vous rencontrerez sur IPTables ;SAISIR,AVANTetSORTIR.
- SAISIR– La chaîne INPUT est la règle qui contrôle les paquets entrants. Ici, vous pouvez bloquer ou autoriser de nouvelles connexions. Vous pouvez le faire en fonction du port, du protocole et de l'adresse IP source.
- AVANT– La chaîne FORWARD filtre les paquets entrants qui sont transmis vers un emplacement final différent. Il est peu probable que vous utilisiez cette chaîne à moins que vous n’effectuiez un routage ou que vous recherchiez spécifiquement un transfert.
- SORTIR– La chaîne OUTPUT est utilisée pour gérer les paquets et connexions sortants. Il est important de noter que si vous envoyez une requête ping à un hôte externe, la chaîne d'entrée sera utilisée pour vous renvoyer les données.
Comportement de la chaîne par défaut
Vous souhaiterez peut-être vous lancer directement dans la configuration de règles particulières au début, mais vous devez d'abord prendre du recul pour définir le comportement par défaut. Pour identifier quel est le comportement par défaut de vos chaînes, vous devrez exécuter la commande :
|_+_|Cela affichera ce qui suit :
|_+_|Ces informations vous indiquent exactement ce pour quoi vos chaînes sont configurées. Dans l'exemple, les chaînes d'entrée, de transfert et de sortie ont été configurées pour accepter le trafic. Ces paramètres constituent un bon point de départ car ils ne bloquent aucune connexion souhaitée.
Toutefois, si vous constatez que vos stratégies n’acceptent pas les connexions, vous pouvez saisir chacune des commandes suivantes pour accepter toutes les connexions :
|_+_||_+_||_+_|Une fois vos valeurs par défaut alignées pour accepter toutes les connexions, vous pouvez contrôler l'accès aux IPTables en bloquant les adresses IP et les numéros de port. Cela vous permet de spécifier quelles connexions vous souhaitez bloquer plutôt que de tout bloquer par défaut.
Si vous travaillez avec des informations particulièrement sensibles, vous pouvez configurer vos paramètres par défaut pour bloquer automatiquement toutes les connexions. De cette façon, vous pouvez utiliser IPTables pour sélectionner les adresses IP individuelles que vous souhaitez autoriser. Pour ce faire, vous devez saisir la commande suivante :
|_+_||_+_||_+_|La majorité des utilisateurs auront intérêt à accepter toutes les connexions, mais il convient de le rappeler si vous travaillez sur un serveur haute sécurité.
Configuration de connexions individuelles
Une fois que vous avez configuré votre comportement de chaîne par défaut, il est temps de configurer les connexions individuelles. C'est à ce moment-là que vous configurez ce que l'on appelle une réponse spécifique à la connexion. Cela indique essentiellement aux IPTables comment interagir lorsqu'ils sont connectés à une adresse IP ou à un port. Ces réponses sont les suivantes :ACCEPTER,BAISSE,REJETER.
Comme vous pouvez le voir dans l'image ci-dessus, l'utilisateur a défini des règles de chaîne pour autoriser, abandonner ou rejeter la connexion en fonction des exigences. Vous trouverez ci-dessous une description de ce qu’implique chaque réponse :
- ACCEPTER– Cette configuration permet simplement d'effectuer la connexion.
- BAISSE– Drop bloque la connexion sans interagir de quelque manière que ce soit avec la source.
- REJETER– Cela bloque la tentative de connexion mais envoie également un message d'erreur. Il s'agit généralement d'informer la source que la tentative de connexion a été bloquée par votre pare-feu.
Comment autoriser ou bloquer les connexions
Il existe de nombreuses façons différentes de bloquer ou d'autoriser les connexions en fonction de vos paramètres. Les exemples ci-dessous utilisent la méthode de blocage secret consistant à utiliserBaissepour abandonner les connexions sans aucune interaction.iptables-Anous permet d'ajouter des mises en garde supplémentaires aux règles établies par nos paramètres de chaîne par défaut. Vous voyez ci-dessous comment utiliser cette commande pour bloquer les connexions :
Bloquer une seule adresse IP :
|_+_|Dans l'exemple ci-dessus, vous remplaceriez 10.10.10.10 par l'adresse IP que vous souhaitez bloquer.
Bloquer une plage d'adresses IP :
ou
8EBD835659C0749401ABD03E088F3CE1D6EC63ABloquer un seul port :
|_+_|Notez que le 'ssh peut être remplacé par n'importe quel protocole ou numéro de port. Il est également important de noter que le segment -p tcp du code est utilisé pour indiquer si le protocole que vous souhaitez bloquer utilise UDP ou TCP.
Si le protocole utilise UDP, vous saisirez-pudpau lieu de-p tcp. Vous pouvez également bloquer toutes les connexions depuis les adresses IP en entrant la commande suivante :
|_+_|Communication bidirectionnelle : didacticiel IPTables sur les états de connexion
La plupart des protocoles que vous rencontrez nécessitent que la communication aille dans les deux sens pour qu'un transfert ait lieu. Cela signifie que les transferts sont constitués d’une entrée et d’une sortie. Ce qui entre dans votre système est aussi important que ce qui en sort. Les états de connexion vous permettent de combiner des connexions bidirectionnelles et des connexions unidirectionnelles. Dans l'exemple ci-dessous, le protocole SSH a bloqué les connexions SSH à partir de l'adresse IP mais en autorise celles vers l'adresse IP :
|_+_|Une fois que vous avez entré une commande pour modifier les états de connexion, vous devez enregistrer vos modifications. Si vous ne le faites pas, lorsque vous fermez l'utilitaire, votre configuration sera perdue. Selon le système de distribution que vous utilisez, vous pouvez utiliser un certain nombre de commandes différentes :
Ubuntu:
|_+_|Chapeau rouge/CentOS –
OU
Il est essentiel de se rappeler d'utiliser ces commandes car cela éliminera les tracas liés à la configuration à chaque fois que vous chargez l'utilitaire.
Supprimer une règle
Il est tout aussi important de pouvoir sauvegarder vos règles que de pouvoir les supprimer. Si vous faites une erreur ou souhaitez simplement éliminer une ancienne règle, vous pouvez utiliser l'option –Dcommande. Cette commande doit être combinée avec le numéro de la règle que vous saisissez. Le numéro indique à IPTables quelle règle doit être supprimée. Par exemple, si vous deviez saisir :
|_+_|Ensuite, la 10ème règle que vous avez configurée sera supprimée.
Si vous souhaitez faire le ménage et supprimer une série de règles, vous pouvez utiliser leCommande -F. Vous pouvez le faire en saisissant ce qui suit :
|_+_|Cela effacera l'ensemble des règles et videra votre IPTable.
IPTables : apprenez les règles de la chaîne !
Ceci conclut notre didacticiel IPTables. Comme vous pouvez le constater, IPTables est un outil polyvalent permettant de bloquer et d'autoriser le trafic surLinuxdistributions. Utiliser efficacement l’utilitaire implique de configurer efficacement vos configurations par défaut et de créer des règles supplémentaires en plus de cela. Les configurations par défaut vous permettront de définir vos intentions générales de trafic pour autoriser ou refuser le trafic ; les règles vous permettront de structurer votre approche en matière d'adresses IP, de ports et de protocoles.
Nous n'avons fait qu'effleurer le potentiel d'IPTables, et il existe une tonne de commandes différentes que vous pouvez utiliser pour décider de la manière dont vous percevez le trafic sur votre serveur. Cependant, nous vous recommandons d'acquérir les bases avant de commencer avec d'autres commandes. Par exemple, vous voudrez vous familiariser avec les règles de base des chaînes avant de vous engager dans quelque chose de plus spécialisé.
Une fois que vous serez habitué au fonctionnement d'IPTables, vous pourrez commencer à incorporer encore plus de règles pour personnaliser votre expérience. Ce faisant, vous serez en mesure de spécifier exactement le type de connexions que vous autoriserez avec une précision bien plus grande que jamais.