bases du nat
This commit is contained in:
parent
ebed1631ac
commit
adb973b5af
3 changed files with 62 additions and 1 deletions
|
@ -55,7 +55,7 @@ table inet firewall {
|
||||||
type filter hook input priority 0;
|
type filter hook input priority 0;
|
||||||
policy drop;
|
policy drop;
|
||||||
# Nos passerelles font beaucoup de choses...
|
# Nos passerelles font beaucoup de choses...
|
||||||
tcp dport {http, https, ssh, dns, dhcp} accept;
|
tcp dport {http, https, ssh, dns, dhcp, radius} accept;
|
||||||
# On a le droit de parler avec nous même.
|
# On a le droit de parler avec nous même.
|
||||||
iif lo accept;
|
iif lo accept;
|
||||||
counter
|
counter
|
||||||
|
|
35
nat.nft
Normal file
35
nat.nft
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#! /sbin/nft -f
|
||||||
|
|
||||||
|
table nat {
|
||||||
|
|
||||||
|
chain prerouting {
|
||||||
|
type nat hook prerouting priority 0;
|
||||||
|
# Sur le vlan prerezotage on fait du dnat vers un serveur de bounce car
|
||||||
|
# sur les clients récents on émet une requête http vers un serveur
|
||||||
|
# connu et on attend une réponse 204 pour voir que tout va bien. Si on
|
||||||
|
# ne l'a pas on ouvre un navigateur avec la réponse. C'est exactement
|
||||||
|
# ce que l'on veut pour les adhérents non rézotés qui sont sur ce vlan:
|
||||||
|
# les rediriger vers l'intranet.
|
||||||
|
iifname $if_prerezotage tcp dport {http,https} ip daddr != { $intranet, $comnpay, $website } dnat $bounce_server;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
chain postrouting {
|
||||||
|
type nat hook postrouting priority 100
|
||||||
|
# Pour les machines du VLAN de prérézotage, on fait un simple
|
||||||
|
# masquerade derrière l'IP du routeur car on a pas besoin de loguer
|
||||||
|
# étant donné que l'on limite les destinations possibles par ailleurs.
|
||||||
|
iifname $if_prerezotage masquerade,persistent
|
||||||
|
|
||||||
|
# NAT adherent
|
||||||
|
iifname $if_adherent oifname $if_supelec snat ip saddr map @adherent_nat_address : ip saddr map @adherent_nat_port;
|
||||||
|
# NAT federez
|
||||||
|
iifname $if_federez oifname $if_supelec snat ip saddr map @federez_nat_address : ip saddr map @federez_nat_port;
|
||||||
|
# NAT ALOES
|
||||||
|
iifname $if_adherent oifname $if_supelec snat ip saddr map @aloes_nat_address : ip saddr map @aloes_nat_port;
|
||||||
|
# NAT Server
|
||||||
|
iifname $if_admin oifname $if_supelec snat ip saddr map @server_nat_address : ip saddr map @server_nat_port;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -35,3 +35,29 @@ table inet firewall {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table nat {
|
||||||
|
# On nate les users derrière les IPs 193.48.225.11 à 193.48.225.141 en
|
||||||
|
# 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.
|
||||||
|
map adherent_nat_address {
|
||||||
|
type ipv4_addr: ipv4_addr
|
||||||
|
flags interval
|
||||||
|
elements = {
|
||||||
|
# exemple: 10.69.0.1-10.69.0.31 : 193.48.225.11
|
||||||
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
|
# nft add element nat adherent_nat_address {10.69.0.1-10.69.0.31 : 193.48.225.11}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map adherent_nat_port {
|
||||||
|
type ipv4_addr: inet_service
|
||||||
|
flags interval
|
||||||
|
elements = {
|
||||||
|
# exemple: 10.69.0.1 : 11135-128334
|
||||||
|
# On peut aussi ajouter dynamiquement des éléments :
|
||||||
|
# nft add element nat adherent_nat_port {10.69.0.1 : 11135-128334}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue