» »

[Vodič] EdgeRouter X + WireGuard

[Vodič] EdgeRouter X + WireGuard

MTm2H37rqt7B ::

Na domačem EdgeRouterju X sem želel postaviti WireGuard server. Na webu je ogromno nekih vodičev, vendar so nekateri nekonsistentni, zastareli, ipd.

Iz vseh sem izluščil in zaključil spodnji delujoč postopek:

Uporabljam EdgeRouter X na firmwaru v1.10.11, za v2 je postopek enak, samo primeren .deb paket je potrebno prenesti iz repozitorija. Pozor, paketi za firmware v2 so označeni z "v2". EdgeRouter X spada pod model z oznako "e50".

Opomba: Vsak dela na svojo odgovornost, preizkusil sem samo na ERX in fw v1. To je moj prvi vodič, prosim za razumevanje :)


---

1. SSH

Na EdgeRouterju X vklopimo SSH dostop in se prijavimo kot root/admin


2. Namestitev WireGuard-a

# prenesemo wireguard paket in ga namestimo
curl -LO https://github.com/WireGuard/wireguard-...
sudo dpkg -i e50-v1-v1.0.20211208-v1.0.20210914.deb


3. Kreacija ključev za strežniški del

# naredimo mapo za strežniške ključe
mkdir server_keys
cd server_keys
# kreiramo privatni in javni ključ
wg genkey | tee privatekey | wg pubkey > publickey
ls
# vsebino lahko pogledamo z komando "cat", primer: cat publickey
cd ..


3. Kreacija ključev za odjemalca1

mkdir client1_keys
cd client1_keys
wg genkey | tee privatekey | wg pubkey > publickey
ls
cd ..


3. Nastavitev wg0 vmesnika

#vklopimo konfiguracijski način
configure
#vmesniku nastavimo privatni ključ, PRIVATE-KEY zamenjaj z vsebino privatekey datoteke v mapi server_keys
set interfaces wireguard wg0 private-key PRIVATE-KEY
#vmesniku nastavimo lokalni ip in network, primer: 192.168.100.1/24
set interfaces wireguard wg0 address WG-LOCAL-IP
#vmesniku dovolimo, da se skozi routajo vsi ipji, ki pridejo skozi klienta
set interfaces wireguard wg0 route-allowed-ips true
#vmesniku nastavimo port na katerem posluša
set interfaces wireguard wg0 listen-port 51820
#nastavimo opis
set interfaces wireguard wg0 description WG_VPN
#potrdimo vnos in shranimo
commit; save


4. dodajanje končnih tock (odjemalcev) za vmesnik wg0

#vmesniku dodamo peer (odjemalec) in njegov javni ključ, CLIENT-PUBLIC-KEY1 zamenjaj z vsebino publickey v mapi client1_keys
set interfaces wireguard wg0 peer CLIENT-PUBLIC-KEY1
#vmesniku dodamo ip za peer, ki mu bo dodeljen ob povezavi, primer: 192.168.100.2/32
set interfaces wireguard wg0 peer CLIENT-PUBLIC-KEY1 allowed-ips CLIENT-IP1
#vmesniku dodamo opis za peer
set interfaces wireguard wg0 peer CLIENT-PUBLIC-KEY1 description CLIENT1
#potrdimo vnos in shranimo
commit; save


5. Odpiranje firewalla

#rulesetu WAN_LOCAL, dodamo nov vnos, da sprejma UDP pakete na portu 51820 in dodamo opis
set firewall name WAN_LOCAL rule 20 action accept
set firewall name WAN_LOCAL rule 20 protocol udp
set firewall name WAN_LOCAL rule 20 destination port 51820
set firewall name WAN_LOCAL rule 20 description WireGuard
#potrdimo vnos in shranimo
commit; save


6. Priprava konfiguracijske datoteke za odjemalca

Ignorirajte vrstice z # predpono, datoteko shranimo in prenesemo na napravo kjer je nameščen WireGuard klient. Testiral sem z iOS telefoni.
Pripravimo prazno datoteko client1.conf in vanjo vpišemo:


[Interface]
# CLIENT-PRIVATE-KEY1 vsebina datoteke privatekey v mapi client1_keys
PrivateKey = CLIENT-PRIVATE-KEY1
# Port katerega smo odprli za poslušanje na wg0 vmesniku in firewallu
ListenPort = 51820
# IP katerega bo dodelil strežnik odjemalcu ob povezavi
Address = 192.168.100.2/32
# DNS strežnik, katerega bomo uporabljali ob uspeli povezavi
DNS = 1.1.1.1

[Peer]
# SERVER-PUBLIC-KEY vsebina datoteke publickey v mapi server_keys
PublicKey = SERVER-PUBLIC-KEY
# Katere IPje routamo skozi VPN, v našem primeru vse
AllowedIPs = 0.0.0.0/0
# PUBLIC-IP javni ip routerja
Endpoint = PUBLIC-IP:51820


---

bastadu ::

Super, hvala za tole! Bom v naslednjih dneh poskusil po tvojih navodilih skonfigururati svojega ER-X ...

MTm2H37rqt7B ::

Če bi želel preko VPNja dostopati samo do določenih IPjev, ostalo pa mimo VPNja se doda te IPje pod AllowedIPs, primer:

AllowedIPs = 192.168.100.1/32, 192.168.5.66/32

V primeru, ki je dan v prvem postu, gre ves promet skozi VPN.

Zgodovina sprememb…

bastadu ::

Sem naredil po tvojem postopku, a žal ni povezave .... Kakšna ideja kako diagnosticirati kaj je narobe?

bastadu ::

Ubistvu bi se rad z mojim ER-X routerjem kot klient povezal na že obstoječi WG server (na nek drug router), imam config datoteko z vsemi podatki in ključi od serverja, z Win WG klientom povezava deluje, ampak jaz bi jo rad imel na routerju kot lan-to-lan ... Kakšen hint?

Zimonem ::

Najbrž še vedno furaš dva ločena Lana in DNS?

bastadu ::

Sedaj mi je uspelo vzpostaviti site-to-site wg povezavo, ampak na mojem koncu lahko z oddaljenim subnetom komuniciram edino direktno na routerju ER-X, ne pa preko lokalnega subneta.
Kaj bi še moral narediti na routerju, da bi celotem lokalen subnet 192.168.10.0/24 lahko dostopal do celotnega oddaljenega subneta 192.168.20.0/24 preko wg interface-a 192.168.40.1?

Zgodovina sprememb…

  • spremenilo: bastadu ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Raspberry Pi + Home Assistant (strani: 1 2 3 4 5 )

Oddelek: Strojna oprema
21937940 (4778) fulgur
»

Domači VPN (strani: 1 2 3 )

Oddelek: Omrežja in internet
12724546 (10394) Daniel
»

OpenWrt + wireguard

Oddelek: Omrežja in internet
151774 (1280) Vanadium
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344331839 (71842) Macketina
»

OpenWRT in OpenVPN (strani: 1 2 )

Oddelek: Omrežja in internet
7910284 (8144) BivšiUser2

Več podobnih tem