Outils pour utilisateurs

Outils du site


netadmin:firewalld-activer-masquerading

firewalld : Configurer l' IP masquerade

Ici on souhaite autoriser le transfert des paquets de la zone internal vers la zone external en activant l'IP masquerading.

La machine sert alors de passerelle avec la spécificité du masquerading : c'est l'IP de l'interface associée à la zone external qui est utilisée. Les interfaces et réseaux associés à la zone internal ne sont pas visibles de l'extérieur tout le trafic est.

Par défaut le masquerading est actif sur la zone external, on peut s'en assurer via la commande firewall-cmd --info-zone=external qui retourne :

external (active)
  target: default
  icmp-block-inversion: no
  interfaces: nat0
  sources: 
  services: ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

On associe une interface à la zone external et au moins une seconde interface à la zone internal

firewall-cmd --permanent --zone=external --add-interface=nat0
firewall-cmd --permanent --zone=internal --add-interface=lan0

A ce stade, si on teste le forwarding/IP masquerading depuis un hôte de la zone internal on obtient une erreur du type No route to host :

# client debian 192.168.123.10 essaie de contacter wiki.phobos-net.fr sur le port HTTPS
nc wiki.phobos-net.fr 443
phobos.tetaneutral.net [91.224.149.240] 443 (https) : No route to host

Les journaux système tracent un rejet du trafic de la forme :

nov. 05 20:51:26 tethys kernel: filter_FWD_internal_REJECT: IN=lan0 OUT=nat0 MAC=52:54:00:12:2f:ae:52:54:00:24:35:d7:08:00 SRC=192.168.123.10 DST=91.224.149.240 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=56871 DF PROTO=TCP SPT=56252 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0

Ce comportement est normal, il faut explicitement autoriser le trafic en provenance la zone internal à destination de la zone external via une politique de filtrage (policy)

Dans sa forme la plus permissive on a :

# Création d'une nouvelle politique (18 caractères max)
firewall-cmd --permanent --new-policy forward_pol
firewall-cmd --permanent --policy=forward_pol --set-description="Masquerading de tout le trafic en provenance de la zone internal"
firewall-cmd --permanent --policy=forward_pol --add-ingress-zone=internal
firewall-cmd --permanent --policy=forward_pol --add-egress-zone=external
firewall-cmd --permanent --policy=forward_pol --set-target=ACCEPT
 
firewall-cmd --reload

Références

netadmin/firewalld-activer-masquerading.txt · Dernière modification : 2025/11/07 16:20 de yoann