1. 程式人生 > 實用技巧 >CentOS搭建radius伺服器用於wifi的wap2認證

CentOS搭建radius伺服器用於wifi的wap2認證

  參考: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