1

Temat: Konfiguracja openvpn

Witam,

Walczę od piątku z openvpn ale cienki jestem w te klocki i nie potrafię sobie z tym poradzić więc zwracam się z prośbą o wskazówki. Najpierw moja konfiguracja:
- sieć lan: komputer z Windowsem, serwer debiana, router WRT160NL z openwrt i jakieś inne dodatki, sieć 192.168.1.1-255
- internet: łączę poprzez modem gsm lte podpięty pod router WRT160NL z openwrt, na tym routerze mam serwer dhcp
- mam wykupiony serwer vps z publicznym ip (tiktalik)
Prosty schemat konfiguracji
A chciałbym uzyskać:
- możliwość łączenia się z zewnątrz z serwerem debiana w mojej sieci lan poprzez ssh
- możliwość łączenia się z zewnątrz z komputerem z Windowsem w mojej sieci lan poprzez pulpit zdalny
- możliwość łączenia się z komórki do strony domoticza  wystawionej na debianie w sieci lan
- możliwość synchronizacji plików z owncloud postawionego na debianie w sieci lan, synchronizacja z laptopa i z komórki, z lan oraz z internetu
Obecnie korzystam z n2n i działa mi bezproblemowo, ale nie działa na komórce. Musiałbym ją zrootować a tego nie mogę zrobić. Chcę więc skonfigurować sobie openvpna. Na razie udało mi się:
1.    Postawiłem server openvpn na vps
2.    Skonfigurowałem klienta na WRT160NL
Wygląda, że działa ale pingi pomiędzy serwerem a klientem nie chodzą.

Byłbym wdzięczny za naprowadzenie jak to ugryźć.

Poniżej zrzuty z konfiguracji:

Konfiguracja po stronie serwera openvpn (vps)

root@debian:~# ifconfig
eth0      Link encap:Ethernet  HWaddr e6:fe:a9:df:58:bc
          inet addr:XXX.XXX.XXX.XXX  Bcast:XXX.XXX.XXX.XXX  Mask:255.255.255.0 //XXX.XXX.XXX.XXX - tutaj mam oczywiście mój publiczny ip vps'a
          inet6 addr: fe80::e4fe:a9ff:fedf:58bc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:840430 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43806 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:51470675 (49.0 MiB)  TX bytes:7622952 (7.2 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:504 (504.0 B)  TX bytes:504 (504.0 B)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.16.0.1  P-t-P:172.16.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7862 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:660408 (644.9 KiB)

root@debian:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         37.233.103.1    0.0.0.0         UG    0      0        0 eth0
37.233.103.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
172.16.0.0      172.16.0.2      255.255.255.0   UG    0      0        0 tun0
172.16.0.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0

root@debian:~# netstat -tunlp|grep vpn
udp        0      0 0.0.0.0:1194            0.0.0.0:*                           801/openvpn

root@debian:~# iptables -L -n|grep 1194
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:1194

root@debian:~# iptables --list|grep vpn
ACCEPT     udp  --  anywhere             anywhere             udp dpt:openvpn

Konfiguracja po stronie klienta openvpn (WRT160NL)

 
root@OpenWrt:/etc/config# ifconfig
br-lan    Link encap:Ethernet  HWaddr 00:23:69:C7:D5:56
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::223:69ff:fec7:d556/64 Scope:Link
          inet6 addr: fd41:4950:e201::1/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:568816 errors:0 dropped:5 overruns:0 frame:0
          TX packets:835686 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:177744218 (169.5 MiB)  TX bytes:903846324 (861.9 MiB)

eth0      Link encap:Ethernet  HWaddr 00:23:69:C7:D5:56
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:593192 errors:0 dropped:10 overruns:0 frame:0
          TX packets:836617 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:190182982 (181.3 MiB)  TX bytes:903908098 (862.0 MiB)
          Interrupt:4

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1815 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1815 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:183008 (178.7 KiB)  TX bytes:183008 (178.7 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.16.0.6  P-t-P:172.16.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:10 overruns:0 frame:0
          TX packets:24760 errors:0 dropped:21555 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:34458286 (32.8 MiB)

wwan0     Link encap:Ethernet  HWaddr 0C:5B:8F:27:9A:64
          inet addr:10.131.157.209  Bcast:10.131.157.211  Mask:255.255.255.252
          inet6 addr: fe80::e5b:8fff:fe27:9a64/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:839962 errors:0 dropped:0 overruns:0 frame:0
          TX packets:562041 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:895189328 (853.7 MiB)  TX bytes:2521853905 (2.3 GiB)

root@OpenWrt:/etc/config# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.5      128.0.0.0       UG    0      0        0 tun0
0.0.0.0         10.131.157.210  0.0.0.0         UG    0      0        0 wwan0
10.131.157.208  0.0.0.0         255.255.255.252 U     0      0        0 wwan0
128.0.0.0       172.16.0.5      128.0.0.0       UG    0      0        0 tun0
172.16.0.1      172.16.0.5      255.255.255.255 UGH   0      0        0 tun0
172.16.0.5      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lan

root@OpenWrt:/etc/config# netstat -tunlp|grep vpn
udp        0      0 0.0.0.0:1194            0.0.0.0:*                           8170/openvpn

root@OpenWrt:/etc/config# iptables -L -n|grep vpn
Chain zone_vpn_forward (0 references)
Chain zone_vpn_input (0 references)
Chain zone_vpn_output (0 references)

root@OpenWrt:/etc/config# iptables -L -n|grep 1194
nic nie zwraca

2

Odp: Konfiguracja openvpn

I dodam jeszcze zrzut z log'a klienta

root@OpenWrt:/etc/config# cat /tmp/openvpn.log
Sun Jan 22 23:04:53 2017 OpenVPN 2.3.6 mips-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Jan  6 2015
Sun Jan 22 23:04:53 2017 library versions: OpenSSL 1.0.2f  28 Jan 2016, LZO 2.08
Sun Jan 22 23:04:53 2017 WARNING: file '/etc/openvpn/tomek.key' is group or others accessible
Sun Jan 22 23:04:53 2017 Socket Buffers: R=[163840->131072] S=[163840->131072]
Sun Jan 22 23:04:53 2017 UDPv4 link local (bound): [undef]
Sun Jan 22 23:04:53 2017 UDPv4 link remote: [AF_INET]XXX.XXX.XXX.XXX:1194 //tutaj mam publiczny ip vps'a
Sun Jan 22 23:04:53 2017 TLS: Initial packet from [AF_INET]XXX.XXX.XXX.XXX:1194, sid=46b4af6a 77438118 //tutaj mam publiczny ip vps'a
Sun Jan 22 23:04:59 2017 VERIFY OK: depth=1, C=PL, ST=mazowieckie, L=Warsaw, O=Tomasz Lewandowski, OU=telewy, CN=Tomasz Lewandowski CA, name=server, emailAddress=tomasz.lewandowski@mail.com
Sun Jan 22 23:04:59 2017 Validating certificate key usage
Sun Jan 22 23:04:59 2017 ++ Certificate has key usage  00a0, expects 00a0
Sun Jan 22 23:04:59 2017 VERIFY KU OK
Sun Jan 22 23:04:59 2017 Validating certificate extended key usage
Sun Jan 22 23:04:59 2017 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sun Jan 22 23:04:59 2017 VERIFY EKU OK
Sun Jan 22 23:04:59 2017 VERIFY OK: depth=0, C=PL, ST=mazowieckie, L=Warsaw, O=Tomasz Lewandowski, OU=telewy, CN=server, name=server, emailAddress=tomasz.lewandowski@mail.com
Sun Jan 22 23:05:02 2017 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun Jan 22 23:05:02 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Jan 22 23:05:02 2017 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun Jan 22 23:05:02 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Jan 22 23:05:02 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Sun Jan 22 23:05:02 2017 [server] Peer Connection Initiated with [AF_INET]XXX.XXX.XXX.XXX:1194 //tutaj mam publiczny ip vps'a
Sun Jan 22 23:05:04 2017 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Sun Jan 22 23:05:04 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 172.16.0.1,topology net30,ping 10,ping-restart 120,ifconfig 172.16.0.6 172.16.0.5'
Sun Jan 22 23:05:04 2017 OPTIONS IMPORT: timers and/or timeouts modified
Sun Jan 22 23:05:04 2017 OPTIONS IMPORT: --ifconfig/up options modified
Sun Jan 22 23:05:04 2017 OPTIONS IMPORT: route options modified
Sun Jan 22 23:05:04 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Sun Jan 22 23:05:04 2017 TUN/TAP device tun0 opened
Sun Jan 22 23:05:04 2017 TUN/TAP TX queue length set to 100
Sun Jan 22 23:05:04 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Sun Jan 22 23:05:04 2017 /sbin/ifconfig tun0 172.16.0.6 pointopoint 172.16.0.5 mtu 1500
Sun Jan 22 23:05:04 2017 /sbin/route add -net XXX.XXX.XXX.XXX netmask 255.255.255.255 gw 10.131.157.210  //tutaj mam publiczny ip vps'a
Sun Jan 22 23:05:04 2017 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 172.16.0.5
Sun Jan 22 23:05:04 2017 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 172.16.0.5
Sun Jan 22 23:05:04 2017 /sbin/route add -net 172.16.0.1 netmask 255.255.255.255 gw 172.16.0.5
Sun Jan 22 23:05:04 2017 Initialization Sequence Completed
Sun Jan 22 23:05:15 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:05:24 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:05:34 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:05:45 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:05:54 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:06:04 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:06:13 2017 write UDPv4: Operation not permitted (code=1)
Sun Jan 22 23:06:13 2017 write UDPv4: Operation not permitted (code=1)
Sun Jan 22 23:06:13 2017 write UDPv4: Operation not permitted (code=1)
Sun Jan 22 23:06:13 2017 write UDPv4: Operation not permitted (code=1)

3 (edytowany przez mar_w 2017-01-23 01:07:29)

Odp: Konfiguracja openvpn

Problem jest w pliku konfiguracyjnym na serwerze openvpn. Serwer nie powinien wysłać adresu sieci openvpn jako pojedynczego adresu IP (przewidzianego dla hostów) w dodatku bez maski. A u Ciebie tak robi:

Sun Jan 22 23:05:04 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 172.16.0.1,topology net30,ping 10,ping-restart 120,ifconfig 172.16.0.6 172.16.0.5'

raczej powinno być np.  ->  172.16.0.0 255.255.255.0  # bo taką masz sieć openvpn jak można się zorientować

co skutkuje tym, że klient ustawia sobie trasę do całej sieci openvpn która to sieć, jest pojedynczym adresem IP:

Sun Jan 22 23:05:04 2017 /sbin/route add -net 172.16.0.1 netmask 255.255.255.255 gw 172.16.0.5

Widać od razu, że maska na Twojej sieci openvpn to 255.255.255.255 czyli wszystkie bity należą do adresu sieci, a gdzie wolne bity dla hostów ???

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

4

Odp: Konfiguracja openvpn

Przypuszczam, że w konfigu openvpn brakuje:

push "route 192.168.1.0 255.255.255.0"

Zobacz tutaj http://eko.one.pl/forum/viewtopic.php?p … 78#p179778
Podaj swoją konfigurację openvpn:

 # cat /etc/config/openvpn

ewentualnie:

 # cat /etc/openvpn/*.conf
GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

5

Odp: Konfiguracja openvpn

A ja myślę że powinno być w configu

server 172.16.0.0 255.255.255.0

Problem nie jest z połączeniem z siecią za klientem, tylko z połączeniem między klientem a serverem.
Obstawiam że autor skasował maskę w ww przykładzie bo myślał że trzeba tam podać adres IP servera a nie całej sieci.

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

6

Odp: Konfiguracja openvpn

@mar_w W złym miejscu szukasz błędu. Telewy ma zrobiony point-to-point a nie topology subnet, więc routing ma prawidłowy.
Na początek trzeba się pozbyć tych błędów

Sun Jan 22 23:05:15 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:06:13 2017 write UDPv4: Operation not permitted (code=1)

Dodaj opcję

comp-lzo adaptive

w konfigu klienta.
Jeśli nadal będą się pojawiać te błędy to zmień w serwerze i kliencie protokół połączenia z UDP na TCP.
Na końcu można się zająć wysłaniem do klienta informacji trasie do podsieci za serwerem tak jak opisał to Gr4nd0.

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

7

Odp: Konfiguracja openvpn

Panowie, dzięki za wsparcie. Popatrzę dzisiaj wieczorem i dam znać. Generalnie odnośnie ustawień to instalację serwera openvpn robiłem na podstawie standardowego opisu z netu ( Debian: Instalacja i konfiguracja serwera OpenVPN i nic nie kombinowałem. Klienta openvpn konfigurowałem na podstawie opisu Cezarego Konfiguracja serwera OpenVPN w trybie TUN. Postaram się jeszcze poczytać o konfiguracji sieci, bo nie do końca czuję do czego jest np. netmask, etc.

8

Odp: Konfiguracja openvpn

mar_w napisał/a:

Problem jest w pliku konfiguracyjnym na serwerze openvpn. Serwer nie powinien wysłać adresu sieci openvpn jako pojedynczego adresu IP (przewidzianego dla hostów) w dodatku bez maski. A u Ciebie tak robi:

Sun Jan 22 23:05:04 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 172.16.0.1,topology net30,ping 10,ping-restart 120,ifconfig 172.16.0.6 172.16.0.5'

raczej powinno być np.  ->  172.16.0.0 255.255.255.0  # bo taką masz sieć openvpn jak można się zorientować

co skutkuje tym, że klient ustawia sobie trasę do całej sieci openvpn która to sieć, jest pojedynczym adresem IP:

Sun Jan 22 23:05:04 2017 /sbin/route add -net 172.16.0.1 netmask 255.255.255.255 gw 172.16.0.5

Widać od razu, że maska na Twojej sieci openvpn to 255.255.255.255 czyli wszystkie bity należą do adresu sieci, a gdzie wolne bity dla hostów ???

Logów ci nie podeślę, bo mam ustawione verb 1.
Ale co powiesz na to

# ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:172.16.14.1  P-t-P:172.16.14.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3582 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3707 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:273167 (266.7 KiB)  TX bytes:1350603 (1.2 MiB)

Tyle w temacie przydzielania adresów mówi mój serwer.
A tak odpowiada mój klient aktualnie podłączony do tego serwera

# ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:172.16.15.5  P-t-P:172.16.15.6  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3298 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3397 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:1299844 (1.2 MiB)  TX bytes:234564 (229.0 KiB)

Jak widzisz w obu przypadkach są to połączenia p-t-p tak jak to opisał @khain.

telewy napisał/a:

Panowie, dzięki za wsparcie. Popatrzę dzisiaj wieczorem i dam znać. Generalnie odnośnie ustawień to instalację serwera openvpn robiłem na podstawie standardowego opisu z netu ( Debian: Instalacja i konfiguracja serwera OpenVPN i nic nie kombinowałem.

Ten poradnik zbyt płytko traktuje temat. Ponawiam prośbę o twój konfig. Na pewno z @khainem dojdziemy do kompromisu i spreparujemy ci sprawnie działający gotowiec.

GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

9

Odp: Konfiguracja openvpn

Super. O konfigu pamiętam ale nie mam do niego teraz dostępu. Wczoraj walcząc z vpn'em zatrzymałem n2n i zapomniałem go wystartować i nie mam teraz dostępu do sieci w domu. W chacie będę dzisiaj po21ej i wtedy go podeślę.

10

Odp: Konfiguracja openvpn

khain napisał/a:

@mar_w W złym miejscu szukasz błędu. Telewy ma zrobiony point-to-point a nie topology subnet, więc routing ma prawidłowy.
Na początek trzeba się pozbyć tych błędów

Sun Jan 22 23:05:15 2017 write to TUN/TAP : Invalid argument (code=22)
Sun Jan 22 23:06:13 2017 write UDPv4: Operation not permitted (code=1)

Dodaj opcję

comp-lzo adaptive

w konfigu klienta.
Jeśli nadal będą się pojawiać te błędy to zmień w serwerze i kliencie protokół połączenia z UDP na TCP.
Na końcu można się zająć wysłaniem do klienta informacji trasie do podsieci za serwerem tak jak opisał to Gr4nd0.

Kiedyś ktoś powiedział że opinia jest jak d..a smile każdy ma swoją.
A ja twierdzę że klient openvpn nie ma w ogóle trasy do sieci 172.16.0.0 tylko do pojedynczych 2 hostów z czego server powiedział klientowi, że jest pojedynczym adresem w sieci sam dla siebie.
Autor źle zrozumiał config. Zamiast:

server <adres_sieci_vpn> <maska_sieci_vpn>
wpisał pewnie

server <adres_ip>

Adres sieci to co innego niż adres ip. A to że ma topology subnet 30 to widać z logów i tego się nie czepiam i wiem co to znaczy i jakie adresy mogą mieć klienci.

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

11 (edytowany przez khain 2017-01-23 15:53:35)

Odp: Konfiguracja openvpn

mar_w napisał/a:

Autor źle zrozumiał config. Zamiast:

server <adres_sieci_vpn> <maska_sieci_vpn>
wpisał pewnie

server <adres_ip>

Adres sieci to co innego niż adres ip. A to że ma topology subnet 30 to widać z logów i tego się nie czepiam i wiem co to znaczy i jakie adresy mogą mieć klienci.

Ehhh, on właśnie nie ma topology subnet tylko net30 a w niej nie można stworzyć sieci 172.16.0.0/24, do której Ty chcesz ustawić routing. Poza tym, w ifconfig widać, że tun0 jest zestawiony point-to-point zarówno na kliencie jak i na serwerze.
Jeśli w konfigu miałby wpis, który Ty sugerujesz to otrzymał by taki log:

I ja też uważam, że każdy rację ma swoją, ale jak czegoś nie jestem pewien to tego nie piszę albo nie mówię, zwłaszcza jeśli chodzi o nauczanie lub pomoc innym.

A teraz obalenie Twojej koncepcji:

root@router:/etc/openvpn# openvpn --dev tun --dh /etc/openvpn/ptp/dh2048.pem --ca /etc/openvpn/ptp/ca.crt --cert /etc/openvpn/ptp/server.crt --key /etc/openv
pn/ptp/server.key --server 10.8.0.0 255.255.255.0
Mon Jan 23 15:40:54 2017 OpenVPN 2.3.6 mips-openwrt-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Jan 31 2016
Mon Jan 23 15:40:54 2017 library versions: OpenSSL 1.0.2j  26 Sep 2016, LZO 2.08
Mon Jan 23 15:40:54 2017 WARNING: --keepalive option is missing from server config
Mon Jan 23 15:40:54 2017 TUN/TAP device tun1 opened
Mon Jan 23 15:40:54 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Mon Jan 23 15:40:54 2017 /sbin/ifconfig tun1 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Mon Jan 23 15:40:54 2017 UDPv4 link local (bound): [undef]
Mon Jan 23 15:40:54 2017 UDPv4 link remote: [undef]
Mon Jan 23 15:40:54 2017 Initialization Sequence Completed

i wycinek route -n

10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun1
10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun1

A taki STDERR (openvpn domyślnie zbiera tylko STDOUT, więc w logu tego nie będzie)wywala openvpn jeśli opcja --server ma złą składnię

root@router:/etc/openvpn# openvpn --dev tun --dh /etc/openvpn/ptp/dh2048.pem --ca /etc/openvpn/ptp/ca.crt --cert /etc/openvpn/ptp/server.crt --key /etc/openvpn/ptp/server.key --server 10.8.0.0
Options error: Unrecognized option or missing parameter(s) in [CMD-LINE]:1: server (2.3.6)
Use --help for more information.
root@router:/etc/openvpn# openvpn --dev tun --dh /etc/openvpn/ptp/dh2048.pem --ca /etc/openvpn/ptp/ca.crt --cert /etc/openvpn/ptp/server.crt --key /etc/openvpn/ptp/server.key --server 10.8.0.1
Options error: Unrecognized option or missing parameter(s) in [CMD-LINE]:1: server (2.3.6)
Use --help for more information.

I serwer wtedy nie wstaje, a więc klient nie ma się do czego podłączyć.

Jedyne co jest źle w tablicy routingu serwer u telewy to:

128.0.0.0       172.16.0.5      128.0.0.0       UG    0      0        0 tun0

Ale najpierw należy się zająć stabilnym zestawieniem tunelu.

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

12

Odp: Konfiguracja openvpn

mar_w napisał/a:

A ja twierdzę że klient openvpn nie ma w ogóle trasy do sieci 172.16.0.0 tylko do pojedynczych 2 hostów z czego server powiedział klientowi, że jest pojedynczym adresem w sieci sam dla siebie.

To wystarczy by ustawić default routing przez vpn. W ogólnym przypadku nie ma sieci 172.16.0.0, jest tylko tunel. Takie rozwiązanie daje separację pomiędzy klientami VPN.

mar_w napisał/a:

Autor źle zrozumiał config. Zamiast:

server <adres_sieci_vpn> <maska_sieci_vpn>
wpisał pewnie

server <adres_ip>

No cóż. Poczekajmy na konfig od @telewy.

BTW. Skoro zniżyłeś poziom dyskusji poniżej pleców to może przypomnisz sobie góralską zasadę dotyczącą prawdy: jest prawda, tyż prawda i g*no prawda.

GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

13

Odp: Konfiguracja openvpn

Podsyłam plik konfiguracyjny dla servera openvpn, skonfigurowanego w moim przypadku na vps:

root@debian:~# cat /etc/openvpn/server.conf
#################################################
# Sample OpenVPN 2.0 config file for            #
# multi-client server.                          #
#                                               #
# This file is for the server side              #
# of a many-clients <-> one-server              #
# OpenVPN configuration.                        #
#                                               #
# OpenVPN also supports                         #
# single-machine <-> single-machine             #
# configurations (See the Examples page         #
# on the web site for more info).               #
#                                               #
# This config should work on Windows            #
# or Linux/BSD systems.  Remember on            #
# Windows to quote pathnames and use            #
# double backslashes, e.g.:                     #
# "C:\\Program Files\\OpenVPN\\config\\foo.key" #
#                                               #
# Comments are preceded with '#' or ';'         #
#################################################

# Which local IP address should OpenVPN
# listen on? (optional)
;local a.b.c.d

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
port 1194

# TCP or UDP server?
;proto tcp
proto udp

# "dev tun" will create a routed IP tunnel,
# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel if you
# have more than one.  On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
;dev-node MyTap

# SSL/TLS root certificate (ca), certificate
# (cert), and private key (key).  Each client
# and the server must have their own cert and
# key file.  The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys.  Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key  # This file should be kept secret

# Diffie hellman parameters.
# Generate your own with:
#   openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh dh2048.pem

# Configure server mode and supply a VPN subnet
# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
server 172.16.0.0 255.255.255.0

# Maintain a record of client <-> virtual IP address
# associations in this file.  If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist ipp.txt

# Configure server mode for ethernet bridging.
# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet
# NIC interface.  Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0.  Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients.  Leave this line commented
# out unless you are ethernet bridging.
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# Configure server mode for ethernet bridging
# using a DHCP-proxy, where clients talk
# to the OpenVPN server-side DHCP server
# to receive their IP address allocation
# and DNS server addresses.  You must first use
# your OS's bridging capability to bridge the TAP
# interface with the ethernet NIC interface.
# Note: this mode only works on clients (such as
# Windows), where the client-side TAP adapter is
# bound to a DHCP client.
;server-bridge

# Push routes to the client to allow it
# to reach other private subnets behind
# the server.  Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
#   iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN.  This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
#   ifconfig-push 10.9.0.1 10.9.0.2

# Suppose that you want to enable different
# firewall access policies for different groups
# of clients.  There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
#     group, and firewall the TUN/TAP interface
#     for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
#     modify the firewall in response to access
#     from different clients.  See man
#     page for more info on learn-address script.
;learn-address ./script

# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# or bridge the TUN/TAP interface to the internet
# in order for this to work properly).
push "redirect-gateway def1 bypass-dhcp"

# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.  CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
# The addresses below refer to the public
# DNS servers provided by opendns.com.
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
;client-to-client

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names.  This is recommended
# only for testing purposes.  For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn

# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
#   openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
;tls-auth ta.key 0 # This file is secret

# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES

# Enable compression on the VPN link.
# If you enable it here, you must also
# enable it in the client config file.
comp-lzo

# The maximum number of concurrently connected
# clients we want to allow.
;max-clients 100

# It's a good idea to reduce the OpenVPN
# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
user nobody
group nogroup

# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status openvpn-status.log

# By default, log messages will go to the syslog (or
# on Windows, if running as a service, they will go to
# the "\Program Files\OpenVPN\log" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it.  Use one
# or the other (but not both).
;log         openvpn.log
;log-append  openvpn.log

# Set the appropriate level of log
# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

# Silence repeating messages.  At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20

14

Odp: Konfiguracja openvpn

I jak tam koledzy, działamy coś w temacie?

15

Odp: Konfiguracja openvpn

Konfiguracja serwera, na moje oko, wygląda całkiem dobrze. Jedyne co mogę zasugerować to dodanie opcji

tls-auth /etc/openvpn/ta.key 0

To teraz dla równowagi konfiguracja klienta.

GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

16

Odp: Konfiguracja openvpn

@telewy Pytanie raczej do Ciebie czy Ty coś działasz w temacie, bo dostałeś ode mnie wytyczne w tym poście http://eko.one.pl/forum/viewtopic.php?p … 98#p180198

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

17

Odp: Konfiguracja openvpn

Tak, oczywiście, walczę jak lew wink. Po kolei.

Do konfiguracji servera dodałem:
topology subnet
Opcji comp-lzo adaptive nie zmieniałem bo była już odkomentowana. Po restarcie jest  poprawa, mianowicie pinguje się pomiędzy klientem a serverem.
ifconfig dla servera wygląda teraz tak:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.16.0.1  P-t-P:172.16.0.1  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:1750 errors:0 dropped:0 overruns:0 frame:0
          TX packets:328 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:169091 (165.1 KiB)  TX bytes:51162 (49.9 KiB)

oraz ifconfig dla klienta

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:172.16.0.4  P-t-P:172.16.0.4  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42639 errors:0 dropped:38078 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:60092563 (57.3 MiB)

Uruchomienie klienta vpn na openwrt (na routerze który u mnie ma ip 192.168.1.1 i do niego jest połączony model lte) powoduje, że tracę połączenie z internetem. Dodatkowo z serverem łączę się z internetu z laptopa z zainstalowanym windowsem i klientem openvpn. I tutaj ciekawostka bo na tym laptopie dostaję ip 172.16.0.4 i taki sam ip przydzielany jest na kliencie z openwrt.
Dodanie na serverze
push "route 192.168.1.0 255.255.255.0"
spowodowało, że straciłem kontakt z siecią domową (z klientem openvpn) i musiałem wchodzić na server z internetu, aby zakomentować tą liniję.

Poniżej podaję dla przejrzystości zawartość konfiga servera openvpn:

port 1194

proto udp

dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key  # This file should be kept secret

dh dh2048.pem

topology subnet
server 172.16.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

keepalive 10 120

comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status openvpn-status.log

verb 3

klienta (tego z openwrt)

root@OpenWrt:/etc/config# cat /var/etc/openvpn-tomek.conf
client
ca /etc/openvpn/ca.crt
cert /etc/openvpn/tomek.crt
comp-lzo yes
dev tun
key /etc/openvpn/tomek.key
log /tmp/openvpn.log
proto udp
remote XXX.XXX.XXX.XXX 1194
remote-cert-tls server
topology subnet
verb 3

18 (edytowany przez khain 2017-01-26 12:02:46)

Odp: Konfiguracja openvpn

Masz kilka błędów:
1)jeśli używasz --topology subnet to nie używaj opcji --server tylko --ifconfig.
2) brak ścieżki do dh2048.pm, co prawda w logu nie krzyczy, że nie może otworzyć pliku dh, ale warto podać ścieżkę.
Za nim dodasz jakieś opcje, wypadałoby trochę o nich poczytać, np. co robi bypass-dhcp i dlaczego u Ciebie tej opcji nie powinno być https://community.openvpn.net/openvpn/w … n23ManPage
Z pierwszego posta można wywnioskować, że nie chcesz, aby cały ruch z WRT 160NL do Internetu szedł przez VPS, więc ja proponuję taki config.
Konfig serwera:

port 1194
proto udp
dev tun
mode server
tls-server
cipher AES-256-CBC
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
ifconfig 172.16.0.1 255.255.255.0
topology subnet
client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0 172.16.0.2
push "route 192.168.1.0 255.255.255.0 172.16.0.2"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
push "route-gateway 172.16.0.1"
push "redirect-gateway def1"
push "topology subnet"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

Na serwerze utwórz folder /etc/openvpn/ccd a w nim plik o nazwie takiej jaką ma Common Name w certyfikacie klienta dla WRT160NL. Plik ma mieć taką zawartość:

ifconfig-push 172.16.0.2 255.255.255.0
iroute 192.168.1.0 255.255.255.0

Jeśli masz więcej klientów np. smartphone'y to tworzysz kolejne pliki w ccd (pamietając o poprawnej nazwie) zmieniając tylko adres IP jaki mają otrzymać, np.:

ifconfig-push 172.16.0.3 255.255.255.0

Konfig klienta WRT160NL:

client
remote XXX.XXX.XXX.XXX 1194
dev tun
proto udp
cipher AES-256-CBC
ca /etc/openvpn/ca.crt
cert /etc/openvpn/tomek.crt
key /etc/openvpn/tomek.key
log /tmp/openvpn.log
comp-lzo adaptive
remote-cert-tls server
verb 3
route-nopull

Opcja route-nopull powoduje odrzucenie wszystkich opcji push, które przychodzą z serwera - dodałem to ponieważ zakładam, ze nie chcesz, aby WRT-160NL pchał cały ruch do Internetu przez VPSa (za to inny klient np. smartphone może z tego korzystać).
Dodatkowo możesz dodać opcję, o której wspomniał Gr4nd0 w celu dodatkowego zabezpieczenia tunelu. https://community.openvpn.net/openvpn/wiki/Hardening
EDIT: dodałem opcję cipher AES-256-CBC ze względów bezpieczeństwa.

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

19 (edytowany przez telewy 2017-01-26 14:08:00)

Odp: Konfiguracja openvpn

Khain, Gr4nd0, dziękuję Wam za pomoc. Wprowadziłem zmiany zgodnie z Waszymi wskazówkami i jest od razu efekt. Dodałem dodatkowe zabezpieczenie tls-auth, generalnie ruszyło smile. A konkretnie:

- uruchomiam serwer openvpn (172.16.0.1) na vps oraz uruchamiam klienta openvpn  na WRT160NL (172.16.0.2 <-> 192.168.1.1)
- sieć domowa funkcjonuje normalnie i nie traci połączenia z internetemn
- ruch z lanu odbywa się tak jak do tej pory, bynajmniej tak mi się wydaje
- jestem w stanie z internetu, po uruchomienia klienta vpn, dostać się do klienta WRT160NL (172.16.0.2)
Tak więc generalnie jest to o co mi chodziło. Dzisiaj jeszcze potestuję połączenie z komórki do lanu.

A teraz to co chciałbym jeszcze zmienić:
1. Jak odpalam klienta vpn na laptopie i łączę się z serwerem, na laptopie z klientem vpn tracę połączenie z ineternetem. Rozumiem, że muszę inaczej ustawić routing tak, aby przez server openvpn szedł ruch dla adresów 172.0.XXX.XXX a dla pozostałych IP ruch zostawić bez zmian?
2. Podobnie jak jestem w lanie i uruchamiam klienta vpn to tracę połączenie z internetem, a jednak wolałbym aby było (to w kontekście pkt.3)
3. I jeszcze jedna istotna rzecz. W lan mam serwer z debianem (192.168.1.2), serwerem www i jakimiś baczami. Co muszę zrobić, aby z zewnątrz być w stanie wejść na www wystawiane na tym serwerze. Na tym serwerze mam bacze, które w nocy wypychają mi pewne dane na serwery zewnętrzne i chciałbym to zachować tak jak jest teraz, czyli ten ruch powinien iść poza vpn’em.
4.    Czy aby dostać się do jakiegoś zasobu w lani’e muszę na nim instalować klienta vpn, czy mogę jakoś przekierowywać ruch przez tego klienta na WRT160NL?

Jeszcze raz dzięki za pomoc. Staram się doczytywać odnośnie tego co robię, ale przyznam, że wiele rzeczy jest dla mnie bardzo mgliste i nie zawsze jasne. Akurat zagadnienia sieciowe to zupełnie nie moja działka.

Pozdr

20 (edytowany przez khain 2017-01-26 14:23:59)

Odp: Konfiguracja openvpn

A wprowadziłeś dokładnie konfig serwera i klienta jaki podałem?
Serwer wysyła opcję redirect gateway do klientów, więc musisz dodać jeszcze forwarding pomiędzy tun0 a eth0 na VPSie.

 iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

Odnośnie dostępu z zewnątrz na dany port to opis masz tutaj na samym dole eko.one.pl/?p=openwrt-openvpntun

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

21

Odp: Konfiguracja openvpn

Konfiguracja na serwerze na 100% jest ta sama, bo wczoraj sprawdziłem linijka po linijce. Co do klienta to sprawdziłem jeszcze raz i widzę, że zjadłem jedną linijkę cipher AES-256-CBC, którą już uzupełniłem. Plik /etc/config/openvpn wygląda inaczej niż podałeś, ale wydaje mi się, że jest to samo:

config openvpn 'tomek'
        option enabled '1'
        option dev 'tun'
        option proto 'udp'
        option log '/tmp/openvpn.log'
        option verb '3'
        option ca '/etc/openvpn/ca.crt'
        option cert '/etc/openvpn/tomek.crt'
        option key '/etc/openvpn/tomek.key'
        option tls_auth '/etc/openvpn/tls-auth.key'
        option client '1'
        option remote_cert_tls 'server'
        option remote 'XXX.XXX.XXX.XXX 1194'
        option comp_lzo 'adaptive'
        option route_nopull '1'

Ok, zmodyfikuję iptables i dam znać.

22 (edytowany przez Gr4nd0 2017-01-26 19:47:28)

Odp: Konfiguracja openvpn

telewy napisał/a:

1. Jak odpalam klienta vpn na laptopie i łączę się z serwerem, na laptopie z klientem vpn tracę połączenie z ineternetem. Rozumiem, że muszę inaczej ustawić routing tak, aby przez server openvpn szedł ruch dla adresów 172.0.XXX.XXX a dla pozostałych IP ruch zostawić bez zmian?

Przede wszystkim. Prywatne IP w tej grupie adresowej to 172.16.0.0-172.31.255.255.
Zdecyduj czy zależy ci na tym by laptop łączył się z Internetem przez VPN. Generalnie nie jest to konieczne, ale jeśli tak to musisz zezwolić na firewallu na forwarding. Tak jak opisał to @khain

telewy napisał/a:

2. Podobnie jak jestem w lanie i uruchamiam klienta vpn to tracę połączenie z internetem, a jednak wolałbym aby było (to w kontekście pkt.3)

Przyczyna jak wyżej ale odradzam ci łączyć się lokalnie do VPN. Sprawdź logi podczas takiego połączenia. Jeśli nic złego się nie pojawia to zostaw jak jest. Takie połączenie wymaga odpowiedniej konfiguracji. A skoro słabo czujesz się w zagadnieniach sieciowych to nie będę mieszał Ci w głowie.

telewy napisał/a:

3. I jeszcze jedna istotna rzecz. W lan mam serwer z debianem (192.168.1.2), serwerem www i jakimiś baczami. Co muszę zrobić, aby z zewnątrz być w stanie wejść na www wystawiane na tym serwerze. Na tym serwerze mam bacze, które w nocy wypychają mi pewne dane na serwery zewnętrzne i chciałbym to zachować tak jak jest teraz, czyli ten ruch powinien iść poza vpn’em.

Musisz ustawić odpowiednio routing. Ja łączę się z serwerem VPN, do którego podłączony jest jako klient tp-link z openwrt i bez problemy łączę się z centralką alarmową podłączoną do tp-linka. Wszystko załatwia odpowiednie ustawienie routingu

telewy napisał/a:

4.    Czy aby dostać się do jakiegoś zasobu w lani’e muszę na nim instalować klienta vpn, czy mogę jakoś przekierowywać ruch przez tego klienta na WRT160NL?

Komputery w sieci lokalnej nie wymagają żadnych zabiegów. Łączysz się z VPN i dzięki odpowiedniej konfiguracji routingu masz dostępną sieć lokalną, a z sieci lokalnej dostęp do klientów VPN.

GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

23 (edytowany przez telewy 2017-01-26 16:03:37)

Odp: Konfiguracja openvpn

Dzięki, to mi sporo wyjaśnia. Z tym laptopem to raczej w ramach testów, generalnie wystarczy mi tak jak jest, tzn. mając połączenie do vpn, nie muszę mieć dostępu do zewnętrznego internetu. Powalczę teraz z routingiem aby uzyskać dostęp do innych zasobów.

24

Odp: Konfiguracja openvpn

Jeszcze raz rzuciłem okien na twój schemat i chyba wiem jak poprawić sytuację. Na VPSie musisz dodać regułkę dla firewalla

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

I oczywiście zezwolić na forwarding z tun+ na eth0 (to już @khain opisał).
Skoro to VPS to nie będziesz miał potrzeby forwardowania z innych interface'ów.

A tak BTW. Skoro masz komputer z debianem, to może niech on robi też za router? Dla swojej sieci wybrałem właśnie taki wariant. TP-Linki służą mi tylko jako switche i AP. A WRD4300 to nie ma nawet interface wan smile

GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

25

Odp: Konfiguracja openvpn

Gr4nd0 napisał/a:

A tak BTW. Skoro masz komputer z debianem, to może niech on robi też za router? Dla swojej sieci wybrałem właśnie taki wariant. TP-Linki służą mi tylko jako switche i AP. A WRD4300 to nie ma nawet interface wan smile

Skoro tak mówisz pewnie można by tak zrobić. Ja się nad tym zastanawiałem i szczerze mówiąc za cienki jestem, żeby wyczuć w takiej podmianie jakąś różnicę. Ja jak na to patrzę, to chyba musiałbym fizycznie podmienić router WRT160L z serwerem z debianem, bo inaczej jakoś nie widzę tego debiana joko routera. Dla przejrzystości załączam rysunek mojej sieci w domowa:
Moja sieć
Tak nawiasem postudiowałem dzisiaj zagadnienia konfiguracji sieci i mam tylko mętlik w głowie. W iptables mogę ustawiać przekierowania, w routingu też mogę ustawiać przekierowania, średnio to jakoś czuję. Powiedzcie mi, czy następujący mój tok myślowy jest poprawny?:
1. jak jestem w lan to na dowolnym komputerze w lanie odpalam przykładowo domoticza przez wywołanie http://192.168.1.2:8080/
2. jak jestem w internecie (komputer nr 13), łączę się przez vpn i chciałbym uruchamić domoticza poprzez wywołanie http://192.168.1.2:8080/ i wtedy
- router WRT160NL powinien mieć zdefiniowany routing dla adresów 192.168.1.XXX do sieci lan
- server vps i router WRT160NL powinny mieć otwarte porty 8080
- a może dla adresów 192.168.1.XXX powinienem zdefiniować routing już na serverze openvpn (komputer 12)?

Na chwilę obecną po vpn'ie bezpośrednio widzą się komputery oznaczone na rysunku numerami 1, 12 i 13 (pingują się)

P.S. Znalazłem dosyć fajny dokument na temat iptables IPTables, może komus się tez przyda.