LINUX.ORG.RU
решено ФорумAdmin

Настройка OpenVPN только для определенных сайтов

 , ,


8

8

В связи с блокировками соц сетей, решил попробовать настроить обход. На сервере крутится убунта, с установленным с помощью скрипта OpenVPN: https://github.com/Nyr/openvpn-install

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

server.conf

port 1194
proto tcp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem

client.ovpn

client
dev tun
proto tcp
sndbuf 0
rcvbuf 0
remote xxx.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3

Погуглив, узнал что на стороне клиента можно задать следующее:

route-nopull
route 54.82.83.140 #Сервис проверки ip

Однако после этого все перестает загружаться, пингуется только сервер, остальное «Ping request could not find host ya.ru. Please check the name and try again.» Пробовал еще несколько вариантов из сети, но тщетно. Тестировал под двумя пк с виндой, у планшета под ios на удивление все заработало.

Разбирайся что не так с маршрутизацией. Через интерфейс VPN должны идти марштурты только во внутренюю сеть VPN (10.8.0.0 в своём случае) и подсети нужный сайтов

MrClon ★★★★★
()

Если я правильно распарсил, то:
Убрать push "redirect-gateway def1 bypass-dhcp"
И прописать нужные сети в push "route a.a.a.a mask.mask.mask.mask"
Далее, судя по соседним темам 8.8.8.8 не работает. Так что нужно пользовать свой тот который «далеко» по простому это поднимается на самом сервере ovpn.

anc ★★★★★
()
Ответ на: комментарий от MrClon

К слову, есть у кого-то сипсок подсетей который «укркомназдор» сейчас банит? Наверняка ведь там как-то конечный список подсетей и тупо блокировка по ним.

Пилю сейчас штуку вроде antizapret.prostovpn.org (только PAC-файл, без openvpn). Пока использую 77.88.55.0/24, 5.255.255.0/24, 95.213.0.0/18, 87.240.128.0/18. Но ведь это наверняка не всё

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

сети нужные можно и самому собрать: 1) host ok.ru 2) берешь айпишник и делаешь, например, whois 217.20.156.159 3) берешь из вывода origin: AS47764 и грабишь список сетей whois -h whois.radb.net -i origin as47764|grep «^route»

парсишь и заруливаешь свой впн

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

Убрать push «redirect-gateway def1 bypass-dhcp» И прописать нужные сети в push «route a.a.a.a mask.mask.mask.mask»

Пробовал, но результат тот же.

Далее, судя по соседним темам 8.8.8.8 не работает. Так что нужно пользовать свой тот который «далеко» по простому это поднимается на самом сервере ovpn.

То есть поднимать свой днс сервер? Надо будет погуглить.

Пилю сейчас штуку вроде antizapret.prostovpn.org

А вот это было бы здорово.

Magi-max
() автор топика
Ответ на: комментарий от ponch

Я примерно так и начал делать, но подумал может кто-то уже сделал это за меня. Тем более у меня нет хостов за Великим Украинским Фаерволом, так-что проверить что именно там блокируется не могу

MrClon ★★★★★
()
Ответ на: комментарий от Magi-max

А вот это было бы здорово.

Может тогда поможешь протестировать?
PAC файл: https://antizapret-ua.vps9.mrclon.net/proxy.pac
Инструкции можно использовать с https://antizapret.prostovpn.org/ (те, которые под заголовком «прокси»)

Сервис не претендует на масштабность, крутится на VPS на 50 руб, и на что-то значительно более серьёзное едва-ли переедет. Так, чисто для друзей

MrClon ★★★★★
()
Ответ на: комментарий от Magi-max

То есть поднимать свой днс сервер? Надо будет погуглить.

Да собстно и гуглить нечего, кэширующий bind из каробки должон работать (во всяком случае мне не попадались дистры в которых было бы не так), т.е. ничего и настраивать не надо, только запустить.

anc ★★★★★
()
Ответ на: комментарий от MrClon

Список подсетей из хостов указа президента, приведено из url к автономной системе и саггрегировано (57 маршрутов):

5.45.192.0/18
5.61.16.0/21
5.61.232.0/21
5.255.192.0/18
37.9.64.0/18
37.140.128.0/18
45.116.91.0/24
77.74.176.0/22
77.74.181.0/24
77.74.183.0/24
77.75.152.0/21
77.88.0.0/18
79.137.157.0/24
79.137.183.0/24
84.201.128.0/18
87.240.128.0/18
87.250.224.0/19
91.194.226.0/23
93.158.128.0/18
93.159.228.0/22
93.186.224.0/20
94.100.176.0/20
95.108.128.0/17
95.142.192.0/20
95.163.32.0/19
95.163.248.0/21
95.213.0.0/17
100.43.64.0/19
109.235.160.0/21
128.140.168.0/21
141.8.128.0/18                                                                                                                                                                                                                               
178.22.88.0/21                                                                                                                                                                                                                               
178.154.128.0/17                                                                                                                                                                                                                             
178.237.16.0/20                                                                                                                                                                                                                              
178.248.232.0/21                                                                                                                                                                                                                             
185.5.136.0/22                                                                                                                                                                                                                               
185.6.247.0/24                                                                                                                                                                                                                               
185.16.148.0/22                                                                                                                                                                                                                              
185.16.244.0/22                                                                                                                                                                                                                              
185.32.248.0/22                                                                                                                                                                                                                              
185.54.220.0/22                                                                                                                                                                                                                              
185.65.148.0/22                                                                                                                                                                                                                              
185.71.76.0/22                                                                                                                                                                                                                               
185.85.10.0/23                                                                                                                                                                                                                               
185.85.12.0/24                                                                                                                                                                                                                               
185.85.14.0/23                                                                                                                                                                                                                               
185.94.108.0/22                                                                                                                                                                                                                              
188.93.56.0/21                                                                                                                                                                                                                               
194.186.63.0/24                                                                                                                                                                                                                              
195.211.20.0/22                                                                                                                                                                                                                              
195.218.168.0/24                                                                                                                                                                                                                             
195.218.190.0/23                                                                                                                                                                                                                             
199.21.96.0/22                                                                                                                                                                                                                               
199.36.240.0/22
213.180.192.0/19
217.20.144.0/20
217.69.128.0/20
Скрипты для автоматизации - пишите сами, там ничего сложного. :)

Я завтра-послезавтра начну пилить утилиту кросс-платформенную для всех типов VPN для поддержки push/pull маршрутов на поднятое соединение. ЦА: android/win/linux.

Не хочу заморачиваться и привязываться к openvpn - слишком жирный он для этих целей. VPN должен быть быстрым и кушать минимум ресурсов, т.к. социалочки подразумевают просмотр видео и прослушивание аудио. Плюс батарейку жрать меньше будут стандартные для того же андроида VPN'ы, ну и в soho-роутерах процы маломощные для openvpn.

nickleiten ★★★
()
Последнее исправление: nickleiten (всего исправлений: 1)
Ответ на: комментарий от Magi-max

То есть поднимать свой днс сервер? Надо будет погуглить.

Поднимать свой необязательно, просто на компе, с которого подключаетесь укажите вручную DNS 8.8.8.8 (или на роутере настройте выдачу этого днс-сервера по дхцп) и этот же айпишник в роуты через VPN пустить.

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

Я завтра-послезавтра начну пилить утилиту кросс-платформенную для всех типов VPN для поддержки push/pull маршрутов на поднятое соединение. ЦА: android/win/linux.

Кастани плиз в тред, куда это будешь выкладывать, если конечно это будет не тут.

man_of_motley ★★
()
Ответ на: комментарий от MrClon

С PAC-файлом мороки много. Его часто запрашивают, без кеширования, неправильно написанные Windows-программы. Предполагаю, что они переинициализируют wininet на каждый запрос, и PAC-файл скачивается заново.

На антизапрете 3 прокси-сервера и 2 сервера для отдачи PAC. На PAC-файл идет от 50 до 150 мегабит трафика ежесекундно.

Мне кажется, в случае украинских блокировок, эффективней использовать OpenVPN с маршрутами до всех диапазонов адресов из AS. Он работает везде и предсказуемо, а в PAC Secure Web Proxy поддерживается только в Chrome и Firefox, а на телефонах их можно использовать только для Wi-Fi-соединений.

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

Зато быстро решается. За пару минут накидал с ssh -D
Единственное что на планшете надо что-то другое

wxw ★★★★★
()
Ответ на: комментарий от nickleiten

Поднимать свой необязательно, просто на компе, с которого подключаетесь укажите вручную DNS 8.8.8.8 (или на роутере настройте выдачу этого днс-сервера по дхцп)

Вот это мимо т.к. он может оказаться совсем не «тем же самым» чем «в более другой стране»

и этот же айпишник в роуты через VPN пустить.

А вот это ближе к теме. Правда мне ближе «свой родной» нежели чем какой-то 8.8.8.8, кушать не просит... а если чего разбираться проще.

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

На некоторых провайдерах Украины yandex.ru и другие заблокированные домены не резолвятся даже через 8.8.8.8. То ли применяют DPI, то ли заблокировали AS, а нода 8.8.8.8 находится на Украине, поэтому тоже не может отрезолвить.

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

DNS ответы подменять вроде не трудно, особенно от определённого сервера. Ведь провайдеру не представляет труда «переехать» 8.8.8.8 к себе и отвечать им как угодно

MrClon ★★★★★
()
Ответ на: комментарий от ValdikSS

неправильно написанные Windows-программы

Всякие отмороженные вроде IE, или не только?

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

PAC я выбрал из-за простой настройки клиентской части

MrClon ★★★★★
()
Ответ на: комментарий от ValdikSS

zaborona.help Как сделать подобное на своей vds? Просто чужим vpn пользоваться не хочется, а vds с установленным openvpn есть. Нужен только конфиг сервера.

djprizrak
()
Ответ на: комментарий от djprizrak
# Routes

# Yandex network
push "route 5.45.192.0 255.255.192.0"
push "route 5.255.192.0 255.255.192.0"
push "route 37.9.64.0 255.255.192.0"
push "route 37.140.128.0 255.255.192.0"
push "route 77.88.0.0 255.255.192.0"
push "route 84.201.128.0 255.255.192.0"
push "route 87.250.224.0 255.255.224.0"
push "route 93.158.128.0 255.255.192.0"
push "route 95.108.128.0 255.255.128.0"
push "route 100.43.64.0 255.255.224.0"
push "route 130.193.32.0 255.255.224.0"
push "route 141.8.128.0 255.255.192.0"
push "route 178.154.128.0 255.255.128.0"
push "route 199.21.96.0 255.255.252.0"
push "route 199.36.240.0 255.255.252.0"
push "route 213.180.192.0 255.255.224.0"

push "route-ipv6 2620:10f:d000::/44"
push "route-ipv6 2a02:6b8::/32"

# Mail.ru network
push "route 5.61.16.0 255.255.248.0"
push "route 5.61.232.0 255.255.248.0"
push "route 79.137.157.0 255.255.255.0"
push "route 79.137.183.0 255.255.255.0"
push "route 94.100.176.0 255.255.240.0"
push "route 95.163.32.0 255.255.224.0"
push "route 95.163.248.0 255.255.248.0"
push "route 128.140.168.0 255.255.248.0"
push "route 178.22.88.0 255.255.248.0"
push "route 178.237.16.0 255.255.240.0"
push "route 185.5.136.0 255.255.252.0"
push "route 185.16.148.0 255.255.252.0"
push "route 185.16.244.0 255.255.252.0"
push "route 188.93.56.0 255.255.248.0"
push "route 194.186.63.0 255.255.255.0"
push "route 195.211.20.0 255.255.252.0"
push "route 195.218.168.0 255.255.255.0"
push "route 217.20.144.0 255.255.240.0"
push "route 217.69.128.0 255.255.240.0"

push "route-ipv6 2a00:1148::/32"
push "route-ipv6 2a00:a300::/32"
push "route-ipv6 2a00:b4c0::/32"

# VK.com network
push "route 87.240.128.0 255.255.192.0"
push "route 93.186.224.0 255.255.240.0"
push "route 95.142.192.0 255.255.240.0"
push "route 95.213.0.0 255.255.192.0"
push "route 185.32.248.0 255.255.252.0"

push "route-ipv6 2a00:bdc0::/36"
push "route-ipv6 2a00:bdc0:e006::/48"

# Kaspersky network
push "route 77.74.176.0 255.255.252.0"
push "route 77.74.181.0 255.255.255.0"
push "route 77.74.183.0 255.255.255.0"
push "route 93.159.228.0 255.255.252.0"
push "route 185.54.220.0 255.255.254.0"
push "route 185.85.12.0 255.255.255.0"
push "route 185.85.14.0 255.255.254.0"
ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от MrClon

Нет, именно сторонние программы. На Windows PAC-файл устанавливается глобально в систему (на всех браузерах, кроме Firefox), и используется не только браузерами, но и всеми другими программами.

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

Вот-же… Действительно что-ли OpenVPN использовать. Его можно как-то заставить работать без шифрования или с номинальным шифрованием (вроде XORа трафика хэшем от сертификата CA)? Тут-то нормальное шифрование нафиг не сдалось, а про мобилки и SOHO роутеры выше верно заметили

MrClon ★★★★★
()
Ответ на: комментарий от ValdikSS

На некоторых провайдерах Украины yandex.ru и другие заблокированные домены не резолвятся даже через 8.8.8.8. То ли применяют DPI, то ли заблокировали AS, а нода 8.8.8.8 находится на Украине, поэтому тоже не может отрезолвить.

Да все гораздо проще можно сделать, тупо на свой провайдерский днс зарулить, емним вроде народ писал что местечковые в рашке так же поступа[ли]/ют.

anc ★★★★★
()
Ответ на: комментарий от ValdikSS

nat же, обычный нат для 8.8.8.8 только на свой днс.

anc ★★★★★
()
Ответ на: комментарий от ValdikSS

Как определяете маску подсети?

Поднял свой vpn и везде указывал 255.255.255.0. Все работало, ходило на эти сайты через vpn, но ровно до тех пора, пока мой провайдер не начал блокировать. Тогда все сломалось и на тот же яндекс стало пытаться зайти по обычному маршруту.

Скопипастил этот ваш конфиг и все заработало.

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

там выше писали:

сети нужные можно и самому собрать: 1) host ok.ru 2) берешь айпишник и делаешь, например, whois 217.20.156.159 3) берешь из вывода origin: AS47764 и грабишь список сетей whois -h whois.radb.net -i origin as47764|grep «^route»

парсишь и заруливаешь свой впн

man_of_motley ★★
()
Ответ на: комментарий от Medar

А, ну елки, это ведь маска, просто разные формы записи.
Допустим есть у тебя пул 84.201.128.0/18. Тебе нужно из такой формы записи привести это к такой «a.b.c.d 255.255.255.0».
Для простоты берешь ipcalc и получаешь свою маску.

» ipcalc 84.201.128.0/18
Address:   84.201.128.0         01010100.11001001.10 000000.00000000
Netmask:   255.255.192.0 = 18   11111111.11111111.11 000000.00000000

Netmask: 255.255.192.0

man_of_motley ★★
()
Последнее исправление: man_of_motley (всего исправлений: 1)
Ответ на: комментарий от man_of_motley

То есть на примере того же 84.201.128.0, задавая маску 255.255.255.0 ты ходишь через VPN только на адреса 84.201.128.1 - 84.201.128.254, а нужно 84.201.128.1 - 84.201.191.254

man_of_motley ★★
()
Ответ на: комментарий от ValdikSS

А не поделитесь полным конфигом сервера? А то мне так и не удалось правильно завести свой, а вот zaborona работает как надо.

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

Напишите администратору забороны, может, поделится.

ValdikSS ★★★★★
()
Ответ на: комментарий от Magi-max

Тут есть пара вариантов
1. Поднять впн сразу где-то в снг, не думаю что всех хостеров во всех странах снг заблокировали
2. Если пункт1 не верен, то двойной впн: 1-й за пределами снг, 2-ой уже внутри снг, будет дороже но если вам так «мила музычка из втектальника»...

anc ★★★★★
()
Ответ на: комментарий от Magi-max

не доступна часть музыки из вконтакта

и яндекса (

wxw ★★★★★
()
Ответ на: комментарий от MrClon

PAC файл: https://antizapret-ua.vps9.mrclon.net/proxy.pac

Вот это сейчас спасло. Работает, но частично, если вбить просто vk.com, то видимо из-за перенаправления на ленту ничего не происходит, но с /разел заходит отлично. Как раз выкачиваю плейлист через «Vk music sync».

«мила музычка из втектальника»

Ну, просто где еще найдешь такое количество концептуальной андеграунд музыки, саундтреков в день их выхода, или к примеру вокалойдов? Даже на ютубе+нико не будет такой библиотеки. Многие предлагают торренты как альтернативу, но ведь послушать в один клик куда удобнее. А еще очень интересно пошариться по плейлисту человека, выложившего редкий трек.

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

Один из тестеров (второй из двух) жаловался что не работает если в адресной строке вбивать просто домен (vk.com), а если по полный урл (https://vk.com/) то всё ок. При чём это и с PAC-файлом и с OpenVPN.

Кстати про OpenVPN, вот конфиг: https://antizapret-ua.vps9.mrclon.net/antizapret-ua.ovpn
По идее он адекватнее работает чем PAC.

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

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