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

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

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

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines