FreeRadius Notes: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 198: | Строка 198: | ||
Fri Jul 14 18:07:17 2023 : Debug: Waking up in 4.9 seconds. |
Fri Jul 14 18:07:17 2023 : Debug: Waking up in 4.9 seconds. |
||
</PRe> |
</PRe> |
||
| + | |||
| + | |||
| + | =Ошибочная конфигурация= |
||
| + | Если переставить модули местами и вместо |
||
| + | <PRE> |
||
| + | authorize { |
||
| + | files |
||
| + | pap |
||
| + | } |
||
| + | </PRE> |
||
| + | Написать модули в обратном порядке |
||
| + | <PRE> |
||
| + | authorize { |
||
| + | pap |
||
| + | files |
||
| + | } |
||
| + | </PRE> |
||
| + | |||
| + | То на момент проверки пароля модулем PAP, атрибут <code>Cleartext-Password</code> еще не будет доступен о чем и будет сказано в логах: |
||
| + | <PRE> |
||
| + | Sat Jul 15 12:49:59 2023 : WARNING: (0) pap: No "known good" password found for the user. Not setting Auth-Type |
||
| + | Sat Jul 15 12:49:59 2023 : WARNING: (0) pap: Authentication will fail unless a "known good" password is available |
||
| + | ... |
||
| + | |||
| + | Sat Jul 15 12:49:59 2023 : WARNING: (0) No module configured to handle comparisons with &control:Cleartext-Password |
||
| + | Sat Jul 15 12:49:59 2023 : WARNING: (0) Add pap or chap to the authorize { ... } and authenticate { ... } sections of this virtual server to handle this "known good" password type |
||
| + | Sat Jul 15 12:49:59 2023 : ERROR: (0) No Auth-Type found: rejecting the user via Post-Auth-Type = Reject |
||
| + | </PRE> |
||
| + | Не смотря на то что модуль <code>files</code> говорит что "все хорошо" авторизация не работает. |
||
| + | <PRE> |
||
| + | Sat Jul 15 12:49:59 2023 : Debug: (0) [files] = ok |
||
| + | </PRE> |
||
Версия 15:08, 15 июля 2023
Это просто сборник ссылок и заметок
- https://shop.nag.ru/article/ericsson-smartedge-freeradius-billing
- https://code.google.com/archive/p/cakebilling/wikis/ConfiguringFreeRadius.wiki
Минимальный рабочий конфиг
Тут чертовски важен порядок модулей - если переставить местами pap/files то получится что pap не сможет получить пароль
sites-enabled/default
server default {
listen {
type = auth
ipv4addr = *
port = 1812
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
listen {
ipv4addr = *
port = 1813
type = acct
}
instantiate {
exec
expr
expiration
}
authorize {
files
pap
}
authenticate {
Auth-Type PAP {
pap
}
}
} # end of SERVER
Клиенты clients.conf
client localhost {
ipaddr = 127.0.0.1
proto = *
secret = secret
require_message_authenticator = no
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
Модуль PAP mods-enabled/pap
pap {
# normalise = yes
auto_header = no
}
Модуль files
mods-enabled/files
files {
moddir = ${modconfdir}/${.:instance}
#key = "%{%{Stripped-User-Name}:-%{User-Name}}"
filename = ${moddir}/authorize
usersfile = ${moddir}/authorize
# acctusersfile = ${moddir}/accounting
}
mods-config/files/authorize
bob Cleartext-Password := "hello"
Reply-Message := "Hello, %{User-Name}"
Проверка работы минимальной конфигурации
- Для проверки использую команду
radtest bob hello localhost 0 secretbob- имя пользователя, атрибутUser-Namehello- пароль, который будет передан в атрибутеUser-Passwordlocalhost- адрес куда отправить запрос0- номер (виртуального) порта,NAS-Portsecret- radius shared secret, который указан в настройках сервера и клиента
По сути тут логика такая
- "Пришел" пользователь
User-Name = "bob"User-Password = "hello" - Его проверили по файлу (модуль
filesищет пользователя в файле, имя файла определено конфигурацией модуля) и находит, о чем говорит записьfiles: users: Matched entry bob at line 4 - Далее для модулей вызываных ниже по конфигу будут доступны атрибуты которые добавил модуль
filesа именно:
bob Cleartext-Password := "hello"
Reply-Message := "Hello, %{User-Name}"
- При этом модуль
filesпо сути не делает проверок - он только сопоставляет запрос, и по ключу который определен в конфигурации (key = "%{%{Stripped-User-Name}:-%{User-Name}}") находит (или не находит) атрибуты.
Запись в логах вида:
[files] = ok
Означает что такой пользователь существует, НО не означает что он успешно авторизован.
- Далее модуль PAP осуществляет проверку пароля. Важно то, что пароль в описании пользователя должен содержаться в атрибутах "known good", в нашем случае -
Cleartext-Password
- Собственно на этом все.
Fri Jul 14 18:07:17 2023 : Debug: (0) Received Access-Request Id 51 from 127.0.0.1:54599 to 127.0.0.1:1812 length 73
Fri Jul 14 18:07:17 2023 : Debug: (0) User-Name = "bob"
Fri Jul 14 18:07:17 2023 : Debug: (0) User-Password = "hello"
Fri Jul 14 18:07:17 2023 : Debug: (0) NAS-IP-Address = 10.90.1.213
Fri Jul 14 18:07:17 2023 : Debug: (0) NAS-Port = 0
Fri Jul 14 18:07:17 2023 : Debug: (0) Message-Authenticator = 0xa051e8612e62faaa98baa723ceb98219
Fri Jul 14 18:07:17 2023 : Debug: (0) session-state: No State attribute
Fri Jul 14 18:07:17 2023 : Debug: (0) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/default
Fri Jul 14 18:07:17 2023 : Debug: (0) authorize {
Fri Jul 14 18:07:17 2023 : Debug: (0) modsingle[authorize]: calling files (rlm_files)
Fri Jul 14 18:07:17 2023 : Debug: (0) files: users: Matched entry bob at line 4
Fri Jul 14 18:07:17 2023 : Debug: (0) files: ::: FROM 1 TO 0 MAX 1
Fri Jul 14 18:07:17 2023 : Debug: (0) files: ::: Examining Reply-Message
Fri Jul 14 18:07:17 2023 : Debug: Hello, %{User-Name}
Fri Jul 14 18:07:17 2023 : Debug: Parsed xlat tree:
Fri Jul 14 18:07:17 2023 : Debug: literal --> Hello,
Fri Jul 14 18:07:17 2023 : Debug: attribute --> User-Name
Fri Jul 14 18:07:17 2023 : Debug: (0) files: EXPAND Hello, %{User-Name}
Fri Jul 14 18:07:17 2023 : Debug: (0) files: --> Hello, bob
Fri Jul 14 18:07:17 2023 : Debug: (0) files: ::: APPENDING Reply-Message FROM 0 TO 0
Fri Jul 14 18:07:17 2023 : Debug: (0) files: ::: TO in 0 out 0
Fri Jul 14 18:07:17 2023 : Debug: (0) modsingle[authorize]: returned from files (rlm_files)
Fri Jul 14 18:07:17 2023 : Debug: (0) [files] = ok
Fri Jul 14 18:07:17 2023 : Debug: (0) modsingle[authorize]: calling pap (rlm_pap)
Fri Jul 14 18:07:17 2023 : Debug: (0) modsingle[authorize]: returned from pap (rlm_pap)
Fri Jul 14 18:07:17 2023 : Debug: (0) [pap] = updated
Fri Jul 14 18:07:17 2023 : Debug: (0) } # authorize = updated
Fri Jul 14 18:07:17 2023 : Debug: (0) Found Auth-Type = PAP
Fri Jul 14 18:07:17 2023 : Debug: (0) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
Fri Jul 14 18:07:17 2023 : Debug: (0) Auth-Type PAP {
Fri Jul 14 18:07:17 2023 : Debug: (0) modsingle[authenticate]: calling pap (rlm_pap)
Fri Jul 14 18:07:17 2023 : Debug: (0) pap: Login attempt with password "hello" (5)
Fri Jul 14 18:07:17 2023 : Debug: (0) pap: Comparing with "known good" Cleartext-Password "hello" (5)
Fri Jul 14 18:07:17 2023 : Debug: (0) pap: User authenticated successfully
Fri Jul 14 18:07:17 2023 : Debug: (0) modsingle[authenticate]: returned from pap (rlm_pap)
Fri Jul 14 18:07:17 2023 : Debug: (0) [pap] = ok
Fri Jul 14 18:07:17 2023 : Debug: (0) } # Auth-Type PAP = ok
Fri Jul 14 18:07:17 2023 : ERROR: (0) Cannot proxy packets unless 'proxy_requests = yes'
Fri Jul 14 18:07:17 2023 : Debug: (0) Empty post-auth section in virtual server "default". Using default return values.
Fri Jul 14 18:07:17 2023 : Auth: (0) Login OK: [bob/hello] (from client localhost port 0)
Fri Jul 14 18:07:17 2023 : Debug: (0) Sent Access-Accept Id 51 from 127.0.0.1:1812 to 127.0.0.1:54599 length 32
Fri Jul 14 18:07:17 2023 : Debug: (0) Reply-Message = "Hello, bob"
Fri Jul 14 18:07:17 2023 : Debug: (0) Finished request
Fri Jul 14 18:07:17 2023 : Debug: Waking up in 4.9 seconds.
Ошибочная конфигурация
Если переставить модули местами и вместо
authorize {
files
pap
}
Написать модули в обратном порядке
authorize {
pap
files
}
То на момент проверки пароля модулем PAP, атрибут Cleartext-Password еще не будет доступен о чем и будет сказано в логах:
Sat Jul 15 12:49:59 2023 : WARNING: (0) pap: No "known good" password found for the user. Not setting Auth-Type
Sat Jul 15 12:49:59 2023 : WARNING: (0) pap: Authentication will fail unless a "known good" password is available
...
Sat Jul 15 12:49:59 2023 : WARNING: (0) No module configured to handle comparisons with &control:Cleartext-Password
Sat Jul 15 12:49:59 2023 : WARNING: (0) Add pap or chap to the authorize { ... } and authenticate { ... } sections of this virtual server to handle this "known good" password type
Sat Jul 15 12:49:59 2023 : ERROR: (0) No Auth-Type found: rejecting the user via Post-Auth-Type = Reject
Не смотря на то что модуль files говорит что "все хорошо" авторизация не работает.
Sat Jul 15 12:49:59 2023 : Debug: (0) [files] = ok