Maison  >  Article  >  Opération et maintenance  >  Logiciel pare-feu iptables sous Linux – définition et suppression de règles

Logiciel pare-feu iptables sous Linux – définition et suppression de règles

齐天大圣
齐天大圣original
2020-11-18 15:22:531992parcourir

L'introduction au pare-feu ipitables, ainsi que la façon d'afficher les règles et de nettoyer les règles, etc., ont été décrites dans un article précédent. Aujourd'hui, voici une démonstration de la façon de formuler des règles de pare-feu. Parce qu'au travail, nous formulons principalement des règles pour la chaîne de filtres, nous utilisons donc ici principalement la chaîne de fitler à des fins de démonstration.

Travail de préparation

Avant de formuler des règles, nous fermons d'abord le service firewalld, activons le service iptables, puis effaçons les règles existantes.

# systemctl stop firewalld
# systemctl start iptables
# iptables -F
# iptables -X
# iptables -Z

Ajouter une chaîne de règles

Il existe de nombreuses options pour ajouter une chaîne de règles à iptables. Examinons l'utilisation de base ci-dessous :

iptables [-t tables] -A|I 链名 [-i|o 网络接口] [-m state] [--state 数据包状态] \
> [-p 网络协议]  [-s 源地址 --sport 端口范围] [-d 目标地址 --dport 端口范围] \
> -j [ACCEPT|DROP|REJECT]

Options et paramètres :

  • -A|I nom de la chaîne A signifie ajouter la règle après la règle existante, tandis que I doit insérer la règle au début

  • -i|o Interface réseau i représente l'interface réseau par laquelle le paquet de données entre et doit être utilisée en conjonction avec la chaîne INPUT ou PREROUTING o représente l'interface par laquelle les données sont transmises ; Le paquet sort et doit être utilisé conjointement avec la chaîne OUTPUT

  • -p protocoles réseau Les plus courants incluent tcp, upd, icmp et tous

  • -m state packet status

  • --state packet status Les statuts courants incluent INVALID (paquet invalide), ESTABLISHED (statut de connexion réussie), NEW (paquet nouvellement établi), RELATED ( nouvelle connexion associée à une connexion existante)

  • -s adresse source L'adresse peut être une adresse IP, telle que 192.168.1.110 ou une adresse réseau 192.168.1.0/24

  • -d adresse de destination

  • -j est suivi d'opérations, les plus courantes sont ACCEPT (accepter), DROP (abandonner), REJECT (rejeter)

Formulation de règles pour les interfaces IP, réseau et carte réseau

Ci-dessous, plusieurs exemples de chaînes de règles sont donnés. Nous autorisons les données envoyées depuis le 192.168.1.110 et rejetons les données envoyées depuis le 192.168.1.111.

# iptables -A INPUT -s 192.168.1.110 -j ACCEPT
# iptables -I INPUT -s 192.168.1.111 -j DROP

# iptables -vnL
Chain INPUT (policy ACCEPT 33 packets, 3048 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       192.168.1.111        0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       192.168.1.110        0.0.0.0/0           
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 18 packets, 1844 bytes)
 pkts bytes target     prot opt in     out     source               destination

Autoriser l'accès à l'adresse réseau 192.168.1.0/24

# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
# iptables -vnL
Chain INPUT (policy ACCEPT 29 packets, 2328 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       192.168.1.111        0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       192.168.1.110        0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       192.168.1.0/24       0.0.0.0/0           
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 15 packets, 1460 bytes)
 pkts bytes target     prot opt in     out     source               destination

Réfléchissez à la question de savoir si le paquet de données de 192.168.1.111 sera accepté ou rejeté. À en juger par la première règle de INPUT, elle sera rejetée, mais à en juger par la dernière règle, elle sera acceptée. La réponse est qu'elle sera rejetée. Lorsqu'une des règles est respectée, les règles suivantes ne seront pas suivies, donc l'ordre de la chaîne de règles est également très important.

Continuez à regarder le cas : tant qu'il s'agit de l'adresse de bouclage locale lo, elle est autorisée

# iptables -A INPUT -i lo -j ACCEPT

La formulation des règles pour le port

entrera Bloquer les paquets de données locaux sur le port 21

# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP

Ouvrir tous les ports entre 1024 et 65534. Vous pouvez utiliser le numéro de port : numéro de port pour représenter un numéro de port continu

# iptables -A INPUT -i eth0 -p tcp --dport 1024:65534 -j ACCEPT

Ce qui suit Regardez les deux règles complètes

Le port 3306 de cette machine n'est pas ouvert au réseau 192.168.1.0/24.

Le service ssh local n'accepte pas les paquets de données du port 1024:65535 du réseau 192.168.1.0/24

# iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3306 -j DROP
# iptables -A INPUT -i etc0 -p tcp -s 192.168.1.0/24 \
> --sport 1024:65535 --dport 22 -j DROP

Règles pour l'état de connexion des paquets de données Formuler

Les statuts courants des paquets de données incluent INVALID (paquet de données invalide), ESTABLISHED (statut de connexion réussie), NEW (paquet de données nouvellement établi), RELATED (nouvelle connexion et associé à un existant). connexion).

Acceptez tous les paquets dans le statut ESTABLISHED et RELATED, supprimez tous les paquets dans le statut INVALID

# iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
# iptables -A INPUT -m state --state INVALID -j DROP

Supprimer la chaîne de règles

Supprimer une chaîne de règles revient fondamentalement à ajouter une chaîne de règles, sauf que -A peut être remplacé par -D Supprimons quelques règles ensemble.

# iptables-save
# Generated by iptables-save v1.4.21 on Sun Nov 15 22:36:41 2020
*filter
:INPUT ACCEPT [4:1920]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16:1380]
-A INPUT -s 192.168.1.111/32 -j DROP
-A INPUT -s 192.168.1.110/32 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
……

# iptables -t filter -D INPUT -s 192.168.1.111/32 -j DROP
# iptables -D INPUT -s 192.168.1.110/32 -j ACCEPT

Remarque : les paramètres ci-dessus pour iptables ne seront enregistrés qu'en mémoire. Ces paramètres disparaîtront après le redémarrage du système après le redémarrage du service. Donc, tant que vous ne vous bloquez pas de l'extérieur, n'hésitez pas à vous entraîner

Si vous souhaitez sauvegarder les règles, veuillez saisir /usr/libexec/iptables/iptables.init save pour sauvegarder.

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn