LINUX.ORG.RU

Маршрутизация OpenVPN по доменному имени

 , ,


1

1

Привет!

Есть OpenVPN сервер, в котором прописан маршрут только до внутренней сети, т.е. люди ходят в интернеты через своих провайдеров, а для работы подключаются на сервер 10.10.0.Х через OpenVPN

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

так, чтобы определенные сайты шли через OpenVPN по доменному имени?

Это внутренние сайты в вашей сети, доступной через OpenVPN?

Пропишите на tun/tap интерфейсе ваш внутренний DNS сервер.

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

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

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

как?

Руками.

В Windows:

route add IP_адрес_фейсбук mask 255.255.255.255 ваш_шлюз

В Linux:

ip route add IP_адрес_фейсбук via ваш_шлюз

IP адрес смотрите в выводе:

nslookup доменное имя.

Но т.к. у крупных сайтов серверов несколько и доменное имя может быть разрешено в разные IP адреса, то нужно либо прописывать маршруты до всех IP адресов сайта через ваш шлюз, либо всё же использовать proxy

anonymous ()

Привет.
Я решал эту задачу тем что находил все подсети принадлежащие компании (в моем случае это Яндекс) и добавлял маршруты для них. Работает так года два, сети не меняются. Я все боялся что часто отваливаться будет из-за смены адресов.
Смотрел подсети тут: https://bgp.he.net/dns/
Не по домену, конечно, но может будет полезным.

urxvt ★★★★★ ()

Нужно использовать специальный DNS-сервер, который устанавливает маппинг настоящего IP-адреса с домена в адрес внутреннего диапазона (что-то вроде iptables -t nat -d 10.0.0.1 -j DNAT --to 1.2.3.4), и отдает клиенту этот выделенный внутренний адрес.

В сервисе АнтиЗапрет реализовано именно так: https://antizapret.prostovpn.org/tech.html

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

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

Все это дело работает в командной строке Win, благо aria2c умеет работать через прокси.

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

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

Если работает и все всех устраивает, то не трогайте. Это самый простой способ. Все остальное это костылестроение куда как более тяжелое.
PS
С DNS, то что описал выше ValdikSS, ничего сложного в части самого dns, обычная настройка своего любимого dns сервера. Но вот дальше танцы с бубном, вам же надо переправить пакеты пришедшие на фэйковый адрес, на реальный адрес.

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

Если работает и все всех устраивает, то не трогайте

Если бы :) Вчера поставил первое что в голову пришло (как раз протестировать) - shadowsocks, но за ночь он отвалился. Подозреваю, что дело было в нестандартном шифровании (chacha20). Разбираться было лень, поэтому тупой sudo reboot. Если все будет ок дальше, то успокоюсь, наверно

admucher ()

Если задача - обходить блокировки РКН, то более правильный подход другой.

Выгружай списки заблокированных IP адресов обрабатывай их и роути их через openvpn как тебе уже подсказали.

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

Вы знаете какой-то другой DNS-сервер с такими возможностями? Или знаете какой-то более простой способ настройки?

У меня всё динамическое, нет никакой статической конфигурации. Работает с CDN, сайтами, постоянно меняющими IP-адреса, и с поддоменами доменов.

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

Так я и спрашиваю. Что например в бинде или dnsmasq не устроило?
PS Сам спросил и сам себе отвечу, если рассматривать полный список РКН включая сети, то да, нужен свой.

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)