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.