架設freeradius+mysql 的radius伺服器

galdys發表於2011-08-22
 有人居然說設定radius要賣錢,本人花了幾天的功夫,看了些資料,終於成功設定radius伺服器,現在貼出來和大家分享。

  筆者用的平臺是RedHat Linux 7.2

  1. 安裝mysql

  本人用的是光碟上的RPM包
  rpm -ivh mysql-3.23.41.1.i386.rpm
  rpm -ivh mysql-devel-3.23.41.1.i386.rpm
  rpm -ivh mysql-server-3.23.41.1.i386.rpm
  rpm -ivh mysqlclient9-3.23.22-6.i386.rpm

  啟動mysql服務
  service mysqld start

  更改mysql的root密碼(注意:mysql的root 和系統的root是2個不用的概念)
  mysql -uroot -p

  建立radius資料庫
  creat database radius;
  use mysql;
  update user set password=password('你的密碼') where user='root';

  允許遠端機器連線
  update user set host='%' where user='root';

  退出及重新啟動mysql
  quit
  service mysqld restart

  2. 安裝openSSL

  本人也是用的光碟上的RPM包
  rpm -ivh openssl095a-0.9.5a-11.i386.rpm
  rpm -ivh openssl096-0.9.6-6.i386.rpm

  3. 安裝freeradius

  從www.freeradius.org上下載freeraidus,本文版本是0.8.1
  編譯和安裝
  tar xvfz freeradius.tar.gz
  cd xvfz freeradius-0.8.1
  ./configure
  make
  make install

  建立mysql的資料庫raius的表
  cd src/modules/rlm_sql/drivers/rlm_sql_mysql
  mysql -uroot -p密碼 radius < db_mysql.sql

  更改freeradius的設定
  cd /usr/local/etc/raddb
  更改radiusd.conf,讓其支援sql (如下面所說)

  authorize {
  preprocess
  chap
  mschap
  suffix
  sql
  }
  accouting {
  ….
  sql
  …
  }

  更改sql.conf
  server="localhost"
  login="root"
  password="mysql的root的密碼"
  radius_db="radius"

  更改 client.conf支援所用的NAS具體可以看該文件,要注意的是secret是NAS和radius伺服器的共享密碼
資料庫加入測試賬號

  加入組

  mysql -uroot -p密碼 radius
  insert into radgroupreply (groupname,attribute,op,values) values ('user','Auth-Type',':=','Local');
  insert into radgroupreply (groupname,attribute,op,values) values ('user','Service-Type',':=','Framed-User');
  insert into radgroupreply (groupname,attribute,op,values) values ('user','Framed-IP-Address',':=','255.255.255.254');
  insert into radgroupreply (groupname,attribute,op,values) values ('user','Framed-IP-Netmask',':=','255.255.255.0');

  加入測試賬號
  insert into radcheck (username,attribute,op,value) values ('test','User-Password',':=','test')

  測試賬號加入組
  insert into usergroup (username,groupname) values ('test','user');

  4. 啟動radius服務、測試賬號

  啟動到debug模式

  radiusd -X

  有時候會報找不到檔案rlm_sql_mysql這個時候只要把庫檔案加入系統搜尋的目錄裡

  比如:

  cp /usr/local/lib/* /usr/lib

  測試賬號

  radtest test teset localhost 0 testing123

  如果能看到radius的應答,恭喜伺服器設定成功了。

相關文章