Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Nu online
Ik ben een beetje aan het spelen met mijn Mikrotik routers (hAP ac), en ik ben het volgende scenario aan het realiseren:
Een selecte groep apparaten mag alleen via een VPN naar het internet.

Tot zover heb ik na veel prutsen de volgende regels die direct toepasbaar zijn op de defaults, het lijkt goed te werken, echter weet ik niet zeker of regel 6 juist is.

1. Toevoegen VPN interface
code:
1
/interface pptp-client add connect-to==*** mrru=1600 name=pptp-out1 password=*** user==***


2. Toevoegen masquerade voor pptp
code:
1
/ip firewall nat add action=masquerade chain=srcnat out-interface=pptp-out1 src-address=192.168.88.0/24


3. Lijst met clients voor VPN
code:
1
/ip firewall address-list add address=192.168.88.252 list=VPN


4. Mangle verkeer afkomstig van clients op lijst voor routing met tag vpn.
code:
1
/ip firewall mangle add action=mark-routing chain=prerouting new-routing-mark=vpn src-address-list=VPN


5. Voeg speciale route toe voor tag vpn.
code:
1
/ip route add distance=1 gateway=pptp-out1 routing-mark=vpn


6. Drop alle verkeer uitgaand op WAN wanneer afkomstig van clients op lijst.
code:
1
/ip firewall filter add action=drop chain=forward out-interface=ether1 routing-mark=vpn


Regel 6 is nodig omdat wanneer de route van 5 niet beschikbaar is, omdat bijvoorbeeld de pptp offline is, het verkeer van de vpn clients de default gateway neemt. Dat wil ik voorkomen. Maar ik weet niet of ik dat nu juist doe.

RouterOS is fantastisch, maar voor iemand die netwerken als een bijzaak heeft gehad is het steile leercurve. RouterOS is zo fantastisch dat ik twee extra ac lites heb gekocht om mee te spelen :P

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 08:21
Je oplossing is 'foutgevoelig' in de zin dat je niet moet vergeten deze ruleset te updaten als je WAN interface wijzigt of er nog een andere default route wordt toegevoegd, anders loop je het risico dat pakketjes alsog een andere interface uitgaan.

Wat ik daarom persoonlijk netter vind is een DROP achteraan alle chains zetten en enkel het verkeer dat is toegestaan whitelisten.

EDIT: Nog wat zaken

Volgens mij is het nu zo dat de clients bereikbaar zijn over je reguliere internetverbinding als de connectie niet door hun geinitieerd wordt (omdat je mangle rule dan niet matcht).

Dat kan theoretisch als een client een poort mapped via UPnP (als je dat niet hebt uitgezet). In de praktijk lijkt me dat niet snel een probleem, maar het schendt je aanname ('alles over VPN').

In die zin is het netter om bij de DROP op src-address-list te matchen ipv. routing mark, denk ik.

Denk ook aan DNS; als je de router zelf als DNS-server gebruikt lekt DNS-verkeer nog buiten de VPN om.

[ Voor 44% gewijzigd door Thralas op 10-09-2017 12:56 ]


Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Nu online
Je hebt helemaal gelijk met de drop rule en de foutgevoeligheid. Ik heb ook nog een andere manier gevonden door middel van policy based routing en VRF.

1. Maak VPN met masquerade
code:
1
2
/interface pptp-client add connect-to=*** mrru=1600 name=pptp-out1 password=*** user=***
/ip firewall nat add action=masquerade chain=srcnat out-interface=pptp-out1 src-address=192.168.88.0/24


2. Maak VRF (virtual routing)
code:
1
/ip route vrf add interfaces=ether1,pptp-out1 routing-mark=""


3. Maak een rule voor èèn user om virtuele routing tabel "vpn" te gebruiken.
code:
1
/ip route rule add dst-address=0.0.0.0/0 src-address=192.168.88.253/32 table=vpn


4. Maak een rule voor alle overige gebruikers. Let op! Deze moet als laatste in de lijst (hoogste nummer)
code:
1
/ip route rule add comment="main route" dst-address=0.0.0.0/0 src-address=192.168.88.0/24 table=main


5. Voeg route toe op tabel "vpn"
code:
1
/ip route add distance=1 gateway=pptp-out1 routing-mark=vpn


Je moet ook nog even opletten dat je de DNS servers bereikbaar zijn via beide routes.
use-peer-dns=no

Herhaal stap 3 om meer users toe te voegen aan de vpn routing table.
Echter, hiermee heb ik nog steeds een drop rule nodig als de vpn oflfine is. En dus twee lijsten, route rules en address list. Wat weer layer 8 foutgevoelig is.

Ik heb regel 6 uit de startpost even getest. En inderdaad, als ik een poort forward gaat die connectie gewoon door. Oeps.
De volgende twee regels heb ik als vervanging:
code:
1
2
/ip firewall filter add action=drop chain=forward comment="DROP outgoing connections for VPN list" out-interface-list=WAN src-address-list=VPN
/ip firewall filter add action=drop chain=forward comment="DROP incoming connections for VPN list" dst-address-list=VPN in-interface-list=WAN


edit:
Waar ik alleen nog niet achter ben is waarom het soms ontzettend lang duurt voordat de eerste bytes door de tcp link gaan. Ping, tracert en nslookup is allemaal instant, maar zodra er data overheen moet zit je seconden te wachten. Maar als de data eenmaal gaat, dan gaat het 60/60 Mb. Vreemd.

[ Voor 29% gewijzigd door jeroen3 op 10-09-2017 22:59 . Reden: update regel 6 ]