Un pare-feu est un moyen permettant aux utilisateurs de restreindre certaines adresses IP ou l'accès des utilisateurs à leurs hôtes. Les pare-feu sont divisés en deux catégories : les pare-feu matériels et les pare-feu logiciels. Les pare-feu logiciels sont principalement utilisés pour filtrer les paquets de données, tandis que les pare-feu matériels sont principalement utilisés pour se protéger contre les attaques malveillantes et filtrer les paquets de données, telles que les attaques DDOS. Ici, nous allons expliquer le pare-feu logiciel sous Linux-iptables.
iptables et firewalld
Sous centOS6, le pare-feu logiciel par défaut est iptables, et dans centos7, c'est firewalld. Quel est le lien entre eux ? En fait, firewalld est un logiciel nouvellement intégré à l'iptables d'origine.
Lors de l'apprentissage d'iptables, il est recommandé de fermer d'abord firewalld et d'activer iptables
yum install iptables-services systemctl stop firewalld systemctl start iptables
tables et chaînes d'iptables
iptables Différentes tables représentent différentes fonctions. Il y a 4 tables par défaut
filter (filter) nat (traduction d'adresse) mangle raw
Sous différentes tables, il y a leurs propres chaînes de règles :
filter (INPUT/OUTPUT/FORWARD)
nat (prerouting/output/postouting )
Les significations représentées par ces chaînes sont les suivantes :
Chaîne INPUT - les paquets de données entrants appliquent les règles de cette chaîne de règles
Chaîne OUTPUT - les paquets sortants appliquent les règles de cette chaîne de règles
Chaîne FORWARD - applique les règles de cette chaîne de règles lors du transfert des paquets Règles
Chaîne PREROUTING - Appliquer les règles de cette chaîne avant de router le paquet de données
Chaîne POSTROUTING - Appliquer les règles au paquet de données Appliquer les règles de cette chaîne après le routage
Visualisation et effacement des règles d'iptables
Vue des règles
Exemple d'utilisation : iptables [-t tables] -L [-nv]
Options et paramètres :
-t est suivi de le type de table. Si cette option est omise, la valeur par défaut est la table de filtre.
-L Lister les règles du tableau actuel
-n Ne pas effectuer de vérification inversée du nom de domaine et de l'IP
-v affiche plus d'informations
# 查看filter表的规则 # iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 67 4444 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 2 286 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 38 packets, 4664 bytes) pkts bytes target prot opt in out source destination # 查看nat表的规则 iptables -t nat -L -nv
La signification des options de règle sous la chaîne est la suivante :
target : représente l'opération à effectuer, ACCEPT release, drop, rejet
prot : représente le protocole de paquet de données utilisé, notamment tcp, udp et icmp
opt : informations de description
source : restreindre un certain hôte source
destination : restreindre un certain hôte de destination
La signification des cinq règles de la chaîne INPUT présentée ci-dessus est la suivante :
Tant que l'état du paquet de données est RELATED, ESTABLISHED, il est accepté
Tant qu'il s'agit d'un paquet icmp, il est accepté
Tant qu'il s'agit d'une carte réseau de bouclage local, tout les données sont acceptées
Tant qu'il s'agit d'un paquet actif envoyé au port 22 de connexion, les paquets TCP sont acceptés.
Rejeter tous les paquets
Effacer les règles d'iptables
Une fois centOS7 installé par défaut, le système dispose déjà de nombreuses règles iptables. Nous allons vous apprendre ici comment effacer ces règles.
Exemple d'utilisation : iptables [-t tables] [-FXZ]
Options et paramètres :
-F Nettoyer toutes les règles personnalisées
-X Effacer toutes les règles définies par l'utilisateur
-Z Remettre toutes les statistiques à zéro
# iptables -F # iptables -X # iptables -Z
Afficher les règles spécifiques
Utilisez iptables-save pour afficher les règles spécifiques
Utilisation : iptables-save [-t tables]
# iptables-save -t filter # Generated by iptables-save v1.4.21 on Sat Nov 14 21:51:56 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [56:7196] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited # Completed on Sat Nov 14 21:51:56 2020
Définir la stratégie par défaut
Après avoir effacé les règles, il ne reste que la stratégie par défaut. La politique par défaut est que lorsqu'une de nos règles n'est pas respectée, la règle par défaut est utilisée. Les stratégies par défaut sont ACCEPT (accepter les paquets) et DROP (abandonner les paquets)
Utilisation : iptables [-t tables] -P [INPUT|OUTPUT|FORWARD…] [ACCEPT|DROP]
Maintenant, nous essayons de changer la chaîne INPUT par défaut du filtre en DROP, la chaîne OUTPUT et FORWARD en ACCETP
iptables -t filter -P INPUT DROP # 注意,该命令敲完后,你的终端就可能会断开连接了 iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Recommandations associées : "cours 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!