Dynamické směrování IPsec sítí

IPsec dovoluje spojit oddělené oblasti bezpečnými (šifrovanými) tunely. S počtem oblastí logicky narůstá i počet provázaných adresních prostorů (např. 192.168.0.0/24, 192.168.150.0/24, 172.16.30.0/24, 10.1.0.0/16, atd.), což může vést k velkému počtu Policies. Ty normálně popisují, že provoz z jednoho adresního prostoru do druhého má být veden tunelem do určité (IPsec) brány.

Konfiguračně přehlednějším řešením je využití dynamického směrování, kdy si routery zmíněných oblastí vymění informace o dostupných adresových prostorech, a tok pak mezi sebou směrují zcela automaticky. Zohlední tak například aktuálně vypadlé linky. Další nespornou výhodou je, že Policies obsahují pouze pravidla šifrující komunikaci mezi routery.

Řešení pro Mikrotik

Konfigurace ukazuje nastavení pro tři routery A, B a C z pohledu routeru A.

K dynamickému směrování využijeme RIP. Ten bude potřebovat, aby byly směrovací linky (IP-IP tunely) reprezentované odděleným rozhraním. V následující konfiguraci pro ně použijeme rozsah 192.168.255.0/24, rozdrobený na linky s rozsahem /30 (4 IP adresy, tj. síťová, dvě adresy pro danou linku a broadcast).

/interface ipip
   add !keepalive local-address=192.168.255.1 mtu=1460 name=ipip-tunnel-a-b remote-address=192.168.255.2
   add !keepalive local-address=192.168.255.5 mtu=1460 name=ipip-tunnel-a-c remote-address=192.168.255.6

Potom lze aktivovat RIP

/routing rip interface
   add interface=ipip-tunnel-a-b receive=v2
   add interface=ipip-tunnel-a-c receive=v2
/routing rip neighbor
   add address=192.168.255.2
   add address=192.168.255.6

a informovat o dostupných sítích (například 192.168.0.0/24 za routerem A)

/routing rip network
   add network=192.168.0.0/24
   add network=192.168.255.0/30
   add network=192.168.255.4/30

Kromě toho je samozřejmě nutné povolit příslušnou komunikaci na firewallu. Využijeme k tomu address-listy:

  • RIPaddresses: 192.168.255.0/24, 224.0.0.9, 224.0.0.22, 255.255.255.255
  • VPNnet s CIDR rozsahy našich sítí za routery, například 192.168.0.0/24, 10.0.0.0/8 atp.

Filtrování pak bude následující. Povolíme na linkách mezi routery (ipip-tunnel-*) provoz RIPaddresses, forwarding mezi VPNnet, a na výstupním WAN portu do internetu (ether10-gtw) IPsec provoz linek mezi routery.

/ip firewall filter
   add chain=input dst-address-list=RIPaddresses in-interface=ipip-tunnel-a-b src-address-list=RIPaddresses
   add chain=input dst-address-list=RIPaddresses in-interface=ipip-tunnel-a-c src-address-list=RIPaddresses
   add chain=output dst-address-list=RIPaddresses out-interface=ipip-tunnel-a-b src-address-list=RIPaddresses
   add chain=output dst-address-list=RIPaddresses out-interface=ipip-tunnel-a-c src-address-list=RIPaddresses
   add chain=forward in-interface=ipip-tunnel-a-b src-address-list=VPNnet
   add chain=forward in-interface=ipip-tunnel-a-c src-address-list=VPNnet
   add chain=forward dst-address-list=VPNnet out-interface=ipip-tunnel-a-b
   add chain=forward dst-address-list=VPNnet out-interface=ipip-tunnel-a-c
   add chain=input dst-address=192.168.255.0/24 in-interface=ether10-gtw ipsec-policy=in,ipsec src-address=192.168.255.0/24
   add chain=output dst-address=192.168.255.0/24 ipsec-policy=out,ipsec out-interface=ether10-gtw src-address=192.168.255.0/24

Nyní je nutné realizovat linky mezi tunely tak, aby byly zpracovány IPsec. Firewall bude vyžadovat povolení příslušného ESP/AH provozu, včetně UDP 500/4500. Samotný IPsec ale vystačí s jednoduchým nastavením

/ip ipsec proposal
   add auth-algorithms=sha512,sha256 enc-algorithms=aes-256-cbc name=strong pfs-group=modp4096

Brány A, B a C budou mít v následující konfiguraci WAN adresy 1.1.1.1, 1.1.1.2 a 1.1.1.3.

/ip ipsec peer
   add address=1.1.1.2/32 auth-method=rsa-key dh-group=modp4096 enc-algorithm=aes-256 hash-algorithm=sha256 key=brana-A lifetime=1h local-address=1.1.1.1 nat-traversal=no remote-key=brana-B
   add address=1.1.1.3/32 auth-method=rsa-key dh-group=modp4096 enc-algorithm=aes-256 hash-algorithm=sha256 key=brana-A lifetime=1h local-address=1.1.1.1 nat-traversal=no remote-key=brana-C

Policies vystačí s pouhým šifrováním linek mezi routery.

/ip ipsec policy
   add dst-address=192.168.255.2/32 proposal=strong sa-dst-address=1.1.1.2 sa-src-address=1.1.1.1 src-address=192.168.255.0/32 tunnel=yes
   add dst-address=192.168.255.6/32 proposal=strong sa-dst-address=1.1.1.3 sa-src-address=1.1.1.1 src-address=192.168.255.4/32 tunnel=yes

Tato základní konfigurace by měla být doprovázena i správným zabezpečením RIP. S ohledem na vymezení tohoto provozu na oddělené adaptéry se už jedná o relativně snadnou úpravu. Rovněž s ní je spojená správná správa (akceptace a odmítání) prefixů.

V neposlední řadě by bylo možné eliminovat tunelový mód a nahradit ho transportním. V takovém případě by brány a jejich RIP využily přímo dostupné venkovní IP adresy. Tato úprava však vyžaduje větší pečlivost, protože může dojít k nechtěným bezpečnostním incidentům.

-- LeoGalambos - 17 Sep 2016
Topic revision: r3 - 25 Oct 2016, LeoGalambos
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback