Maison  >  Article  >  Opération et maintenance  >  Logiciel pare-feu iptables sous Linux - conception de pare-feu

Logiciel pare-feu iptables sous Linux - conception de pare-feu

齐天大圣
齐天大圣original
2020-11-18 15:27:092285parcourir

Dans les articles précédents, j'ai présenté les tables et chaînes d'iptables, ainsi que comment ajouter des chaînes de règles, etc. Ici, je voudrais partager avec vous une règle de pare-feu simple. Cet article définit principalement les règles de la chaîne d'entrée du filtre. Cet article est équivalent à une règle iptables pratique pour vous aider à approfondir et à consolider les connaissances que vous avez acquises.

Les règles d'application sont les suivantes :

  • Effacer les règles existantes pour effacer toutes les règles originales.

  • Définissez la stratégie par défaut, définissez la stratégie par défaut de la chaîne d'entrée du filtre sur supprimer et définissez tout le reste sur accepter.

  • Faites confiance à cette machine et la carte réseau de bouclage lo doit être définie sur digne de confiance.

  • Paquets de données de réponse, les paquets de données que l'hôte demande activement de l'extérieur et répondent peuvent entrer dans la machine locale (établir/lié)

  • Rejeter les paquets de données invalides, les paquets de données invalides sont rejetés (INVALIDE)

  • Liste blanche, faire confiance à certaines IP ou adresses réseau, etc.

  • Liste noire, adresse IP ou réseau non fiable, etc.

  • Autoriser les paquets icmp, libérer les paquets icmp

  • Ouvrir certains ports, certains ports de service doit être ouvert sur le monde extérieur, comme 80, 443, 22 et autres ports

Nous allons créer 3 fichiers script shell : iptables.rule, iptables.allow (liste blanche) , fichier iptables .deny (liste noire). Pour ces trois fichiers, je crée généralement d'abord un répertoire /etc/iptables, et ces trois fichiers existent dans ce répertoire.

Ensuite, regardons le contenu du script de ce iptables.rule :

#!/bin/bash
# iptables rule

# 清楚默认规则
iptables -F
iptables -X
iptables -Z

# 修改默认策略
iptables -P INPUT  DROP
iptables -P FORWARD  ACCEPT
iptables -P OUTPUT  ACCEPT

# 信任本机
iptables -A INPUT -i lo -j ACCEPT 

# 响应数据包
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

# 拒绝无效数据包
iptables -A INPUT  -m state --state INVALID -j DROP

# 白名单
if [ -f "/etc/iptables/iptables.allow" ];then
    sh /etc/iptables/iptables.allow
fi

# 黑名单
if [ -f "/etc/iptables/iptables.deny" ];then
    sh /etc/iptables/iptables.deny
fi

# 允许icmp包
iptables -A INPUT -p icmp -j ACCEPT

# 开放部分端口
iptables -A INPUT -p tcp --dport 22  -j ACCEPT # ssh服务
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # www服务
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # ssl

# 保存规则
/usr/libexec/iptables/iptables.init save

Pour iptables.allow, nous écrivons généralement l'adresse IP ou l'adresse réseau de confiance dans ce fichier, par exemple l'emplacement de l'hôte. se trouve Le LAN est 192.168.1.0/24. Si vous souhaitez faire confiance aux hôtes de ce LAN, vous pouvez écrire

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

dans le fichier iptables.deny est utilisé pour bloquer le trafic de certaines IP malveillantes. en entrant ce fichier. Par exemple, pour bloquer l'adresse IP 8.210.247.5, vous pouvez écrire

iptables -A INPUT -s 8.210.247.5/32 -j DROP

dans le fichier. À la fin de iptables.rule, nous utilisons la commande pour enregistrer les règles du pare-feu. si vous n'ajoutez pas cette commande, les règles ne prendront effet qu'à zéro. Au redémarrage d'iptables ou du redémarrage du système, les règles que nous avons définies auparavant deviendront invalides.

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!

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