Temat: OpenVPN nie działa tak jak bym chciał - brak pomysłów

Witam
Mam OpenVPN jak w załączonych plikach, jest tam schemat i uci show z dwóch routerów oraz konfiguracja serwera. Z uci wyrzuciłem ip serwera i nazwy certyfikatów.
Całą podsieć VPN do 192.168.100.x
Podsieć na jednym routerze to 192.168.2.x
Podsieć na drugim routerze to 192.168.52.x
poza tym podłączony telefon i komputer. Ze wszystkich urządzeń mogę się połączyć z siecią 192.168.2.x i każdym urządzeniem podłączonym do routera po wpisaniu jego ip oczywiście połączenie idzie przez VPN.
Niestety 192.168.52.x tak nie działa nie wiem dlaczego nie mogę się połączyć z adresami podpiętymi do routera, do samego routera mam dostęp i przez 192.168.100.26 jak i 192.168.52.1.
Wiem że jest też u mnie konflikt sieci 192.168.2.x bo taką sieć ma jako podsiec router 1 działający i router 2 jako WAN(zmienię tu ale dopiero za 2 tyg ktoś ogarnięty będzie w lokalizacji)
Poza tym jest jeszcze jedna różnica.
Router 192.168.2.x ma oprogramowanie OpenWrt 18.06.5 r7897-9d401013fc
Router 192.168.52.x ma oprogramowanie OpenWrt 18.06-SNAPSHOT r7911-f65330d27d
poza językiem różnią sie napewno tym że 2.x dogrywałem VPN, w 52.x juz był

Dodatkowo pytałem jakiś czas temu dlaczego mam dostępne tylko 14MB. Żeby było 100MB trzeba wgrać Gargoyle a potem OpenWrt 18.06-SNAPSHOT i jest 100MB jak wgramy odrazu OpenWrt 18.06-SNAPSHOT to nie działa 100MB pamięci.

ps. nie wie, jak tu załączyć pliki oraz wstawić obrazek więc daje link. Jak by administrator mógł to prosze to dodać.
https://drive.google.com/file/d/1L7oOBR … sp=sharing

2

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

Proszę rzućcie okiem na wyniki uci show, macie większe doświadczenie i może powiecie co tu nie działa hmm

3 (edytowany przez khain 2019-12-22 19:57:23)

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

Na pierwszy rzut oka to problemem jest to, że serwer wysyła routing o podsieciach (push route) do wszystkich klientów, również do tych, którzy mają tą podsieć jako swój LAN, więc klienci mają sprzeczne wpisy w tablicy routingu.
Poza tym w konfigu klienta openvpn masz tak namieszane, że ciężko połapać się co jest z czym i do czego.

Polecam przesiąść się na z topology net30 na topology subnet, więc wygeneruj dla każdego klienta osobny cert i klucz z różnymi Common Name.

1) config serwera:

mode                  server
port                  1194
proto                 udp
tls-server
ifconfig              10.8.0.1 255.255.255.0
topology              subnet
client-config-dir     ccd

cipher                AES-256-CBC

dev                   tun0
keepalive           25 180
status                openvpn.tun.status
verb                  3
log                        openvpn.tun.log

dh                    dh2048.pem
ca                    keys/ca.crt
cert                  keys/server.crt
key                   keys/server.key

persist-key
persist-tun
comp-lzo

push "route 192.168.2.0 255.255.255.0 10.8.0.2" #routing dla VPSa do podsieci za klientem z kamerami
push "route 192.168.52.0 255.255.255.0 10.8.0.3" #routing dla VPSa do podsieci za klientem z HMI

W pliku ccd utwórz plik o takiej nazwie jak Common Name klienta o zawartości:
a) dla klienta z kamerami:

ifconfig-push 10.8.0.2 255.255.255.0
iroute 192.168.2.0 255.255.255.0

b) dla klienta z HMI:

ifconfig-push 10.8.0.3 255.255.255.0
iroute 192.168.52.0 255.255.255.0

c) dla klientów, którzy nie są routerami

ifconfig-push 10.8.0.4 255.255.255.0

2) config klienta z kamerami:
a) plik /etc/config/openvpn:

config openvpn 'client1'
        option enabled '1'
        option config '/etc/openvpn/client1.conf'
        option status '/etc/openvpn.tun.status'

b) plik /etc/openvpn/client1.conf:

client
remote          ip_addres_lub_FQDN_serwera 1194
dev             tun
proto           udp
status          current_status
resolv-retry    infinite
topology        subnet
verb            3
cipher          AES-256-CBC
auth-nocache

ca              ca.crt
cert            client1.crt
key             client2.key

nobind
persist-key
persist-tun
comp-lzo

route-nopull
route 192.168.52.0 255.255.255.0 10.8.0.3

3) config klienta z HMI:
a) plik /etc/config/openvpn:

config openvpn 'client2'
        option enabled '1'
        option config '/etc/openvpn/client2.conf'
        option status '/etc/openvpn.tun.status'

b) plik /etc/openvpn/client2.conf:

client
remote          ip_addres_lub_FQDN_serwera 1194
dev             tun
proto           udp
status          current_status
resolv-retry    infinite
topology        subnet
verb            3
cipher          AES-256-CBC
auth-nocache

ca              ca.crt
cert            client1.crt
key             client2.key

nobind
persist-key
persist-tun
comp-lzo

route-nopull
route 192.168.2.0 255.255.255.0 10.8.0.2

4) config innych klientów (którzy nie są routerami):

client
remote          ip_addres_lub_FQDN_serwera 1194
dev             tun
proto           udp
status          current_status
resolv-retry    infinite
topology        subnet
verb            3
cipher          AES-256-CBC
auth-nocache

ca              ca.crt
cert            client1.crt
key             client2.key

nobind
persist-key
persist-tun
comp-lzo

Przy tym założeniu wszyscy klienci łączą się do VPSa i widzą się nawzajem, ale ci klienci którzy mają za sobą podsieć LAN nie dostają routingu od serwera (parametr route-nopull w konfigu klienta).
Jeśli potrzebni są nowi klienci to trzeba wygenerować dla nich cert i klucz oraz stworzyć plik w katalogu ccd na VPSie nadając im kolejny adres IP w podsieci tunelu openvpn (10.8.0.x)

Hosty za routerem z HMI nie będą widzieć hostów za routerem za kamerami (i vice versa) dopóki modem Orange i router będą mieli podsieć 192.168.2.0 między sobą.

Ps. Logi lub configi możesz wrzucać za pomocą "code" w BBCode http://eko.one.pl/forum/help.php?section=bbcode

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7

4

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

Dziękuję za odpowiedz, jutro będę to testował, ale mam kilak pytań
1. iroute 192.168.52.0 255.255.255.0 ja myslalem ze musze to powysyłać do wszystkich. Żeby klienci OpenVPN wiedzieli że te zakresy adresów muszą routować do tunelu a nie na świat przez WAN (no bo tam ich nei znajdą)
2. Czym się różnic net30 od subnet? Nigdzie nic na ten temat nie wiedziałem.
3. Widzę że sugerujesz nadawanie adresów 10.8.0.2, 3, 4 itp. A czy w openVPN nie jest tak że muszę być pary parzystę ? 20-22 24-26 itp.? czy to wlasnie ta struktura subnet?
4.  (parametr route-nopull w konfigu klienta) - rozumiem że to będzie powodowało nie widzenie się lanów nawzajem za routerami? Czyli np. jak chce tam gdzie jest HMI żeby jak ktoś się podłączył nie widział całej mojej sieci VPN? Na początek do testów mogę tego nie dodawać?

5 (edytowany przez manguscik 2019-12-16 16:58:14)

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

Tu masz opisane adresowanie w sieci VPN https://community.openvpn.net/openvpn/w … Addressing

subnet jest preferowane i sam też osobiście używam.

Stacja Pogody pracująca na LEDE / Openwrt + arduino. http://dominikowice.one.pl  Pomiar temperatury, ciśnienia, wilgotności  online + wykresy 24 godzinne, 7 dniowe, 30 dniowe, itp. A wszystko to na Routerze NETGEAR WNDR 4300 z wgranym LEDE.

6

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

Jeszcze jedno
route 192.168.2.0 255.255.255.0 10.10.0.2 #routing dla VPSa do podsieci za klientem z kamerami
rozumiem ze to blad i mialo byc 10.8.0.2?

7

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

poza tym skąd klient nie będący routerem będzie wiedział że adresów 192.168.2 lub 52 itp szukać w tunelu VPN jak serwer nie wysyła co routowć przez tunel?

8

Odp: OpenVPN nie działa tak jak bym chciał - brak pomysłów

@ziomal155
tak, ma być 10.8... a nie 10.10 oraz push "route.... " zamiast route.... -poprawiłem mój post.
Odpowiadając na pytania:
1. iroute jest po to, żeby serwer wiedział, który klient jaki adres IP ma otrzymać.
2. net30 o właśnie peer-to-peer czyli nadawanie adresów IP tak jak to opisałeś w pkt 3
3. subnet to tak jak nazwa wskazuje serwer i wszyscy klienci są w jednej podsieci (nie jest wymagany parametr client-to-client, aby klienci widzieli się nazwajem)
4. route-nopull w konfigu klienta powoduje odrzucenie wszystkich tras wysłanych przez serwer (push "route.... ") - jest to zastosowane tylko w konfigach klientów, którzy mają za sobą podsieć, więc nie powinni otrzymywać trasy o własnej podsieci od serwera.

TP-Link TL-WDR3600 v1.5 -  OpenWrt Chaos Calmer 15.05.1 with Luci +Microsoft LifeCam VX-3000
RaspberryPi 2 - OMV Stone Burner 2.0.15 +Creative SB Play +Medion OR24V +DVB-T Media-Tech MT4163  +MP00202AC +3xDS18B20 +HIH-4000-002 +MPXHZ6115A +Samsung SPF-85H +D-Link DUB-H7