关键字 :freeradius wpa eap 参考: http://www.racksam.com/2017/03/02/centos7-install-freeradius
路由器设置为WPA/WPA2企业版模式之后,热点的security=SECURITY_EAP,设备再连接该wifi
要保证电脑或虚拟机与路由器同一个网段。 注意:若使用虚拟机,网络不要使用共享网络模式,要用桥架wifi模式(保证同一网段,使路由器能够访问到freeradius)
创建radius数据库,并设置用户名及密码: -u 用户名 。由于我们没有为数据库创建新用户,所以只能使用root账号登录, 密码就是上面设置的数据库密码
# mysql -u root -p创建一个名为radiusdb的数据库
MariaDB [(none)]> CREATE DATABASE radiusdb; MariaDB [(none)]> GRANT ALL ON radiusdb.* TO dbuser@localhost IDENTIFIED BY "mypass"; GRANT ALL ON radiusdb.* TO dbuser@'%' IDENTIFIED BY "mypass"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q Bye4.1 yum安装freeradius
yum -y install freeradius freeradius-utils freeradius-mysql4.2导入数据库schema schema.sql 里是创建数据表的sql语句
# mysql -u root -p radiusdb < /etc/raddb/mods-config/sql/main/mysql/schema.sql4.3 配置FreeRadius使用mysql 启用sql模块
# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/ # chgrp -h radiusd /etc/raddb/mods-enabled/sql4.4配置mysql数据库连接信息
vim /etc/raddb/mods-available/sql主要修改内容
sql { (...省略...) driver = "rlm_sql_mysql" dialect = "mysql" # Connection info: # server = "localhost" port = 3306 login = "dbuser" password = "mypass" radius_db = "radiusdb" (...省略...) }5.1添加FreeRadius启动服务
# systemctl enable radiusd.serviceFreeRadius服务必须在数据库正常启动后才能正常启动,否则会出错。为了确保这一点,按照以下方法强制指定radius服务启动的顺序
# vi /etc/systemd/system/multi-user.target.wants/radiusd.service [Unit] Description=FreeRADIUS high performance RADIUS server. After=syslog.target network.target After=mariadb.service5.2添加客户端连接设置 编辑/etc/raddb/clients.conf文件,为允许连接的客户端设置相应的共享秘钥 允许所有客户端连接, secret 是在访问freeradius时要使用的秘钥,设置路由器时要使用
client all_client { ipaddr = 0.0.0.0/0 secret = testing123 require_message_authenticator = no }5.3启动服务
# systemctl start radiusd.service # systemctl status radiusd.service5.4调试radius 若要看在终端看日志 如果radius启动出现问题,可以将radius进程停止,然后以参数-X的方式临时启动调试模式, 就可以在终端实时看日志
# pkill radius # radiusd -X连接mysql命令行mysql -p radiusdb,使用sql添加一条测试记录: 这条记录是使用手机、电脑等终端登录路由器的账号和密码
MariaDB [radiusdb]> INSERT INTO radcheck (id, username, attribute, op, value) VALUES (1,'testuser','Cleartext-Password',':=','mypass');使用radtest命令测试:radtest [用户名] [密码] [radius服务器host/ip] 0 [对客户端设置的共享秘钥],例如
# radtest testuser mypass localhost 0 testing123认证成功的输出如下
Sending Access-Request Id 143 from 0.0.0.0:51053 to 127.0.0.1:1812 User-Name = 'testuser' User-Password = 'mypass' NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Message-Authenticator = 0x00 Received Access-Accept Id 143 from 127.0.0.1:1812 to 127.0.0.1:51053 length 26 Acct-Interim-Interval = 60删除用户的指令:
MariaDB [radiusdb]> delete from radcheck where username = 'testuser';7.1配置防火墙,打开radius服务端口 如果已经打开firewalld的话,可以跳过该步骤, 若仅作为测试使用,可以关闭防火墙
systemctl enable firewalld 启用防火墙 systemctl start firewalld 打开防火墙 systemctl status firewalld 查看防火墙状态7.2添加radius服务
cat /usr/lib/firewalld/services/radius.xml firewall-cmd --add-service=radius --permanent firewall-cmd --reload firewall-cmd --list-services