FRPS设置多用户鉴权

LG5 2024-2-21 266 2/21

一、使用插件: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 -
Tag:

LG5

2月21日11:05

最后修改:2024年2月21日
0

非特殊说明,本博所有文章均为博主原创。