freeradius在ubuntu-16.04.3 + mysql安装与配置

转:https://blog.csdn.net/z6878277w/article/details/78929641

一、安装mysql相关软件

因为要将认证信息存在数据库mysql中,所以必须安装如下三个软件。

sudo apt-get install mysql-server
sudo apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev

二、安装freeradius

首先从官网下载安装文件freeradius-server-3.0.15.tar.gz

tar zxvf freeradius-server-3.0.15.tar.gz            解压
cd freeradius-server-3.0.15                         进入解压后目录
./configure     
make
make install        
安装完成后,配置文件的位置在/usr/local/etc/raddb。如果make install遇到权限问题,请用sudo make install。

注:./configure这个命令会检查操作系统中缺哪些必要的库,并将缺哪些库告诉你,你百度一下安装即可。ubuntu-16.04.3中需要安装如下库,你最好在./configure 之前就安装好,否则还得运行一遍./configure

sudo apt-get  install libtalloc-dev
sudo apt-get  install libssl-dev
sudo apt-get  install openssl

三、配置freeradius

cd /usr/local/etc/raddb    
vim radiusd.conf  
在大概56%的地方,找到allow_vulnerable_openssl = no,修改成allow_vulnerable_openssl = yes  

注:普通用户是无权进入这个目录的,请切换到root用户或者sudo chmod 755 -R/usr/local/etc/raddb 。因为freeradius毕竟存的是用户认证信息,普通用户无权进入很正常。

四、freeradius说明

调试的命令为:sudo radiusd -X 这个命令启动radiusd服务器
测试命令是 sudo radtest Username Password ServerIP Port Secret
测试的时候,开两个终端,一个终端是服务器,另一个是客户机
如果出现Access Accept的提示,测试成功!

五、测试用户认证信息在文件中的情况

freeradius默认不是用数据库的,用户认证信息保存在/usr/local/etc/raddb/users文件中。

vim users  找到如下位置,将注释去掉即可
 steve  Cleartext-Password := "testing"
       Service-Type = Framed-User,
       Framed-Protocol = PPP,
       Framed-IP-Address = 172.16.3.33,
       Framed-IP-Netmask = 255.255.255.0,
       Framed-Routing = Broadcast-Listen,
       Framed-Filter-Id = "std.ppp",
       Framed-MTU = 1500,
       Framed-Compression = Van-Jacobsen-TCP-IP
这里将注释去掉相当于在users增加了一条认证信息。用户名为steve 密码为testing 
,其他信息属于附带信息。当然你也可以自己在users里添加其他用户信息。比如:
dog  Cleartext-Password := "cat"

开启认证服务器

sudo radiusd -X   修改users后,必须重启才能生效

测试认证信息

radtest steve testing localhost 1812 testing123     这里是测试,出现Access Accept表示认证通过

六、测试认证信息保存在mysql的情况

创建数据库,输入命令mysql -u root -p要求输入密码时,直接回车即可。

mysql>create database radius;
mysql>grant all on radius.* to radius@localhost identified by "radpass"; 
mysql>exit;
上面命令中,对数据库增加了一个用户,用户名为radius@localhost,密码为radpass。
/usr/local/etc/raddb/mods-available/sql用这个用户名和密码访问数据库。

导入表结构命令:

mysql -u root radius </usr/local/etc/raddb/mods-config/sql/main/mysql/schema.sql
这样你就不能自己去创建相关的表了

插入一条认证信息

mysql>use radius;
mysql>insert into radcheck (username,attribute,value,op) values('test','Cleartext-Password','test123',':='); 

修改 FreeRADIUS中的mysql 认证配置,表示支持sql

cd /usr/local/etc/raddb/mods-enabled/
ln -s ../mods-available/sql
你在/usr/local/etc/raddb/mods-enabled/目录下执行ls -l  你就会发现这个目录下的文件都是对/usr/local/etc/raddb/mods-available/软连接。

修改 FreeRADIUS中的mysql 配置文件

vim /usr/local/etc/raddb/mods-available/sql
1. 找到driver = “rlm_sql_null”这一行,修改为driver = “rlm_sql_mysql”。
2. 找到dialect = "sqlite",改为dialect = "mysql"

2. 找到如下位置,取消注释,
    server = "localhost"
    port = 3306
    login = "radius"
    password = "radpass"

这个就是freeradius访问数据库都用户名和密码。
这也是我们为什么执行在mysql 下执行
grant all on radius.* to radius@localhost identified by "radpass";的原因   

测试认证信息

sudo radiusd -X  修改配置后必须重启才能生效
radtest test test123 localhost 1812 testing123     这里是测试,出现Access Accept表示认证通过

问题 :

1、找不到dictionary.microsoft  

https://github.com/talkincode/ToughRADIUS-GitBook/blob/master/toughradius/pptp.md

INCLUDE /etc/radiusclient/dictionary.microsoft

如果目录中没有这个字典,可以下载:https://raw.githubusercontent.com/talkincode/ToughVPN/master/radius/dictionary/dictionary.microsoft   

2、pptp没开启log

如何开启pptpd默认日志记录功能。

修改/etc/ppp/options.pptpd中的nologfd,默认没有开,把nologfd注释掉,然后添加 logfile /var/log/pptpd.log(将nologfd改成这个,在这个日志里就可以查到pptpd日志)

猜你喜欢

转载自blog.csdn.net/ypbsyy/article/details/81386326