Jump to content
posydon

VPN для определённых ресурсов

Recommended Posts

В связи с блокировкой OK.RU и VK.COM и ещё много чего на просторах Украины,возник вопрос о VPN.Попробовав первый попавшийся,а это был Hideme.ru настроил на Giga III с прошивкой v2.08(AAUW.0)C2 наткнулся на проблему.Во первых клиент World of tanks не подключается,во вторых некоторые программы на смартфоне тоже не могут подключится хотя не через VPN всё замечательно подключается как на компе с windows 10 так и на смартфоне с Android 7.1.2.Возник вопрос.Можно ли как то настроить доступ по VPN именно для ресурсов которые заблокированы,а для всего остального трафика в обход VPN?

Share this post


Link to post
Share on other sites
18 минут назад, posydon сказал:

В связи с блокировкой OK.RU и VK.COM и ещё много чего на просторах Украины,возник вопрос о VPN.Попробовав первый попавшийся,а это был Hideme.ru настроил на Giga III с прошивкой v2.08(AAUW.0)C2 наткнулся на проблему.Во первых клиент World of tanks не подключается,во вторых некоторые программы на смартфоне тоже не могут подключится хотя не через VPN всё замечательно подключается как на компе с windows 10 так и на смартфоне с Android 7.1.2.Возник вопрос.Можно ли как то настроить доступ по VPN именно для ресурсов которые заблокированы,а для всего остального трафика в обход VPN?

Где подробности?

Share this post


Link to post
Share on other sites
1 минуту назад, posydon сказал:

какие именно?

Лучше начните с этого - через Ваш VPN частично не открываются сайты/не работают сервисы или полностью не пашет.

Потом нужно сделать примерно так.

Удобно в любом случае не выйдет, но чтобы хоть как-то жить - это вполне =)

Share this post


Link to post
Share on other sites
1 минуту назад, IgaX сказал:

Лучше начните с этого - через Ваш VPN частично не открываются сайты/не работают сервисы или полностью не пашет.

Потом нужно сделать примерно так.

Удобно в любом случае не выйдет, но чтобы хоть как-то жить - это вполне =)

Через мой VPN открываются все сайты,ну по крайней мере те куда я заходил и те,что заблокированы провайдером тоже.Через VPN не подключается клиент игры world of tanks и world of warships.Так же не могу зайти со смартфона приложением Forpda на сайт 4pda.ru без VPN подключения всё подключается свободно и игра и смартфон с приложением forpda.По сему возник вопрос о проводе через VPN только трафика для заблокированых ресурсов,а остальной трафик в обход vpn   self-test.txt

Share this post


Link to post
Share on other sites
3 минуты назад, posydon сказал:

клиент игры world of tanks и world of warships

какая ось? а то есть одно предположение, возможно, Ваш случай.

Share this post


Link to post
Share on other sites
Только что, IgaX сказал:

какая ось? а то есть одно предположение, возможно, Ваш случай.

Win 10 x64 Но меня больше заботит направить трафик блок ресурсов через VPN а не весь трафик роутера,так как пинг не очень комфортный для игры

Share this post


Link to post
Share on other sites
2 минуты назад, posydon сказал:

Win 10 x64 Но меня больше заботит направить трафик блок ресурсов через VPN а не весь трафик роутера,так как пинг не очень комфортный для игры

тогда пока посмотрите для начала, например, команду nslookup .. скажем, вывод в консоли (командной строке винды): nslookup google.com. (лучше всегда ставить точку в конце) .. там Вам интересна, например, эта часть (которую Вы чаще всего получаете от DNS, который Вы у себя настроили и запрашиваете):

Не заслуживающий доверия ответ:
╚ь :     google.com
Addresses:  2a00:1450:400f:808::200e
          87.245.198.23
          87.245.198.24
          87.245.198.22
          87.245.198.27
          87.245.198.20
          87.245.198.26
          87.245.198.21
          87.245.198.25

.. это список ip, которые Вам нужно будет привести в удобную запись, чтобы на нее повесить отдельный маршрут через интерфейс с VPN .. 

.. для этого удобнее воспользоваться, например, туда скопировать из консоли список ip, вывод "CIDR", жмяк - "аггр." ..

.. т.е. Вы понимаете, что хотите .. надо узнать на какие ip нужно заворачивать трафик отдельно для VPN .. способов много .. Вы пока прикиньте, а я посмотрю Ваш конфиг =)

Share this post


Link to post
Share on other sites

Пишет Не заслуживающий доверия ответ.Если честно,то я вообще не въезжаю.Открыл командную строку,ввел nslookup google.com. получил ответ или Не заслуживающий доверия ответ или превышено время ожидания.Это всё проделывать с VPN или без?Я делал без

Share this post


Link to post
Share on other sites

с включённым vpn тоже Не заслуживающий доверия ответ или превышено время ожидания

 

> nslookup google.com.
╤хЁтхЁ:  google.com
Addresses:  2a00:1450:401b:803::200e
          172.217.20.174

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Превышено время ожидания запроса google.com.

Edited by posydon

Share this post


Link to post
Share on other sites
ip tcp adjust-mss pmtu

- это у Вас есть на interface PPTP0 .. хотите проверим WoT и WoW на предмет черной дыры по пути между галактиками? :) Там несложно, чутка реестр поправить, если Вы готовы конечно, зато может решить очень много проблем любого софта (иногда кривого, хотя и галактики тоже пнуть немного не помешает).

7 минут назад, posydon сказал:

Это всё проделывать с VPN или без?Я делал без

ну .. как сказать .. по аналогии: если без VPN, то Вы узнаёте в "своей справочной" (DNS Вашего ISP или какой настроен) нужные IP, если с VPN - в "нашей" (если в настройках придут еще ее координаты и если она в приоритете) - это Вам KB Кинетика изучать и хэлпдеск мучить.

главное тут одно: клиент все это дело кэширует, поэтому каждый раз, когда меняете подключение, - не забывайте на клиенте чистить эти кэши (на всякий случай, а то клиент запомнит сопоставление имени и определенного ip на некоторое время, а если по нему (разрешаемому из кэша - ip) из другого подключения не достучаться? правильно, другие dns вполне подскажут другие ip) .. вникаете постепенно?

если кратко,то запрашивайте справочную dns гугла, им фиолетово и они вообще плохо бред переносят, либо есть тема с dnscrypt на форуме (если случай совсем тяжелый) .. easy-2-use app как вариант.

11 минуту назад, posydon сказал:

Не заслуживающий доверия ответ

Это нормально для кэширующих серверов. Но проблема в том, что они могут быть чьи угодно, все это может перехватываться .. в общем .. справочные могут быть неадекватны.

Чтобы получить почти трушный ответ нужно в N заходов, например:

nslookup -querytype=soa google.com.

узнали:

Не заслуживающий доверия ответ:
google.com
        primary name server = ns4.google.com

ню, ns4.google.com похож на правду, проверим с другой стороны:

nslookup -querytype=soa google.com. ns4.google.com.

совсем другое дело (за форж такого обычно появляется ковенант на орбите и в паре с мастер-чифом выжигают планету под корень):

╤хЁтхЁ:  ns4.google.com
Address:  216.239.38.10

google.com
        primary name server = ns2.google.com
        responsible mail addr = dns-admin.google.com
        serial  = 156397181
        refresh = 900 (15 mins)
        retry   = 900 (15 mins)
        expire  = 1800 (30 mins)
        default TTL = 60 (1 min)
google.com      nameserver = ns2.google.com
google.com      nameserver = ns1.google.com
google.com      nameserver = ns3.google.com
google.com      nameserver = ns4.google.com
ns2.google.com  internet address = 216.239.34.10
ns1.google.com  internet address = 216.239.32.10
ns3.google.com  internet address = 216.239.36.10
ns4.google.com  internet address = 216.239.38.10

все вроде правильно, поэтому можно спокойно:

nslookup google.com. ns4.google.com.

или

nslookup google.com. 216.239.38.10

.. все данные есть, чтобы более-менее считать достоверными результаты.

***
Вам надо найти KB по настройке маршрутов. Понять как выцепить нужные IP. Как их оформить в краткие записи.

Share this post


Link to post
Share on other sites

Спасибо,огромное!!!Думаю будут ещё обращения от пользователей с похожими проблемами и этот мануал им поможет,для меня же этот бубен не стоит такой пляски,поставлю free vpn на смартфон жены и пусть гуляет по одноклассникам,а я буду гулять с компа без VPN.

P.S. Купил роутер за 128$ а пользоваться его благами наверно и не буду :)

Share this post


Link to post
Share on other sites

.. чтобы пляску с dns на клиентах свести к минимуму просто настройте: "Домашняя сеть" -> "Сегменты" -> "Home" -> "Сервер DHCP" .. чтобы DNS 1 и DNS 2 были, например: 8.8.8.8, 8.8.4.4 .. после чего переподключите клиентов и почистите на них кэши dns (либо перезагрузите), чтобы со стороны клиентов заработали запросы к этим "справочным" (в свойствах подключения можно перепроверить) .. vpn это как портал в терминах игр .. неважно где выход из портала - справочная гугла должна будет выдать адекватный ответ для локации в которой Вы вышли :)

Share this post


Link to post
Share on other sites
2 часа назад, Le ecureuil сказал:

Что хоть за роутер и за тип VPN-соединения у вас.

Giga III с прошивкой v2.08(AAUW.0)C2 vpn соединение PPTP

Share this post


Link to post
Share on other sites

1.Для варианта VPN - поднимаете на роутере на котором есть интернет, даете ему приоритет меньше интернетовского, т.е. тем самым оставляете все как есть ранее, но получаете еще один канал. Два маршрута - активный интернет и второй просто "рабочий" или включенный.

2.Определяетесь с OK.RU и VK.COM => заворотом на данный канал маршрутами.

вам нужен origin AS, как это сделать

Скрытый текст

поставить на роутер Entware "whois"

1. nslookup vk.com

2. whois -h whois.radb.net IP_Address (можно первый из списка)

3. нужна запись orign = ASххххх

4. whois -h whois.radb.net '!gAS47541' - список IP

5. на основании данных адресов там будет диапазон сетей с маской /18;/21;/22;/23

6. тут наверное уже надо "покумекать" - как все завернуть в VPN (например iproute имеет table)

Почему так - так как большинство VPN платные (с хорошими сервисами) или на определенное кол-во трафика.

Другой вариант - заворот трафика iptables в VPN канал (нужкн IP сервера VPN или мнемоника, плюс порты 1723 и протокол gre разрешенный)

Но так как это наброски то нужно смотреть конкретно что имеется.

 

Edited by vasek00

Share this post


Link to post
Share on other sites
2 часа назад, vasek00 сказал:

вам нужен origin AS, как это сделать

если крупный, то надо учитывать еще поведение балансировщика, а то вдруг скинет на (например):
https://apps.db.ripe.net/search/lookup.html?source=ripe&key=AS28709&type=aut-num

я бы по mnt еще смотрел (например, если б султан сказал заблочить, то в т.ч. таким путем пошел):
https://apps.db.ripe.net/search/query.html?searchtext=VKONTAKTE-NET-MNT&inverse=mnt-by;mnt-domains;mnt-routes&types=inetnum&rflag=true&source=RIPE#resultsAnchor

и на тот случай если проще будет в т.ч. по географии завернуть:
https://stat.ripe.net/RU#database_country-asns.resource=RU&database_country-resource-list.resource=RU&routing_country-routing-stats.comparison=no&routing_country-routing-stats.resource=ru&routing_country-routing-stats.zoom_end=1495178100000&routing_country-routing-stats.zoom_start=1494854400000&tabId=database

Share this post


Link to post
Share on other sites

на первый взгляд, желание @posydon для ВК можно было бы организовать так (при условии, что VPN через PPTP0 настроен для выхода в инет через админку, проверен, что работает по тем же приоритетам) .. если в лоб за один заход по логике через cli или #web.tc:

1) снимаем с PPTP0 установку маршрута по-умолчанию от приоритета global (оставляя интерфейс поднятым):

interface PPTP0 no ip global

2) добавляем маршруты для ВК (например, агрегированные от ripe по mnt-* при помощи) через PPTP0 при его (VPN) доступности(?):

ip route 87.240.128.0/18 PPTP0 auto
ip route 93.186.224.0/20 PPTP0 auto
ip route 95.142.192.0/20 PPTP0 auto
ip route 95.213.0.0/17 PPTP0 auto
ip route 185.32.248.0/22 PPTP0 auto

В итоге: все идет на маршрут по-умолчанию на интерфейс с наивысшим global (например, Ваш ISP) кроме трафика, который попадает в список выше (это идет через PPTP0) .. чтобы это заработало нужно в т.ч. проверить, что клиенты получают адреса для указанных CIDR при обращении к DNS, которые на них настроены .. после первой настройки п.1, п.2 и проверки своих клиентов на предмет адекватных DNS - кэши DNS на клиентах очень желательно почистить.

Если все заработало, то сохранить конфиг:

system configuration save

Если схема рабочая, то п.2 по аналогии для остальной "запрещенки". Как еще проще, чтобы всем было удобно - пока не знаю.

  • Upvote 1

Share this post


Link to post
Share on other sites
Цитата

В итоге: все идет на маршрут по-умолчанию на интерфейс с наивысшим global (например, Ваш ISP) кроме трафика, который попадает в список выше (это идет через PPTP0) .. чтобы это заработало нужно в т.ч. проверить, что клиенты получают адреса для указанных CIDR при обращении к DNS, которые на них настроены .. после первой настройки п.1, п.2 и проверки своих клиентов на предмет адекватных DNS - кэши DNS на клиентах очень желательно почистить.

Смысл согласен.

Возможно уже будет достаточно для работы, чтоб видеть страницы. DNS это пару адресов IP, откуда их взять и куда направить думаю это не проблема, в добавок если еще и crypto можно.

Скрытый текст

VK

// # nslookup vk.com

...

Name:      vk.com
Address 1: 95.213.11.180 srv180-11-213-95.vk.com
Address 2: 87.240.165.82 srv82-165-240-87.vk.com
/ # whois -h whois.radb.net 95.213.11.180 | grep AS
origin:         AS47541
/ # whois -h whois.radb.net 87.240.165.82 | grep AS
origin:         AS47541
/ # whois -h whois.radb.net '!gAS47541'
A141
87.240.128.0/18 93.186.224.0/21 93.186.232.0/21 95.142.192.0/21 95.213.0.0/18 185.32.248.0/22 185.32.248.0/23 95.213.64.0/18 95.142.192.0/20
C
/ #

/ # nslookup OK.RU
...

Name:      OK.RU
Address 1: 217.20.156.159 ip159.156.odnoklassniki.ru
Address 2: 217.20.155.58 ip58.155.odnoklassniki.ru
Address 3: 5.61.23.5 ip5.23.odnoklassniki.ru
/ # whois -h whois.radb.net 217.20.156.159 | grep AS
origin:         AS47764
mnt-by:         ODNOCLASSNIKI-MNT
/ # whois -h whois.radb.net 217.20.155.58 | grep AS
origin:         AS47764
mnt-by:         ODNOCLASSNIKI-MNT
/ # whois -h whois.radb.net 5.61.23.5 | grep AS
origin:         AS47764
mnt-by:         ODNOCLASSNIKI-MNT
/ # whois -h whois.radb.net '!gAS47764'
A774
94.100.176.0/20 217.69.128.0/20 188.93.56.0/21 195.218.190.0/23 195.218.168.0/24 188.93.57.0/24 194.186.63.0/24 128.140.168.0/21 178.22.88.0/21 188.93.63.0/24 188.93.58.0/24 188.93.59.0/24 188.93.60.0/24 178.237.16.0/20 5.61.232.0/21 128.140.170.0/24 185.5.136.0/22 185.6.247.0/24 178.237.16.0/24 178.237.17.0/24 178.237.18.0/24 178.237.19.0/24 178.237.20.0/24 178.237.21.0/24 178.237.22.0/24 178.237.23.0/24 178.237.24.0/24 178.237.25.0/24 178.237.26.0/24 178.237.27.0/24 178.237.30.0/24 178.237.31.0/24 195.211.20.0/22 95.163.32.0/19 185.16.244.0/23 185.16.246.0/24 185.16.247.0/24 217.20.144.0/20 5.61.16.0/21 178.237.29.0/24 79.137.157.0/24 79.137.157.32/27 79.137.157.0/29 79.137.183.0/24 185.16.148.0/22 95.163.248.0/21 178.237.30.0/24 178.237.25.0/24 178.237.26.0/24
C
/ #

 

далее придумать скрипт при перезапуске пусть обновляет, и выбрать на основе какого варианта делать

...

        AS_TO_IP="AS47541 AS47764"

...

        for as in $AS_TO_IP; do
            for ip in `whois -h whois.radb.net "!g$as" | grep /`
            do
              ...
            done
        done

 

Для ознакомления пробовал тройку этих VPN для доступа, ест. которые бесплатны. Одни время для подключения (очередь), другие ограничения в том числе и трафик, так же есть и для роутера готовые варианты, но минус ограничения так как все бесплатны. Мне как кажеться более приспособленный вариант из iproute с его table, тут примеры на форуме его применение есть, речь не идет о балансировке, а именно создаем правило, отправляющее нужные пакеты в нужную таблицу

Скрытый текст

...
ip route add default via Канал_VPN_OK_VK table 120
ip rule add from $IP table 120

...

 

Share this post


Link to post
Share on other sites

Так все же написано плюс - разделы форума, но самое главное найти адрес того VPN сервера который вам предоставит данный канал для начала (который можно будет поднять на роутере).

1. Поднять два интерфейса - первый интернет и второй в заголовке темы.

2. Защита от перехвата DNS-трафика с помощью dnscrypt-proxy

3. Тема - Маршрут по умолчанию на несколько интерфейсов плюс iproute

 

 

Share this post


Link to post
Share on other sites

Всё господа,всем спасибо,но это решение не для умных домохозяек.Прописал VPN в роутер и установил приложение на смартфон жены,когда я дома она пользуется vpn с приложения,когда я буду на работе будет vpn с роутера.Не кошерно,но все эти инструкции для меня сложно

Edited by posydon

Share this post


Link to post
Share on other sites
12 часа назад, posydon сказал:

Не кошерно

В браузере зайдите на http://my.keenetic.net/#web.tc -> тапаем/кликаем радиобатон "parse" -> в поле ниже можно вставлять команды CLI, которые можно скопировать, например, отсюда (следуя при этом инструкциям), не забывайте нажимать Send! после строчки с командой. Помните про DNS на клиентах (можно отдавать принудительно по DHCP - есть выше). Проще пока никак. Всегда можно сбросить все кнопкой Reset и начать с последнего сохранения startup-config. Режима с хардкором пока нет, но я не удивлюсь.

P.S. Просто роутер слишком крут для того, чтобы это можно было делать удобно в админке, это его и спасает ;)

Share this post


Link to post
Share on other sites

При старте системы делаем

/opt/bin/ipset -X
/opt/bin/ipset create zapret hash:net family inet hashsize 1024 maxelem 65536

 

Вот такой скрипт вытаскивает сети яндекса и вконтактика (можно и одноклассников но мне это не надо). Можно по расписанию, можно когда поднимается WAN

 

#!/opt/bin/sh

AS="13238 47541 47542"

LOG="/opt/bin/logger -t zapret-ipset"

$LOG "get blocked nets list"

rm -f /tmp/reestr.raw

until [ -s /tmp/reestr.raw ]; do

    for i in $AS
        do
            wget -q -c -O - https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS$i | grep "\"prefix\"\:" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/.[0-9]{1,2}' >> /tmp/reestr.raw
        done
done

cat /tmp/reestr.raw | grep -v ^127\.0\.0 | sort | awk '!x[$0]++' | awk '{print "add zapret " $0} '>> /tmp/ipset.reestr

/opt/sbin/ipset flush
/opt/sbin/ipset restore < /tmp/ipset.reestr

rm -f /tmp/reestr.raw
rm -f /tmp/ipset.reestr

$LOG "finish"

exit 0
                                           

 

Что с этим делать далее каждый решает сам

 

Я делаю так

маркирую:

iptables -t mangle -A PREROUTING -i br0 -m set --match-set zapret dst -j MARK --set-xmark 0xa/0xffffffff

Делаю отдельный рутинг

ip rule add pref 200  fwmark 0xa lookup 200

При старте vpn в таблицу 200 записывается дефолт в сторону vpn

При падении - убирается

 

Такая вот заготовочка.

Edited by gaaronk
  • Thanks 1

Share this post


Link to post
Share on other sites

Если кому надо вытягивать списки роскомнадзора то

 

until [ -s /tmp/reestr.raw ]; do

        wget -q -c -O - http://api.antizapret.info/group.php?data=ip | awk '{print $0}' RS=',' | sed -e 's/[[:space:]]//g' -e '/^[[:space:]]*$/d' | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' >> /tmp/reestr.raw
done

Ну и ipset делать не hash:net а hash:ip

Edited by gaaronk
  • Thanks 1

Share this post


Link to post
Share on other sites

@gaaronk, спасибо за заготовочки :)

Списки IP я еще прогонял через схлопыватели в сети. Примера своей реализации сейчас под рукой нет, я использовал расширение ip addr для Perl3 кажется

Share this post


Link to post
Share on other sites

Я пробовал прогонять через схлопыватели. Смысла нет =) Так как ipset с hash:ip снова сети раскрывает в хосты.Да и выигрыш 5% получается. Схлопывать надо для маршрутизации.

Share this post


Link to post
Share on other sites

Еще пример

AS_TO_IP="13238 47541 47542"

{ whois -h whois.radb.net '!gAS47541' | tr ' ' '\n' | sort -n -k1 -k2 -k3 -k4 | tail -n +3 & whois -h whois.radb.net '!6AS47541' | tr ' ' '\n' | sort -n -k1 -k2 -k3 -k4 | tail -n +3; } | cat


И результат IPv4 и IPv6

2a00:bdc0::/36
2a00:bdc0:e006::/48
87.240.128.0/18
93.186.224.0/21
93.186.232.0/21
95.142.192.0/20
95.142.192.0/21
95.213.0.0/18
95.213.64.0/18
185.32.248.0/22
185.32.248.0/23

 

 

Share this post


Link to post
Share on other sites
16 hours ago, vasek00 said:

Еще пример


AS_TO_IP="13238 47541 47542"

{ whois -h whois.radb.net '!gAS47541' | tr ' ' '\n' | sort -n -k1 -k2 -k3 -k4 | tail -n +3 & whois -h whois.radb.net '!6AS47541' | tr ' ' '\n' | sort -n -k1 -k2 -k3 -k4 | tail -n +3; } | cat


И результат IPv4 и IPv6

2a00:bdc0::/36
2a00:bdc0:e006::/48
87.240.128.0/18
93.186.224.0/21
93.186.232.0/21
95.142.192.0/20
95.142.192.0/21
95.213.0.0/18
95.213.64.0/18
185.32.248.0/22
185.32.248.0/23

 

 

Мне лично показалось что whois отрабатывает медленнее чем web api

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...