Iptables est un pare-feu en ligne de commande sous Linux qui permet aux administrateurs système de gérer le trafic entrant et sortant via un ensemble de règles.
La gestion du trafic réseau est considéré l’un des emplois les plus difficiles auxquels les administrateurs système doivent faire face, Il l’a la mission de configurer le pare-feu de manière à ce qu’il réponde aux politique de sécurité de la société pour les connexions entrantes et sortantes, sans laisser le système vulnérable aux attaques.
Dans cet guide, vous verrez quelques commandes utiles qui vous aideront à gérer bien votre pare-feu Linux via iptables.
1-Start/Restart/status du par-feu :
[root@server ~]# systemctl start iptables.service [root@server ~]# systemctl stop iptables.service [root@server ~]# systemctl restart iptables.service [root@server ~]# systemctl status iptables.service
2-Vérifiez toutes les règles de pare-feu Iptables :
Si vous souhaitez vérifier vos règles existantes, utilisez la commande suivante :
[root@server ~]# iptables -L -n -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 2189 901K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 3 110 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 239 29956 INPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 281 packets, 29170 bytes) pkts bytes target prot opt in out source destination 6 304 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 2044 258K OUTPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_direct all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_IN_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
3-Bloquer une adresse IP spécifique :
Supposant que vous avez remarqué une activité anormale depuis une adresse IP, pour pouvez la bloquer avec la commande ci-dessous :
[root@server ~]#iptables -A INPUT -s @IP -j DROP
4-Bloquer le trafic TCP d’une adresse IP :
[root@server ~]# iptables -A INPUT -p tcp -s @IP -j DROP
5-Débloquer une adresse IP :
Si après avoir bloqué une adresse IP, vous estimez qu’elle n’est pas à l »origine d’une attaque, vous pouvez la débloquer avec la commande :
[root@server ~]# iptables -D INPUT -s @IP -j DROP ou bien # iptables --delete INPUT -s @IP -j DROP
6-Bloquer un port spécifique:
C’est une bonne mesure de sécurité de bloquer les connexions entrante et sortante au niveau d’un port , pour cela utiliser la commande ci-dessous :
Pour bloquer les connexions entrante sur un port ( trafic TCP):
# iptables -A OUTPUT -p tcp --dport port -j DROP
Pour bloquer les connexions sortante sur un port ( trafic TCP):
# iptables -A INPUT -p tcp --dport port -j ACCEPT
remplacer tcp par udb s’il s’agit d’un trafic UDP.
7-Autoriser les connexion sur plusieurs ports :
Avec « multiport » vous pouvez autoriser ou bloquer les connexion entrante et sortante sur plusieurs ports en même temps :
# iptables -A INPUT -p tcp -m multiport --dports 21,25,443 -j ACCEPT # iptables -A OUTPUT -p tcp -m multiport --sports 21,25,443 -j ACCEPT
8- Autoriser une plage d’adresses sur un port particulier :
L’exemple ci-dessous autorise les connexions sortante du réseau 192.168.5.0/24 sur le port 25 :
# iptables -A OUTPUT -p tcp -d 192.168.5.0/24 --dport 25 -j ACCEPT
9-Bloquer l’accès un site web :
Supposant que la politique de sécuriser de votre entreprise interdise l’accès au réseau sociaux comme Facebook, pour y bloquer l’accès utiliser les commande ci-dessous :
-Trouver d’abord l’adresse IP du Facebook.com :
[root@server ~]# host facebook.com facebook.com has address 31.13.83.36 facebook.com has IPv6 address 2a03:2880:f104:83:face:b00c:0:25de facebook.com mail is handled by 10 smtpin.vvv.facebook.com.
-Trouver le CIDR :
[root@server ~]# whois 31.13.83.36 | grep CIDR CIDR: 66.220.144.0/20
Vous pouvez ensuite bloquer l’accès au réseau Facebook :
[root@server ~]# iptables -A OUTPUT -p tcp -d 66.220.144.0/20 -j DROP
10-Transmettre du trafic à un autre port :
La commande ci-dessous transmet tout le trafic entrant sur l’interface réseau eth1, du port 21 au port 2021 :
[root@server ~]# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 21 -j REDIRECT --to-port 2021
11-Bloquer les requêtes ping :
Pour des raisons de sécurité, il est préférable de bloquer les requêtes ping (icmp), il suffit de taper la commande ci-dessous :
# iptables -A INPUT -p icmp -i eth0 -j DROP
12-Bloquer une adresse MAC spécifique :
# iptables -A INPUT -m mac --mac-source 2A:FF:05:CE:B3:00 -j DROP
Voilà c’est la fin de ce guide, il existe bien évidement d’autre commandes que je vous suggère d’y jeter un coup d’œil avec la commande man iptables, ou ici.
nmap : les 12 commandes que vous devez connaître
Virsh : La gestion des Vm en ligne de commande
Netstat : Les 14 commandes les plus utilisées
DNS round robin
Fail2Ban : How to protect Linux services