Bon alors j'ai avancé sur la base des infos glanées ici et sur le net.
Tout fonctionne
presque* comme attendu (j'ai bien un Vlan, qui est routé vers le VPN, y compris des requêtes DNS). Pour ceux que ça intéresse, je mets des éléments de config essentiels ci-dessous.
*
En revanche, et c'est important, j'ai inclus un "kill switch" qui interdit au trafic des clients utilisant le Vlan (sensé transiter uniquement par le VPN) d'utiliser le WAN. C'est juste une addition à la règle de firewall WAN_OUT. Ca marche bien quand le vlan tombe mais il y a une truc bizarre: Dés que le VPN se re-connecte, il y a un intervalle de quelques secondes pendant lequel le trafic passe par le WAN!
En bref, il y a encore du travail pour rendre le dispositif fiable.
. Je ne suis pas super à l'aise avec la source/destination de la règle en question.
Je pense reprendre la config de 0 car à force d'avoir le nez dedans, avec des interruptions à cause du boulot, je ne suis plus sûr de rien.
Si des spécialistes du firewall sur l'ERL peuvent me donner des idées, je suis preneur. Je me dois de souligner que je suis loin d'être un spécialiste des firewall, vlan et autres joyeusetés de l'ERL
et la méthode de configuration incrèmentale-itérative voit ici ses limites.
firewall {
…
modify SOURCE_ROUTE {
rule 10 {
action modify
description "traffic from a lan ip goes through vpn"
modify {
table 1
}
source {
address 192.168.55.0/24
}
}
}
…
name WAN_IN {
…
}
name WAN_LOCAL {
…
}
name WAN_OUT {
default-action accept
description "WAN OK except for VPN clients"
rule 1 {
action drop
description "Drop VPN direct WAN access"
destination {
group {
address-group NETv4_eth1
}
}
log disable
protocol all
source {
group {
address-group ADDRv4_eth2.55
}
}
}
}
…
}
interfaces {
ethernet eth0 {
…
}
ethernet eth1 {
address dhcp
description "WAN - Internet"
duplex auto
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
out {
name WAN_OUT
}
}
speed auto
}
ethernet eth2 {
…
vif 55 {
address 192.168.55.1/24
description "OpenVPN - client VLAN"
firewall {
in {
modify SOURCE_ROUTE
name PROTECT_IN
}
local {
name PROTECT_LOCAL
}
}
}
…
}
…
openvpn vtun9 {
… config du provider VPN ...
}
}
…
protocols {
static {
table 1 {
interface-route 0.0.0.0/0 {
next-hop-interface vtun9 {
}
}
}
}
}
…
service {
dhcp-server {
…
shared-network-name VPN_client_traffic {
authoritative disable
subnet 192.168.55.0/24 {
default-router 192.168.55.1
dns-server 8.8.8.8
dns-server 8.8.4.4
lease 86400
start 192.168.55.5 {
stop 192.168.55.15
}
}
}
…