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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
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 :
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
Tym, że moje zapytania DSN nie są kierowanie przez VPN tylko bezpośrednio do ISP.
Offline
W Network-Managerze działa ok.
Pokaż wynik:
# ls -alh /etc/openvpn
Offline
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
2965
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:50)
Offline
Wyskakuje mi błąd przy użyciu podanych przez Ciebie komend:
iptables v1.4.21: Can't use -i with OUTPUT
Offline
2966
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:51)
Offline
Te reguły blokują mi całkowicie dostęp do internetu, a konkretnie do DNS
Offline
Zainteresuj się programem [b]tsocks[/b] 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
- - [b]dns : Force DNS queries to use SOCKS server via tcp[/b]
- - 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[/quote]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
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,[b]dhcp-option DNS 172.27.100.1[/b],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'[/quote]
Offline
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
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ę [b]-x[/b] z tej linijki:
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:
# 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:
# 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:
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
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/[/quote]
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):
[img]http://i.imgur.com/i5p331J.png[/img]
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
2968
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:54)
Offline
No i się wyjaśniło w czym DNS leak może skompromitować VPN:
[img]http://i.imgur.com/EHUAxEe.png[/img]
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
2969
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:55)
Offline
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:
# 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
2971
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:39:58)
Offline
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)
Offline
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:
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:
$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
Zastosowałem się do Twoich rad. Poniżej log z openvpna.
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
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[/quote]
U mnie VPN działa sobie bez problemu z tymi regułkami w skrypcie, także pewnie gdzieś indziej jest coś schrzanione.
Offline
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:
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
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00153 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.216.104.106' WHERE u.id=1 |
0.00072 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.216.104.106', 1732781196) |
0.00041 | SELECT * FROM punbb_online WHERE logged<1732780896 |
0.00057 | SELECT topic_id FROM punbb_posts WHERE id=300971 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=28557 ORDER BY posted |
0.00084 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28557 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00331 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28557 ORDER BY p.id LIMIT 0,25 |
0.00086 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28557 |
Total query time: 0.00852 s |