AAA на примере FreeRadius — различия между версиями

Материал из wiki
Перейти к: навигация, поиск
(AAA new-model)
(Диагностика AAA)
 
(не показано 27 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
= AAA на примере FreeRadius =
 
= AAA на примере FreeRadius =
 
== AAA ==
 
== AAA ==
A
+
Что такое AAA?
  
A
+
Различные способы хранения учетных данных и протоколы проверки.
 
 
A
 
  
 
local
 
local
Строка 15: Строка 13:
  
 
RADIUS-server <---> NAS <---> user
 
RADIUS-server <---> NAS <---> user
 +
PAP, CHAP, PEAP, Token ...
 +
Телеметрия NetFlow
  
 
== freeradius ==
 
== freeradius ==
Строка 22: Строка 22:
 
  /etc/freeradius/clients.conf
 
  /etc/freeradius/clients.conf
  
 +
<code>
 
client 10.13.0.2 {
 
client 10.13.0.2 {
 
     ipaddr = 10.13.0.2
 
     ipaddr = 10.13.0.2
 
     secret = testing123
 
     secret = testing123
 
}
 
}
 
+
</code>
  
 
Пользователи:
 
Пользователи:
Строка 32: Строка 33:
  
 
  cisco Cleartext-Password := "ciscocisco"
 
  cisco Cleartext-Password := "ciscocisco"
 +
 +
Перед именем пользователя не должно быть пробелов!
  
 
  service freeradius stop
 
  service freeradius stop
Строка 51: Строка 54:
 
== Cisco IOS ==
 
== Cisco IOS ==
 
=== default config ===
 
=== default config ===
Начальная конфигурация коммутатора для работы выглядит так
+
Начальная конфигурация коммутатора для работы выглядит так.
 +
Для удобства мы все порты включаем в менеджмент vlan 88.
 
<code>
 
<code>
 
!
 
!
 
service timestamps log datetime msec localtime show-timezone year
 
service timestamps log datetime msec localtime show-timezone year
 
!
 
!
enable secret 5 $1$eII1$tBNEV9R6Gzy2cr/9rAaxk1
+
enable secret 0 ciscocisco
 
!
 
!
username cisco1 secret 5 $1$d08J$pSSW3WfregkPKjYJAWjyX0
+
username cisco1 secret 0 ciscocisco1
 
no aaa new-model
 
no aaa new-model
 
clock timezone GMT+6 6 0
 
clock timezone GMT+6 6 0
!
 
vlan internal allocation policy ascending
 
 
!
 
!
 
vlan 88
 
vlan 88
Строка 72: Строка 74:
 
!
 
!
 
interface Vlan88
 
interface Vlan88
  ip address 212.192.88.150 255.255.255.0
+
  ip address 212.192.88.15x 255.255.255.0
 
  no shut
 
  no shut
 
!
 
!
Строка 89: Строка 91:
 
aaa new-model  
 
aaa new-model  
 
!
 
!
radius-server host 212.192.64.174 auth-port 1812 acct-port 1813 timeout 2 retransmit 1 key superciscosecret
+
radius-server host 212.192.64.174 auth-port 1812 acct-port 1813 timeout 2 retransmit 1 key superciscosecret
 +
!
 +
!  aaa group server radius RAD-GROUP
 +
! server 212.192.64.174 auth-port 1812 acct-port 1813
 +
!
 +
!
 +
radius server VIRT
 +
address ipv4 10.13.0.102 auth-port 1812 acct-port 1813
 +
key superciscosecret
 +
timeout 2
 +
retransmit 1
 
!
 
!
 
aaa group server radius RAD-GROUP
 
aaa group server radius RAD-GROUP
  server 212.192.64.174 auth-port 1812 acct-port 1813
+
  server name VIRT
 
!         
 
!         
 
aaa authentication login ADMINUSERS group RAD-GROUP local
 
aaa authentication login ADMINUSERS group RAD-GROUP local
Строка 106: Строка 118:
 
</code>
 
</code>
  
term mon
+
При выключенном RADIUS-сервере коммутатор после 2 попыток перейдет на локальную аутентификацию.
debug radius
+
Т.е. без RAIUDS-сервера мы по прежнему можем попасть на коммутатор под локальным пользователем.
test aaa group RAD-GROUP cisco ciscocisco port 1 new-code
 
un all
 
term no mon
 
 
 
При выключенном сервере коммутатор после 4 попыток перейдет на локальную аутентификацию.
 
Т.е. без радиус-сервера мы по прежнему можем попасть на коммутатор под локальным пользователем.
 
  
 
=== freeradius ===
 
=== freeradius ===
Строка 121: Строка 127:
 
     secret = superciscosecret
 
     secret = superciscosecret
 
}
 
}
 +
</code>
 +
 +
== Диагностика AAA ==
 +
 +
Со стороны NAS (коммутатора)
 +
term mon
 +
debug radius
 +
 +
Проверка доступности сервера и пользователя
 +
test aaa group RAD-GROUP cisco ciscocisco port 1 new-code
 +
 +
Выключить диагностику
 +
un all
 +
term no mon
 +
 +
 +
При запуске сервера ключ -X включает отладочный режим
 +
freeradius -X
 +
 +
На сервере можно проследить передаваемые пакеты между NAS и radius
 +
<code>
 +
tcpdump "port 1812" -nnn -i eth0 -s 1500 -vvv
 +
11:51:36.275332 IP (tos 0x0, ttl 254, id 3630, offset 0, flags [none], proto UDP (17), length 97)
 +
    212.192.88.150.1645 > 10.13.0.2.1812: [udp sum ok] RADIUS, length: 69
 +
        Access Request (1), id: 0x1b, Authenticator: dfacf1437114f8ced34046c44225b8d8
 +
          Username Attribute (1), length: 7, Value: cisco
 +
            0x0000:  6369 7363 6f
 +
          Password Attribute (2), length: 18, Value:
 +
            0x0000:  137f 8eb9 d766 2216 018f 1af8 5f40 40ba
 +
          NAS IP Address Attribute (4), length: 6, Value: 212.192.88.150
 +
            0x0000:  d4c0 5896
 +
11:51:36.275649 IP (tos 0x0, ttl 64, id 13226, offset 0, flags [none], proto UDP (17), length 48)
 +
    10.13.0.2.1812 > 212.192.88.150.1645: [bad udp cksum 0x3793 -> 0x8c9c!] RADIUS, length: 20
 +
        Access Accept (2), id: 0x1b, Authenticator: 9930efbeaea37a010f63c6dc8a1c1a13
 
</code>
 
</code>
  
 
== SSH ==
 
== SSH ==
 +
 +
Создаем доменное имя, пару ключей RSA. Включаем SSHv2. Разрешаем доступ на коммутатор только по SSH.
 +
<code>
 +
!
 +
no ip domain-lookup
 +
!
 +
ip domain-name KOIBAS.PSNRU
 +
!
 +
crypto key generate rsa
 +
2048
 +
!
 +
ip ssh ver 2
 +
!
 +
line vty 0 15
 +
  transport input ssh
 +
!
 +
</code>
 +
 +
=== Диагностика ssh ===
 +
На коммутаторе
 +
sh ip ssh
 +
 +
sh ssh
 +
 +
== syslog ==
 +
На коммутаторе включить передачу логов на сервер
 +
<code>
 +
logging host 10.13.0.2
 +
logging trap debugging
 +
logging on
 +
</code>
 +
 +
На сервере:
 +
/etc/rsyslog.conf
 +
 +
раскомментировать строки
 +
<code>
 +
$ModLoad imudp
 +
$UDPServerRun 514
 +
</code>
 +
 +
Запустить сервис
 +
service rsyslog restart
 +
 +
Смотреть логи
 +
  tail -F /var/log/messages /var/log/debug
 +
 +
На коммутаторе включить логирование всех вводимых комманд
 +
<code>
 +
archive
 +
log config
 +
  logging enable      ! включить логгинг
 +
  notify syslog          ! скидывать на syslog
 +
  hidekeys                ! скрывать пароли
 +
</code>
 +
 +
Полезная команда, чтобы консоль при выводе логов не стирала вводимую команду
 +
<code>
 +
ine con 0
 +
logging synchronous
 +
line vty 0 15
 +
logging synchronous
 +
</code>
  
 
[[категория:Лекции]]  
 
[[категория:Лекции]]  

Текущая версия на 03:16, 31 марта 2016

AAA на примере FreeRadius

AAA

Что такое AAA?

Различные способы хранения учетных данных и протоколы проверки.

local LDAP Kerberos RADIUS TACACS+ SSO

RADIUS-server <---> NAS <---> user PAP, CHAP, PEAP, Token ... Телеметрия NetFlow

freeradius

apt-get install freeradius

NAS:

/etc/freeradius/clients.conf
client 10.13.0.2 {
    ipaddr = 10.13.0.2
    secret = testing123
}

Пользователи:

/etc/freeradius/users
cisco Cleartext-Password := "ciscocisco"

Перед именем пользователя не должно быть пробелов!

service freeradius stop
freeradius -X


Проверка:

root@model-net-ctrl-1:~# radtest cisco ciscocisco 127.0.0.1 0 testing123
Sending Access-Request of id 118 to 127.0.0.1 port 1812
        User-Name = "cisco"
        User-Password = "ciscocisco"
        NAS-IP-Address = 212.192.64.218
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=118, length=20

Cisco IOS

default config

Начальная конфигурация коммутатора для работы выглядит так. Для удобства мы все порты включаем в менеджмент vlan 88.

!
service timestamps log datetime msec localtime show-timezone year
!
enable secret 0 ciscocisco
!
username cisco1 secret 0 ciscocisco1
no aaa new-model
clock timezone GMT+6 6 0
!
vlan 88
!
interface range FastEthernet0/1 - 24
 switchport access vlan 88
 switchport mode access
 spanning-tree portfast
!
interface Vlan88
 ip address 212.192.88.15x 255.255.255.0
 no shut
!
ip default-gateway 212.192.88.1
!
line vty 0 15
 logging synchronous
 login local
!
ntp server 212.192.64.2

AAA new-model

aaa new-model 
!
!   radius-server host 212.192.64.174 auth-port 1812 acct-port 1813 timeout 2 retransmit 1 key superciscosecret
!
!  aaa group server radius RAD-GROUP
! server 212.192.64.174 auth-port 1812 acct-port 1813
!
!
radius server VIRT
 address ipv4 10.13.0.102 auth-port 1812 acct-port 1813
 key superciscosecret
 timeout 2
 retransmit 1
!
aaa group server radius RAD-GROUP
 server name VIRT
!         
aaa authentication login ADMINUSERS group RAD-GROUP local
! new login auth-list “ADMINUSERS” with local fallback
!
aaa authentication enable default enable
! use enable password to enter enable mode in default auth-list
!
!
line vty 0 15
  login authentication ADMINUSERS
!

При выключенном RADIUS-сервере коммутатор после 2 попыток перейдет на локальную аутентификацию. Т.е. без RAIUDS-сервера мы по прежнему можем попасть на коммутатор под локальным пользователем.

freeradius

client switch150 {
    ipaddr = 212.192.88.150
    secret = superciscosecret
}

Диагностика AAA

Со стороны NAS (коммутатора)

term mon
debug radius

Проверка доступности сервера и пользователя

test aaa group RAD-GROUP cisco ciscocisco port 1 new-code

Выключить диагностику

un all
term no mon


При запуске сервера ключ -X включает отладочный режим

freeradius -X

На сервере можно проследить передаваемые пакеты между NAS и radius

tcpdump "port 1812" -nnn -i eth0 -s 1500 -vvv
11:51:36.275332 IP (tos 0x0, ttl 254, id 3630, offset 0, flags [none], proto UDP (17), length 97)
    212.192.88.150.1645 > 10.13.0.2.1812: [udp sum ok] RADIUS, length: 69
        Access Request (1), id: 0x1b, Authenticator: dfacf1437114f8ced34046c44225b8d8
          Username Attribute (1), length: 7, Value: cisco
            0x0000:  6369 7363 6f
          Password Attribute (2), length: 18, Value:
            0x0000:  137f 8eb9 d766 2216 018f 1af8 5f40 40ba
          NAS IP Address Attribute (4), length: 6, Value: 212.192.88.150
            0x0000:  d4c0 5896
11:51:36.275649 IP (tos 0x0, ttl 64, id 13226, offset 0, flags [none], proto UDP (17), length 48)
    10.13.0.2.1812 > 212.192.88.150.1645: [bad udp cksum 0x3793 -> 0x8c9c!] RADIUS, length: 20
        Access Accept (2), id: 0x1b, Authenticator: 9930efbeaea37a010f63c6dc8a1c1a13

SSH

Создаем доменное имя, пару ключей RSA. Включаем SSHv2. Разрешаем доступ на коммутатор только по SSH.

!
no ip domain-lookup
!
ip domain-name KOIBAS.PSNRU
!
crypto key generate rsa 
2048
!
ip ssh ver 2
!
line vty 0 15
  transport input ssh
!

Диагностика ssh

На коммутаторе

sh ip ssh
sh ssh

syslog

На коммутаторе включить передачу логов на сервер

logging host 10.13.0.2
logging trap debugging
logging on 

На сервере: /etc/rsyslog.conf

раскомментировать строки

$ModLoad imudp
$UDPServerRun 514

Запустить сервис

service rsyslog restart

Смотреть логи

 tail -F /var/log/messages /var/log/debug

На коммутаторе включить логирование всех вводимых комманд

archive
 log config
  logging enable      ! включить логгинг
  notify syslog          ! скидывать на syslog
  hidekeys                ! скрывать пароли

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

ine con 0
 logging synchronous
line vty 0 15
 logging synchronous