Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-04-22 23:09:04

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

OpenVPN problem z DNSleak

Witam.

Od jakiegoś czasu zacząłem używać VPN jednak borykam się z problemem wycieku dns.
Zainstalowałem openresolvconf i nie pomogło.
Edytowałem również plik konfiguracyjny .opvn dodając do niego :

Kod:

script-security 2  
up /etc/openvpn/update-resolv-conf  
down /etc/openvpn/update-resolv-conf

VPNa uruchamiam ze skryptu rc.local.
Wersja mojego sytemu to Jessie 8.4

Offline

 

#2  2016-04-22 23:18:07

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Czym się objawia ten problem?

Offline

 

#3  2016-04-23 22:23:45

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Tym, że moje zapytania DSN nie są kierowanie przez VPN tylko bezpośrednio do ISP.

Offline

 

#4  2016-04-23 23:28:42

  pasqdnik - Pijak ;-P

pasqdnik
Pijak ;-P
Skąd: Wrocław
Zarejestrowany: 2006-03-06

Re: OpenVPN problem z DNSleak

W Network-Managerze działa ok.

Pokaż wynik:

Kod:

 # ls -alh /etc/openvpn

Dum spiro - spero ...
pozdrawiam, pasqdnik

Offline

 

#5  2016-04-24 10:52:46

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Kod:

total 20K
drwxr-xr-x   2 root root 4.0K Apr  9 21:22 .
drwxr-xr-x 143 root root  12K Apr 22 22:23 ..
-rwxr-xr-x   1 root root 1.3K Nov 12 16:23 update-resolv-conf

Offline

 

#6  2016-04-24 10:56:21

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: OpenVPN problem z DNSleak

2965

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:50)

Offline

 

#7  2016-04-24 11:18:29

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Wyskakuje mi błąd przy użyciu podanych przez Ciebie komend:

Kod:

iptables v1.4.21: Can't use -i with OUTPUT

Offline

 

#8  2016-04-24 11:21:45

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: OpenVPN problem z DNSleak

2966

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:51)

Offline

 

#9  2016-04-24 11:42:09

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Te reguły blokują mi całkowicie dostęp do internetu, a konkretnie do DNS

Offline

 

#10  2016-04-24 13:03:58

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: OpenVPN problem z DNSleak

Zainteresuj się programem tsocks jest używany między innymi do tora, i potrafi przechwytywać zapytania DNS programu i kierować przez szyfrowany tunel.

Flagi tsocks w Gentoo:

equery u tsocks-1.8_beta5-r8
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
* Found these USE flags for net-proxy/tsocks-1.8_beta5-r8:
U I
+ + abi_x86_32     : 32-bit (x86) libraries
- - dns            : Force DNS queries to use SOCKS server via tcp
- - envconf        : Allow TSOCKS_CONF_FILE to specify configuration file
- - server-lookups : Allow hostname resolution _for_ SOCKS servers
+ - tordns         : Apply tordns patch which allows transparent TORification
                      of the DNS queries

Ostatnio edytowany przez Jacekalex (2016-04-24 13:07:56)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11  2016-04-24 13:07:18

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Niech zajrzy w log i ustali czy w ogóle dostaje adres DNS, przykład:

Apr 24 13:05:20 morfikownia ovpn-riseup[38262]: [vpn.riseup.net] Peer Connection Initiated with [AF_INET]198.252.153.226:1194
Apr 24 13:05:22 morfikownia ovpn-riseup[38262]: SENT CONTROL [vpn.riseup.net]: 'PUSH_REQUEST' (status=1)
Apr 24 13:05:22 morfikownia ovpn-riseup[38262]: PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 172.27.100.1,route-gateway 172.27.100.1,topology subnet,ping 7,ping-restart 35,socket-flags TCP_NODELAY,ifconfig 172.27.100.7 255.255.252.0'

Offline

 

#12  2016-04-24 14:52:02

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Kod:

Sun Apr 24 14:48:56 2016 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS  89.233.43.71,dhcp-option DNS  91.239.100.100,route 10.9.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.9.1.162 10.9.1.161'

Wygląda na to, że dostaję.

Offline

 

#13  2016-04-24 18:57:33

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Ja sobie tam na szybko przejrzałem. No to w sumie procedura prosta. Instalujesz resolvconf i pobierasz se ten skrypt co jest tu https://github.com/masterkorp/openvpn-update-resolv-conf . Tylko tam jest złe wywołanie programu i trzeba usunąć opcję -x z tej linijki:

Kod:

echo -n "$R" | $RESOLVCONF -x -a "${dev}.inet"

Sprawdzasz sobie kolejność interfejsów w /etc/resolvconf/interface-order i dostosowujesz pod vpn, tak by był pierwszy na liście. Potem odpalasz vpn i /etc/resolv.conf powinien zostać automatycznie przepisany przy podnoszeniu vpn. DNS od vpn powinien zostać dodany na początku:

Kod:

# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.27.100.1
nameserver 127.0.0.1

I usunięty przy ubijaniu:

Kod:

# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

Tylko, że w debianie są problemy z prawami w tych openvpn'ach. Np. zwykle doradzają wrzucenie tego poniższego do konfiguracji:

Kod:

script-security 1
user nobody
group nogroup

Ale wtedy nie idzie ani sterować resolvconf ani usuwać pewnych wpisów konfiguracyjnych sieci i zostaje burdel. xD

BTW, co się stanie jak ten nie bedzie tych nobody i nogroup? Czy w jakiś inny sposób idzie to ogarnąć?

Offline

 

#14  2016-04-24 23:47:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Ten cały DNS leak nie daje mi spokoju. xD Z jednej strony ludzie piszą, że:

If you are connected to a VPN service and ANY of the servers listed above are not provided by the VPN service then you have a DNS leak and are choosing to trust the owners of the above servers with your private data.

-- https://www.dnsleaktest.com/

No i ja mam takie zasadnicze pytanie. Zakładając, że korzystam z dns od googla, co ten przeciek DNS da komukolwiek? Gdzieś na necie wyczytałem, że jeśli w /etc/resolv.conf wpisze się DNS inne już te od vpn, to wtedy odpytywanie domen może się odbywać poza siecią VPN. Wydało mi się to dość dziwne ale postanowiłem zrobić testy. Odpaliłem wiresharka zarówno na eth0 jak i tun0 i wpisałem googlowskie DNS do /etc/resolv.conf . No i co się okazało? Niby jest DNS leak ale zapytania o domeny do googla idą przez VPN (po lewej tun z filterm dns, po prawej eth0 bez filtra):

http://i.imgur.com/i5p331J.png

Także w czym jest problem z tym DNS leak? Ktoś z googla zobaczy, że VPN odpytał domenę, a potem VPN połączy się z serwisem o rozwiązanym IP. No i... ? xD Zakładając, że serwer VPN nie trzyma logów, to po tym fakcie nie da rady ustalić, kto wykorzystywał VPN. A jeśli VPN loguje, to serwer DNS od VPN raczej nic nie zmieni. Czy ktoś mógłby mi wyjaśnić w czym tkwi problem z tym DNS leak?

Offline

 

#15  2016-04-25 00:03:04

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: OpenVPN problem z DNSleak

2968

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:54)

Offline

 

#16  2016-04-25 00:14:21

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Czyli w przypadku VPN, to nie ma żadnego znaczenia, skoro ruch cały leci przez szyfrowany tunel?

Offline

 

#17  2016-04-25 11:35:15

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

No i się wyjaśniło w czym DNS leak może skompromitować VPN:

http://i.imgur.com/EHUAxEe.png

Jak to możliwe, że na eth0 są zapytania DNS? Ano w /etc/resolv.conf widnieje prywatny adres 192.168.3.1 i to na niego lecą zapytania, które nie idą przez default gateway. Ale to tylko takie lokalne DNS są podatne na to, google i całą reszta globalnych providerów DNS jest bezpieczna. xD

Ostatnio edytowany przez morfik (2016-04-25 14:50:09)

Offline

 

#18  2016-04-25 16:22:37

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: OpenVPN problem z DNSleak

2969

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:55)

Offline

 

#19  2016-04-25 18:28:26

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Oj coś chyba nie da rady w ten sposób, wywala domeny kompletnie jeśli w /etc/resolv.conf jest jakiś adres IP inny niż 127.0.0.1

W sumie zrobiłem takie regułki:

Kod:

# iptables -I OUTPUT -p udp  --dport 53 -d 172.27.100.1 -j ACCEPT
# iptables -I OUTPUT -p tcp  --dport 53 -d 172.27.100.1 -j ACCEPT
# iptables -I OUTPUT -p udp  --dport 53 -j DROP
# iptables -I OUTPUT -p tcp  --dport 53 -j DROP

Ten adres wyżej to jest od VPN. Góglowski adres zostanie zablokowany, tak jak i ten prywatny 192.168.*  Pewnie z tego skryptu da radę wyciągnąć zmienną serwera DNS i dopisać tam ten ten mechanizm blokowania na iptables.

Ostatnio edytowany przez morfik (2016-04-25 18:43:33)

Offline

 

#20  2016-04-25 18:40:57

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: OpenVPN problem z DNSleak

2971

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:58)

Offline

 

#21  2016-04-25 18:45:09

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: OpenVPN problem z DNSleak

A może zamiast gimnastyk z resolv.conf zrobić dwie tabele routingu.

Potem celem MARK FW markować pakiety na każdą tabelę z osobna, a OpenVPN niech przestawia mark FW, żeby pakiety włącznie z DNS trafiały do tunelu VPN?

Chodzi o to, że w ten sposób demon OpenVPN może korzystać z innej tabeli routingu, reszta systemu z innej, da się to najłatwiej zrobić przez moduły cgroup albo owner firewalla.

Wtedy OpenVPN mógłby dynamicznie przełączać routing, a resolv.conf w ogóle nie trzeba ruszać.

Ostatnio edytowany przez Jacekalex (2016-04-25 18:46:35)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#22  2016-04-25 22:47:48

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Zmęczyłem w końcu to. xD Tam do tego skryptu co jest wywoływany przy starcie i niszczeniu połączenia VPN dodałem takie coś.

Przy starcie:

Kod:

  echo -n "$R" | $RESOLVCONF -a "${dev}.inet"

  $IPT -N openvpn
  $IPT -I OUTPUT 1 -p tcp --dport 53 -j openvpn
  $IPT -I OUTPUT 1 -p udp --dport 53 -j openvpn
  for NS in $IF_DNS_NAMESERVERS ; do
    $IPT -A openvpn -p tcp -o ${dev} -d $NS -j ACCEPT
    $IPT -A openvpn -p udp -o ${dev} -d $NS -j ACCEPT
  done
  $IPT -A openvpn -p tcp -o lo -j ACCEPT
  $IPT -A openvpn -p udp -o lo -j ACCEPT
  $IPT -A openvpn -p udp -j DROP
  $IPT -A openvpn -p tcp -j DROP

Przy niszczeniu:

Kod:

  $RESOLVCONF -d "${dev}.inet"

if [ ! -z "$foreign_option_1" ] || [ ! -z "$foreign_option_2" ] ; then
    $IPT -D OUTPUT -p tcp --dport 53 -j openvpn
    $IPT -D OUTPUT -p udp --dport 53 -j openvpn
    $IPT -F openvpn
    $IPT -X openvpn
fi

Ładnie dodaje regułki i ładnie je usuwa.

Offline

 

#23  2016-08-25 22:06:20

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Zastosowałem się do Twoich rad. Poniżej log z openvpna.

Kod:

Thu Aug 25 21:55:50 2016 OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Nov 12 2015
Thu Aug 25 21:55:50 2016 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08
Thu Aug 25 21:55:50 2016 WARNING: file '/home/eraz/Dokumenty/VPNbook/login.conf' is group or others accessible
Thu Aug 25 21:55:50 2016 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Thu Aug 25 21:55:50 2016 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Thu Aug 25 21:55:50 2016 NOTE: --fast-io is disabled since we are not using UDP
Thu Aug 25 21:55:50 2016 Socket Buffers: R=[87380->131072] S=[16384->131072]
Thu Aug 25 21:55:50 2016 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Thu Aug 25 21:55:50 2016 Attempting to establish TCP connection with [AF_INET]176.126.237.214:443 [nonblock]
Thu Aug 25 21:55:51 2016 TCP connection established with [AF_INET]176.126.237.214:443
Thu Aug 25 21:55:51 2016 TCPv4_CLIENT link local: [undef]
Thu Aug 25 21:55:51 2016 TCPv4_CLIENT link remote: [AF_INET]176.126.237.214:443
Thu Aug 25 21:55:51 2016 TLS: Initial packet from [AF_INET]176.126.237.214:443, sid=66c76f1d 5774715e
Thu Aug 25 21:55:51 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Thu Aug 25 21:55:53 2016 VERIFY OK: depth=1, C=CH, ST=Zurich, L=Zurich, O=vpnbook.com, OU=IT, CN=vpnbook.com, name=vpnbook.com, emailAddress=admin@vpnbook.com
Thu Aug 25 21:55:53 2016 VERIFY OK: depth=0, C=CH, ST=Zurich, L=Zurich, O=vpnbook.com, OU=IT, CN=vpnbook.com, name=vpnbook.com, emailAddress=admin@vpnbook.com
Thu Aug 25 21:55:53 2016 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Thu Aug 25 21:55:53 2016 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Aug 25 21:55:53 2016 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Thu Aug 25 21:55:53 2016 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Aug 25 21:55:53 2016 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Thu Aug 25 21:55:53 2016 [vpnbook.com] Peer Connection Initiated with [AF_INET]176.126.237.214:443
Thu Aug 25 21:55:56 2016 SENT CONTROL [vpnbook.com]: 'PUSH_REQUEST' (status=1)
Thu Aug 25 21:55:56 2016 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS  84.200.69.80,dhcp-option DNS  37.235.1.177,route 10.9.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.9.1.42 10.9.1.41'
Thu Aug 25 21:55:56 2016 OPTIONS IMPORT: timers and/or timeouts modified
Thu Aug 25 21:55:56 2016 OPTIONS IMPORT: --ifconfig/up options modified
Thu Aug 25 21:55:56 2016 OPTIONS IMPORT: route options modified
Thu Aug 25 21:55:56 2016 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Thu Aug 25 21:55:56 2016 ROUTE_GATEWAY 192.168.201.1/255.255.255.0 IFACE=wlan0 HWADDR=c0:cb:38:23:0c:46
Thu Aug 25 21:55:56 2016 TUN/TAP device tun1 opened
Thu Aug 25 21:55:56 2016 TUN/TAP TX queue length set to 100
Thu Aug 25 21:55:56 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Aug 25 21:55:56 2016 /sbin/ip link set dev tun1 up mtu 1500
Thu Aug 25 21:55:56 2016 /sbin/ip addr add dev tun1 local 10.9.1.42 peer 10.9.1.41
Thu Aug 25 21:55:56 2016 /etc/openvpn/update-resolv-conf.sh tun1 1500 1560 10.9.1.42 10.9.1.41 init
dhcp-option DNS 208.67.222.222
dhcp-option DNS 208.67.220.220
Thu Aug 25 21:55:59 2016 /sbin/ip route add 176.126.237.214/32 via 192.168.201.1
RTNETLINK answers: File exists
Thu Aug 25 21:55:59 2016 ERROR: Linux route add command failed: external program exited with error status: 2
Thu Aug 25 21:55:59 2016 /sbin/ip route add 0.0.0.0/1 via 10.9.1.41
Thu Aug 25 21:55:59 2016 /sbin/ip route add 128.0.0.0/1 via 10.9.1.41
Thu Aug 25 21:55:59 2016 /sbin/ip route add 10.9.0.1/32 via 10.9.1.41
Thu Aug 25 21:55:59 2016 GID set to nogroup
Thu Aug 25 21:55:59 2016 UID set to nobody
Thu Aug 25 21:55:59 2016 Initialization Sequence Completed

Widać zmianę, jednak przy dodaniu do skryptu tych regułek, które wrzuciłeś tracę dostęp do internetu.
Jakieś pomysły?

Offline

 

#24  2016-08-26 07:31:14

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: OpenVPN problem z DNSleak

Zobacz jak wyglądają reguły w iptables. Poza tym, co to jest:

Thu Aug 25 21:55:59 2016 /sbin/ip route add 176.126.237.214/32 via 192.168.201.1
RTNETLINK answers: File exists

U mnie VPN działa sobie bez problemu z tymi regułkami w skrypcie, także pewnie gdzieś indziej jest coś schrzanione.

Offline

 

#25  2016-08-27 22:24:09

  HumanDev - Użytkownik

HumanDev
Użytkownik
Zarejestrowany: 2016-03-27

Re: OpenVPN problem z DNSleak

Dziś zauważyłem parę niepokojących rzeczy po odpaleniu sytemctl --failed odkryłem coś co może być powodem moich problemów.
A dokładniej:

Kod:

openvpn@update-resolv-conf.service loaded failed failed OpenVPN connection to update

Czy to może powodować moje problemy?

Ostatnio edytowany przez HumanDev (2016-08-27 22:24:28)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)