Iptables
Iptables

Iptables : 12 commandes à connaître

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.