Меню

freeradius для windows настройка

Как установить FreeRadius с Web-интерфейсом

Повторение чужих шагов чтобы понять принцип работы и после уже на основе приобретенного опыта иметь свой собственный. Только так я могу учиться чему-то новому. Зачем с головой уходить в то что уже другими помногу раз используется, проще взять что-то за основу и использовать согласно своим задачам. Вот и сейчас выдалось свободное время и я решил, а почему бы не попробовать посмотреть что такое Radius — сервис, на сколько я понял это сервис на который можно завязать авторизацию на различных устройствах посредством предопределенных учетных записей и прав. Вот и попробую. Только сперва разберу как FreeRadius установить в системе вокруг которой я строю все сервисы: Ubuntu Trusty 14.04.5 Server amd64

Характеристики данной виртуальной машины: CPU = 1, RAM = 1Gb, HDD = 20Gb

Linux srv-server 4.4.0-57-generic #78

14.04.1-Ubuntu SMP Sat Dec 10 00:14:47 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Description: Ubuntu 14.04.5 LTS

Не забываю указать настройки Локали:

Для работы сервиса FreeRadius необходимы следующие пакеты, это Apache2 & MySQL & PHP.

$ sudo apt-get install apache2 mysql-server php5 libapache2-mod-php5 php5-mysql php5-gd php-pear php-db -y

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

$ sudo nano /etc/apache2/apache2.conf

Сам пакет (FreeRadius) вокруг которого строится заметка я буду устанавливать из дефолтных репозитариев:

$ apt-cache show freeradius | grep Version

$ sudo apt-get install freeradius -y

После того, как пакет установлен, в автоматическом режиме запускается демон слушающий дефолтный порт (udp/1812):

$ sudo netstat -tulpn | grep :1812

udp 0 0 127.0.0.1:18120 0.0.0.0:* 15348/freeradius

udp 0 0 0.0.0.0:1812 0.0.0.0:* 15348/freeradius

Т.к. все настройки FreeRadius удобнее хранить в базе, то вот под это дело и создаю базу данных и специализированного пользователя:

mysql> create database dbradius character set utf8 collate utf8_general_ci;

mysql> grant all on dbradius.* to radius@localhost identified by «612mbddr@»;

mysql> flush privileges;

Для связки FreeRadius и MySQL нужен пакет ориентированный на сопряжение, ставлю его (freeradius-mysql) также из дефолтных репозитариев релиза Ubuntu Trusty:

$ sudo apt-get install freeradius-mysql -y

$ sudo bash -c «mysql -u root -p712mbddr@ dbradius

$ sudo bash -c «mysql -u root -p712mbddr@ dbradius

Чтобы оценить, что FreeRadius работает, делаю как делаю в примерах интернета, а именно добавляю в таблицу radcheck такие атрибуты, как: UserName,Attribute,Value

mysql> use dbradius;

mysql> insert into radcheck (UserName,Attribute,Value) VALUES (‘sqltest’,’Password’,’testpwd’);

  • insert → для добавления данных в таблицу
  • values → добавление значений

Теперь нужно объяснить сервису FreeRadius все настройки брать из базы данных:
ekzorchik@srv-server:

$ sudo nano /etc/freeradius/sql.conf

Теперь приводим настройки файла сайта FreeRadius к виду:

$ sudo nano /etc/freeradius/sites-enabled/default

# See «Authorization Queries» in sql.conf

# See «Accounting queries» in sql.conf

# See «Simultaneous Use Checking Queries» in sql.conf

# See «Authentication Logging Queries» in sql.conf

Далее правим конфигурационный файл freeradius и включаем поддержку mysql:

$ sudo nano +700 /etc/freeradius/radiusd.conf

Теперь протестируем настройки сервера, для этого понадобится два консольных соединения с сервером или два окна окна терминала: В первом следует остановить демон FreeRadius и после запустить в режим отладки, а уже во втором будем посылать данные на обработку сервису дабы в первом консоли пронаблюдать как изменяется поведение сервиса.

$ sudo service freeradius stop

Вывод должен быть таким, как ниже.

$ radtest sqltest testpwd localhost 18128 testing123

Sending Access-Request of id 22 to 127.0.0.1 port 1812

rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, length=20

Читайте также:  danfoss living eco настройка

Вывод без ошибок и статус Access-Accept.

Чтобы подключать клиентов/устройства следует изменять файл: /etc/freeradius/clients.conf

$ sudo service freeradius start

$ sudo nano /etc/freeradius/clients.conf

Теперь обернем FreeRadius Web— интерфейсом DaloRadius, не обязательно для тех кто любит управлять через консоль:

$ tar xfz daloradius-0.9-9.tar.gz

$ sudo mv daloradius-0.9-9 /var/www/html/daloradius

$ mysql -u root -p712mbddr@ dbradius

Создаю свой файл конфигурации описывающий доступ к панели Администрирования:

$ sudo unlink /etc/apache2/sites-available/000-default.conf

$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

$ sudo nano /etc/apache2/sites-available/daloradius.conf

Alias /daloradius /var/www/html/daloradius/

$ sudo a2ensite daloradius.conf

To activate the new configuration, you need to run:

$ sudo service apache2 reload

Затем правлю конфигурационный файл веб-интерфейса: — /var/www/html/daloradius/library/daloradius.conf.php

$ sudo nano /var/www/html/daloradius/library/daloradius.conf.php

В заключение не забываю поправить права доступа к каталогу Daloraius чтобы он имел такие же права с какими работает сервис apache2:

$ sudo chown -R www-data:www-data /var/www/html/daloradius/

Стандартные логин и пароль к Web-интерфейсу Daloradius → http://IP&DNS/daloradius:

  • Логин — administrator
  • Пароль — radius

И нажимаю на Login и вот я внутри Web-панели администрирования собственным FreeRadius сервером:

Задача выполнена, я просто повторил инструкцию из интернета, но для повторения то же нужны определенные знания.

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

Изменяем язык:
Config — Global Settings — Language Settings

Primary Language — изменяем English на Russian и нажимаем Apply

В дальнейших заметках я расскажу, как настроить аутентификацию через данный Radius сервис на различных устройствах, а пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

источник

Wi-Fi с логином и паролем для каждого пользователя или делаем WPA2-EAP/TLS подручными средствами

С практической точки зрения было бы удобно управлять Wi-Fi сетями, выдавая пароль каждому пользователю. Это облегчает задачу с доступом к вашей беспроводной сети. Используя так называемую WPA2 PSK авторизацию, чтобы предотвратить доступ случайному пользователю, нужно менять ключ, а также заново проходить процесс авторизации на каждом отдельном Wi-Fi устройстве. Кроме того, если вы имеете несколько точек доступа, ключ нужно менять на всех из них. А если Вам надо скрыть пароль от кого-нибудь, придется раздать всем сотрудникам новый.

Представим ситуацию — к вам в офис зашел кто-то посторонний (клиент, контрагент?), и нужно дать ему доступ в интернет. Вместо того, чтобы давать ему WPA2 — ключ, можно сделать для него отдельный аккаунт, который потом, после его ухода, можно удалить заблокировать. Это даст вам гибкость в управлении учетками, а пользователи будут очень довольны.

Мы сделаем удобную схему, применяемую в корпоративных сетях, но полностью из подручных средств с минимальными финансовыми и аппаратными вложениями. Ее одобрит служба безопасности и руководство.

Немного теории

Когда-то давно инженерами IEEE был придуман стандарт 802.1x. Этот стандарт отвечает за возможность авторизации пользователя сразу при подключении к среде передачи данных. Иными словами, если для соединения, например, PPPoE, вы подключаетесь к среде(коммутатору), и уже можете осуществлять передачу данных, авторизация нужна для выхода в интернет. В случае же 802.1x вы не сможете делать ничего, пока не авторизуетесь. Само конечное устройство вас не допустит. Аналогичная ситуация с Wi-Fi точками доступа. Решение же о допуске вас принимается на внешнем сервере авторизации. Это может быть RADIUS, TACACS, TACACS+ и т.д.

Читайте также:  виндовс 7 установка оборудования вручную

Терминология

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

  • Open — доступна всем
  • WEP — старое шифрование. Уже у всех плешь проедена о том, что его ненадо использовать вообще
  • WPA — Используется TKIP в качестве протокола шифрования
  • WPA2 — Используется шифрование AES

А теперь рассмотрим варианты того, как точка доступа узнает сама, можно ли предоставлять пользователю доступ к сети или нет:

  • WPA-PSK, WPA2-PSK — ключ к доступу находится в самой точке.
  • WPA-EAP, WPA2-EAP — ключ к доступу сверяется с некоторой удаленной базой данных на стороннем сервере

Также существует довольно большое количество способов соедининея конечного устройства к серверу авторизации (PEAP, TLS, TTLS. ). Я не буду их здесь описывать.

Общая схема сети

Для наглядного понимания приведем общую схему работы нашей будущей схемы:

Если словами, то клиенту, при подключении к Wi-Fi — точке предлагается ввести логин и пароль. Получив логин и пароль Wi-Fi точка передает эти данные RADIUS-серверу, на что сервер отвечает, что можно делать с этим клиентом. В зависимости от ответа, точка решает, дать ему доступ, урезать скорость или что-то еще.
За авторизацию пользователей будет отвечать наш сервер с установленным freeradius. Freeradius является реализацией протокола RADIUS, который в свою очередь является реализацией общего протокола AAA. AAA — это набор средств для осуществления следующих действий:
Authentication — проверяет допустимость логина и пароля.
Authorization — проверяет наличие прав на выполнение некоторых действий.
Accounting — учитывает ваши дейсвия в системе.
Сам протокол передает имя пользователя, список атрибутов и их значений для него. То есть, например, атрибут Auth-Type := Reject — отклонить этого клиента, а Client-Password == «password» — сравнить атрибут в запросе со значением password.
Вообще говоря, база аккаунтов и прав для них не обязательно должна храниться на RADIUS-сервере, да и базой может быть что угодно — никсовые пользователи, пользователи домена Windows… да хоть текстовый файлик. Но в нашем случае все будет в одном месте.

Базовая настройка

В этой статье нас будут интересовать в первую очередь WPA2-EAP/TLS способ авторизации.
Практически все современные точки доступа Wi-Fi стоимостью больше 3 тыс. рублей поддерживают нужную нам технологию. Клиентские устройства поддерживают и подавно.
В статье я буду использовать следующее оборудование и програмное обеспечение:

  • Точка доступа Ubiquiti NanoStation M2
  • Сервер Gentoo и Freeradius
  • Клиентское оборудование с установленным програмным обеспечением Windows 7, Android, iOS

Настройка точки доступа

Главное, чтоб точка поддерживала нужный способ аутентификации. Оно может называться по разному в разных устройствах: WPA-EAP, WPA2 Enterprise и т.д. Во всяком случае выбираем аутентификацию, устанавливаем IP-адрес и порт RADIUS-сервера и ключ, который мы вводили в clients.conf при настройке Freeradius.
Приведу картинку с настроенной точки Ubiquiti. Помечено галкой то, что нужно менять.

RADIUS-сервер

Зайдем на наш компьютер с Linux и установим RADIUS-сервер. Я брал freeradius, и ставил я его на gentoo. К моему удивлению, в рунете нет материалов, относящихся к настройке Freeradius 2 для наших целей. Все статьи довольно стары, относятся к старым версиям этого програмного обеспечения.

Все:) RADIUS-сервер уже может работать:) Вы можете проверить это так:

Это debug-mode. Вся информация вываливается на консоль. Приступем к его настройке.
Как это водится в Linux, настройка выполняется через конфигурационные файлы. Конфигурационные файлы хранятся в /etc/raddb. Сделаем подготовительные действия — скопируем исходные конфиги, почистим конфигурация от всякого мусора.

Читайте также:  настройка логов 3 proxy users

Далее добавим клиента — точку доступа. Добавляем в файлик /etc/raddb/clients следующие строки:

Далее добавляем домен для пользователей. Сделаем дефолтовый.

И, наконец, добавляем пользователей в файл /etc/raddb/users:

Наш сервер запущен и ждет подключений!

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

Пробежимся по настройке основных пользовательских устройств. У наших сотрудников есть клиенты, работающие на Android, iOS и Windows 7. Оговоримся сразу: так как мы используем самосозданные сертификаты, то нам нужно несколько раз вносить всевозможные исключения и подтверждать действия. Если бы мы пользовали купленные сертификаты, возможно, все было бы проще.

Всех проще дело обстоит на iOS-устройствах. Вводим логин и пароль, нажимаем «Принять сертификат», и вперед.

Чуть сложнее выглядит, но на практике все тоже просто на Android. Там немного больше полей для ввода.

Ну и на Windows 7 приедтся немного понастраивать. Осуществим следующие шаги:
Идем в центр беспроводных подключений.

  1. Устанавливаем необходимые параметры в свойствах Вашего беспроводного подключения
  2. Устанавливаем необходимые параметры в расширенных настройках EAP
  3. Устанавливаем необходимые параметры в расширенных настройках Дополнительных параметрах
  4. Подключаемся в панели задач к Wi-Fi сети и вводим логин-пароль, наслаждаемся доступом к Wi-Fi

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

Собственный мини-биллинг

Теперь осталась одна проблема — если вы захотите добавить-удалить нового пользователя, то вам придется изменить users и перезапустить radius. Чтобы этого избежать подключим базу данных и сделать свой собственный мини-биллинг для пользователей. Используя БД, вы всегда сможете набросать простенький скрипт для добавления, блокировки, изменения пароля пользователя. И все это произойдет без останова всей системы.

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

Для начала создаем саму базу данных:

Далее надо создать нужные таблицы. Вообще с Freeradius идет документация по схемам таблиц для различных баз данных, правда в различных дистрибутивах находятся они в разных местах. У меня лично это лежит в /etc/raddb/sql/postgresql/schema.sql. Просто вставьте эти строки в psql, либо просто запустите

На всякий случай добавлю сюда схему для Postgres:

Отлично, база подготовлена. Теперь законфигурим Freeradius.
Добавьте, если ее там нет, в /etc/raddb/radiusd.conf строку

Теперь отредактируйте /etc/raddb/sql.conf под вашу реальность. У меня он выглядит так:

Добавим несколько новых пользователей test1, test2, test3, и… заблокируем test3

Ну, перезапускаем freeradius и пробуем подключиться. Должно все работать!

Конечно биллинг получился ущербный — у нас нигде не хранится информации по аккаунтингу(учету действий пользователя), но и нам здесь этого не надо. Чтобы вести аккаунтинг, необходимы еще и Wi-Fi точки подорооже, чем 3 тыс. рублей. Но уже и так мы с легкостью управлять пользователями.

Что дальше

В последнем разделе мы собрали собственный небольшой биллинг! Остается для полноты картины привернуть какой-нибудь WEB-интерфейс управления Базой Данных, добавить обязательное изменение пароля раз в месяц по крону. А если еще разориться сертификат и контроллер Wi-Fi точек доступа, то у вас в руках есть полноценная корпоративная беспроводная сеть. Но даже без этих затрат и при малых усилиях с Вашей стороны сделав своим пользователям такой доступ, они вам скажут огромное спасибо.

источник

Добавить комментарий

Adblock
detector