在前文已经介绍了如何搭建内容穿透服务,其中FRP作为一个高性能的反向代理应用,可以安全地将内网服务暴露到公网。然而,不正确的配置可能会引发安全风险。因此,本教程将详细阐述如何进行安全配置和合理使用FRP,以确保您的系统不会受到潜在的安全威胁。

这几个端口尽量不要使用默认端口,可以自定义修改成不常用的

必要的端口

  • bind_port(例如:7000):服务端监听的主端口,用于客户端连接。
  • dashboard_port(例如:7500):用于访问FRP的Web管理界面的端口。
  • remote_port(例如:6000):用于从外部访问内网服务的端口,每个穿透的服务都需一个唯一端口

服务端(FRPS)安全配置

  1. 配置文件frps.toml: 在服务端配置文件中,您需要设置一些关键的安全参数。

    # 服务端通用配置
    [common]
    # 服务端监听端口
    bind_port = 7066
    
    # 身份验证配置
    [auth]
    # 认证方式设置为token
    method = "token"
    # 设置用于身份验证的token
    token = "123456"
    
    # Dashboard配置
    [webServer]
    # Dashboard监听地址,0.0.0.0表示监听所有IP
    addr = "0.0.0.0"
    # Dashboard监听端口
    port = 7500
    # Dashboard用户名
    user = "admin"
    # Dashboard密码
    password = "admin"

    安全提示:

    • token:确保使用强度高的Token。
    • userpass:为Dashboard设置复杂的用户名和密码。
  2. 防火墙/安全组设置

    • 确保只有必要的端口在云服务器的防火墙或安全组中开放。

客户端(FRPC)安全配置

  1. 配置文件frpc.toml: 在客户端配置文件中,您需要配置连接到服务端的参数,同时指定要穿透的内网服务。

    [common]
    server_addr = "114.132.188.51"  # 服务端(云服务器)的公网IP地址
    server_port = 7066  # 服务端的bind_port
    
    [auth]
    method = "token"  # 认证方式设置为token
    token = "123456"  # 此处的token值需要与服务端相同
    
    [ssh]
    type = "tcp"  # 代理类型
    local_ip = "127.0.0.1"  # 本地IP地址
    local_port = 8288  # 本地端口
    remote_port = 8077  # 远程端口,通过此端口在公网访问本地服务

    安全提示:

    • 确保token与服务端设置一致。
    • 对于每个服务,设置不同的remote_port以避免端口冲突。

额外的安全措施

  • 限制IP访问

    • 如果可能,限制只有特定的IP地址可以访问FRP服务端的bind_portdashboard_port
  • 定期更新

    • 定期检查FRP的更新,以确保您使用的是最新版本,包含最新的安全修复和功能更新。
  • 日志监控

    • 启用日志记录,以监控任何异常活动或连接尝试。

通过上述配置和措施,您可以确保FRP内网穿透的安全性,同时减少潜在的安全风险。

Last modification:December 9, 2023
如果觉得这篇技术文章对你有用,请随意赞赏