1 (edytowany przez adalbert.dudziak 2018-01-05 00:21:13)

Temat: OpenVpn - Dostęp do sieci lokalnej za serwerem

Witam,
skonfigurowałem serwer OpenVPN w oparciu o >>tę instrukcję<<.

Tunel zestawia się bez problemu, jednak mam problem z dostępem do sieci lokalnej za serwerem.
Podejrzewam, że wynika to z faktu lekko innej sytuacji niż jest opisywana w instrukcji.

Mianowicie, router z WAN'em mam na 192.168.1.1, a router, na którym jest serwer OpenVPN jest na 192.168.1.2.
Także WAN nie jest bezpośrednio "przy" routerze, na którym jest serwer OpenWPN. Na routerze 192.168.1.1 ustawiłem przekierowanie portu wskazujące na serwer OpenVPN oraz odpowiedni port.

Jak pisałem tunel się zestawia i mam dostęp do internetu, jednak nie mam dostępu do sieci lokalnej za serwerem.
Będę wdzięczny za pomoc w ustawieniu reguł (podejrzewam, że o nie chodzi) firewall'a.

Pozdrawiam,
Wojtek


Rozwiązanie problemu oraz gotowa konfiguracja w poście #70

2

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

spróbuj wpisać "z ręki" adres docelowego urządzenia \\192.168.1.XXX

3

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Dodałeś wpis do konfigu serwera:

push "route 192.168.1.0 255.255.255.0"

Pokaż tablicę routingu klienta.

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 (edytowany przez adalbert.dudziak 2017-12-27 16:24:17)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

@kamilian brak mi biegłości w temacie aby bez kontekstu domyślić się co mi proponujesz.
Nie wiem czy wpisać to w jakiejś konfiguracji, w pasku adresu czy w "oknie uruchom";)

@khain
Tak dodałem wpis do konfiguracji serwera

Poniżej tablica routingu klienta (Windows 10)

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.43.1   192.168.43.155     55
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     35
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    291
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    291
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    291
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         10.8.0.5         10.8.0.6     35
     192.168.43.0    255.255.255.0         On-link    192.168.43.155    311
   192.168.43.155  255.255.255.255         On-link    192.168.43.155    311
   192.168.43.255  255.255.255.255         On-link    192.168.43.155    311
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link    192.168.43.155    311
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link    192.168.43.155    311
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    291
===========================================================================

Tabela wygenerowana podczas połączenia VPN.

5 (edytowany przez kamilian 2017-12-27 17:44:35)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

adalbert.dudziak - najprościej to uruchom np. Mój komputer i w pasku podaj adres do urządzenia na którym masz udostępnione dane smile

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

kamilian nie mam dostępu ani po nazwie hosta ani po ip, ani do udostępnionych zasobów sieci ani do innych hostów.
Już wiem o co Ci chodziło w twojej propozycji i odpowiem, że nie ma dostępu.
Dyski sieciowe mam zmapowane po IP, a nie po nazwie, właśnie po to aby po VPN był do nich dostęp.

7

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

A może rozrysuj jak masz to podłączone np
opcja nr 1:

[WAN]-Router1-[LAN.192.168.1.1] ->[WAN.192.168.1.2]-Router2{serwer openvpn}-[LAN.x.x.x.x]

czy może opcja nr 2:

[WAN]-Router1-[LAN.192.168.1.1] ->[LAN.192.168.1.2]-Router2{serwer openvpn}-[LAN.192.168.1.x]

i jak łączysz się tym laptopem, czy laptop ma własny niezależny internet czy robisz to z sieci LAN Routera2?
Jeżeli laptop jest podłączony przez wifi do innego routera to pewnie wiesz że sieci LAN za VPN i innej nie mogą się "pokrywać" w numeracji...

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

8 (edytowany przez adalbert.dudziak 2017-12-27 21:58:46)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

mar_w
Lekko zmieniona opcja 1.

[WAN]-Router1-[LAN.192.168.1.1] ->[LAN.192.168.1.2]-Router2{serwer openvpn}-[LAN.x.x.x.x]
Drugi router nie jest podłączony do pierwszego przez WAN.
Do portu LAN routera 192.168.1.1 jest wpięty drugi router z wyłączonym DHCP, na którym jest serwer OpenVPN jego adres to 192.168.1.2

Łączę się poprzez HotSpot z telefonu.
Tak doczytałem, że taka sama pula adresów obu sieci może powodować problemy.

9

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

To jeżeli masz wyłączony DHCP, to sieć za serwerem OpenVPN jest taka sama co "przed" serwerem OpenVPN, "kontrolowana" przez Router nr 1 jeśli chodzi o adresy i gateway.

Przeglądając tablicę routingu klienta pod Win10 widać coś niepokojącego:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.43.1   192.168.43.155     55
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     35
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    291
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    291
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    291
...

to oznacza, że chyba? operujesz na topologii -net30 więc skąd adresy 10.8.0.4 i 10.8.0.7 ???
Albo na sztywno wymuś na serwerze
topology subnet
oraz
client_to_client 1 (tak na wszelki wypadek)

bo coś mi się zdaje, że ten tunel nie działa tak jak powinien między klientem a serwerem, a gdzie tu jeszcze routing między sieciami

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

10 (edytowany przez adalbert.dudziak 2017-12-28 15:29:51)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Przywróciłem router do ustawień fabrycznych i skonfigurowałem wszystko od nowa, krok po kroku zgodnie z instrukcją z pierwszego posta, tak jakby "przy routerze był WAN". I tak przez chwilę testowałem, czyli router był bramą(192.168.1.1) i do jego WAN'a wpiąłem kabel "od dostawcy internetu". Wszystko działało, miałem dostęp do sieci lokalnej.

Prawdopodobnie DGN3500 jest za słaby aby obsłużyć łączę 500/40 (osiągałem transfery około 30/30Mbps), ponownie jako bramę wykorzystałem W9980, a DGN3500 podłączyłem do jego LAN (192.168.1.2) i tym razem mam dostęp jedynie do DGN3500.

Poniżej jeszcze konfiguracja mojego klienta OpenVPN na Windows, tak jak pisałem gdy router jest bramą wszystko działa.

client
dev tun0
proto udp
remote xxx.xxx.xxx.xxx 2123
remote-cert-tls server
verb 3
pkcs12 xxxxx.p12

11 (edytowany przez adalbert.dudziak 2017-12-28 23:40:32)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

mar_w, dodałem do konfiguracji serwera to co sugerowałeś i niestety nadal nie mam dostępu do sieci lokalnej:

config openvpn 'home'
    [b]option topology 'subnet'[/b]
    option enabled '1'
    option dev 'tun0'
    option port '1194'
    option proto 'udp'
    option log '/tmp/openvpn.log'
    option verb '3'
    option ca '/etc/openvpn/ca.crt'
    option cert '/etc/openvpn/serwer.crt'
    option key '/etc/openvpn/serwer.key'
    option server '10.8.0.0 255.255.255.0'
    option dh '/etc/openvpn/dh2048.pem'
    list push 'route 192.168.1.0 255.255.255.0'
    [b]option client_to_client '1'[/b]

Status z klienta OpenVPN (windows 10) po połączeniu:

Thu Dec 28 15:00:17 2017 OpenVPN 2.4.4 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Sep 26 2017
Thu Dec 28 15:00:17 2017 Windows version 6.2 (Windows 8 or greater) 64bit
Thu Dec 28 15:00:17 2017 library versions: OpenSSL 1.0.2l  25 May 2017, LZO 2.10
Thu Dec 28 15:00:17 2017 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Thu Dec 28 15:00:17 2017 Need hold release from management interface, waiting...
Thu Dec 28 15:00:17 2017 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Thu Dec 28 15:00:17 2017 MANAGEMENT: CMD 'state on'
Thu Dec 28 15:00:17 2017 MANAGEMENT: CMD 'log all on'
Thu Dec 28 15:00:17 2017 MANAGEMENT: CMD 'echo all on'
Thu Dec 28 15:00:17 2017 MANAGEMENT: CMD 'hold off'
Thu Dec 28 15:00:17 2017 MANAGEMENT: CMD 'hold release'
Thu Dec 28 15:00:17 2017 MANAGEMENT: >STATE:1514469617,RESOLVE,,,,,,
Thu Dec 28 15:00:17 2017 TCP/UDP: Preserving recently used remote address: [AF_INET]xxx.xxx.xxx.xxx:2123
Thu Dec 28 15:00:17 2017 Socket Buffers: R=[65536->65536] S=[65536->65536]
Thu Dec 28 15:00:17 2017 UDP link local (bound): [AF_INET][undef]:1194
Thu Dec 28 15:00:17 2017 UDP link remote: [AF_INET]xxx.xxx.xxx.xxx:2123
Thu Dec 28 15:00:17 2017 MANAGEMENT: >STATE:1514469617,WAIT,,,,,,
Thu Dec 28 15:00:17 2017 MANAGEMENT: >STATE:1514469617,AUTH,,,,,,
Thu Dec 28 15:00:17 2017 TLS: Initial packet from [AF_INET]xxx.xxx.xxx.xxx:2123, sid=2e5b133a 14dfd208
Thu Dec 28 15:00:18 2017 VERIFY OK: depth=1, C=PL, ST=Mazow, L=Warsaw, O=Home, OU=Home, CN=LEDE Server, name=Router, emailAddress=dudinr1@wp.pl
Thu Dec 28 15:00:18 2017 VERIFY KU OK
Thu Dec 28 15:00:18 2017 Validating certificate extended key usage
Thu Dec 28 15:00:18 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Thu Dec 28 15:00:18 2017 VERIFY EKU OK
Thu Dec 28 15:00:18 2017 VERIFY OK: depth=0, C=PL, ST=Mazow, L=Warsaw, O=Home, OU=Home, CN=Lede, name=Router, emailAddress=dudinr1@wp.pl
Thu Dec 28 15:00:18 2017 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Thu Dec 28 15:00:18 2017 [Lede] Peer Connection Initiated with [AF_INET]xxx.xxx.xxx.xxx:2123
Thu Dec 28 15:00:19 2017 MANAGEMENT: >STATE:1514469619,GET_CONFIG,,,,,,
Thu Dec 28 15:00:19 2017 SENT CONTROL [Lede]: 'PUSH_REQUEST' (status=1)
Thu Dec 28 15:00:19 2017 PUSH: Received control message: 'PUSH_REPLY,route 192.168.1.0 255.255.255.0,route-gateway 10.8.0.1,topology subnet,ifconfig 10.8.0.2 255.255.255.0,peer-id 0,cipher AES-256-GCM'
Thu Dec 28 15:00:19 2017 OPTIONS IMPORT: --ifconfig/up options modified
Thu Dec 28 15:00:19 2017 OPTIONS IMPORT: route options modified
Thu Dec 28 15:00:19 2017 OPTIONS IMPORT: route-related options modified
Thu Dec 28 15:00:19 2017 OPTIONS IMPORT: peer-id set
Thu Dec 28 15:00:19 2017 OPTIONS IMPORT: adjusting link_mtu to 1624
Thu Dec 28 15:00:19 2017 OPTIONS IMPORT: data channel crypto options modified
Thu Dec 28 15:00:19 2017 Data Channel: using negotiated cipher 'AES-256-GCM'
Thu Dec 28 15:00:19 2017 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Thu Dec 28 15:00:19 2017 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Thu Dec 28 15:00:19 2017 interactive service msg_channel=0
Thu Dec 28 15:00:19 2017 ROUTE_GATEWAY 192.168.43.1/255.255.255.0 I=9 HWADDR=c4:85:08:86:d0:e4
Thu Dec 28 15:00:19 2017 open_tun
Thu Dec 28 15:00:19 2017 TAP-WIN32 device [Ethernet 2] opened: \\.\Global\{87E9C6E0-F742-4C29-937C-3E3FC6A1C2B7}.tap
Thu Dec 28 15:00:19 2017 TAP-Windows Driver Version 9.21 
Thu Dec 28 15:00:19 2017 Set TAP-Windows TUN subnet mode network/local/netmask = 10.8.0.0/10.8.0.2/255.255.255.0 [SUCCEEDED]
Thu Dec 28 15:00:19 2017 Notified TAP-Windows driver to set a DHCP IP/netmask of 10.8.0.2/255.255.255.0 on interface {87E9C6E0-F742-4C29-937C-3E3FC6A1C2B7} [DHCP-serv: 10.8.0.254, lease-time: 31536000]
Thu Dec 28 15:00:19 2017 Successful ARP Flush on interface [17] {87E9C6E0-F742-4C29-937C-3E3FC6A1C2B7}
Thu Dec 28 15:00:19 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Thu Dec 28 15:00:19 2017 MANAGEMENT: >STATE:1514469619,ASSIGN_IP,,10.8.0.2,,,,
Thu Dec 28 15:00:24 2017 TEST ROUTES: 1/1 succeeded len=1 ret=1 a=0 u/d=up
Thu Dec 28 15:00:24 2017 MANAGEMENT: >STATE:1514469624,ADD_ROUTES,,,,,,
Thu Dec 28 15:00:24 2017 C:\WINDOWS\system32\route.exe ADD 192.168.1.0 MASK 255.255.255.0 10.8.0.1
Thu Dec 28 15:00:24 2017 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=35 and dwForwardType=4
Thu Dec 28 15:00:24 2017 Route addition via IPAPI succeeded [adaptive]
Thu Dec 28 15:00:24 2017 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Thu Dec 28 15:00:24 2017 Initialization Sequence Completed
Thu Dec 28 15:00:24 2017 MANAGEMENT: >STATE:1514469624,CONNECTED,SUCCESS,10.8.0.2,xxx.xxx.xxx.xxx,2123,,

To co dodałem do firewall:

config zone
    option name 'vpn'
    option input 'ACCEPT'
    option forward 'ACCEPT'
    option output 'ACCEPT'
    option network 'vpn'
    option masq '1'

config rule
    option name 'OpenVPN'
    option target 'ACCEPT'
    option src 'wan'
    option proto 'udp'
    option dest_port '1194'

config forwarding
    option dest 'wan'
    option src 'vpn'

config forwarding
    option dest 'vpn'
    option src 'wan'

config forwarding
    option dest 'vpn'
    option src 'lan'

config forwarding
    option dest 'wan'
    option src 'lan'

12

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Gdy stosujesz topology subnet musisz podać next hop przy push route czyli

push 'route 192.168.1.0 255.255.255.0 10.8.0.1'

Powinieneś dodać w /etc/config/firewall

config forwarding
        option dest 'lan'
        option src 'vpn'
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

13 (edytowany przez adalbert.dudziak 2017-12-29 09:27:14)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Dodałem "next hop" oraz forwarding.
Niestety ciągle nie mam dostępu do sieci lan.

Aktualna tablica routingu po zmianach w topologii oraz dodaniu next hop:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.43.1   192.168.43.155     55
         10.8.0.0    255.255.255.0         On-link          10.8.0.2    291
         10.8.0.2  255.255.255.255         On-link          10.8.0.2    291
       10.8.0.255  255.255.255.255         On-link          10.8.0.2    291
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         10.8.0.1         10.8.0.2     35
     192.168.43.0    255.255.255.0         On-link    192.168.43.155    311
   192.168.43.155  255.255.255.255         On-link    192.168.43.155    311
   192.168.43.255  255.255.255.255         On-link    192.168.43.155    311
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link    192.168.43.155    311
        224.0.0.0        240.0.0.0         On-link          10.8.0.2    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link    192.168.43.155    311
  255.255.255.255  255.255.255.255         On-link          10.8.0.2    291
===========================================================================

Aktualny config serwera OpenVPN:

config openvpn 'home'
    option topology 'subnet'
    option enabled '1'
    option dev 'tun0'
    option port '1194'
    option proto 'udp'
    option log '/tmp/openvpn.log'
    option verb '3'
    option ca '/etc/openvpn/ca.crt'
    option cert '/etc/openvpn/serwer.crt'
    option key '/etc/openvpn/serwer.key'
    option server '10.8.0.0 255.255.255.0'
    option dh '/etc/openvpn/dh2048.pem'
    list push 'route 192.168.1.0 255.255.255.0 10.8.0.1'
    option client_to_client '1'

Aktualny cały plik firewall:

config defaults
    option syn_flood '1'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'ACCEPT'
    option network 'lan'

config zone
    option name 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'
    option network 'wan wan6'

config rule
    option name 'Allow-DHCP-Renew'
    option src 'wan'
    option proto 'udp'
    option dest_port '68'
    option target 'ACCEPT'
    option family 'ipv4'

config rule
    option name 'Allow-Ping'
    option src 'wan'
    option proto 'icmp'
    option icmp_type 'echo-request'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-IGMP'
    option src 'wan'
    option proto 'igmp'
    option family 'ipv4'
    option target 'ACCEPT'

config rule
    option name 'Allow-DHCPv6'
    option src 'wan'
    option proto 'udp'
    option src_ip 'fc00::/6'
    option dest_ip 'fc00::/6'
    option dest_port '546'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-MLD'
    option src 'wan'
    option proto 'icmp'
    option src_ip 'fe80::/10'
    list icmp_type '130/0'
    list icmp_type '131/0'
    list icmp_type '132/0'
    list icmp_type '143/0'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-ICMPv6-Input'
    option src 'wan'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    list icmp_type 'router-solicitation'
    list icmp_type 'neighbour-solicitation'
    list icmp_type 'router-advertisement'
    list icmp_type 'neighbour-advertisement'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-ICMPv6-Forward'
    option src 'wan'
    option dest '*'
    option proto 'icmp'
    list icmp_type 'echo-request'
    list icmp_type 'echo-reply'
    list icmp_type 'destination-unreachable'
    list icmp_type 'packet-too-big'
    list icmp_type 'time-exceeded'
    list icmp_type 'bad-header'
    list icmp_type 'unknown-header-type'
    option limit '1000/sec'
    option family 'ipv6'
    option target 'ACCEPT'

config rule
    option name 'Allow-IPSec-ESP'
    option src 'wan'
    option dest 'lan'
    option proto 'esp'
    option target 'ACCEPT'

config rule
    option name 'Allow-ISAKMP'
    option src 'wan'
    option dest 'lan'
    option dest_port '500'
    option proto 'udp'
    option target 'ACCEPT'

config include
    option path '/etc/firewall.user'

config zone
    option name 'vpn'
    option input 'ACCEPT'
    option forward 'ACCEPT'
    option output 'ACCEPT'
    option network 'vpn'
    option masq '1'

config forwarding
    option dest 'lan'
    option src 'vpn'

config forwarding
    option dest 'vpn'
    option src 'lan'

W tej konfiguracji, po łączu komórkowym z zestawionym tunelem mam dostęp do routera, na którym jest serwer OpenVPN.
Mogę się do niego dostać po IP jakie ma "w swojej sieci" LAN 192.168.1.2 (widzę tylko jego w tej puli adresów) oraz po IP bramy Serwera OpenVPN 10.0.8.1.

P.S.
przekierowując porty mogę się dostać do hostów w sieci LAN za serwerem VPN, jednak nie do końca o to mi chodzi;)

14

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Cezary,
będąc w tym temacie jeśli chodzi o poradnik miałbym pytanie (porównania i różnice)

1. odnośnie przypadku: https://eko.one.pl/?p=openwrt-openvpntu … lanklienta
na początku mamy ustawiony routing na serwerze oraz na klientach, dalej serwer wie z pliku ccd/malgosia, że sieć x.x.2.0 jest za klientem malgosia.
Następnie jest propozycja dodania w firewallu klienta opcji: masq 1

2. odnośnie przypadku: https://eko.one.pl/?p=openwrt-openvpntu … inkklienta
na początku mamy ustawiony routing na serwerze oraz na klientach, dalej serwer wie z pliku ccd/malgosia, że sieć x.x.8.0 jest "za"  klientem malgosia.
Następnie nie ma propozycji dodania w firewallu klienta opcji: masq 1

A przecież w obu przypadkach odwołujemy się do "prawdziwych" adresów poszczególnych hostów którzy są "za" i "przed" klientem (na WAN-ie i na LAN-ie) i raz jest masq a raz nie ma.

3. czy opcja masq nie powinna być dopisana w rozdziale: https://eko.one.pl/?p=openwrt-openvpntu … eztunelvpn
bo ona jest, ale rozdział wyżej...

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

15

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

1. Bez tego nie działa dostęp do komputerów za lanem klienta. I znów - tu zakładamy że "klient" jest tym routerem wyjściowym w świat do którego na lanie są inne komputery. Nie że klient jest jakimś tam host w środku czarnej dziury (sieci lan) i z niego ma być dostęp do innych urządzeń w tej samej sieci.
2. No widzisz, a mimo wszystko to działa poprawnie bo modem jest na wanie...
3. jest tak jak powinno. Jeżeli łączysz się tylko klientem (i to wszystko co potrzebujesz) to żadnych firewalli i masq nie ustawiasz bo i po co. Chyba że chcesz mieć dostęp do sieci za klientem, wtedy patrzysz punkty poprzednie. Jak łączysz się androidem czy windowsem to też żadnych masq nie ustawiasz.

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

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Wracając do tematu.
Kilkanaście opcji konfiguracji później... bez sukcesu.

Na Rpi3 skonfigurowałem serwer OpenVPN, który po wpięciu do LAN'u zestawia tunel bez problemu i mam dostęp do sieci lokalnej za serwerem. Poniżej przedstawię konfigurację z serwera OpenVPN na Rpi3, może to pomoże w znalezieniu problemu.
Po zastosowanie konfiguracji serwera i klienta z Rpi na LEDE sam tunel się zestawia lecz nie mam dostępu do sieci lokalnej. Podejrzewam, że to kwestia routingu VPN<->LAN, który na Rpi3 nie występuje i nie trzeba go konfigurować.

Konfiguracja serwera OpenVPN na Rpi3:

local 192.168.1.15
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
# server and remote endpoints
ifconfig 10.8.0.1 10.8.0.2
# Add route to Client routing table for the OpenVPN Server
push "route 10.8.0.1 255.255.255.255"
# Add route to Client routing table for the OPenVPN Subnet
push "route 10.8.0.0 255.255.255.0"
# your local subnet
push "route 192.168.1.15 255.255.255.0"
# Set your primary domain name server address to Google DNS 8.8.8.8
push "dhcp-option DNS 8.8.8.8"
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
cipher AES-128-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
verb 1
# This configuration file was originally written by Lauren Orsini at ReadWrite.

Konfiguracja klienta:

client

proto udp

dev tun
remote *****.ddns.net 1194

ns-cert-type server
persist-key

persist-tun
nobind
resolv-retry infinite


mute 20

mute-replay-warnings

key-direction 1
cipher AES-128-CBC
comp-lzo
verb 1

<ca>
-----BEGIN CERTIFICATE **** END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE **** END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY **** END RSA PRIVATE KEY-----
</key>
<tls-auth>-----BEGIN **** END OpenVPN Static key V1-----
</tls-auth>

Dużo czytanie i prób ale nie ma tego złego, trochę się dowiedziałem i sporo zrozumiałem... Takie korzyści z prób rozwiązania problemu:)

17

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

bo na Rpi3 masz topologię -net30 (która jest domyślną topologią, gdy sztywno nie określisz inaczej) i może w tym jest jakiś myk.

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

18 (edytowany przez adalbert.dudziak 2017-12-29 22:24:33)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Początkowo prawdopodobnie operowałem na topologii -net30 #9, jednak coś nie tak było z tablicą routingu. Dlatego próbowaliśmy wymusić topologię "subnet" i "dodaliśmy next hop".

Mam już trzy różne konfiguracje serwera i trzech klientów do testów... Jest co testować:)

"Kombinowałem" z statycznym rouitngiem, pomyślałem że skoro do routera się dostaję to może tym sposobem uda się dalej przekierować ruch. Wpisałem:

| Interface |  Target  | IPv4-Netmask  |  IPv4-Gateway  | Metric | MTU  | Route type |     
|    vpn    | 10.8.0.0 | 255.255.255.0 |  192.168.1.2   |   10   | 1500 |    local   |

Zastanawiam się czy to może być dobry trop.

19

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

Cezary,
nawiązałem do poradnika, ponieważ chciałem rozstrzygnąć kwestię czy musi być "masq", czy nie musi, oraz czy nie powoduje problemów.

Ad.1
Zauważ, że w poradniku Rafała client.lan2  jest routerem wyjściowym w świat i ma za sobą armię hostów a mimo to nie ma w konfigu firewalla maskarady i wszystko działa jak należy. (ja też mam tak samo jak Rafał)
http://rpc.one.pl/index.php/lista-artyk … -w-openwrt
rozdział błędnie nazwany: Firewall na serwerze OpenVpn (vpn_client_lan2.dyndns.biz - LAN2):

Ad.3.

[klientOpenVPN - eth0 {IP_ZA_NATEM} + tun0 {10.8.0.5}] <=> [eth0 {PUBLIC_IP} + tun0 {10.8.0.1} - serwerOpenVPN]

a) Serwer wysyła domyślną trasę do klientaVPN.
b) klient chce otworzyć np moje-ip.eu więc ładuje zapytanie w tunel do serwera (bo ma taką nową tablicę routingu)
c) serwer odbiera od klienta pakiet...
d) w tym momencie serwer powinien podmienić adres na swój PUBLICZNY i klient powinien otrzymać informację, że jego IP to PUBLICZNY_ADRES_IP serwera OpenVPN a nie np. 46.112.26.112 - operatora PLAY.

Pytanie: Jak ma serwer VPN to zrobić skoro nie ma maskarady?

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

20

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

1. Jak pisałem - ja musiałem dodać inaczej nie działało.
3. Coś za bardzo wnikasz. Po prostu to działa, nie potrzebujesz nawet firewalla, stref w nim, maskarady, forwardingu itd, o ile ma być ruch tylko z tego hosta a nie z sieci za nim.

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

21

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

1. Cezary, przecież nie chodzi mi o to, że źle napisałeś czy coś w tym stylu, zastanawiam się tylko dlaczego Ty musiałeś dodać tą opcję a Rafał nie musiał i ... też wszystko chodzi jak należy.
3. Wnikam, bo próbuję zrozumieć schemat przepływu pakietów i zmiany nagłówka itp. Oczywiście, że chodziło mi o ruch bezpośrednio z tego hosta (klientaOpenVPN) przez serwer OpenVPN.

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

22

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

@mar_w
@post 13 Ad.3 lit. d:
Zakładając, że na strefie vpn nie ma maskarady w firewallu oraz, że serwer wysyła swoją bramę domyślną do klientów to pakiet wysłany przez klienta vpn do Internetu otrzymuje maskaradę (zamiana adresu IP źródłowego w pakiecie) na interfejsie WAN serwera (bo pakiet musi przejść przez tą strefę aby "wydostać" się do Internetu), więc strona, która podałeś (i każda inna) otworzy się prawidłowo.
Ad.1 Maskarada na strefie vpn serwera ma zastosowanie, gdy za klientem jest więcej hostów a nie ma możliwości dodania trasy routingu do serwera do podsieci za klientem (hosty za klientem będą mogły dostać się do hostów za serwerem - w drugą stronę nie będzie to działać -> tak jak to jest teraz u adalbert.dudziak)

@adalbert.dudziak Musisz dodać trasę do tablicy routingu routera do podsieci 10.8.0.0/24 przez 192.168.1.2 oraz zrobić forward pakietów w firewallu na routerze https://community.openvpn.net/openvpn/w … ultgateway

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

23 (edytowany przez mar_w 2017-12-30 21:06:20)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

khain napisał/a:

@mar_w
...
Ad.1 Maskarada na strefie vpn serwera ma zastosowanie, gdy za klientem jest więcej hostów a nie ma możliwości dodania trasy routingu do serwera do podsieci za klientem (hosty za klientem będą mogły dostać się do hostów za serwerem - w drugą stronę nie będzie to działać -> tak jak to jest teraz u adalbert.dudziak)
...

OK, ale w poradniku jest dodana ta możliwość w konfigu serwera OpenVPN poprez wpisy:

# uci add_list openvpn.home.route='192.168.2.0 255.255.255.0'
# uci add_list openvpn.home.push='route 192.168.2.0 255.255.255.0'

przecież serwer VPN dodaje sobie trasę do podsieci LAN która jest za klientem(nr2) VPN, oraz wysyła innym klientom VPN trasę do podsieci LAN która jest za klientem(nr2) VPN.
I dodatkowo jest masq w firewallu. I dlatego chciałem się dowiedzieć po co, skoro działa bez masq i czy to nie spowalnia całego ruchu (bo na pewno nie przyspieszy).

khain napisał/a:

@mar_w
@post 13 Ad.3 lit. d:
Zakładając, że na strefie vpn nie ma maskarady w firewallu oraz, że serwer wysyła swoją bramę domyślną do klientów to pakiet wysłany przez klienta vpn do Internetu otrzymuje maskaradę (zamiana adresu IP źródłowego w pakiecie) na interfejsie WAN serwera (bo pakiet musi przejść przez tą strefę aby "wydostać" się do Internetu), więc strona, która podałeś (i każda inna) otworzy się prawidłowo.

Zorientowałem się że to akurat jest zapewnione przez forward między vpn->wan a zamiana adresów jest poprzez masq na WAN-ie serwera OpenVPN a nie poprzez masq w strefie vpn.
I gdyby nie forward vpn->wan to pakiet nigdy by się nie wydostał na świat.

* WNDR 4300v2 * ||  * Xiaomi Miwifi Mini * || Netgear R6220 *
* DVBT2 - T230C *

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

@khain,
24.a)

khain napisał/a:

Musisz dodać trasę do tablicy routingu routera do podsieci 10.8.0.0/24 przez 192.168.1.2

Czy tu chodzi o przekierowanie portu, czy dodanie do routingu statycznego poniższego wpisu?

| Interface |  Target  | IPv4-Netmask  |  IPv4-Gateway  | Metric | MTU  | Route type |     
|    vpn    | 10.8.0.0 | 255.255.255.0 |  192.168.1.2   |   10   | 1500 |    unicast |

Póki co dodałem wpis do tablicy routingu statycznego, jednak chcę się upewnić czy o to chodziło.

24.b)

khain napisał/a:

oraz zrobić forward pakietów w firewallu na routerze https://community.openvpn.net/openvpn/w … ultgateway

Już to dodałem do konfiguracji firewall, pytanie czy dobrze.

config rule
    option target 'ACCEPT'
    option name 'VPN<>LAN'
    option src 'vpn'
    option dest 'lan'

config rule
    option enabled '1'
    option target 'ACCEPT'
    option name 'LAN<>VPN'
    option src 'lan'
    option dest 'vpn'

Podpowiedzcie mi proszę, czy te wpisy przekierowują ruch, czy jedynie pozwalają na jego przepływ?

24.c)
w konfiguracji serwera, zgodnie z sugestiami z linku. zmieniłem poniższe:

list push 'route 192.168.1.0 255.255.255.0' #usunąłem "next hop"w postaci 10.8.0.1
list push 'redirect-gateway def1' # dodałem tę linijkę, nie wiem czy nie powinno być "option redirect-gateway 'def1'"

Dopytuję bo sam autor wpisu wspomniał, że nie testował i mogą być jakieś błędy składniowe. Na przykład topologię sieci zostawił "subnet", a nie dodał "next hop". Nie wiem czy zawsze musi być, zauważyłem to jednak nie jestem w stanie zweryfikować poprawności.

Po zmianach nadal nie mam dostępu do sieci LAN, jak potwierdzę poprawność zmian z tego postu postawię całość od nowa na spokojnie z uwzględnieniem nowych wskazówek.

25 (edytowany przez khain 2017-12-30 21:48:06)

Odp: OpenVpn - Dostęp do sieci lokalnej za serwerem

a) Tak chodzi o dodanie statycznej trasy routingu na routerze(nie na RPI)
b) Chodzi o zezwolenie na przepływ pakietów pomiędzy tymi strefami na rpi (masz openrwt/lede na rpi?). Wygląda dobrze, jeśli w /etc/config/network masz:

config interface 'vpn'
        option ifname 'tun0'
        option proto 'none'

c) Tu masz działający config w topology subnet.
Zawartość pliku /etc/config/openvpn:

config openvpn 'tun_lan'
        option enabled '1'
        option config '/etc/openvpn/server.conf'

Zawartośc pliku /etc/openvpn/server.conf:

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

cipher                AES-256-CBC

dev                   tun0
keepalive              25 180
status                /tmp/openvpn.status
verb                  3

dh                    /etc/openvpn/dh2048.pem
ca                    /etc/openvpn/ca.crt
cert                  /etc/openvpn/server.crt
key                   /etc/openvpn/server.key
tls-auth              /etc/openvpn/ta.key 0

persist-key
persist-tun
comp-lzo

push "topology subnet"
push "route-gateway 10.8.0.1" //potrzebne jeśli klienci mają mieć publiczny adres IP serwer openvpn
push "redirect-gateway def1"  //potrzebne jeśli klienci mają mieć publiczny adres IP serwer openvpn

route 172.16.1.0 255.255.255.0 10.8.0.2
push "route 192.168.1.0 255.255.255.0 10.8.0.1"

Zawartość pliku ccd dla klienta, który posiada podsieć 172.16.1.0 (plik musi mieć nazwę taką jak Common Name w certyfikacie tego klienta i znajdować się w /etc/openvpn/ccd):

ifconfig-push 10.8.0.2 255.255.255.0
iroute 172.16.1.0 255.255.255.0

172.16.1.0/24 - podsieć za klientem
192.168.1.0/24 - podsieć za serwerem
10.8.0.0/24 - podsieć tunelu openvpn

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