1 (edytowany przez pinix 2020-05-11 12:07:41)

Temat: Wireguard i dwie sieci LAN

Potrzebuję zestawić połączenie po VPN do firmy. Chciałbym mieć dostęp do sieci LAN w firmie lub przynajmniej do jednego hosta.
Będę się łączył z komputera przenośnego. Połączenie mogłoby być zestawiane bezpośrednio z komputera. Chciałbym jednak podłączyć się na stałe z domu do sieci firmowej. Przy czym rozważam czy da się takie połączenie LAN_biuro - LAN_dom zestawić przy pomocy Wireguard. Ponadto czy gdybym w sieci domowej utworzył dwie sieci LAN_dom i LAN_biuro2 to mógłbym do sieci LAN_biuro2 utworzyć drugą odrębną sieć WiFi, tak aby do sieci firmowej miały dostęp niektóre urządzenia w domu. Ten dostęp byłby tylko z poziomu WiFi. Dostęp do Internetu byłby realizowany przez lokalne bramy. Nie chciałbym, żeby cały ruch do sieci szedł przez biuro.
Zestawiłem na próbę tunel VPN z wykorzystaniem Wireguarda. Korzystałem z tego opisu. Jednak zbytnie nie mogę sprawdzić zastosowania tego tunelu bo urządzenia są w tej samej sieci LAN.
Czy opisany przez Cezarego przykład zapewnia takie połączenia, które daje mi dostęp do wszystkich hostów w sieci lokalnej serwera? Zaś do Internetu łączę się bezpośrednio przez lokalne bramy. Cezary zaproponował przykładową adresację na potrzeby zestawienia tunelu. Czy jeżeli z hosta w sieci domowej po adresem 192.168.1.10 chciałbym się dostać do serwera w sieci firmowej pod adresem 192.168.10.10 to opisany tunel mi to zapewni?

Na ten moment zależy mi na dostępie do serwera SQL i zdalnego pulpitu ale możliwe, że rozszerzyłbym to o monitoring CCTV.

Działam na wydaniu 19.07 od Cezarego. Urządzenia to Archer C7 i WDR-4300. Dodam, że w domu korzystam z Neostrady i jestem za Funboxem zaś w firmie z Netii i jestem za Netiaspotem (tutaj mogę włączyć tryb bridge i dobrać stałe IP). Czy gdybym tego nie mógł wystarcz,y że przekieruję port tunelu?

2 (edytowany przez imkebe 2020-05-11 13:18:42)

Odp: Wireguard i dwie sieci LAN

Robisz dwa interfejsy wg. Jeden dla biura drugi dla roaming clients. Zestawiasz biuro - lan jako point-to-point i podajesz adresacje sieci z drugiej strony aby mozliwe było routowanie. Robisz dla roaming clients kolejny interfejs tylko, serwer nie ma podanego endpointa dla klienta (bo bedziesz do recznie zestawiał). Tutaj też dodajesz rounting dla klienta tak aby lan ewentualnie i biuro było osiągalne.

Ja mam tak zrobione, że mam w sumie 3 interfejsy wg. Jeden spina mi kilka LAN-ów, kolejny dla roaming clients i jeden spinający sieć na poziomie L2 via GRE. Dodatkowo mam dwa VPNy do zewnętrznych sieci firmowych (ktore wypychaja swoje routingi, wiec tylko to co maja przekierowane np. 10.17.0.0/22 leci przez VPN.

Tylko odróżniaj adresacje LAN-ów od sieci wireguard. Adresacja interfejsów wg jest tylko po to aby one mogły się ze sobą komunikować, natomiast one mogą routować pakiety z innych sieci tj. LAN, biuro, roaming clients.

Wszystko nad tym ustawisz na zaporze i bedziesz miał serparację.

Mapa mojej sieci

3

Odp: Wireguard i dwie sieci LAN

Czyli standardowa konfiguracja Cezarego, którą wprowadziłem nie zapewnia jeszcze komunikacji pomiędzy podsieciami klienta i serwera Wireguard.  Co w takim razie dzięki niej zyskuję. Przykładowo, gdybym połączył się z serwerem bezpośrednio z androida. Miałbym dostęp do serwera. Czy ruch z androida do Internetu przechodziłby przez serwer.

To co mi opisałeś po części znalazłem w tym artykule. To że klienci mogą być za NAT to już wiem. Serwer musi mieć stałe IP lub przekierowanie DDNS i otwarty port co jest oczywiste.

4

Odp: Wireguard i dwie sieci LAN

To czy cały ruch idzie z androida przez serwer czy nie zależy od tego co masz wpisane w AllowedIPs.

No i nie, dziwnym trafem mój poradnik nie opisuje wszystkich możliwych konfiguracji i tym samym nie opisuje dokładnie takiej konfiguracji jak sobie wymyśliłeś. Jasnowidzem nie jestem żeby takie poradniki pisać smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Wireguard i dwie sieci LAN

Czyli 0.0.0.0/0 opisuje sytuację, w której cały ruch idzie przez serwer.
W konfiguracji peer'a

 # uci add_list network.@wireguard_wg0[-1].allowed_ips="0.0.0.0/0" 

zaś serwer otrzymuje

 # uci add_list network.@wireguard_wg0[-1].allowed_ips="10.9.0.2/32" # lub można podać "0.0.0.0/0" 

Napisałeś że można podać w konfiguracji serwera 0.0.0.0/0 co to zmieni w kontekście dodania tego peer'a

6

Odp: Wireguard i dwie sieci LAN

Tak prawdę mówiąc to tu nie ma ideologi client-serwer. Jest peer-to-peer, więc ten "serwer" traktuj po prostu jako końcówkę tunelu. Allowedips pozwala kontrolować co ma przechodzić przez tunel (nie użyję słowa "firewall" bo zaraz ktoś to zacytuje wyrwane z kontekstu). Albo wszystko, albo określoną podsieć, albo kilka z podsieci.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Wireguard i dwie sieci LAN

Może inaczej zapytam, jeżeli mam w allowedips 0.0.0.0/0 po stronie serwera i klienta to jak by to zadziałało gdybym miał zarówno w sieci LAN serwera podsieć 192.168.0.0/24 i taką samą po stronie klienta. Jakby wyglądała komunikacja?

8 (edytowany przez imkebe 2020-05-14 13:13:11)

Odp: Wireguard i dwie sieci LAN

pinix napisał/a:

Może inaczej zapytam, jeżeli mam w allowedips 0.0.0.0/0 po stronie serwera i klienta to jak by to zadziałało gdybym miał zarówno w sieci LAN serwera podsieć 192.168.0.0/24 i taką samą po stronie klienta. Jakby wyglądała komunikacja?

Najprościej to zrozumieć tak - allowed ips po stronie interfejsu mówi mu... jak masz pakiet do sieci 192.168.0.0/24 to pchaj go przez tunel w innym przypadku zostaw obsługę iptables.

Wiec musisz powiedzieć po obydwu stronach jakich sieci mają sie spodziewać z dreugiej strony (dlatego allowed ips to jest wink ). 0.0.0.0/0 oznacza czarną dziurę - jakikolwiek pakiet nie jest gdziekolwiek wysyłany pójdzie prze tunel. Jak chcesz mieć tak, ze na telefonie np. masz normalny ruch na LTE/WiFi to nie dawaj 0.0.0.0/0 tylko zdefiniuj, że twoja siec domowa to 192.168.0.0/24. Wtedy na telefonie tylko tak adresowane pakiety będą szły przez tunel a reszta normalnie.  Ale wazne jest aby nie było pętli, bo jak wpiszesz z obu stron allowed ips tą samą sieć to zginie w tunelu, bo po przybyciu pakiet będzie się odbijał od końcowek aż TTL wygaśnie. Dodatkowo zrób tak aby uniknąć sytuacji gdzie łączysz sie z tunelem na WiFi (LAN) i w allowed ips masz go wpisanego. Najlepiej aby endpoint dla telefonu byl wystawiony na publicznym IP.

Spójrz na moje posty w wątku https://eko.one.pl/forum/viewtopic.php?id=19675. tam trochę bardziej zaawansowany temat miałem ale masz przykład konfiguracji dla 3 endpointów spiętych centralnie przez jeden z nich.

9 (edytowany przez pinix 2020-05-14 22:31:08)

Odp: Wireguard i dwie sieci LAN

Teraz już to pojąłem.

Moja konfiguracja.
Dwa serwery jeden z publicznym stałym a drugi po DDNS.
Dwóch klientów jeden stacjonarny (router) i drugi mobilny.
Czy dopuszczalna będzie taka konfiguracja stacjonarnego klienta? Mogę w tym przypadku utworzyć dwóch użytkowników dla jednego interfejsu wireguard. Czy raczej powinienem utworzyć dwa interfejsy. Sprawdziłbym ale nie mam jak. Muszę skonfigurować klienta, żeby sprawdzić na serwerze czy się łączy.

Klient nr 1

config interface 'wg0'
    option proto 'wireguard'
    option private_key '{Klucz prywatny klienta nr 1}'
    list addresses '10.9.0.2/32'
    list addresses '10.10.0.2/32'

config wireguard_wg0
    option description 'Kawiarnia'
    option public_key '{Klucz publiczny serwera nr 1}'
    option route_allowed_ips '1'
    option persistent_keepalive '25'
    list allowed_ips '192.168.30.0/24'
    list allowed_ips '10.9.0.0/24'
    option endpoint_host 'XYZ.ddns.net'
    option endpoint_port '55055'

config wireguard_wg0
    option description 'CCTV'
    option public_key '{Klucz publiczny serwera nr 2}'
    option route_allowed_ips '1'
    option persistent_keepalive '25'
    list allowed_ips '192.168.8.0/24'
    list allowed_ips '10.10.0.0/24'
    option endpoint_host '{stały publiczny IP}'
    option endpoint_port '55056'

Serwer nr 1

config interface 'wg0'
    option proto 'wireguard'
    option private_key '{Klucz prywatny serwera nr 1}'
    list addresses '10.9.0.1/24'
    option listen_port '55055'

config wireguard_wg0
    option description 'Klient nr 1'
    option public_key '{Klucz publiczny klienta nr 1}'
    option route_allowed_ips '1'
    option persistent_keepalive '25'
    list allowed_ips '192.168.1.0/24'
    list allowed_ips '10.9.0.2/32'

config wireguard_wg0
    option description 'Klient nr 2'
    option public_key '{Klucz publiczny klienta nr 2}'
    option route_allowed_ips '1'
    option persistent_keepalive '25'
    list allowed_ips '10.9.0.3/32'

Serwer nr 2

config interface 'wg0'
    option proto 'wireguard'
    option private_key '{Klucz prywatny serwera nr 2}'
    list addresses '10.10.0.1/24'
    option listen_port '55056'

config wireguard_wg0
    option description 'Klient nr 1'
    option public_key '{Klucz publiczny klienta nr 1}'
    option route_allowed_ips '1'
    option persistent_keepalive '25'
    list allowed_ips '192.168.1.0/24'
    list allowed_ips '10.10.0.2/32'

config wireguard_wg0
    option description 'Klient nr 2'
    option public_key '{Klucz publiczny klienta nr 2}'
    option route_allowed_ips '1'
    option persistent_keepalive '25'
    list allowed_ips '10.10.0.3/32'

10

Odp: Wireguard i dwie sieci LAN

Panowie mam małe pytanie.
Właśnie sobie zrobiłem pierwszy tunel między  domem a telefonem. Wszystko działa OK.
W allowed IPs mam adres mojej domowej sieci lokalnej. Tak właśnie chcę by tylko to szło przez tunel.
Ale chciałbym również mieć dostęp do sieci domowej np. z laptopa któremu udostępniam połączenie poprzez hotspot w telefonie.
Jak to zrobić?

11

Odp: Wireguard i dwie sieci LAN

Jeśli laptop na Windowsie, to ściągasz na niego wireguarda na Windowsa, dodajesz peera na serwerze i konfigurujesz klienta na Windowsie.
Pamiętaj, by przypisać mu inne IP, niż telefon.

12

Odp: Wireguard i dwie sieci LAN

@xury    na linux mint 19.2 

*******instalacja *************
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt install wireguard

******* generowanie kluczy *************
umask 077
wg genkey | tee privatekey | wg pubkey > publickey 

****** tworzymy plik konfiguracyjny ******
touch wg0.conf 

****** edycja przez ulubiony edytor do postaci *****

[Interface]
PrivateKey =             # tutaj podajemy klucz prywantny z klienta
Address = 10.9.0.2/32    # adres klienta z serwera
DNS = 1.1.1.1            # tu wiadomo


[Peer]
PublicKey =                       # tutaj podajemy klucz publiczny z serwera
Endpoint = xx.xxx.xxx.xxx:55055   # tutaj adres serwera i port 
AllowedIPs = 0.0.0.0/0            # dozwolone IP lub trasa domyślna  w tym przypadku cały zakres 
PersistentKeepalive = 25

***********************************************************************

wg-quick up wg0      # właczenie
wg-quick down wg0    # wyłaczenie
sudo wg show         # pokazuje info konfigu

***************problemy *********************************************
sudo apt install openresolv   ##  TO INSTALUJEMY JAK DOSTANIEMY BŁAD /usr/bin/wg-quick: line 31: resolvconf: command not found

być moze jeszcze trzeba skonfiguraowac zaporę ;
ale prawdopodobnie wg-quick zrobi to za nas podczas uruchomienia 

przetestowane działa

13

Odp: Wireguard i dwie sieci LAN

No dzięki, ale nie o to mi chodziło.
Szukam możliwości wykorzystania tunelu na telefonie bez instalacji na laptopie czegokolwiek.  Z tego co się udało mi dowiedzieć to musiałbym ustawić routing na telefonie, a do tego potrzeba mieć roota na nim.

14

Odp: Wireguard i dwie sieci LAN

xury napisał/a:

No dzięki, ale nie o to mi chodziło.
Szukam możliwości wykorzystania tunelu na telefonie bez instalacji na laptopie czegokolwiek.  Z tego co się udało mi dowiedzieć to musiałbym ustawić routing na telefonie, a do tego potrzeba mieć roota na nim.

Z tego co wiem, to androd izoluje te sieci i się nie da. Tzn. android tworzy oddzielny interfejs sieciowy dla hotspota, ktory nie ma nic z vpn związanego.

15

Odp: Wireguard i dwie sieci LAN

pinix napisał/a:

Teraz już to pojąłem.

Moja konfiguracja.
Dwa serwery jeden z publicznym stałym a drugi po DDNS.
Dwóch klientów jeden stacjonarny (router) i drugi mobilny.
Czy dopuszczalna będzie taka konfiguracja stacjonarnego klienta? Mogę w tym przypadku utworzyć dwóch użytkowników dla jednego interfejsu wireguard. Czy raczej powinienem utworzyć dwa interfejsy. Sprawdziłbym ale nie mam jak. Muszę skonfigurować klienta, żeby sprawdzić na serwerze czy się łączy.

Możesz kilku na jeden interfejs. Ja mam jeden na kilka tunelu router-router i drugi na kilka koncówek dla urządzeń moiblnych. Bardziej podział dotyczy firewalla niż samego wireguarda.