Comment fonctionne iptables. Iptables : sécurité réseau et filtrage de paquets. Quelques fonctionnalités du protocole

Dans le monde connecté d'aujourd'hui, les données et les systèmes qui les gèrent doivent être protégés à tout moment, mais également accessibles aux utilisateurs. Avec les utilisateurs et professionnels de SQL Server 2005 informatique bénéficieront d’une réduction des temps d’arrêt des applications, d’une évolutivité et de performances accrues, ainsi que de contrôles de sécurité fiables et flexibles. SQL Server 2005 inclut également de nombreuses fonctionnalités nouvelles et améliorées pour aider votre personnel informatique à être plus productif. SQL Server 2005 inclut des améliorations majeures de la gestion des données d'entreprise dans les domaines suivants : gérabilité, disponibilité, évolutivité, sécurité, gérabilité.

SQL Server 2005 facilite le déploiement, la gestion et l'optimisation des données d'entreprise et applications analytiques. En tant que plateforme de gestion de données d'entreprise, elle fournit une console de gestion unique qui permet aux administrateurs de données situés n'importe où dans votre organisation de surveiller, gérer et configurer toutes les bases de données et services associés dans toute l'entreprise. Il fournit une infrastructure de gestion extensible qui peut être facilement programmée à l'aide de SQL Management Objects (SMO), permettant aux utilisateurs de reconcevoir et d'étendre leur environnement de gestion et ceux des fournisseurs tiers. produits logiciels(ISV) créer outils supplémentaires et des fonctionnalités pour améliorer encore les capacités fournies par défaut.

SQL Server 2005 simplifie la gestion en fournissant une console de gestion unique et intégrée pour surveiller et gérer votre base de données relationnelle. Données SQL Serveur, services d'intégration, Services d'analyse, Reporting Services, Notification Services et SQL Mobile sur un grand nombre de serveurs et de bases de données distribués. Les administrateurs de base de données peuvent effectuer plusieurs tâches simultanément, notamment les suivantes : créer et exécuter une requête, afficher les objets du serveur, gérer un objet, surveiller l'activité du système et afficher l'aide en ligne. SQL Gestion du serveur Studio fournit un environnement de développement pour créer, modifier et gérer des scripts et des procédures stockées à l'aide de Transact-SQL, d'expressions multidimensionnelles (MDX), XMLA et SQL Server Mobile Edition. Studio de gestion S'intègre facilement au système de contrôle de version. Management Studio contient également des outils pour planifier les tâches de l'Agent SQL Server et gérer les plans. Service technique pour automatiser les tâches de maintenance quotidiennes. La consolidation des tâches de gestion et de création dans un seul outil, associée à la possibilité de gérer tous les types de serveurs, offre une productivité améliorée aux administrateurs de bases de données.

SQL Server 2005 fournit plus de 70 nouvelles mesures des performances des bases de données internes et de l'utilisation des ressources, depuis la mémoire, le verrouillage et la planification jusqu'aux transactions et aux E/S réseau et disque. Ces vues de gestion dynamique (DMV) offrent une plus grande transparence et visibilité sur l'état de la base de données et une infrastructure puissante pour surveiller de manière proactive l'état et les performances de la base de données.

Les objets de gestion SQL (SMO) sont un nouvel ensemble d'objets de programmation qui fournissent fonctionnalité complète pour gérer une base de données SQL Server. En fait, Management Studio est construit sur des objets de gestion SQL. SMO est implémenté en tant que Microsoft . NET-Framework. SMO peut être utilisé pour automatiser les tâches courantes d'administration de SQL Server telles que acquisition de logiciels paramètres de configuration, création de bases de données, exécution de scripts Transact-SQL, création de tâches de l'Agent SQL Server et planification de sauvegardes. Le modèle objet SMO constitue un remplacement plus sécurisé, fiable et évolutif des objets de gestion distribuée (DMO) inclus dans les versions précédentes de SQL Server.

Les investissements dans les technologies de haute disponibilité, les capacités supplémentaires de sauvegarde et de restauration et les améliorations de la réplication permettront aux entreprises de créer et de déployer des applications hautement disponibles. Des fonctionnalités avancées de haute disponibilité telles que la mise en miroir de bases de données, les clusters de basculement, les instantanés de bases de données et les opérations en ligne améliorées réduiront les temps d'arrêt et contribueront à garantir que systèmes critiques les commerces resteront accessibles.

La mise en miroir de bases de données vous permet de transférer en continu le contenu du journal des transactions d'un serveur source vers un seul serveur cible. En cas de panne du système principal, les applications peuvent immédiatement se connecter à la base de données sur le serveur secondaire. L'instance exécutée sur le serveur secondaire détecte la panne du serveur principal en quelques secondes et commence immédiatement à accepter les connexions. La mise en miroir de bases de données s'exécute sur du matériel serveur standard et ne nécessite aucun stockage ni contrôleur spécial.

Les clusters de basculement sont une solution haute disponibilité qui utilise les services de clustering Microsoft Windows® pour créer des serveurs virtuels de basculement qui permettent une récupération rapide en cas de panne du serveur de base de données. Dans SQL Server 2005, la prise en charge des clusters de basculement a été étendue à Analysis Services, Notification Services et SQL Server Replication Services. Quantité maximale les nœuds de cluster ont été portés à huit. Les clusters de basculement SQL Server constituent désormais une solution de serveur de basculement complète.

SQL Server 2005 donne aux administrateurs de bases de données la possibilité de créer des instantanés instantanés en lecture seule de la base de données. Un instantané de base de données fournit un instantané persistant sans le temps et la surcharge de stockage liés à la création d'une copie complète de la base de données. Lorsque la base de données principale s'écarte de l'instantané, l'instantané ajoute ses propres copies des pages à mesure qu'elles changent. Ainsi, la photo peut être utilisée pour récupération rapide de modifier accidentellement la base de données en facile à utiliser pages sources de l'instantané à la base de données principale.

SQL Server 2005 améliore la disponibilité des bases de données SQL Server avec nouvelle option récupération rapide. Les utilisateurs peuvent se reconnecter à la base de données de récupération une fois le journal des transactions appliqué. Les versions précédentes de SQL Server nécessitaient l'annulation des transactions non validées avant que les utilisateurs ne commencent à travailler, même s'ils n'avaient pas besoin d'accéder aux données affectées par ces transactions.

SQL Server 2005 introduit une connexion administrative dédiée pour accéder au serveur même s'il ne répond pas ou s'il est autrement indisponible. Cela vous permet d'exécuter des fonctions de diagnostic ou des instructions Transact-SQL pour résoudre les problèmes sur le serveur. La connexion administrative est activée par les membres du rôle de serveur fixe sysadmin et n'est accessible que via l'utilitaire ligne de commande SQLCMD soit localement, soit depuis une machine distante.

La possibilité de créer, reconstruire ou supprimer rapidement un index est une fonctionnalité améliorée de SQL Server 2005 qui améliore les capacités d'indexation des versions précédentes de SQL Server. L'option d'index en direct permet la modification simultanée (insertions, modifications, suppressions) de la table ou des données d'index clusterisées et de tous les index associés lors de l'exécution d'une commande DDL. Grâce à la prise en charge des opérations d'indexation en ligne, vous pouvez ajouter des index sans interférer avec l'accès aux tables ou à d'autres index existants. De plus, la quantité de travail du serveur permet aux opérations d'indexation de tirer parti du traitement parallèle.

SQL Server 2005 introduit également la possibilité d'effectuer une opération de restauration pendant qu'une instance de SQL Server est en cours d'exécution. Opportunité reprise opérationnelle Améliore la disponibilité de SQL Server en rendant indisponibles uniquement les données récupérables. Le reste de la base de données reste accessible. Les versions précédentes de SQL Server nécessitaient que la base de données soit mise hors ligne avant que la récupération puisse avoir lieu.

La réplication est conçue pour augmenter la disponibilité des données en les distribuant sur plusieurs serveurs. La disponibilité est augmentée en répartissant l'accès en lecture aux applications sur plusieurs bases de données. SQL Server 2005 fournit un moteur de réplication amélioré qui utilise un nouveau modèle peer-to-peer, avec une nouvelle topologie dans laquelle les bases de données peuvent être synchronisées de manière transactionnelle avec n'importe quelle base de données homologue identique.

Les avancées en matière d'évolutivité telles que le partitionnement des tables, les niveaux d'isolation des instantanés et la prise en charge 64 bits vous permettront de créer et de déployer le plus candidatures requisesà l'aide de SQL Server 2005. Le partitionnement de tables et d'index volumineux améliore considérablement les performances des requêtes dans les très grandes bases de données.

Le partitionnement des tables et des index facilite la gestion de bases de données volumineuses en gérant des parties plus petites et plus gérables de la base de données. Bien que l'idée de partitionner les données entre tables, bases de données et serveurs ne soit pas nouvelle dans le monde des bases de données, SQL Server 2005 propose une nouvelle fonctionnalité pour partitionner les tables entre groupes de fichiers dans une base de données. Le partitionnement horizontal divise la table en groupes plus petits en fonction du schéma de partitionnement. Le partitionnement de tables est conçu pour les bases de données très volumineuses, dont la taille varie de centaines de gigaoctets à des téraoctets ou plus.

Une fois les données copiées, transformées et placées dans une base de données pour analyse, elles doivent être entretenues et/ou reconstruites périodiquement. Les utilisateurs bénéficieront certainement de travailler avec une version transactionnellement cohérente de la base de données, mais la version avec laquelle ils travaillent ne sera pas à jour. La création d'un index peut prendre des heures et peut ne pas correspondre à ce dont les utilisateurs ont réellement besoin. C'est ici que le niveau d'isolement des instantanés est utilisé. Il permet aux utilisateurs d'accéder au dernier enregistrement confirmé à l'aide d'un instantané transactionnel cohérent de la base de données. Le nouveau niveau d’isolement présente les avantages suivants :

Replication Monitor est un outil qui définit nouvelle norme facilité d'utilisation dans la gestion d'opérations de réplication de données complexes avec une interface utilisateur intuitive et un grand nombre métriques de données.

SQL Server 2005 apporte des améliorations significatives au modèle de sécurité de la plateforme de base de données, dans le but de fournir un contrôle plus granulaire et flexible sur la sécurité des données. Des investissements importants ont été réalisés dans un large éventail de fonctionnalités pour garantir un haut niveau de sécurité des données pour votre entreprise, notamment :

Application de politiques pour les mots de passe des comptes Enregistrements SQL Serveur dans le domaine de l'authentification.

Offrez une plus grande modularité pour spécifier les autorisations à différents niveaux dans le domaine d'autorisation.

Nouveau modèle Sécurité SQL Server 2005 permet aux administrateurs de gérer les autorisations au niveau de l'unité et dans une portée spécifiée, ce qui facilite la gestion des autorisations et applique également le principe du moindre privilège. SQL Server 2005 vous permet de spécifier le contexte dans lequel les instructions du module seront exécutées. Cette fonctionnalité fonctionne également comme un excellent mécanisme de gestion modulaire des autorisations.

Prise en charge des clusters SQL Server 2005 Authentification Kerberos pour les serveurs virtuels SQL Server 2005, les administrateurs peuvent spécifier des stratégies de type Windows pour la norme. comptes pour que la même politique s'applique à tout le monde comptes domaine.

SQL Server 2005 prend en charge le chiffrement dans la base de données entièrement intégré à l'infrastructure de gestion des clés. Par défaut, les communications entre client et serveur sont cryptées. Afin de concentrer les garanties de sécurité, une politique de serveur peut être définie qui rejettera les communications non cryptées.

Étant donné que le Common Language Runtime (CLR) est hébergé dans le moteur de base de données, les développeurs peuvent choisir parmi une variété de langages familiers lors du développement d'applications de base de données, notamment Transact-SQL, Visuel Microsoft Basic® .NET et Microsoft Visual C#® .NET. De plus, l'hébergement du CLR offre aux développeurs une grande flexibilité grâce à l'utilisation de types personnalisés et fonctions. Le CLR offre également la possibilité d'utiliser du code tiers pour développer rapidement des applications.

Avec libération MicrosoftSQL Les programmeurs de bases de données Server 2005 peuvent tirer pleinement parti de la bibliothèque de classes Microsoft .NET Framework et langues vivantes programmation pour implémenter des fonctionnalités au sein du serveur. Grâce à l'intégration du Common Language Runtime (CLR), vous pouvez coder des procédures stockées, des fonctions et des déclencheurs dans n'importe quel langage .NET Framework. Langues Microsoft Visual Basic .NET et C# proposent des constructions orientées objet, une gestion structurée des exceptions, des tableaux, des espaces de noms et des classes. De plus, le .NET Framework est livré avec des centaines de classes et de méthodes dotées de fonctionnalités étendues pouvant être utilisées côté serveur. De nombreuses tâches difficiles à réaliser dans Transact-SQL peuvent être mieux exécutées dans du code managé. Deux nouveaux types d'objets de base de données sont également disponibles : les agrégats et les types d'utilisateurs. Vous pouvez désormais utiliser vos connaissances et vos compétences de manière plus avantageuse lors de l'écriture de code en cours de processus. En bref, SQL Server 2005 vous permet d'étendre votre serveur de base de données pour effectuer plus facilement les calculs et opérations associés sur le serveur.

Modèle de programmation amélioré : les langages de programmation compatibles avec le .NET Framework sont plus riches que Transact-SQL à bien des égards, avec des constructions et des fonctionnalités qui n'étaient auparavant pas disponibles pour les développeurs SQL.

Sécurité améliorée : le code managé s'exécute dans Environnement CLR, situé dans le noyau de la base de données. Cela rend les objets de base du .NET Framework plus sécurisés que les procédures stockées étendues disponibles dans les versions précédentes. Versions SQL Serveur.

Types et agrégats définis par l'utilisateur : deux nouveaux objets de base de données qui améliorent les capacités de stockage et d'interrogation de SQL Server sont mis à disposition via l'hébergement CLR.

Environnement de développement commun : le développement des projets de bases de données est intégré à l'environnement Microsoft Studio visuel 2005. Vous pouvez utiliser les mêmes outils pour développer et déboguer des objets de base de données, de données et de script que vous utilisez pour créer des composants et des services middleware et .NET Framework au niveau client.

Performances et évolutivité : en compilant le code managé en code natif du processeur avant son exécution, des gains de performances significatifs peuvent être obtenus dans certains cas.

À l'aide de langages tels que Visual Basic .NET et C#, vous pouvez profiter de l'intégration CLR pour créer un code plus complexe en logique et mieux adapté à vos besoins informatiques. De plus, Visual Basic .NET et C# fournissent des fonctionnalités orientées objet telles que l'encapsulation, l'héritage et le polymorphisme. Vous pouvez facilement regrouper le code associé en classes et espaces de noms, ce qui signifie plus organisation simple et une assistance lorsque vous travaillez avec une grande quantité de code. La possibilité de placer logiquement et physiquement du code dans des assemblys et des espaces de noms constitue un énorme avantage.

Le code managé est plus efficace que Transact-SQL pour traiter les données numériques et gérer une logique d'exécution complexe et dispose d'une prise en charge étendue pour travailler avec des données de chaîne, expressions régulières et ainsi de suite. Grâce aux fonctionnalités de la bibliothèque de classes .NET Framework, il existe un accès complet à des milliers de classes et de méthodes prédéfinies accessibles à partir de n'importe quelle procédure stockée, déclencheur ou fonction définie par l'utilisateur. Tout, des fonctions améliorées pour travailler avec des données de chaîne, fonctions mathématiques, opérations avec dates, accès à ressources système, les algorithmes de chiffrement avancés, l'accès aux fichiers, le traitement des images et l'utilisation des données XML sont facilement accessibles à partir de procédures stockées gérées, de déclencheurs et d'agrégats.

L’un des principaux avantages du code managé est la sécurité des types. Avant l'exécution du code managé, le CLR effectue plusieurs contrôles, appelés vérification, pour garantir que le code en cours d'exécution est sûr. Par exemple, le code est vérifié pour s'assurer qu'il ne lit pas dans une zone de mémoire dans laquelle il n'a pas écrit.

Pendant longtemps, Transact-SQL a été la base de toute programmation SQL Server. SQL Server 2005 offre de nombreuses nouvelles fonctionnalités linguistiques pour développer des applications de bases de données évolutives. Ces améliorations affectent la gestion des erreurs, nouveau requêtes récursives et la prise en charge des nouvelles fonctionnalités du moteur de base de données SQL Server. Les améliorations apportées à Transact-SQL dans SQL Server 2005 augmentent vos capacités d'écriture de requêtes, vous permettant d'améliorer les performances du code et d'offrir un meilleur contrôle sur la gestion des erreurs. Les efforts continus pour améliorer Transact-SQL démontrent une forte confiance dans son rôle important au sein de SQL Server.

Les types définis par l'utilisateur dans SQL Server 2005 ne constituent pas un mécanisme d'extension relationnelle objet. Ils servent à étendre le système de types scalaires de la base de données. Le système de types scalaires inclut les types de champs fournis avec SQL Server (types tels que int, nvarchar, uniqueidentifier, etc.). En utilisant des types personnalisés, vous pouvez créer de nouveaux types de champs, par exemple. Cela doit être fait si votre type est réellement une valeur indivisible pouvant être représentée sous forme de champ.

Vous pouvez utiliser des types personnalisés si vous souhaitez définir votre propre type scalaire. Des exemples de tels scénarios sont types spéciaux dates/heures dans divers calendriers et types de données pour stocker de l'argent. Avec les types personnalisés, vous pouvez créer un objet unique ayant le comportement inhérent au type et encapsuler ou masquer les données sous-jacentes stockées dans le type. Une interface logicielle sera utilisée pour accéder à ces données. S'il existe une opportunité de tirer parti des fonctionnalités du .NET Framework (telles que l'internationalisation ou la fonctionnalité de calendrier), c'est une autre bonne raison d'envisager la mise en œuvre de votre

SQL Management Objects (SMO) est un modèle objet Gestion SQL Server 2005 SMO apporte des améliorations significatives en matière de conception et d'architecture au modèle objet de gestion SQL Server. Il est facile à utiliser mais riche et est basé sur le code managé du .NET Framework. SMO est le premier outil pour développer des applications de bases de données basées sur le .NET Framework. SMO est utilisé par chaque boîte de dialogue dans SQL Server Management Studio, et chaque action d'administration disponible dans SQL Server Management Studio peut être effectuée à l'aide de SMO.

Nouveau modèle objet SMO et interfaces programmation d'applications Microsoft Windows Management Instrumentation (WMI) remplace SQL-DMO. Dans la mesure du possible, SMO contient des objets similaires à SQL-DMO pour faciliter son utilisation. SQL-DMO peut toujours être utilisé avec SQL Server 2005, mais SQL-DMO ne sera pas mis à jour pour gérer les fonctionnalités spécifiques à SQL Server 2005.

Les objets AMO (Analysis Management Objects) permettent aux applications clientes d'accéder au large ensemble de commandes et de fonctionnalités d'administration qui existent dans Analysis Services à l'aide d'une bibliothèque d'objets qui peut fournir une validation d'objet au lieu de créer manuellement des scripts DDL pour les commandes Analysis Services et le contenu souvent long du fichier. l'objet ObjectDefinition du langage Analysis Services Scripting (ASSL). Les applications utilisant AMO peuvent soit se connecter et travailler directement avec les objets d'instance Analysis Services, soit créer de tels objets sans connexion et stocker les métadonnées pour un déploiement ultérieur.

Avantages

Le langage SQL est la base de nombreux SGBD, car est responsable de la structuration physique et de l'écriture des données sur le disque, ainsi que de la lecture des données à partir du disque, vous permet de recevoir des requêtes SQL provenant d'autres composants du SGBD et applications personnalisées. Donc SQL est outil puissant, qui permet aux utilisateurs, aux programmes et aux systèmes informatiques d'accéder aux informations contenues dans des bases de données relationnelles.

Les principaux avantages du langage SQL sont les suivants :

− standardisation – comme déjà mentionné, l'utilisation du langage SQL dans les programmes est standardisée par les organisations internationales ;

− indépendance par rapport à des SGBD spécifiques - tous les SGBD courants utilisent SQL, car une base de données relationnelle peut être transférée d'un SGBD à un autre avec un minimum de modifications ;

− la capacité d'être transféré d'un système informatique à un autre - le SGBD peut être destiné à différents systèmes informatiques, mais les applications créées avec en utilisant SQL, permettent une utilisation à la fois pour des bases de données locales et de grands systèmes multi-utilisateurs ;

− base relationnelle du langage - SQL est un langage de base de données relationnelle, il est donc devenu populaire lorsque le modèle de représentation relationnelle des données s'est répandu. La structure tabulaire d'une base de données relationnelle est bien comprise, et donc Langage SQL facile à apprendre;

− la possibilité de créer des requêtes interactives - SQL offre aux utilisateurs un accès immédiat aux données, tandis qu'en mode interactif, vous pouvez obtenir le résultat d'une requête en très peu de temps sans écrire programme complexe;

− opportunité accès au logicielà la base de données – SQL est facile à utiliser dans les applications qui doivent accéder aux bases de données. Les mêmes Instructions SQL sont utilisés à la fois pour l'accès interactif et pour l'accès au programme, de sorte que les parties des programmes contenant l'accès à la base de données peuvent d'abord être vérifiées en mode interactif puis intégrées dans le programme ;

− fournir différentes vues des données - en utilisant SQL, vous pouvez présenter une structure de données telle que l'un ou l'autre utilisateur en verra différentes vues. De plus, les données de différentes parties de la base de données peuvent être combinées et présentées sous la forme d'un tableau simple, ce qui signifie que les vues sont adaptées pour améliorer la sécurité de la base de données et l'adapter aux exigences spécifiques des utilisateurs individuels ;

− opportunité changement dynamique et extensions de la structure de la base de données - le langage SQL vous permet de manipuler la structure de la base de données, offrant ainsi une flexibilité en termes d'adaptation de la base de données aux exigences changeantes domaine;

− prise en charge de l'architecture client-serveur – SQL est l'un des meilleurs outils pour implémenter des applications sur la plate-forme client-serveur. SQL sert de lien entre le système client qui interagit avec l'utilisateur et le système serveur qui gère la base de données, permettant à chacun de se concentrer sur ses propres fonctions.

Le langage SQL peut être utilisé par un large éventail de spécialistes, notamment les administrateurs de bases de données, programmeurs d'applications et de nombreux autres utilisateurs finaux.

Le langage SQL est le premier et jusqu'à présent le seul langage standard pour travailler avec des bases de données, devenu assez répandu. Presque tous les principaux développeurs de SGBD créent actuellement leurs produits en utilisant le langage SQL ou avec une interface SQL.

Défauts

Inadéquation du modèle de données relationnelles . Les créateurs du modèle de données relationnelles, Edgar Codd, Christopher Date et leurs partisans soulignent que SQL n'est pas vrai langage relationnel. Dans le Troisième Manifeste publié par Christopher Date et Hugh Darwen, ils exposent les principes de la prochaine génération de systèmes de gestion de bases de données et proposent un langage Tutorial D véritablement relationnel.

Complexité . Bien que SQL ait été conçu comme un moyen de travailler utilisateur final, il est finalement devenu si complexe qu'il est devenu un outil de programmation.

Écarts par rapport aux normes. Malgré la présence de la norme internationale ANSI SQL-92, de nombreuses entreprises développant des SGBD (par exemple, Oracle, Sybase, Microsoft, MySQL AB) apportent des modifications au langage SQL utilisé dans le SGBD en cours de développement, s'écartant ainsi de la norme. Ainsi apparaissent des dialectes du langage SQL spécifiques à chaque SGBD spécifique.

− Difficulté à travailler avec des structures hiérarchiques

IPTables est un utilitaire utilisé pour gérer un pare-feu sous Linux. C'est puissant et outil pratique pour les connexions indésirables. L'ensemble du processus est contenu dans les règles iptables, qui peuvent être modifiées et visualisées. Plus informations détaillées présenté dans l’article.

Histoire de la création

À Tables IP dans Système Linux Un pare-feu IPFW a été utilisé, emprunté à BSD. Puis, avec la version 2.4 du noyau Linux, il a commencé à être équipé du pare-feu Netfilter et de l'utilitaire IPTables pour le gérer. Dans la méthodologie de son travail, tous les aspects ont été préservés et légèrement étendus fonctionnellement.

Structure et conception des IPTables

En entrant dans le pare-feu, le paquet subit plusieurs contrôles. Il peut s'agir d'une somme de contrôle ou de toute autre analyse au niveau du noyau. Il est ensuite temps de passer par la chaîne PREROUTING. Ensuite, il est vérifié selon lequel la redirection vers la chaîne suivante a lieu. Si le paquet n'a pas d'adresse, comme par exemple dans TCP, alors il est envoyé à la chaîne FORWARD. Dans les cas où il y a adresse spécifique, suivi de la chaîne INPUT, puis vers les démons ou services auxquels il est destiné. Leur réponse doit également passer par plusieurs chaînes, par exemple OUTPUT. Le dernier maillon de ce processus est la chaîne POSTROUTING.

Parlons maintenant un peu des chaînes. Chacun d'eux contient plusieurs tableaux. Leurs noms peuvent être répétés, mais cela n’affecte en rien l’œuvre puisqu’ils ne sont pas liés entre eux.

Les tableaux, à leur tour, contiennent plusieurs règles. Essentiellement, une règle est une certaine condition que le colis vérifié doit remplir. En fonction du résultat, une certaine action est effectuée sur le colis.

Ainsi, en passant par toutes les étapes du réseau, le paquet visite séquentiellement toutes les chaînes et dans chacune est vérifiée pour le respect de la condition une certaine règle. Si la table n'est pas créée par l'utilisateur, alors l'action par défaut est effectuée, essentiellement ACCEPT, qui vous permet de continuer à avancer, ou DROP, qui arrête le paquet.

Les chaînes prédéfinies appartiennent aux catégories suivantes :

  • PRÉROUTAGE. Traitement initial de tous les colis entrants.
  • SAISIR. Cela inclut les paquets envoyés directement à l'ordinateur local.
  • AVANT. S'applique à " forfaits de transit", qui suivent la table de routage.
  • SORTIR. Utilisé pour les paquets sortants.
  • POSTROUTAGE. La dernière étape du passage d'un paquet sortant à travers toutes les chaînes.

En plus des chaînes intégrées, les utilisateurs peuvent créer ou supprimer les leurs.

Afficher et gérer les règles IPTables

Comme mentionné précédemment, toutes les chaînes contiennent certaines conditions pour les packages. L'utilitaire IPTables est utilisé pour afficher et gérer les règles IPTables. Chaque règle distincte est une chaîne avec un ensemble de conditions pour les packages, ainsi que des actions sur ceux-ci, en fonction du résultat.

Le format de la commande ressemble à ceci : iptables [-t nom de la table en cours de traitement] commande appelée [critères] [action effectuée].

Tout ce qui est contenu peut être omis. S'il s'agit d'un paramètre spécifiant une table, alors le filtre sera utilisé. Pour utiliser un nom spécifique, vous devez ajouter le commutateur -t. La commande appelée permet d'appeler action requise, par exemple, ajoutez une règle IPTables ou supprimez-la. Les « critères » indiquent les paramètres selon lesquels la sélection s'effectuera. Et dans « action », il y a une action qui doit être effectuée si la condition est remplie.

Commandes pour créer et afficher les règles IPTables

  • Ajouter (-A). Lorsque vous utilisez la commande, vous spécifiez la chaîne et la table auxquelles vous souhaitez ajouter la règle requise. La valeur de l’équipe est qu’elle le fait à la fin de la liste.
  • Supprimer (-D). Comme son nom l'indique, il supprime une règle. En tant que paramètres, vous pouvez spécifier à la fois le nom complet et les numéros qui leur sont attribués.
  • Renommer la chaîne (-E). Change le nom de la chaîne. La commande précise l'ancien nom, puis le nouveau nom.
  • Flush (-F). Effacer absolument toutes les règles d'une certaine table.
  • Insérer (-I). Cette commande insère la règle requise à l'emplacement indiqué par le numéro.
  • Liste(-L). Consultez les règles Iptables. Si aucune table n'est spécifiée, le filtre par défaut sera utilisé.
  • Politique (-P). La stratégie par défaut pour la chaîne spécifiée est utilisée.
  • Remplacez (-R). Modifie la règle sous le numéro spécifié par celle requise.
  • Supprimer la chaîne (-X). Cette commande supprime toutes les chaînes créées. Seuls ceux préinstallés resteront.
  • Zéro (-Z). Réinitialise les compteurs des données transmises dans la chaîne spécifiée.

Un peu sur les paramètres de sélection des paquets

Ils peuvent être divisés en trois types :

  • Critères généraux. Ils peuvent être spécifiés pour n'importe quelle règle. Ils ne nécessitent pas la connexion d'extensions et de modules spéciaux et ne dépendent pas non plus du protocole qui sera utilisé.
  • Pas de critères généraux. Ils deviennent disponibles lors de l'utilisation de critères généraux.
  • Explicite. Pour utiliser ce type, vous devez connecter des plugins spéciaux pour netfilter. De plus, vous devez utiliser le commutateur -m dans la commande.

Cela vaut la peine de parler un peu des paramètres fréquemment rencontrés et utilisés lors de l’analyse des paquets :

  • Protocole (-p). Indique le protocole.
  • Source(s). Ce paramètre détermine l'adresse IP de la source d'où provient le paquet. Il peut être spécifié de plusieurs manières. Un hôte spécifique, une adresse ou un sous-réseau entier.
  • Destination (-d). Adresse de destination du colis. Tout comme le précédent, il peut être décrit de plusieurs manières.
  • Dans l'interface (-i). Spécifie l'interface entrante du package. Principalement utilisé pour le NAT ou sur des systèmes dotés de plusieurs interfaces.
  • Interface extérieure (-o). Interface sortante.

Quelques exemples

Afin de visualiser les règles nat IPTables ? vous devez utiliser la commande - "iptables -L -t nat". Découvrez l'état général du pare-feu - « iptables -L -n -v ». De plus, cette commande vous permet de visualiser les règles IPTables disponibles dans tout le système. Insérer une règle dans lieu précis tableaux, par exemple, entre la première et la deuxième ligne - "iptables -I INPUT 2 -s 202.54.1.2 -j DROP". Vérifiez ensuite s'il a été ajouté - "iptables -L INPUT -n --line-numbers".

Pour bloquer adresse spécifique, par exemple, 12.12.12.12 - « iptables -A INPUT -s 12.12.12.12 -j DROP ».

Aide pour iptables - « man iptables ». Si vous avez besoin d'informations sur une commande spécifique, utilisez « iptables -j DROP -h ».

En conclusion

Vous devez utiliser les commandes IPTables avec prudence, car une configuration incorrecte (par ignorance) peut entraîner des pannes de réseau ou une panne complète. Par conséquent, il vaut la peine d’étudier les manuels et les instructions en détail avant la configuration. Entre des mains habiles, IPTables peut être transformé en un protecteur fiable des connexions réseau. Administrateurs système utiliser activement l'utilitaire pour créer des connexions isolées des accès non autorisés.

Définition jetables- utilitaire de ligne de commande, est une interface standard de gestion du travail pare-feu(pare-feu) filtre réseau Pour Noyaux Linux versions 2.4, 2.6, 3.x, 4.x. Les privilèges de superutilisateur (root) sont requis pour utiliser l'utilitaire iptables.

Nous traiterons iptables et on ne peut pas se passer d’une petite introduction théorique.

Pour élaborer correctement des règles de pare-feu, vous devez comprendre comment les paquets circulent généralement et ce qui leur arrive.

L'ordre de déplacement des colis en transit

Étape Tableau Chaîne Note
1
2 mutiler PRÉROUTAGE Généralement, cette chaîne est utilisée pour apporter des modifications à l'en-tête du paquet, par exemple en changeant les bits. T.O.S. etc..
3 Nat PRÉROUTAGE Cette chaîne est utilisée pour la diffusion adresses réseau (). est exécuté plus tard, dans une autre chaîne.
4 Décider de l'itinéraire ultérieur, c'est-à-dire à ce stade, il est décidé où le paquet ira : vers une application locale ou vers un autre nœud du réseau.
5 mutiler AVANT Le paquet entre alors dans la chaîne AVANT mutiler les tables.
6 Filtre AVANT Dans une chaîne AVANT Seuls les paquets destinés à un autre hôte sont reçus. Tout filtrage du trafic de transit doit être effectué ici. N’oubliez pas que le trafic traverse cette chaîne dans les deux sens ; veillez à en tenir compte lors de la rédaction des règles de filtrage.
7 mutiler POSTROUTAGE Cette chaîne est destinée à apporter des modifications à l'en-tête du paquet après son acceptation dernière décision sur le routage.
9 Nat POSTROUTAGE Cette chaîne est destinée principalement à Traduction d'adresses réseau source. La mascarade est également effectuée ici ( Mascarade).
9 Interface réseau de sortie (par exemple, eth1).

Pour application locale (packages entrants)

Étape Tableau Chaîne Note
1 Interface réseau d'entrée (par exemple, eth0)
2 mutiler PRÉROUTAGE Généralement utilisé pour apporter des modifications à l'en-tête du paquet, telles que la configuration des bits T.O.S. etc.
3 Nat PRÉROUTAGE Traduction d'adresse ( Traduction d'adresses du réseau de destination).
4 Prendre des décisions de routage.
5 mutiler SAISIR Le paquet entre dans la chaîne SAISIR mutiler les tables. C'est ici que les modifications sont apportées à l'en-tête du paquet avant qu'il ne soit transmis à l'application locale.
6 filtre SAISIR Le trafic entrant est filtré ici. N'oubliez pas que tous les paquets entrants qui nous sont adressés passent par cette chaîne, quelle que soit l'interface d'où ils proviennent.
7 Processus/application local (c'est-à-dire programme serveur ou programme client)

À partir de processus locaux (paquets sortants)

Étape Tableau Chaîne Note
1 Processus local (c'est-à-dire programme serveur ou programme client).
2 Prendre des décisions de routage. Ici, il est décidé où le paquet ira ensuite - à quelle adresse, via quelle interface réseau, etc.
3 mutiler SORTIR C'est ici que les modifications sont apportées à l'en-tête du paquet. Effectuer un filtrage sur cette chaîne peut avoir des conséquences négatives.
4 Nat SORTIR Cette chaîne est utilisée pour la traduction d'adresses réseau (NAT) dans les paquets provenant des processus de pare-feu locaux.
5 Filtre SORTIR Le trafic sortant est filtré ici.
6 mutiler POSTROUTAGE Chaîne POSTROUTAGE La table mangle est principalement utilisée pour les règles qui doivent apporter des modifications à l'en-tête du paquet avant qu'il ne quitte le pare-feu, mais après que la décision de routage a été prise. Tous les paquets, qu'ils soient en transit ou créés par les processus de pare-feu locaux, entrent dans cette chaîne.
7 Nat POSTROUTAGE Fonctionne ici Traduction d'adresses réseau source. Vous ne devez pas filtrer les paquets dans cette chaîne pour éviter les effets secondaires. Cependant, ici aussi vous pouvez arrêter les paquets en appliquant la politique par défaut BAISSE.
8 Interface réseau (par exemple eth0)

Comme nous l'avons compris, il existe trois tableaux principaux :

  • mutilerCe tableau est destiné aux opérations de classification et de marquage des paquets et des connexions, ainsi qu'à la modification des en-têtes des paquets (champs TTL et TOS).
  • filtre— la table principale de filtrage des paquets, utilisée par défaut. En fait, c'est dans cette table que s'effectue le filtrage des paquets.
  • Nat- fournit une fonctionnalité nat si vous souhaitez utiliser votre ordinateur comme routeur. Les règles de routage sont définies ici.

Pour le tableau Nat Les actions s'appliquent :

  • MASCARADE

Action ADNT(Destination Network Address Translation) effectue la traduction des adresses de destination dans les en-têtes de paquets. En d'autres termes, cette action redirige les paquets vers des adresses autres que celles spécifiées dans les en-têtes des paquets.

SNAT(Source Network Address Translation) est utilisé pour modifier les adresses source des paquets. À l’aide de cette action, partagez une seule adresse IP externe entre les ordinateurs du réseau local pour accéder à Internet. Dans ce cas, le pare-feu, en utilisant SNAT, produit automatiquement des flux directs et conversion inverse adresses, permettant ainsi de se connecter aux serveurs sur Internet à partir des ordinateurs du réseau local.

Déguisement ( MASCARADE) est utilisé aux mêmes fins que SNAT, mais contrairement au dernier, MASCARADE met davantage de pression sur le système. Cela se produit car chaque fois que cette action est requise, une adresse IP est demandée pour l'interface réseau spécifiée dans l'action, tandis que pour SNAT L'adresse IP est spécifiée directement. Cependant, à cause de cette différence, MASCARADE peut fonctionner dans les cas avec une adresse IP dynamique, c'est-à-dire lorsque vous vous connectez à Internet, dites via PPP, GLISSER ou DHCP.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Exécuter MASCARADE pour tous les paquets provenant du réseau 10.8.0.0 vers l'interface eth0. Pour plus de clarté, disons que nous avons deux cartes réseau et deux réseaux. Nous avons besoin d'un réseau 10.8.0.0/24 (la première carte réseau) pourrait accéder, disons, à Internet via eth0( deuxième carte réseau)

  • brut— Conçu pour effectuer des actions avec les packages avant qu'ils ne soient traités par le système.

La table par défaut elle-même filtrer.

  • SAISIR- traite le trafic arrivant directement à l'hôte lui-même.
  • AVANT- vous permet de filtrer le trafic de transit.
  • SORTIR- vous permet de filtrer le trafic provenant de l'hôte lui-même.

Action avec le colis.

  • ACCEPTER- saut de paquets. Le paquet quitte la chaîne de base actuelle et continue.
  • REJETER- bloquer le colis et informer sa source du refus.
  • BAISSE- bloquer le colis sans informer la source du refus. Il est préférable de filtrer le trafic sur les interfaces connectées à Internet, car cela réduit le contenu informatif de l'analyse des ports hôtes par les attaquants.
  • ENREGISTRER— enregistrer le package dans le fichier journal.

Il s'avère que nous avons une chaîne [table - filtre] - [trafic - INPUT] - [action - DROP] la logique des actions semble seulement compliquée. Je pense que nous allons le comprendre avec des exemples et tout deviendra simple.

Commande iptables :

  • -UN ajoutez la règle à la fin de la chaîne.
  • -D supprimer la règle.
  • -JE insérez la règle avec le numéro souhaité.
  • -L afficher toutes les règles de la chaîne actuelle.
  • -S afficher toutes les règles.
  • -F effacer toutes les règles.
  • -N créer une chaîne.
  • -X supprimer la chaîne.
  • -P définir l'action par défaut.

Commençons par des exemples précis.

iptables -A INPUT -p tcp --dport 80 -j ACCEPTER

-UN ajouter une nouvelle règle, SAISIR pour les colis entrants, -p protocole, l'un des tcp, udp, udplite, icmp, icmpv6, esp, ah, sctp,
mh, — — déport port de destination 80 (option protocole uniquement), -j sélectionner une action si la règle correspond, ACCEPTER permettre. Autrement dit, permettez trafic entrant Par protocole TCP au port 80.

Les clés répertoriées prennent également en charge la construction à l'aide du signe ! . Il inverse la condition, par exemple :

iptables -A INPUT -s ! 192.168.0.50 -j DROP

-s adresse source - nom d'hôte (www.help.com), adresse IP ou sous-réseau en notation CIDR (192.168.0.1/16), ! inversion, BAISSE interdire. Refuser tout le trafic entrant sauf la source 192.168.0.50 (s'il n'y avait pas eu ! , puis interdire uniquement à partir de 192.168.0.50)

iptables -A INPUT -s 192.168.0.50 -j DROP

Refuser le trafic entrant depuis l'IP - 192.168.0.50 .

Liste des critères de règle :

  • -p Protocole. Le protocole peut également être spécifié par un numéro ou un nom comme indiqué dans /etc/protocols. La valeur "n'importe quel protocole" peut être spécifiée à l'aide du mot all ou du chiffre 0. Il existe également des paramètres supplémentaires pour le protocole: --sport(--port-source) Permet de préciser port sortant(ou une gamme de ceux-ci). --dport(--port-de destination) Vous permet de spécifier le port de destination (ou sa plage).
  • -s Spécifie l'adresse de l'expéditeur. L'adresse peut être une adresse IP (éventuellement avec un masque), nom de domaine(dans les deux derniers cas, avant d'ajouter la règle à la chaîne, le nom est résolu en adresse IP).
  • -je Définit l'interface réseau entrante. Si le nom de l'interface spécifié se termine par un signe « + » (par exemple, eth +), alors toutes les interfaces dont les noms commencent par le nom spécifié (etho,eth1) correspondent au critère.
  • -d Spécifie l'adresse du destinataire. La syntaxe est similaire -s .
  • -o Définit l'interface réseau sortante. La syntaxe est similaire -je.

Les critères peuvent également être combinés.

iptables -A INPUT -i eth0 -s 192 .168.0.0 -j DROP

Refuser les paquets entrants depuis une interface eth0 Et adresse IP 192.168.0.0. Et à l'interface eth1 les colis passeront.

Et si vous ne savez pas à l'avance quel port ouvrir, par exemple, souhaiteriez-vous serveur FTP travaillé en mode passif. Module connexion L'état de la connexion sera utile, et plus précisément le critère - ctstate. Le module est connecté par tag -m.

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 21 -j ACCEPT # Autoriser l'ouverture de connexions à 21 ports TCP.

États possibles :

  • NOUVEAU- la connexion n'est pas ouverte, c'est-à-dire que le paquet est le premier de la connexion.
  • ÉTABLI- le paquet fait référence à une connexion déjà établie. Généralement, ces paquets sont acceptés sans filtrage supplémentaire, comme c'est le cas avec RELATED.
  • EN RAPPORT- le paquet ouvre une nouvelle connexion, logiquement connectée à celles déjà établies, par exemple en ouvrant un canal de données de manière passive Mode FTP. La connexion reçoit le statut EN RAPPORT s'il est connecté à un autre composé qui a la caractéristique ÉTABLI.
  • INVALIDE— Le signe INVALID indique que le paquet ne peut pas être identifié et ne peut donc pas avoir un statut spécifique.

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

S état et le prédécesseur idéologique de conntrack, a une seule option --state, similaire à l'option --ctstate du module conntrack (mais, contrairement à elle, ne prend pas en charge les états DNAT et SNAT).

Jetons un coup d'œil rapide à la table des chauffeurs de taxi, qui se trouve dans le fichier /proc/net/ip_conntrack. Celui-ci contient une liste de toutes les connexions actives.

Tcp 6 300 ÉTABLI src=128.*.*.* dst=194.*.*.* sport=52524 dport=2223 src=194.*.*.* dst=128.*.*.* sport=2223 dport =52524 marque=0 utilisation=2

Le premier, comme c’est clair, c’est le protocole, puis le nombre décimal (je ne sais pas ce que ça veut dire), puis le temps passe durée de vie de la connexion. De plus, l'état est ESTABLISHED, c'est-à-dire que la connexion a déjà été établie ; il y a également UNREPLIED, ce qui signifie qu'il n'y a pas encore eu de trafic de réponse ; Viennent ensuite les adresses de l'expéditeur et du destinataire, ainsi que les ports de l'expéditeur et du destinataire. De plus, tout est inverse, respectivement, ASSURÉ ce drapeau indique que la connexion a été établie en toute confiance et cet enregistrement ne sera pas effacé une fois que le nombre maximum possible de connexions tracées aura été atteint.

Quelques caractéristiques des protocoles.

Une connexion TCP est toujours établie par l'envoi de trois paquets, qui initialisent et établissent une connexion via laquelle les données seront ensuite transmises. La séance commence par une transmission SYN paquet, en réponse auquel est transmis SYN/ACK paquet et confirme le paquet d'établissement de connexion ACCK .

Dès que le traceur a vu le premier ( SYN), puis lui attribue le statut NOUVEAU. Dès que le deuxième paquet passe par le traceur ( SYN/ACK), la connexion reçoit alors le statut ÉTABLI.

AVEC Protocole UDP tout est un peu différent, ce protocole ne prévoit pas l'établissement et la fermeture d'une connexion, mais le plus gros inconvénient— manque d'informations sur l'ordre dans lequel les paquets arrivent. Mais du point de vue du traceur, tout est comme avec TCP. Le premier paquet arrivé se voit attribuer le statut NOUVEAU. Dès que vous envoyez un paquet de réponse, le statut est attribué ÉTABLI. La seule différence est que le statut ASSURED n'est attribué que lorsque plusieurs paquets ont déjà été échangés.

Applications de règles de journalisation.

iptables permet de conserver des journaux de paquets et d'événements individuels. Pour ce faire, utilisez l'action ENREGISTRER.

iptables -A INPUT -p tcp —syn -j LOG —informations au niveau du journal —préfixe du journal « Paquets INPUT »

--niveau de journal Utilisé pour définir le niveau de journalisation. Liste complète niveaux que vous trouverez dans le manuel (man) de syslog.conf. En règle générale, vous pouvez définir les niveaux suivants : déboguer, infos, avis, avertissement, avertir, se tromper, erreur, critique, alerte, émerger Et panique. Les journaux sont écrits dans un fichier journal système.

--log-préfixe La clé précise le texte (préfixe) qui précédera tous les messages iptables. Les messages avec un préfixe spécifique peuvent alors être facilement trouvés en utilisant, par exemple, grep. Le préfixe peut contenir jusqu'à 29 caractères, espaces compris.

1er juin 17:12:20 noyau Debian : paquets INPUT IN=eth0 OUT= MAC=02:1e:6d:00:e2:1c:00:01:e8:11:73:69:08:00 SRC=125.94. 12,95 DST=194.87.239.104 LEN=40 TOS=0x00 PREC=0x00 TTL=52 ID=38690 PROTO=TCP SPT=12557 DPT=23 FENÊTRE=1460$ RES=0x00 SYN URGP=0

Commandes de gestion iptables populaires.

iptables -L -n --numéros de ligneConsultez la liste des règles.

-n nombre de ports et IP sous forme numérique.

--numéros de ligne numéro de ligne.

iptables -F Réinitialisez complètement les règles.

iptables -P ENTREE ACCEPTER Règles par défaut pour la table INPUT.
iptables -P SORTIE ACCEPTER Règles par défaut pour la table OUTPUT.
iptables -P DROP AVANT Règles par défaut pour la table FORWARD.

iptables -D ENTRÉE 1Suppression d'une règle par son numéro dans la chaîne.

iptables -D INPUT -s 123.45.67.89 -j DROP Supprimez une règle en fonction de ce qu'elle fait.

iptables -J'ENTRE... Insérez une règle au début d'une chaîne.

iptables -J'ENTRE 3... Ou vous pouvez spécifier une position spécifique.

RÉORIENTER

L'action REDIRECT est conçue pour rediriger les paquets d'un ensemble de ports vers un autre au sein du même système, sans quitter l'hôte.
REDIRECT ne fonctionne que dans les chaînes PREROUTING et OUTPUT de la table Nat. Ainsi, le champ d’application est réduit à la seule redirection. Le plus souvent, ceci est utilisé pour un proxy transparent, lorsqu'un client du réseau local se connecte au port 80 et que la passerelle redirige les paquets vers le port proxy local :

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

Les nouvelles règles ne sont pas automatiquement enregistrées et ne prendront pas effet après un redémarrage du serveur. Par conséquent, après avoir modifié iptables, nous devons enregistrer les modifications.

iptables - restaurer > /etc/iptablesCharger des règles à partir d'un fichier.

La manière de sauvegarder et de charger les règles dépend de vous. Nous n'avons pris connaissance que des bases de la théorie d'iptables ; bien sûr, il existe bien plus d'options de personnalisation. Nous en parlerons plus en détail dans un autre article.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :