#! /sbin/nft -f table inet firewall { # Définition de la zone set z_aloes { type ipv4_addr; flags interval elements = { # Si l'on souhaite ajouter des ranges d'ip c'est ici 10.66.0.0/24, } } # Interfaces depuis lesquelles on autorise la communication vers # aloes set allowed_to_aloes = { type string; elements = { $if_admin, $if_supelec, $if_aloes, # Utile ? } } chain to_aloes { meta iifname allowed_to_aloes accept; drop; } chain from_aloes { # On passe d'abord par le checkmac pour éviter le spoof d'ip: not ip saddr . ether saddr @ip_mac drop; } } table nat { # On nate ALOES derrière l'IP 193.48.225.214 # attribuant les plages de ports 11135-65535 par tranche de 1700 ports. # On a donc 32 Ips de 10.66.0.0/27 derrière l'Ip. map aloes_nat_address { type ipv4_addr: ipv4_addr flags interval elements = { # exemple: 10.66.0.1-10.66.0.31 : 193.48.225.214 # On peut aussi ajouter dynamiquement des éléments : # nft add element nat federez_nat_address {10.66.0.1-10.66.0.31 : 193.48.225.214} } } map aloes_nat_port { type ipv4_addr: inet_service flags interval elements = { # exemple: 10.66.0.1 : 11135-12834 # On peut aussi ajouter dynamiquement des éléments : # nft add element nat federez_nat_port {10.66.0.1 : 11135-12834} } } }