Configuration IPTables et règles

IPtables:

Installation:

On installe d'abord iptables-persistent (paquet netfilter-persistent):

apt-get install iptables-persistent

(répondre oui aux questions)

Sauvegarder des règles:

iptables-save -c > /etc/iptables/rules.v4
ip6tables-save -c > /etc/iptables/rules.v6

l'attribut -c sert à conserver les compteurs

Restaurer des règles:

iptables-restore -c < /etc/iptables/rules.v4
ip6tables-restore -c < /etc/iptables/rules.v6

l'attribut -c sert à conserver les compteurs

Supprimer une règle précise de iptables:

iptables -D <chaine> <numéro de ligne>

Par exemple:

iptables -D fail2ban-sasl 1

Supprime la première règle de la chaine fail2ban-sasl


Fichiers rules.v*

nano /etc/iptables/rules.v4

# Generated by iptables-save v1.4.21 on Fri Mar 17 13:54:11 2017
# Modifié pour la dernière fois le 04/09/18 21:30
# iptables-restore remet implicitement à zéro toutes les règles

#---------------
# On ne s'occupe ici que de la table FILTER (de filtrage)
#---------------
*filter

#---------------
# Rèles de base on laisse tout sortir et Rien rentrer (Politique par défaut)
#---------------
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

#-----------------
# Règles en entrée
#-----------------
#_________________________________________
# On accepte la boucle locale (localhost).
#-----------------------------------------
-A INPUT -i lo -m comment --comment "Accepte le bouclage local" -j ACCEPT

#____________________________
# On accepte le réseau local.
#----------------------------
-A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -i eth0 -m comment --comment "Accepte le réseau local" -j ACCEPT

#_______________________________________________________________
# On supprime FIN,URG,PSH des paquets TCP qui ne servent à rien.
#---------------------------------------------------------------
-A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -m comment --comment "Supprime les flags FIN URG et PSH (inutiles)" -j DROP

#______________________________________________________________________
# On supprime des paquets TCP qui contienne tous les flags non définis.
#----------------------------------------------------------------------
-A INPUT -p tcp --tcp-flags ALL NONE -m comment --comment "Supprime tous les flags à zéro (inutiles)" -j DROP

#______________________________
# On accepte le protocole ICMP.
#------------------------------
-A INPUT -p icmp -m comment --comment "Accepte l'ICMP" -j ACCEPT

#______________________________
# On accepte le protocole IGMP.
#------------------------------
-A INPUT -p igmp -m comment --comment "Accepte l'IGMP" -j ACCEPT

#________________________________________________
# On accepte toutes les connexions déjà établies.
#------------------------------------------------
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "Accepter les connexions établies" -j ACCEPT

#________________________________________________
# On accepte le protocole TCP SSL sur le port 22.
#------------------------------------------------
-A INPUT -p tcp --dport 22 -m comment --comment "Accepte le SSH" -j ACCEPT

#_________________________________________________
# On accepte le protocole UDP NTP sur le port 123.
#-------------------------------------------------
-A INPUT -p udp --dport 123 -m comment --comment "Accepte le FTP" -j ACCEPT

## WEB ##
#_____________________________________________________
# On accepte le protocole TCP Web HTTP sur le port 80.
#-----------------------------------------------------
-A INPUT -p tcp --dport 80 -m comment --comment "Accepte le HTTP" -j ACCEPT
#________________________________________________________________
# On accepte le protocole TCP Web sécurisé HTTPS sur le port 443.
#----------------------------------------------------------------
-A INPUT -p tcp --dport 443 -m comment --comment "Accepte le HTTPS" -j ACCEPT
#
## FdS ##

## MDA ##
#_______________________________________________________
# On accepte le protocole TCP Mail IMAP sur le port 143.
#-------------------------------------------------------
-A INPUT -p tcp --dport 143 -m comment --comment "Accepte IMAP" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP Mail IMAP-SSL sur le port 993.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 993 -m comment --comment "Accepte l'IMAP-SSL" -j ACCEPT
#_______________________________________________________
# On accepte le protocole TCP Mail POP3 sur le port 110.
#-------------------------------------------------------
-A INPUT -p tcp --dport 110 -m comment --comment "Accepte le POP3" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP Mail POP3-SSL sur le port 995.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 995 -m comment --comment "Accepte le POP3-SSL" -j ACCEPT
#
## FdS ##

## MTA ##
#______________________________________________________
# On accepte le protocole TCP Mail SMTP sur le port 25.
#------------------------------------------------------
-A INPUT -p tcp --dport 25 -m comment --comment "Accepte le SMTP" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP Mail SMTP SSL sur le port 465.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 465 -m comment --comment "Accepte le SMTP SSL" -j ACCEPT
#__________________________________________________________________
# On accepte le protocole TCP Mail SMTP submission sur le port 587.
#------------------------------------------------------------------
-A INPUT -p tcp --dport 587 -m comment --comment "Accepte le SMTP avec chiffrement" -j ACCEPT
#
## FdS  ##

## DNS ##
#_______________________________________________________
# On accepte le protocole TCP et UDP DNS sur le port 53.
#-------------------------------------------------------
-A INPUT -p tcp --dport domain -m comment --comment "Accepte le DNS TCP" -j ACCEPT
-A INPUT -p udp --dport domain -m comment --comment "Accepte le DNS UDP" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP et UDP DNSSec sur le port 953.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 953 -m comment --comment "Accepte le DNSSec TCP" -j ACCEPT
-A INPUT -p udp --dport 953 -m comment --comment "Accepte le DNSSec UDP" -j ACCEPT
#
## FdS ##

## FTP ##
#_____________________________________________________
# On accepte le protocole TCP FTP sur le port 21 et 20
#-----------------------------------------------------
-A INPUT -p tcp --dport 21 -m comment --comment "Accepte le FTP" -j ACCEPT
-A INPUT -p tcp --dport 20 -m comment --comment "Accepte le FTP-data sur le port 20" -j ACCEPT
#__________________________________________________________________
# On accepte le protocole TCP FTP sur la plage de ports 5000 à 5100
#------------------------------------------------------------------
-A INPUT -p tcp --dport 5000:5100 -m comment --comment "Accepte le FTP passif sur la plage 5000-5100" -j ACCEPT
## FdS ##

#____________________________________________________________________
# On note les paquets qui vont être ignorés, ça peut toujours servir.
#--------------------------------------------------------------------
-A INPUT -j LOG --log-prefix "paquet_IPv4_inattendu "



COMMIT

A Faire !

nano /etc/iptables/rules.v6

# Generated by ip6tables-save v1.4.21 on Fri Mar 17 13:22:39 2017
# Modifié pour la dernière fois le 04/09/18 21:30
# iptables-restore remet implicitement à zéro toutes les règles

#---------------
# On ne s'occupe ici que de la table FILTER (de filtrage)
#---------------
*filter

#---------------
# Rèles de base on laisse tout sortir et Rien rentrer (Politique par défaut)
#---------------
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

#-----------------
# Règles en entrée
#-----------------
#_________________________________________
# On accepte la boucle locale (localhost).
#-----------------------------------------
-A INPUT -i lo -m comment --comment "Accepte le bouclage local" -j ACCEPT

#____________________________
# On accepte le réseau local.
#----------------------------
-A INPUT -s XXXX:XXXX:XXXX:XXXX::/56 -d XXXX:XXXX:XXXX:XXXX::/56 -i eth0 -m comment --comment "Accepte le réseau local en ipv6" -j ACCEPT

#________________________________________________
# On accepte toutes les connexions déjà établies.
#------------------------------------------------
-A INPUT -m state --state RELATED,ESTABLISHED -m comment --comment "Accepter les connexions établies" -j ACCEPT

#_______________________________________________________________
# On supprime FIN,URG,PSH des paquets TCP qui ne servent à rien.
#---------------------------------------------------------------
-A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -m comment --comment "Supprime les flags FIN URG et PSH (inutiles)" -j DROP

#______________________________________________________________________
# On supprime des paquets TCP qui contienne tous les flags non définis.
#----------------------------------------------------------------------
-A INPUT -p tcp --tcp-flags ALL NONE -m comment --comment "Supprime tous les flags à zéro (inutiles)" -j DROP

#______________________________________________________________________
# On accepte le protocole ICMP v6.
#----------------------------------------------------------------------
-A INPUT -p icmpv6 --icmpv6-type echo-request --match limit --limit 30/minute -m comment --comment "Accepte l'ICMPv6 avec limite de 30/min" -j ACCEPT

#______________________________________________________________________
# On accepte le protocole IGMP.
#----------------------------------------------------------------------
-A INPUT -p igmp -m comment --comment "Accepte l'IGMP" -j ACCEPT

#________________________________________________
# On accepte le protocole TCP SSL sur le port 22.
#------------------------------------------------
-A INPUT -p tcp --dport 22 -m comment --comment "Accepte le SSH" -j ACCEPT

#_________________________________________________
# On accepte le protocole UDP NTP sur le port 123.
#-------------------------------------------------
-A INPUT -p udp --dport 123 -m comment --comment "Accepte le FTP" -j ACCEPT

## WEB ##
#_____________________________________________________
# On accepte le protocole TCP Web HTTP sur le port 80.
#-----------------------------------------------------
-A INPUT -p tcp --dport 80 -m comment --comment "Accepte le HTTP" -j ACCEPT
#________________________________________________________________
# On accepte le protocole TCP Web sécurisé HTTPS sur le port 443.
#----------------------------------------------------------------
-A INPUT -p tcp --dport 443 -m comment --comment "Accepte le HTTPS" -j ACCEPT
#
## FdS ##

## MDA ##
#_______________________________________________________
# On accepte le protocole TCP Mail IMAP sur le port 143.
#-------------------------------------------------------
-A INPUT -p tcp --dport 143 -m comment --comment "Accepte IMAP" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP Mail IMAP-SSL sur le port 993.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 993 -m comment --comment "Accepte l'IMAP-SSL" -j ACCEPT
#_______________________________________________________
# On accepte le protocole TCP Mail POP3 sur le port 110.
#-------------------------------------------------------
-A INPUT -p tcp --dport 110 -m comment --comment "Accepte le POP3" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP Mail POP3-SSL sur le port 995.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 995 -m comment --comment "Accepte le POP3-SSL" -j ACCEPT
#
## FdS ##

## MTA ##
#______________________________________________________
# On accepte le protocole TCP Mail SMTP sur le port 25.
#------------------------------------------------------
-A INPUT -p tcp --dport 25 -m comment --comment "Accepte le SMTP" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP Mail SMTP SSL sur le port 465.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 465 -m comment --comment "Accepte le SMTP SSL" -j ACCEPT
#__________________________________________________________________
# On accepte le protocole TCP Mail SMTP submission sur le port 587.
#------------------------------------------------------------------
-A INPUT -p tcp --dport 587 -m comment --comment "Accepte le SMTP avec chiffrement" -j ACCEPT
#
## FdS  ##

## DNS ##
#_______________________________________________________
# On accepte le protocole TCP et UDP DNS sur le port 53.
#-------------------------------------------------------
-A INPUT -p tcp --dport domain -m comment --comment "Accepte le DNS TCP" -j ACCEPT
-A INPUT -p udp --dport domain -m comment --comment "Accepte le DNS UDP" -j ACCEPT
#___________________________________________________________
# On accepte le protocole TCP et UDP DNSSec sur le port 953.
#-----------------------------------------------------------
-A INPUT -p tcp --dport 953 -m comment --comment "Accepte le DNSSec TCP" -j ACCEPT
-A INPUT -p udp --dport 953 -m comment --comment "Accepte le DNSSec UDP" -j ACCEPT
#
## FdS ##

## FTP ##
#_____________________________________________________
# On accepte le protocole TCP FTP sur le port 21 et 20
#-----------------------------------------------------
-A INPUT -p tcp --dport 21 -m comment --comment "Accepte le FTP" -j ACCEPT
-A INPUT -p tcp --dport 20 -m comment --comment "Accepte le FTP-data sur le port 20" -j ACCEPT
#__________________________________________________________________
# On accepte le protocole TCP FTP sur la plage de ports 5000 à 5100
#------------------------------------------------------------------
-A INPUT -p tcp --dport 5000:5100 -m comment --comment "Accepte le FTP passif sur la plage 5000-5100" -j ACCEPT
## FdS ##

#____________________________________________________________________
# On note les paquets qui vont être ignorés, ça peut toujours servir.
#--------------------------------------------------------------------
-A INPUT -j LOG --log-prefix "paquet_IPv6_inattendu "  -m comment --comment "Log les paquets qui passent le filtre"



COMMIT