#! /sbin/nft -f table inet firewall { # Définition de la zone Prérézotage set z_prerezotage { type ipv4_addr; flags interval elements = { # Si l'on souhaite ajouter des ranges d'ip c'est ici 10.68.0.0/16, } } # Adresses de destination autorisées set allowed_daddr_prerezotage { type ipv4_addr; flags interval elements = { $comnpay, $website } } # Interfaces depuis lesquelles on autorise la communication vers # le prérézotage set allowed_to_prerezotage = { type string; elements = { $if_admin, $if_prerezotage, $if_supelec, $if_prerezotage, # Utile ? } } chain to_prerezotage { # On accepte les connexions que depuis certaines ips. iifname allowed_to_prerezotage accept; drop; } chain from_prerezotage { # Si on ne sort pas vers une ip autorisée, ça dégage. not ip daddr allowed_daddr_prerezotage drop; } } table nat { # On nate les admins derrière les IPs 193.48.225.173 à 193.48.225.182 en # attribuant les plages de ports 11135-65535 par tranche de 1700 ports. # On a donc 32 Ips de 10.68.0.0/24 derrière chaque Ip. map admin_nat_address { type ipv4_addr: ipv4_addr flags interval elements = { # exemple: 10.68.0.1-10.68.0.31 : 193.48.225.173 # On peut aussi ajouter dynamiquement des éléments : # nft add element nat federez_nat_address {10.68.0.1-10.68.0.31 : 193.48.225.173} } } map admin_nat_port { type ipv4_addr: inet_service flags interval elements = { # exemple: 10.68.0.1 : 11135-12834 # On peut aussi ajouter dynamiquement des éléments : # nft add element nat federez_nat_port {10.68.0.1 : 11135-12834} } } }