Skip to content

为 FRP 接入实现基于时间的一次性验证码安全防护,只有通过验证的 IP 才可以访问 FRP 后端的服务

License

Notifications You must be signed in to change notification settings

csg2008/frp-otp

Repository files navigation

frp-otp

一个专注于访问安全的 frp server manager plugin 实现,掌控每个接入的请求,让你对进入 frps 的连接了如指掌,不再裸奔。

快速启动

下载地址

目录介绍

* frp-otp
└─── system
|    |      frp-otp.service                  # linux 系统服务配置文件
|
│           frp-otp                          # frp-otp 程序
|           frp-otp.json                     # 通知插件配置文件

打印帮助信息

./frp-otp --h

命令行启动

./frp-otp start -c ./frp-otp.json

配置介绍

frps

frps.ini 增加以下配置

[plugin.frp-otp]
addr = 127.0.0.1:9000                              // frp-otp 地址
path = /handler                                    // frp-otp url, 固定配置
ops = Login,NewProxy,NewWorkConn,NewUserConn       // 通知的操作

黑白名单配置(IP 过滤)

先判断白名单,后判断黑名单。如果启用强制验证,未配置到通道列表的代理默认是会拒绝访问的,否则不对请求的 IP 进行验证。已经配置到通道列表中的代理,如果运行模式配置为 bypass 默认是充许所有请求,不对请求的 IP 进行验证

{
    "enforce": true,                               // 是否启用强制验证
    "domain": "zero.frp",                          // 域名
    "BindAddress": "127.0.0.1:9000",               // 服务监听的地址
    "Channel": {                                   // 通道配置
        "dev.web": {                               // 通道名
            "status": true,                        // 通道状态
            "model": "bypass",                     // 运行模式
            "secret": "...",                       // OTP 密钥,可以通过 key 命令生成
            "issuer": "dev.web",                   // OTP 组织名
            "notify": null,                        // 访问消息通知,未实现
            "blacklist": [                         // 黑名单
              "127.0.0.1"
            ],
            "whitelist": [                         // 白名单
              "127.0.0.1"
            ],
        },
        ......
    }
}

接入IP控制

如果通道配置为非 bypass 模式,就需要先访问 http://服务器IP/knock 输入对应基于时间的验证码,只在验证码通过了五分钟内才可以访问代理的通道。一个IP一分钟内只能输错五次验证码,否则就会被加入自动屏蔽的黑名单,且每尝试一次自动延长屏蔽时间五分钟,直到屏蔽时间到期。

About

为 FRP 接入实现基于时间的一次性验证码安全防护,只有通过验证的 IP 才可以访问 FRP 后端的服务

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published