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

Материал из wiki
Перейти к: навигация, поиск
(RADIUS сервер)
(Диагностика AAA)
 
(не показаны 33 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
= AAA на примере FreeRadius =
 
= AAA на примере FreeRadius =
 
== AAA ==
 
== AAA ==
A
+
Что такое AAA?
A
+
 
A
+
Различные способы хранения учетных данных и протоколы проверки.
 +
 
 
local
 
local
 
LDAP
 
LDAP
Строка 10: Строка 11:
 
TACACS+
 
TACACS+
 
SSO
 
SSO
 +
 +
RADIUS-server <---> NAS <---> user
 +
PAP, CHAP, PEAP, Token ...
 +
Телеметрия NetFlow
  
 
== freeradius ==
 
== freeradius ==
Строка 16: Строка 21:
 
NAS:
 
NAS:
 
  /etc/freeradius/clients.conf
 
  /etc/freeradius/clients.conf
 +
 +
<code>
 +
client 10.13.0.2 {
 +
    ipaddr = 10.13.0.2
 +
    secret = testing123
 +
}
 +
</code>
  
 
Пользователи:
 
Пользователи:
Строка 21: Строка 33:
  
 
  cisco Cleartext-Password := "ciscocisco"
 
  cisco Cleartext-Password := "ciscocisco"
 +
 +
Перед именем пользователя не должно быть пробелов!
  
 
  service freeradius stop
 
  service freeradius stop
Строка 39: Строка 53:
  
 
== Cisco IOS ==
 
== Cisco IOS ==
 +
=== default config ===
 +
Начальная конфигурация коммутатора для работы выглядит так.
 +
Для удобства мы все порты включаем в менеджмент vlan 88.
 +
<code>
 +
!
 +
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
 +
</code>
 +
 +
=== AAA new-model ===
 +
 +
<code>
 +
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
 +
!
 +
</code>
 +
 +
При выключенном RADIUS-сервере коммутатор после 2 попыток перейдет на локальную аутентификацию.
 +
Т.е. без RAIUDS-сервера мы по прежнему можем попасть на коммутатор под локальным пользователем.
 +
 +
=== freeradius ===
 +
<code>
 +
client switch150 {
 +
    ipaddr = 212.192.88.150
 +
    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>
 +
 
== 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