CentOS VNC安全設置操作指南
首先更新系統并安裝TigerVNC(常用且安全的VNC服務器):
sudo yum update -y
sudo yum install tigervnc-server -y
避免使用root用戶運行VNC,創建專用用戶并設置強密碼:
sudo useradd vncuser # 創建用戶(如已存在可跳過)
sudo passwd vncuser # 設置用戶密碼
復制默認服務模板并修改為專用用戶配置:
sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service # 復制模板(:1對應顯示號5901)
sudo vim /etc/systemd/system/vncserver@:1.service # 編輯配置文件
修改以下內容(替換vncuser
為實際用戶名):
[Service]
User=vncuser
Group=vncuser
WorkingDirectory=/home/vncuser
PIDFile=/home/vncuser/.vnc/%H:1.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1
ExecStop=/usr/bin/vncserver -kill :1
保存后重載systemd并啟動服務:
sudo systemctl daemon-reload
sudo systemctl start vncserver@:1.service
sudo systemctl enable vncserver@:1.service # 開機自啟
為專用用戶設置VNC訪問密碼(加密存儲):
su - vncuser # 切換至專用用戶
vncpasswd # 按提示輸入并確認密碼(建議使用12位以上復雜密碼)
exit # 退出用戶
VNC默認端口為5900+顯示號
(如:1
對應5901),允許該端口通過防火墻:
sudo firewall-cmd --permanent --add-port=5901/tcp # 開放端口
sudo firewall-cmd --reload # 重載防火墻
通過SSH反向隧道加密VNC流量,避免明文傳輸:
ssh -L 5901:localhost:5901 vncuser@your_server_ip # 本地端口5901映射至服務器localhost:5901
客戶端連接時,使用localhost:1
(而非服務器IP)即可通過SSH隧道安全訪問。
hosts.allow
限制IP編輯VNC用戶的.vnc/hosts.allow
文件(如/home/vncuser/.vnc/hosts.allow
),僅允許指定IP訪問:
echo "vncserver: 192.168.1.100, 192.168.1.101" | sudo tee -a /home/vncuser/.vnc/hosts.allow
進一步限制防火墻僅允許特定IP訪問VNC端口:
sudo firewall-cmd --permanent --remove-port=5901/tcp # 先移除之前的開放規則
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 --reload
編輯VNC用戶的~/.vnc/xstartup
文件,添加TLS加密參數:
vim /home/vncuser/.vnc/xstartup
在文件開頭添加:
export VNC_SECURITY_TYPES="VeNCrypt,TLS"
重啟VNC服務使配置生效:
sudo systemctl restart vncserver@:1.service
客戶端連接時需指定加密類型:
vncviewer -SecurityTypes=VeNCrypt,TLS localhost:1
/var/log/messages
或journalctl -u vncserver@:1.service
中的VNC日志,排查異常訪問。xstartup
文件中注釋掉不必要的組件(如圖形界面插件),減少攻擊面。