The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Храним учетные записи Cisco VPN в связке RADIUS/MySQL (vpn auth radius mysql cisco aaa)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: vpn, auth, radius, mysql, cisco, aaa,  (найти похожие документы)
From: Виталий Банковский Date: Mon, 24 Sep 2008 18:21:07 +0000 (UTC) Subject: Храним учетные записи Cisco VPN в связке RADIUS/MySQL Материал предоставлен редакцией журнала Системный администратор. Опубликовано в журнале "Системный администратор" N 4 2008 В современном мире, полном опасностей в виде хакерских атак, значимость и популярность виртуальных частных сетей (Virtual Pivate Networks, VPN) постоянно растет. Сегодня рассмотрим один из аспектов интеграции устройств доступа к VPN в корпоративную сеть. Структура и используемые компоненты В качестве сервера VPN я использовал одно из наиболее популярных решений от компании Cisco, Inc. - Cisco VPN 506E. Учитывая традиции и стандарты, которых придерживается эта компания, другие продукты (Cisco VPN concetrator 3000, Cisco ASA) настраиваются аналогичным образом. В качестве сервера авторизации для Cisco VPN Server я использовал RADIUS с поддержкой хранения учетных записей в сервере данных MySQL. Предположим, что сервер MySQL у нас будет находиться по адресу 10.10.10.10, сервер RADIUS - 10.10.10.11, а адрес 10.10.10.12 присвоен серверу VPN. Настройка базы данных Приступим к созданию базы данных для хранения учетных записей. Запись для каждого пользователя состоит из имени пользователя и зашифрованного пароля. Создаем базу данных: mysql> create database vpn; mysql> grant all on vpn.* to vpn@'10.10.10.11' identified by 'PASSW905'; mysql> flush privileges; где "PASSW905" - пароль доступа к базе данных. Этот же пароль прописывается в настройках сервера RADIUS для обеспечения доступа последнего к таблицам с учетными записями. Создаем таблицу для хранения учетных записей пользователей: create table users ( username varchar(32), password varchar(64), contact varchar(80), role varchar(80), unique key username (username) ); Кроме имени пользователя и пароля, я храню контактную информацию и роль пользователя. И вносим несколько учетных записей: mysql> insert into users(username,password) values('user1', encrypt('pass1')); mysql> insert into users(username,password) values('user2', encrypt('pass2')); где "pass1" и "pass2" - пароли учетных записей пользователей. Выбор сервера RADIUS Итак, в предыдущем разделе мы создали хранилище, где находятся учетные записи наших пользователей. Теперь можно приступить к установке сервера RADIUS, который бы подключался к нашему серверу SQL за данными. Немного о службе. RADIUS (Remote Authentication in Dial-In User Service) - протокол AAA (authentication, authorization и accounting) - изначально был разработан для совместной работы серверов доступа (NAS, Network Access Server) и систем авторизации и биллинга. * Authentication - процесс, позволяющий идентифицировать (узнать) субъект по его данным, например, по имени пользователя и паролю. * Authorization - процесс, определяющий полномочия идентифицированного субъекта на доступ к определенным объектам или сервисам. * Accounting - процесс, позволяющий вести учет доступа к услугам. Наиболее популярными на данный момент серверами RADIUS являются: * FreeRADIUS; * OpenRADIUS; * GNU RADIUS; * ClearBox Enterprise RADIUS Server. В мире существует много других серверов RADIUS. С наиболее полным списком можно ознакомиться по адресу - http://en.wikipedia.org/wiki/List_of_RADIUS_Servers Я выбрал GNU RADIUS как простой и легко устанавливаемый сервер. Домашняя страничка проекта находится по адресу - http://www.gnu.org/software/radius/radius.html Установка и настройка сервера RADIUS В своей работе я использую CentOS 4.x семейства RedHat, поэтому все настройки и пути размещения будут описаны для этого семейства дистрибутивов. Я использовал установку сервера RADIUS из исходных кодов, так как такой способ позволяет оперативно устанавливать последние версии в случае обнаружения проблем с безопасностью в пакете без ожидания обновлений от поставщика дистрибутива. Получаем исходные коды сервера, распаковываем и устанавливаем: tar -xzvf radius-1.5.tar.gz cd radius-1.5 ./configure -with-mysql make make install Конфигурационные файлы будут установлены в каталог /usr/local/etc/raddb/. Настройки по умолчанию не требуют больших изменений, за исключением настройки доступа к серверу MySQL и авторизации сервера VPN к службе RADIUS. Ниже приведены основные параметры, которые должны быть изменены. Файл /usr/local/etc/raddb/sqlserver: # Тип сервера interface mysql # Параметры сервера MySQL server 10.10.10.10 port 3306 login vpn password PASSW905 # Включить авторизацию MySQL doauth yes # Имя базы данных, где находится таблица "users" auth_b vpn # Запрос SQL, который используется для проверки аккредитации пользователя: auth_query SELECT password FROM users WHERE username='%u' Далее настраиваем подключение сервера VPN к серверу RADIUS. Для этого открываем файл /usr/local/etc/raddb/clients и вписываем следующую строку (или несколько в случае нескольких устройств): #Client Name Key #---------------- ------------------- 10.10.10.12 our_password_key где: 10.10.10.12 - адрес IP нашего VPN-сервера; our_password_key - пароль. Далее необходимо создать файл начального запуска службы RADIUS при старте сервера и включить его в процесс загрузки. Для этого создаем файл /etc/init.d/raddb со следующим содержимым: #!/bin/sh # chkconfig: 2345 55 25 # description: radius server PREFIX=/usr/local OPTS= test -x /usr/local/sbin/radiusd || exit 0 case "$1" in start) echo -n "Starting: radius" /usr/local/sbin/radiusd echo "." ;; stop) echo -n "Stopping service: radius" killall radiusd echo "." ;; restart) $0 stop sleep 2 $0 start ;; *) echo "Usage: /etc/init.d/radius ? {start|stop|restart}" >&2 exit 1 ;; esac exit 0 Включаем запуск сервера RADIUS в процесс загрузки сервера: chkconfig raddb on Настройка сервера VPN В этом разделе я расскажу, как настроить устройство доступа к VPN Cisco PIX-506E для работы с сервером RADIUS. Для других концентраторов этого семейства настройка производится аналогично: aaa-server RADIUS protocol radius aaa-server RADIUS max-failed-attempts 3 aaa-server RADIUS deadtime 10 aaa-server RADIUS (inside) host 10.10.10.11 our_password_key timeout 5 Последняя строка содержит адрес сервера VPN и пароль-ключ для доступа, который был прописан в /usr/local/etc/raddb/clients. Заклюение В этой статье я рассмотрел базовую конфигурацию для хранения учетных записей в сервере данных MySQL для последующей интеграции сервера доступа CISCO. Так как большинство производителей сетевого оборудованию поддерживают использование авторизации через службу RADIUS, то эта статья может послужить началом для построения централизованной системы по работе с учетными записями пользователей. 1. http://cisco.com/en/US/products/hw/vpndevc/index.html 2. http://www.gnu.org/software/radius/radius.html 3. http://en.wikipedia.org/wiki/List_of_RADIUS_Servers 4. http://en.wikipedia.org/wiki/RADIUS

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Аноним (1), 19:21, 24/09/2008 [ответить]  
  • +/
    GNU RADIUS какашка. Используйте Freeradius и прибудет с вами сила.
     
     
  • 2, NetMan (??), 09:16, 25/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    FreraRADIUS + ABills хорошее решение


     
     
  • 3, KpeHDeJIb (ok), 15:25, 25/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Продолжительное время пользовался RADIUS (FreeRADIUS) для учета трафика,
    потом потихоньку "переполз" на NetFlow (flow-tools).
    Пока всем доволен, все чего нехватало - нашлось :)
     
     
  • 4, Аноним (-), 15:34, 25/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то net-flow это несколько другое.
    У меня была связка: freeradius + (pptp+pppd)
    Больше 5к клиентов, макс онлайн был до 2к.
    Работало просто шикарно, из базы радиуса можно вынимать любые данный о активности клиента.
    Написали свой модуль для freeraius'а.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру