Aller au contenu
Vie du geek le forum entre geek
dokkun

Pare-feu avec iptables

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×