1. S´ecuriser votre serveur Linux avec IPTables
Boubakr NOUR
12 D´ecembre 2012
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables
2. D´efinitions
Firewall
Logiciel de contrˆole d’acc`es au niveau du r´eseau
Mais pratiquement:
Fonctionnalit´e principale: filtrage IP
Fonctionnalit´e suppl´ementaire: traduction d’adresses et de
ports
Filtrage IP
Id´ee: contrˆoler les paquets IP autoris´es `a atteindre un hˆote
Int´erˆet: s´ecuriser un hˆote de fa¸con globale (au niveau r´eseau)
Traduction d’adresses et de ports
Id´ee: r´e´ecrire les en-tˆetes des paquets
Int´erˆet: faire face `a la p´enurie d’adresses routables sur
l’Internet
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables
3. D´efinitions de IPTables
IPTables est un outil Linux (exclusivement) pour g`erer le pare-feu
qui est int´egr´e au noyau Linux 2.4 (et sup`erieur). L’architecture du
noyau pour le syst`eme de pare-feu s’appelle netfilter.
Le principe de fonctionnement est simple, lorsque la carte r´eseau
recoit un paquet celui-ci est transmis `a la partie netfilter du noyau.
Netfilter va ensuite ´etudier ce paquet (les entˆetes et le contenu) et
en se basant sur des r`egles que l’administrateur aura d´efini, il va
choisir de laisser passer le paquet intact, de modfier ce paquet, de
le transmettre `a une autre machine ou encore d’interdire le passage.
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables
4. Principe de base
IPTables s’organise par tables
Chaque table contient une s´erie de chaˆınes de r`egles
Il existe 3 tables principales:
Filtre: correspond aux notions de filtrage r´eseaux
(accepter/refuser un paquet) contient les chaˆınes INPUT,
FORWARD et OUTPUT (table par d´efaut)
NAT: correspond `a des fonctions de routage (pour monter une
passerelle par exemple) s’occupe de la conversion d’adresse de
r´eseau. Contient les chaˆınes PREROUTING, OUTPUT et
POSTROUTING.
Mangle: est utilis´ee pour modifier les paquets permet une
modification des paquets `a la vol´ee. Contient les chaˆınes
PREROUTING et OUTPUT.
Les r`egles de chaque chaˆıne d´ependent de leur ordre. Quand
un paquet arrive, il est compar´e aux r`egles de la chaˆıne depuis
la premi`ere jusqu’`a la derni`ere.
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables
5. Principe de base
Chacune de ces chaˆınes peut donner plusieurs r´eponses possibles
pour paquet :
ACCEPT: le paquet est accept´e
DROP: le paquet est refus´e , on l’efface et on ne r´epond rien
REJECT: le paquet est refus´e et on signale le rejet `a
l’exp´editeur
Remarque
Pour forward les paquets on doit allower ip forward
echo 1 >/proc/sys/net/ipv4/ip forward
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables
6. Installations
Installations
# apt-get install iptables
# yum install -y iptables
D´emarage
# service start iptable
# systemctl start iptables
Arr´eter
# service stop iptable
# systemctl stop iptables
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables
7. Exemples
Supprimer tous les r´egles
iptables -F
iptables -X
Allow SSH
iptables -A INPUT -i ${PUB IF} -p tcp –destination-port 22 -j ACCEPT
Ouvrire le port 110 (pop3)
iptables -A INPUT -i ${PUB IF} -p tcp –destination-port 110 -j ACCEPT
Blocker les Null Paquets
iptables -A INPUT -i ${PUB IF} -p tcp –tcp-flags ALL NONE -m limit
–limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix ”NULL Packets”
Boubakr NOUR S´ecuriser votre serveur Linux avec IPTables