Panduan ini mencakup langkah-langkah yang diperlukan untuk menginstal dan mengkonfigurasi server VNC pada sistem CentOS 7. Kami juga akan menunjukkan kepada Anda cara terhubung dengan aman ke server VNC melalui SSH tunnel.

Virtual Network Computing (VNC) adalah sistem berbagi desktop grafis yang memungkinkan Anda menggunakan keyboard dan mouse untuk mengontrol komputer lain dari jarak jauh. Ini adalah alternatif open source untuk protokol remote desktop protocol (RDP) Microsoft.

Prasyarat

Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.

Install Desktop Environment

Sebagian besar server tidak memiliki desktop environments (lingkungan desktop) yang diinstal, jadi kita akan mulai dengan memasang desktop environments yang ringan.

Paket Xfce tersedia di repositori EPEL. Jika belum mengaktifkan repositori EPEL di server, Anda bisa melakukannya dengan mengetik:

sudo yum install epel-release

Setelah repositori ditambahkan, instal Xfce di CentOS dengan:

sudo yum groupinstall xfce

Bergantung pada sistem Anda, mengunduh dan menginstal paket Xfce mungkin memerlukan waktu.

Install VNC Server

Kita akan menggunakan TigerVNC sebagai server pilihan VNC. TigerVNC adalah server VNC open-source berkinerja tinggi yang dipelihara secara aktif.

Ketik perintah berikut untuk menginstal TigerVNC di server CentOS Anda:

yum install tigervnc-server

Sekarang setelah VNC server diinstal, langkah selanjutnya adalah menjalankan perintah vncserver yang akan membuat konfigurasi awal dan mengatur kata sandi. Jangan gunakan sudo saat menjalankan perintah berikut:

vncserver

Anda akan diminta untuk memasukkan dan mengonfirmasi kata sandi dan apakah akan menetapkannya sebagai kata sandi view-only?. Jika Anda memilih untuk mengatur kata sandi view-only, user tidak akan dapat berinteraksi dengan instance VNC dengan mouse dan keyboard.

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth:  file /home/linuxid/.Xauthority does not exist

New 'server2.linuxid.net:1 (linuxid)' desktop at :1 on machine server2.linuxid.net

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxid/.vnc/server2.linuxid.net:1.log.

Pertama kali perintah vncserver dijalankan, vncserver akan membuat dan menyimpan file kata sandi di direktori ~/.vnc yang akan dibuat jika tidak ada.

Sebelum melanjutkan dengan langkah selanjutnya, pertama hentikan instance VNC menggunakan perintah vncserver dengan opsi -kill dan nomor server sebagai argumen. Dalam kasus kami server sedang berjalan di port 5901 (:1), jadi kami akan menghentikannya dengan:

vncserver -kill :1
Killing Xvnc process ID 2432

Konfigurasi VNC Server

Sekarang kita telah menginstal Xfce dan TigerVNC di server kita, kita perlu mengkonfigurasi TigerVNC untuk menggunakan Xfce. Untuk melakukannya, buat file berikut:

nano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4

Simpan dan tutup file. Perintah di atas akan dieksekusi secara otomatis setiap kali Anda start atau restart server TigerVNC.

File ~/.vnc/xstartup juga perlu memiliki izin eksekusi. Jalankan perintah berikut untuk memastikan izin benar:

chmod u+x ~/.vnc/xstartup

Jika Anda harus meneruskan opsi tambahan ke server VNC Anda dapat membuat file bernama config dan menambahkan opsi per baris. Berikut ini sebuah contoh:

geometry=1920x1084
dpi=96

Membuat unit file Systemd

Kami akan membuat unit file systemd yang akan memungkinkan kita untuk start, stop, dan restart kembali layanan VNC dengan mudah, sama seperti layanan systemd lainnya.

Buka teks editor Anda, copy dan paste konfigurasi berikut ke dalamnya. Pastikan untuk mengubah nama user pada baris ke 7 agar sesuai dengan nama user Anda.

sudo nano /etc/systemd/system/[email protected]
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=linuxid
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Simpan dan tutup file.

Beri tahu systemd bahwa kita telah membuat file unit baru dengan perintah berikut :

sudo systemctl daemon-reload

Langkah selanjutnya adalah mengaktifkan file unit dengan perintah berikut:

sudo systemctl enable [email protected]

Angka 1 setelah tanda @ menentukan port tempat layanan VNC akan berjalan. Ini berarti server VNC akan listen pada port 5901, seperti yang kita bahas di bagian sebelumnya.

Mulai layanan VNC dengan menjalankan:

sudo systemctl start [email protected]

Verifikasi bahwa layanan berhasil dimulai dengan:

sudo systemctl status [email protected]
[email protected]:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/[email protected]:1.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-09-16 09:59:53 UTC; 4s ago
  Process: 6391 ExecStart=/usr/sbin/runuser -l linuxid -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
  Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 6413 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/[email protected]:1.service
           ‣ 6413 /usr/bin/Xvnc :1 -auth /home/linuxid/.Xauthority -desktop server2.linuxid.net:1 (linuxid) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/linuxid/.vnc/passwd -rfbport ...

Cara Terhubung ke VNC server

VNC bukan protokol terenkripsi dan cukup rentan terhadap packet sniffing. Pendekatan yang disarankan adalah dengan membuat SSH tunnel yang akan meneruskan lalu lintas dengan aman dari mesin lokal Anda pada port 5901 ke server pada port yang sama.

Cara Setup SSH Tunneling di Linux dan macOS

Jika Anda menjalankan Linux, macOS atau sistem operasi berbasis Unix lainnya, Anda dapat dengan mudah membuat SSH tunnel dengan perintah berikut:

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

Anda akan diminta memasukkan kata sandi user.

Jangan lupa mengganti username  dan server_ip_address dengan nama user dan alamat IP server Anda.

Cara Setup SSH Tunneling di  Windows

Jika Anda menjalankan Windows, Anda dapat mengatur SSH  Tunneling menggunakan PuTTY SSH client.

Buka Putty dan masukkan Alamat IP server Anda di bidang Host name or IP address.

vnc putty

Di bawah menu Connection , klik icon + di SSH dan pilih Tunnels. Masukkan port server VNC (5901) di field Source Port dan masukkan server_ip_address:5901 di field Destination dan klik tombol Add seperti yang ditunjukkan pada gambar di bawah:

vnc ssh tunnel putty

Kembali ke halaman Session untuk menyimpan pengaturan sehingga Anda tidak perlu memasukkannya setiap kali. Sekarang yang perlu Anda lakukan adalah memilih sesi yang disimpan dan login ke remote server dengan mengklik tombol Open.

Terhubung ke Server Linux menggunakan Vncviewer

Setelah men-setup SSH tunneling, sekarang saatnya untuk membuka Vncviewer dan untuk terhubung ke VNC Server di localhost:5901.

Anda dapat menggunakan VNC viewer apa pun seperti TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre dan VNC Viewer untuk Google Chrome.

Dalam contoh ini kita akan menggunakan TigerVNC. Buka VNC viewer Anda, masukkan localhost:5901 dan klik tombol Connect.

vnc viewer

Masukkan kata sandi user ketika diminta dan Anda akan melihat desktop Xfce default. Seharusnya terlihat seperti ini:

vnc-xfce-desktop CentOS

Anda dapat mulai berinteraksi dengan desktop XFCE jarak jauh dari mesin lokal Anda menggunakan keyboard dan mouse.

Kesimpulan

Sekarang Anda sudah memiliki VNC server dan berjalan dan dapat dengan mudah mengelola server CentOS 7 dari mesin desktop lokal Anda menggunakan antarmuka grafis yang mudah digunakan.

Untuk mengkonfigurasi VNC server untuk memulai tampilan untuk lebih dari satu pengguna, buat konfigurasi awal dan atur kata sandi menggunakan perintah vncserver. Anda juga perlu membuat file layanan baru menggunakan port yang berbeda.