Пленный портал, чтобы справиться с моими потребностями - PullRequest
2 голосов
/ 10 января 2009

Я ищу в плену порталы для моей организации. Я вижу много таких, которые позволят пользователю пройти, когда они а) введут учетные данные или б) заплатят деньги. То, что я ищу, немного другое. Позвольте мне перейти к некоторым основам моей системы, я использую сеть на базе Windows, используя активный каталог и внутренний DNS. У меня есть интрасеть, в которой наши сотрудники используют ежедневно, и она использует учетные данные пользователя Windows для аутентификации их в системе.

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

Я разработчик, поэтому я могу написать скрипт, который возвращает True или False в систему, но мне нужна система, которая может взаимодействовать с входами в AD и которая может запускать этот скрипт, как только пользователь запрашивает доступ вне сети .

EDIT: Я принял ответ в качестве ответа на мой вопрос, однако, после изучения кодирования для метода, основанного на сокетах, у меня нет времени.

В качестве обходного пути я обнаружил, что мой брандмауэр имеет настраиваемую страницу отказа от ответственности, которая разрешает использование JavaScript. Я сделаю запрос к веб-сервису, чтобы узнать, введено ли время, затем активирую функцию «Разрешить» на странице отказа от ответственности, в противном случае я перенаправлю на страницу ввода времени. Похоже, это достаточно простое решение, единственная проблема заключается в том, что человек сохраняет сеанс браузера открытым на ночь.

Ответы [ 4 ]

0 голосов
/ 24 июля 2013

DNS Redirector - это продукт портала, на котором вы можете создавать свои собственные приветственные / заблокированные страницы в HTML / ASP / любой другой. Поскольку ваш сервер уже работает под управлением Windows, почему бы не использовать для этого IIS и ASP.

0 голосов
/ 10 января 2009

Кристофер Эдвардс более или менее прав. Captive portal - это, по сути, межсетевой экран, который прозрачно перенаправляет все соединения на локальный веб-сервер, запрашивая аутентификацию пользователя. После успешной аутентификации правила брандмауэра перенастраиваются для IP-адреса аутентифицированного пользователя, чтобы он / она мог выходить в Интернет или другую сеть.

Вы можете настроить свой собственный портал Captive с помощью сценариев и веб-сервера или прокси-сервера, но обязательным является то, что физически весь сетевой трафик пересекает машину, выступая в качестве брандмауэра.

У меня есть опыт работы с дистрибутивом OSS под названием m0n0wall , который основан на дистрибутиве BSD и может быть встроен непосредственно в выделенное оборудование или установлен на любом ПК. Этот дистрибутив, хотя OSS, действительно профессиональный и предлагает в основном ту же или большую функциональность, чем любое коммерческое устройство FW (то есть Watchguard products или Cisco Products ). Он предлагает интерфейс веб-администрирования для полного администрирования брандмауэра.

Единственная проблема, если вы решите пойти по этому пути, состоит в том, что портал m0n0wall Captive имеет только два способа аутентификации: список локальных пользовательских баз данных или внешний сервер Radius. В вашем случае вам нужно настроить внешний сервер Radius, который интегрируется в службы аутентификации AD. Вот пример того, как это сделать.

0 голосов
/ 25 января 2013

Вот как это работает. Вам нужно:

  • iptable общий брандмауэр,
  • прошивка открытого роутера, такая как dd-wrt , которая имеет больше опций для поддержки точки доступа
  • сервер как apache
  • dhcp3-сервер в качестве DHCP-сервера
  • bind9 в качестве DNS-сервера, поэтому пользователям не нужно вручную настраивать конфигурацию своей компьютерной сети при подключении к точке доступа
  • PHP или другой язык для написания серверного сценария на ваш выбор.

Вам необходимо пометить пакеты, которые вы не собираетесь перенаправлять в Интернет, а на целевую страницу, когда пользователь будет проверен на целевой странице, его или ее IP будет удален из списка, чтобы он мог свободно просматривать или иначе если он попытается просмотреть его пакеты будут помечены и то, что вы будете использовать для его идентификации. Я предлагаю вам использовать Linux для этого из-за вещей iptables.

Вот как это работает:

  1. Каждый пользователь, подключенный к беспроводной точке доступа, подключается к Интернету через шлюз.
  2. Сам шлюз действует как маршрутизатор и межсетевой экран (и, вероятно, также действует как веб-сервер портала, как в этом эксперименте).
  3. Каждый пакет данных HTTP, предназначенный для доступа в Интернет от неаутентифицированных пользователей, «помечается» специальным кодом брандмауэром, чтобы его можно было перехватить (перенаправить) на веб-сервер портала.
  4. Веб-сервер портала прозрачно предоставляет пользователю веб-страницу аутентификации и идентифицирует используемый им компьютер.
  5. Пользователь принимает / аутентифицирует себя на веб-сервере, поэтому его идентификация компьютера (в данном случае его MAC-адрес сетевого интерфейса) вводится в белый список брандмауэра.
  6. Пока сетевые интерфейсы пользователя находятся в белом списке брандмауэра, отправленные с них пакеты не помечаются для перехвата. Затем пакеты пересылаются маршрутизатором в Интернет без повторного перехвата на веб-портал.
0 голосов
/ 10 января 2009

Ну, в настоящее время я действительно пишу код только на .NET, некоторые из OSS могут иметь лучшие идеи.

В любом случае, я не вижу возможности сделать это без использования прокси-сервера, предпочтительно прозрачного прокси-сервера на шлюзе. Должны быть люди, которые написали такие вещи. Конечно, у каждой коммерческой точки доступа Wi-Fi есть такая, но вы, вероятно, хотите, чтобы она работала на сервере, а не на устройстве.

Я понятия не имею об этом, но об этом я думал в прошлом.

Возможно, вы сможете найти маршрутизатор / брандмауэр, который имеет эту функцию. У Microsoft IAS есть плагин, который делает это (вряд ли это будет дешево). Краткий взгляд на Google не сильно повлиял на другие программы, которые это делают.

Wingate - Могу сделать это, я не могу понять

В противном случае вы можете закодировать прозрачное прокси-приложение (что означает, что, если вы не пишете встроенный код, вам потребуется использовать сервер приложений в качестве шлюза по умолчанию), или просто обычный прокси-сервер, если вы можете заблокировать настройки прокси-сервера браузера пользователя. , Я думаю, кодирование это, возможно, не простой вариант! Но это возможно. Вы даже можете использовать IIS и ASP.NET.

iisproxy - это прокси, реализованный в виде фильтра IIS ISAPI с исходным кодом. Я подозреваю, что это в C или C ++.

On Codeplex - это прокси-код revrse sample . Вы можете изменить его и перейти на полный прокси.

Возможно, вы сможете сделать все это с помощью сокетов и вообще выйти из уровня приложения. Это может упростить жизнь, поэтому я ожидаю, что есть причина, по которой это невозможно! Сделайте так, чтобы прокси на основе сокетов перенаправлял несоответствующих пользователей в приложение регистрации времени, когда они заполнили свой табель времени, просто прозрачно передайте все данные между сокетами.

Мне было бы интересно узнать, что придумываете вы или кто-либо другой, потому что я всегда хотел, чтобы AUP появлялся один раз в день с окном продолжения для пользователей в нашем офисе. Более того, он может указать, сколько времени пользователь потратил вчера на фейсбук и т. Д., Если прокси собирал эту информацию. Я думаю, этого достаточно, чтобы изменить поведение людей. На самом деле есть множество полезных вещей это можно сделать с помощью легко изменяемого или расширяемого HTTP-прокси.

...