Structure du NAT
This commit is contained in:
parent
f3ac887ad9
commit
1b10d84308
7 changed files with 127 additions and 17 deletions
29
firewall.nft
29
firewall.nft
|
@ -6,6 +6,7 @@ flush ruleset
|
||||||
# Inclusion des dépendances
|
# Inclusion des dépendances
|
||||||
include "archi.nft"
|
include "archi.nft"
|
||||||
include "checkmac.nft"
|
include "checkmac.nft"
|
||||||
|
include "nat.nft"
|
||||||
|
|
||||||
# Table principale
|
# Table principale
|
||||||
table inet firewall {
|
table inet firewall {
|
||||||
|
@ -24,13 +25,13 @@ table inet firewall {
|
||||||
#
|
#
|
||||||
# On utilise des jumps pour revenir ici une fois la chaîne évaluée.
|
# On utilise des jumps pour revenir ici une fois la chaîne évaluée.
|
||||||
meta iif vmap {
|
meta iif vmap {
|
||||||
if_adherent : jump from_adh,
|
$if_adherent : jump from_adh,
|
||||||
if_admin : jump from_admin,
|
$if_admin : jump from_admin,
|
||||||
if_federez : jump from_federez,
|
$if_federez : jump from_federez,
|
||||||
if_supelec : jump from_supelec,
|
$if_supelec : jump from_supelec,
|
||||||
if_aloes : jump from_aloes,
|
$if_aloes : jump from_aloes,
|
||||||
if_prerezotage : jump from_prerezotage,
|
$if_prerezotage : jump from_prerezotage,
|
||||||
if_dmz: jump from_dmz
|
$if_dmz: jump from_dmz
|
||||||
}
|
}
|
||||||
|
|
||||||
# Filtre sur les interfaces sortantes, ne pas retourner : drop ou
|
# Filtre sur les interfaces sortantes, ne pas retourner : drop ou
|
||||||
|
@ -38,13 +39,13 @@ table inet firewall {
|
||||||
# On utilise des goto pour ne pas revenir ici une fois la chaîne
|
# On utilise des goto pour ne pas revenir ici une fois la chaîne
|
||||||
# évaluée.
|
# évaluée.
|
||||||
meta oif vmap {
|
meta oif vmap {
|
||||||
if_adherent : goto to_adh,
|
$if_adherent : goto to_adh,
|
||||||
if_admin : goto to_admin,
|
$if_admin : goto to_admin,
|
||||||
if_federez : goto to_federez,
|
$if_federez : goto to_federez,
|
||||||
if_supelec : goto to_supelec,
|
$if_supelec : goto to_supelec,
|
||||||
if_aloes : goto to_aloes,
|
$if_aloes : goto to_aloes,
|
||||||
if_prerezotage : goto to_prerezotage,
|
$if_prerezotage : goto to_prerezotage,
|
||||||
if_dmz: goto to_dmz
|
$if_dmz: goto to_dmz
|
||||||
}
|
}
|
||||||
|
|
||||||
# Un compteur qui doit être à 0 si on a bien fait notre travail.
|
# Un compteur qui doit être à 0 si on a bien fait notre travail.
|
||||||
|
|
5
nat.nft
5
nat.nft
|
@ -29,6 +29,11 @@ table nat {
|
||||||
iifname $if_adherent oifname $if_supelec snat ip saddr map @aloes_nat_address : ip saddr map @aloes_nat_port;
|
iifname $if_adherent oifname $if_supelec snat ip saddr map @aloes_nat_address : ip saddr map @aloes_nat_port;
|
||||||
# NAT Server
|
# NAT Server
|
||||||
iifname $if_admin oifname $if_supelec snat ip saddr map @server_nat_address : ip saddr map @server_nat_port;
|
iifname $if_admin oifname $if_supelec snat ip saddr map @server_nat_address : ip saddr map @server_nat_port;
|
||||||
|
# NAT prerezotage
|
||||||
|
iifname $if_prerezotage oifname $if_supelec snat ip saddr map @prerezotage_nat_address : ip saddr map @prerezotage_nat_port;
|
||||||
|
|
||||||
|
# Le reste du local est mis en masquerade derrière le routeur
|
||||||
|
ip saddr 10.0.0.0/8 masquerade
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ table inet firewall {
|
||||||
}
|
}
|
||||||
|
|
||||||
table nat {
|
table nat {
|
||||||
# On nate les users derrière les IPs 193.48.225.11 à 193.48.225.141 en
|
# On nate les users derrière les IPs 193.48.225.11 à 193.48.225.140 en
|
||||||
# attribuant les plages de ports 11135-65535 par tranche de 1700 ports.
|
# attribuant les plages de ports 11135-65535 par tranche de 1700 ports.
|
||||||
# On a donc 32 Ips de 10.69.0.0/20 derrière chaque Ip.
|
# On a donc 32 Ips de 10.69.0.0/20 derrière chaque Ip.
|
||||||
map adherent_nat_address {
|
map adherent_nat_address {
|
||||||
|
@ -54,9 +54,9 @@ table nat {
|
||||||
type ipv4_addr: inet_service
|
type ipv4_addr: inet_service
|
||||||
flags interval
|
flags interval
|
||||||
elements = {
|
elements = {
|
||||||
# exemple: 10.69.0.1 : 11135-128334
|
# exemple: 10.69.0.1 : 11135-12834
|
||||||
# On peut aussi ajouter dynamiquement des éléments :
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
# nft add element nat adherent_nat_port {10.69.0.1 : 11135-128334}
|
# nft add element nat adherent_nat_port {10.69.0.1 : 11135-12834}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,3 +22,29 @@ table inet firewall {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table nat {
|
||||||
|
# On nate les admins derrière les IPs 193.48.225.215 à 193.48.225.224 en
|
||||||
|
# attribuant les plages de ports 11135-65535 par tranche de 1700 ports.
|
||||||
|
# On a donc 32 Ips de 10.7.0.0/24 derrière chaque Ip.
|
||||||
|
map admin_nat_address {
|
||||||
|
type ipv4_addr: ipv4_addr
|
||||||
|
flags interval
|
||||||
|
elements = {
|
||||||
|
# exemple: 10.7.0.1-10.7.0.31 : 193.48.225.215
|
||||||
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
|
# nft add element nat federez_nat_address {10.7.0.1-10.7.0.31 : 193.48.225.215}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map admin_nat_port {
|
||||||
|
type ipv4_addr: inet_service
|
||||||
|
flags interval
|
||||||
|
elements = {
|
||||||
|
# exemple: 10.7.0.1 : 11135-12834
|
||||||
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
|
# nft add element nat federez_nat_port {10.7.0.1 : 11135-12834}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,3 +35,29 @@ table inet firewall {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,3 +35,29 @@ table inet firewall {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table nat {
|
||||||
|
# On nate les users derrière les IPs 193.48.225.141 à 193.48.225.172 en
|
||||||
|
# attribuant les plages de ports 11135-65535 par tranche de 1700 ports.
|
||||||
|
# On a donc 32 Ips de 10.20.0.0/21 derrière chaque Ip.
|
||||||
|
map federez_nat_address {
|
||||||
|
type ipv4_addr: ipv4_addr
|
||||||
|
flags interval
|
||||||
|
elements = {
|
||||||
|
# exemple: 10.20.0.1-10.20.0.31 : 193.48.225.141
|
||||||
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
|
# nft add element nat federez_nat_address {10.20.0.1-10.20.0.31 : 193.48.225.141}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map federez_nat_port {
|
||||||
|
type ipv4_addr: inet_service
|
||||||
|
flags interval
|
||||||
|
elements = {
|
||||||
|
# exemple: 10.20.0.1 : 11135-12834
|
||||||
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
|
# nft add element nat federez_nat_port {10.20.0.1 : 11135-12834}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,3 +47,29 @@ table inet firewall {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue