FireWall Netfilter

Nous allons voir l'installation de IPtables / Netfilter :

 

L'installation est inutile car depuis la version 2.4 du noyau Debian, Netfilter est compilé dans celui-ci !!

IPtables (associé à Netfilter) est un des meilleurs firewall pour Linux, et certainement le plus répandu. Vous pourrez trouver de nombreux scripts de configuration à son sujet. En voici un, à adapter à votre configuration. A tout instant, utilisez la commande iptables -L -v pour lister les règles en place.

Celles-ci portent sur 3 chaînes : INPUT (en entrée), FORWARD (dans le cas d'un routage réseau) et OUPUT (en sortie). Les actions à entreprendre sont ACCEPT (accepter le paquet), DROP (le jeter), QUEUE et RETURN.

Arguments utilisés :

i : interface d'entrée (input)
i : interface de sortie (output)
t : table (par défaut filter contenant les chaînes INPUT, FORWARD, OUTPUT)
j : règle à appliquer (Jump)
A : ajoute la règle à la fin de la chaîne (Append)
I : insère la règle au début de la chaîne (Insert)
R : remplace une règle dans la chaîne (Replace)
D : efface une règle (Delete)
F : efface toutes les règles (Flush)
X : efface la chaîne
P : règle par défaut (Policy)
lo : localhost (ou 127.0.0.1, machine locale)

Nous allons créer un script qui sera lancé à chaque démarrage pour mettre en place des règles de base.

#vi /etc/init.d/firewall

#!/bin/sh

# Vider les tables actuelles
iptables -t filter -F

# Vider les règles personnelles
iptables -t filter -X

# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

# ---

# 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

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# ---

# SSH In
iptables -t filter -A INPUT -p tcp --dport 2222 -j ACCEPT

# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 2222 -j ACCEPT

# DNS In/Out
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 INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

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

Si vous hébergez un sevreur web (Apache) :

# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT

Si vous hébergez un serveur FTP :

# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Si vous hébergez un serveur de mail avec SMTP, POP3 et IMAP :


# Mail SMTP:25
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3:110
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

# Mail IMAP:143
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

# Mail POP3S:995
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

Si vous utilisez un serveur Dedibox avec le monitoring DMA, autorisez ces connexions :


# DMA Monitoring Dedibox
iptables -A INPUT -i eth0 -s 88.191.254.0/24 -p tcp --dport 161 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s 88.191.254.0/24 -p udp --dport 161 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 88.191.254.0/24 -p tcp --sport 161 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 88.191.254.0/24 -p udp --sport 161 -m state --state ESTABLISHED -j ACCEPT

Si vous utilisez l'outil de monitoring Monit sur le port 1337 (à modifier selon votre configuration) autorisez cette connexion :

# Monit
iptables -t filter -A INPUT -p tcp --dport 1337 -j ACCEPT

Si vous utilisez un serveur RPS d'OVH, le disque iSCSI nécessite un accès réseau qui rend obligatoire une règle supplémentaire au début des filtres. Sans cela, votre serveur deviendra inutilisable :

iptables -A OUTPUT -p tcp --dport 3260 -m state --state NEW,ESTABLISHED -j ACCEPT

Lorsque vous avez défini toutes les règles, rendez ce fichier exécutable :

#chmod +x /etc/init.d/firewall

! Vous pourrez le tester en l'exécutant directement en ligne de commande. Assurez-vous d'avoir toujours le contrôle de votre machine (reconnectez-vous en SSH, vérifiez la disponibilité des services web, ftp, mail...).!

warning En cas d'erreur redémarrez le serveur, les règles seront oubliées et vous permettront de reprendre la main. warning

En revanche, si les tests s'avèrent concluants, ajoutez le script au démarrage pour que celui-ci protège le serveur dès le boot.

Afin de l'ajouter aux scripts appelés au démarrage :

#update-rc.d firewall defaults

Pour le retirer, vous pouvez utiliser la commande suivante :

#update-rc.d -f firewall remove

Redémarrez, ou exécutez /etc/init.d/firewall pour activer le filtrage.

N'oubliez pas de tester vos règles. Un mauvais choix peut entraîner une indisponibilité de votre serveur ou une perte de contrôle sur celui-ci avec le blocage de votre connexion SSH.

Vous pouvez utiliser IPtables sans passer par un script de démarrage et entrer directement les instructions en mode console. Pour bannir temporairement une adresse IP en cas de nécessité,

utilisez la commande iptables -A INPUT -s adresse_ip -j DROP

 

Off

Rechercher

RizVN Login

Calendar

September 2017
S M T W T F S
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Traffic

Aujourd'hui156
Hier258
Cette semaine414
Ce mois1638
Total184783

Info Visiteur

  • IP Visiteur : 54.225.3.207

Qui est connecté
1
Online

mardi 19 septembre 2017 13:27