Перенаправление на captive portal (без пересборки ядра), headless, 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) собирать кастомное ядро, что в общем-то нежелательно, что бы потом не иметь необходимости обновлять ядро из исходников. Каким образом еще можно решить подобную задачу?
|
- Перенаправление на captive portal (без пересборки ядра), Pahanivo, 07:55 , 02-Мрт-10 (1)
для начала надо номально сформулировать
- Перенаправление на captive portal (без пересборки ядра), headless, 08:01 , 02-Мрт-10 (2)
>для начала надо номально сформулировать Я конечно извиняюсь, что я так кучей написал, но мне казалось это достаточная информация. Есть сервер. На нем squid, через который должны ходить пользователи. Доступ в обход прокси - закрыт. Поэтому если кто-либо отключит прокси, интернета ему не будет, и не будет мыслей, как это исправить. Я хочу, что бы любой человек, у которого этот шлюз прописан, набрав в своем браузере https://www.opennet.ru/openforum/vsluhforumID1/88295.html к примеру, увидел мою страничку, на которой написано "включите прокси. Вы можете это сделать так-то, так-то" При этом хочется, что бы это было максимально просто и быстро. Что еще нужно описать по вашему?
- Перенаправление на captive portal (без пересборки ядра), PavelR, 08:23 , 02-Мрт-10 (3)
>Как я понимаю можно было бы использовать ipfw fwd, но для этого нужно >(ведь нужно же? FreeBSD 8.0-RELEASE-p2) собирать кастомное ядро, что в общем-то >нежелательно, что бы потом не иметь необходимости обновлять ядро из исходников. Ох, какие же мы нежные. Ядро пересобрать - "нежелательно". Значит вы не ту операционку используете. Используйте Debian. Там пересобирать ничего не надо, в том числе для совершения необходимого вами действия - всё есть "искаропки". >Каким образом еще можно решить подобную задачу? Ну, например можно использовать ipfw divert - завернуть трафик в приложение пользовательского уровня, и делать с ним что угодно. divert afaik доступен штатно, но я могу легко ошибиться, поскольку в операционной системе FreeBSD я не испытываю сложностей с пересборкой ядра, и "кастомным", аналогично аналогичной процедуре в отношении ядра линукса, пересобранное ядро фряхи, особо и не считаю.
- Перенаправление на captive portal (без пересборки ядра), headless, 08:30 , 02-Мрт-10 (4)
>Ох, какие же мы нежные. Ядро пересобрать - "нежелательно". Значит вы не >ту операционку используете. Используйте Debian. Там пересобирать ничего не надо, в >том числе для совершения необходимого вами действия - всё есть "искаропки". Товарищ. Предполагается, что в дальнейшем эту систему будет обслуживать другой человек. И freebsd-update ему будет гораздо проще, нежели мозгочесание "а чойта у меня тут не работает", несмотря на то, что у меня все конфиги описаны в траке, а весь процесс конфигурирования - в svn'е (для потомков то бишь) >Ну, например можно использовать ipfw divert - завернуть трафик в приложение пользовательского >уровня, и делать с ним что угодно. Это я тоже догадываюсь, но куда и как, что бы пользователь подключающийся "кудаугодно" смотрел мою страничку? Я это уже третий раз пишу между прочим, разными словами (извините, если про диверт не было в первых двух постах. Но там был вопрос "ЧЕМ это сделать" > "кастомным", аналогично аналогичной процедуре >в отношении ядра линукса Это просто перевод слов мана ipfw: To enable fwd a *CUSTOM* kernel needs to be compiled with the option options IPFIREWALL_FORWARD.
- Перенаправление на captive portal (без пересборки ядра), headless, 09:30 , 03-Мрт-10 (5)
Ну чуть уже мысли осталось жеш. Не могу изобразить, и все тут. Если сервер не на том же компе - работает (спасибо 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, если уж на то пошло. Помогите, люди добрые. Если я думаю не в том направлении - пихните в то :)
- Перенаправление на captive portal (без пересборки ядра), headless, 10:03 , 04-Мрт-10 (6)
Сижу, ЕГАИС починяю, а мозг все про эту рюшечку думает. В общем решил логирование нужных пакетов врубить в фаерволе. Вот логи, когда веб-сервер на другом компе: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 Пришло, заменилось, ушло, обратный приходит на нат, а замены не происходит :( В чем может быть загвоздка?
|