raspberry pi 安装 freeradius 对 ddwrt 的路由器进行 802.1X EAP验证
时间:2016-6-25 | 作者:楼台听枫雨 | 分类:linux技术部 | 评论(0) | 浏览(6697) | uedbet最新网站: raspberrypi Raspbian radius 802.1X
硬件及环境:
raspberry pi安装了rasbian, IP地址设置为192.168.1.133
路由是941N v2,刷了ddwrt, IP地址设置为192.168.1.3
PC端安装的是win8, IP地址设置为192.168.1.10
安装过程:
一、用putty登陆到cubian安装freeradius及必要的软件
1、安装sudo apt-get install freeradius freeradius-mysql php5
2、安装sudo apt-get install mysql-server
安装过程中请自行配置root的密码
3、测试radius
radtest sqltest testpwd localhost 1812 testing123
若提示:
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=19, length=20
证明radius服务正常运行,只是拒绝访问,其中 sqltest testpwd 为错误的账号密码,testing123为默认的radius连接密码,可以在clients.conf文件中的secret更改。
4、添加允许访问radius的设备,在/etc/freeradius/clients.conf文件末尾处添加,一般是AP的地址,secret是AP连接radius的密码,由于后面需要用win8进行测试,所以我添加了client win8 这一项,请对应修改
#这是路由的
client router {
ipaddr = 192.168.1.3
secret = test
}
#这是win8下测试用的,测试成功后可以删除
client win8 {
ipaddr = 192.168.1.10
secret = test
}
二、启用MySQL模块支持
1、编辑/etc/freeradius/radiusd.conf,查找”sql.conf”,去掉#号,变成如下
$INCLUDE sql.conf
2、修改/etc/freeradius/sql.conf,设置MySQL数据库的端口,radius数据库的用户名密码等内容。取消如下一行的注释,使FreeRadius从数据库读取客户端信息,变成如下
readclients = yes
由于 /etc/freeradius/sql/mysql文件夹下的众多sql脚本文件用于构建FreeRadius的数据库,首先在admin.sql里修改数据库名称,用户名和密码等内容,这些内容必须 和/etc/freeradius/sql.conf的设置相同,我这里是使用默认的用户radius和默认radius名称的数据库,所以只用sed命令修改radius帐号的默认密码。
cd /etc/freeradius/sql/mysql
sudo sed -i 's/radpass/test/g' admin.sql
sudo sed -i 's/radpass/test/g' /etc/freeradius/sql.conf
其中admin.sql文件中radius的默认密码为radpass请把test修改为你需要的密码,此密码用作登陆mysql所用。 admin.sql修改后
sql.conf修改后
3、然后对/etc/freeradius/sites-enabled/default做如下修改
找到authorize {}模块,注释掉files,去掉sql前的#号
找到accounting {}模块,注释掉radutmp,注释掉去掉sql前面的#号。
找到session {}模块,注释掉radutmp,去掉sql前面的#号。
找到post-auth {}模块,去掉sql前的#号; 去掉Post-Auth-Type REJECT内的sql前的#号。
对/etc/freeradius/sites-enabled/inner-tunnel做如下修改
找到authorize {}模块,注释掉files,去掉sql前的#号。
找到session {}模块,注释掉radutmp,去掉sql前面的#号。
找到post-auth {}模块,去掉sql前的#号,去掉Post-Auth-Type REJECT内的sql前的#号。
4、创建radius数据库
首先修改/etc/freeradius/sql/mysql的权限,否则进不到里面创建数据表
sudo chmod 755 /etc/freeradius/sql/mysql
sudo chmod 644 /etc/freeradius/sql/mysql/*.sql
然后到cd /etc/freeradius/sql/mysql目录下
输入之前安装mysql时候的root的登录密码 mysql -u root -p
登陆后如此提示:
创建radius数据库,记得后面有个分号“;”
create database radius;
然后通过导入SQL初始化数据库,依次执行
use mysql;
source admin.sql;
use radius;
source cui.sql;
source ippool.sql;
source nas.sql;
source schema.sql;
source wimax.sql;
然后插入一条测试radius用的账户跟密码到radius数据库中
insert into radcheck (username,attribute,op,value) values ('user1','Password','==','password1');
重启radius服务
sudo /etc/init.d/freeradius restart
测试radius服务
radtest user1 password1 localhost 1812 testing123
若出现
Sending Access-Request of id 155 to 127.0.0.1 port 1812
User-Name = "user1"
User-Password = "password1"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=155, length=20
证明radius调用mysql数据库,刚才插入的user1 password1验证成功。如下图:
但是现在还有一个问题,就是认证是在本地上进行的,其他机器调用本机的radius能否正常呢?所以上面在/etc/freeradius/clients.conf文件中添加了两个允许访问的客户
端,一个是路由的,一个是win8的,所以现在先在win8下测试能否远程调用radius。所需工具NTRadPing,填写如下:
RADIUS Server/port: 192.168.1.133 1812
RADIUS Secret key : test
User-Name:user1
Password:password1
Request type:Authentication Request
解析:RADIUS Server/port填写radius服务器的IP地址及端口
RADIUS Secret key 就是填写在/etc/freeradius/clients.conf文件中client win8 的密码,这里是test
User-Name 就是插入到radius数据库表格radcheck的账号,这里是user1
Password 就是插入到radius数据库表格radcheck的密码,这里是password1
若出现response:Access-Accept证明远程访问radius成功,如下图所示:
三、配置刷了ddwrt的路由
1、先进入刷入ddwrt的路由,我这里路由的IP地址是192.168.1.3,先到“无线”->“基本设置”,我的设置图如下图所示,请自行修改“无线网络名(SSID)”,这里设置为AD。
2、然后选择“无线”>“无线安全”。
“Radius鉴权服务器地址”,输入 RADIUS 服务器的 IP 地址,这里就是cubietruck的IP地址。
“Radius鉴权服务器端口”文本框中,输入RADIUS的端口号。 默认端口号为 1812。
“Radius鉴权共享秘钥 ”文本框中,输入无线路由和 RADIUS 服务器之间的共享密码。 这里设置为test
“Radius Auth Backup Server Address ”这里输入 RADIUS 服务器的 IP 地址。
“Radius Auth Backup Server Port ”输入Radius服务器的端口。
“Radius Auth Backup Shared Secret ”输入无线路由和 RADIUS 服务器之间的共享密码。
“Radius计账”选用“禁用”。
按我理解,本来Radius Auth Back Up Server Address 、Radius Auth Backup Server Port 、Radius Auth Backup Shared Secret 这三项应该不用填的,因为这应该是“备份服务器”才需要设置的,但将IP设置为0.0.0.0会提示出错,所以直接填回cubietruck的Radius服务器IP地址、端口、秘钥了。
具体设置如下图所示:
四、配置手机,手提等无线客户端
Android手机,看到AD的信号了,并且提示通过802.1X进行保护,跟下面的WPA/WPA2保护不一样的
输入测试用的user1和password1后按连接就可以了
raspberry pi安装了rasbian, IP地址设置为192.168.1.133
路由是941N v2,刷了ddwrt, IP地址设置为192.168.1.3
PC端安装的是win8, IP地址设置为192.168.1.10
安装过程:
一、用putty登陆到cubian安装freeradius及必要的软件
1、安装sudo apt-get install freeradius freeradius-mysql php5
2、安装sudo apt-get install mysql-server
安装过程中请自行配置root的密码
3、测试radius
radtest sqltest testpwd localhost 1812 testing123
若提示:
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=19, length=20
证明radius服务正常运行,只是拒绝访问,其中 sqltest testpwd 为错误的账号密码,testing123为默认的radius连接密码,可以在clients.conf文件中的secret更改。
4、添加允许访问radius的设备,在/etc/freeradius/clients.conf文件末尾处添加,一般是AP的地址,secret是AP连接radius的密码,由于后面需要用win8进行测试,所以我添加了client win8 这一项,请对应修改
#这是路由的
client router {
ipaddr = 192.168.1.3
secret = test
}
#这是win8下测试用的,测试成功后可以删除
client win8 {
ipaddr = 192.168.1.10
secret = test
}
二、启用MySQL模块支持
1、编辑/etc/freeradius/radiusd.conf,查找”sql.conf”,去掉#号,变成如下
$INCLUDE sql.conf
2、修改/etc/freeradius/sql.conf,设置MySQL数据库的端口,radius数据库的用户名密码等内容。取消如下一行的注释,使FreeRadius从数据库读取客户端信息,变成如下
readclients = yes
由于 /etc/freeradius/sql/mysql文件夹下的众多sql脚本文件用于构建FreeRadius的数据库,首先在admin.sql里修改数据库名称,用户名和密码等内容,这些内容必须 和/etc/freeradius/sql.conf的设置相同,我这里是使用默认的用户radius和默认radius名称的数据库,所以只用sed命令修改radius帐号的默认密码。
cd /etc/freeradius/sql/mysql
sudo sed -i 's/radpass/test/g' admin.sql
sudo sed -i 's/radpass/test/g' /etc/freeradius/sql.conf
其中admin.sql文件中radius的默认密码为radpass请把test修改为你需要的密码,此密码用作登陆mysql所用。 admin.sql修改后
sql.conf修改后
3、然后对/etc/freeradius/sites-enabled/default做如下修改
找到authorize {}模块,注释掉files,去掉sql前的#号
找到accounting {}模块,注释掉radutmp,注释掉去掉sql前面的#号。
找到session {}模块,注释掉radutmp,去掉sql前面的#号。
找到post-auth {}模块,去掉sql前的#号; 去掉Post-Auth-Type REJECT内的sql前的#号。
对/etc/freeradius/sites-enabled/inner-tunnel做如下修改
找到authorize {}模块,注释掉files,去掉sql前的#号。
找到session {}模块,注释掉radutmp,去掉sql前面的#号。
找到post-auth {}模块,去掉sql前的#号,去掉Post-Auth-Type REJECT内的sql前的#号。
4、创建radius数据库
首先修改/etc/freeradius/sql/mysql的权限,否则进不到里面创建数据表
sudo chmod 755 /etc/freeradius/sql/mysql
sudo chmod 644 /etc/freeradius/sql/mysql/*.sql
然后到cd /etc/freeradius/sql/mysql目录下
输入之前安装mysql时候的root的登录密码 mysql -u root -p
登陆后如此提示:
创建radius数据库,记得后面有个分号“;”
create database radius;
然后通过导入SQL初始化数据库,依次执行
use mysql;
source admin.sql;
use radius;
source cui.sql;
source ippool.sql;
source nas.sql;
source schema.sql;
source wimax.sql;
然后插入一条测试radius用的账户跟密码到radius数据库中
insert into radcheck (username,attribute,op,value) values ('user1','Password','==','password1');
重启radius服务
sudo /etc/init.d/freeradius restart
测试radius服务
radtest user1 password1 localhost 1812 testing123
若出现
Sending Access-Request of id 155 to 127.0.0.1 port 1812
User-Name = "user1"
User-Password = "password1"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=155, length=20
证明radius调用mysql数据库,刚才插入的user1 password1验证成功。如下图:
但是现在还有一个问题,就是认证是在本地上进行的,其他机器调用本机的radius能否正常呢?所以上面在/etc/freeradius/clients.conf文件中添加了两个允许访问的客户
端,一个是路由的,一个是win8的,所以现在先在win8下测试能否远程调用radius。所需工具NTRadPing,填写如下:
RADIUS Server/port: 192.168.1.133 1812
RADIUS Secret key : test
User-Name:user1
Password:password1
Request type:Authentication Request
解析:RADIUS Server/port填写radius服务器的IP地址及端口
RADIUS Secret key 就是填写在/etc/freeradius/clients.conf文件中client win8 的密码,这里是test
User-Name 就是插入到radius数据库表格radcheck的账号,这里是user1
Password 就是插入到radius数据库表格radcheck的密码,这里是password1
若出现response:Access-Accept证明远程访问radius成功,如下图所示:
三、配置刷了ddwrt的路由
1、先进入刷入ddwrt的路由,我这里路由的IP地址是192.168.1.3,先到“无线”->“基本设置”,我的设置图如下图所示,请自行修改“无线网络名(SSID)”,这里设置为AD。
2、然后选择“无线”>“无线安全”。
将显示“无线安全”页面。
“安全模式”选择“WPA2 Enterprise Mixed”选项卡。
“Radius鉴权服务器地址”,输入 RADIUS 服务器的 IP 地址,这里就是cubietruck的IP地址。
“Radius鉴权服务器端口”文本框中,输入RADIUS的端口号。 默认端口号为 1812。
“Radius鉴权共享秘钥 ”文本框中,输入无线路由和 RADIUS 服务器之间的共享密码。 这里设置为test
“Radius Auth Backup Server Address ”这里输入 RADIUS 服务器的 IP 地址。
“Radius Auth Backup Server Port ”输入Radius服务器的端口。
“Radius Auth Backup Shared Secret ”输入无线路由和 RADIUS 服务器之间的共享密码。
“Radius计账”选用“禁用”。
按我理解,本来Radius Auth Back Up Server Address 、Radius Auth Backup Server Port 、Radius Auth Backup Shared Secret 这三项应该不用填的,因为这应该是“备份服务器”才需要设置的,但将IP设置为0.0.0.0会提示出错,所以直接填回cubietruck的Radius服务器IP地址、端口、秘钥了。
具体设置如下图所示:
四、配置手机,手提等无线客户端
Android手机,看到AD的信号了,并且提示通过802.1X进行保护,跟下面的WPA/WPA2保护不一样的
输入测试用的user1和password1后按连接就可以了
本文固定链接:http://www.fengtec.net/?post=31
本文由楼台听枫雨原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址
本文由楼台听枫雨原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址
个人资料
博主:楼台听枫雨
简介:欢迎来到听枫小站
发表评论: