FRP进阶篇之安全认证

目录

一、前言

二、通信加密

1、概述

2、使用

三、BasicAuth 鉴权

1、概述

2、使用

2.1、客户端配置

2.2、启动客户端

2.3、效果验证

四、TLS双向身份验证

1、概述

2、使用

2.1、生成证书

2.2、服务端配置

2.3、客户端配置


一、前言

通过上次的《FRP入门篇》相信大家对于FRP有了初步的了解,在该文章提到FRP可以将内网服务以安全方式中转暴露到公网中,那么本文重点讲述在FRP中对安全的通信加密、BasicAuth
鉴权、TLS双向身份验证的操作使用。

对于FRP不太熟悉的同学可以先查看下入门篇文章:

FRP之入门篇_不甘于平凡的溃败的博客-
CSDN博客_frps

二、通信加密

1、概述

将 frpc 与 frps 之间的通信内容加密传输,将会有效防止传输内容被截取。加密算法采用
aes-128-cfb,如果传输的报文长度较长,通过对传输内容进行压缩,可以有效减小 frpc 与 frps
之间的网络流量,加快流量转发速度,但是会额外消耗一些 CPU 资源。

2、使用

在frpc.ini配置文件中添加 use_encryption = true 即可

三、BasicAuth 鉴权

1、概述

BasicAuth 鉴权是通过在FRP客户对于代理的服务配置访问账号/密码,只有输入对应的账号/密码后才能进行访问,从而在一定程度上提高系统的安全性。

2、使用

2.1、客户端配置

在frpc.ini配置文件中添加以下配置:

# BasicAuth 鉴权配置
#登录用户名
http_user = 
#登录密码
http_pwd = 

比如:

2.2、启动客户端

执行启动命令:frpc -c frpc.ini

2.3、效果验证

如下图所示, 在浏览器上访问 http://my.frp:8888/,会弹出登录界面,只有输入上面配置的账号和密码后才能访问。

四、TLS双向身份验证

1、概述

通过配置use_encryption 能有效防止流量内容在通信过程中被盗取,但是无法判断对方的身份是否合法,存在被中间人攻击的威胁。为此 frp 支持
frpc 和 frps 之间的流量通过 TLS 协议加密,并且支持客户端或服务端单向验证,双向验证等功能。

单向验证则是frpc 需要额外加载 TLS 配置,frps 需要额外加载 ca 证书。frps 通过 ca 证书单向验证 frpc 的身份。这就要求
frpc 的 client.crt 对 frps 的 ca 是合法的。

双向验证则是frpc 和 frps 通过本地 ca 证书去验证对方的身份。理论上 frpc 和 frps 的 ca 证书可以不同,只要能验证对方身份即可。

本文则以双向验证的方式进行讲解。

2、使用

2.1、生成证书

本文采用OpenSSL
生成证书进行演示,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。

准备工作

创建证书目录,并将系统默认配置文件复制到当前目录下

#创建证书目录
mkdir cert
#进入该目录中
cd cert
#将系统默认配置文件复制过来
cp /etc/pki/tls/openssl.cnf ./my-openssl.cnf

如下图所示:

生成CA证书

**** 执行以下命令生成CA证书。

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -subj "/CN=example.ca.com" -days 5000 -out ca.crt

如下图所示:

生成FRPS证书

命令如下

openssl genrsa -out server.key 2048

openssl req -new -sha256 -key server.key \
    -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=server.com" \
    -reqexts SAN \
    -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:localhost,IP:192.168.1.114,DNS:my.frp")) \
    -out server.csr

openssl x509 -req -days 365 -sha256 \
	-in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
	-extfile <(printf "subjectAltName=DNS:localhost,IP:192.168.1.114,DNS:my.frp") \
	-out server.crt

注意这里IP或域名替换为自己的。

生成FRPC证书

命令如下

openssl genrsa -out client.key 2048
openssl req -new -sha256 -key client.key \
    -subj "/C=XX/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=client.com" \
    -reqexts SAN \
    -config <(cat my-openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:my.frp")) \
    -out client.csr

openssl x509 -req -days 365 -sha256 \
    -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
	-extfile <(printf "subjectAltName=DNS:my.frp") \
	-out client.crt

注意这里IP或域名替换为自己的。

2.2、服务端配置

在服务端的frps.ini文件中添加以下证书对应配置内容,如:

2.3、客户端配置

在客户端的frpc.ini文件中添加以下证书对应配置内容,如:

然后将服务端和客户端进行重启即可。

到此,现在快到凌晨1点我准备休息了,FRP进阶篇之安全认证介绍将告于段落,更多精彩技术分享请浏览本人博客:

不甘于平凡的溃败的博客_CSDN博客-java,数据库,IDEA领域博主

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值