Tables iptables. Commandes de base iptables. Actions sur les packages

Je suis tombé à plusieurs reprises avec le fait que même le non luré en général, les gens font des erreurs totalement impardonnables. Par exemple, ouvrez tout le port sur lequel la base de données tourne. Souvent, cela se produit aux débutants de Devops, que le code a écrit toute sa vie, et la configuration des serveurs inclut également ses responsabilités. Il y a de bons tutoriels sur le réseau réglage de base Firevola sous Linux et autre * Nix, mais il s'agit souvent d'une draps pour de nombreux écrans. J'espère donc que ce tutoriel plus laconique sera utile.

Important! Il est très facile par erreur afin de faire une voiture que vous n'irez plus chez elle. Cela est particulièrement vrai de l'hébergement en nuage. Par exemple, si vous fermez tous les ports de 1024 à 65536 dans AWS, pour une raison quelconque, la voiture est fermée après le redémarrage en général, tout le monde Ports. Si vous arrivez aux nuages, installez-vous meilleur pare-feu Via l'interface Web fournie par l'hébergement.

Peu de remarque sur la terminologie. Le pare-feu intégré au noyau Linux s'appelle NetFilter et IPTABLE est un utilitaire de gérer ce pare-feu. Beaucoup croient à tort que le pare-feu s'appelle iptables. Ce n'est pas vrai. Dire quelque chose comme "Je filtre les sacs à l'aide d'iptables", vous montrez l'environnement de votre analphabétisme.

En général, une tâche approximative peut être résolue à l'aide de NetFilter:

  • Autoriser / interdire le trafic entrant de certains ports pour des protocoles spécifiques (IPv4 / IPv6, TCP / UDP) à partir des adresses spécifiées (IP, Mac) ou sous-réseaux;
  • Tout de même en rapport avec le trafic sortant;
  • Vous pouvez par exemple ignorer pleinement tous les paquets ICMP;
  • SETUP NAT, voir l'article sur le routeur basé sur la PI de framboise;
  • J'ai entendu dire que le vrai gourou peut configurer la protection contre les DDO et les Brutfors, restreindre l'accès à un réseau à des applications, des utilisateurs ou des groupes spécifiques et de faire d'autres objets de la peste;

Je note que l'utilitaire IPTABLE semblait personnellement mal à l'aise par rapport à IPFW à FreeBSD. Heureusement, après avoir travaillé avec elle pendant un moment, tous ces nombreux drapeaux comme -a, -D, -J et d'autres sont familiers, donc, sont de patience. Considérez les équipes principales.

Afficher toutes les règles:

iptables -l -n.

Vous remarquerez peut-être qu'il existe des "chaînes" dans NetFilter - au moins une entrée, la sortie et l'avant. Personnellement, j'ai personnellement une chaîne de docker sur la voiture. Au début, vous pouvez penser aux deux premiers, comme tout le trafic entrant et sortant, respectivement et sur le reste oublier temporairement. La probabilité est qu'ils n'ont jamais besoin de vous.

Supprimer toutes les règles:

iptables -f.

Changer la stratégie (comportement par défaut) Chaînes:

goutte d'entrée iptables -p
iptables -p sais d'entrée accepter

Désactiver l'accès de l'hôte / du sous-réseau:

iptables -a entrée -S 123.45.67.89 -J Drop
iPTABLE -A INPUT -S -S 123.45.0.0/ 16 -J

Vous pouvez également utiliser des noms de domaine:

iPTABLES -A INPUT -S exemple.ru -J goutte

Interdiction des composés sortants:

iPtable Sortie -D 123.45.67.89 -J Drop

Les règles peuvent utiliser des refus:

iPTABLE -A INPUT! -s 123.45.67.89 -J Drop

Suppression de la règle sur son numéro dans la chaîne:

iptables -D entrée 1

Supprimer la règle en fonction de ce qu'il fait:

iPTABLE -D Entrées 123.45.67.89 -J Drop

L'option -p indique le protocole. Vous pouvez utiliser tous, ICMP, TCP, UDP ou le numéro de protocole de / etc / protocoles. Drapeau - -Sport indique le port à partir duquel le colis a été envoyé, a - -DPort indique le port de destination:

iptables -a entrée -P TCP --Sport 80 -J accepter
iPTABLE -A INPUT -P TCP --DPORT 80 -J accepter

Insérer des règles au début de la chaîne:

iptables -I saisir ...

Ou vous pouvez spécifier une position spécifique:

iptables -i entrée 3 ...

iptables-Save\u003e / etc / iptables.rules

Restaurer les règles:

iptables-restaurer.< / etc/ iptables.rules

Envisagez maintenant plusieurs exemples pratiques. Par exemple, il ressemble à une émulation de l'encoche dans le test qui vérifie le comportement de l'application dans laquelle le cluster AKKA est utilisé:

courir (nœud1, s "IPTABLE -A INPUT -S -S $ NODE2 -J DROP")
Courir (nœud1, s "IPTABLES -A INPUT -S -S $ NODE3 -J DROP")
Courir (nœud1, s "Iptables -a sortie -d $ node2 -j goutte")
Courir (nœud1, s "Iptables -a sortie -d $ node3 -j goutte")

La récupération se produit exactement la même chose, seul le drapeau -a est remplacé par le drapeau -D.

Un autre exemple. Il est nécessaire de savoir quels ports écoutent la voiture et ferment le supplément. Nous allons à la voiture et disons:

netstat -tuwpln.

Un exemple de sortie:

Connexions Internet actives (Seuls serveurs)
Proto Recv-Q Send-Q Adresse locale Adresse étrangère Etat PID / PROG Nom
TCP 0 0 0.0.0:80 0.0.0.0:* Écouter 3210 / NGinx
TCP 0 0 0.0.0.0.0.0.0:4369 0.0.0.0:* Écouter 1789 / EPMD
TCP 0 0 0.0.0.0:22 0.0.0.0:* Écouter 797 / sshd
TCP 0 0 0 127.0.0.1:5432 0.0.0.0:* Écouter 990 / Postgres

Nginx et Sshd examinent Internet, c'est normal. PostgreSQL n'atteigne qu'à l'interface locale, il n'ya donc aucun problème avec lui aussi. Mais EPMD sort (vous pouvez vérifier telnet d'une autre machine), et ce n'est pas bon nulle part. Seul le port 4369 peut être fermé. Comment le faire, il a été montré ci-dessus. Ou vous pouvez aller encore plus loin et interdire toutes les connexions de l'extérieur du port de 81 et plus.

Chaque ordinateur connecté au réseau est en danger potentiel. Les programmes qui essaieront de saisir le système de quelque manière que ce soit, il y a beaucoup de menaces pour entrer dans le système de manière à entrer dans le système et à se terminer par des pirates informatiques qui souhaitent accéder à l'ordinateur dont vous avez besoin. MAIS logicielLe monté sur un ordinateur peut contenir des vulnérabilités non encore connues et défectueuses pouvant être un trou en sécurité.

Si les ordinateurs domestiques ne sont pas très pertinents, car ils sont connectés au réseau via des routeurs et de NAT, ce qui les cache du réseau externe, alors pour les serveurs qu'il est pertinent que jamais. Dans la salle d'opération système linux Le noyau est construit dans des iptables de pare-feu très flexibles et fiables.

C'est à l'aide de ce programme que le système est protégé contre les intrusions externes, la redirection du port et toujours beaucoup d'action avec le trafic. Mais elle moins est que c'est un peu difficile dans le cadre. Cet article envisagera de définir les IPTABLES pour les nuls. J'espère qu'après celui-ci, vous pouvez utiliser avec confiance les capacités de base des IPTABLES.

Le sous-système IPtables et NetFilter a longtemps été intégré au noyau Linux. Tous les paquets de réseau qui passent à travers l'ordinateur sont envoyés à l'ordinateur ou sont conçus pour l'ordinateur, le noyau envoie via le filtre IPTABLES. Là présent, ces packages sont vérifiés, puis pour chaque vérification si elle transmet l'action spécifiée. Par exemple, l'emballage est transmis au noyau pour envoyer le programme cible ou jeté.

Types de paquet

Tous les paquets sont divisés en trois types: entrants, sortants et passants. La boîte de réception correspond à celles qui ont été envoyées à cet ordinateur, sortant - envoyées de cet ordinateur au réseau. Et le passage sont des emballages qui doivent simplement être chevauchés, par exemple, si votre ordinateur agit comme un routeur.

En conséquence, dans le filtre IPTABLES, tous les emballages sont divisés en trois chaînes similaires:

  • Contribution - Processus des paquets et des connexions entrants. Par exemple, si un utilisateur externe tente de se connecter à votre ordinateur SSH ou que tout site Web vous enverra votre contenu sur la demande du navigateur. Tous ces paquets tomberont dans cette chaîne;
  • avant - Cette chaîne est utilisée pour subir des composés. Cela inclut des packages envoyés à votre ordinateur, mais ne lui sont pas destinés, ils sont simplement envoyés sur le réseau à leur objectif. Comme je l'ai dit, cela est observé sur des routeurs ou, par exemple, si votre ordinateur distribue WiFi;
  • production. - Cette chaîne est utilisée pour les paquets et les connexions sortants. Cela inclut des packages créés lors de la tentative de site Web de ping ou lorsque vous exécutez le navigateur et essayez d'ouvrir n'importe quel site.

Mais si vous pensez que vous pouvez simplement fermer complètement la chaîne d'entrée pour augmenter la sécurité, vous êtes très erroné. Lorsque le réseau est en cours d'exécution, les chaînes d'entrée et de sortie sont utilisées. Par exemple, vous essayez d'effectuer de Ping, les données sont envoyées via la sortie, mais la réponse vient en entrée. La même chose se passe lors de la surveillance de sites et d'autres actions. Mais la chaîne avant peut ne pas être utilisée du tout si votre ordinateur n'est pas un routeur. Donc, les paramètres IPTABLES doivent être effectués très soigneusement.

Termes et actions

Avant de passer à la création d'une liste des règles IPTABLES, vous devez déterminer comment ils fonctionnent et ce qui se passe. Pour chaque type de paquets, vous pouvez définir un ensemble de règles qui seront vérifiées pour la conformité avec le package et si le paquet correspond, puis appliquez l'action spécifiée dans la règle. Les règles forment une chaîne, la sortie, la sortie et l'avant sont appelées chaînes, chaînes de règles. L'action peut être plusieurs:

  • J'accepte - permettre le passage de l'emballage sur la chaîne des règles;
  • Tomber. - supprimer le paquet;
  • Rejeter. - Rejeter le paquet, l'expéditeur recevra un message que le colis a été rejeté;
  • Enregistrer. - faire une entrée sur le package dans le fichier journal;
  • File d'attente. - Envoyez le package à l'application utilisateur.

Les règles peuvent vérifier toute conformité, telle que la propriété intellectuelle, par le port du destinataire ou de l'expéditeur, les en-têtes de paquets et beaucoup. Si un package ne correspond à aucune des règles, l'action par défaut est utilisée pour elle, acceptez généralement.

Lorsque nous avons traité les règles, vous pouvez retourner aux chaînes. En plus de ceux énumérés ci-dessus, il y a deux autres chaînes supplémentaires de règles:

  • prétérilant - Dans cette chaîne, le colis obtient avant de traiter les IPTABLES, le système ne sait pas encore où il sera envoyé, en entrée, en sortie ou en avant;
  • postrait - Tous les colis passés qui ont déjà passé la chaîne avant viennent ici.

Mais ce n'est pas tout. Nous avons toujours des tables d'Iptables, avec lesquelles il est également souhaitable de comprendre.

Tables iPatables

Au-dessus des chaînes des règles d'IPTABLES Il existe un autre niveau d'abstraction, ce sont des tables. Il existe plusieurs tables dans le système et ils ont tous un ensemble standard de chaînes d'entrée, d'avant et de sortie. Les tables sont conçues pour effectuer différentes actions au-dessus des packages, par exemple, pour la modification ou le filtrage. Maintenant, ce n'est pas si important pour vous et il suffira de savoir que le filtrage de l'emballage IPTABLES est effectué dans la table du filtre. Mais nous allons les regarder tous:

  • brut. - conçu pour fonctionner avec des packages bruts jusqu'à ce qu'ils aient passé le traitement;
  • mutiler - conçu pour modifier les packages;
  • nat. - fournit NAT, si vous souhaitez utiliser un ordinateur comme routeur;
  • filtre. - La table principale pour filtrer des paquets est utilisée par défaut.

Avec la théorie presque tout, maintenant regardons l'utilité ligne de commande Iptables, avec lesquels le système IPTABLE est géré.

Utilitaire iptables

Le sous-système IPtables et NetFilter est intégré au noyau, mais l'ensemble des utilitaires pour contrôler tout cela n'est pas toujours fourni avec le système. Pour installer l'utilitaire Ubuntu, tapez:

sudo apt install iptables

Et dans les distributions basées sur Fedora, l'installation d'IPTABLES est effectuée un peu différente:

sudo yum installer iptables

Lors de l'installation d'IPTABLES, vous pouvez aller au réglage, mais en considérant d'abord l'utilitaire de syntaxe. Habituellement, l'équipe a une vue aussi générale:

-t chaîne d'action de table options supplémentaires

Examinons maintenant les paramètres IPTABLES, la table indique une table avec laquelle vous devez travailler, ce paramètre peut être manqué, l'action est l'action nécessaire, par exemple, de créer ou de supprimer la règle, et options supplémentaires Décrivez l'action et la règle à exécuter.

Il reste à considérer les principales actions que vous autorisez les IPTABLES:

  • -UNE. - ajouter une règle dans une chaîne;
  • -DE - vérifier toutes les règles;
  • -RÉ. - Supprimer la règle;
  • -JE. - insérer une règle avec le bon numéro;
  • -L. - retirer toutes les règles de la chaîne actuelle;
  • -S. - retirer toutes les règles;
  • -F. - effacer toutes les règles;
  • -N. - créer une chaîne;
  • -X. - enlever la chaîne;
  • -P. - Installez l'action par défaut.

Options supplémentaires pour les règles:

  • -p. - Spécifiez le protocole, l'un des TCP, UDP, UDPLITE, ICMP, ICMPV6, ESP, AH, SCTP,
    MH;
  • -s. - Spécifiez l'adresse IP du périphérique de l'expéditeur de package;
  • -ré. - spécifier l'adresse IP du destinataire;
  • -JE. - Interface réseau d'entrée;
  • -o. - Interface réseau sortante;
  • -J. - Sélectionnez une action si la règle est arrivée.

Vous pouvez maintenant procéder avec des exemples de la configuration des iptables.

Exemples de paramètres IPTABLES

Nous examinerons plusieurs exemples de base afin que vous puissiez tout consolider à lire ci-dessus.

Liste des règles

Tout d'abord, regardons comment les règles d'IPTABLES sont visualisées, pour cela, c'est une option suffisante:

Vous pouvez également spécifier la chaîne souhaitée pour afficher les règles uniquement pour cela:

iptables -l entrées.

Règles de nettoyage

Vous ne pouvez pas simplement éteindre les iptables Arrêtez le service de mise à jour des règles IPTABLES via SystemD ou même la suppression d'un ensemble d'utilitaires pour la configuration. Le sous-système fonctionne au niveau du noyau et ne dépend pas de ce que vous avez installé là-bas. Par conséquent, si vous faites quelque chose de mal, vous devrez effacer les règles. Pour ce faire, suivez:

Ou seulement pour une certaine chaîne:

sUDO IPTABLE -F INPUT

Je vous rappelle que toutes ces actions sont exécutées pour le filtre de la table par défaut.

Règles par défaut

Comme je l'ai dit, si aucune règle ne convient au paquet, l'action par défaut est appliquée. Il peut être défini à l'aide de l'option -P:

sUDO IPTABLE -P INPUT Accepter
$ sudo iptables -put de sortie accepter
$ sudo iptables -p goutte avant

Dans cet exemple, nous autorisons les chaînes d'entrée et de sortie, mais nous interdisons en avant.

Blocage de paquet

Pour bloquer les packages, nous pouvons utiliser l'action de goutte, filtrer les packages que vous souhaitez bloquer. Nous pouvons sur divers critères, tels que le protocole, l'adresse IP, le masque de réseau, le port et le sort.

Cela ressemblera à une commande qui vous permet d'ajouter la règle IPTABLES pour bloquer tous les packages entrants de 10.10.10.10.10:

sudo iptables -a entrée -S 10 10.10.10 -J goutte

Et maintenant les packages sortants sur la même adresse:

La gamme IP de blocage est effectuée de la même manière. Pour ce faire, utilisez le masque du réseau 10.10.10.0/24. Ce seront toutes des adresses de 10.10.10.0 au 10.10.10.255:

sudo iptables -a entrée -S 10/10/10/24 -J Drop

Option de masque avancé:

sudo IPTABLE -A Entrées -S 10 10.10.0 / 255.255.255.0 -J Drop

Vous pouvez également bloquer toutes les connexions SSH entrantes:

sUDO IPTABLE -A INPUT -P -P TCP -DPORT SSH -S 10.10.10.10 -J Drop

Comme vous pouvez le constater, ajoutez la règle IPTABLES est très simple.

Supprimer les règles

L'élimination des règles IPTABLES est effectuée de la même manière que la création de nouveau, uniquement au lieu de l'option A dont vous avez besoin d'utiliser l'option D. Tout d'abord, consultez la liste des règles:

Par exemple, vous pouvez supprimer la règle IPTABLES, qui a été créée par la seconde:

sudo iptables -a sortie -s 10 10.10.10 -J Drop

Vous pouvez également couper complètement Iptables en exécutant la commande avec l'option -f:

Dans cet article, nous examinerons la procédure de passage de tables et de chaînes dans chaque table IPTABLES. Les informations seront utiles pour élaborer les règles et donneront une compréhension de la procédure de passage d'un colis sur toutes les tables et toutes les chaînes d'IPTABLES, en particulier lorsque de telles actions telles que DNAT, SNAT et TOS seront incluses dans les ensembles de règles.

Le paquet venant du pare-feu tombe d'abord sur périphérique réseau, intercepté par le pilote et est transmis au noyau du système. Ensuite, le paquet transmet un certain nombre de tables et, en fonction des règles figurant dans ce tableau, un destin supplémentaire est résolu.

Tableau 1. Procédure de transmission de paquets avant

Marcher Tableau Chaîne Noter
1 Câble (c'est-à-dire Internet)
2
3 Mutiler Prétérilant Habituellement, cette chaîne est utilisée pour apporter des modifications à l'en-tête de paquet, par exemple, de modifier TOS de bits, etc.
4 Nat. Prétérilant Cette chaîne est utilisée pour diffuser des adresses réseau (transotion de l'adresse réseau de destination). La traduction de l'adresse de réseau source est effectuée ultérieurement, dans une autre chaîne. Tout type de filtrage dans cette chaîne ne peut être effectué que dans des cas exceptionnels.
5 Décider de nouveau routage, c'est-à-dire À ce stade, il est décidé d'où un package est une application locale ou un autre nœud de réseau.
6 Filtre. Avant Seuls les paquets qui vont à un autre hôte tout le filtrage du trafic de transit tombent dans la chaîne avant. N'oubliez pas que dans cette chaîne passe le trafic dans les deux sens, veillez à considérer cette circonstance lors de la rédaction de règles de filtrage.
7 Mutiler Avant Ensuite, le colis tombe dans la table d'intervalle vers l'avant\u003e Chaîne\u003e Bangle, qui ne doit être utilisée que dans des cas exceptionnels lorsqu'il est nécessaire de modifier le titre du paquet entre deux décisions de routage.
8 Décider de nouveau routage, c'est-à-dire À ce stade, par exemple, il est résolu sur quelle interface le colis ira.
9 Nat. Postrait Cette chaîne est conçue principalement pour la traduction d'adresses de réseau source. Ne l'utilisez pas pour filtrer sans besoin. La masquageade est effectuée ici.
10 Mutiler Postrait Cette chaîne est conçue pour apporter des modifications à l'emballage du colis après la dernière décision de routage.
11 Interface réseau de sortie (par exemple, eth1).
12 Câble (que ce soit le réseau local).

Comme vous pouvez le constater, le colis passe plusieurs étapes avant qu'il ne soit adopté plus loin. Sur chacun d'eux, l'emballage peut être arrêté, qu'il s'agisse d'une chaîne IPTABLE ou d'une autre chose, mais nous sommes principalement intéressés par les IPTables. Notez qu'il n'y a pas de chaînes spécifiques aux interfaces individuelles ou quelque chose comme ça. La chaîne avant passe tous les packages qui se déplacent à travers notre pare-feu / routeur. N'utilisez pas la chaîne d'entrée pour filtrer les paquets de transit, ils ne sont tout simplement pas là! À travers cette chaîne, seuls ces paquets destinés à cet hôte se déplacent.

Tableau 2. Mouvement des paquets d'entrée

Marcher Tableau Chaîne Nott.
1 Câble (c'est-à-dire Internet)
2 Interface réseau d'entrée (par exemple, eth0)
3 Mutiler Prétérilant Habituellement utilisé pour modifier l'en-tête de paquet, par exemple, pour installer TOS de bits, etc.
4 Nat. Prétérilant Traduction d'adresses (Traduction de l'adresse de réseau de destination). Le filtrage de l'emballage n'est autorisé que dans des cas exceptionnels.
5 Décision sur le routage.
6 Mutiler Contribution Le colis tombe dans la chaîne d'entrée de la table de galets. Il y aura changé dans l'en-tête de paquet avant qu'il ne soit transféré à l'application locale.
7 Filtre. Contribution Il y a un filtrage du trafic entrant. N'oubliez pas que tous les packages entrants nous ont adressés à passer à travers cette chaîne, quelle que soit l'interface qu'elles sont entrées.
8 Processus local / application

Les packages de sortie ont un ordre inverse de passer à travers les tables. Le passage de la passe est présenté dans le tableau 3.

Tableau 3. Sortie des paquets de sortie

Marcher Tableau Chaîne Noter
1 Processus local
2 Mutiler Production. Ici change dans l'en-tête de paquet. Le filtrage effectué dans cette chaîne peut avoir des conséquences négatives.
3 Nat. Production. Cette chaîne est utilisée pour diffuser des adresses réseau (NAT) dans des paquets émanant des processus de pare-feu local.
4 Filtre. Production. Le trafic sortant est filtré ici.
5 Décision sur le routage. Il est décidé - où le colis ira plus loin.
6 Nat. Postrait La traduction de l'adresse de réseau (SNAT) est effectuée ici. Il ne suit pas dans cette chaîne pour filtrer les packages afin d'éviter les effets secondaires indésirables. Cependant, vous pouvez arrêter les packages ici en appliquant des stratégies par défaut. Tomber..
7 Mutiler Postrait La table d'interruption de la chaîne postting est principalement utilisée pour les règles qui devraient apporter des modifications à l'en-tête de paquets avant de quitter le pare-feu, mais après la décision de routage. Tous les emballages tels que le transit et créés par les processus de pare-feu local tombent dans cette chaîne.
8 Interface réseau (par exemple, eth0)
9 Câble (c'est-à-dire Internet)

ET vue visuelle Paquets:

Ce dessin donne une idée assez claire de la procédure de passage de paquets à travers diverses chaînes. Dans la première décision de routage (décision de routage), tous les paquets destinés à cet hôte sont envoyés à la chaîne de saisie, les autres sont dans la chaîne avant.

Faites attention également au fait que les emballages, avec l'adresse de la destination sur le pare-feu, peuvent subir une diffusion adresse réseau (DNAT) Dans la chaîne de prétention de la table NAT et, en conséquence, un routage supplémentaire dans le premier point sera effectué en fonction des modifications apportées.

acier, vison, boeuf, papier 28 septembre 2010 à 19h47

Les bases d'IPtables sur l'exemple des yeux de bébé dibian

Qu'est-ce que spécome parler de

Tout est très simple, expliquant une fois de plus sur le forum des débutants dans monde linuxComme je me suis rendu compte que Internet n'a pas trouvé l'article avec une explication non seulement des paramètres IPTABLES, mais également des bases du réseau.
Donc, votre attention que j'imagine une petite excursion pour configurer le pare-feu sous Linux. Nous ne serons ravir que dans la mise en place de NetFilter / iptables, nous toucherons sans aucun doute le reste des questions appliquées, car nous ne sommes pas assez de réponses complètes à nos questions ... et je vais essayer de définir plus intelligible ici.

À quoi il ressemble

Nous examinerons un programme typique des bureaux et des appartements, oui - oui c'est des appartements! Peu de gens ont sa propre petite maison à la table à la table, mais la plupart de la maison Internet sont distribuées à travers le routeur et ils sont principalement cousus Linux.
C'est un schéma typique d'un petit bureau. Lorsque 1 ordinateur (serveur) est connecté à Internet et que le reste est connecté à Internet via ce serveur.

Allons tranquillement ...

Et donc ce que nous avons:
  • serveur avec 2 cartes réseau et installé sur IT Debian Lenny
  • par défaut Debian Lenny Firewall - NetFilter / iptables
  • réseau local de N ordinateurs, tous connectés via le commutateur, y compris le serveur
quel est Nat.
Pour commencer, nous devons comprendre que nous configurerons la nat la plus ordinaire (Traduction de l'adresse réseau). Pour soif, je mentionnerai et sur le serveur proxim sur la fin de l'exemple du calmar. Comme je l'ai dit, nous serons presque tout.
Qu'est-ce que NAT? En fait, tout est simple, tous les ordinateurs ont des adresses physiques (MAC) et réseau (IP). Nous sommes actuellement intéressés par des adresses IP. L'adresse IP dans le même réseau doit être unique! Et avec la norme IPv4 actuelle, elle peut être unique à seulement 4 294 967 296 (2 32), ce qui n'est pas très complètement et qu'ils ont presque fini. Mais ne vous inquiétez pas, ici entrera dans un IPv6 généralisé et il y a des adresses de Valval!
Mais ici, vous pouvez le remarquer, les ordinateurs sont beaucoup plus grands que ce numéro, ce qui permet au IPv4 ou dire qu'un ami à la maison est la même adresse que la vôtre! Et maintenant il vient à NAT - cela vous permet de vous connecter réseaux informatiques En utilisant le seul, son adresse IP, les actions du pare-feu et du SNAT (source NAT ou la substitution de l'adresse source). Ceux. Dans 99% des cas, tous vos bureaux vont sur Internet sous 1 adresse IP, tandis que dans le bureau de tous, il est le vôtre. Vous pouvez lire sur les adresses IP de classe sur Internet.

Maintenant, lorsque nous savons ce que NAT est et pour ce qu'il est nécessaire, vous pouvez passer directement au paramètre du serveur.

trafic de transit
Toutes les commandes sont exécutées pour le compte de la racine (superutilisateur). Dans Debian, le trafic de transit par défaut est désactivé, c'est-à-dire Par défaut, seule une seule machine est fournie. Comme vous l'avez déjà deviné, il n'y a pas de NAT sans trafic de transit. Pour l'activer, il suffit de changer de 1 chiffre - $ Echo 1\u003e / proc / sys / net / IPv4 / IP_Forward, mais ce réglage mouches après redémarrage, il est donc préférable de corriger la configuration - $ nano /etc/sysctl.conf. En outre, à la recherche d'une ligne # Net.ipv4.ip_forward \u003d 1 Et nous supprimons le "grille" (symbole de commentaire) au début de la ligne et vérifiez que les valeurs sont 1! Vous pouvez maintenant procéder directement à la configuration IPTABLES.
configurer iptables
Sur Internet, de nombreux articles sur la manière d'écrire les règles dans les IPTABLES et que, avec leur aide, vous pouvez être créé, le plus complet et agréable à lire cela me semblait.
Et donc plier. Pour commencer, nettoyez les tables des règles inutiles, tout à coup, il y avait trop de ...
$ iptables -f.
$ iptables -t nat -f
$ iptables -t mangle -f

Supérieur nettoyé. Il est très important de comprendre et de rappeler que les règles d'IPTables sont utilisées hiérarchiquement, c'est-à-dire La règle debout ci-dessus sera exécutée plus tôt. Toutes les chaînes par défaut ont une politique d'acceptation - permettent tout. Ce qui n'est pas tombé sous les règles de cette chaîne.
Nous convenons que l'interface à la recherche sur le réseau local - ETH0, et sur Internet - ETH1, le réseau local A des adresses 192.168.0.0/24 et le fournisseur nous a émis. adresse statique 10.188.106.33 (laisser et non "blanc" - vous pouvez également regarder les types d'adresses IP). Et donc écrire:
$ iptables -a vers l'avant -i eth0 -o eth1 -s 192.168.0.0/224 -J accepte
$ iptables -a vers l'avant -i eth1 -o eth0 -d 192.168.0.0/24 -J accepte
$ iptables -p goutte avant

Ainsi, il a été autorisé à aller aux packages de transit via un pare-feu pour notre gamme d'adresses IP et tout le reste interdit.
Maintenant nat lui-même:
$ iptables -a Postruting -s 192.168.0.0/224 -O Eth1 -j Snat - à la source 10.188.106.33
Cela suffit pour votre NAT gagné.
sur des bagatelles ...
Sur les clients, spécifiez l'adresse IP de la plage sélectionnée et indiquez l'adresse IP de notre serveur en tant que passerelle IP (généralement la prescrivait d'abord du sous-réseau - je le laisserai à votre discrétion). Tout paramètres réseau Sur le serveur, vous pouvez passer comme ceci:
$ Nano / etc / réseau / interfaces Il spécifie les paramètres de vos interfaces réseau.
accès aux profondeurs de réseau via la passerelle ou le DNAT
Et ici, vous avez réalisé que vous avez en ligne Windows Server À laquelle vous avez toujours eu un accès facile via RDP, puis il est sorti de la passerelle ennuyeuse sur Debian! Tout est très simple - il vous suffit d'ajouter une règle Dnat à nos IPTables.
Quel genre de bête dnat? Dnat (destination NAT ou adresses de destinataires) - cartes réseau Travaillez dans ce mode qu'elles n'acceptent que les packages qui leur sont adressés, mais d'accéder à notre serveur si la propriété intellectuelle sous laquelle il se situe sur Internet Sit encore une douzaine de voitures dans votre bureau? Comment la demande est-elle réalité? En fait, toutes les demandes de ce type reposent dans notre porte d'entrée. Et tout ce que nous devons faire est de définir les règles de travail avec de tels forfaits.
$ IPTABLES -A PREROUTING -I ETH1 -P TCP -M TCP --DPORT 3389 -J DNAT --Ta-destination 192.168.0.2
Cette règle simple redirigera tous les emballages venant sur la passerelle de l'Internet sur port TCP. 3389 (c'est son protocole RDP qui l'utilise) sur votre serveur Windows interne. Et, voila, tout fonctionne pour vous.
alors qu'est-ce qui ne va pas avec votre calmar préféré
Et bien que tout fonctionne maintenant, tout le monde a Internet et tout fonctionne, certains ont toujours besoin d'un serveur proxy. Je ne parverai pas de créer un calmar, je montrerai une règle qui le rendra «transparent». Dans Skwid, il est nécessaire que d'enregistrer le mot magique transparent au bon endroit et il commencera à traiter correctement les demandes qui l'ont tombée.
Nous écrivons $ iptables -a préeroute -d! 192.168.0.0/224 -I Eth0 -P TCP -M Multiport --Dports 80,443 -J Redirection --To-Ports 3128.
Et qu'est-ce qui nous donne cela? Maintenant toutes les demandes de les pages Web Avec vos lieux de travail sur http ((80) et HTTPS (443), les protocoles seront redirigés vers le port qui écoute Squid. Vous obtenez un filtrage de contenu, des informations sur qui était où était et qu'est-ce que l'utilisateur ne sait jamais quoi ...
un peu de sécurité
Suit au moins minimalement pour protéger votre passerelle afin d'ajouter quelques règles supplémentaires
$ iptables -a entrée -I lo -j accepte
$ iptables -a entrée -IH0 -S 192.168.0.0/24 -J accepter
$ iptables -a entrée -IH1 -M Conntrack -Ctrack --CTState lié, établi -J accepter
$ Iptables -p entrée

Ainsi, il a été interdit de communication directement avec la passerelle, à l'exception des composés déjà installés, c'est-à-dire Ceux qui ont été initiés par vous et que vous obtenez des réponses sur eux. N'ayez pas peur de notre DNAT avant que ces règles n'atteignent simplement pas ...
pourquoi si peu?
L'article n'est pas en caoutchouc et tout ne va pas parler de tout ... j'ai apporté le minimum Un ensemble d'actions et de concepts que vous pourriez commencer à maîtriser un tel mahua comme une passerelle sur Linux. Ici, vous pouvez parler très et très longtemps, discuter de nombreux aspects et possibilités de NetFilter.

LE TOTAL

Comment nous voyons tout vraiment! L'essentiel est de comprendre le principe du fonctionnement du réseau et n'a pas peur de personnaliser et de lire de gros manuels.
J'espère que j'ai réussi à collecter des informations suffisantes pour commencer votre amitié avec routeurs de logiciels Basé sur Linux.

Tags: iptables, NetFilter, NAT

Les IPtables se rencontrent principalement pour le filtrage de l'emballage. L'établissement manuellement des iptables est une tâche assez difficile. N'espère pas que vous allez comprendre dans ce "Skip". Heureusement, de nombreux outils peuvent vous aider si vous ne l'avez pas encore compris, mais vous devez protéger le système de manière urgente: FWBuilder, Firestarter, Guarddog, Pare-feu Arno - En fait, GUI à IPTABLES. Une chose est meilleure pas. Choisissez-vous pour vous. Cependant, l'article d'aujourd'hui est consacré aux IPtables et est divisé en deux parties: théorie et pratique. Le plus impatient peut immédiatement effectuer la partie pratique, bien que cette approche ne soit pas recommandée.

Attention! Toutes les actions avec IPTABLES sont fabriquées au nom de l'utilisateur éclairé!

Théorie

Format d'enregistrement IPTABLES IPTABLES [-T] [Commande] [Action] Exemple: IPTABL -T Filtre -A Entrée Accepter

Actions

  • Accepter - Prenez un paquet
  • DROP - DROP paquet
  • Dnat - Convertir l'adresse de destination
  • Snat - Modifiez l'adresse IP sortante dans l'en-tête de paquet
  • Connexion des forfaits et des événements majeurs
  • Mark - Définissez l'étiquette sur le paquet
  • Masquerade - Modifiez l'adresse IP sortante dans l'en-tête de paquet (différence de Snat - Travail avec IP dynamique)
  • Queue - mettre un colis à la file d'attente de traitement
  • Redirection - Rediriger le paquet / flux vers un autre port
  • Rejeter - Jeter le package + Avertissez le système distant à ce sujet. que son pack va rejeté
  • Retour - arrêtez le mouvement du colis sur la chaîne actuelle et revenez à la chaîne de l'appelant

Équipes

  • -A - Ajouter une règle de règle
  • -D - Supprimer la règle de la chaîne
  • -R - remplacer une règle à d'autres
  • -Je - insérer une nouvelle règle
  • -L - Affiche une liste des règles existantes
  • -F - Réinitialiser les règles
  • -Z - Couche à zéro dans une chaîne donnée
  • -N - créer une nouvelle chaîne avec le nom spécifié
  • -X - suppression de la chaîne
  • -P - Définir les stratégies par défaut pour la chaîne sélectionnée
  • -E - renommer la chaîne d'utilisateurs

Critères (général)

  • -P - Spécifiez le type de protocole
  • -S - adresse IP de la source du paquet
  • -D - Adresse IP du destinataire de l'emballage
  • -J - Spécifiez l'action pour la règle
  • -I - L'interface à partir duquel le colis a été accepté
  • -O - \u200b\u200bSpécifiez le nom de l'interface de sortie
  • -F - Étaler la règle à tous les fragments d'emballage

Critères TCP:

  • -TCP-Drapeaux - Déterminez les drapeaux de masque et d'emballage

Critères UDP:

  • -Sport - le port à partir de laquelle le colis a été envoyé
  • -Dort - le port auquel le colis est adressé

Plus de détails dans Man Iptables

Entraine toi

Voir la configuration actuelle

$ SUDO IPTABL -L -L Entrée de chaîne (Accepte de la stratégie) Cible Prot Prot Opth Source Source Chain Forwwe (Politique accepte) Cible ProT Prot opt \u200b\u200bSource Sortie de la chaîne de destination (Politique accepte) Cible Prot opt \u200b\u200bSource Destination

Si vous êtes un, cela signifie que votre pare-feu n'est pas encore configuré et permet tout. Corriger la situation.

Configuration de la stratégie par défaut

  • iPTABL -P DROP DROP DROP - Blocage des forfaits entrants
  • sortie IPTABL -P Accepter - Autoriser les packages sortants
  • les packages de traitement des gouttes d'avance IPTABL -P qui frappez le serveur d'une autre machine et attendez-vous à un transfert supplémentaire. L'exemple est bloqué. Dans ce cas, vous devrez mettre fin aux règles des machines de confiance.

Étant donné que les packages d'entrée entrants sont bloqués, présumant la règle:

$ sudo iptables -a entrée -M State - État associé, établi -J accepter

Cela vous permettra d'accepter des packages de composé installé Et prendre de nouveaux packages générés par ce composé.

Ou indiquant le type de protocole:

$ sudo iptables -a entrée -P TCP -M State -State Créé, lié -j Accepter $ sudo iptables -a entrée -P UDP -M State -State établi, associé -J Accepter

Maintenant, l'interface locale:

$ sudo iptables -a entrée -i lo -j accepte

  • Nouveaux données Démarrage d'une nouvelle connexion.
  • Établi est un colis provenant de la connexion déjà installée.
  • Related - Un nouveau package de données, mais généré par l'ancien composé installé
  • Invalide - il est donc clair

$ sudo iptbox-sauvegarde\u003e /etc/iptables.up.uppose

Activer ces règles:

$ sudo iptables-restaurer< /etc/iptables.up.rules

Et voir la différence:

$ sudo iptables-l

Démarrer Iptables lors du démarrage du système:

Dans le répertoire /etc/init.d, créez un fichier nommé iptables

$ sudo tactile /etc/init.d/iptables

Nous l'enregistrons ce qui suit:

#! / Bin / sh / sbin / iptables-restaurer< /etc/iptables.up.rules

Nous fabriquons l'exécutable de fichier iptables:

$ sudo chmod + x /etc/init.d/iptables

Ajoutez-le à Autorun

$ sudo update-rc.d -n iptables par défaut

Démarrez Iptables lorsqu'il est connecté au réseau:

$ sudo echo "#! / sbin / iptables-restaurer"\u003e /etc/network/if-up.d/iptables.up.rules $ sudo iptbox-sauvegarde \u003e\u003e /etc/network/if-up.d/putwork/ if-up.d / iptables. up.reles $ sudo chmod + x /etc/network/if-up.d/iptables.up.rules

Noter: À tout moment, vous pouvez vérifier si vos règles sont téléchargées simplement en entrant Iptables-Save

Pour l'enregistrement d'Archlinux, les règles IPTABLES sont effectuées par la commande:

$ sudo rc.d sauvegarder iptables

Avez-vous aimé l'article? Partager avec des amis: