it says error in reading the file
usr/loca/freeradius/dictionary
could not able to open
/usr/local/radiusclien/dictionray.ser
so what may be the problem
typos in your paths?
I've tried ser+radius once, and it worked fine with me!
Here is the step-by-step tutorial how I did it!
regards,
klaus
19.4.2004: ser+radius installation on mandrake 10.0; klaus darilion
Note: This installation uses unstable ser, therefore the new
radiusclient library is necessary (radiusclient-ng).
ser 0.8.12 stable still requires the original radius library from:
http://www.mcs.de/~lf/radius
In this setup, radius is only used for authentication, not for accounting!
1. get ser:
mkdir ser
cd ser/
export CVSROOT=:pserver:anonymous@cvs.berlios.de:/cvsroot/ser
cvs login
cvs co sip_router
cd ..
2. get the new radiusclient
mkdir radiusclient-ng
cd radiusclient-ng/
export CVSROOT=:pserver:anonymous@cvs.berlios.de:/cvsroot/radiusclient-ng
cvs login
cvs co radiusclient-ng
cd ..
3. compile and install the radius client
cd radiusclient-ng/radiusclient-ng
./configure
./make
su
./make install
exit
cd ../..
4. compile and install ser
cd ser/sip_router
make all
make modules modules=modules/auth_radius
su
make install
cp modules/auth_radius/auth_radius.so /usr/local/lib/ser/modules/
cp rpm/ser.init /etc/init.d/ser
vi /etc/init.d/ser
-> change ser=/usr/sbin/ser to ser=/usr/local/sbin/ser, save and exit
-> check if ser starts!
/etc/init.d/ser start
ps -A
--> there should be plenty of ser processes
/etc/init.d/ser stop
ps -A
--> all the ser processes should be stopped
exit
cd ../..
5. configure radius client
--> if the radius server is on another machine, edit
/usr/local/etc/radiusclient/radiusclient.conf and set authserver and
acctserver to the proper machine.
--> configure the shared secret for your radius server in
/usr/local/etc/radiusclient/servers, e.g. I used: localhost testsecret
--> add ser's sip dictionary (dictionary.ser ) to the dictionary of the
radius client:
cd ser/sip_router
su
cp etc/dictionary.ser /usr/local/etc/radiusclient/
cat /usr/local/etc/radiusclient/dictionary.ser
>/usr/local/etc/radiusclient/dictionary
exit
cd ../..
6. installing a radius server, in this case freeradius
-->get freeradius
mkdir freeradius
cd freeradius
wget
ftp://ftp.freeradius.org/pub/radius/freeradius-0.9.3.tar.gz
tar -xvzf freeradius-0.9.3.tar.gz
cd freeradius-0.9.3
./configure
make
su
make install
vi /usr/local/etc/raddb/clients.conf
--> set the shared secret in clients.conf, in my case: testsecret for
127.0.0.1
vi /usr/local/etc/raddb/dictionary
--> add the following at the end the dictionary file: $INCLUDE
/usr/local/etc/radiusclient/dictionary.ser
vi /usr/local/etc/raddb/radiusd.conf
-->uncomment the word "digest" in the "authorize" and
"authenticate" section
vi /usr/local/etc/raddb/users
-->insert a testuser:
test Auth-Type := Digest, User-Password == "test"
Reply-Message = "Hello, test with digest"
7. test the radius server
--> start freeradus in debug mode
radiusd -X
--> create a file called "digest" with the following content (everything
in one line)
User-Name = "test", Digest-Response =
"631d6d73147add2f9e437f59bbc3aeb7", Digest-Realm = "testrealm",
Digest-Nonce = "1234abcd" , Digest-Method = "INVITE", Digest-URI =
"sip:5555551212@example.com", Digest-Algorithm = "MD5",
Digest-User-Name
= "test"
--> send the request to the server
radclient -f digest localhost auth testsecret
-->this sould return:
Received response ID 160, code 2, length = 45
Reply-Message = "Hello, test with digest"
8. reconfigure ser for radius things
--> RADIUS-related modules are not compiled by default. To compile them,
edit Makefile, find variable exclude_modules and you should see
"auth_radius", "group_radius", and "uri_radius" among
excluded modules.
Simply remove the three modules from the list.
-->If you need RADIUS accounting then edit also
sip_router/modules/acc/Makefile and uncomment lines containing:
DEFS+=-DRAD_ACC
LIBS=-L$(LOCALBASE)/lib -lradiusclient
9. add radiusclient library to library path
vi /etc/ld.so.conf
--> add /usr/local/lib to the conf file
ldconfig -v
10. edit ser.cfg
loadmodule "/usr/local/lib/ser/modules/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
-------------------------
modparam("auth_radius", "radius_config",
"/usr/local/etc/radiusclient/radiusclient.conf")
modparam("auth_radius", "service_type", 15)
-------------------------
# Uncomment this if you want to use digest authentication
if (!radius_www_authorize("")) {
www_challenge("", "0");
break;
};
11. run ser