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 :
- 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 :
- 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) :
- _ETHERNET="eth0"
Nous allons deja accepte toutes les requetes qui sont deja en statut etablis (cela evite de se faire killer :) ) :
- iptables -A INPUT -i ${_ETHERNET} -m state --state RELATED,ESTABLISHED -j ACCEPT
Nous autorisons a present les connexions SSH sur le port 22 :
- 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 :
- iptables -N LOGGING
- iptables -A INPUT -j LOGGING
- iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "iptables-dropped: "
- iptables -A LOGGING -j DROP
Tous les autres paquets sont a present droppe via cette commande :
- iptables -A INPUT -i ${_ETHERNET} -j DROP
Mise en place de la persistance de notre configuration :
- aptitude install iptables-persistent
- iptables-save > /etc/iptables/rules.v4
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 :
- sed -i 's/^#\(.*imklog.*\)/\1/'g /etc/rsyslog.conf
- printf ":msg, contains, \"iptables-dropped\" /var/log/iptables.log\n& stop\n" >> /etc/rsyslog.d/iptables.conf
- systemctl restart rsyslog
Mise en place d’une rotation de cette log :
- 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
- printf "OK\n"