Spletna stran uporablja piškotke za boljšo uporabniško izkušnjo in spremljanje statistike obiskov (Google Analytics).
Z nadaljno uporabo spletne strani ali klikom na "Strinjam se", se strinjate z uporabo piškotkov.
Piškotki in njihova uporaba

Site-to-Site OpenVPN povezava

Imeti dober router je neprecenljivo.

Objavil Blaž Kristan 19.2.2019 @ 08:29

Pred leti, ko sem nabavil Ubiquiti EdgeRouter, sem ga takoj spremenil v L2TP/IPsec VPN strežnik, da sem se od daleč lahko povezal v domače omrežje. Konfiguriral sem ga sicer tudi kot PPTP VPN strežnik, a zaradi ranljivosti PPTP protokola, tega nikoli zares nisem uporabljal.

Žal sem s tem, da se router obnaša kot L2TP VPN strežnik, povzročil težavo, ki se je pokazala šele čez nekaj let, ko sem želel med seboj z VPN povezati dve lokaciji (dom in apartma na morju).

L2TP strežnik in L2TP site-to-site VPN povezava uporabljata iste mrežne porte (UDP 500,1701 in 4500), a različen način authentikacije ter usmerjanja paketov in ima router režave pri odločanju kdo in kako se povezuje.

Da pa to ne bi bil osamljen problem, mi ponudnik interneta v apartmaju ne omogoča statičnega IP naslova niti mi ne more zagotoviti port forwardinga točno določenih portov na moj router.

K sreči sem pred kratkim našel metodo, kako lahko lokaciji povežem s pomočjo Site-to-Site OpenVPN povezave.

Žal, EdgeRouter nima grafičnega vmesnika za nastavljanje OpenVPN povezav, da pa se zadevo konfigurirati dokaj enostavno preko CLI.

Do CLI pridemo preko SSH povezave na router ali CLI okna v grafičnem vmesniku administrativne strani routerja. Predvidevam, da to obvladate. ;)

 

Najprej moramo generirati OpenVPN simetrični ključ, ki ga bodo uporabljali vsi udeležni routerji (oz. lokacije). V mojem primeru bosta to dva routerja.

generate vpn openvpn-key /config/auth/secret
sudo cat /config/auth/secret

Nato (izpisan) ključ začasno shranimo oz. ga (na varen način) prenesemo na vse preostale routerje ter zaženemo configuracijski način.

configure

Sledi odpiranje portov na firewallu. Št. rule-a si ustrezno popravite za svoje okolje, da ne bo prišlo do kake zmešnjave (za spremenljive parametre bom uporabil znaka < in >).

set firewall name WAN_LOCAL rule <30> action accept
set firewall name WAN_LOCAL rule <30> description openvpn
set firewall name WAN_LOCAL rule <30> destination port <1194>
set firewall name WAN_LOCAL rule <30> protocol udp

Tudi port (1194) lahko zamenjamo, v kolikor nam predlagan ne ustreza. Sledi konfiguriranje tunela.

set interfaces openvpn vtun0 shared-secret-key-file /config/auth/secret
set interfaces openvpn vtun0 mode site-to-site
set interfaces openvpn vtun0 local-port <1194>
set interfaces openvpn vtun0 remote-port <1194>
set interfaces openvpn vtun0 remote-host <remote IP address or hostname of router 2>
set interfaces openvpn vtun0 local-host <local public IP address or empty to listen on all local addresses>
set interfaces openvpn vtun0 local-address 10.255.12.1
set interfaces openvpn vtun0 remote-address 10.255.12.2

In na koncu definiranje route za oddaljeno omrežje.

set protocols static interface-route <192.168.x.x/24> next-hop-interface vtun0

Uveljavimo in shranimo spremembe.

commit ; save

Sledi skorajda identična konfiguracija routerja na na drugi strani. Kot rečeno, najprej nanj prepišemo originalni šifrirni ključ.

sudo cat > /config/auth/secret
<paste output from 1st router> + Ctrl-D
sudo chmod 600 /config/auth/secret
sudo chown root /config/auth/secret

Sledi konfiguracija firewalla in tunela ter route nazaj v prvo omrežje.

configure
set firewall name WAN_LOCAL rule <30> action accept
set firewall name WAN_LOCAL rule <30> description openvpn
set firewall name WAN_LOCAL rule <30> destination port <1194>
set firewall name WAN_LOCAL rule <30> protocol udp
set interfaces openvpn vtun0 shared-secret-key-file /config/auth/secret
set interfaces openvpn vtun0 mode site-to-site
set interfaces openvpn vtun0 local-port <1194>
set interfaces openvpn vtun0 remote-port <1194>
set interfaces openvpn vtun0 remote-host <remote IP address or hostname of router 1>
set interfaces openvpn vtun0 local-host <local public IP address or empty to listen on all local addresses>
set interfaces openvpn vtun0 local-address 10.255.12.2
set interfaces openvpn vtun0 remote-address 10.255.12.1
set protocols static interface-route <192.168.x.x/24> next-hop-interface vtun0
commit ; save

Naslova oz. omrežji <192.168.x.x/24> se morata na lokacijah seveda razlikovati npr. 192.168.1.0/24 na prvi lokaciji in 192.168.2.0/24 na drugi lokaciji.

Če smo vse vtipkali pravilno se VPN povezava vzpostavi v trenutku, kar lahko preverimo z ukazom ping.

ping 192.168.<x>.<y>

Kjer je <x>.<y> naslov iz omrežja na drugem koncu VPN povezave.

In še zanimivost, na katero sem naletel. :)

Router, ki ga imam v apartmaju uporablja PPPoE povezavo do ISP, kar pomeni, da nima statičnega IP naslova (in izkaže se, da niti nima javnega IP naslova) zato v vrstici

set interfaces openvpn vtun0 local-host <local public IP address or empty to listen on all local addresses>

iz zgornjih navodil, ne moremo vpisati javnega IP naslova, zato lahko to vrstico izpustimo in bo router poslušal za VPN povezave na vseh IP naslovih, ki jih dobi (tudi na PPPoE dinamično dodeljenem naslovu).

Komentarji

* Komentarje mora odobriti admin.