Iptables ~ Construire un firewall pour son ordinateur

Après ce premier article de la série Iptables (disponible ici), nous allons maintenant voir comment mettre toutes ces bases en pratique pour se construire une firewall personnel protégeant sa machine. Celui bloquera touets les connexions, en ne laissant passer que certains ports selon le statut de la connexion.

On n’aura besoin ici que de la table filter, et toutes les règles sont à adapter selon les besoins et les ports nécessaires.

Réinitialiser Iptables

Avant de commencer à paramétrer iptables, il faut faire un script de remise à 0 pour désactiver toutes les règles

touch /etc/firewall-clean
chmod +x /etc/firewall-clean

/etc/firewall-clean

#!/bin/bash

iptables -t filter -F FORWARD
iptables -t filter -F INPUT
iptables -t filter -F OUTPUT

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT

Ainsi, si on veut supprimer toutes les règles et tout accepter, comme cela est le cas au démarrage du serveur, il suffit de lancer ce script

sh /etc/firewall-clean

Vider les tables, bloquer les connexions par défaut, et créer quelques règles pour son firewall

Il faut créer un fichier contenant toutes nos règles et le rendre exécutable

touch /etc/firewall
chmod +x /etc/firewall

/etc/firewall

#!/bin/sh
## on vide toutes les chaines
iptables -t filter -F FORWARD
iptables -t filter -F INPUT
iptables -t filter -F OUTPUT

## on bloque tout par défaut
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP

## on accepte les connexions qui ont été initialisées en respectant une des règles du firewall (à activer seulement si besoin)
#iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -t filter -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

## on autorise l'interface locale
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

## on autorise le ping (si on ne veut que entrer/sortir, mettre NEW seulement à INPUT/OUTPUT)
iptables -t filter -A INPUT -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

## on autorise les résolutions DNS
iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

## on autorise le SSH (si on ne veut que entrer/sortir, mettre NEW seulement à INPUT/OUTPUT) 
iptables -t filter -A INPUT -p tcp --dport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

## on autorise le ftp, le http, et le https pour sortir sur le web
iptables -t filter -A INPUT -p tcp -m multiport --sport 21,80,443 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m multiport --dport 21,80,443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

## on autorise l'imap, le pop et le smtp avec leurs ports sécurisés (ssl) pour les clients mails
iptables -t filter -A INPUT -p tcp -m multiport --sport 25,110,143,465,993 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m multiport --dport 25,110,143,465,993 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

## on autorise msn, jabber et irc pour la messagerie instantanée
iptables -t filter -A INPUT -p tcp -m multiport --sport 1863,5222,5223,6667,6891:6900 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m multiport --dport 1863,5222,5223,6667,6891:6900 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

## on autorise bittorrent pour le transfert de fichiers
iptables -t filter -A INPUT -p tcp -m multiport --sport 6881:6889 -m state ! --state INVALID -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m multiport --dport 6881:6889 -m state ! --state INVALID -j ACCEPT

Il suffit de lancer ce script pour activer toutes les règles définies ci dessus

sh /etc/firewall

Pour revenir en arrière et annuler toutes ces modifications, lancer le script de réinitialisation vu à l’étape précédente.

Iptables ~ Construire un firewall pour son ordinateur : Construire son firewall avec iptables pour protéger son ordinateur. Script d'exemple pour des besoins personnels courants. was modified:

Articles en relation :

Leave a comment

name*

email* (not published)

website