Вы здесь

FreeRadius + mac-based 802.1x [РЕШЕНО]

Приветствую всех гентушников!

У меня довольно интересный вопрос. Есть ли какая-нибудь функция в сервере freeradius которая бы после успешной авторизации записывала бы MAC авторизовавшегося пользователя в коммутатор? Аля привязка MAC к порту. Это можно реализовать например по протоколу SNMP. Если такой функции нету, то как подключить к freeradius свою программу, которая принимала бы параметры от него, после успешной авторизации, данные о клиенте чтобы произвести привязку. Меня интересует подобный вопрос потому , что пользователи уже научились обходить защиту. Например, один пользователь авторизовался и открыл порт, а остальные уже идут по открытому порту без авторизации.
Буду рад любым рекомендациям и советам.

гугли на тему : "802.1X радиус"

фича есть, но зависит от свитча - нужен как минимум L2 и вменяемый.
как пример - http://xgu.ru/wiki/802.1X_RADIUS, естественно не забываем про option_82 ( http://xgu.ru/wiki/DHCP_option_82 )

—

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Коммутаторы уже есть, это D-Link DGS-1224T
У них уже настроен 802.1x по классической схеме PEAP.
Опцию 82 они не поддерживают, вот и хотелось бы решить проблему софтварно.

—

Если ничего не помогает, прочти наконец инструкцию...

LinAdmin написал:
пользователи уже научились обходить защиту. Например, один пользователь авторизовался и открыл порт, а остальные уже идут по открытому порту без авторизации.

А эти пользователи вам еще на mail@ не отправляют письма "You billing have been pwned"? (ирония).
Вообще то есть форум провайдеров (forum.nag.ru), там подобные проблемы уже 100500 раз поднимались, обсуждались и решались.
И slepnoga@ вам как бы намекнул, что по большей части все упирается в железо (RFC 3580 IEEE 802.1X RADIUS).

Пожалуйста поконструктивней ответ можно?
Я конечно же гуглил перед тем как спросить. И на форуме который вы указали ничего подобного нету.

—

Если ничего не помогает, прочти наконец инструкцию...

LinAdmin написал:
Пожалуйста поконструктивней ответ можно?

http://catb.org/~esr/faqs/smart-questions.html

LinAdmin написал:
Я конечно же гуглил перед тем как спросить.

Вероятно, в силу различных причин, у нас с вами совершенно разные google.

LinAdmin написал:
И на форуме который вы указали ничего подобного нету.

И форумы у нас разные, в силу, опять же, разных причин и мотиваций.

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

Скорее всего вы меня просто не поняли.

Имеется:
FreeRadius настроенный и работающий который проверяет связку МАК+ПОРТ+ЛОГИН+ПАРОЛЬ.
Коммутатор L2 D-Link DGS-1224T который пускает пользователей в сеть после успешной авторизации на радиус сервере.
Коммутатор в силу своих возможностей поддерживает port-based 802.1x.

Необходимо:
Сделать аналог MAC-based 802.1x силами софта, так как коммутатор на это не способен. Но, в коммутаторе есть функция "статический ARP". Что я хочу сделать - програмку которая по команде от радиус сервера записывает МАК только что авторизовавшегося пользователя в таблицу коммутатора на котором он авторизовался и сделать static ARP на этом порту. Когда пользователь отключается, то радиус сервер об этом узнает и передает моей програмке, которая в свою очередь удаляет МАК из таблицы и вырубает static ARP на порту, чтобы пользователь смог снова авторизоваться.

Почему?:
port-based 802.1x имеет существенный недостаток - как только кто-то авторизовался на порту коммутатора, порт переходит в открытый режим. Если на этом порту висит неуправляемый коммутатор, то нетрудно догадаться, что все кто на нем сидят могут спокойно проходить, так как порт уже открыт.

Надеюсь достаточно понятно разъяснил.

—

Если ничего не помогает, прочти наконец инструкцию...

port-based 802.1x имеет существенный недостаток - как только кто-то авторизовался на порту коммутатора, порт переходит в открытый режим. Если на этом порту висит

Хех, не мучайте себя и юзеров :). как чел. с инетом в 100мб по всей стране ( ну локалка у нас на всю страну), скажу, что все в той стране рано или поздно прийдут к схеме : пров __не__ считает траф и раздает VLAN на рыло белого айпищника.

802.1x делался вовсе не для провайдинга, а для контор и оффисов ( да, больших, но контор)

—

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Не согласен с вами. Безопасность тоже должна быть. Чтобы в случае чего, можно было однозначно сказать, что с вашего компа производились такие вот действия, чтобы юзер не смог отвертется.

—

Если ничего не помогает, прочти наконец инструкцию...

vlan на ип с привязкой по маку как раз позволяет сделать это наимение затратными средствами

—

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

300 VLAN держать??? Вы в своем уме? Это явно накладно выходит!
Я нашел более красивое решение - использовать модули rlm_python и rlm_perl. Которые позволяют выполнять любую программу соответственно написанную на этих языках. Вот это я и искал!
Если кому-то еще надо будет нечто подобное то распишу здесь что и как.
rlm_python - явно сырой, к тому же разработчики похоже забили на его развитие, поэтому не рекомендуется его использовать.
rlm_perl - отличный модуль, все его именно и рекомендуют, дока по нему довольно таки подробная и находится здесь: http://wiki.freeradius.org/Rlm_perl
В общем вопрос можно считать закрытым.

—

Если ничего не помогает, прочти наконец инструкцию...

300 VLAN держать

это так много ? :) QnQ как бы придумано для снятия ограничения 4096, а ты 300 штук - их терминирует любая шелезяка

—

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)