Aller au contenu
Couillaman le site une demo bientot ! ×

Pare-feu avec iptables


dokuro
 Share

Messages recommandés

Maintenant que l'installation de base est faite, voici un script de Pare-feu via iptables, à adapter selon la configuration et services actifs sur le serveur et des ports utilisés. J'ai séparé le code en plusieurs parties mais tout ceci est dans un seul et unique script que l'on va nommer firewall.sh ou quelque chose comme ça, à placer dans le dossier /root 

Attention, de mauvaises règles de pare-feu peuvent boquer l'accès à votre serveur !

# nano /root/firewall.sh

#!/bin/bash

# Vider les tables

iptables -t filter -F

iptables -t filter -X

# Ne pas casser les connexions etablies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

On passe aux autorisations

# Autoriser NTP

iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

# Autoriser loopback

iptables -t filter -A INPUT -i lo -j ACCEPT

iptables -t filter -A OUTPUT -o lo -j ACCEPT

# Autoriser ping

iptables -t filter -A INPUT -p icmp -j ACCEPT

iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# HTTP et HTTPS

iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT

# Serveur FTP

iptables -t filter -A OUTPUT -p tcp --dport 20 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 20 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Serveur DNS

iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 953 -j ACCEPT

iptables -t filter -A OUTPUT -p udp --dport 953 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 953 -j ACCEPT

iptables -t filter -A INPUT -p udp --dport 953 -j ACCEPT

Pour le filtrage des ports liés aux emails, ici il y a tous les ports utiles pour le smtp de base ou alternatif, pop, imap, smtps, etc etc... A adapter selon les besoin !

# Autoriser les services Mail

iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 783 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 465 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 587 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 993 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 2703 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 5025 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 783 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 2703 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 5025 -j ACCEPT

Autorise la connexion à Webmin sur un port personnalisé, par exemple le 17170

Sinon, le port par défaut de Webmin est le 10000

# Webmin

iptables -t filter -A INPUT -p tcp --dport 17170 -j ACCEPT

iptables -t filter -A OUTPUT -p tcp --dport 17170 -j ACCEPT

 

Autorisation pour SSH sur un port personnalisé, par exemple le 22222

Sinon, le port SSH par défaut est le 22

# Autoriser SSH

iptables -t filter -A INPUT -p tcp --dport 22222 -m recent --rcheck --seconds 60 --hitcount 2 --name SSH -j LOG --log-prefix "SSH REJECT"

iptables -t filter -A INPUT -p tcp --dport 22222 -m recent --update --seconds 60 --hitcount 2 --name SSH -j DROP

iptables -t filter -A INPUT -p tcp --dport 22222 -m state --state NEW -m recent --set --name SSH -j ACCEPT

 

Il n'y a là que la base afin d'ouvrir uniquement les ports nécessaires à l'activité web.

Didacticiel très complet sur iptables: http://www.frozentux.net/iptables-tutorial/fr/book1.html

Une fois firewall.sh correctement renseigné, il faut rendre le script exécutable

# chmod +x /root/firewall.sh

Et ensuite l'exécuter

# sh /root/firewall.sh

 

Puis vérifier que les règles du pare-feu sont correctement chargées.

# iptables -L

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Share

×
×
  • Créer...