FRP中安全地暴露内网服务

释放双眼,带上耳机,听听看~!
导读 之前的教程介绍的frp内网穿透都是用tcp模式,但是tcp模式是直接把端口映射到公网IP上,很容易被扫描爆破,还是存在一定的风险。我们可以使用frp提供的stcp模式来避免公开暴露端口,同时访问者也要运行一个frpc作为接收转发。

FRP中安全地暴露内网服务frp中安全地暴露内网服务

frps配置

作为中间传输的服务器端的frps配置不变,参考之前的文章,如果想自定义其他端口,注意两端的frpc中的”server_addr”、”server_port”参数要一致。frps用到的端口要在防火墙或者宝塔那里放行。

frps.ini
[common]
bind_port = 7100
token=12310086N

dashboard_port = 7501
dashboard_user = admin
dashboard_pwd = admin123

FRP中安全地暴露内网服务frp中安全地暴露内网服务

客户端

我们以windwos的远程桌面为例。frpc两端分为外部的控制端和处于内网中的受控端。

内网中的受控端

编辑 fcpc.ini文件

[common]
server_addr = 服务器ip
server_port = 7100
token=12310086N

[secret_rdp]
type = stcp
sk = 58iD9tfjPIHQ0dWO
local_ip = 127.0.0.1
local_port = 3389
frpc.exe -c frpc.ini

FRP中安全地暴露内网服务frp中安全地暴露内网服务

外网的控制端

编辑 fcpc.ini文件

[common]
server_addr = 服务器ip
server_port = 7100
token=12310086N

[secret_rdp_visitor]
type = stcp
role = visitor
sk = 58iD9tfjPIHQ0dWO
server_name = secret_rdp
bind_addr = 127.0.0.1
bind_port = 30009
frpc.exe -c frpc.ini

FRP中安全地暴露内网服务frp中安全地暴露内网服务

牵线成功

两端都显示连接成功了,frp的在线面板里也看到stcp中多了”secret_rdp”一个连接记录。
FRP中安全地暴露内网服务frp中安全地暴露内网服务
FRP中安全地暴露内网服务frp中安全地暴露内网服务

连接

我们在外网的控制端,打开远程桌面,输入 “127.0.0.1:30009”,就弹出来连接成功的登录界面了。
FRP中安全地暴露内网服务frp中安全地暴露内网服务

原理

原理就是两端的frpc启用stcp模式,控制端frpc把本地端口绑定到受控端的frp服务上,访问本地端口的请求就被穿透到内网frpc里。控制端必须运行访客模式的frpc表明身份才会被frps接纳再穿透。

服务名

[secret_rdp] [secret_rdp_visitor] 之类的服务名可以自定义,见名知意即可。

受控端

受控端中frpc读取配置文件:

  1. “[secret_rdp]”服务中,以stcp模式,把受控端本地的3389转发到服务器的frps上。
  2. “sk”是连接到“[secret_rdp]”服务的密钥,连接请求中的”sk”不一致,不允许连接。
  3. sctp模式以服务名的形式匹配,不再需要remote_port。
控制端
  1. 控制端中的配置: [secret_rdp_visitor]服务中”role=visitor”是指定本机的服务为访问者的stcp模式。
  2. “sk”密钥。
  3. 控制端中的“server_name”指的是是受控端中服务名,两者要连接的话,服务名必须一致
  4. 控制端中的”bind_addr”必须是”127.0.0.1″,”bind_addr”、”bind_port”这两个参数是指本地端口。
流程

控制端frpc读取配置文件和frps连接,控制端frpc的[secret_rdp_visitor]服务配置指定了,要frps把本地30009端口和受控端的“[secret_rdp]”服务绑定上。控制端访问本地30009端口的请求被frpc转发到frps上,frps再将请求转发到受控端的“server_name”服务上。“server_name”服务里也指明了受控端哪些端口响应。

总结

流程就是frpc指定控制端使用stcp访问,不再直接把受控端直接映射到公网端口上,也避免被扫描爆破的风险,安全的暴露内网服务。这一套下来比较绕,如果没看懂,照着教程操作一次,多读几遍上面的步骤,理解了就豁然开朗了。同时也可以着手实践安全的暴露其他的内网服务,比如MySQL:指定控制端访问,本地的33306端口的响应由内网的MySQL 3306响应。

本文原创地址:https://www.linuxprobe.com/frp-security.html

人已赞赏
技术杂烩转载

AnyDesk使用FRP自建远程桌面连接

2020-9-27 11:28:35

技术杂烩

利用 ELK系统分析Nginx日志并对数据进行可视化展示

2020-9-27 15:12:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索