maanee9
08.05.14, 20:43
Bevor ich das Problem erkläre umreise ich erstmal die Aufgabenstellung bis ich zu meinem eigentlichen Problem komme.
Wir haben seit einigen Jahren eine Aventail Client VPN Lösung im Einsatz mit 2-Factor Authentifzierung, die zunächst über einen propritären Radiusserver mit Tokens (Secovid) authentifziert und anschließend noch über Active Directory.
Nun wollen wir den alten Radius Server ablösen und mit einer neuen Lösung (LinOTP Community Edition) die auch Softtokens, SMS Tokens etc unterstützt, ersetzen. Die neue Lösung bietet keinen eigenen Radius Server sondern eine Webschnittstelle und einen Perlmodul für die Radiusanbindung mit freeRadius. Die Radius-Authentifzierung mit dem neuen System läuft bereits problemlos und soll in nächster Zeit die alte Lösung ablösen.
Um den Übergang auf die neuen Tokens fließend zu gestalten soll der neue Radius Server, wenn er eine Anfrage bekommt die er ablehnen würde zusätzlich noch beim alten Radius anfragen und bei erfolgreicher Anfrage ein Accept zurückliefern.
-- --
Kurzfassung der Problemstellung :
Der neue Radiusserver authentifziert aktuell alle Benutzer über ein Perl-Modul und soll zukünftig wenn die erste Authentifzierung abgelehnt wird einen anderen Radiusserver Anfragen ob dieser die Anfrage aktzepiert.
Was/Wie müsste ich die aktuelle Konfiguration ändern damit das so funktioniert wie ich mir das vorstelle ?
Hier sind meine 3 Konfigs:
- radiusd.conf
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius
radacctdir = ${logdir}/radacct
name = freeradius
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/${name}
db_dir = ${raddbdir}
libdir = /usr/lib/freeradius
pidfile = ${run_dir}/${name}.pid
user = freerad
group = freerad
max_request_time = 30
cleanup_delay = 5
max_requests = 1024
hostname_lookups = no
allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
log {
destination = files
file = ${logdir}/radius.log
syslog_facility = daemon
stripped_names = no
auth = no
auth_badpass = no
auth_goodpass = no
}
checkrad = ${sbindir}/checkrad
security {
max_attributes = 200
reject_delay = 1
status_server = yes
}
proxy_requests = yes
$INCLUDE proxy.conf
$INCLUDE clients.conf
thread pool {
start_servers = 5
max_servers = 32
min_spare_servers = 3
max_spare_servers = 10
max_requests_per_server = 300
}
modules {
$INCLUDE ${confdir}/modules/
$INCLUDE eap.conf
# $INCLUDE sql.conf
# $INCLUDE sql/mysql/counter.conf
# $INCLUDE sqlippool.conf
}
instantiate {
exec
expr
expiration
logintime
}
$INCLUDE policy.conf
$INCLUDE sites-enabled/
- proxy.conf
proxy server {
default_fallback = no
}
- linotp (aktive Site)
server default {
listen {
ipaddr = *
port = 1645
type = auth
}
authorize {
update control {
Auth-Type := perl
}
perl
}
authenticate {
perl
}
}
Wir haben seit einigen Jahren eine Aventail Client VPN Lösung im Einsatz mit 2-Factor Authentifzierung, die zunächst über einen propritären Radiusserver mit Tokens (Secovid) authentifziert und anschließend noch über Active Directory.
Nun wollen wir den alten Radius Server ablösen und mit einer neuen Lösung (LinOTP Community Edition) die auch Softtokens, SMS Tokens etc unterstützt, ersetzen. Die neue Lösung bietet keinen eigenen Radius Server sondern eine Webschnittstelle und einen Perlmodul für die Radiusanbindung mit freeRadius. Die Radius-Authentifzierung mit dem neuen System läuft bereits problemlos und soll in nächster Zeit die alte Lösung ablösen.
Um den Übergang auf die neuen Tokens fließend zu gestalten soll der neue Radius Server, wenn er eine Anfrage bekommt die er ablehnen würde zusätzlich noch beim alten Radius anfragen und bei erfolgreicher Anfrage ein Accept zurückliefern.
-- --
Kurzfassung der Problemstellung :
Der neue Radiusserver authentifziert aktuell alle Benutzer über ein Perl-Modul und soll zukünftig wenn die erste Authentifzierung abgelehnt wird einen anderen Radiusserver Anfragen ob dieser die Anfrage aktzepiert.
Was/Wie müsste ich die aktuelle Konfiguration ändern damit das so funktioniert wie ich mir das vorstelle ?
Hier sind meine 3 Konfigs:
- radiusd.conf
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius
radacctdir = ${logdir}/radacct
name = freeradius
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/${name}
db_dir = ${raddbdir}
libdir = /usr/lib/freeradius
pidfile = ${run_dir}/${name}.pid
user = freerad
group = freerad
max_request_time = 30
cleanup_delay = 5
max_requests = 1024
hostname_lookups = no
allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
log {
destination = files
file = ${logdir}/radius.log
syslog_facility = daemon
stripped_names = no
auth = no
auth_badpass = no
auth_goodpass = no
}
checkrad = ${sbindir}/checkrad
security {
max_attributes = 200
reject_delay = 1
status_server = yes
}
proxy_requests = yes
$INCLUDE proxy.conf
$INCLUDE clients.conf
thread pool {
start_servers = 5
max_servers = 32
min_spare_servers = 3
max_spare_servers = 10
max_requests_per_server = 300
}
modules {
$INCLUDE ${confdir}/modules/
$INCLUDE eap.conf
# $INCLUDE sql.conf
# $INCLUDE sql/mysql/counter.conf
# $INCLUDE sqlippool.conf
}
instantiate {
exec
expr
expiration
logintime
}
$INCLUDE policy.conf
$INCLUDE sites-enabled/
- proxy.conf
proxy server {
default_fallback = no
}
- linotp (aktive Site)
server default {
listen {
ipaddr = *
port = 1645
type = auth
}
authorize {
update control {
Auth-Type := perl
}
perl
}
authenticate {
perl
}
}