Ubuntu VNC 安全加固清单
一 加密与访问控制
ssh -L 5901:localhost:5901 user@server,随后客户端连接 localhost:5901。这样 VNC 流量走 SSH 通道,避免明文暴露;如需对外网访问,仅开放 SSH 端口 22,不要直接开放 VNC 端口。对于 GNOME 自带屏幕共享(Vino),若与 SSH 配合,可保持 Vino 的加密设置,无需为兼容性关闭加密。若必须禁用 Vino 加密(不推荐),仅在受控网络中用 gsettings set org.gnome.Vino require-encryption false 并做好其他加密与访问控制。sudo ufw allow from 192.168.1.0/24 to any port 5901/tcp;如通过 SSH 隧道访问,可进一步收紧为仅本地访问 VNC(见下一节)。vncserver :1 -localhost yes(或配置文件 localhost=yes),仅通过 SSH 隧道转发;必要时再按需放开到内网网段。vncserver -list 查看,用 vncserver -kill :N 关闭,减少攻击面。二 认证与会话安全
vncpasswd 设置足够复杂的 VNC 口令;如业务需要“仅查看”账户,可设置 view-only 口令,但务必限制用途与账户范围,避免成为持久化后门入口。alwaysshared=yes 的滥用,按需开启;对多人协作场景采用“一人一实例 + 审批”的方式,减少横向移动与信息泄露风险。~/.vnc/xstartup 中确保正确的桌面会话启动,避免因会话异常导致的安全暴露窗口。三 系统与网络加固
sudo ufw allow 22/tcp;若未使用隧道,再按需放行 5901/tcp 且仅限内网;使用隧道时建议保持 VNC 仅本地监听,不直接对公网开放。User=<username>,避免图形会话以高权限运行。sudo apt update && sudo apt upgrade,及时修补 VNC 服务器、桌面环境、SSH 等组件漏洞。四 监控与审计
~/.vnc/*.log)与进程列表(vncserver -list、ss -tulnp | grep vnc),核对异常会话、来源 IP、失败登录迹象;必要时对接 auditd 或集中日志平台。ServerAliveInterval),减少 NAT/防火墙导致的会话中断与异常重连带来的安全风险。五 加固配置示例
sudo apt install tigervnc-standalone-server;vncpasswd。~/.vnc/config,设置 localhost=yes。vncserver :1 -geometry 1920x1080 -depth 24 -localhost yes。ssh -L 5901:localhost:5901 user@server,客户端连接 localhost:5901。5901/tcp 到受控网段。/etc/systemd/system/vncserver@:1.service,关键项 User=vncuser、ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24 -localhost yes,随后 systemctl daemon-reload && systemctl enable --now vncserver@:1.service。sudo apt install vino;在“设置–共享–屏幕共享”开启并设置密码。require-encryption=true;若因客户端兼容必须关闭,仅在受控网络中执行 gsettings set org.gnome.Vino require-encryption false,并配合 SSH 隧道 或 UFW 限制来源 IP。