Maison > Article > Opération et maintenance > Logiciel pare-feu iptables sous Linux – définition et suppression de règles
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!