Перенаправление http
-
Здравствуйте многоуважаемые технари.
Помогите решить задачу.
Исходные данные:
- Имеется порядка 6 залов в которых публика сидит и смотрит на компьютерах спортивную информацию, всевозможные линии с коэффициентами, результаты матчей и онлайн трансляции.
- В каждом таком зале шлюз реализован средствами pfsense 2.2.6 и прозрачным прокси с установленным на всех машинах сертификатом.
- Клиенты постоянно используют некоторые вебсайты букмейкерских контор, назовём их example1.com и example2.com. Но в условиях Российского законодательства публичные ставки в этих букмейкерских конторах запрещены и влекут за собой штрафы. По этой причине все url типа example1.com/account или account.example2.com блокируются в squidguard proxy.
- Еще бл%:;кий Роскомнадзор постоянно блокирует домены этих букмейкерских контор, причем делает это с заурядной частотой. И по этой причине приходится постоянно переписывать URlы.
- В каждом зале проведено 2 интернет провайдера с настроенным лоадбалансингом. На каждом провайдере реальный IP адресс.
- Немного на счет трафика. Из каждого зала ведется дублирование видеонаблюдения ~20 мегабит на удаленный видеосервер.
- Имеется 2 удаленных сервера один в Германии, другой в Украине для всяких маломальских нужд.
Задача:
Мелькнула мысль перенаправить http трафик со всех залов на удаленный сервер для обхода этих дебильных и глупых блокировок и облегчить себе в конце концов жизнь.Но вот проблемы которые я для себя вижу:
Реализовать это openvpn тунелем на удаленный серсвер, но как перенаправить трафик только по конкретно интересующим доменам, а не весь трафик, ибо совершенно не благоразумно пускать трафик с камер через другую страну, да и видеотрансляции с вебсайтов, в основном - http трафик, и во время чемпионатов мы себе сгенерируем проблему с каналами.Насколько реально реализовать такие пробросы средствами pfsense?
Проблема решена
Поднят опенвпн клиентом на удаленный сервер.
Создан интерфейс на это подключение опенвпн.
Трафик к сожалению не заворачивается фаерволом в нужный шлюз по инструкции товарища PbIXTOP. Может я где-то натупил…
Заворачиваем трафик с помощью статик роутов прописывая нужный ip или всю подсеть в System - Routing - Routs с указанием нужного шлюза.
И конечно не забываем за натить впн шлюз.
DNS пока не пробовал, но решение с DNS resolver(forwarder) –> Domain Overrides по совету PbIXTOP должно работать.
-
Для решения переброса определенных доменов в другое место, я бы использовал подмену DNS записей с нужными IP.
Ну как вариант если провайдеры все-таки сами не поменяют DNS запросы, можно составить просто списки с fqdn записями доменов и пытаться их уже отправлять на нужный маршрутизатор. Из минусов можно получить проблему CDN серверов, ведь многие используют CloudFlare, где на одном IP может быть множество различных сайтов.
-
Посмотрите как устроен proxy.pac на сайте антизапрета. В нем есть список заблокированных РКН IP-адресов. Когда браузер пытается открыть некий URL, последний разрешается в IP-адрес. Если адрес в списке, то запрос идет через прокси антизапрета, если нет - напрямую.
Вы можете сделать по аналогии, т. е. поднять туннель до внешнего сервера, поднять на этом сервере прокси, отредактировать оригинальный proxy.pac так, чтобы он возвращал ваш прокси, а не антизапрета, раздать proxy.pac пользователям.
-
И по этой причине приходится постоянно переписывать URlы.
Блокируют обычно подменой IP адресов. Можно попробовать подменить обратно в DNS resolver(forwarder) –> Domain Overrides
Реализовать это openvpn тунелем на удаленный серсвер, но как перенаправить трафик только по конкретно интересующим доменам, а не весь трафик
ОpenVPN по дефолту трафик никуда не перенаправляет. Тут нет причин для беспокойства. Единственно, что преренаправление можно сделать только по IP.
-
И по этой причине приходится постоянно переписывать URlы.
Блокируют обычно подменой IP адресов. Можно попробовать подменить обратно в DNS resolver(forwarder) –> Domain Overrides
Реализовать это openvpn тунелем на удаленный серсвер, но как перенаправить трафик только по конкретно интересующим доменам, а не весь трафик
ОpenVPN по дефолту трафик никуда не перенаправляет. Тут нет причин для беспокойства. Единственно, что преренаправление можно сделать только по IP.
То есть, я могу поднять тоннель на удаленный сервер, указать в разделе Domain Override нужный мне домен, а ip для него будет тоннельный ip удаленного сервера, а им в свою очередь сможет выступить тот же pfsense, и всё? Вуаля?
-
Возможно, PbIXTOP знает больше…. Вообще, не взлетит. По такой схеме плюсом ко всему нужен прокси сервер на удалённом сервере, например на apache/nginx.
IP домена надо указывать тот, который знает подавляющая часть интернета.... Я полагаю, Вам больше интересен, вариант с возможностью резервирования, по возможности из коробки. Поймите, что из себя представляет тоннель и применяйте. Группируйте шлюзы, продумывайте правила.
-
Возможно, PbIXTOP знает больше…. Вообще, не взлетит. По такой схеме плюсом ко всему нужен прокси сервер на удалённом сервере, например на apache/nginx.
IP домена надо указывать тот, который знает подавляющая часть интернета.... Я полагаю, Вам больше интересен, вариант с возможностью резервирования, по возможности из коробки. Поймите, что из себя представляет тоннель и применяйте. Группируйте шлюзы, продумывайте правила.
Насколько я понимаю, на тоннельный айпи прилетит http строка с именем домена, и по логике вещей удаленный сервер должен у себя в таблицах доменов посмотреть какой айпи этому домену соответствует, и если что послать дальше. но даже если я сейчас сморозил бред, поднять http прокси на удаленном сервере вроде не проблема.
-
Прилетает 4 байта, которые именуются IP.
Сопоставление имён, тоже происходит чуть чуть иначе.
И с прокси, Вы погорячились.Делайте как знаете, если всё и так знаете.
-
Rubic спасибо, показал ещё неплохое решение с pac файлом.
Domain Overrides, тоже неплохое решение - если указать DNS ресолвер внутри тунеля, провайдер несможет подменить оригинальный ответ DNS.
Все хосты FQDN, которые вам необходимо разблокировать необходимо прописать в созданный alias-host.
И создать правило на LAN интерфейсе, чтоб при обращении к данному alias (DESTANATION) и использовать GATEWAY тунеля в этом правиле.Правда надо незабывать про NAT, как локально так и удаленно.
-
Rubic спасибо, показал ещё неплохое решение с pac файлом.
Сами то юзали? Инертно, децентрализовано и полное отсутствие какого либо дебага.
-
-
Ничего не имею против офиса. Я имел ввиду когда 20 компьютеров на 50 обезьян, у которых каждая секунда на счету. И всё это помноженное на 5.
Для себя с того же антизапрета я узнал о 3proxy. Дивная, надо сказать, вещь. Тут бы он много упростил задачу, но он не даёт возможности автоматического резервирования.
-
Rubic спасибо, показал ещё неплохое решение с pac файлом.
Domain Overrides, тоже неплохое решение - если указать DNS ресолвер внутри тунеля, провайдер несможет подменить оригинальный ответ DNS.
Все хосты FQDN, которые вам необходимо разблокировать необходимо прописать в созданный alias-host.
И создать правило на LAN интерфейсе, чтоб при обращении к данному alias (DESTANATION) и использовать GATEWAY тунеля в этом правиле.Правда надо незабывать про NAT, как локально так и удаленно.
Не взлетело(
Создал alias со списком доменов, создал правило на лан интерфейсе где в DESTANATION указал этот alies. Шлюзом выбрал интерфейс с впнкой. Но трафик продолжает ходить по основным шлюзам. Натил, перезапускал роутер. чет не помогло.
Взлетело статическими маршрутами. Пока ip у домена не меняется, все работает и вроде бы всё устраивает.
-
Создал alias со списком доменов
Алиасы создавали тут
Firewall-Aliases-URLs?
Не взлетело(
И не могло:
Enter as many URLs as desired. After saving, the URLs will be downloaded and the items imported into the alias. Use only with small sets of IP addresses (less than 3000).URL алиасы в pfSense - просто ссылки для облегчения загрузки списков IP :(