AAA на примере FreeRadius — различия между версиями
Moiseevvi (обсуждение | вклад) (→RADIUS сервер) |
Moiseevvi (обсуждение | вклад) (→Диагностика AAA) |
||
(не показаны 33 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
= AAA на примере FreeRadius = | = AAA на примере FreeRadius = | ||
== AAA == | == AAA == | ||
− | + | Что такое AAA? | |
− | + | ||
− | + | Различные способы хранения учетных данных и протоколы проверки. | |
+ | |||
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