FRP指定访问者:安全地暴露内网服务
之前的教程介绍的frp内网穿透都是用tcp模式,但是tcp模式是直接把端口映射到公网IP上,很容易被扫描爆破,还是存在一定的风险。我们可以使用frp提供的stcp模式来避免公开暴露端口,要求访问者运行一个frpc作为身份认证和流量转发,把访问者的本地端口绑定到内网frpc服务上。不再公开映射内网frpc端口。
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
客户端
stcp模式的演示,我们以windwos的远程桌面为例,不再直接把内网的3389端口映射到公网IP的端口上,而是通过stcp模式指定验明访问者分身,要求访问者也要运行一个frpc 作为身份校验和流量转发,让访问者把访问本地端口的请求转发到内网机器上。
frpc两端分为外部的"控制端"和处于内网中的"受控端"。
内网中的受控端
编辑 fcpc.ini文件。服务[secret_rdp]之类的服务名可以自定义,见名知意即可。
- [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
外网的控制端
编辑 fcpc.ini文件,服务[secret_rdp_visitor]之类的服务名可以自定义,见名知意即可。
- [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的在线面板里也看到stcp中多了"secret_rdp"一个连接记录。
控制端启动连接成功时候也会看到frps出现连接成功的日志。
连接
我们在外网的控制端,打开远程桌面,输入 "127.0.0.1:30009",就弹出来连接成功的登录界面了。
原 理
原理两端的frpc启用的stcp模式,就是要求frps把一端访问本地端口的请求转发到内网frpc上。一端必须运行访客模式的frpc表明身份才会被frps接纳再转发。
受控端
受控端中frpc读取配置文件:
- “[secret_rdp]”服务中,以stcp模式,把受控端本地的3389转发到服务器的frps上。
- "sk"是stcp服务的密钥,两端中的"sk"不匹配,不允许连接。
- 受控端stcp模式以服务名的形式匹配连接,不需要映射到公网IP的端口上,也不再需要remote_port。
控制端
控制端中的配置:
- [secret_rdp_visitor]服务中"role=visitor"是指定本机的服务为"访问者"的stcp模式。
- "sk"密钥。
- 控制端中的“server_name”是指定要连接的受控端中的服务名,服务名必须一致。
- 控制端中的"bind_addr"必须是"127.0.0.1"。
- "bind_addr"、"bind_port"这两个参数是指本地端口。指定本地frpc转发要通过frps和受控端连接的本地端口。
流程
- frps启动,等着两端frpc的stcp转发配置。
- 受控端frpc启动,读取配置文件:服务名[secret_rdp]以stcp模式,将本地的3389端口转发到frps上。
- 控制端frpc读取配置文件和frps连接。
- 控制端frpc的配置指定"sk"密钥和受控端的服务名,要frps把控制端本地30009端口和受控端的[secret_rdp]服务绑定上。
- 控制端访问本地30009端口,请求被控制端的frpc转发到frps上,frps再将请求转发到受控端的[secret_rdp]服务上。
- 受控端[secret_rdp]服务里也指明了受控端哪些端口来接收响应处理被转发请求。
总 结
流程就是frpc指定使用stcp访问,要求校验正确身份和服务名后再转发请求,把访问者的本地端口绑定到内网frpc服务上。不再直接把受控端映射到公网端口上,也避免因为公开被扫描爆破的风险,安全的暴露内网服务。表达水平有限,多读几遍上面的步骤,就是把访问者的本地端口绑定到内网frpc服务上,这一套下来比较绕,如果没看懂,照着教程操作一次,理解了就豁然开朗了。同时也可以着手实践安全的暴露其他的内网服务,比如MySQL:指定控制端访问本地的33306端口的响应由内网的MySQL 3306响应。
本文转载自微信公众号「Linux就该这么学」,可以通过以下二维码关注。转载本文请联系Linux就该这么学公众号。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
手机浏览器の地址栏欺骗攻击卷土重来:为恶意攻击敞开大门
网络安全研究员披露了一个地址栏欺骗漏洞的细节,该漏洞会影响多个移动浏览器,如苹果Safari和Opera Touch,为鱼叉式网络钓鱼攻击和传播恶意软件打开大门。 真-伪地址栏图形真假难辨 其他受影响的浏览器包括UC网页、Yandex浏览器,Bolt浏览器和RITS浏览器。 这些漏洞是巴基斯坦安全研究员Rafay Baloch在2020年夏天发现的,并在8月由Baloch和网络安全公司Rapid7联合报告,之后浏览器厂商在过去几周内解决了这些问题。 UCWeb和Bolt浏览器还没有打补丁,Opera Mini预计将在2020年11月11日进行补丁。 这个问题的起因是在任意一个网站中使用恶意的可执行JavaScript代码,使浏览器在页面加载时跳转到攻击者选择的另一个地址时,被迫更新地址栏。 原始PoC演示 Rafay Baloch在技术分析中说:“这个漏洞是由于Safari保存了URL的地址栏,当通过任意端口请求时,设置的间隔函数会每2毫秒重新加载bing.com:8080,因此用户无法识别从原始URL到欺骗URL的再次被迫定向。” “默认情况下,除非通过光标设置焦点,否则Safari...
- 下一篇
部分Mac用户称系统将打印机驱动程序视为恶意软件
一些用户报告,由于 macOS 错误声称某些软件为恶意软件,他们无法再使用惠普打印机进行打印,或者无法继续通过专用应用来播放 Amazon Music。 外媒 AppleInsider 称,用户报告他们的 Mac 突然弹出通知,称其 HP 打印机包含恶意软件:“会损坏您的计算机”。另外,其他用户报告的是同一问题,但与 Amazon Music 应用有关。 在这种情况下,尝试启动应用程序或仅使用 Mac,都会弹出一个对话框。报告说有恶意软件会损坏 Mac,并建议用户将特定文件移至废纸篓。 该文件可以是 Amazon Music 应用程序,也可以是称为 HP Device Monitoring.framework 的惠普打印机驱动程序。用户可以选择单击“移至废纸篓”或“取消”,但是如果他们选择取消,该错误将继续发生。 该问题似乎与苹果的 XProtect 有关。这是 Gatekeeper 的一部分,后者是苹果的安全系统,用于识别和禁用 Mac 上的恶意软件。报告的大多数案例来自普通消费者,但现在可以确认该问题也正在影响企业中的打印机。 受影响的大多数用户报告说,他们最近尚未更新 HP 打印...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6