别让外网访问成了安全隐患
很多人用内网穿透是为了方便远程办公,比如在家连公司服务器,或者在外查看家里的监控。但便利的背后,一旦边界防护没做好,就等于把家门钥匙挂在了网上。
边界安全防护,说白了就是控制谁可以进你的网络、能访问什么资源。尤其是在使用内网穿透工具时,公网暴露面变大,更得小心应对。
最小权限原则必须落地
别一开通穿透就放行所有端口。比如你只是想远程桌面连接家里电脑,那就只开放 3389 端口,而不是把整个局域网都暴露出去。很多攻击都是从扫描开放端口开始的,端口开得越多,风险越高。
在 frp 或 nps 这类工具配置中,明确指定允许的服务和端口:
[common]
server_addr = x.x.x.x
server_port = 7000
[rdp]
type = tcp
local_ip = 192.168.1.100
local_port = 3389
remote_port = 6000这样外部只能通过公网 IP 的 6000 端口访问内网的远程桌面,其他服务不受影响。
身份验证不能凑合
默认密码、弱口令、无验证机制是常见问题。有人图省事,把 frp 的 token 设成 123456,甚至留空。这就像给小偷写了个“欢迎光临”的牌子。
务必设置强 token,并启用双向认证。以 frp 为例,在服务端和客户端都加上:
token = YourStrongTokenHere!2024
authentication_method = token同时考虑结合 TLS 加密通信,防止中间人窃听。
限制访问来源 IP
如果你的使用场景固定,比如只从办公室或家里远程接入,完全可以限制访问来源。通过防火墙规则或云主机的安全组,只允许可信 IP 连接穿透服务端口(如 7000)。
比如你在阿里云部署服务端,可以在安全组里设置:
- 允许源 IP 为 112.80.xxx.xxx(你的家庭宽带出口)访问端口 7000
- 拒绝其他所有来源
这样一来,即使别人知道你开了穿透服务,也连不上。
日志监控不可少
别等到出事才查记录。定期看下穿透服务的日志,有没有异常连接尝试?有没有陌生 IP 频繁发起请求?
frp 支持日志输出到文件,建议开启:
log_file = /var/log/frps.log
log_level = info
log_max_days = 7配合简单的脚本分析登录频率,发现异常自动告警,比如发个微信通知自己。
定期更新与漏洞修复
老版本的穿透工具可能有已知漏洞。比如早前 frp 某些版本存在认证绕过问题,不升级就会被利用。别嫌麻烦,看到新版本发布,评估后尽快更新。
可以把更新任务写进每月待办清单,像换路由器密码一样养成习惯。
多一层代理,多一分安心
对于敏感服务,比如数据库或管理后台,不要直接做穿透。可以通过跳板机方式,先 SSH 登录到一台受控的边缘主机,再从那里访问内部资源。
也可以结合 Nginx 做反向代理 + 认证,把 Web 类服务保护起来:
location /admin {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:8080;
}这样即使链接泄露,没有账号密码也进不去。
安全不是一劳永逸的事,而是持续调整的过程。每次新增一个穿透规则,都问一句:这个有必要对外暴露吗?能不能再收窄一点?多想一步,就能少一个隐患。