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
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).
| Laukas | Reikšmė |
|---|---|
| Name | tunelio pavadinimas iš konfigūracijos (pvz., vpsnet-a10e8857) |
| Hash Algorithms | sha256 |
| PRF Algorithms | auto |
| Encryption Algorithm | aes-256 |
| DH Group | ecp256 (19), ecp384 (20), modp2048 (14) |
| Proposal Check | obey |
| Lifetime | 1d 00:00:00 |
| NAT Traversal | On |
| DPD Interval | 30 s |
| DPD Maximum Failures | 5 |
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)
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.
| Laukas | Reikšmė |
|---|---|
| Name | tunelio pavadinimas iš konfigūracijos (pvz., vpsnet-a10e8857) |
| Auth. Algorithms | nieko |
| Encr. Algorithms | aes-256 gcm |
| Lifetime | 01:00:00 |
| PFS Group | ecp256 (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
IP > IPsec > Peers > New
Address – VPN adresas su /32. Passive nežymėkite: tunelį gali užmegzti bet kuri pusė.
| Laukas | Reikšmė |
|---|---|
| Name | tunelio pavadinimas iš konfigūracijos (pvz., vpsnet-a10e8857) |
| Address | VPN adresas/32 |
| Port | 500 |
| Profile | iš 1 žingsnio |
| Exchange Mode | IKE2 |
| Send INITIAL_CONTACT | On |
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
IP > IPsec > Identities > New
Raktą įklijuokite tiksliai: 64 simboliai, be tarpų. My ID – jūsų maršrutizatoriaus viešasis adresas, Remote ID – VPN adresas.
| Laukas | Reikšmė |
|---|---|
| Peer | iš 3 žingsnio |
| Auth. Method | pre shared key |
| Secret | bendrasis raktas (rodomas vieną kartą) |
| My ID Type | address |
| My ID Address | jūsų maršrutizatoriaus viešasis IPv4 adresas |
| Remote ID Type | address |
| Remote ID Address | VPN adresas |
| Generate Policy | no |
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
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.
| Laukas | Reikšmė |
|---|---|
| Peer | iš 3 žingsnio |
| Tunnel | On |
| Src. Address | jūsų biuro tinklas |
| Dst. Address | VPSnet tinklas iš konfigūracijos |
| Protocol | all |
| Action | encrypt |
| Level | unique |
| IPsec Protocols | esp |
| Proposal | iš 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
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ę.
| Laukas | Reikšmė |
|---|---|
| Chain | srcnat |
| Src. Address | jūsų biuro tinklas |
| Dst. Address | VPSnet tinklas iš konfigūracijos |
| IPsec Policy | out : ipsec |
| Action | accept |
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ę
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ų.
| Chain | Taisyklė |
|---|---|
| input | protocol udp, Dst. Port 500,4500, Src. Address – VPN adresas – accept |
| input | protocol ipsec-esp, Src. Address – VPN adresas – accept |
| forward | VPSnet tinklas → biuro tinklas, IPsec Policy in : ipsec – accept |
| forward | biuro 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
IP > Firewall > Mangle > New
Tunelio MTU – 1400. Ši taisyklė apsaugo, kad TCP ryšiai su VPSnet nestrigtų dėl per didelių paketų.
| Laukas | Reikšmė |
|---|---|
| Chain | forward |
| Src. Address | jūsų biuro tinklas |
| Dst. Address | VPSnet tinklas iš konfigūracijos |
| Protocol | tcp |
| TCP Flags | syn |
| IPsec Policy | out : ipsec |
| Action | change MSS |
| New TCP MSS | clamp to pmtu |
| Passthrough | On |
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į
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ą.
| Laukas | Reikšmė |
|---|---|
| State | established |
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.








