Freeradius und LDAP mit SSL

german

#1

Hallo,
wollte mal wissen was es zu beachten gibt, wenn ich einen Freeradius Server mit Ldap integriere. Dazu steht das Paket in Version 2.0.4 zur Verfügung, was aber ohne SSL daher kommt. Kann mir jemand einen Kurzabriss zur Installation bezüglich zum UCS geben?

Danke


#2

Hallo,
so ich habe mir mal eine Testumgebung in einer VM gebaut. Hier meine Vorgehensweise, dabei bin ich bis zu einen bestimmten Punkt gekommen, ab da bräuchte ich dann Hilfe.

Ausgehende Grundinstallation UCS 2.4

  1. Sourceliste anpassen, in der 2.4 waren die Entwicklerpakete nicht.
deb http://apt.univention.de/2.3/unmaintained/ 2.3-0/all/
deb http://apt.univention.de/2.3/unmaintained/ 2.3-0/amd64/
# wird nicht gebraucht, da ich die Sourcen direkt vom Hersteller hole
#deb-src ftp://ftp.de.debian.org/debian/ lenny main contrib non-free

Jetzt habe ich ein Verzeichnis erstellt, die notwendigen Entwicklerpakete installiert und die Sourcen geholt.

mkdir /usr/src/freeradius
cd /usr/src/freeradius

apt-get update
apt-get install fakeroot dpkg-dev libssl-dev quilt autotools-dev libtool libltdl3-dev libpam0g-dev libmysqlclient-dev libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libkrb5-dev libperl-dev libpcap-dev python-dev libsnmp-dev libpq-dev debhelper

wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.10.tar.gz

Jetzt die Sourcen entpackt und kompilieren

tar xfvz freeradius-server-2.1.10.tar.gz
cd freeradius-server-2.1.10/

fakeroot dpkg-buildpackage -b -uc
cd ..

Jetzt mit dpkg installieren, aber ohne den Utils. Das Paket “freeradius-utils_2.1.10+git_amd64.deb” brauchte eine Extrabehandlung.

dpkg -i libfreeradius2_2.1.10+git_amd64.deb freeradius_2.1.10+git_amd64.deb freeradius-common_2.1.10+git_all.deb freeradius-ldap_2.1.10+git_amd64.deb

mkdir -p /usr/src/freeradius/package/DEBIAN
paket=freeradius-utils_2.1.10+git_amd64.deb
dpkg-deb -e $paket /usr/src/freeradius/package/DEBIAN
dpkg-deb -x $paket /usr/src/freeradius/package/
rm /usr/src/freeradius/package/usr/bin/smbencrypt
dpkg-deb -b /usr/src/freeradius/package/ $paket
dpkg -i $paket

Damit ist die Installation abgeschlossen. Jetzt werden die Zertifikate erstellt. Aber vorher die Beispielzertifikate löschen.

/etc/init.d/freeradius stop
cd /etc/freeradius/certs/
rm -f *.pem *.der *.csr *.crt *.key *.p12 serial* index.txt*

Danach die *.cnf aus den sourcen holen und in das certs Verzeichnis kopieren.

cp -r /usr/src/freeradius/freeradius-server-2.1.10/raddb/certs/* /etc/freeradius/certs/

Jetzt die ca.cnf und die server.cnf nach den eigenen Wünschen anpassen und die Zertifikate erzeugen.

make all

Ein erster Start im Debugmode “freeradius -X” Das schaut gut aus… Das ca.der importieren.

Nur noch in der Datei “/etc/freeradius/users” einen Testuser anlegen.

"testuser"         Cleartext-Password := "password"

Den Client in der clients.conf angeben.

client Client-IP { secret = secret shortname = Testnetz }

Für Ldap die Dateien
/etc/freeradius/modules/ldap
/etc/freeradius/sites-available/default
/etc/freeradius/sites-available/inner-tunnel
anpassen, fertig.

[code]# /etc/freeradius/modules/ldap
ldap {
server = “localhost”
basedn = “dc=domain,dc=local”
filter = “(uid=%{%{Stripped-User-Name}:-%{User-Name}})”
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
tls {
start_tls = no
}
dictionary_mapping = ${confdir}/ldap.attrmap
password_attribute = userPassword
edir_account_policy_check = no
ldap_debug = 0x0028
}

/etc/freeradius/sites-available/default

authorize {
preprocess
chap
mschap
digest
suffix
eap {
ok = return
}
files
ldap
expiration
logintime
}
authenticate {
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
digest
unix
Auth-Type LDAP {
ldap
}
eap
}
preacct {
preprocess
acct_unique
suffix
files
}
accounting {
detail
unix
radutmp
exec
attr_filter.accounting_response
}
session {
radutmp
}
post-auth {
ldap
Post-Auth-Type REJECT {
attr_filter.access_reject
}
}
pre-proxy {
}
post-proxy {
eap
}

/etc/freeradius/sites-available/inner-tunnel

listen {
ipaddr = 127.0.0.1
port = 18120
type = auth
}
authorize {
chap
mschap
suffix
update control {
Proxy-To-Realm := LOCAL
}
eap {
ok = return
}
files
ldap
expiration
logintime
}
authenticate {
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
unix
Auth-Type LDAP {
ldap
}
eap
}
session {
radutmp
}
post-auth {
ldap
Post-Auth-Type REJECT {
attr_filter.access_reject
}
}
pre-proxy {
}
post-proxy {
eap
}
[/code]

Zum testen habe ich diesen Freeware Tool benutzt.

http://www.novell.com/coolsolutions/tools/14377.html

Testen: freeradius -X und mit den Tool eine Anfrage starten. Siehe da, Testuser geht mit Chap und LDAP nur ohne Chap. Nur ist das jetzt natürlich alles andere als sicher, genau da liegt mein Problem, wie bekomme ich es hin, das die Passwörter nicht im Klartext durch die Luft fliegen?

Aus diesen Artikel http://deployingradius.com/documents/configuration/active_directory.html werde ich irgendwie nicht schlau.

Vielleicht kann mir ja jemand helfen dabei.

Danke


#3

Guten Tag,

vielen Dank für Ihren ausführlichen Beitrag. Da es sich nicht um eine direkte UCS-Anforderung handelt, wir aber die Kombination UCS / Freeradius bereits projektspezifisch umgesetzt haben, setzen Sie sich doch bitte direkt mit uns in Verbindung: +49 421 2223-20

Mit freundlichen Grüßen
Janis Meybohm