The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Перенаправление на 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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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