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

Posted on Tue 16 September 2008 in Linux • 3 min read

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]{style="color: #ff0000;"}: 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.