Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: RusRoute driver проекта маршрутизирующего фаервола  (Прочитано 24506 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maa
Участник

ru
Offline Offline
Пол: Мужской

WWW
« : 08-10-2008 10:18 » 

Здравствуйте!

Хочу предложить на суд общества свою разработку - маршрутизирующий фаервол RusRoute. http://www.rusroute.ru

Предназначен для организации выхода в Интернет локальной сети организации, подсчёта и ограничения трафика пользователей, защиты от сетевых атак, с функциями NAT, redirect, shaper, VPN, proxy, мост LAN в VPN, время действия и сплиттер для правил.
Поддерживаются multicore CPU.

Для домашних русскоязычных пользователей доступна бесптатная регистрация, подробности на форуме сайта http://www.rusroute.ru : http://www.maasoftware.ru/forum/viewtopic.php?f=4&t=3

Здесь часто встречались обсуждения программирования Ndis Intermediate драйверов. Могу подеиться опытом.

Автор.
« Последнее редактирование: 08-10-2008 18:48 от maa » Записан
sss
Специалист

ru
Offline Offline

« Ответ #1 : 16-10-2008 00:46 » 

maa, есть авторизация трафика?
Записан

while (8==8)
maa
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 16-10-2008 03:29 » 

Авторизация следующая:

Логин осуществляется в результате ввода логина и пароля через браузер на адрес
http://192.168.1.2:10000/
(192.168.1.2 - в данном примере, IP фаервола)
Или с помощью утилиты RRClient (с использованием шифрования)
Каждый пользователь определяется своим(своими) IP, запомненныи во время логина.
По имени пользователя или IP можно настраивать правила.

Первоначально правила лучше задать с помощью Wizard'а.
Записан
maa
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 16-10-2008 03:44 » 

И сразу вопрос:
sss, какие ещё схемы авторизации трафика вы бы хотели видеть в фаерволе?
Записан
sss
Специалист

ru
Offline Offline

« Ответ #4 : 16-10-2008 05:09 » 

Доменную
Записан

while (8==8)
maa
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 16-10-2008 05:20 » 

Так понимаю, для этого нужно работать с Active Directory, чего в настоящий момент делать не умею.
Записан
sss
Специалист

ru
Offline Offline

« Ответ #6 : 16-10-2008 05:28 » 

maa, я не хочу что бы ты обижался, потому что знаю насколько это сложно... У тебя в драйвере есть динамический интерфейс к пользовательскому режиму ? А на клиентской машине есть драйвер ?
Записан

while (8==8)
maa
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 16-10-2008 05:53 » 

Я не обижаюсь - просто уточнил, может быть ты знаешь больше.

Динамического интерфейса нет, фаервол представляет из себя монолитный exe-модуль (приложение, даже не сервис, для упрощения разработки), взаимодействующий с драйвером.

На клиентские машине драйвер устанавливать не нужно, используется или только браузер (у которого в качестве стартовой обычно прописывается страница с логином фаервола), или приложение RRClient.

Собственно, динамический интерфейс (dll млм COM) можно было бы сделать но пришлось бы производить внутреннюю аутентификацию и шифровать трафик между dll и приложением (rr.exe), так что, при наличии готового модуля работы с AD проще его интегрировать прямо в фаервольное приложение.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 16-10-2008 06:11 » 

sss, возможно тебе подойдет связка squid (с авторизацией) + samba (для получения информации из домена).
Съассоциировать IP и пользователя будет много сложнее, ненадежно и, мне кажется, что это не совместимо со скоростью работы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
sss
Специалист

ru
Offline Offline

« Ответ #9 : 16-10-2008 06:12 » 

maa, мои сервера аутентифицируют клиентов в Active Directory...  Меня интересует именно аутентификация через драйверы. Но для этого надо опускать обработку до user mode и задерживать поток. Вот я и подумал, может быть ты знаешь как построить токен в ядре.

P.S.: Браузеры передают реквизиты пользователя, на основании которых можно построить user token
Записан

while (8==8)
maa
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 16-10-2008 06:37 » 

Вижу это так:
Нужно написать TDI сетевой драйвер, с помощью которого можно определять handle процесса уровня ядра.
Также нужно отслеживать на уровне ядра запускаемые процессы, или каким либо другим образом конвертировать полученный handler в нормальный Win32-process HANDLE.
Далее по event'у пробуждать сервис, который с администраторскими привилегиями вызывает, что надо, например, GetProcessToken()... результат передаёт в драйвер, разблокирующий и разрешающий/запрещающий соединение...

Следует учитывать, что с одного IP могут работать несколько пользователей домена.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 16-10-2008 06:49 » 

Равно как и один пользователь домена может выходить с нескольких IP одновлеменно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
sss
Специалист

ru
Offline Offline

« Ответ #12 : 16-10-2008 07:17 » 

maa, можно проще. В сеансе запускается агент, соединяется с сервером и начинает строить реквизиты на сервере. Клиент вызывает InitializeSecurityContext, возвращенный буфер передает серверу. Сервер приняв данные передает его в функцию AcceptSecurityContext, которая, в свою очередь возвращает буфер, который передается клиенту. Так идет обмен, пока сервер не выстроит CtxtHandle. Да, еще перед вызовом InitializeSecurityContext у клиента должны быть реквизиты. Естественно, все передачи функции InitializeSecurityContext и AcceptSecurityContext зашифровывают сеансовыми ключами, полученными в kdc.

P.S.: Ни фига себе проще 8o)
Записан

while (8==8)
sss
Специалист

ru
Offline Offline

« Ответ #13 : 16-10-2008 07:23 » new

Да, и заметьте, никакой привязки к IP. По фигу, хоть два сеанса разных пользователей на одной машине. 
Записан

while (8==8)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines