IPTABLES / NETFILTER / FAIL2BAN GMSI21 R

IPTABLES / NETFILTER / FAIL2BAN GMSI21 R


 Mise en place d’un Firewall (source alsacreations)

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

N’oubliez pas de tester vos régles !!! Exemples, elles pourraient vous empêcher d’accéder à votre accés ssh si elles sont trop restrictives.

N’oubliez pas non plus de redémarrer le sevice firewall aprés les modifs..

######################################################################

IPtables / Netfilter

IPtables (associé à Netfilter) est un des meilleurs firewalls 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)

######################################################################

Fail2ban

Fail2ban est un script surveillant les accès réseau grâce aux logs des serveurs. Lorsqu’il détecte des erreurs d’authentification répétées, il prend des contre-mesures en bannissant l’adresse IP grâce à iptables. Cela permet d’éviter nombre d’attaques bruteforce et/ou par dictionnaire.

Installation

apt-get install fail2ban

Configuration

vi /etc/fail2ban/fail2ban.conf

loglevel
Niveau de détail des logs (défaut 3)
logtarget = /var/log/fail2ban.log
Chemin vers le fichier de log (description des actions entreprises par fail2ban)

Les services à monitorer sont stockés dans jail.conf. Il est recommandé d’en effectuer une copie nommée jail.local qui sera automatiquement utilisée à la place du fichier exemple.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

vi /etc/fail2ban/jail.local

Quelques paramètres globaux :

ignoreip = 127.0.0.1
Liste des adresses IP de confiance à ignorer par fail2ban
bantime = 600
Temps de ban en secondes
maxretry = 3
Nombre d’essais autorisés pour une connexion avant d’être banni
destmail monitoring@test.com
Adresse e-mail destinataire des notifications
action
Action à entreprendre en cas de détection positive (voir dans /etc/fail2ban/action.d/)

Chaque section possède ses propres paramètres qui prennent le pas sur les globaux s’ils sont mentionnés :

enabled
Monitoring activé (true) ou non (false)
maxretry, bantime, ignoreip, destmail
Voir ci-dessus
port
Port IP concerné
logpath
Fichier de log à analyser pour détecter des anomalies
filter
Filtre utilisé pour l’analyser du log

Les filtres par défaut sont stockés dans /etc/fail2ban/filter.d. Ils contiennent en général une instruction failregex suivie d’une expression régulière matchant la détection d’une authentification erronée. Par exemple pour le service Courier :

failregex = LOGIN FAILED, ip=[<HOST>]$

Note : Celle-ci peut être précisée directement dans jail.local à la section appropriée pour prendre le pas sur la directive filter.

Modifiez les ports le cas échéant dans la section ssh si vous avez suivi la recommandation ci-dessus…

enabled = true
port    = 2222

Après modification de la configuration, n’oubliez pas de redémarrer fail2ban : /etc/init.d/fail2ban restart



www.pdf24.org    Envoyer l'article en PDF   
Posted on: 18 novembre 2021tontonfred