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响应。Linux就该这么学

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值