Ubuntu下TigerVNC安全设置操作指南
首先更新系统软件包并安装TigerVNC核心组件,确保服务正常运行:
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common -y
使用vncpasswd命令创建专用VNC密码(与系统用户密码分离),密码需满足复杂度要求(至少8位,包含大小写字母、数字和特殊字符):
vncpasswd
输入密码并确认,密码将加密保存至~/.vnc/passwd文件。避免使用默认密码(如“123456”“password”)。
通过SSH反向隧道将VNC流量加密,无需修改VNC配置:
username和your_server_ip):ssh -L 5901:localhost:5901 username@your_server_ip
localhost:5901,输入VNC密码即可。所有流量将通过SSH加密通道传输。编辑~/.vnc/xstartup文件,添加TLS加密参数(需提前生成证书,适用于高安全需求场景):
vncserver :1 -localhost no -rfbauth ~/.vnc/passwd -SecurityTypes TLSVnc,X509Vnc
注意:TLS加密需配置证书颁发机构(CA)和密钥文件,步骤较复杂,需参考TigerVNC官方文档。
使用ufw(Ubuntu默认防火墙)仅允许必要端口(VNC默认端口为5901,对应显示号:1)的入站流量:
sudo ufw allow 5901/tcp
sudo ufw enable # 启用防火墙
sudo ufw status # 验证规则(应显示“5901/tcp ALLOW”)
若需更严格的IP限制,可通过iptables仅允许可信IP访问:
sudo iptables -A INPUT -p tcp --dport 5901 -s 可信IP -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 5901 -j DROP
VNC服务应使用普通用户启动,避免root直接远程登录。创建普通用户并加入sudo组:
sudo adduser your_username
sudo usermod -aG sudo your_username
之后用该普通用户启动VNC服务器:
vncserver :1
通过/etc/hosts.allow和/etc/hosts.deny文件控制访问权限:
echo "vncserver: 可信IP" >> /etc/hosts.allow
echo "vncserver: ALL" >> /etc/hosts.deny
说明:hosts.allow中填写允许访问的IP地址,hosts.deny拒绝所有其他IP。
编辑/etc/vnc/xstartup文件(或~/.vnc/xstartup),添加以下参数以降低显卡依赖,减少潜在漏洞:
export XorgConfDir=/etc/X11
export XorgConfFile=xorg.conf
export DesktopName=SecureDesktop
export Geometry=1920x1080
export localhost=no
export alwaysshared=no
export nevershared=yes
export dontdisconnect=yes
export rfbport=5901
export SecurityTypes=TLSVnc
保存后赋予执行权限:
chmod +x ~/.vnc/xstartup
在VNC Viewer或Server配置中,关闭共享剪贴板(防止剪贴板内容泄露)和文件传输功能,减少攻击面。
定期更新TigerVNC及系统组件,修复已知安全漏洞:
sudo apt update && sudo apt upgrade -y
查看VNC日志(位于~/.vnc/your_hostname:1.log),使用fail2ban工具监控暴力破解尝试:
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
配置fail2ban过滤VNC登录失败日志,自动封禁恶意IP。
~/.vnc/config中设置alwaysshared=no,禁止多个用户同时连接同一会话。~/.vnc目录下的配置文件(如xstartup、passwd),防止配置丢失。