Pereiti prie turinio

Kaip prijungti MikroTik prie VPSnet privataus tinklo per IPsec

Skirta: MikroTik (RouterOS) 7.25Žingsnių: 9

Norėdami prijungti MikroTik maršrutizatorių prie VPSnet privataus tinklo per IPsec, VPSnet valdymo skydelyje pridėkite padalinį, tada RouterOS 7 sukurkite IPsec profilį, pasiūlymą (proposal), peer, tapatybę su bendruoju raktu ir po vieną politiką kiekvienai tinklų porai, šiam srautui išjunkite NAT ir praleiskite jį per ugniasienę. RouterOS IPsec veikia pagal politikas, todėl maršruto nereikia. Prie kiekvieno žingsnio – WebFig lango vaizdas (WinBox meniu tokie patys) ir tą patį atliekanti Terminal komanda. Išbandyta su RouterOS 7.25 ir pastoviu viešuoju IPv4 adresu.

Prieš pradedant

  • VPSnet valdymo skydelyje atidarykite savo VPN, pasirinkite Prijungti padalinį (maršrutizatorių), pažymėkite MikroTik, skiltyje Jungtis per pasirinkite IPsec IKEv2 ir spauskite Toliau. Įveskite padalinio tinklus ir maršrutizatoriaus viešąjį adresą.
  • Iškart nusikopijuokite bendrąjį raktą: jis rodomas vieną kartą.
  • Palikite atidarytą padalinio konfigūraciją, kortelę CLI (kopijuoti ir įklijuoti): joje jau įrašyti jūsų VPN adresas, tinklai ir pavadinimai. Greičiausia šias komandas įklijuoti į Terminal arba įkelti atsisiųstą .rsc failą į Files ir paleisti /import. Toliau tie patys nustatymai aprašyti po vieną.

Paveikslėliuose rodomos pavyzdinės reikšmės (dokumentacijai skirti adresai). Įveskite reikšmes iš savo instrukcijos skydelyje.

1. 1 fazė: profilis

MikroTik (RouterOS) 7.25: IP > IPsec > Profiles > New – 1 fazė: profilis

IP > IPsec > Profiles > New

RouterOS 7 pirmoje fazėje (IKE) GCM nepalaiko, todėl čia naudojamas AES-256 su SHA-256; pats duomenų srautas vis tiek šifruojamas AES-256-GCM (2 žingsnis).

LaukasReikšmė
Nametunelio pavadinimas iš konfigūracijos (pvz., vpsnet-a10e8857)
Hash Algorithmssha256
PRF Algorithmsauto
Encryption Algorithmaes-256
DH Groupecp256 (19), ecp384 (20), modp2048 (14)
Proposal Checkobey
Lifetime1d 00:00:00
NAT TraversalOn
DPD Interval30 s
DPD Maximum Failures5

Tas pats Terminal lange:

/ip ipsec profile add name=vpsnet-a10e8857 enc-algorithm=aes-256 hash-algorithm=sha256 prf-algorithm=auto dh-group=ecp256,ecp384,modp2048 lifetime=1d nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5 proposal-check=obey

2. 2 fazė: pasiūlymas (proposal)

MikroTik (RouterOS) 7.25: IP > IPsec > Proposals > New – 2 fazė: pasiūlymas (proposal)

IP > IPsec > Proposals > New

Pažymėkite tik aes-256 gcm, o Auth. Algorithms nežymėkite nė vieno: GCM autentifikuoja pats. RouterOS leidžia tik vieną PFS grupę; konfigūracijoje naudojama ecp256.

LaukasReikšmė
Nametunelio pavadinimas iš konfigūracijos (pvz., vpsnet-a10e8857)
Auth. Algorithmsnieko
Encr. Algorithmsaes-256 gcm
Lifetime01:00:00
PFS Groupecp256 (19)

Tas pats Terminal lange:

/ip ipsec proposal add name=vpsnet-a10e8857 enc-algorithms=aes-256-gcm auth-algorithms="" pfs-group=ecp256 lifetime=1h

3. Pridėkite VPN kaip peer

MikroTik (RouterOS) 7.25: IP > IPsec > Peers > New – Pridėkite VPN kaip peer

IP > IPsec > Peers > New

Address – VPN adresas su /32. Passive nežymėkite: tunelį gali užmegzti bet kuri pusė.

LaukasReikšmė
Nametunelio pavadinimas iš konfigūracijos (pvz., vpsnet-a10e8857)
AddressVPN adresas/32
Port500
Profileiš 1 žingsnio
Exchange ModeIKE2
Send INITIAL_CONTACTOn

Tas pats Terminal lange:

/ip ipsec peer add name=vpsnet-a10e8857 address=198.51.100.7/32 port=500 exchange-mode=ike2 profile=vpsnet-a10e8857 send-initial-contact=yes passive=no comment="VPSnet VPN vpsnet-a10e8857"

4. Bendrasis raktas

MikroTik (RouterOS) 7.25: IP > IPsec > Identities > New – Bendrasis raktas

IP > IPsec > Identities > New

Raktą įklijuokite tiksliai: 64 simboliai, be tarpų. My ID – jūsų maršrutizatoriaus viešasis adresas, Remote ID – VPN adresas.

LaukasReikšmė
Peeriš 3 žingsnio
Auth. Methodpre shared key
Secretbendrasis raktas (rodomas vieną kartą)
My ID Typeaddress
My ID Addressjūsų maršrutizatoriaus viešasis IPv4 adresas
Remote ID Typeaddress
Remote ID AddressVPN adresas
Generate Policyno

Tas pats Terminal lange:

/ip ipsec identity add peer=vpsnet-a10e8857 auth-method=pre-shared-key secret="KEY_FROM_THE_PANEL" my-id=address:203.0.113.20 remote-id=address:198.51.100.7 generate-policy=no comment="VPSnet VPN vpsnet-a10e8857"

5. Po vieną politiką kiekvienai tinklų porai

MikroTik (RouterOS) 7.25: IP > IPsec > Policies > New – Po vieną politiką kiekvienai tinklų porai

IP > IPsec > Policies > New

Kiekvienai biuro tinklo ir konfigūracijoje nurodyto VPSnet tinklo porai pridėkite po politiką: šaltinis – biuro tinklas, paskirtis – VPSnet tinklas. Pažymėkite Tunnel; skiltyje Action pasirinkite encrypt, unique ir pasiūlymą iš 2 žingsnio.

LaukasReikšmė
Peeriš 3 žingsnio
TunnelOn
Src. Addressjūsų biuro tinklas
Dst. AddressVPSnet tinklas iš konfigūracijos
Protocolall
Actionencrypt
Levelunique
IPsec Protocolsesp
Proposališ 2 žingsnio

Tas pats Terminal lange:

/ip ipsec policy add peer=vpsnet-a10e8857 tunnel=yes src-address=192.168.50.0/24 dst-address=172.31.250.0/24 protocol=all proposal=vpsnet-a10e8857 action=encrypt level=unique comment="VPSnet VPN vpsnet-a10e8857 #1-1"

6. Netaikykite NAT srautui į VPSnet

MikroTik (RouterOS) 7.25: IP > Firewall > NAT > New – Netaikykite NAT srautui į VPSnet

IP > Firewall > NAT > New

Ši taisyklė turi būti virš jūsų masquerade taisyklės, kitaip srauto adresas pakeičiamas į WAN adresą ir jis nebeatitinka politikos. Išsaugoję nutempkite ją į sąrašo viršų (Terminal lange tam skirta komanda move). Kiekvienai tinklų porai – po vieną taisyklę.

LaukasReikšmė
Chainsrcnat
Src. Addressjūsų biuro tinklas
Dst. AddressVPSnet tinklas iš konfigūracijos
IPsec Policyout : ipsec
Actionaccept

Tas pats Terminal lange:

/ip firewall nat add chain=srcnat action=accept src-address=192.168.50.0/24 dst-address=172.31.250.0/24 ipsec-policy=out,ipsec comment="VPSnet VPN vpsnet-a10e8857: no NAT #1-1"
/ip firewall nat move [find comment="VPSnet VPN vpsnet-a10e8857: no NAT #1-1"] 0

7. Praleiskite tunelį per ugniasienę

MikroTik (RouterOS) 7.25: IP > Firewall > Filter Rules – Praleiskite tunelį per ugniasienę

IP > Firewall > Filter Rules

Sąrašo viršuje pridėkite keturias accept taisykles: IKE ir NAT-T (UDP 500 ir 4500) bei ESP iš VPN adreso į maršrutizatorių ir iššifruotą srautą abiem kryptimis tarp biuro ir VPSnet tinklų.

ChainTaisyklė
inputprotocol udp, Dst. Port 500,4500, Src. Address – VPN adresas – accept
inputprotocol ipsec-esp, Src. Address – VPN adresas – accept
forwardVPSnet tinklas → biuro tinklas, IPsec Policy in : ipsec – accept
forwardbiuro tinklas → VPSnet tinklas, IPsec Policy out : ipsec – accept

Tas pats Terminal lange:

/ip firewall filter add chain=input action=accept protocol=udp src-address=198.51.100.7 dst-port=500,4500 comment="VPSnet VPN vpsnet-a10e8857: IKE/NAT-T"
/ip firewall filter move [find comment="VPSnet VPN vpsnet-a10e8857: IKE/NAT-T"] 0
/ip firewall filter add chain=input action=accept protocol=ipsec-esp src-address=198.51.100.7 comment="VPSnet VPN vpsnet-a10e8857: ESP"
/ip firewall filter move [find comment="VPSnet VPN vpsnet-a10e8857: ESP"] 0
/ip firewall filter add chain=forward action=accept src-address=172.31.250.0/24 dst-address=192.168.50.0/24 ipsec-policy=in,ipsec comment="VPSnet VPN vpsnet-a10e8857: VPSnet -> office #1-1"
/ip firewall filter move [find comment="VPSnet VPN vpsnet-a10e8857: VPSnet -> office #1-1"] 0
/ip firewall filter add chain=forward action=accept src-address=192.168.50.0/24 dst-address=172.31.250.0/24 ipsec-policy=out,ipsec comment="VPSnet VPN vpsnet-a10e8857: office -> VPSnet #1-1"
/ip firewall filter move [find comment="VPSnet VPN vpsnet-a10e8857: office -> VPSnet #1-1"] 0

8. Apribokite TCP MSS

MikroTik (RouterOS) 7.25: IP > Firewall > Mangle > New – Apribokite TCP MSS

IP > Firewall > Mangle > New

Tunelio MTU – 1400. Ši taisyklė apsaugo, kad TCP ryšiai su VPSnet nestrigtų dėl per didelių paketų.

LaukasReikšmė
Chainforward
Src. Addressjūsų biuro tinklas
Dst. AddressVPSnet tinklas iš konfigūracijos
Protocoltcp
TCP Flagssyn
IPsec Policyout : ipsec
Actionchange MSS
New TCP MSSclamp to pmtu
PassthroughOn

Tas pats Terminal lange:

/ip firewall mangle add chain=forward action=change-mss new-mss=clamp-to-pmtu protocol=tcp tcp-flags=syn src-address=192.168.50.0/24 dst-address=172.31.250.0/24 ipsec-policy=out,ipsec comment="VPSnet VPN vpsnet-a10e8857: MSS #1-1"
/ip firewall mangle move [find comment="VPSnet VPN vpsnet-a10e8857: MSS #1-1"] 0

9. Patikrinkite tunelį

MikroTik (RouterOS) 7.25: IP > IPsec > Active Peers, Installed SAs – Patikrinkite tunelį

IP > IPsec > Active Peers, Installed SAs

Mūsų VPN tunelį užmezga per minutę. Active Peers rodo VPN būseną established, o Installed SAs – aes-gcm SA porą. Tada iš biuro kompiuterio paleiskite ping į VPSnet serverio privatų adresą.

LaukasReikšmė
Stateestablished

Tas pats Terminal lange:

/ip ipsec active-peers print
/ip ipsec installed-sa print proplist=spi,src-address,dst-address,state,enc-algorithm,current-bytes

Patikra ir galimos problemos

  • Skydelyje atidarykite padalinį ir spauskite Tikrinti tunelį: patikrinama, ar maršrutizatorius atsako, ar sutampa raktai ir ar eina srautas.
  • Aktyvaus peer nėra: patikrinkite peer adresą, raktą tapatybėje (įklijuotą be tarpų) ir ar input taisyklės UDP 500, 4500 ir ESP yra virš drop taisyklių. Log (topics ipsec) parodys, kodėl nepavyksta susiderėti.
  • Tunelis užmegztas, bet ping nepraeina: patikrinkite, ar politikoje šaltinis – biuro tinklas, o paskirtis – VPSnet tinklas, ir ar no-NAT taisyklė yra virš masquerade.

DUK

Kurioms RouterOS versijoms skirtas šis gidas?

Gidas parengtas ir išbandytas su RouterOS 7.25 (CHR), kai viešasis IPv4 adresas pastovus. RouterOS 6 čia neaprašyta.

Kodėl maršruto į VPSnet nereikia?

RouterOS IPsec veikia pagal politikas: jos nustato, kuris srautas šifruojamas, todėl biuro interneto srautas nesikeičia.

Ar per šį tunelį galiu naudoti BGP?

Su RouterOS – ne: mūsų VPN BGP naudoja tik per tunelį su sąsaja, o RouterOS IPsec veikia pagal politikas. Naudokite politikas.

Mano maršrutizatoriaus viešasis adresas keičiasi. Ar vis tiek galiu prisijungti?

Šis gidas skirtas pastoviam adresui – tokį atvejį išbandėme. Pridėdami padalinį pažymėkite „Adresas keičiasi“: tada konfigūracijoje bus nustatymai šiam atvejui, o tunelį turės užmegzti jūsų maršrutizatorius.

Pamečiau bendrąjį raktą. Ką daryti?

Raktas rodomas vieną kartą. Skydelyje atidarykite padalinį ir pasirinkite „Pakeisti raktą“: sukuriamas naujas raktas, jis parodomas vieną kartą, o senasis nustos veikti, kai maršrutizatorius kitą kartą jungsis.

Ar tuneliui reikia NAT?

Ne. VPSnet serveriai mato biuro kompiuterių adresus.