CentOS 下 TigerVNC 安全性保障
一 加密与认证
ssh -L 5901:localhost:5901 -N -f user@server,随后用 VNC Viewer 连接 localhost:1。此方式将 VNC 会话置于 SSH 加密通道内,避免明文暴露。为进一步提升安全,可在服务端将 VNC 仅监听本地:ExecStart=... -localhost,彻底阻止外部直连。openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vnc.key -out /etc/pki/tls/certs/vnc.crt),在 VNC 配置中启用 securitytypes=vncauth,tlsvnc 或 securitytypes=x509vnc 并指定证书路径;客户端导入 CA/服务器证书以校验证书。vncpasswd 设置强密码,定期更换,避免使用与系统账户相同的口令。二 网络与访问控制
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="YOUR_IP/32" port port="5901" protocol="tcp" accept' && firewall-cmd --reload。三 服务与系统加固
/etc/tigervnc/vncserver.users 做用户映射(如 :1=alice),在 /etc/tigervnc/vncserver-config-defaults 设置全局默认(如 session=gnome、securitytypes=vncauth,tlsvnc、localhost),并为相应用户启用并启动服务。sudo 提权;禁用 root 远程登录。四 快速安全配置示例
sudo dnf install tigervnc-server tigervnc-viewer -ysu - alice && vncpasswd && exit/etc/tigervnc/vncserver.users 写入::1=alice/etc/tigervnc/vncserver-config-defaults 写入:session=gnome、securitytypes=vncauth,tlsvnc、localhostsystemctl --user daemon-reload && systemctl --user enable --now vncserver@:1.service(系统级可用时亦可采用系统级单元)firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="YOUR_IP/32" port port="5901" protocol="tcp" accept' && firewall-cmd --reloadssh -L 5901:localhost:5901 -N -f alice@server 后,用 VNC Viewer 连接 localhost:1server:5901 并在客户端配置/导入证书五 常见误区与排查
~/.vnc 需正确上下文,必要时执行 restorecon -Rv ~/.vnc)。ss -ltnp | grep 5901)、证书路径与权限正确、systemd 单元状态正常、客户端与服务器的加密/认证方式匹配。