家用内网服务器安全配置清单(宝塔 + go2rtc + EasyNVR)
适用场景:N5095/NUC 等家用NAS小主机,内网部署,尽量不直接公网暴露;宝塔面板管理、go2rtc做流转发、EasyNVR做视频直播/回放,兼顾监控稳定与安全。 原则:最小权限、隔离流服务、面板强防护、关闭不必要端口、日志留存。
一、系统层基础加固(Linux,Debian/Ubuntu/CentOS)
系统账号
禁用root直接SSH登录,新建普通管理账号,sudo提权
SSH密钥登录,关闭密码登录;SSH端口修改为非默认(不要22)
禁止空密码账号,定期清理闲置账号
防火墙(优先用系统firewalld/ufw,宝塔防火墙为辅)
默认策略:入站拒绝,仅放行需要的内网端口
只允许内网网段访问:
192.168.0.0/16、10.0.0.0/8不开放SSH、宝塔面板端口到公网;如需外网远程,改用WireGuard/ZeroTier内网隧道
系统更新 & 基础防护
开启自动安全更新,不盲目升级大版本(避免go2rtc/EasyNVR依赖崩)
安装fail2ban,防护SSH、宝塔登录暴力破解
关闭IPv6(不用就关,减少攻击面)
时间同步chrony,录像时间戳准确
二、宝塔面板安全配置【重点】
面板访问
修改面板端口,不要8888
绑定访问IP:只允许家里管理机IP访问宝塔
开启面板SSL,强制HTTPS;关闭HTTP访问面板
面板账号:强密码(大小写+数字+符号),开启两步验证
关闭面板API,不需要远程调用就禁用
软件与权限
PHP版本按需,不用的PHP版本全部卸载;禁用危险函数:
exec、system、passthru、shell_exec、phpinfo禁用面板里的“一键网站”“测试站点”,无业务站点全部删除
数据库:mysql/mariadb禁止外网访问,root强密码,不要用root给业务程序
定期:宝塔漏洞扫描、面板日志查看、自动备份(备份文件单独存放,不要放系统盘)
危险功能关闭
关闭宝塔的外网访问、域名解析、CDN相关不需要的插件
不安装来路不明插件;只装官方插件
关闭面板文件目录的公共读写权限
三、go2rtc 流转发安全配置
go2rtc本身轻量,默认无认证,最容易被扫流,重点防护
访问鉴权
开启
username/password基础认证,不要裸奔配置
api限制:仅内网IP访问api、websocket关闭不需要的输出协议:不需要RTSP就关掉RTSP服务,只保留需要的(WebRTC/HTTP-FLV)
流源权限
摄像头RTSP账号密码单独设置,不要和管理密码共用
go2rtc配置文件
go2rtc.yaml权限收紧:chmod 600,仅运行用户可读不要把摄像头原始RTSP地址直接暴露,全部走go2rtc转发
运行隔离
使用独立普通用户运行go2rtc,禁止root启动
不映射go2rtc端口到公网;如果必须外网看流,套隧道+鉴权,不要直接端口映射
日志开启,记录访问、拉流记录;日志轮转防止占满磁盘
示例yaml安全片段参考:
api: auth: username: admin password: 【强密码】 ipallow: - 192.168.1.0/24
四、EasyNVR 视频平台安全配置
平台账号
初始密码立刻修改;创建分级账号:管理员/查看员,普通账号不给配置权限
开启登录失败锁定(多次输错锁定IP)
服务端口与访问
修改EasyNVR默认端口(8080)
开启HTTPS,关闭HTTP;配置IP白名单,仅内网/隧道IP访问
关闭不需要的协议:不需要RTMP、HLS就禁用
播放流地址开启token鉴权,禁止固定永久播放地址
存储与权限
录像存储目录权限:程序用户读写,禁止其他用户写入
录像自动覆盖策略,防止磁盘打满;单独监控磁盘告警
关闭EasyNVR自带远程运维、云端对接(不上云就关掉)
升级:只从官方包更新,不要第三方修改包
五、Nginx反向代理整合(宝塔Nginx,推荐架构)
统一入口、SSL统一、集中IP白名单,不用每个服务单独开端口
规划:Nginx作为唯一入口,内网不同路径反向代理:
/bt → 宝塔(限制管理IP)
/rtc → go2rtc(带basic auth)
/nvr → EasyNVR(带登录鉴权+播放token)
Nginx配置:
配置IP白名单
关闭不必要的HTTP方法(OPTIONS、TRACE等)
加安全头:HSTS、X-Frame-Options、X-XSS-Protection
限制单IP连接数、请求频率,防CC
禁止直接访问后端服务端口(go2rtc、EasyNVR端口只监听127.0.0.1,不监听0.0.0.0,只能通过Nginx代理访问,这个非常关键)
六、Docker部署额外安全(如果你用1panel/宝塔docker装)
容器不要用
--privileged特权模式挂载目录最小化,不要挂载
/或者/etc容器网络:使用自定义bridge,不要用host网络(host网络隔离弱)
镜像只用官方镜像,固定版本tag,不用latest
容器资源限制:CPU、内存限额,防止进程跑满主机
七、网络侧(路由器)配套安全
路由器关闭WAN侧管理、远程管理
划分VLAN(可选进阶):监控摄像头单独VLAN,和管理主机隔离,摄像头不能访问宝塔/服务器管理端口
UPnP 关闭,防止设备自动向外映射端口
外网访问方案优先顺序: ✅ ZeroTier / WireGuard 隧道(推荐) ⚠️ 不推荐:直接端口映射宝塔、go2rtc、EasyNVR ❌ 禁止:裸端口直接暴露RTSP、go2rtc api
八、运维巡检清单(定期检查)
每周:宝塔登录日志、fail2ban封禁记录、go2rtc访问日志、EasyNVR登录日志
每周:磁盘使用率、录像存储状态
每月:密码轮换(面板、go2rtc、EasyNVR、摄像头)
备份:宝塔配置、go2rtc.yaml、EasyNVR数据库配置,异地备份
九、风险红线(绝对不要做)
❌ go2rtc无密码直接0.0.0.0监听公网
❌ EasyNVR弱密码+端口映射公网
❌ 宝塔8888默认端口直接映射外网
❌ 摄像头RTSP直接暴露公网,不经过转发鉴权
❌ 所有服务共用一套密码


