본문 바로가기

컴퓨터

[Linux] RHEL TigerVNC 설치

Requirements

Server

tigervnc-server

Client

tigervnc-viewer

Installation

Server

TigerVNC server 설치

sudo dnf install tigervnc-server

Systemd 파일 설정

cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
systemctl daemon-reload

TigerVNC 설정

vi /etc/tigervnc/vncserver.users
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
:2=<USER>

USER에 컴퓨터 유저 이름 작성

SELinux label 설정

sudo semanage fcontext -a -t user_home_dir_t '/home/<USER>'
sudo semanage fcontext -a -t vnc_session_t '/home/<USER>/.vnc'

USER에 컴퓨터 유저 이름 작성

방화벽 포트 열기

sudo firewall-cmd --add-port=5902/tcp
sudo firewall-cmd --runtime-to-permanent

Systemd 서비스 실행 및 활성화

sudo systemctl daemon-reload
systemctl enable vncserver@:2.service
systemctl start vncserver@:2.service

포트가 잘 열렸는지 확인

netstat -tnlp

Client

vncviewer <IP_ADDRESS>:5902

Secure Connection

VNC는 암호화되어있지 않다. 따라서 ssh를 통한 보안연결을 해주어야 한다.

기타 디버깅 내용

특정 PID의 journal보기

journalctl _PID=<PID>

시스템 log 직접 보기(여기에 TigerVNC로그 기록됨)

sudo vi /var/log/messages

SELinux alert 보기

sealert -l <ID>

이 경우 /var/log/messages에 어떤 sealert명령어로 로그를 봐야할 지 아래처럼 상세히 나와있었음.

SELinux is preventing /usr/sbin/vncsession from search access on the directory /home/<USER>. For complete SELinux messages run: sealert -l 9d03cd3b-de0c-4167-b5cc-04a2107da208