在前文已经介绍了如何搭建内容穿透服务,其中FRP作为一个高性能的反向代理应用,可以安全地将内网服务暴露到公网。然而,不正确的配置可能会引发安全风险。因此,本教程将详细阐述如何进行安全配置和合理使用FRP,以确保您的系统不会受到潜在的安全威胁。
这几个端口尽量不要使用默认端口,可以自定义修改成不常用的
必要的端口:
bind_port
(例如:7000):服务端监听的主端口,用于客户端连接。dashboard_port
(例如:7500):用于访问FRP的Web管理界面的端口。remote_port
(例如:6000):用于从外部访问内网服务的端口,每个穿透的服务都需一个唯一端口
服务端(FRPS)安全配置
配置文件
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。user
和pass
:为Dashboard设置复杂的用户名和密码。
防火墙/安全组设置:
- 确保只有必要的端口在云服务器的防火墙或安全组中开放。
客户端(FRPC)安全配置
配置文件
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_port
和dashboard_port
。
- 如果可能,限制只有特定的IP地址可以访问FRP服务端的
定期更新:
- 定期检查FRP的更新,以确保您使用的是最新版本,包含最新的安全修复和功能更新。
日志监控:
- 启用日志记录,以监控任何异常活动或连接尝试。
通过上述配置和措施,您可以确保FRP内网穿透的安全性,同时减少潜在的安全风险。