Mise en oeuvre simple de iptable

Ce petit tuto est la pour une mise en eouvre assez minimaliste de iptable.

Nous pouvons deja voir avec cette commande si des regles sont en place :

  1. iptables -L -n

Nous devrions avoir ce type de resultat si nous avons aucune regle :

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Dans un premier temps, nous allons tout accepter sur l’adresse de loopback :

  1. iptables -A INPUT -i lo -j ACCEPT

La suite des actions sont realise sur l’interface de la carte reseau. Pour faciliter la suite du document, nous allons initialiser une variable contenant le nom de notre interface reseau (Dans mon cas eth0) :

  1. _ETHERNET="eth0"

Nous allons deja accepte toutes les requetes qui sont deja en statut etablis (cela evite de se faire killer :) ) :

  1. iptables -A INPUT -i ${_ETHERNET} -m state --state RELATED,ESTABLISHED -j ACCEPT

Nous autorisons a present les connexions SSH sur le port 22 :

  1. iptables -A INPUT -i ${_ETHERNET} -p tcp -m tcp --dport 22 -j ACCEPT

Nous allons activer une journalisation des paquets qui sont droppes pour ainsi aider a une analyse si quelques choses ne fonctionne pas :

  1. iptables -N LOGGING
  2. iptables -A INPUT -j LOGGING
  3. iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "iptables-dropped: "
  4. iptables -A LOGGING -j DROP

Télécharger

Tous les autres paquets sont a present droppe via cette commande :

  1. iptables -A INPUT -i ${_ETHERNET} -j DROP

Mise en place de la persistance de notre configuration :

  1. aptitude install iptables-persistent
  2. iptables-save > /etc/iptables/rules.v4

Télécharger

la derniere commande iptables-save sera a refaire a chaque ajout/modification de regle iptables si nous ne voulons pas les perdre lors d’un reboot.

Configuration de syslog pour avoir un fichier de log particulier pour les DROP :

  1. sed -i 's/^#\(.*imklog.*\)/\1/'g /etc/rsyslog.conf
  2. printf ":msg, contains, \"iptables-dropped\" /var/log/iptables.log\n& stop\n" >> /etc/rsyslog.d/iptables.conf
  3. systemctl restart rsyslog

Télécharger

Mise en place d’une rotation de cette log :

  1. printf "/var/log/iptables.log\n{\n\trotate 4\n\tweekly\n\tmissingok\n\tnotifempty\n\tcompress\n\tdelaycompress\n\tsharedscripts\n\tpostrotate\n\t\tinvoke-rc.d rsyslog rotate > /dev/null\n\tendscript\n}\n" >> /etc/logrotate.d/iptables
  2. printf "OK\n"

Télécharger