Перейти к содержимому
Калькуляторы

Wive-NG-MT WPA+802.1x (WPA Enterprise) авторизация пользователей средствами radius

Очень кратко как настроить минимальный radiusserver и точку для per user авторизации. По сути шпаргалка.

 

С 4.7.7 доступен из коробки и настраивается из webui http://forum.nag.ru/forum/index.php?showtopic=110269&view=findpost&p=1198743

 

Всё происходит на mageia5.

 

Ставим:

[root@server etc]# urpmi freeradius
Для удовлетворения зависимостей будут установлены следующие пакеты:
 Пакет                          Версия       Релиз         Платформа 
(источник «Core Updates»)
 freeradius                     2.2.8        1.1.mga5      i586    
 libfreeradius1                 2.2.8        1.1.mga5      i586    
Будет использовано 6.9МБ дополнительного дискового пространства.
Будет загружено 1.4МБ пакетов.
Установить 2 пакетов? (Y/n) y


   rsync://mirror.yandex.ru/mageia/distrib/5/i586/media/core/updates/freeradius-2.2.8-1.1.mga5.i586.rpm
   rsync://mirror.yandex.ru/mageia/distrib/5/i586/media/core/updates/libfreeradius1-2.2.8-1.1.mga5.i586.rpm                                                               
устанавливается libfreeradius1-2.2.8-1.1.mga5.i586.rpm freeradius-2.2.8-1.1.mga5.i586.rpm из /var/cache/urpmi/rpms                                                         
Подготовка...                    #########################################################################################################################################
     1/2: libfreeradius1        #########################################################################################################################################
     2/2: freeradius            #########################################################################################################################################
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
....................................................+.................................................+.............................................................+...........+.......................................................................+.......................++*++*++*
10+0 записей получено
10+0 записей отправлено
скопировано 5120 байт (5,1 kB), 0,0040012 c, 1,3 MB/c

 

Конфигурим согласно дифу:

--- raddb/clients.conf  2015-10-16 23:00:54.000000000 +0600
+++ raddb-/clients.conf 2015-11-12 09:28:32.744306460 +0600
@@ -233,3 +233,9 @@
#              secret = testing123
#        }
#}
+
+client test-wifi {
+        ipaddr = 192.168.254.151 #IP адрес точки, которая будет обращаться к радиусу
+        secret = testkey #Секретный ключик. Такой же надо будет поставить на Wi-Fi точке.
+        require_message_authenticator = no  #Лучше так, с каким-то D-Linkом у меня не получилось иначе
+}
diff -uNrwB raddb/eap.conf raddb-/eap.conf
--- raddb/eap.conf      2015-10-16 23:00:54.000000000 +0600
+++ raddb-/eap.conf     2015-11-12 10:02:35.675161250 +0600
@@ -27,7 +27,7 @@
               #  then that EAP type takes precedence over the
               #  default type configured here.
               #
-               default_eap_type = md5
+               default_eap_type = mschapv2

               #  A list is maintained to correlate EAP-Response
               #  packets with EAP-Request packets.  After a
@@ -301,7 +301,7 @@
                       # for the server to print out an error message,
                       # and refuse to start.
                       #
-                       make_cert_command = "${certdir}/bootstrap"
+                       #make_cert_command = "${certdir}/bootstrap"

                       #
                       #  Elliptical cryptography configuration
diff -uNrwB raddb/modules/dhcp_sqlippool raddb-/modules/dhcp_sqlippool
--- raddb/modules/dhcp_sqlippool        2015-10-16 23:00:55.000000000 +0600
+++ raddb-/modules/dhcp_sqlippool       2015-11-12 09:14:37.384390909 +0600
@@ -15,7 +15,7 @@
       pool-key = "%{Calling-Station-Id}"

       # For now, it only works with MySQL.
-       $INCLUDE ${confdir}/sql/mysql/ippool-dhcp.conf
+       #$INCLUDE ${confdir}/sql/mysql/ippool-dhcp.conf

       sqlippool_log_exists = "DHCP: Existing IP: %{reply:Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

diff -uNrwB raddb/modules/mschap raddb-/modules/mschap
--- raddb/modules/mschap        2015-10-16 23:00:55.000000000 +0600
+++ raddb-/modules/mschap       2015-11-12 10:01:45.652027637 +0600
@@ -16,24 +16,24 @@
       # add MS-CHAP-MPPE-Keys for MS-CHAPv1 and
       # MS-MPPE-Recv-Key/MS-MPPE-Send-Key for MS-CHAPv2
       #
-#      use_mppe = no
+       use_mppe = yes

       # if mppe is enabled require_encryption makes
       # encryption moderate
       #
-#      require_encryption = yes
+       require_encryption = yes

       # require_strong always requires 128 bit key
       # encryption
       #
-#      require_strong = yes
+       require_strong = yes

       # Windows sends us a username in the form of
       # DOMAIN\user, but sends the challenge response
       # based on only the user portion.  This hack
       # corrects for that incorrect behavior.
       #
-#      with_ntdomain_hack = no
+       with_ntdomain_hack = yes

       # The module can perform authentication itself, OR
       # use a Windows Domain Controller.  This configuration
diff -uNrwB raddb/proxy.conf raddb-/proxy.conf
--- raddb/proxy.conf    2015-10-16 23:00:55.000000000 +0600
+++ raddb-/proxy.conf   2015-11-12 09:18:25.323031416 +0600
@@ -665,6 +665,12 @@
       #  requests are not proxied to it.
}

+realm DEFAULT {
+        type = radius
+        authhost = LOCAL
+        acchost = LOCAL
+}
+
#
#  This realm is for requests which don't have an explicit realm
#  prefix or suffix.  User names like "bob" will match this one.
diff -uNrwB raddb/users raddb-/users
--- raddb/users 2015-10-16 23:00:55.000000000 +0600
+++ raddb-/users        2015-11-12 09:18:52.446107632 +0600
@@ -201,3 +201,5 @@
#      Service-Type = Administrative-User

# On no match, the user is denied access.
+
+user1 Cleartext-Password := "password1" # собсно имя юзера/пароль с которыми будем логиниться

 

Включаем запуск при загрузке и перезапускаем:

[root@server etc]# systemctl enable radiusd
[root@server etc]# service radiusd restart
Redirecting to /bin/systemctl restart radiusd.service

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Настраиваем точку как показано на скриншоте.

 

Ессно все ключи и пароли заменить на что-нить человеческое. Собсно так же никто не запрещает привернуть это дело к вашему любимому биллингу.

radius1.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Начиная с версии 4.7.7 в прошивку добавлен радиус сервер (использован free radius). Это позволяет без особых усилий развернуть сеть с централизованной аутентификацией на базе 802.1x EAP-TTLS-PEAP-MSCHAPv2 с прозрачным роумингом внутри сети и индивидуальными парами логин/пароль для каждого пользователя.

 

Конфигурация не нуждается в коментариях (см скриншот). Стоит отметить лишь что Shared Secret в настройках радиус сервера и в настройках Wireless-Security должны совпадать. Настройка AP приведена на скриншоте выше.

 

Одним из примеров использования может являться, разбиравшийся недавно на форуме, пример с гостинницей.

 

При заселении клиента, администратор на ресепшн заводит пользователь учётную запись, например "office_N" с паролем "васяпупкин". После чего Вася Пупкин получает доступ к сети.

 

В момент выписки, администратор удаляет запись или меняет пароль.

 

Тем самым время жизни доступа = времени проживания клиента. Нет открытой сети - нет проблемы с законодательством. И т.д. и т.п.

radius.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Настройка клиентов...

 

Под андроид всё просто и ясно. Ткнули на сеть, ввели логин и пароль - заработало.

 

Под линукс в нетворк менеджере в свежих версиях так же выбираем сеть, выбираем WPA2 Enterprise, TTLS, MSCHAPv2.

Если система старенькая или по какой-то причине настроить не удаётся, то достаточно будет отредактировать нужную секцию в /etc/wpa_supplicant.conf по аналогии:

 

network={
   mode=0
   scan_ssid=1
   ssid="Wive-NG-MTEAP"
   priority=1
   key_mgmt=WPA-EAP IEEE8021X
   eap=PEAP
   identity="test1"
   password="test1"
   proactive_key_caching=1
}

 

С windows как всегда всё через Ж. Там нужно вручную создать подключение через "центр управления сетями и общим доступом" начиная с ввода SSID руками...

 

Собсно скриншоты по шагам:

1.jpg2.jpg3.jpg4.jpg5.jpg6.jpg7.jpg

 

Как оно в MacOS ХЗ. Но скорее всего как и в андроиде. Просьба попробовать у кого есть под рукой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на apple аналогично android'ам, ввести имя пользователя/пароль и принять сертификат от сервера

IMG_3672.PNG

IMG_3673.PNG

IMG_3674.PNG

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Одним из примеров использования может являться, разбиравшийся недавно на форуме, пример с гостиницей.

радиус можно использовать только в роли выключателя? (пользователь может залогиниться/нет)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

О встроенном фрирадиусе речь? Только авторизация. О каких настройках речь-то идёт? Ну в будущем будет время экаунтинг добавлю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нет, о стороннем.

 

о каких настройках? ну, скажем, кому-то дать доступ в локальную сеть, а кому-то нет. или зашейпить по-разному. или ещё что.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какой шейпинг на уровне простого бриджа? =))) Какое ограничение доступа? =)

 

Я вам подскажу как это правильно сделать:

1) wifi в отдельную подсеть со своим DHCP и т.д.

2) ограничение все абсолютно на уровне шлюза из wifi сети во всё остальное включая шейперы и прочее

 

Не надо пытаться на АП навешивать подобный функционал. Во первых дорого с точки зрения CPU, во вторых бессмысленно, ибо один фиг надо отделять мух от котлет (провод/беспровод) на L3. И там уже можно лимитировать кого и как удобно. Ну и радису развернуть.

 

В точку радиус встроен исключительно что бы быстро развернуть доступ к сети с индивидуальными парами логин/пароль.

 

Нет ну с дури и на АП нагородить можно. Вот только цена вам сильно не понравиться. Как и предсказуемость решения в разы упадёт вместе с гибкостью (в целом). =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2) ограничение все абсолютно на уровне шлюза из wifi сети во всё остальное включая шейперы и прочее

разумеется

 

вопрос был: может ли шлюз как-то идентифировать клиента? скажем, выдавать разным клиентам ip из разных диапазонов. или вообще в отдельные vlan разных клиентов.

или дёргать скрипты по подключению/отключению клиентов, которые будут правила iptables править. или ешё что.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По MAC, источнику репорта и паре логин/пароль. На L2 других данных нет. А там уже как настроите шлюз и взаимодействия радиуса и прочего на нём. Т.е. мы на уровне радиуса чётко можем видеть с какой АП и какой клиент пришёл. Остальное вопрос автоматизации на шлюзе (я ж не в курсе что вы в качестве оного юзаете). Там может вообще биллинг какой навороченный. Или может самонастроенный *nix с freeradius и самописной обвязкой.

 

От логики на АП это уже никак не зависит.

 

Можно накрутить хотспот в виде chillispot там данных и возможностей несколько больше. Но и ресурсов он жрёт в разы больше на AP. Тут вопрос скорее надо ставить как "а что требуется реализовать?" и исходя из этого уже решать что использовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в общем понятно, надо копать в сторону freeraduis, его интеграции с dhcp и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

или вообще в отдельные vlan разных клиентов.

 

Такого варианта нет и точно не предвидиться. Слишком дофига архитектурно менять придётся, ради кейза который нужен в 99% только WISP куда мы даже не планируем метить. У нас indoor однако. И если и будет outdoor то до массового прихода 802.11ax мы не будем планировать лезть в WISP.

 

в общем понятно, надо копать в сторону freeraduis, его интеграции с dhcp и т.п.

 

Да не обязательно FreeRadius. Просто это одна из самых навороченных реализаций при этом открытая. А так да. Свзяка радиус dhcp возможно управление оттуда же свитчами если уж сильно наворочено хочется. Тут всё от полёта фантазии админа зависит.

 

Ну и на текущих скоростях шейпить не влетая в CPU при любом pps надо точно не на оконечном железе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 удалённо эксплуатируемых уязвимостей free radius http://www.opennet.ru/opennews/art.shtml?num=46870 .... Некоторые касаются и нас. Всем кто ипользует радиус встроенный в прошивку, при этом не лимитирует доступ к нему - обновляемся до 6.2.9 без раздумья.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас