1 (edytowany przez szymek 2020-05-22 15:19:09)

Temat: NordVPN openvpn-openssl - brak usługi :(

Witam,

Na czystym openwrt w 1043nd 2.0 próbuje testowo postawić VPN z nordVPN.

Konfiguracja na bazie poradnika od Cezarego
https://eko.one.pl/forum/viewtopic.php? … 01#p210001

opkg install openvpn-openssl

dodatkowo dodane z Norda
https://support.nordvpn.com/Connectivit … ordVPN.htm

opkg install ip-full
opkg install luci-app-openvpn + pl

po restarcie w interfejsach mam error Network device is not present

Konfiguracja routera:
LAN 192.168.1.1
WAN eth0.2 z gniazda WAN statyczne 192.168.5.2 bramka 192.168.5.1

uci show network

network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fd33:a80c:ae4b::/48'
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='eth1.1'
network.lan.proto='static'
network.lan.ipaddr='192.168.1.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.wan=interface
network.wan.ifname='eth0.2'
network.wan.proto='static'
network.wan.netmask='255.255.255.0'
network.wan.dns='8.8.8.8' '8.8.4.4'
network.wan.ipaddr='192.168.5.2'
network.wan.gateway='192.168.5.1'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device='switch0'
network.@switch_vlan[0].vlan='1'
network.@switch_vlan[0].ports='1 2 3 4 0t'
network.@switch_vlan[1]=switch_vlan
network.@switch_vlan[1].device='switch0'
network.@switch_vlan[1].vlan='2'
network.@switch_vlan[1].ports='5 6t'
network.vpn=interface
network.vpn.ifname='tun0'
network.vpn.proto='none'

uci show openvpn

openvpn.custom_config=openvpn
openvpn.custom_config.enabled='1'
openvpn.custom_config.config='/etc/pl117.nordvpn.com.tcp.ovpn'
openvpn.sample_server=openvpn
openvpn.sample_server.enabled='0'
openvpn.sample_server.port='1194'
openvpn.sample_server.proto='udp'
openvpn.sample_server.dev='tun'
openvpn.sample_server.ca='/etc/openvpn/ca.crt'
openvpn.sample_server.cert='/etc/openvpn/server.crt'
openvpn.sample_server.key='/etc/openvpn/server.key'
openvpn.sample_server.dh='/etc/openvpn/dh1024.pem'
openvpn.sample_server.server='10.8.0.0 255.255.255.0'
openvpn.sample_server.ifconfig_pool_persist='/tmp/ipp.txt'
openvpn.sample_server.keepalive='10 120'
openvpn.sample_server.compress='lzo'
openvpn.sample_server.persist_key='1'
openvpn.sample_server.persist_tun='1'
openvpn.sample_server.user='nobody'
openvpn.sample_server.status='/tmp/openvpn-status.log'
openvpn.sample_server.verb='3'
openvpn.sample_client=openvpn
openvpn.sample_client.enabled='0'
openvpn.sample_client.client='1'
openvpn.sample_client.dev='tun'
openvpn.sample_client.proto='udp'
openvpn.sample_client.remote='my_server_1 1194'
openvpn.sample_client.resolv_retry='infinite'
openvpn.sample_client.nobind='1'
openvpn.sample_client.persist_key='1'
openvpn.sample_client.persist_tun='1'
openvpn.sample_client.user='nobody'
openvpn.sample_client.ca='/etc/openvpn/ca.crt'
openvpn.sample_client.cert='/etc/openvpn/client.crt'
openvpn.sample_client.key='/etc/openvpn/client.key'
openvpn.sample_client.compress='lzo'
openvpn.sample_client.verb='3'

Poprzez winSCP w lokalizacji openvpn.sample_server.status='/tmp/openvpn-status.log'
Nie ma tego pliku logowego, czy to się jakoś specjalnie włącza?

root@OpenWrt:~# uci show firewall
firewall.@defaults[0]=defaults
firewall.@defaults[0].syn_flood='1'
firewall.@defaults[0].input='ACCEPT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.@zone[0]=zone
firewall.@zone[0].name='lan'
firewall.@zone[0].input='ACCEPT'
firewall.@zone[0].output='ACCEPT'
firewall.@zone[0].forward='ACCEPT'
firewall.@zone[0].network='lan'
firewall.@zone[1]=zone
firewall.@zone[1].name='wan'
firewall.@zone[1].input='REJECT'
firewall.@zone[1].output='ACCEPT'
firewall.@zone[1].forward='REJECT'
firewall.@zone[1].masq='1'
firewall.@zone[1].mtu_fix='1'
firewall.@zone[1].network='wan'
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src='lan'
firewall.@forwarding[0].dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].src_ip='fc00::/6'
firewall.@rule[3].dest_ip='fc00::/6'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@rule[7]=rule
firewall.@rule[7].name='Allow-IPSec-ESP'
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].name='Allow-ISAKMP'
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.@include[0]=include
firewall.@include[0].path='/etc/firewall.user'
firewall.@zone[2]=zone
firewall.@zone[2].name='vpn'
firewall.@zone[2].input='ACCEPT'
firewall.@zone[2].forward='ACCEPT'
firewall.@zone[2].output='ACCEPT'
firewall.@zone[2].network='vpn'
firewall.@zone[2].masq='1'
firewall.@forwarding[1]=forwarding
firewall.@forwarding[1].src='lan'
firewall.@forwarding[1].dest='vpn'

Co może być problemem braku działania VPN?
Z poziomu Luci w zakładce VPN „Instancje OpenVPN” brak zmianki wpisowych o nordVPN jest tylko czyste custom_config, sample server oraz sample client


plik z norda po edycji

client
dev tun0
proto tcp
remote 37.120.211.131 443
resolv-retry infinite
remote-random
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ping 15
ping-restart 0
ping-timer-rem
reneg-sec 0
comp-lzo no

remote-cert-tls server

#mute 10000
verb 3
pull
fast-io
cipher AES-256-CBC
auth SHA512
<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
-----END OpenVPN Static key V1-----
</tls-auth>

auth-user-pass /etc/openvpn/pass.txt

--
Pozdrawiam
szymek

2

Odp: NordVPN openvpn-openssl - brak usługi :(

I teraz pokaż wyniki z:

ls -al /etc/pl117.nordvpn.com.tcp.ovpn
ifstatus vpn
ping -c 3 37.120.211.131
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez szymek 2020-05-22 15:43:20)

Odp: NordVPN openvpn-openssl - brak usługi :(

ls -al /etc/pl117.nordvpn.com.tcp.ovpn
ls: /etc/pl117.nordvpn.com.tcp.ovpn: No such file or directory



ifstatus vpn
{
        "up": false,
        "pending": false,
        "available": false,
        "autostart": true,
        "dynamic": false,
        "proto": "none",
        "device": "tun0",
        "data": {

        },
        "errors": [
                {
                        "subsystem": "interface",
                        "code": "NO_DEVICE"
                }
        ]
}
root@OpenWrt:~# ^C



ping -c 3 37.120.211.131
PING 37.120.211.131 (37.120.211.131): 56 data bytes
64 bytes from 37.120.211.131: seq=0 ttl=52 time=30.486 ms
64 bytes from 37.120.211.131: seq=1 ttl=52 time=25.109 ms
64 bytes from 37.120.211.131: seq=2 ttl=52 time=25.918 ms

--- 37.120.211.131 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 25.109/27.171/30.486 ms

plik jest w katalogu openvpn

root@OpenWrt:~# ls -al /etc/openvpn/pl117.nordvpn.com.tcp.ovpn
-rw-r--r--    1 root     root          2844 May 22 12:25 /etc/openvpn/pl117.nordvpn.com.tcp.ovpn

4

Odp: NordVPN openvpn-openssl - brak usługi :(

To czemu w konfigu openvpn podałeś /etc/pl117.nordvpn.com.tcp.ovpn zamiast /etc/openvpn/pl117.nordvpn.com.tcp.ovpn?

Zmień ścieżkę w konfigu na taką jak powinna być.

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

5

Odp: NordVPN openvpn-openssl - brak usługi :(

faktycznie nie wiem dlaczego ucięło, ruszyło.

chciałbym jeszcze to rozbudować o poniższe możliwości:
1. powyższa konfiguracja odnosi się do ruchu tcp, a gdybym chciał by każdy ruch lub też udp także szedł przez NordVPN, Nord podaje pliki na UDP - jak dodać kolejną sekwencje by oba były uruchomione i działały jednocześnie?
2. jak dodać bypass kolejnego serwera NordVPN tak, by  w przypadku awarii jednego ruch szedł przez kolejny wskazany? teraz jest PL117 a kolejny rezerwowy np. UK55 tpc+ udp.

2.1 w przypadku gdy braknie połączenie z NordVPN następuje blokada przekazywania do internetu poprzez tcp/udp

3. określony ruch z IP wewnętrznego lub docelowe domeny na zewnątrz idą tylko przez VPN i reguły 1 2 oraz 2.1 dotyczą tylko ustawień VPN.

odnosząc się do "2" NordVPN podaje rozwiązanie, należy to żywcem wkleić w pliki?

The appended strings should be similar to the previous one.

(Optional) To prevent traffic leakage in case VPN-tunnel drops you can edit the file /etc/firewall.user with the following content:

    # This file is interpreted as shell script.
    # Put your custom iptables rules here, they will# be executed with each firewall (re-)start.
    # Internal uci firewall chains are flushed and recreated on reload, so
    # put custom rules into the root chains e.g. INPUT or FORWARD or into the
    # special user chains, e.g. input_wan_rule or postrouting_lan_rule.

     

    if (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
           iptables -I forwarding_rule -j REJECT
    fi

You should also create the file 99-prevent-leak in the folder /etc/hotplug.d/iface/ with following content:

    #!/bin/sh
    if [ "$ACTION" = ifup ] && (ip a s tun0 up) && (iptables -C forwarding_rule -j REJECT); then
           iptables -D forwarding_rule -j REJECT
    fi
    if [ "$ACTION" = ifdown ] && (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
           iptables -I forwarding_rule -j REJECT
    fi

In some cases, OpenVPN hangs with log message like (couldn't resolve host ...). In this case, a tunnel stays up but the connection is lost. It should be reconnected manually, with the following script /etc/openvpn/reconnect.sh, which is added to /etc/rc.local as:

    /etc/openvpn/reconnect.sh &

"reconnect.sh" should contain this script:

    #!/bin/sh
    n=10
    while sleep 50; do
    t=$(ping -c $n 8.8.8.8 | grep -o -E '[0-9]+ packets r' | grep -o -E '[0-9]+')
    if [ "$t" -eq 0 ]; then
    /etc/init.d/openvpn restart
    fi
    done

6

Odp: NordVPN openvpn-openssl - brak usługi :(

1. Nie. Powyższa konfiguracja robi tunel po tcp a całym ruchem nic to wspólnego nie ma. Idzie wszystko.
2. Dodaj sobie nową sekcję tylko zrób enabled 0. A potem po prostu rób enabled 1 na tej na której chcesz, restart openvpn i masz nowe połączenie
2.1 Jest to na końcu poradnika nordvpn który sam zacytowałeś

To po pokazałeś to właśnie cześć 2.1 oraz zwykły monitor połączenia i ze zmianą konfiguracji nie ma nic wspólnego.

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

7

Odp: NordVPN openvpn-openssl - brak usługi :(

Nie ma opcji, by on sam sprawdził czy ma połączenie i po np 10 sekundach wyłączył pierwszą sekcję i załączył kolejną?

8

Odp: NordVPN openvpn-openssl - brak usługi :(

Jest - musisz sobie napisać skrypt który będzie robił dokładnie to co chcesz.

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

9

Odp: NordVPN openvpn-openssl - brak usługi :(

skryptem zajmiemy się później smile

odnośnie blokady netu w przypadku braku połączenia z serwerem vpn, to w pliku

firewall.user  wstawić tylko sekwencję

if (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
       iptables -I forwarding_rule -j REJECT
fi

i nic więcej? czy gdzieś coś należy jeszcze dodać?

10

Odp: NordVPN openvpn-openssl - brak usługi :(

Chyba nie przeczytałeś ich poradnika do końca. W /etc/firewall.user oraz skrypt w /etc/hotplug.d/iface/ . Dokładnie opisali co trzeba zrobić.

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

11

Odp: NordVPN openvpn-openssl - brak usługi :(

masz rację, przeoczyłem o pliku  99-prevent-leak , jednakże patrząc na zawartości firewalla czy openvpn nigdzie nie ma odnośnika do 99-prevent-leak więc skąd VPN ma brać pod uwagę jego regułę?
taki jeszcze pytanie  zostawiamy z # czy usuwany # ?

#!/bin/sh

12

Odp: NordVPN openvpn-openssl - brak usługi :(

Masz dokładnie wpisać tak jak oni to zrobili. Nie usuwasz tego # z pierwszej linii, on jest ważny.

vpn nie wie. Za to system wie że ma go wykonać jak coś się dzieje z interfejsem.

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

13

Odp: NordVPN openvpn-openssl - brak usługi :(

dziękuję Cezary za wskazówki.

Pozostała jeszcze jedna kwestia która mnie męczy tj

Określony ruch z IP wewnętrznego lub docelowe domeny czy IP na zewnątrz idą tylko przez VPN i blokada internetu bez VPN nie działa dla pozostałego ruchu który pójdzie bez VPN.

na obecnym stanie ustawień łatwiej to zrobić bypassvpn czy w inny sposób?

14

Odp: NordVPN openvpn-openssl - brak usługi :(

Od tego są dwa pakiety - vpnbypass lub vpn-policy-routing, którymi możesz sobie ustawić co ma iść którym połączeniem. Pierwszy służy omijania vpna, a drugi to już w ogóle kobyła jest strasza. Tylko sobie systemu nie zepsuj.

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

15

Odp: NordVPN openvpn-openssl - brak usługi :(

testując ten pierwszy, teoretycznie cały ruch powinien iść z pominięciem VPN?

uci show vpnbypass

vpnbypass.config=vpnbypass
vpnbypass.config.enabled='1'
vpnbypass.config.localsubnet='192.168.1.127/32'

chyba, że wartość  za / jest zła?
https://kthx.at/subnetmask/

16

Odp: NordVPN openvpn-openssl - brak usługi :(

Cały ruch z komputera który ma adres ip 192.168.1.127

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

17

Odp: NordVPN openvpn-openssl - brak usługi :(

Zaczynam Ciebie rozumieć w zakresie odradzania ustawień poprzez Luci, robię mu restart poprzez Luci  a on tylko sobie mieli i nic nie robi, wchodząc na NordVPN pokazuje, IP chronione; dopiero restart reboot spowodował Your Status: Unprotected