The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Перенаправление на captive portal (без пересборки ядра)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от headless (ok) on 02-Мрт-10, 05:22 
Хочется, что бы пользователи, которые не настроили проксю (типа убрали галочку "автонастройка прокси") попадали на внутренний веб-сервер (он уже стоит на той же машине, что и squid, используется для wpad, статистики и прочего), на которой им бы тактично говорили, что им нужно это включить. Уже сделал саму страничку, рерайт всех запросов (кроме wpad.domain.ru и stat.domain.ru) на http://proxy.domain.ru/index.html, виртуальный хост proxy.domain.ru,  теперь нужно сделать перенаправление. Как я понимаю можно было бы использовать ipfw fwd, но для этого нужно (ведь нужно же? FreeBSD 8.0-RELEASE-p2) собирать кастомное ядро, что в общем-то нежелательно, что бы потом не иметь необходимости обновлять ядро из исходников. Каким образом еще можно решить подобную задачу?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от Pahanivo email(ok) on 02-Мрт-10, 07:55 
для начала надо номально сформулировать
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от headless (ok) on 02-Мрт-10, 08:01 
>для начала надо номально сформулировать

Я конечно извиняюсь, что я так кучей написал, но мне казалось это достаточная информация.

Есть сервер. На нем squid, через который должны ходить пользователи. Доступ в обход прокси - закрыт.
Поэтому если кто-либо отключит прокси, интернета ему не будет, и не будет мыслей, как это исправить.
Я хочу, что бы любой человек, у которого этот шлюз прописан, набрав в своем браузере https://www.opennet.ru/openforum/vsluhforumID1/88295.html к примеру, увидел мою страничку, на которой написано "включите прокси. Вы можете это сделать так-то, так-то"

При этом хочется, что бы это было максимально просто и быстро. Что еще нужно описать по вашему?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от PavelR (??) on 02-Мрт-10, 08:23 
>Как я понимаю можно было бы использовать ipfw fwd, но для этого нужно
>(ведь нужно же? FreeBSD 8.0-RELEASE-p2) собирать кастомное ядро, что в общем-то
>нежелательно, что бы потом не иметь необходимости обновлять ядро из исходников.

Ох, какие же мы нежные. Ядро пересобрать - "нежелательно". Значит вы не ту операционку используете. Используйте Debian. Там пересобирать ничего не надо, в том числе для совершения необходимого вами действия - всё есть "искаропки".

>Каким образом еще можно решить подобную задачу?

Ну, например можно использовать ipfw divert - завернуть трафик в приложение пользовательского уровня, и делать с ним что угодно. divert afaik доступен штатно, но я могу легко ошибиться, поскольку в операционной системе FreeBSD я не испытываю сложностей с пересборкой ядра, и "кастомным", аналогично аналогичной процедуре в отношении ядра линукса, пересобранное ядро фряхи, особо и не считаю.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от headless (ok) on 02-Мрт-10, 08:30 
>Ох, какие же мы нежные. Ядро пересобрать - "нежелательно". Значит вы не
>ту операционку используете. Используйте Debian. Там пересобирать ничего не надо, в
>том числе для совершения необходимого вами действия - всё есть "искаропки".

Товарищ. Предполагается, что в дальнейшем эту систему будет обслуживать другой человек. И freebsd-update ему будет гораздо проще, нежели мозгочесание "а чойта у меня тут не работает", несмотря на то, что у меня все конфиги описаны в траке, а весь процесс конфигурирования - в svn'е (для потомков то бишь)

>Ну, например можно использовать ipfw divert - завернуть трафик в приложение пользовательского
>уровня, и делать с ним что угодно.

Это я тоже догадываюсь, но куда и как, что бы пользователь подключающийся "кудаугодно" смотрел мою страничку? Я это уже третий раз пишу между прочим, разными словами (извините, если про диверт не было в первых двух постах. Но там был вопрос "ЧЕМ это сделать"

> "кастомным", аналогично аналогичной процедуре
>в отношении ядра линукса

Это просто перевод слов мана ipfw:

             To enable fwd a *CUSTOM* kernel needs to be compiled with the
             option options IPFIREWALL_FORWARD.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от headless (ok) on 03-Мрт-10, 09:30 
Ну чуть уже мысли осталось жеш. Не могу изобразить, и все тут. Если сервер не на том же компе - работает (спасибо http://gara.opennet.ru/http_redirect.html)

IP_server=192.168.0.23 # "другой" веб-сервер
IP_client=192.168.0.18 # клиент
IP_router=192.168.0.10 # собсно шлюз

ipfw add 10 divert 8888 tcp from $IP_server to $IP_router in
ipfw add 15 allow ip from $IP_server to any
ipfw add 16 allow ip from any to $IP_server
ipfw add 20 divert 8888 tcp from $IP_client to not $IP_server 80,433
ipfw add 21 deny IP from $IP_client to any
/sbin/natd -v -p 8888 -a $IP_router -same_ports -proxy_rule port 80 server $IP_server:80

Теперь вопрос в том, как это реализовать, что бы сервер был на том же 192.168.0.10, а то если заменить, то в логах ната вроде показывается трансляция "клиент->внешний сервер на шлюз->вебсервер на шлюзе", но до сервера ничего не долетает.

Еще бы было неплохо сообразить как сделать это с использованием ipfw nat redirect_addr 192.168.0.10 0.0.0.0, если уж на то пошло.

Помогите, люди добрые. Если я думаю не в том направлении - пихните в то :)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от headless (ok) on 04-Мрт-10, 10:03 
Сижу, ЕГАИС починяю, а мозг все про эту рюшечку думает. В общем решил логирование нужных пакетов врубить в фаерволе. Вот логи, когда веб-сервер на другом компе:

Mar  4 13:25:24 ubfw kernel: ipfw: Divert 8888 TCP 192.168.0.18:4054 217.69.128.44:80 in via lan
Mar  4 13:25:24 ubfw kernel: ipfw: Accept TCP 192.168.0.18:4054 217.69.128.44:80 in via lan
Mar  4 13:25:24 ubfw kernel: ipfw: Divert 8888 TCP 192.168.0.18:4054 217.69.128.44:80 out via wan
Mar  4 13:25:24 ubfw kernel: ipfw: Accept TCP 192.168.0.10:4054 192.168.0.23:80 out via lan
Mar  4 13:25:24 ubfw kernel: ipfw: Divert 8888 TCP 192.168.0.23:80 192.168.0.10:4054 in via lan
Mar  4 13:25:24 ubfw kernel: ipfw: Accept TCP 217.69.128.44:80 192.168.0.18:4054 in via lan
Mar  4 13:25:24 ubfw kernel: ipfw: Accept TCP 217.69.128.44:80 192.168.0.18:4054 out via lan

Все прелестно, пришло, заменилось, ушло, пришло обратно, и вернулось будто от mail.ru :)

А вот когда на той же машине стоит:

Mar  4 16:33:06 ubfw kernel: ipfw: Divert 8888 TCP 192.168.0.18:1726 217.69.128.43:80 out via wan
Mar  4 16:33:06 ubfw kernel: ipfw: Accept TCP 192.168.0.10:1726 192.168.0.10:80 out via lo0
Mar  4 16:33:06 ubfw kernel: ipfw: Accept TCP 192.168.0.10:1726 192.168.0.10:80 in via lo0
Mar  4 16:33:06 ubfw kernel: ipfw: Accept TCP 192.168.0.10:80 192.168.0.10:1726 out via lo0
Mar  4 16:33:06 ubfw kernel: ipfw: Divert 8888 TCP 192.168.0.10:80 192.168.0.10:1726 in via lo0
Mar  4 16:33:09 ubfw kernel: ipfw: Accept TCP 192.168.0.10:80 192.168.0.10:1726 out via lo0
Mar  4 16:33:09 ubfw kernel: ipfw: Divert 8888 TCP 192.168.0.10:80 192.168.0.10:1726 in via lo0
Mar  4 16:33:16 ubfw kernel: ipfw: Accept TCP 192.168.0.10:80 192.168.0.10:1726 out via lo0

Пришло, заменилось, ушло, обратный приходит на нат, а замены не происходит :(
В чем может быть загвоздка?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Перенаправление на captive portal (без пересборки ядра)"  +/
Сообщение от Olax on 13-Окт-11, 15:16 
pf,
kldload pf
for kernel GENERIC
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2023 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру