參考:https://www.dazhuanlan.com/2019/10/01/5d9313aa9a9a9/
https://www.cnblogs.com/keephappy/p/7681695.html
https://blog.csdn.net/qq_29056051/article/details/81066205
1,網絡拓撲
IP規划
明細 | IP | 備注 |
路由器WAN口 | 192.168.1.10 | |
路由器LAN口 | 192.168.0.0/24 | |
Radius服務器 | 192.168.1.100 |
2,環境查看
路由器型號為TP-Link TL-WAR1200L也可以使用其他支持WPA2認證的路由器
3,安裝FreeRadius
安裝
yum -y install freeradius freeradius-utils freeradius-mysql
啟動radius
systemctl start radiusd systemctl enable radiusd
日志在
/var/log/radius/radius.log
也可以使用調試模式啟動,直接在當前頁面顯示日志
radiusd -X
FreeRADIUS 3.0的測試
修改配置文件
vim /etc/raddb/users
把以下行的注釋取消
測試
[root@localhost ~]# radtest steve testing localhost 0 testing123
如果輸出"Access-Accept"
表示成功了,"Access-Reject"
表示失敗了。
使用radius -X啟動則在終端顯示以下代表認證成功
關閉radius測試會提示沒有響應
測試完把注釋在加上
4,安裝mariadb
安裝
yum install -y mariadb-server mariadb
啟動
systemctl start mariadb systemctl enable mariadb
運行安全設置
mysql_secure_installation
進入數據庫
[root@localhost ~]# mysql -uroot -p Enter password:
創建數據庫並授權
MariaDB [(none)]> create database radius; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on radius.* to radius@'localhost' identified by 'radius'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
5, 配置radius和數據庫
導入數據庫
[root@localhost ~]# mysql -uroot -p radius < /etc/raddb/mods-config/sql/main/mysql/schema.sql
為/etc/raddb/mods-enabled創建軟連接
[root@localhost ~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/
查看
[root@localhost ~]# ll /etc/raddb/mods-enabled/sql lrwxrwxrwx 1 root root 29 1月 19 14:09 /etc/raddb/mods-enabled/sql -> /etc/raddb/mods-available/sql
配置SQL模塊/ raddb/mods-available/ SQL,並更改數據庫連接參數,以適合環境
[root@localhost ~]# vim /etc/raddb/mods-available/sql
設置以下項,其余項保持默認
driver = "rlm_sql_mysql" dialect = "mysql" server = "localhost" port = 3306 login = "radius" password = "radius" radius_db = "radius" read_clients = yes
然后,將/etc/raddb/mods-enabled/sql所屬組更改為radiusd
#chgrp -h radiusd /etc/raddb/mods-enabled/sql
添加客戶端連接設置,添加允許所有用戶接入,如需特定ip訪問,ip可以自由更改。
[root@localhost ~]# vim /etc/raddb/clients.conf
本次設置所有client都可以接入,生產中可設置特定ip
密鑰為testing123為需要在路由器配置的密鑰
client all_client { ipaddr = 0.0.0.0/0 secret = testing123 require_message_authenticator = no }
建立組信息和用戶
建立組信息
登錄mysql創建
建立組信息
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local'); insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type',':=','Framed-User'); insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Address',':=','255.255.255.255'); insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask',':=','255.255.255.0');
查看
建立用戶信息:(在此新建用戶名為test,密碼為testpwd)
insert into radcheck (username,attribute,op,value) values ('test','Cleartext-Password',':=','testpwd');
查看
將用戶加入組中
insert into radusergroup (username,groupname) values ('test','user');
重啟radius測試
systemctl restart radiusd
測試
radtest test testpwd localhost 1812 testing123
6,路由器設置使用radius認證
設置如下
電腦連接wifi
手機 連接
注意:連接可以查看日志排錯
tail -f /var/log/radius/radius.log
調試期間可以使用調試模式啟動,顯示詳細日志信息
radiusd -X