25 Règles de pare-feu iptable utiles que chaque administrateur Linux devrait connaître
- 2346
- 484
- Rayan Lefebvre
La gestion du trafic réseau est l'un des emplois les plus difficiles dont les administrateurs système doivent traiter. Il doit configurer le pare-feu de manière à répondre aux exigences du système et des utilisateurs pour les connexions entrantes et sortantes, sans laisser le système vulnérable aux attaques.
25 Règles de pare-feu iptables pour LinuxC'est ici que iptables
être utile. Iptables est un pare-feu de ligne de commande Linux qui permet aux administrateurs système de gérer le trafic entrant et sortant via un ensemble de règles de table configurables.
Iptables Utilise un ensemble de tables qui ont des chaînes contenant un ensemble de règles intégrées ou définies par l'utilisateur. Grâce à eux, un administrateur système peut filtrer correctement le trafic réseau de son système.
Selon Iptables Manual, il existe actuellement 3 types de tables:
FILTRE
- Il s'agit du tableau par défaut, qui contient les chaînes intégrées pour:- SAISIR - packages destinés aux prises locales
- AVANT - paquets acheminés via le système
- SORTIR - paquets générés localement
Nat
- Une table qui est consultée lorsqu'un paquet essaie de créer une nouvelle connexion. Il a l'intégration suivante:- Prurotinage - utilisé pour modifier un paquet dès qu'il est reçu
- SORTIR - Utilisé pour modifier les paquets générés localement
- Postal - utilisé pour modifier les paquets car ils sont sur le point de sortir
MUTILER
- Ce tableau est utilisé pour la modification des paquets. Jusqu'à la version du noyau 2.4 Cette table n'avait que deux chaînes, mais ils ont maintenant 5 ans:- Prurotinage - pour modifier les connexions entrantes
- SORTIR - pour modifier les paquets générés localement
- SAISIR - pour les paquets entrants
- Postal - pour modifier les paquets car ils sont sur le point de sortir
- AVANT - Pour les paquets acheminés dans la boîte
Dans cet article, vous verrez des commandes utiles qui vous aideront à gérer votre pare-feu Linux à travers des iptables. Aux fins de cet article, je vais commencer par des commandes plus simples et aller plus complexe jusqu'à la fin.
1. Démarrage / arrêt / redémarrer le pare-feu iptables
Tout d'abord, vous devez savoir gérer le service iptables dans différentes distributions Linux. C'est assez facile:
Sur les distributions Linux basées sur Systemd
------------ Sur Cent / Rhel 7 et Fedora 22+ ------------ # systemctl start iptables # systemctl stop iptables # systemctl redémarrage iptables
Sur les distributions Linux basées sur Sysvinit
------------ Sur Cent / Rhel 6/5 et Fedora ------------ # / etc / init.d / iptables start # / etc / init.d / iptables stop # / etc / init.d / iptables redémarrer
2. Vérifiez toutes les règles de pare-feu iptables
Si vous souhaitez vérifier vos règles existantes, utilisez la commande suivante:
# iptables -l -n -v
Cela devrait renvoyer la sortie similaire à celle ci-dessous:
Entrée de la chaîne (politique accepte 1129k paquets, 415m octets) pkts octets cible prot opt dans la destination de la source 0 0 accepter TCP - lxcbr0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 53 0 0 accepter UDP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 UDP DPT: 53 0 0 Accepter TCP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 67 0 0 Accepter UDP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 UDP DPT: 67
Chaîne en avant (politique accepte 0 paquets, 0 octets) pkts octets cible prot opt dans la destination de la source 0 0 accepter tout - * lxcbr0 0.0.0.0/0 0.0.0.0/0 0 0 Accepter tout - lxcbr0 * 0.0.0.0/0 0.0.0.0/0
Sortie de la chaîne (politique accepte 354k paquets, 185m octets) PKTS octets cible prot opt dans la destination de la source
Si vous préférez vérifier les règles d'un tableau spécifique, vous pouvez utiliser le -t
Option suivie du tableau que vous souhaitez vérifier. Par exemple, pour vérifier les règles dans le Nat
table, vous pouvez utiliser:
# iptables -t nat -l -v -n
3. Bloquer l'adresse IP spécifique dans le pare-feu iptables
Si vous trouvez une activité inhabituelle ou abusive à partir d'une adresse IP, vous pouvez bloquer cette adresse IP avec la règle suivante:
# iptables -a entrée -s xxx.xxx.xxx.xxx -j Drop
Où vous devez changer "xxx.xxx.xxx.xxx "
avec l'adresse IP réelle. Soyez très prudent lorsque vous exécutez cette commande car vous pouvez bloquer accidentellement votre propre adresse IP. Le -UN
L'option ajoute la règle à la fin de la chaîne sélectionnée.
Au cas où vous voudrez seulement bloquer TCP Trafic à partir de cette adresse IP, vous pouvez utiliser le -p
option qui spécifie le protocole. De cette façon, la commande ressemblera à ceci:
# iptables -a entrée -p tcp -s xxx.xxx.xxx.xxx -j Drop
4. Débloquer l'adresse IP dans le pare-feu iptables
Si vous avez décidé que vous ne souhaitez plus bloquer les demandes de l'adresse IP spécifique, vous pouvez supprimer la règle de blocage avec la commande suivante:
# iptables -d entrée -s xxx.xxx.xxx.xxx -j Drop
Le -D
L'option supprime une ou plusieurs règles de la chaîne sélectionnée. Si vous préférez utiliser l'option plus longue que vous pouvez utiliser --supprimer
.
5. Bloquer le port spécifique sur le pare-feu iptables
Parfois, vous pouvez bloquer les connexions entrantes ou sortantes sur un port spécifique. C'est une bonne mesure de sécurité et vous devriez vraiment y réfléchir lorsque vous configurez votre pare-feu.
Pour bloquer les connexions sortantes sur une utilisation de port spécifique:
# iptables -a output -p tcp --dport xxx -j Drop
Pour permettre une utilisation des connexions entrantes:
# iptables -a entrée -p tcp --dport xxx -j accepter
Dans les deux exemples, changez "xxx"
avec le port réel que vous souhaitez autoriser. Si vous voulez bloquer UDP trafic au lieu de TCP, changer simplement "TCP"
avec "UDP"
Dans la règle iptables ci-dessus.
6. Autoriser plusieurs ports sur iptables à l'aide de multiport
Vous pouvez autoriser plusieurs ports à la fois, en utilisant multiport, Vous trouverez ci-dessous une telle règle pour les connexions entrantes et sortantes:
# iptables -a entrée -p TCP -M Multiport - Dports 22,80,443 -J accepter # iptables -a output -p TCP -M Multiport - Sports 22,80,443 -j accepter
7. Autoriser une plage de réseau spécifique sur un port particulier sur iptables
Vous pouvez limiter certaines connexions sur un port spécifique à un réseau donné. Disons que vous souhaitez autoriser les connexions sortantes sur le port 22
Pour réseauter 192.168.100.0/24
.
Vous pouvez le faire avec cette commande:
# iptables -a sortie -p tcp -d 192.168.100.0/24 --DPORT 22 -J accepter
8. Bloquer Facebook sur le pare-feu iptables
Certains employeurs aiment bloquer l'accès à Facebook à leurs employés. Vous trouverez ci-dessous un exemple comment bloquer le trafic vers Facebook.
Note: Si vous êtes un administrateur système et que vous devez appliquer ces règles, gardez à l'esprit que vos collègues peuvent cesser de vous parler :)
Trouvez d'abord les adresses IP utilisées par Facebook:
# hôte Facebook.com Facebook.com a l'adresse 66.220.156.68
# whois 66.220.156.68 | grep cidr cidr: 66.220.144.0/20
Vous pouvez ensuite bloquer ce réseau Facebook avec:
# iptables -a sortie -p tcp -d 66.220.144.0/20 -J Drop
Gardez à l'esprit que la gamme d'adresses IP utilisée par Facebook peut varier dans votre pays.
9. Configuration de la redirection du port en iptables
Parfois, vous voudrez peut-être transmettre le trafic d'un service vers un autre port. Vous pouvez y parvenir avec la commande suivante:
# iptables -t nat -a pré -out -i eth0 -p tcp --dport 25 -j redirect --to-port 2525
La commande ci-dessus transmet tout le trafic entrant sur l'interface réseau ETH0
, Depuis le port 25
au port 2525
. Vous pouvez changer les ports avec ceux dont vous avez besoin.
dix. Bloquer le réseau inondable sur le port Apache avec iptables
Parfois, les adresses IP peuvent demander trop de connexions vers des ports Web sur votre site Web. Cela peut entraîner le nombre de problèmes et pour éviter de tels problèmes, vous pouvez utiliser la règle suivante:
# iptables -a entrée -p TCP - Dport 80 -M limite - Limit 100 / Minute - Limit-BURST 200 -J Accepter
La commande ci-dessus limite les connexions entrantes de par minute à 100
et définit une rafale de limite à 200
. Vous pouvez modifier la limite et la limite de limite à vos propres exigences spécifiques.
11. Bloquer les demandes de ping entrantes sur iptables
Certains administrateurs système aiment bloquer les demandes de ping entrantes en raison de problèmes de sécurité. Bien que la menace ne soit pas si grande, il est bon de savoir comment bloquer cette demande:
# iptables -a entrée -p ICMP -i eth0 -j Drop
12. Autoriser l'accès à boucler
Accès en bouclement (accès depuis 127.0.0.1
) est important et vous devez toujours le laisser actif:
# iptables -a entrée -i lo -j accepter # iptables -a sortie -o lo -j accepter
13. Gardez un journal de paquets de réseau abandonnés sur iptables
Si vous souhaitez enregistrer les paquets supprimés sur l'interface réseau ETH0
, Vous pouvez utiliser la commande suivante:
# iptables -a entrée -i eth0 -j journal - log-prefix "paquets iptables supprimés:"
Vous pouvez modifier la valeur après "- log-prefix"
avec quelque chose par votre choix. Les messages sont connectés / var / log / messages
Et vous pouvez les rechercher avec:
# grep "Paquets iptables supprimés:" / var / log / messages
14. Bloquer l'accès à une adresse MAC spécifique sur iptables
Vous pouvez bloquer l'accès à votre système à partir de l'adresse MAC spécifique en utilisant:
# iptables -a entrée -m mac - mac-source 00: 00: 00: 00: 00: 00 -J Drop
Bien sûr, vous devrez changer "00: 00: 00: 00: 00: 00"
avec l'adresse MAC réelle que vous souhaitez bloquer.
15. Limitez le nombre de connexions simultanées par adresse IP
Si vous ne voulez pas avoir trop de connexion simultanée établie à partir d'une adresse IP unique sur le port donné, vous pouvez utiliser la commande ci-dessous:
# iptables -a entrée -p TCP --Syn --DPORT 22 -M Connlimit --Connlimit-Above 3 -J Rejet
La commande ci-dessus ne permet pas plus que 3
Connexions par client. Bien sûr, vous pouvez modifier le numéro de port pour correspondre à différents services. Également --Connlimit-Above
devrait être modifié pour correspondre à vos besoins.
16. Rechercher dans la règle iptables
Une fois que vous avez défini vos règles iptables, vous voudrez rechercher de temps en temps et peut-être avoir besoin de les modifier. Un moyen facile de rechercher dans vos règles est d'utiliser:
# iptables -l $ table -v -n | grep $ string
Dans l'exemple ci-dessus, vous devrez changer $ table
avec le tableau réel dans lequel vous souhaitez rechercher et $ String
avec la chaîne réelle pour laquelle vous recherchez.
Voici un exemple:
# iptables -l entrée -v -n | Grep 192.168.0.100
17. Définir la nouvelle chaîne iptables
Avec iptables, vous pouvez définir votre propre chaîne et y stocker des règles personnalisées. Pour définir une chaîne, utilisez:
# iptables -n filtre personnalisé
Vous pouvez maintenant vérifier si votre nouveau filtre est là:
# iptables -l
Échantillon de sortie
Entrée de chaîne (Accept de politique) Target Prot Opt Source Destination
Chain Forward (Policy Accept) Target Prot Opt Source Destination
Sortie de la chaîne (Politique Accept) Target Prot Opt Source Destination
Chaîne Filtre personnalisé (0 références) Target Prot Opt Source Destination
18. Rinçonner les chaînes ou les règles de pare-feu iptables
Si vous souhaitez vider vos chaînes de pare-feu, vous pouvez utiliser:
# iptables -f
Vous pouvez rincer des chaînes à partir de table spécifique avec:
# iptables -t nat -f
Vous pouvez changer "Nat"
avec la table réelle que les chaînes que vous souhaitez rincer.
19. Enregistrer les règles iptables dans un fichier
Si vous souhaitez enregistrer vos règles de pare-feu, vous pouvez utiliser le iptables-save
commande. Vous pouvez utiliser ce qui suit pour enregistrer et stocker vos règles dans un fichier:
# iptables-save> ~ / iptables.règles
C'est à vous de décider où allez-vous stocker le fichier et comment vous le nommez.
20. Restaurer les règles iptables d'un fichier
Si vous souhaitez restaurer une liste de règles iptables, vous pouvez utiliser iptables-restore
. La commande ressemble à ceci:
# iptables-restore < ~/iptables.rules
Bien sûr, le chemin vers votre fichier de règles peut être différent.
21. Configuration des règles iptables pour la conformité PCI
Certains administrateurs système pourraient être tenus de configurer leurs serveurs pour être compiliant PCI. Il existe de nombreuses exigences par différents fournisseurs de conformité PCI, mais il y en a peu de.
Dans de nombreux cas, vous devrez avoir plus d'une adresse IP. Vous devrez appliquer les règles ci-dessous pour l'adresse IP du site. Soyez très prudent lorsque vous utilisez les règles ci-dessous et utilisez-les uniquement si vous êtes sûr de ce que vous faites:
# iptables -i entrée -d Site -p TCP -M Multiport - Dports 21,25,110,143,465,587 993 995 -J Drop
Si vous utilisez CPanel ou un panneau de configuration similaire, vous devrez peut-être bloquer ses ports également. Voici un exemple:
# iptables -i in_sg -d dedi_ip -p TCP -M Multiport - Dports 2082 2083.2095.2096.2525.20862087 -J DROP
Note: Pour vous assurer de répondre aux exigences du fournisseur de votre PCI, vérifiez attentivement leur rapport et appliquez les règles requises. Dans certains cas, vous devrez peut-être également bloquer le trafic UDP sur certains ports.
22. Autoriser les connexions établies et connexes
Comme le trafic réseau est séparé sur le nouveau et le sort. Pour les connexions entrantes, faites-le avec:
# iptables -a entrée -m ConnTrack --ctstate établi, lié -J accepter
Pour une utilisation sortante:
# iptables -a sortie -m Conntrack --ctstate établi -j accepter
23. Déposez les paquets non valides en iptables
Il est possible d'avoir des paquets de réseau marqués comme non valides. Certaines personnes peuvent préférer enregistrer ces packages, mais d'autres préfèrent les laisser tomber. Pour laisser tomber les paquets invalides, vous pouvez utiliser:
# iptables -a entrée -m Conntrack --ctstate invalid -j Drop
24. Bloquer la connexion sur l'interface réseau
Certains systèmes peuvent avoir plus d'une interface réseau. Vous pouvez limiter l'accès à cette interface réseau ou bloquer les connexions à partir de certaines adresses IP.
Par exemple:
# iptables -a entrée -i eth0 -s xxx.xxx.xxx.xxx -j Drop
Changement «Xxx.xxx.xxx.xxx ” avec l'adresse IP réelle (ou le réseau) que vous souhaitez bloquer.
25. Désactiver les courriers sortants via iptables
Si votre système ne doit pas envoyer de courriels, vous pouvez bloquer les ports sortants sur les ports SMTP. Par exemple, vous pouvez utiliser ceci:
# iptables -a sortie -p tcp --DORTS 25,465,587 -j rejet
Conclusion
Iptables est un pare-feu puissant dont vous pouvez facilement bénéficier. Il est essentiel pour chaque administrateur système d'apprendre au moins les bases des iptables. Si vous souhaitez trouver des informations plus détaillées sur les iptables et ses options, il est fortement recommandé de lire son manuel:
# homme iptables
Si vous pensez que nous devons ajouter plus de commandes à cette liste, veuillez les partager avec nous, en les soumettant dans la section des commentaires ci-dessous.
- « 5 conseils pour augmenter les performances de votre serveur Web Apache
- Comment installer lampe (Linux, Apache, MariADB et PHP) sur le serveur Fedora 23 et le poste de travail »