Cara berbagi desktop Anda di linux menggunakan x11vnc

Cara berbagi desktop Anda di linux menggunakan x11vnc

Objektif

Mempelajari Cara Membagikan Desktop Anda Menggunakan Protokol VNC dan Aplikasi X11VNC

Persyaratan

  • Memasang paket X11VNC

Konvensi

  • # - mensyaratkan perintah yang diberikan untuk dieksekusi dengan hak istimewa root
    langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - Diberikan perintah untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

Perkenalan

Sementara SSH adalah alat vital untuk setiap administrator sistem, menjadi protokol yang paling banyak digunakan dan aman untuk administrasi jarak jauh, bahkan mampu memberikan akses ke server tampilan X11, melalui penerusan X11, itu bukan alat yang tepat untuk digunakan ketika target yang diinginkan adalah berbagi seluruh sesi desktop. Dalam hal ini VNC Protokol adalah teman kita. Dengan menggunakannya, kami dapat sepenuhnya mengontrol mesin lain, bahkan berbagi keyboard atau acara mouse.

Meskipun banyak
Implementasi protokol ada di GNU/Linux, dan beberapa di antaranya terintegrasi dengan lingkungan desktop tertentu, seperti Vino/Vinagre Di Gnome, dalam tutorial ini kami akan fokus pada penggunaan dan pengaturan desktop-independen x11vnc aplikasi.

Instalasi

Itu x11vnc Aplikasi harus sudah dikemas dan tersedia dalam repositori distribusi favorit Anda. Memasangnya di Fedora Ini hanya masalah menjalankan:

$ sudo dnf instal x11vnc

Di Debian, atau distribusi yang berbasis di Debian, perintah untuk digunakan adalah:

$ sudo apt-get install x11vnc

X11VNC juga tersedia di repositori Archlinux. Kami dapat menginstalnya menggunakannya Pacman:

$ sudo pacman -s x11vnc

Setelah diinstal, program dapat diluncurkan langsung dari terminal, atau melalui GUI, menggunakan peluncur desktop yang harus ditemukan di menu Aplikasi.



Pengaturan Firewall

Untuk dapat berbagi sesi desktop kami menggunakan protokol VNC, kami harus mengatur firewall sehingga memungkinkan koneksi yang masuk di port 5900 yang merupakan port VNC-Server default. Tindakan yang tepat untuk dilakukan tergantung pada perangkat lunak firewall yang kami gunakan di sistem kami. Ketika menggunakan Firewalld kita harus menjalankan:

$ sudo firewall-cmd --add-service = vnc-server

Seperti yang Anda lihat, kami tidak benar -benar menentukan port untuk diizinkan secara langsung: sebagai gantinya, kami menggunakan nama layanan secara langsung, karena secara default terkait dengan port. Ingat, saat menggunakan Firewalld, Jika suatu zona tidak ditentukan dengan --daerah Opsi, aturan yang ditentukan akan diterapkan pada yang default.

Ketika menggunakan UFW, Firewall default di Ubuntu, perintah yang akan digunakan adalah:

$ sudo ufw memungkinkan 5900/tcp

Selain itu, jika kami bermaksud mengizinkan koneksi VNC dari mesin di luar jaringan lokal kami, kami harus mengonfigurasi aturan izin untuk port yang sama di router kami, dan mengatur penerusan IP ke IP mesin kami.

Terbiasa dengan x11vnc

Cara termudah untuk mulai menggunakan X11VNC adalah dengan memohon program di terminal tanpa opsi. Program harus diluncurkan tanpa Hak istimewa administrator:

$ x11vnc

Secara default x11vnc akan menggunakan tampilan : 0, Namun, ini dapat diubah menggunakan -menampilkan pilihan.

Hal pertama yang akan kami terima setelah menjalankan perintah di atas adalah peringatan tentang tidak menggunakan kata sandi untuk koneksi. Yang diharapkan, karena kami belum menyiapkan. Berjalan dengan pengaturan ini sangat berbahaya, karena komputer mana pun dengan akses jaringan ke mesin kami berpotensi melihat dan mengontrol desktop kami. Maka, hal pertama yang perlu kita lakukan adalah mengatur program sehingga memerlukan otentikasi saat akses diminta.



Batasi akses dengan kata sandi

Pada dasarnya ada tiga cara kita dapat mengatur otentikasi menggunakan X11VNC, mereka sesuai dengan -passwd, -StorePasswd, Dan -passwdfile pilihan. Mari kita lihat secara singkat bagaimana mereka memodifikasi perilaku program.

Metode pertama diwakili oleh penggunaan -passwd Opsi yang memungkinkan kami memberikan runtime, satu-shot, kata sandi teks polos langsung di terminal: tidak akan disimpan di mana saja, dan hanya akan digunakan untuk sesi yang diluncurkan.

Metode kedua, adalah menggunakan -StorePasswd Opsi: ia menerima dua argumen opsional: lulus Dan mengajukan, untuk menentukan masing -masing kata sandi dan file yang harus disimpan. Namun, jika digunakan tanpa argumen, itu akan meminta kata sandi secara interaktif, dan itu akan disimpan di ~/.VNC/Passwd mengajukan. Akhirnya, jika opsi digunakan hanya dengan satu argumen, itu akan ditafsirkan sebagai file untuk menyimpan kata sandi. Harap perhatikan bahwa file yang berisi kata sandi tidak akan dienkripsi, tetapi hanya dikaburkan dengan kunci tetap, oleh karena itu hanya pengguna tepercaya yang harus diizinkan mengaksesnya.

Setelah kata sandi disimpan, program akan keluar. Sejak saat itu, untuk meluncurkan sesi VNC yang dilindungi kata sandi, perintah berikut harus dikeluarkan:

$ x11vnc -rfbauth/path/to/passfile

Di mana, secara default,/path/to/passfile akan sesuai dengan ~/.VNC/Passwd.

Opsi ketiga yang kami miliki adalah menggunakan -passwdfile bendera. Dengan menggunakannya kata sandi untuk koneksi diatur dengan membaca baris pertama dari file yang ada, disahkan sebagai argumen opsi tunggal. Perilaku opsi dapat dimodifikasi lebih lanjut dengan mengawali argumen file. Misalnya, jika nama file diawali dengan RM:, File itu sendiri akan dihapus setelah kontennya dibaca oleh program. Saat menggunakan CMD: awalan, sebaliknya, string yang ditentukan setelah awalan akan diartikan sebagai perintah eksternal, dan outputnya akan digunakan sebagai kata sandi. Awalan lain dapat digunakan dengan opsi ini. Untuk referensi lengkap, Anda dapat berkonsultasi dengan manpage program.

Berikan kata sandi untuk sesi hanya tampilan

Dimungkinkan untuk digunakan x11vnc Jadi koneksi yang dibuat akan berjalan dalam mode tampilan saja. Ini berarti bahwa klien yang terhubung hanya akan diizinkan untuk mengamati sesi bersama, tetapi tidak akan dapat berinteraksi dengannya. Untuk menjalankan dalam mode ini program harus diluncurkan dengan -viewonly pilihan. Dimungkinkan untuk mengatur kata sandi spefic untuk akses semacam ini, jadi untuk mendapatkan pengaturan yang lebih berbutir. Untuk mendapatkan hasil ini, -viewpasswd Opsi harus digunakan, memberikan kata sandi sebagai argumen string. Ini mensyaratkan, namun kata sandi akses penuh juga disediakan, menggunakan -passwd Opsi yang kita bahas di atas.

Amankan koneksi menggunakan terowongan terenkripsi

Secara default, koneksi VNC tidak dienkripsi, dan ini bisa menjadi risiko keamanan. Kita dapat menggunakan pendekatan yang berbeda untuk memperbaikinya. Yang pertama adalah menggunakan a VPN (Jaringan pribadi virtual), yang kedua menggunakan terowongan SSL dan yang ketiga untuk digunakan ssh.

Saat menggambarkan cara mengatur VPN berada di luar ruang lingkup artikel ini, kami akan segera melihat cara menerapkan dua opsi lainnya.

Gunakan terowongan SSL/TLS

Kami dapat mengenkripsi koneksi VNC dengan menggunakan terowongan SSL. Untuk dapat mencapai ini, kita harus menggunakan -SSL atau -Stunnel pilihan. Yang pertama membutuhkan X11VNC untuk dikompilasi libssl mendukung. Opsi ini menerima satu argumen yang merupakan sertifikat PEM format yang akan digunakan. Jika argumen ini tidak disediakan dan openssl Utilitas diinstal pada sistem kami, sertifikat baru akan dihasilkan dan disimpan ~/.VNC/CERTS/Server.PEM.

Itu -Ssltunnel Opsi, sebaliknya, bergantung pada penggunaan program eksternal, Stunnel Untuk memberikan koneksi SSL. Sebagai -ssl, ia juga menerima sertifikat PEM sebagai argumen. Jika tidak disediakan, yang baru akan dihasilkan, dan disimpan seperti yang disebutkan di atas (perilaku ini dapat diubah, misalnya menggunakan string TMP sebagai argumen - dalam hal ini sertifikat sementara akan dihasilkan).

Perhatikan bahwa dalam kedua kasus, sertifikat yang dihasilkan secara otomatis akan ditandatangani sendiri, oleh karena itu, meskipun memberikan koneksi yang aman itu tidak akan mewakili perlindungan dari serangan manusia-di-menengah. Saat menghasilkan sertifikat, kami akan ditanya apakah kami ingin memberikan kata sandi untuk melindunginya, dan apakah itu masalahnya kami akan diminta untuk memasukkannya.

Akhirnya, untuk dapat menggunakan terowongan SSL, aplikasi klien harus mendukung SSL.



Gunakan terowongan SSH

Untuk menggunakan terowongan SSH, kita harus memulai server VNC menggunakan SSH, dengan perintah ini (ini mengasumsikan bahwa port default digunakan):

$ ssh -t -l 5900: localhost: 5900 remote -machine 'x11vnc -localhost -display: 0'

Anda mungkin akrab dengan SSH, tetapi mari kita analisis perintah ini. Pertama -tama kami berlari SSH dengan -T opsi, untuk mengalokasikan terminal semu, dan dengan -L satu, kami pada dasarnya mengatakan untuk meneruskan port 5900 di mesin lokal (klien) kami ke port yang sama di mesin jarak jauh. Seperti yang Anda lihat, perintah X11VNC diluncurkan dengan -localhost pilihan. Apa yang pada dasarnya hal ini adalah untuk hanya mengizinkan koneksi dari mesin yang sama yang dijalankan server. Opsi ini juga secara otomatis digunakan saat menggunakan terowongan SSL untuk menghindari melewati. Setelah itu, kami dapat memulai VNCViewer kami di klien:

$ vncviewer -preferredencoding = zrle localhost: 0

Perhatikan bahwa kami mengatur penyandian yang disukai Zrle, Ini seharusnya membantu kinerja di SSH.

Jalankan dalam mode grafis

Seperti dikatakan di atas, x11vnc dapat juga digunakan dalam mode grafis, menggunakan peluncur desktop. Secara default program akan menampilkan jendela di mana kami dapat memilih port mana yang akan digunakan, ditambah opsi lain:

Pilih jendela Port X11VNC

Setelah kami mengklik tombol "OK", ikon akan ditampilkan di baki sistem dan jendela dengan propertinya akan muncul di layar. Di sisi kiri beberapa instruksi berguna akan ditampilkan untuk startup cepat. Dari antarmuka ini kita juga dapat memilih kata sandi sesi-spefic dan view-only:

Jendela Properti X11VNC

Kesimpulan

Sementara VNC bahkan tidak mendekati untuk mewakili pengganti SSH, itu bisa menjadi alat yang tepat untuk digunakan untuk beberapa tugas tertentu. Dalam tutorial ini kami melihat langkah -langkah mendasar yang diperlukan untuk mengonfigurasi dan menggunakan x11vnc server. Sementara banyak alternatif tersedia, X11VNC adalah alat yang sangat sederhana dan independen desktop, yang dapat digunakan di mana saja.

Tutorial Linux Terkait:

  • Bagikan layar desktop Anda dengan VNC di Linux
  • Mengkonfigurasi akses server VNC pada redhat linux
  • Utilitas layar jarak jauh VNC untuk Linux
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Linux: Setup SSH
  • Bagaimana memanfaatkan openssh
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Perintah Linux Dasar