| 
 
 
   |   |  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
}
 |  
 Предполагается, что 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
 |  |  
 
 
   |   |   
 2014-07-27, lissyaragmirror
 Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
 2013-08-20, zentarimScan+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, zentarimWi-FI роутер + DHCP + DNS
 Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
 2011-06-15, -ZG-Охранная система на FreeBSD+LPT
 В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
 2011-03-13, terminusng_nat
 Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
 2011-02-20, КапитанNagios+Digitemp
 Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
 2011-02-17, Le1Zyxel Configuration
 Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
 2011-02-16, foxhast 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, m4rkellSyslog server
 Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
 2011-01-07, lissyaraCanon/gphotofs
 Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
 2010-12-13, AlIPSec
 Описание принципов работы IPSEC и способов аутентификации.
 2010-12-07, manefestoFreeBSD on flash
 Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем  =)
 2010-12-05, Fomalhautroot ZFS, GPT
 Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
 2010-09-05, CancerНастройка аудиоплеера на ximp3
 Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
 2010-08-31, CancerУстановка и настройка OpenVPN
 На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
 2010-08-25, manefestofreebsd lvm
 Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
 2010-04-30, gonzo111proftpd file auth"a
 Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
 2010-04-22, lissyaratw_cli
 Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
 2010-04-14, foxMySQL Master+Master
 MySQL (Master Master) and (Master Slave) Как настроить репликацию…
 2010-03-09, terminusDNS zones
 Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
 2010-03-09, asperaSquid+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, Mortydarkstat
 Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
 2010-01-23, gonzo111squid+sams+sqstat
 Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
 2009-12-19, schizoidmpd5 + radius + ng_car + Abills
 Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
 2009-11-16, lissyaraUFS->ZFS
 Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
 
 | 
	
Комментарии пользователей [5 шт.]