Forum » Omrežja in internet » [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
---
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
---
- spremenilo: MTm2H37rqt7B ()
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.
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…
- spremenilo: MTm2H37rqt7B ()
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?
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?
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Raspberry Pi + Home Assistant (strani: 1 2 3 4 5 )Oddelek: Strojna oprema | 38624 (5462) | fulgur |
» | Domači VPN (strani: 1 2 3 )Oddelek: Omrežja in internet | 24837 (10685) | Daniel |
» | OpenWrt + wireguardOddelek: Omrežja in internet | 1822 (1328) | Vanadium |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 333602 (73605) | Macketina |
» | OpenWRT in OpenVPN (strani: 1 2 )Oddelek: Omrežja in internet | 10381 (8241) | BivšiUser2 |