Every dog has a blog!
[ start | index | login or register ]

Freeradius und MySQL , version #2 ( #1 < #3 > ... #4)

Created by derjohn. Last edited by derjohn, 6 years and 222 days ago.. Viewed 19,774 times. #2

Freeradius und MySQL

Ich habe jetzt einige Stunden damit zugebracht, einen FreeRADIUS mit MySQL sprechen zu lassen. Nicht, dass es dazu kein Modul gäbe, nein, apt-get install freeradius-mysql und alle Voraussetzungen sind da. Da Problem ist, dass das Befuellen der Datenbank nicht eindeutig geklaert ist. Wenn man dafrueber nachdenkt, ist das natuerlich auch klar, weil die einzufuellenden Attribute natuerlich vom Anwendungszweck abhängen: In meinem Projekt ging es um Dial-In User, die via L2TP von einer Cisco versuchen, sich zu authentifizieren. Ein meinem Spezialfall enthält der Benutzername auch noch ein # Zeichen. Sonfernzeichen werden fom FreeRADIUS MIME-encoded and die DB weitergegeben. Das führt dazu, dass der Benutzername nicht "user#suffix@domain", sondern als "user=23suffix@domain" repräsentiert wird. Das ist natürlich Quatsch und läßt sich wie folgt beheben (Thx, Lilalinux!): Man fügt das # (hash) in der sql.conf zu den safe-characters hinzu:

safe-characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /#"

Und zum Anlegen eines User habe ich das folgendes Bash-Script entwickelt (Da es nur ein Provisorium ist, fängt es u.a. keine Fehler ab)

#!/bin/sh # (c)= Andras John, GPL V2 DBNAME="radius" USERNAME=$1 PASS=$2 STATICIP=$3

echo "insert into usergroup(UserName, Groupname) VALUES('${USERNAME}','static');" | mysql ${DBNAME} echo "insert into usergroup(UserName, Groupname) VALUES('${USERNAME}','static');" | mysql ${DBNAME} echo "insert into radcheck(UserName,Attribute,Value,Op) VALUES('${USERNAME}','Password','${PASS}','==');" | mysql ${DBNAME}

# only once echo "insert into radgroupcheck(GroupName,Attribute,Value,Op) VALUES('static','Auth-Type','Local',':=');" | mysql ${DBNAME}

# echo "insert into radreply(UserName,Attribute,Value,Op) VALUES ('${USERNAME}','Service-Type','Framed',':=');" | mysql ${DBNAME} echo "insert into radreply(UserName,Attribute,Value,Op) VALUES ('${USERNAME}','Framed-Protocol','PPP',':=');" | mysql ${DBNAME} echo "insert into radreply(UserName,Attribute,Value,Op) VALUES ('${USERNAME}','Framed-Routing','None',':=');" | mysql ${DBNAME} echo "insert into radreply(UserName,Attribute,Value,Op) VALUES ('${USERNAME}','Framed-IP-Address','${STATICIP}',':=');" | mysql ${DBNAME}


< May 2013 >
SunMonTueWedThuFriSat
1234
567891011
12131415161718
19202122232425
262728293031


Logged in Users: (1)
… and 3 Guests.

Blogrolling:
>>Blog des Wahnsinns
>>Daniel Holbach's Blog
>>Matt Cutt's blog
>>Randgruppentourismus

XHTML 1.0 validated
CSS validated
RSS 2.0 validated
RSS Feed

Hinweise zur Formatierung
snipsnap-help.

Powered by
SnipSnap 1.0b1-snipit

Ads will be placed here!

dem john sein blog | Impressum: Andreas John, Frankfurter Str. 98a, 63067 Offenbach, E-Mail: himself@derjohn.de