Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
Очумелые Ручки
OpenBSD
Cisco
  Дополнительные порты для роутера
  Cisco ADSL
  Cisco VPDN с RADIUS авторизацией
  IPSEC over GRE with RIP
  Двойной NAT


www.lissyara.su —> статьи —> Cisco —> Cisco VPDN с RADIUS авторизацией

Cisco PPPoE/PPTP сервер с RADIUS авторизацией

Автор: tuneil.


Приветствую.

Недавно, руководство поставило задачу - организовать сервер доступа. Выделили для этого дела Cisco 2651.
В результате получился nas с базой пользователей, ip (фейковых и реальных) в MySQL и шейпером rate-limit на виртуальных интерфейсах.

Итак, поэтапно:

I)
Установка Freeradius

# cd /usr/ports/net/freeradius

# make config

[ ] KERBEROS      With Kerberos support                       
[ ] HEIMDAL       With Heimdal Kerberos support             
[ ] LDAP          With LDAP database support                   
[X] MYSQL         With MySQL database support                 
[ ] PGSQL         With PostgreSQL database support             
[ ] FIREBIRD      With Firebird database support (EXPERIMENTAL)
[ ] SNMP          With SNMP support                           
[ ] EDIR          With Novell eDirectory support               
[ ] NOPERL        Do not require perl (use only if necessary)   
[ ] EXPERIMENTAL  Build experimental modules     

# make; make install clean

Правим конфиг-файлы


# cd /usr/local/etc/raddb

radiusd.conf

Снимаем комменты


1)   #  See "Authorization Queries" in sql.conf
       sql


2)   sql_log {
       path = ${radacctdir}/sql-relay
       acct_table = "radacct"
     postauth_table = "radpostauth"

   Start = "INSERT INTO ${acct_table} (AcctSessionId, UserName, \
       NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
       AcctSessionTime, AcctTerminateCause) VALUES                 \
       ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
       '%{Framed-IP-Address}', '%S', '0', '0', '');"
       Stop = "INSERT INTO ${acct_table} (AcctSessionId, UserName,  \
       NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
       AcctSessionTime, AcctTerminateCause) VALUES                 \
       ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
       '%{Framed-IP-Address}', '0', '%S', '%{Acct-Session-Time}',  \
       '%{Acct-Terminate-Cause}');"
       Alive = "INSERT INTO ${acct_table} (AcctSessionId, UserName, \
       NASIPAddress, FramedIPAddress, AcctStartTime, AcctStopTime, \
       AcctSessionTime, AcctTerminateCause) VALUES                 \
       ('%{Acct-Session-Id}', '%{User-Name}', '%{NAS-IP-Address}', \
       '%{Framed-IP-Address}', '0', '0', '%{Acct-Session-Time}','');"

       Post-Auth = "INSERT INTO ${postauth_table} (id, user, pass, reply, \
       date) VALUES \
       ('','%{User-Name}', '%{User-Password:-Chap-Password}', \
       '%{reply:Packet-Type}', '%S');"
   }

3) #  Log traffic to an SQL database.
   #
   #  See "Accounting queries" in sql.conf
   #
     sql

   #
   #  Instead of sending the query to the SQL server,
   #  write it into a log file.
   #
     sql_log

4) session {
      radutmp

   #
   #  See "Simultaneous Use Checking Querie" in sql.conf
     sql
   }   

5) #  See "Authentication Logging Queries" in sql.conf
     sql
   #  Instead of sending the query to the SQL server,
   #  write it into a log file.
   #
     sql_log


   # Комментируем  files (по желанию)
   #  Read the 'users' file
   #   files

clients.conf

Указываем наш Cisco NAS:


client 192.168.0.254 {
        secret      = abcd
        shortname   = NAS
        nastype     = cisco
        require_message_authenticator = yes
}

sql.conf

Предполагается, что MySQL установлено, посему пропишем инфу о будущей базе и пользователе базы.


sql {
        # Database type
        # Current supported are: rlm_sql_mysql, rlm_sql_postgresql,
        # rlm_sql_iodbc, rlm_sql_oracle, rlm_sql_unixodbc, rlm_sql_freetds
        driver = "rlm_sql_mysql"

        # Connect info
        server = "localhost"
        login = "yourlogin"
        password = "yourpassword"

        # Database table configuration
        radius_db = "radius"
}

[]
Создадим пользователя в базе:

# mysql -u root -p

mysql> CREATE DATABASE IF NOT EXISTS radius;

mysql> GRANT SELECT, INSERT, UPDATE, DELETE,
  -> CREATE, DROP, INDEX, ALTER on `yourlogin`.* to
  -> yourlogin@localhost IDENTIFIED BY 'yourlogin';

mysql> quit

Зальем в базу референсный темпл.

# cd /usr/ports/net/freeradius
# make extract
# cd work/freeradius-1.1.7/doc/examples/
# mysql -u root -p radius < mysql.sql

II ) Также былa организована "нарезка" канала пользователям, посредством передачи AV пар. (в dictionary надо прописать поддержку)


mysql> INSERT INTO radgroupreply 
mysql> (id, GroupName, Attribute, op, Value)
mysql> VALUES (NULL, 'pppoe', 'Framed-Protocol', '=', 'PPP');

mysql> INSERT INTO radgroupreply
mysql> (id, GroupName, Attribute, op, Value) 
mysql> VALUES (NULL, 'pppoe', 'Service-Type', '=', 'Framed-User')

mysql> INSERT INTO radgroupreply 
mysql> (id, GroupName, Attribute, op, Value)
mysql> VALUES (NULL, 'pppoe', 'Cisco-Avpair', '=', 
mysql> 'interface-config#1=rate-limit output 64000 12200 24400  
mysql> conform-action continue exceed-action drop')

mysql> INSERT INTO radgroupreply 
mysql> (id, GroupName, Attribute, op, Value) 
mysql> VALUES (NULL, 'pppoe', 'Cisco-Avpair', '+=',
mysql>'interface-config#2=rate-limit input 64000 12200 24400  
mysql> conform-action continue exceed-action drop')

mysql> INSERT INTO usergroup (UserName, GroupName, priority)
mysql> VALUES ('yourname', 'pppoe', 1)

mysql> INSERT INTO radreply 
mysql> (id, UserName, Attribute, op, Value)
mysql> VALUES (NULL, 'yourname', 'Framed-IP-Address', '=', 
mysql> '10.10.15.6')

mysql> INSERT INTO radcheck 
mysql> (id, UserName, Attribute, op, Value) 
mysql> VALUES (NULL, 'yourname', 'Password', '==', 'yourpass')


mysql> INSERT INTO radgroupcheck 
mysql> (id, GroupName, Attribute, op, Value)
mysql> VALUES (NULL, 'pppoe', 'Simultaneous-Use', ':=', '1')

Пользователь yourname с паролем yourpass при успешной авторизации получает ip из сети 10.10.15.0/27, принадлежит к групе pppoe для которой пропускная способность канала - 64кб/с.

Стоит также обратить внимание на то, что Cisco-Avpair состоит из показателей normal burst и maximum burst, которые (по дефолту) просчитывают по таким формулам:

normal burst - band/8*1.5
maximum burst - (band/8*1.5)*2
где band - желаемая пропукная способность в кб/сек

III ) Конфиг cisco 2651

!
! Last configuration change at 10:21:41 UTC Fri Feb 22 2008
! NVRAM config last updated at 10:11:17 UTC Fri Feb 22 2008
!
version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname pppoe-tor
!
aaa new-model
aaa authentication login default local
aaa authentication ppp default group radius local
aaa authorization exec default local
aaa authorization network default group radius group radius
aaa accounting delay-start
aaa accounting update periodic 5
aaa accounting network default start-stop group radius
enable secret ***************

!
username tfwr password 0 *******
clock timezone Kiev 2
ip subnet-zero
no ip source-route
no ip rcmd domain-lookup
ip rcmd rcp-enable
ip rcmd rsh-enable
!
!
ip domain-name pppoe.domain.com.ua
ip name-server ***.**.*.***
ip name-server 172.18.15.2
!
ip audit notify log
ip audit po max-events 100
virtual-profile virtual-template 1
vpdn enable
!
vpdn-group 1
accept-dialin
  protocol pppoe
  virtual-template 1
!
!
!
call rsvp-sync
!
!
!
interface Loopback1
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
!
interface FastEthernet0/0.445
encapsulation dot1Q 445
ip address 192.168.0.254 255.255.255.0
ip nat inside
pppoe enable
!
interface FastEthernet0/0.455
encapsulation dot1Q 455
ip address 172.18.53.242 255.255.255.0
ip nat inside
pppoe enable
!
interface FastEthernet0/0.15
encapsulation dot1Q 15
ip address 195.9*.**.*** 255.255.255.224
ip nat outside
!
interface Virtual-Template1
ip unnumbered Loopback1
ip nat inside
ppp authentication chap callin
!
ip nat inside source list nat interface FastEthernet0/0.15 overload
ip classless
ip route 0.0.0.0 0.0.0.0 195.9*.**.***
ip http server
!
!
ip access-list extended nat
permit   ip  10.10.15.0 0.0.31.255 any
ip radius source-interface FastEthernet0/0.445
!
radius-server configure-nas
radius-server host 192.168.0.250 auth-port 1812 acct-port 1813 key abcd
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
radius-server attribute 32 include-in-access-req
radius-server attribute 44 include-in-access-req
radius-server attribute 44 extend-with-addr
radius-server attribute nas-port format d
radius-server vsa send authentication
!
line con 0
line aux 0
!
line vty 5 15
transport preferred ssh
transport input ssh
!
end

Для поддержки шифрования можно прописать:

interface Virtual-Template1
ppp encrypt mppe 128 required
ppp authentication chap

Всё это каcалось PPPoE сервера, с его главным недостатком - работа только в одноранговой сети. Когда же сеть сегментирована, и второй уровень не всегда можно обезпечить, на помошь приходит VPN, который с легкостью конфигурируется тут:

vpdn-group 1
accept-dialin

Тут protocol pppoe меняем на pptp. На интерфейсе убираем pppoe enable.

Отладка


# sh vpdn session   ! Просмотр сессий
# clear vpdn tunnel [pppoe, pptp]   ! Сброс сессий
# debug aaa authentication ! Отладочная инфа Cisco:
# debug aaa authorization
# debug vpdn error
# debug vpdn packet

# radiusd -X     ! Отладочная инфа Freeradius - запуск радиуса с параметрами
# radiusd -XXX



Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=48.

размещено: 2008-11-13,
последнее обновление: 2008-11-14,
автор: tuneil

оценить статью:

Гость, 2009-03-09 в 15:30:52

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

Al, 2009-04-23 в 9:56:54

Согласен с предыдущим постом. Для человека, не очень хорошо разбирающегося в кисках, не совсем понятно,что относится в vpn в конфиге,а что автор добавил для красоты,удобтва,своих нужд и т.п.
Добавь коменты в конфиг или выдели то,что относится к радиус и впну.

chpoqxie, 2009-06-09 в 23:21:23

хоть и не для вопросов - а сколько юзеров-то на ту циску смогло повиснуть одновременно?

ymsssg, 2010-11-15 в 12:54:17

Сори за частичный оффтопик. Имею аналогичную связку, только радиус виндовый - чтобы клиенты авторизировались в AD и сама циска 2811. Вопрос - можно ли циску заставить писать в лог ip-ки тех кто в vpn подключиться пытается? И если можно то как?

rogue, 2012-05-10 в 16:03:38

Как-то не по фен-шую... Поменьше бы таких как ты=)


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 17 чел.
За последние 30 мин было: 83 человек
За сегодня было
145 показов,
47 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0426 секунд
Из них PHP: 45%; SQL: 55%; Число SQL-запросов: 45 шт.
Исходный размер: 91817; Сжатая: 19021