GNU/Linux >> Tutoriels Linux >  >> Linux

Comment :Linux général - IPTables en général

Présentation

IPTables est un pare-feu déjà installé ou pouvant être installé sur l'une de nos distributions Linux pour notre service Cloud. IPTables est utilisé pour configurer les chaînes de règles de filtrage de paquets et appliquer les chaînes de règles intégrées ou définies par l'utilisateur pour votre serveur. IPTables a des composants principaux impliquant Tables , Cibles , et Options .

Tableaux

Les tables dans IPTables sont utilisées pour séparer les paquets dans leur catégorie correspondante. Le tri du tableau dépend des modules que votre système a chargés et où le paquet correspond. À l'heure actuelle, il existe cinq tables distinctes à utiliser. Ils sont filtrés , nat , mutiler , brut , et sécurité . Pour la plupart, l'utilisation de base d'IPTables impliquera simplement le filtre table. Si vous effectuez un routage interne ou une mise en réseau plus compliquée, vous vous concentrerez également sur l'utilisation des autres tables. Cette page passera uniquement en revue le filtre règles de saisie.

filtrer – Il s'agit de la table de base comme cela a été mentionné et c'est généralement la table par défaut. Cette table est constituée des chaînes de règles ACCEPT, FORWARD, OUTPUT.

nat – Cette table est utilisée pour les paquets qui créeront de nouvelles connexions. Comme le routage d'une IP publique vers une IP privée. Il se compose des chaînes de règles PREROUTING, POSTROUTING et OUTPUT.

mutiler – Cette table est utilisée pour modifier la manière dont les paquets sont traités. Il se compose des chaînes de règles INPUT, FORWARD, OUTPUT, PREROUTING et POSTROUTING.

brut – Cette table est utilisée pour configurer les exemptions du suivi de connexion avec la cible NOTRACK. Il se compose de PREROUTING et OUTPUT.

sécurité – Ce tableau concerne les règles MAC (Mandatory Access Control). Il se compose de INPUT, FORWARD et OUTPUT

Cibles

Les cibles sont définies comme la valeur de la chaîne de règles que vous créez. Ils peuvent contenir les valeurs ACCEPTER , DÉPOSER , FILE D'ATTENTE , ou RETOUR . Ces valeurs indiquent à la règle comment procéder avec un paquet qui correspond à la règle.

ACCEPTER - C'est assez simple et signifie autoriser le paquet à passer par votre serveur.

DÉPOSER – Aussi assez simple dans la mesure où cela signifie de refuser le paquet jusqu'à votre serveur.

FILE D'ATTENTE – Cette cible signifie transmettre le paquet dans l'espace utilisateur afin qu'un utilisateur puisse définir quoi en faire.

RETOUR – Cette cible arrête le traitement de la chaîne en cours et lui dit de reprendre le traitement à la règle suivante de la chaîne précédente.

Options

Il existe une tonne d'options disponibles pour l'utilisation d'IPTables. Nous énumérerons quelques-uns des plus courants que vous verrez.

-A, –append – Ajoute votre règle à une chaîne.

-L, –list [chaîne] – Cela listera toutes les règles de la chaîne que vous spécifiez. Si vous ne fournissez pas de chaîne, elle listera toutes les règles.

-F, –flush [chaîne] – Cela supprimera toutes les chaînes et règles de la chaîne donnée. Si vous ne fournissez pas de chaîne, toutes les règles et chaînes en cours d'exécution seront supprimées.

-h - Cela fournit une sortie de toutes les options que vous pouvez faire.

-p, –protocol protocole – C'est le protocole des paquets. Ceux-ci peuvent être TCP, UDP, UDPlite, ICMP, ESP, AH, SCTP, tous, équivalents numériques à ceux-ci, ou commencer par un ! pour inverser la vérification du protocole.

-s, –adresse source[/masque][,…] – Une adresse source. Il peut s'agir de l'adresse IP, de la plage d'adresses IP via le masque de réseau, du nom du réseau ou du nom d'hôte.

-d, –destination address[/mask][,…] – Une adresse de destination. Même format que –s.

-m, –match correspond – Un module d'extension qui teste une propriété.

–dport[s] [port# ][,…] – Un port que vous recherchez. –dports est utilisé pour en spécifier plusieurs, séparés par une virgule. Lorsque vous utilisez –dports, assurez-vous de définir -m comme multiport. Pour spécifier une plage de ports, utilisez un :tel que 1000:1100 qui serait les ports 1000-1100.

-j, –jump target – Il s'agit de l'option qui vous permet de spécifier la cible de votre règle.

-i, –in-interface name – Spécifie une interface sur laquelle le paquet doit être reçu.

-o, –out-interface name – Spécifie une interface sur laquelle le paquet partira.

-v, –verbose – Cela permet à la commande list d'afficher les noms d'interface, les options de règle et tous les masques. Affiche également les compteurs de paquets et d'octets.

Utilisation et exemples

Ici, nous allons montrer quelques utilisations de base et des exemples. Une règle IPTables typique aura tendance à suivre ces formats. Assurez-vous que toutes vos règles sont faites au-dessus de COMMIT car cela est utilisé pour terminer une table. Les règles d'une autre table suivront leur propre fin COMMIT.

Pour autoriser le trafic établi :

-A INPUT -m correspond –état ÉTABLI, CONNEXE -j ACCEPTER

En utilisation, ce serait :

-A ENTRÉE -m état –état ÉTABLI, CONNEXE -j ACCEPTER

Pour autoriser des ports spécifiques.

-A INPUT -p protocole -m correspond –dport port -j ACCEPTER

En utilisation, un exemple serait :

-A ENTRÉE -p tcp -m tcp –dport 80 -j ACCEPTER

Ou

-A ENTRÉE -p tcp -m multiport –dports 80,443 -j ACCEPTER

Cela permettrait au trafic Web de passer sur le port 80 (dans le deuxième exemple, le port 443 également.) Ce n'est pas tout ce que vous pouvez faire. Vous pouvez également ajouter ce qui suit comme dans les exemples ci-dessous.

-A INPUT -s IPADDR -p tcp -m tcp –dport 22 -j ACCEPTER

Cela n'autorise que l'adresse IP (IPADDR ) que vous spécifiez via sur votre port 22 (ssh.) Vous pouvez utiliser n'importe quelle forme d'adresse IP autorisée par l'option -s.

-A INPUT -p tcp -m tcp –dport 22 -j DROP

En suivant l'exemple ci-dessus, cela supprimera tout le trafic TCP acheminé vers votre port SSH. C'est une bonne règle empirique de toujours avoir des règles DROP tout en bas de votre liste de règles ACCEPT dans la chaîne. Par exemple :

-A SAISIR … -j ACCEPTER

-A SAISIR … -j ACCEPTER

-A SAISIR … -j ACCEPTER

-A ENTRÉE … -j DROP

-A EN AVANT … -j ACCEPTER

-A EN AVANT … -j ACCEPTER

-A EN AVANT … -j ACCEPTER

-A AVANT … -j DROP

-A SORTIE … -j ACCEPTER

-A SORTIE … -j ACCEPTER

-A SORTIE … -j ACCEPTER

-A SORTIE … -j DROP

Vous pouvez également définir les cibles (comme ACCEPT ou DROP) en haut de vos IPTables pour un comportement par défaut. Lorsqu'il s'agit d'une nouvelle installation d'IPTables, vous voyez toujours le comportement par défaut (défini en haut où il répertorie INPUT, FORWARD et OUTPUT) comme ACCEPT. Une bonne règle de base pour la sécurité consiste à le changer en DROP et à ne définir des règles que pour les ports ou le trafic que vous souhaitez autoriser. Cependant, ne le modifiez que si vous êtes sûr d'avoir fait les exceptions dont vous avez besoin.

Toujours en haut d'un tableau, vous pouvez définir vos propres cibles. Supposons que vous ayez ce qui suit en haut de vos IPTables :

*filtre

:SUPPORT D'ENTREE [0:0]

:DÉBUT AVANT [0:0]

:CHUTE DE SORTIE [0:0]

S'ENGAGER

Maintenant que nous avons tout bloqué, commençons par ajouter nos propres cibles comme :

*filtre

:SUPPORT D'ENTREE [0:0]

:DÉBUT AVANT [0:0]

:CHUTE DE SORTIE [0:0]

:APP – [0:0]

:MaNouvelleCible – [0:0]

S'ENGAGER

Vous pouvez maintenant créer une chaîne de règles de type personnalisée comme ci-dessous.

*filtre

:SUPPORT D'ENTREE [0:0]

:DÉBUT AVANT [0:0]

:CHUTE DE SORTIE [0:0]

:APP – [0:0]

:MaNouvelleCible – [0:0]

-A APP -p tcp -m multiport –dports 30:40,50:80 -j ACCEPTER

-A INPUT -s IPADDR -j MaNouvelleCible

-A MaNouvelleCible -j APP

S'ENGAGER

Maintenant, ce que nous avons fait ci-dessus est de créer de nouvelles cibles, APP et MyNewTarget et de leur attribuer des options et des cibles. Ce que fait la dernière règle (au-dessus de COMMIT), c'est que si la connexion provient de votre IP source et tente d'atteindre les ports 30-40 ou 50-80, autorisez-la ! Tout est défini dans la chaîne ci-dessus. Ce niveau de personnalisation n'est pas vraiment nécessaire à moins que vous n'utilisiez plusieurs hôtes ou que vous utilisiez des ports que vous vous retrouvez à répéter et que vous souhaitiez davantage un raccourci ou un "raccourci" pour écrire des règles. Par exemple, toute nouvelle règle dont vous avez besoin provenant de cette adresse IP source, vous pouvez désormais simplement utiliser MyNewTarget.

Dans l'ensemble, IPTables fournit de nombreuses personnalisations de règles et vous permet de gérer la façon dont votre serveur gère le trafic entrant, sortant et interne. Certaines règles peuvent être déroutantes et difficiles à suivre, mais l'utilité qu'elles apportent à la stabilité du serveur ne fait aucun doute.


Linux
  1. Comment utiliser BusyBox sous Linux

  2. Comment bloquer l'adresse IP sur le serveur Linux

  3. Comment bloquer l'adresse IP sur le serveur Linux

  4. Comment ouvrir un port sous Linux

  5. Comment configurer un serveur Linux en tant que routeur avec NAT

Comment installer PSAD sur Ubuntu Linux

Comment configurer le pare-feu iptables sous Linux

Comment :Général Linux - IPTables de base via la ligne de commande

Procédure :Dépannage de base d'IPTables

Comment sécuriser un pare-feu Linux avec les règles IPTables

Comment configurer un pare-feu sur votre serveur Linux