CentOS系统中TigerVNC安全设置指南
首先更新系统软件包并安装TigerVNC服务器及依赖:
sudo yum update -y
sudo yum install tigervnc-server tigervnc-common -y
避免使用root用户运行VNC,创建专用用户并设置强密码:
sudo useradd -m -s /bin/bash vncuser  # 创建用户(-m创建家目录,-s指定shell)
sudo passwd vncuser                  # 设置用户密码
复制系统默认服务模板,修改为用户专属配置:
sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
sudo vim /etc/systemd/system/vncserver@:1.service
修改以下内容(将<username>替换为专用用户名,如vncuser):
[Service]
Type=forking
User=<username>
Group=<username>
WorkingDirectory=/home/<username>
PIDFile=/home/<username>/.vnc/%H:%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i
Restart=on-success
RestartSec=15
保存后重新加载systemd并启动服务:
sudo systemctl daemon-reload
sudo systemctl start vncserver@:1.service
sudo systemctl enable vncserver@:1.service  # 开机自启
使用vncpasswd命令为专用用户设置加密密码(密码长度建议8位以上,包含大小写字母、数字和符号):
su - vncuser
vncpasswd
按照提示输入并确认密码,密码文件将保存在~/.vnc/passwd中。
若系统启用firewalld,开放VNC端口(默认端口为5900+显示号,如:1对应5901):
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload
避免VNC端口直接暴露在公网,通过SSH隧道加密流量:
在本地机器执行以下命令(将your_username替换为服务器用户名,your_server_ip替换为服务器IP):
ssh -L 5901:localhost:5901 your_username@your_server_ip
之后通过VNC客户端连接localhost:5901,流量将通过SSH隧道加密传输。
通过防火墙规则仅允许特定IP访问VNC端口(如允许192.168.1.100-192.168.1.101):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="5901" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.101" port protocol="tcp" port="5901" accept'
sudo firewall-cmd --reload
编辑/etc/tigervnc/vncserver.users文件,指定允许使用VNC的用户及对应端口(如:1对应vncuser):
echo ":1=vncuser" | sudo tee -a /etc/tigervnc/vncserver.users
确保只有列出的用户能启动VNC会话。
编辑/etc/tigervnc/vncserver-config-defaults文件,设置安全参数:
sudo vim /etc/tigervnc/vncserver-config-defaults
添加或修改以下内容:
session=gnome  # 指定桌面环境(如gnome、xfce)
securitytypes=vncauth  # 仅使用VNC认证
localhost=yes  # 初始仅允许本机访问(需通过SSH隧道转发)
保存后重启VNC服务使配置生效:
sudo systemctl restart vncserver@:1.service
sudo yum update -y更新系统和TigerVNC,修复安全漏洞。~/.vnc/*.log),查看连接记录(如IP地址、时间),排查异常访问。通过以上步骤,可显著提升CentOS系统中TigerVNC的安全性,防范未授权访问和数据泄露风险。