Skip to content
InstagramYouTubeFacebook

Remote Access

MikroTik IPsec site-to-site VPN vadovas

Sukurkite MikroTik IPsec site-to-site VPN: sukonfigūruokite IKEv2 peer, proposal, policy ir NAT apėjimo taisyklę, dėl kurios tunelis veikia.

Santrauka MikroTik IPsec site-to-site VPN šifruoja srautą tarp dviejų ištisų tinklų — pagrindinės būstinės ir filialo, NOC ir bokšto vietos — kad kiekvieno LAN įrenginiai pasiektų kitą taip, tarsi būtų vietiniai. Šis vadovas sukonfigūruoja abu maršruto parinktuvus su RouterOS v7: IKEv2 peer, identity su iš anksto bendrinamu raktu, 2 fazės proposal, tunelio policy, NAT apėjimo taisyklę, dėl kurios žlunga dauguma pirmųjų bandymų, ir ugniasienės taisykles bei patikras, patvirtinančias, kad tunelis veikia.

MikroTik IPsec tinklas tarp dviejų vietų: du LAN, sujungti šifruotu IKEv2 tuneliu tarp Site A ir Site B.

Kas yra MikroTik IPsec site-to-site VPN?

MikroTik IPsec site-to-site VPN yra nuolatinis šifruotas tunelis tarp dviejų maršruto parinktuvų, sujungiantis du atskirus LAN į vieną maršrutizuojamą tinklą 3 lygmenyje, nė vienam maršruto parinktuvui neatveriant valdymo prievado viešajam internetui. Skirtingai nei kliento prieigos VPN, tokie kaip WireGuard ar OpenVPN — kur prisijungia vienas administratoriaus įrenginys — site-to-site tunelis visada įjungtas ir veikia nuo potinklio iki potinklio: kiekvienas įrenginys už A maršruto parinktuvo automatiškai pasiekia kiekvieną leidžiamą įrenginį už B maršruto parinktuvo. IPsec čia yra tinkamas įrankis, nes tai atviras standartas, palaikomas praktiškai kiekvieno ugniasienių ir maršruto parinktuvų gamintojo, jis veikia RouterOS branduolyje dėl geros pralaidos, o MikroTik jis integruotas be papildomo diegiamo paketo.

Tunelis kuriamas per dvi derybas. 1 fazė (IKE) autentifikuoja abu maršruto parinktuvus vienas kitam ir sukuria saugų kanalą; 2 fazė (IPsec) suderina raktus, kurie iš tikrųjų šifruoja jūsų duomenų srautą. Suderinkite abi fazes kiekviename gale ir tunelis pakils; tegu nesutampa vienas algoritmas ir jis tyliai sutriks — todėl toliau pateikti žingsniai išlaiko abi puses simetriškas.

Prieš pradedant

Jums reikia dviejų MikroTik maršruto parinktuvų su RouterOS v7, kiekvienam su viešuoju IP adresu arba veikiančiu DDNS pavadinimu, ir dviejų nepersidengiančių LAN potinklių. Šiame vadove naudojama 192.168.10.0/24 A vietoje ir 192.168.20.0/24 B vietoje. Jei abi vietos naudoja 192.168.88.0/24, maršrutizavimas neįmanomas — pirmiausia pakeiskite vienos pusės adresus. Kadangi IPsec labai jautrus laikrodžio nuokrypiui, prieš pradėdami įjunkite NTP abiejuose maršruto parinktuvuose; jei abu galai išsiskirs, security associations pasibaigs ir tunelis nuolat kris.

Šios sąlygos valdymas daugiau nei keliose vietose jau yra našta. Kai valdote parką, MKController suteikia vieną konsolę, kurioje galite patvirtinti kiekvieno maršruto parinktuvo RouterOS versiją ir laikrodžio šaltinį prieš perjungiant tunelį, todėl nereikia jungtis prie kiekvieno įrenginio vien tam, kad patikrintumėte, ar jis parengtas.

1 žingsnis: sukurkite IKE profile ir peer

A vietoje apibrėžkite 1 fazės profile ir nukreipkite peer į B vietos viešąjį adresą:

/ip ipsec profile add name=to-siteB hash-algorithm=sha256 \
enc-algorithm=aes-256 dh-group=modp2048 lifetime=1d
/ip ipsec peer add name=siteB address=<SITE_B_PUBLIC_IP>/32 \
profile=to-siteB exchange-mode=ike2

dh-group=modp2048 yra Diffie-Hellman 14 grupė — patikima šiuolaikinė numatytoji reikšmė. exchange-mode=ike2 pasirenka IKEv2, kuris yra greitesnis ir patikimesnis nei senasis main/IKEv1 režimas. Abu galai turi naudoti tas pačias profile reikšmes ir tą patį mainų režimą.

2 žingsnis: pridėkite identity (iš anksto bendrinamas raktas)

/ip ipsec identity add peer=siteB auth-method=pre-shared-key \
secret="<long-random-shared-secret>"

Naudokite ilgą, atsitiktinę paslaptį ir saugokite ją taip, kaip saugotumėte SSH raktą — ne pokalbių žinutėje. Ta pati paslaptis įrašoma į abu maršruto parinktuvus.

3 žingsnis: apibrėžkite 2 fazės proposal

/ip ipsec proposal add name=to-siteB auth-algorithms=sha256 \
enc-algorithms=aes-256-cbc pfs-group=modp2048

Perfect Forward Secrecy (pfs-group) reiškia, kad kiekvienas rakto atnaujinimas naudoja šviežią rakto medžiagą, todėl pažeistas raktas niekada neatskleidžia praėjusio srauto. Kaip ir 1 fazėje, algoritmai turi sutapti abiejuose galuose.

4 žingsnis: sukurkite tunelio policy

Policy nurodo RouterOS, kurį srautą šifruoti — vietinį LAN į nuotolinį LAN:

/ip ipsec policy add peer=siteB tunnel=yes \
src-address=192.168.10.0/24 dst-address=192.168.20.0/24 \
proposal=to-siteB action=encrypt

tunnel=yes yra tai, kas daro šį ryšį site-to-site, o ne host-to-host: pradiniai paketai suvyniojami ištisai, todėl du LAN gali bendrauti skaidriai.

5 žingsnis: pridėkite NAT apėjimo taisyklę (žingsnis, kurį visi pamiršta)

Būtent čia žlunga dauguma pirmųjų bandymų. Jūsų maršruto parinktuve jau yra masquerade taisyklė, kuri perrašo išeinančio LAN srauto šaltinio adresą. Jei ji suveikia prieš IPsec, nuotolinis galas gauna paketus, kurių šaltinis nebeatitinka policy, ir juos atmeta. Pridėkite accept taisyklę virš masquerade, kad į tunelį einantis srautas praleistų NAT:

/ip firewall nat add chain=srcnat action=accept place-before=0 \
src-address=192.168.10.0/24 dst-address=192.168.20.0/24

place-before=0 įdeda taisyklę į patį srcnat grandinės viršų, o tai privaloma — apėjimo taisyklė, įdėta po masquerade, nedaro nieko.

6 žingsnis: atverkite ugniasienę ir patikrinkite

Leiskite IKE ir NAT-T prievadus bei ESP protokolą input grandinėje, kad tunelis galėtų užsimegzti, ypač jei kuri nors vieta yra už dar vieno NAT įrenginio:

/ip firewall filter add chain=input protocol=udp dst-port=500,4500 action=accept
/ip firewall filter add chain=input protocol=ipsec-esp action=accept

Tada patvirtinkite, kad tunelis veikia:

/ip ipsec active-peers print
/ip ipsec policy print

Sveikas tunelis rodo aktyvų peer ir policy, kurios ph2-state yra established. Greitas ping iš vieno LAN įrenginio į kito LAN įrenginį įrodo pasiekiamumą nuo galo iki galo.

Atkartokite konfigūraciją B vietoje

Pakartokite kiekvieną žingsnį B vietoje sukeisdami adresus: peer nukreiptas į A vietos viešąjį IP, o policy ir NAT apėjimas naudoja src-address=192.168.20.0/24 ir dst-address=192.168.10.0/24. Profile, proposal, identity paslaptis ir IKEv2 režimas lieka identiški. Kai abi pusės sutampa, 1 ir 2 fazės užbaigiamos ir tunelis pakyla.

Saugumo ir eksploatacijos patarimai

Laikykite RouterOS atnaujintą — naujausiose laidose pateikti pataisymai, susiję su IPsec/IKEv2 peer sertifikatų atitikimu, todėl tunelis, veikęs praėjusį ketvirtį, nusipelno pakartotinio testo po kiekvieno atnaujinimo. Rinkitės IKEv2 su PFS, o ne senus IKEv1 numatytuosius nustatymus. Kur galite, augant tunelių skaičiui pereikite nuo bendrinamos paslapties prie autentifikavimo sertifikatais, nes vienas nutekėjęs iš anksto bendrinamas raktas paveikia kiekvieną vietą, kuri jį naudoja. Ir registruokite tunelio būseną ten, kur iš tikrųjų žiūrite: negyvas site-to-site ryšys yra nematomas, kol kas nors nebando pasiekti nuotolinio LAN ir nepavyksta.

Parke IPsec tunelis, kuris tyliai nutrūksta po laikrodžio desinchronizacijos ar WAN sutrikimo, yra būtent tas gedimas, kurį klientas pastebi anksčiau už jus. MKController užpildo šią spragą: jis stebi kiekvieną maršruto parinktuvą per saugų išeinantį tunelį, kuriam nereikia nei viešojo IP, nei prievadų peradresavimo įrenginyje, saugo versijuotas konfigūracijos atsargines kopijas, kad galėtumėte palyginti ir atkurti veikiantį IPsec bloką po nesėkmingo redagavimo, ir gali atidaryti užklausą įvykus ryšio nutrūkimui dar prieš suskambant telefonui. Dėl pačios tunelio konfigūracijos mūsų vadovas apie NAT MikroTik įrenginiuose paaiškina masquerade taisyklę, kurią čia apeinate, o norėdami pasiekti vieną maršruto parinktuvą, o ne sujungti du LAN, žiūrėkite nuotolinį valdymą už CGNAT ir mūsų nuotolinio valdymo su WireGuard apžvalgą.

Suburkite tunelius po vienu stogu

IPsec tvarkingai sujungia dvi vietas, bet augantis ISP ar MSP netrukus turi dešimtis tunelių, raktų ir ugniasienės taisyklių, kurias reikia sinchronizuoti — ir kiekvienas rankinis redagavimas yra galimybė užsirakinti nuo nuotolinės vietos. MKController sukurtas būtent tokiam mastui: centralizuotas parko valdymas, saugi nuotolinė prieiga be atvertų prievadų, konfigūracijos istorija ir atsarginės kopijos bei ugniasienės ir policy pakeitimų diegimas visame parke, todėl tunelio šablonas išskleidžiamas vieną kartą, o ne perrašinėjamas maršruto parinktuvas po maršruto parinktuvo. Operatoriai, valdantys MikroTik dideliu mastu, jį naudoja tam, kad prarastą popietę su SSH kiekvienam įrenginiui paverstų keliais paspaudimais vienam pakeitimui.

Pradėkite nemokamą MKController bandomąjį laikotarpį