Cet article fournit des informations de base sur l'utilisation de votre iptables
pare-feu logiciel. Ce pare-feu est la solution de pare-feu par défaut pour les distributions basées sur Red Hat® Enterprise Linux® (RHEL®) 6 et CentOS® 6.
Remarque :Les étapes décrites dans cet article ne sont pas destinées à être utilisées sur les serveurs RackConnect®. Si vous devez apporter des modifications à votre pare-feu sur un serveur RackConnect, vous devez utiliser votre gestionnaire de pare-feu dédié.
Prérequis
Vous devez avoir les prérequis suivants :
- Compréhension de base de SecureShell® (SSH)
- Accès sudo ou administratif à votre serveur
- Un serveur cloud non RackConnect exécutant RHEL 6 ou CentOS 6.
Qu'est-ce que "iptables" et comment ça marche ?
iptables
est la solution de pare-feu logiciel Linux par défaut. En utilisant le module du noyau netfilter, iptables
peut gérer le trafic réseau entrant et sortant. iptables
utilise les chaînes de règles configurées dans le cadre d'une table sur le serveur. Un tableau regroupe des chaînes similaires qui accomplissent une tâche spécifique.
Tables, chaînes et règles
Chaque table a un ensemble de chaînes par défaut. Cet article fait référence au filtre table, qui contient le INPUT , AVANCER , et SORTIE Chaînes. Les règles de ces chaînes sont lues et traitées de haut en bas.
-
ENTRÉE :Cette chaîne gère le trafic entrant destiné au serveur.
-
AVANCER :Cette chaîne gère le trafic qui arrive au serveur mais qui est destiné à un autre appareil.
-
SORTIE :Cette chaîne est utilisée pour les paquets sortants qui proviennent du serveur.
Cibles, actions et filtres
Le tableau suivant montre quelques cibles et actions de base dans iptables
lorsque le trafic est envoyé au serveur :
Nom | Description |
---|---|
ACCEPTER | Le trafic est accepté et aucune autre règle n'est traitée. |
DÉPOSER | Le paquet est bloqué et aucune autre règle n'est traitée. Aucune réponse envoyée à l'expéditeur. |
LOG | Les informations sur les paquets sont enregistrées sur le serveur et iptables continue de traiter les règles. |
REFUSER | Semblable au paquet DROP, mais envoie une réponse à l'expéditeur. |
Filtrer | Ce qu'il fait |
---|---|
-p (protocol) | Le protocole du paquet. Le protocole spécifié peut être l'un des tcp , udp , icmp , ou le mot-clé spécial all . |
-s, --source | L'adresse IP source du paquet. |
-d --destination | La destination du paquet. |
-sport | Le port source à faire correspondre. |
-dport | Le port de destination à faire correspondre. |
-i | L'interface de réception du paquet. |
L'anatomie d'une règle
La règle suivante est un exemple de iptables
règle :
iptables -I INPUT -i eth0 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
Dans cet exemple, le trafic provenant de l'adresse IP source, 192.168.1.1
, sur le tcp
protocole est accepté sur eth0
interface au port de destination 22
. Cette règle est ajoutée en haut de INPUT
chaîne.
Comment fonctionnent les règles "iptables" ?
Une façon de limiter le trafic réseau entrant et sortant sur le serveur consiste à implémenter des règles de pare-feu. Sur un serveur RHEL ou CentOS 6, la solution de pare-feu logiciel par défaut est iptables
. iptables
vous permet de configurer une configuration similaire à celle d'un pare-feu dédié qui s'exécute sur votre serveur. Vous configurez ces règles dans une CHAIN
selon la règle. Cet article traite de l'INPUT
chain, qui est la chaîne par défaut pour accepter le trafic via iptables
.
Activer et vérifier l'état de "iptables"
Avant d'ajouter de nouvelles règles dans iptables
, vous devez vérifier que le service est en cours d'exécution et répertorier les règles actuelles.
Pour vérifier l'état de iptables
, exécutez la commande suivante :
service iptables status
Vous devriez obtenir une sortie indiquant que le service est Active
sur le serveur. Sinon, vous pouvez démarrer le service avec le service iptables start
commande.
Une fois le service démarré, vous pouvez répertorier les règles à l'aide de la commande suivante :
iptables -L
Si vous n'avez pas encore configuré de règles, le résultat ressemble à l'exemple suivant :
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Exemples "iptables"
Les exemples suivants montrent quelques règles dans iptables
et leur fonctionnalité dans iptables
.
INSERT versus APPEND
Avec iptables
, le -I
flag insère la règle en haut de la chaîne sélectionnée, et le -A
flag ajoute la nouvelle règle au bas de la chaîne sélectionnée. Ceci est important car les règles sont lues de haut en bas. Par conséquent, s'il existe une règle en haut qui bloque tout le trafic entrant et que vous utilisez -A
pour ajouter une règle qui accepte le trafic d'une adresse IP, la règle que vous avez ajoutée est bloquée par la première règle. Vous devez considérer la configuration pour déterminer si -A
ou -I
est la meilleure option pour la modification effectuée sur le serveur. Vérifiez toujours les règles actuelles avant d'apporter des modifications.
Une bonne règle consiste à ajouter toutes les règles qui se terminent par un drop et à insérer toutes les règles qui acceptent un paquet.
Exemple de commande | Ce qu'il fait |
---|---|
iptables -L | Cette commande liste tous les iptables règles. |
iptables -L --line-numbers | Cette commande liste tous les iptables règles et fournit un numéro de ligne pour chaque règle. |
iptables -D INPUT 2 | Lorsqu'il est utilisé conjointement avec iptables -L --line-numbers , cette commande supprime la deuxième règle dans INPUT chaîne. C'est la meilleure méthode pour s'assurer que la bonne règle est supprimée. |
iptables -A INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j DROP | Cette règle abandonne le trafic sur le port 22 à partir de l'IP source via la chaîne INPUT via TCP. Cette règle est ajoutée en haut de la chaîne INPUT. |
iptables -A INPUT -s 12.345.67.89 -j DROP | Cette règle supprime toutes les connexions entrantes à partir de l'adresse IP source. Cet exemple est ajouté en haut de INPUT chaîne. |
iptables -D INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Cette commande supprime la règle spécifiée de INPUT table. Vous pouvez utiliser le -D drapeau avec n'importe quelle chaîne ou règle, mais nous vous recommandons de supprimer par numéro de ligne comme indiqué ci-dessus. |
iptables -I INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Cette règle accepte le trafic sur le port 22 à partir de l'adresse IP source via INPUT chaîne via TCP. Cette règle est insérée dans le INPUT chaîne. |
iptables -I INPUT -s 12.345.67.89 -j ACCEPT | Cette règle accepte toutes les connexions entrantes de l'IP source via n'importe quel protocole sur n'importe quel port. Cette règle est insérée dans le INPUT chaîne. |
service iptables save | Par défaut, iptables n'offre pas de persévérance. Cette commande permet de sauvegarder les règles. |
service iptables reload | Cette commande recharge le service iptables pour permettre le traitement de nouvelles règles. |
Autres lectures
Cet article aborde uniquement les bases de iptables
. Il existe plusieurs autres tâches et règles que vous pouvez configurer pour limiter l'accès à votre serveur. Pour plus d'informations sur iptables
, vous pouvez revoir le man
page pour iptables sur iptables - page de manuel Linux.