FreeRadius介绍使用和Java调用

举报
神的孩子在歌唱 发表于 2023/09/15 17:07:04 2023/09/15
【摘要】 前言这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱介绍FreeRADIUS是一个开源的RADIUS(Remote Authentication Dial-In User Service)服务器,用于提供网络认证和授权服务。它是一个高度可定制和可扩展的服务器,广泛用于企业、服务提供商和运营商等环境中。以下是FreeRADIUS的一些关键特点和功能:认证和授权:...


前言

这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱

介绍


FreeRADIUS是一个开源的RADIUS(Remote Authentication Dial-In User Service)服务器,用于提供网络认证和授权服务。它是一个高度可定制和可扩展的服务器,广泛用于企业、服务提供商和运营商等环境中。

以下是FreeRADIUS的一些关键特点和功能:

  1. 认证和授权:FreeRADIUS支持多种身份验证方法,包括EAP-TLS、EAP-TTLS、PEAP等。它可以与各种网络设备(如交换机、路由器、无线访问点等)集成,为用户提供安全的网络访问。

  2. 灵活的配置:FreeRADIUS具有灵活的配置选项,可以根据特定需求进行定制。管理员可以通过编辑配置文件来定义客户端、用户凭据、认证方法等。

  3. 日志和审计:FreeRADIUS提供详细的日志记录和审计功能,可用于跟踪用户认证和授权活动。这有助于监控和故障排除网络访问问题。

  4. 可扩展性:FreeRADIUS支持插件架构,允许开发人员编写自定义模块来扩展服务器的功能。这使得FreeRADIUS可以集成其他系统和服务,以满足特定需求。

  5. 高性能:FreeRADIUS经过优化以提供高性能和可靠性。它可以处理大量的认证请求,并支持负载平衡和故障转移,以确保服务的可用性。



FreeRADIUS 安装使用

环境

VMware15.5

centos7(radius服务器)

java代码 (radius客户端)


安装

yum install -y freeradius freeradius-utils freeradius-mysql //安装FreeRadius及组件

systemctl start radiusd.service //启动radius服务

systemctl enable radiusd.service //设置radius服务开机自启动

配置

修改允许接入的客户端 vim /etc/raddb/clients.conf

"0.0.0.0/0"表示允许任何IP地址的客户端连接到Radius服务器。

"secret"是用于客户端和Radius服务器之间进行身份验证的共享密码,这里设置为"testing123"。


image-20230915100429717


添加用户

配置 vim /etc/raddb/users

文件头添加 test Cleartext-Password := "123456"

注意要重启radius

image-20230915101553599



radiusd -X #调试模式运行

radius radtest test 1234567 192.168.1.47 1812 testing123 # 另开启一终端

以下结果就是请求成功了

image-20230915133615703


Java代码简单使用

依赖

        <dependency>
            <groupId>com.globalreachtech</groupId>
            <artifactId>tinyradius-netty</artifactId>
            <version>1.5.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.tinyradius/tinyradius -->
        <dependency>
            <groupId>org.tinyradius</groupId>
            <artifactId>tinyradius</artifactId>
            <version>1.1.3</version>
        </dependency>


代码



public class test {
    public static void main(String[] args) throws Exception {

        String host = "192.168.1.47";
        String shared = "testing123";
        String user = "test";
        String pass = "123456";
        RadiusClient rc = new RadiusClient(host, shared);
        rc.setSocketTimeout(3);
        rc.setAuthPort(1812);
        AccessRequest accessRequest = new AccessRequest(user, pass);
        accessRequest.setAuthProtocol("chap");
        try {
            RadiusPacket authenticate = rc.authenticate(accessRequest);

            if(authenticate.getPacketType() == 2){
                System.out.println("radius认证通过!");
            } else {
                System.out.println("radius认证不通过!");
            };
        } catch (RadiusException e) {
            e.printStackTrace();
        }
        rc.close();


    }
}

image-20230915134627106


作者:神的孩子都在歌唱 转载说明:务必注明来源,附带本人博客连接。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。