一、使用插件:fp-multiuser
这款插件也是 FRP 项目作者开发的,专门用于支持 FRPS 多用户鉴权的服务端插件,其项目链接如下:https://github.com/gofrp/fp-multiuser
fp-multiuser 会以一个单独的进程运行,并接收 FRPS 发送过来的 HTTP 请求。
需要 FRP 版本 >= v0.31.0
二、使用方法:
1、将 fp-multiuser 下载到相关目录下,在该目录下创建一个文本文件,以 tokens
文件为例(文件名可自定义),内容为所有支持的用户名和 Token:
user1=123
user2=abc
每一个用户占一行,用户名和 token 之间以 =
号分隔。
2、运行 fp-multiuser,指定监听地址以及 Token 存储文件路径:
./fp-multiuser -l 127.0.0.1:7200 -f ./tokens
3、在 frps 的配置文件中注册插件,并启动:
# frps.ini
[common]
bind_port = 7000
[plugin.multiuser]
addr = 127.0.0.1:7200
path = /handler
ops = Login
4、在 frpc 中指定用户名,在 meta 中指定 Token,用户名以及 meta_token
的内容需要和之前创建的 Token 文件匹配:
user1 的配置:
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
user = user1
meta_token = 123
[ssh]
type = tcp
local_port = 22
remote_port = 6000
user2 的配置:
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
user = user2
meta_token = abc
[ssh]
type = tcp
local_port = 22
remote_port = 6000
5、启动 frps ,再运行 frpc ,此时即可食用不同用户和 Token 对其鉴权,例如在渗透测试中,可以使用临时 Token 去使用 socks 代理而不再担心唯一 Token 泄露了,使用完后可删除该 Token,较为完善的解决了 frps 唯一 Token 鉴权的问题。
注:食用该方法,原先的在 frps 中配置的 token 字段需删除或注释掉,否则仍优先 Token 鉴权,此方法将失效(应该未兼容~)。
三、设置开机自启动
为保证 fp-multiuser 服务能够开机自启动,故需要设置一下,写入的命令如下:
[root@tx3_yang ~]# vim /usr/lib/systemd/system/fp-multiuser.service
[Unit]
Description=A frp server plugin to support multiple users for frp
After=network.target
[Service]
Type=simple
User=nobody
Group=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/fp-multiuser/fp-multiuser -l 127.0.0.1:7200 -f ./tokens
WorkingDirectory=/usr/local/fp-multiuser/
[Install]
WantedBy=multi-user.target
[root@tx3_yang ~]#
其中,根据自己的设置可修改的字段如下:
-
ExecStart
:启动的命令参数。 -
User
:指定守护运行的用户,上述用户为nobody
用户 ;若fp-multiuser
服务指定的启动端口在 1024 以下,则必须为 root 用户,字段注释或删除则默认 root 守护程序运行。 -
Group
:指定守护运行的用户组。 -
WorkingDirectory
:指定插件所工作的目录,指定后可使用相对路径参数;否则,需使用绝对路径参数。
设置完后,先设置目录的用户与用户组权限:
chown -R nobody:nobody /usr/local/fp-multiuser
再 daemon-reload
重载配置一下:
systemctl daemon-reload
再设置开机自启:
systemctl enable fp-multiuser.service
启动 fp-multiuser
:
systemctl start fp-multiuser.service
其余操作命令如下:
# 停止运行
systemctl stop fp-multiuser.service
# 查看状态
systemctl status fp-multiuser.service
转自:FRPS设置多用户鉴权 - Is Yang's Blog (isisy.com)
- THE END -
最后修改:2024年2月21日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://lg5.top/1349.html