LINUX.ORG.RU

Tor+OpenVPN+Zyxel Keenetic dsl

 , ,


0

1

Всех приветствую!

В общем, имею следующее: OpenVPN сервер на VDS > Zyxel Keenetic dsl > OpenVPN клиент на Ubuntu 16.04. При подключении к OpenVPN серверу с ноута на Ubuntu 16.04(через консоль или через network manager), по OpenVPN — траффик с машины, включая весь софт, прекрасно бегает по туннелю. При попытке запустить Tor браузер или Whonix после соединения с OpenVPN начинается висяк на этапе

Loading networkstatus consensus
Загрузка состояния сети

Сегодня Я подоткнул свой старый роутер Tenda W300D в качестве шлюза, попробовал подключиться той же схемой Ethernet>VPN>Tor>Internet и все заработало. В общем, оказывается, что беда в роутере. Ни на старом, ни на новом нет никаких правил NAT или правил фаерволла. Просто поднято соединение с интернетом от провайдера и все. При этом с работы у меня так же все работает, там в качестве шлюза сервер стоит. Но самое интересное, что с телефона дома все работает при связке Wi-Fi>OpenVPN>Orbot>Internet.

Я уже создавал темку с проблемой подключения Tor к сети. Частичным решением было поднятие SSH туннеля, которое мне подсказали, однако хочется, чтобы все работало и с OpenVPN и с этим роутером. Прошу подсказать, в чем может быть дело!? Если нужно, могу скинуть дамп с wireshark при попытке соединения Tor, но может есть более простое решение?

OpenVPN server 2.3.4, OpenSSL 1.0.1t

OpenVPN client 2.3.10, OpenSSL 1.0.2g

Прошивка роутера полседняя: v2.05(AAGK.0)C6. На 2.03 была аналогичная ситуевина.

Конфиг сервера

port 1234
proto udp
dev tun
client-config-dir /etc/openvpn/ccd
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
client-to-client
max-clients 20
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
mute 20
askpass /etc/openvpn/pass
Конфиг клиента
remote 123.456.789.00 1234
push "redirect-gateway def1"
tls-client
remote-cert-tls server
auth-nocache
nobind
proto udp
dev tun0
pull
resolv-retry infinite
comp-lzo
ca /home/yazov/vpn/ca.crt
cert /home/yazov/vpn/notebook.crt
key /home/yazov/vpn/notebook.key
persist-tun
persist-key
verb 3
route-method exe
route-delay 2

Как уже говорил - на роутере никаких пробросов портов и тому подобного. Просто поднято соединение и DHCP для локалки. Но Я полагаю, что именно это и нужно.

system
    set net.ipv4.ip_forward 1
    set net.ipv4.tcp_fin_timeout 30
    set net.ipv4.tcp_keepalive_time 120
    set net.ipv4.netfilter.ip_conntrack_tcp_timeout_established 1200
    set net.ipv4.netfilter.ip_conntrack_udp_timeout 60
    set net.ipv4.netfilter.ip_conntrack_max 4096
    set vm.swappiness 100
    no button WLAN on click
    clock timezone Asia/Almaty
    clock date  4 Jan 2017 00:50:31
    domainname WORKGROUP
    hostname Keenetic_DSL
!
ntp server 0.pool.ntp.org
ntp server 1.pool.ntp.org
ntp server 2.pool.ntp.org
ntp server 3.pool.ntp.org
isolate-private
dyndns profile _WEBADMIN
!
skydns
    assign 4511012
!
interface Switch0
    port 3
        mode access
        access vlan 1
    !
    port 2
        mode access
        access vlan 1
    !
    port 1
        mode access
        access vlan 1
    !
    port 0
        mode access
        access vlan 1
    !
    up
!
interface Switch0/VLAN1
    description "Home VLAN"
    security-level private
    ip dhcp client dns-routes
    ip dhcp client name-servers
    up
!
interface Adsl0
    operating-mode auto
    up
!
interface Adsl0/Pvc0
    description "Default PVC"
    pvc 0 40
        encapsulation aal5snap
    !
    security-level public
    ip address dhcp
    ip dhcp client dns-routes
    ip dhcp client name-servers
    up
!
interface WifiMaster0
    country-code RU
    compatibility BGN
    power 100
    up
!
interface WifiMaster0/AccessPoint0
    name AccessPoint
    description "Wi-Fi access point"
    mac access-list type none
    security-level private
    authentication wpa-psk ns3
    encryption enable
    encryption wpa2
    ip dhcp client dns-routes
    ip dhcp client name-servers
    ssid Yazov
    up
!
interface WifiMaster0/WifiStation0
    security-level public
    encryption disable
    ip address dhcp
    ip dhcp client dns-routes
    ip dhcp client name-servers
    down
!
interface Bridge0
    name Home
    description "Home network (Wired and wireless hosts)"
    inherit Switch0/VLAN1
    include AccessPoint
    security-level private
    ip address 192.168.1.1 255.255.255.0
    ip dhcp client dns-routes
    ip dhcp client name-servers
    igmp downstream
    up
!
interface PPPoE0
    description Megaline
    no ipv6cp
    lcp echo 30 3
    ipcp default-route
    ipcp name-servers
    ipcp dns-routes
    no ccp
    security-level public
    authentication identity 
    authentication password ns3 
    ip dhcp client dns-routes
    ip dhcp client name-servers
    ip mtu 1400
    ip global 1000
    ip tcp adjust-mss pmtu
    connect via Adsl0/Pvc0
    up
!
ip dhcp pool _WEBADMIN
    range 192.168.1.33 192.168.1.52
    bind Home
    enable
!
ip dhcp pool _WEBADMIN_GUEST_AP
    range 10.1.30.33 10.1.30.52
    bind GuestWiFi
    enable
!
ip nat GuestWiFi
ip nat Home
ppe hardware
upnp lan Home
user admin
    password md5 
    password nt 
    tag cli
    tag http
!
service dhcp
service dns-proxy
service http
service telnet
service ntp-client
service upnp


Последнее исправление: Yazov (всего исправлений: 11)

В общем, оказывается, что беда в роутере. Ни на старом, ни на новом нет никаких правил NAT или правил фаерволла.

Шить OpenWRT или dd-wrt по любому нужно, если есть возможность. Прошивки из коробки как правило отвратительны.

с телефона дома все работает при связке Wi-Fi>OpenVPN>Orbot>Internet

А десктоп на том же роутере нет? Значит, виноват десктоп, скорее всего. Запусти Tor Browser из терминала и выложи лог. У меня были подобные проблемы, решилось синхронизацией времени. Проверь время на десктопе https://time.is/

Payload
()
Ответ на: комментарий от Payload

А десктоп на том же роутере нет? Значит, виноват десктоп, скорее всего.

Да, десктоп на том же роутере и не работает. Но если меняю роутер на тенду - начинает работать. Пробовал на другой машине, там тоже убунта, тем же конфигом - абсолютно та же история.

Запусти Tor Browser из терминала и выложи лог

25% Loading networkstatus consensus

И все. Может висеть хоть час - больше ничего не напишет.

решилось синхронизацией времени

Везде время синхронизировано. На VDS, на роутере и на десктопе. Пробовал даже на VDS выставить часовой пояс свой.

Я вообще не понимаю — все происходит в VPN туннеле. Какая тору нахрен разница, какой там шлюз..

Yazov
() автор топика
Ответ на: комментарий от Yazov

если меняю роутер на тенду - начинает работать

Посмотри через что у тебя идут DNS запросы на обоих роутерах.
Что происходит если поднять OpenVPN сессию на десктопе?

И все

И никаких warning, info? Допустим.
Попытайся зайти на torproject под VPN сессией где тор не работает, скажи что происходит.
Этот вопрос отношения к твоей проблеме не имеет, просто интересно.

Payload
()
Ответ на: комментарий от Payload

Посмотри через что у тебя идут DNS запросы на обоих роутерах.

В обоих случаях выдает провайдер при подключении. Через PPoE. Попробую гугловые прописать.

Что происходит если поднять OpenVPN сессию на десктопе?

Так Я так и делаю. Сессия и поднимается на десктопе, а не на роутере. Выше писал, что через network manager или из терминала.

Попытайся зайти на torproject под VPN сессией где тор не работает, скажи что происходит.

Без VPN сайт заблокирован провайдером. С VPN на сайт с браузера - заходит и все отлично. Однако Tor, при этом, ни в какую не хочет стартовать. P.S. Еще такое было: если поднимаю SSH туннель до той же VDS и прописываю прокси в настройки тора - последний подключается и все работает. Кладу туннель, подключаюсь по OpenVPN - Tor соединяется, открывается его заглавная страничка, мол поздравляем, а дальше все — никакие сайты и проекты torproject не открываются. После ребута десктопа Тор опять отказывается подключаться.

Yazov
() автор топика
Ответ на: комментарий от Yazov

Попробую гугловые прописать.

DNS не шифруется.
Я думаю, у тебя скорее всего DNS запросы на десктопе идут не через VPN.
Проверь ещё раз, погугли openvpn dns leaks, сравни в Wireshark запуск Tor-сессии через SSH-туннель и OpenVPN.

Еще такое было: если поднимаю SSH туннель до той же VDS и прописываю прокси в настройки тора - последний подключается и все работает. Кладу туннель, подключаюсь по OpenVPN - Tor соединяется, открывается его заглавная страничка, мол поздравляем, а дальше все — никакие сайты и проекты torproject не открываются.

Скорее всего, при SSH-туннеле не происходит DNS утечка, и правильный IP кешируется чем-то.
Копай в сторону DNS, я думаю твоя проблема в этой стороне.

Payload
()
Ответ на: комментарий от Payload

Итак, Я добился вот такого лога при запуске Tor из консоли:

yazov@yazov-G550JK:~$ tor
Jan 04 18:29:19.351 [notice] Tor v0.2.7.6 (git-605ae665009853bd) running on Linux with Libevent 2.0.21-stable, OpenSSL 1.0.2g and Zlib 1.2.8.
Jan 04 18:29:19.351 [notice] Tor cant help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jan 04 18:29:19.351 [notice] Read configuration file "/etc/tor/torrc".
Jan 04 18:29:19.353 [notice] Opening Socks listener on 127.0.0.1:9050
Jan 04 18:29:19.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Jan 04 18:29:19.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Jan 04 18:29:19.000 [notice] Bootstrapped 0%: Starting
Jan 04 18:29:20.000 [notice] Bootstrapped 5%: Connecting to directory server
Jan 04 18:29:20.000 [notice] Bootstrapped 10%: Finishing handshake with directory server
Jan 04 18:29:21.000 [notice] Bootstrapped 15%: Establishing an encrypted directory connection
Jan 04 18:29:21.000 [notice] Bootstrapped 20%: Asking for networkstatus consensus
Jan 04 18:29:21.000 [notice] Bootstrapped 25%: Loading networkstatus consensus
Jan 04 18:56:53.000 [notice] I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
Jan 04 18:56:54.000 [notice] Bootstrapped 40%: Loading authority key certs
Jan 04 18:56:54.000 [notice] Bootstrapped 45%: Asking for relay descriptors
Jan 04 18:56:54.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/7179, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of exit bw = 0% of path bw.)
Jan 04 18:58:06.000 [notice] No circuits are opened. Relaxed timeout for circuit 9 (a General-purpose client 1-hop circuit in state doing handshakes with channel state open) to 60000ms. However, it appears the circuit has timed out anyway. 0 guards are live.
Jan 04 19:58:21.000 [notice] No circuits are opened. Relaxed timeout for circuit 306 (a General-purpose client 1-hop circuit in state doing handshakes with channel state open) to 60000ms. However, it appears the circuit has timed out anyway. 0 guards are live. [139 similar message(s) suppressed in last 3600 seconds]

Я думаю, у тебя скорее всего DNS запросы на десктопе идут не через VPN.

Проверял на dnsleaktest, там показано, что утечки нет, но это, конечно, не показатель. Добавил в конфиге на клиенте:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
Теперь пробую только из консоли подключаться, но результата пока нет.

Копай в сторону DNS, я думаю твоя проблема в этой стороне.

Попробовал в PPoE прописать DNS, они вроде идут приоритетней тех, что дает мне провайдер, по крайней мере они стоят выше в dash роутера. Результата нет. Изменить полностью соединение, убрав их DNS Я не могу - соединения не устанавливается. Только их DHCP.

Пробовал включить ЯндексDNS(типа функционал есть в кинетике такой). dnsleaktest утверждает, что Я использую только DNS Яндекса. Казахстана там и в помине нет и его DNS. Однако результата так же нет.

Я понять не могу, почему с другим роутером работает. Это же самое интересное. Завтра попробую Wireshark.

Yazov
() автор топика
Ответ на: комментарий от Yazov

dnsleaktest утверждает, что Я использую только DNS Яндекса

А нужно использовать DNS VPN сервера.
DNS идёт чистым текстом без шифрования, провайдер через DPI может менять записи.

почему с другим роутером работает

Firewall? Баг в стоковой прошивке?
Чтобы было более понятно в чём дело, лучше попытаться подключиться в сеть напрямую, без роутера.
Только я не знаю, выдаёт ли тебе провайдер белый IP, отключи sshd перед этим на всякий случай.
Желаю удачи в решении проблемы.

Payload
()
Ответ на: комментарий от Payload

А нужно использовать DNS VPN сервера.

Так если Я подключаюсь по OpenVPN отображаются только DNS гугла, как у меня и настроено. То есть утечки нет. Ну могу на VDS bind поднять, но едва-ли это изменит ситацию.

Firewall? Баг в стоковой прошивке?

Никаких правил NAT или фаера в обоих роутерах. Может и баг.

Чтобы было более понятно в чём дело, лучше попытаться подключиться в сеть напрямую, без роутера.

ADSL... Если ты живешь в частном доме в Казахстане, то только ADSL. Ни о каких белых IP и речи нет :( Хотя в многоквартирниках и тебе белый IP и до пол гигабита скорость...

Желаю удачи в решении проблемы.

Спасибо за помощь! Буду ковырять)

Yazov
() автор топика
Ответ на: комментарий от Yazov

на VDS bind поднять

Ни в коем случае.


Если утечки нет, то смотри в сторону роутера тогда.
OpenVPN влияет на MTU, возможно стоит посмотреть в эту сторону дополнительно. В целом становится понятно, что дело в роутере или с MTU.

Payload
()
Ответ на: комментарий от Payload

Итак, Я нашел решение! =) Проблема оказалась именно в MTU. Не знаю, какое значение было в старом роутере, но в новом стоит максимально допустимое для моего провайдера и, собственно роутера, а именно 1400(1372+28 байт заголовка). Оказалось, что при связке OpenVPN+Tor этого значения не достаточно. При подключении схемой OpenVPN over TOR в Wireshark начинается это:

0.717513837	95.37.173.128	192.168.1.34	ICMP	590	Destination unreachable (Fragmentation needed)
Причем первый IP - мой ip, который мне выдал провайдер при подключении на роутере, а второй - мой локальный. Отсюда стало понятно, что проблема не совсем в роутере. Не стал менять это значение на роутере, решил вопрос по-другому — в конфиге openvpn на сервере или на клиенте прописываю:
mssfix 1372
И, собственно все. Решил указывать на клиенте, ибо только Я этой связкой пользуюсь, а значение MTU крайне не рекомендуется менять, если нет проблем. Спасибо Payload за наводку!

Yazov
() автор топика
Ответ на: комментарий от Yazov

Ну и, собственно, tor в vpn начинал слать мне пакеты размером 1487, что мой роутер отвергал. Пакеты с DF флагом, поэтому все и начинало стопориться.

Yazov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.