freeRADIUS & DD-WRT mit WPA2 und Windows XP – Teil 1

RADIUS steht für Remote Authentication Dial In User Service und ist ein Triple-A-System (Authentifizierung, Autorisierung und Accounting). Dieser kann in einem WLAN als zentraler Authentifizierungsserver dienen und genau dass will ich hier mal dokumentieren !

Da ich Zertifikate einsetzen wollte, musste ich erstmal den freeRADIUS unter Debian Etch/Lenny neubauen, weil dieser keine TLS/EAP/PEAP/TTLS Unterstützung hat (Lizenzproblem mit OpenSSL). Also kurz hier vorbeischauen und Links unter “Source package” auf  *.dsc, *.orig und *.diff klicken um den Quellcode runterzuladen. Diesen nach /usr/src kopieren und mit dpkg-source -x *.dsc entpacken. Mit ls -l prüfen ob folgender Ordner existiert “freeradius-2.0.4+dfsg” (Stand 11.09.08)

Nun kann man mit einem Blick in debian/control sehen, welche Bedingungen erfüllt sein müssen (Build-Depends), damit wir das Paket neubauen können.

autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, libpcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev

Zu diesen Paketen kommt noch die libssl-dev, die wir jetzt gleich an das Zeilenende von Build-Depends mit anhängen. Die Zeile sollte dann wie folgt aussehen

Source: freeradius
Build-Depends: autotools-dev, debhelper (>= 6.0.7), libgdbm-dev, libiodbc2-dev, libkrb5-dev, libldap2-dev, libltdl3-dev, libmysqlclient15-dev | libmysqlclient-dev, libpam0g-dev, libpcap-dev, libperl-dev, libpq-dev, libsasl2-dev, libsnmp-dev, libtool, python-dev, libssl-dev
Section: net

Jetzt einfach ein
aptitude install autotools-dev debhelper libgdbm-dev libiodbc2-dev libkrb5-dev libldap2-dev libltdl3-dev libmysqlclient-dev libpam0g-dev libpcap-dev libperl-dev libpq-dev libsasl2-dev libsnmp-dev libtool python-dev libssl-dev

Wenn das fertig ist, können wir uns mit einem Editor die debian/rules ansehen. Hier alles von –without-rlm_eap-* zu –with-rlm_eap-* ändern außer –without-rlm_eap_tnc, dass bitte so lassen. Das gleiche auch mit –without-openssl und wahlweise noch mit –without-rlm_otp. Dann suchen wir noch in der rules den Anschnitt

for pkg in ${pkgs} ; do \
if dh_shlibdeps -p $$pkg -- -O 2>/dev/null | grep -q libssl; then \
echo "$$pkg links to openssl" ;\
exit 1 ;\
fi ;\
done

und entfernen diesen. Wenn ich/wir nichts vergessen haben dann in das freeradius Verzeichnis wechseln und dpkg-buildpackage -uc -us ausführen. Am Ende sollten wir in /usr/src unsere Pakete vorfinden. Hier meine Liste

root@build debian [0] # ll
insgesamt 2,2M
-rw-r--r-- 1 root root 201K 2008-09-09 10:11 freeradius-common_2.0.4+dfsg-7_all.deb
-rw-r--r-- 1 root root 927K 2008-09-09 10:11 freeradius-dbg_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 127K 2008-09-09 10:11 freeradius-dialupadmin_2.0.4+dfsg-7_all.deb
-rw-r--r-- 1 root root 17K 2008-09-09 10:11 freeradius-iodbc_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 18K 2008-09-09 10:11 freeradius-krb5_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 34K 2008-09-09 10:11 freeradius-ldap_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 25K 2008-09-09 10:11 freeradius-mysql_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 36K 2008-09-09 10:11 freeradius-postgresql_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 72K 2008-09-09 10:11 freeradius-utils_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 5,3K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7.diff.gz
-rw-r--r-- 1 root root 1,3K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7.dsc
-rw-r--r-- 1 root root 5,3K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7_i386.changes
-rw-r--r-- 1 root root 503K 2008-09-09 10:11 freeradius_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 102K 2008-09-09 10:11 libfreeradius-dev_2.0.4+dfsg-7_i386.deb
-rw-r--r-- 1 root root 84K 2008-09-09 10:11 libfreeradius2_2.0.4+dfsg-7_i386.deb

Diese könnte etwas anderst aussehen, sollte aber bis auf die Versionsnummer vollständig sein.

Für die Schreibfaulen: Hier die diff für die Änderungen. Runterladen, dann in das freeradius Verzeichnis wechseln und dann patch -p1 -i ../pfad/zur/diff ausführen.

Nun können wir unseren RADIUS Server mit

dpkg -i freeradius_2.0.4+dfsg-6_i386.deb freeradius-common_2.0.4+dfsg-6_all.deb freeradius-utils_2.0.4+dfsg-6_i386.deb libfreeradius2_2.0.4+dfsg-6_i386.deb

einfach installieren. Bei Fragen, Fehlern oder Anmerkungen einfach einen Kommentar da lassen.

Auf die Pakete kann auch via
deb ftp://zion.devnu11.net/ unstable main contrib non-free
zugegriffen werden.

6 thoughts on “freeRADIUS & DD-WRT mit WPA2 und Windows XP – Teil 1”

  1. Hallo!

    Wollte das gerade mal probieren und folgendes kam beim compilieren:

    dpkg-buildpackage -uc -us
    dpkg-buildpackage: source package is freeradius
    dpkg-buildpackage: source version is 2.0.4+dfsg-6
    dpkg-buildpackage: source changed by Stephen Gran
    dpkg-buildpackage: host architecture i386
    dpkg-buildpackage: source version without epoch 2.0.4+dfsg-6
    dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 6.0.7)
    dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.
    dpkg-buildpackage: (Use -d flag to override.)

    und übergehe ich beim kompilieren mit -d kommt irgendwann:

    /bin/bash: dh_lintian: command not found
    make[1]: *** [binary-common] Fehler 127
    make[1]: Leaving directory `/usr/src/freeradius-2.0.4+dfsg’
    make: *** [binary-arch] Fehler 2

  2. Ausführliche Antwort ist per Mail raus !

    Für die anderen: Bitte alles installieren was in den Build-Depends (debian/control) steht !

  3. Zum schnellen Herunterladen von Sources und Dependencies eignet sich apt-get:

    apt-get build-dep freeradius
    apt-get source freeradius

  4. Hey rmichel,

    dein howto ist sehr gut beschrieben, nach dem neubauen des freeradius paketes erhalte ich folgende Fehlermeldung wenn ich direkt im Anschluss freeradius -X ausführe.

    Wenn ich das Paket als Sourcedatei runterlade und nichts editiere kommt dieses nicht.

    rlm_eap: SSL error error:00000000:lib(0):func(0):reason(0)
    rlm_eap_tls: Error loading randomness
    rlm_eap: Failed to initialize type tls
    /etc/freeradius/eap.conf[17]: Instantiation failed for module “eap”
    /etc/freeradius/sites-enabled/inner-tunnel[223]: Failed to find module “eap”
    /etc/freeradius/sites-enabled/inner-tunnel[176]: Errors parsing authenticate
    section.

    Ich hoffe du kannst mir schnell weiterhelfen!!!

    MFG

  5. Hallo,

    beim packen (dpkg-buildpackage -uc -us ausführen) der dateien erhalte ich am Ende immer eine Fehlermeldung hier die letzten Zeilen:

    checking for EAPIKEv2/connector.h… no
    configure: error: set –without-rlm_eap_ikev2 to disable it explicitly
    configure: error: /bin/sh ´./configure´ failed for ./types/rlm_eap_ikev2
    configure: error: ./configure failed for src/modules/rlm_eap
    make: *** [config.status] Fheler 1
    dpkg-buildpackage: Fehlschlag: debian/rules build gab Fehler-Exitstatus 2

    *ikev2 habe ich ebenfalls auf without in rules gelassen.
    Was kann ich tun?
    Brauche dringend Hilfe da ich Anfang nächste Woche für eine Cisco 1250 eine Radius-Authentifizierung brauchen

    mfg

    bjassi

Leave a Reply

Your email address will not be published. Required fields are marked *