25 Plus fréquemment utilisé des exemples de règles IPTables de Linux

Dans les dessous exemples nous utilisons ETH0 comme interface réseau, Cependant le nom de votre interface peut également être appelée VENET0:0

Veuillez exécuter :

ifconfig

pour déterminer le nom correct.

1. Supprimer les règles existantes

Avant de commencer à construire le nouvel ensemble de règles, vous pouvez nettoyer toutes les règles par défaut, et règles en vigueur. Utilisez la commande flush iptables comme indiqué ci-dessous pour cela.

iptables -F
(or)
iptables --flush

2. Politiques de chaîne par défaut

La stratégie de chaîne par défaut est ACCEPT. Changer cela en baisse pour toutes les entrées, VERS L’AVANT, et la sortie des chaînes comme indiqué ci-dessous.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Lorsque vous faites les deux entrées, et la stratégie par défaut de la chaîne comme chute de sortie, pour chaque condition de règle de pare-feu, vous devez, vous devez définir deux règles. C’est à dire un pour entrant et sortant.

Dans tous nos exemples ci-dessous, Nous avons deux règles pour chaque scénario, comme nous avons mis en baisse comme stratégie par défaut pour la chaîne d’entrée et de sortie.

Si vous faites confiance à vos utilisateurs internes, vous pouvez omettre la dernière ligne du dessus. C’est à dire ne pas faire tomber tous les paquets sortants par défaut. Dans ce cas, pour chaque condition de règle de pare-feu, vous devez, Il suffit de ne définir qu’une seule règle. C’est à dire définir la règle que pour les entrants, le sortant est accepter pour tous les paquets.

3. Bloquer une adresse ip spécifique

Avant d’aller plus loin sera autres exemples, Si vous souhaitez bloquer une adresse ip spécifique, vous devriez faire cela d’abord comme indiqué ci-dessous. Changer le « x.x.x.x » dans l’exemple suivant pour l’adresse ip spécifique que vous souhaitez bloquer.

BLOCK_THIS_IP="x.x.x.x"
iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP

Ceci est utile lorsque vous avez trouvé quelques activités étranges depuis une adresse ip spécifique dans vos fichiers journaux, et vous voulez bloquer temporairement cette adresse ip pendant que vous réaliser des recherches supplémentaires.

Vous pouvez également utiliser une des variantes suivantes, qui bloque le trafic TCP uniquement sur eth0 connexion pour cette adresse ip.

iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP
iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

4. Permettre à tous les entrants SSH

Les règles suivantes permettent entrant toutes les connexions sur l’interface eth0.

iptables-a INPUT -i eth0 -p tcp--dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m État--État établi -j ACCEPT

5. Permettre aux entrants SSH uniquement par un réseau de Sepcific

Les règles suivantes permettent d’entrants ssh que la connexion des 192.168.100.X réseau.

iptables-a INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m État--État établi -j ACCEPT

Dans l’exemple ci-dessus, Au lieu de /24, vous pouvez également utiliser le masque de sous-réseau complet. C’est à dire « 192.168.100.0/255.255.255.0″.

6. Permettre entrant HTTP et HTTPS

Les règles suivantes permettent de tout le trafic web entrant. C’est à dire HTTP trafic au port 80.

iptables-a INPUT -i eth0 -p tcp--dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m État--État établi -j ACCEPT

Les règles suivantes permettent le trafic web sécurisé tout entrant. C’est à dire le trafic HTTPS au port 443.

iptables-a INPUT -i eth0 -p tcp--dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m État--État établi -j ACCEPT

7. Combiner plusieurs règles ensemble à l’aide de la carte multiport

Lorsque vous autorisez des connexions entrantes du monde extérieur à ports multiples, au lieu d’écrire des règles individuelles pour chaque port, vous pouvez les combiner ensemble à l’aide de l’extension multiport comme indiqué ci-dessous.

L’exemple suivant permet à tous les entrants SSH, Trafic HTTP et HTTPS.

iptables-a INPUT -i eth0 -p tcp -m multiport--dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m État--État établi -j ACCEPT

8. Sortant SSH

Les règles suivantes permettent de sortants connexion ssh. C’est à dire lorsque vous ssh depuis l’intérieur vers un serveur extérieur.

iptables-a OUTPUT -o eth0 -p tcp--dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m État--État établi -j ACCEPT

Veuillez noter que ceci est légèrement différente de la règle entrante. C’est à dire nous permettons état ESTABLISHED tant NEW sur la chaîne de sortie, et seul l’état ESTABLISHED sur la chaîne d’entrée. Pour la règle entrante, Il est vice versa.

9. Permettre aux sortants SSH uniquement à un réseau spécifique

Les règles suivantes sortant ssh connexion uniquement à un réseau spécifique. C’est à dire vous un ssh uniquement à 192.168.100.0/24 réseau de l’intérieur.

iptables-a OUTPUT -o eth0 -p tcp -d 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m État--État établi -j ACCEPT

10. Permettre à HTTPS sortant

Les règles suivantes permettent le trafic sortant web sécurisé. Ceci est utile lorsque vous souhaitez autoriser le trafic internet pour vos utilisateurs. Sur les serveurs, ces règles sont également utiles lorsque vous souhaitez utiliser wget pour télécharger des fichiers depuis un autre.

iptables-a OUTPUT -o eth0 -p tcp--dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m État--État établi -j ACCEPT

Remarque : Pour HTTP sortant web trafic, Ajouter deux règles supplémentaires comme ci-dessus, et le changement 443 À 80.

11. Charge équilibrer le trafic Web entrant

Vous pouvez également équilibrer les charges votre trafic web entrant à l’aide de règles de pare-feu iptables.

Cet exemple utilise l’extension nth iptables. La charge exemple suivant équilibre le trafic HTTPS à trois adresses ip différentes. Pour chaque paquet de 3, Il est à charge équilibrée vers le serveur approprié (à l’aide du compteur 0).

iptables - A PREROUTING -i eth0 -p tcp--dport 443 -m État--État nouveau -m nième--compteur 0 --chaque 3 --paquet 0 -j DNAT--vers la destination 192.168.1.101:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m État--État nouveau -m nième--compteur 0 --chaque 3 --paquet 1 -j DNAT--vers la destination 192.168.1.102:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m État--État nouveau -m nième--compteur 0 --chaque 3 --paquet 2 -j DNAT--vers la destination 192.168.1.103: 443

12. Autoriser le Ping de l’extérieur à l’intérieur

Les règles suivantes permettent à l’extérieur des utilisateurs pour pouvoir faire un ping de vos serveurs.

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

13. Autoriser le Ping de l’intérieur vers l’extérieur

Les règles suivantes vous permettent de faire un ping de l’intérieur vers un des serveurs à l’extérieur.

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

14. Permettre l’accès de Loopback

Vous devez autoriser loopback plein accès sur vos serveurs. C’est à dire l’accès à l’aide 127.0.0.1

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

15. Permettre de réseau interne vers le réseau externe.

Sur le serveur de pare-feu où une carte ethernet est connectée à l’externe, et une autre carte ethernet connecté aux serveurs internes, Utilisez les règles suivantes pour permettre de parler de réseau interne vers le réseau externe.

Dans cet exemple, eth1 est reliée au réseau externe (internet), et eth0 est connecté au réseau interne (par exemple : 192.168.1.x).

iptables-a FORWARD -i eth0, eth1 -o -j ACCEPT

16. Permettre à DNS sortante

Les règles suivantes permettent les connexions sortantes de DNS.

iptables-a OUTPUT -p udp -o eth0--dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

17. Autoriser les connexions de NIS

Si vous exécutez NIS pour gérer vos comptes d’utilisateurs, vous devez autoriser les connexions de NIS. Même si la connexion SSH est autorisée, Si vous n’autorisez pas les États nouvellement indépendants associés ypbind connexions, les utilisateurs ne sera pas capables de se connecter.

Les ports de NIS sont dynamiques. C’est à dire lorsque l’ypbind démarre, il alloue les ports.

Tout d’abord faire un rpcinfo -p comme indiqué ci-dessous et obtenir les numéros de port. Dans cet exemple, il utilisait le port 853 et 850.

rpcinfo -p | grep ypbind

Maintenant permettent une connexion entrante au port 111, et les ports qui ont été utilisés par ypbind.

iptables-a INPUT -p tcp - dport 111 -j ACCEPT
iptables -A INPUT -p udp --dport 111 -j ACCEPT
iptables -A INPUT -p tcp --dport 853 -j ACCEPT
iptables -A INPUT -p udp --dport 853 -j ACCEPT
iptables -A INPUT -p tcp --dport 850 -j ACCEPT
iptables -A INPUT -p udp --dport 850 -j ACCEPT

Ce qui précède ne fonctionne pas lorsque vous redémarrez l’ypbind, car il aura des numéros de port différents cette fois.

Il y a deux solutions pour cela : 1) Utilisez l’adresse ip statique pour votre NIS, ou 2) Utiliser certains intelligent shell scripts techniques pour saisir automatiquement le numéro de port dynamique de la « rpcinfo -p » sortie de la commande, et les utiliser dans les règles d’iptables ci-dessus.

18. Permettre à Rsync d’un réseau spécifique

Les règles suivantes permet de rsync uniquement par un réseau spécifique.

iptables-a INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m État--État établi -j ACCEPT

19. Autoriser la connexion MySQL uniquement par un réseau spécifique

Si vous utilisez MySQL, généralement, vous ne voulez pas autoriser la connexion directe de dehors. Dans la plupart des cas, vous pourriez avoir des serveur web s’exécutant sur le même serveur où la base de données MySQL fonctionne.

Cependant DBA et développeurs devrez peut-être vous connecter directement à MySQL depuis leur ordinateur portable et de bureau en utilisant le client MySQL. Dans ces cas, vous pouvez autoriser votre réseau interne parler à la MySQL directement comme indiqué ci-dessous.

iptables-a INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m État--État établi -j ACCEPT

20. Permettre à Sendmail ou Postfix de trafic

Les règles suivantes autorisent le trafic de courrier. Il peut être sendmail ou postfix.

iptables-a INPUT -i eth0 -p tcp--dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m État--État établi -j ACCEPT

21. Permettre l’IMAP et IMAPS

Les règles suivantes permettent de IMAP/IMAP2 trafic.

iptables-a INPUT -i eth0 -p tcp--dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 143 -m État--État établi -j ACCEPT

Les règles suivantes permettent de trafic IMAPS.

iptables-a INPUT -i eth0 -p tcp--dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 993 -m État--État établi -j ACCEPT

22. Permettre à POP3 et POP3S

Les règles suivantes permettent l’accès POP3.

iptables-a INPUT -i eth0 -p tcp--dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 110 -m État--État établi -j ACCEPT

Les règles suivantes permettent un accès POP3S.

iptables-a INPUT -i eth0 -p tcp--dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 995 -m État--État établi -j ACCEPT

23. Empêcher les attaques DoS

La règle iptables suivante vous aidera à prévenir l’attaque par déni de Service (DoS) sur votre serveur Web.

iptables-a INPUT -p tcp - dport 80 -limite de m--limite 25/minute--limit-burst 100 -j ACCEPT

Dans l’exemple ci-dessus :

  • -m limite : cette option utilise l’extension d’iptables limite
  • – limiter 25/minute : ce qui limite au maximum seulement 25 connexion / minute. Modifiez cette valeur basée sur vos besoins spécifiques
  • -limite-rafale 100: Cette valeur indique que la limite/minute sera appliquée qu’après le nombre total de connexion ont atteint le niveau de limit-burst.

24. Redirection de port

L’exemple suivant achemine tout le trafic qui vient au port 442 À 22. Cela signifie que les entrants ssh connection peut provenir de deux port 22 et 422.

iptables -t nat-a PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT--à 192.168.102.37: 22

Si vous faites ce qui précède, vous devez également autoriser explicitement une connexion entrante sur le port 422.

iptables-a INPUT -i eth0 -p tcp--dport 422 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m État--État établi -j ACCEPT

25. Enregistrer les paquets ignorés

Vous pouvez également connecter tous les paquets ignorés. Ces règles devraient être en bas.

Première, créer une nouvelle chaîne de journalisation.

iptables -N LOGGING

Prochaine, Assurez-vous que toutes les connexions entrantes autres sautent à la chaîne de journalisation comme indiqué ci-dessous.

iptables-a INPUT -j LOGGING

Prochaine, journaliser ces paquets en spécifiant une coutume « log-prefix ».

iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7

Enfin, abandonne ces paquets.

iptables-a LOGGING -j DROP

Laisser une réponse