Я использую свободный радиус для докер и пытаюсь получить ответ при отправке запрос доступа.
Когда лучший запускается с использованием: radtest боб testpw 127.0.0.1 1812 общий секрет
Sent Access-Request Id 18 from 0.0.0.0:56219 to 127.0.0.1:1812 length 73
User-Name = "bob"
User-Password = "testpw"
NAS-IP-Address = 172.17.0.2
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "testpw"
Sent Access-Request Id 18 from 0.0.0.0:56219 to 127.0.0.1:1812 length 73
User-Name = "bob"
User-Password = "testpw"
NAS-IP-Address = 172.17.0.2
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "testpw"
Sent Access-Request Id 18 from 0.0.0.0:56219 to 127.0.0.1:1812 length 73
User-Name = "bob"
User-Password = "testpw"
NAS-IP-Address = 172.17.0.2
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "testpw"
(0) No reply from server for ID 18 socket 3
Я знаю, что это обычно происходит, когда общий секрет неверен, но это то же самое, что указано в файлах конфигурации.
При отладке я получаю следующую ошибку.
Ignoring request to auth address * port 1812 bound to server default from unknown client 172.17.0.3 port 60699 proto udp Ready to process requests
ошибка выдается без ответа от сервера.
Файл клиенты.conf выглядит следующим образом;
client dockernet {
ipaddr = 172.17.0.0/16
secret = sharedSecret
}
и файл разрешать;
bob Cleartext-Password := "testpw"
файл По умолчанию;
server default {
listen {
type = auth
ipv4addr = *
# ipv6addr = *
# ipaddr = *
port = 5
# interface = eth0
# clients = per_socket_clients
recv_buff = 65536
limit {
max_connections = 16
lifetime = 0
idle_timeout = 30
}
}
authorize {
update request {
&Tmp-String-0 := "%{string:User-Password}"
&User-Password := "%{string:Tmp-String-0}"
}
# filter_username
# filter_password
preprocess
# operator-name
# cui
# auth_log
chap
mschap
digest
# wimax
# IPASS
suffix
# ntdomain
eap {
ok = return
# updated = return
}
#
# unix
# Read the 'users' file. In v3, this is located in
# raddb/mods-config/files/authorize
files
-sql
# smbpasswd
-ldap
# daily
expiration
logintime
pap
# Autz-Type Status-Server {
# }
}
authenticate {
ntlm_auth
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
mschap
digest
# pam
# Auth-Type LDAP {
# ldap
# }
#
# Allow EAP authentication.
eap
# Auth-Type eap {
# eap {
# handled = 1
# }
# if (handled && (Response-Packet-Type == Access-Challenge)) {
# attr_filter.access_challenge.post-auth
# handled # override the "updated" code from attr_filter
# }
# }
}
#
# Pre-accounting. Decide which accounting type to use.
#
preacct {
preprocess
#
# Merge Acct-[Input|Output]-Gigawords and Acct-[Input-Output]-Octets
# into a single 64bit counter Acct-[Input|Output]-Octets64.
#
# acct_counters64
# update request {
# &FreeRADIUS-Acct-Session-Start-Time = "%{expr: %l - %{%{Acct-Session-Time}:-0} - %{%{Acct-Delay-Time}:-0}}"
# }
acct_unique
# IPASS
suffix
# ntdomain
#
# Read the 'acct_users' file
files
}
Ожидается Доступ-Принять или Доступ-Отклонение. Но никакой реакции, при отладке и выдает в логах вышеописанную ошибку.
@ArranCudbard-Bell, я также не понимаю, почему он не отвечает и выдает эту ошибку. Как вы думаете, я сделал настройки правильно? Или есть что-то, чего я не вижу?
Я немного отредактировал свой вопрос, извините, я забыл упомянуть вывод radtest.
Если это кому-то поможет, моя проблема заключалась в неправильной настройке раздела client
, где }
был неуместен, объединяя два раздела вместе. Как ни странно, при запуске сервера не было ошибки, но он не прошел аутентификацию с указанной выше ошибкой.
Оно работает! после того, как я изменил файл клиенты.conf, чтобы иметь сетевую маску и нетipaddr = 172.17.0.0/16
client dockernet {
ipaddr = 172.17.0.0
secret = sharedSecret
netmask = 24
shortname = dockernet
}
Эта статья помогла мне https://linux.die.net/man/5/clients.conf
Ваш отладочный вывод не имеет смысла, вы отправляете пакеты на петлевой адрес, а FreeRADIUS жалуется на пакеты, приходящие с 172.17.0.3.